app.js 3.5 MB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 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 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605
/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getSchemaVersion\": () => (/* binding */ getSchemaVersion),\n/* harmony export */   \"validate\": () => (/* binding */ validate),\n/* harmony export */   \"validateAll\": () => (/* binding */ validateAll)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar escapedChars = {\n  'b': '\\b',\n  'f': '\\f',\n  'n': '\\n',\n  'r': '\\r',\n  't': '\\t',\n  '\"': '\"',\n  '/': '/',\n  '\\\\': '\\\\'\n};\n\nvar A_CODE = 'a'.charCodeAt();\n\n\nvar parse = function (source, _, options) {\n  var pointers = {};\n  var line = 0;\n  var column = 0;\n  var pos = 0;\n  var bigint = options && options.bigint && typeof BigInt != 'undefined';\n  return {\n    data: _parse('', true),\n    pointers: pointers\n  };\n\n  function _parse(ptr, topLevel) {\n    whitespace();\n    var data;\n    map(ptr, 'value');\n    var char = getChar();\n    switch (char) {\n      case 't': read('rue'); data = true; break;\n      case 'f': read('alse'); data = false; break;\n      case 'n': read('ull'); data = null; break;\n      case '\"': data = parseString(); break;\n      case '[': data = parseArray(ptr); break;\n      case '{': data = parseObject(ptr); break;\n      default:\n        backChar();\n        if ('-0123456789'.indexOf(char) >= 0)\n          data = parseNumber();\n        else\n          unexpectedToken();\n    }\n    map(ptr, 'valueEnd');\n    whitespace();\n    if (topLevel && pos < source.length) unexpectedToken();\n    return data;\n  }\n\n  function whitespace() {\n    loop:\n      while (pos < source.length) {\n        switch (source[pos]) {\n          case ' ': column++; break;\n          case '\\t': column += 4; break;\n          case '\\r': column = 0; break;\n          case '\\n': column = 0; line++; break;\n          default: break loop;\n        }\n        pos++;\n      }\n  }\n\n  function parseString() {\n    var str = '';\n    var char;\n    while (true) {\n      char = getChar();\n      if (char == '\"') {\n        break;\n      } else if (char == '\\\\') {\n        char = getChar();\n        if (char in escapedChars)\n          str += escapedChars[char];\n        else if (char == 'u')\n          str += getCharCode();\n        else\n          wasUnexpectedToken();\n      } else {\n        str += char;\n      }\n    }\n    return str;\n  }\n\n  function parseNumber() {\n    var numStr = '';\n    var integer = true;\n    if (source[pos] == '-') numStr += getChar();\n\n    numStr += source[pos] == '0'\n              ? getChar()\n              : getDigits();\n\n    if (source[pos] == '.') {\n      numStr += getChar() + getDigits();\n      integer = false;\n    }\n\n    if (source[pos] == 'e' || source[pos] == 'E') {\n      numStr += getChar();\n      if (source[pos] == '+' || source[pos] == '-') numStr += getChar();\n      numStr += getDigits();\n      integer = false;\n    }\n\n    var result = +numStr;\n    return bigint && integer && (result > Number.MAX_SAFE_INTEGER || result < Number.MIN_SAFE_INTEGER)\n            ? BigInt(numStr)\n            : result;\n  }\n\n  function parseArray(ptr) {\n    whitespace();\n    var arr = [];\n    var i = 0;\n    if (getChar() == ']') return arr;\n    backChar();\n\n    while (true) {\n      var itemPtr = ptr + '/' + i;\n      arr.push(_parse(itemPtr));\n      whitespace();\n      var char = getChar();\n      if (char == ']') break;\n      if (char != ',') wasUnexpectedToken();\n      whitespace();\n      i++;\n    }\n    return arr;\n  }\n\n  function parseObject(ptr) {\n    whitespace();\n    var obj = {};\n    if (getChar() == '}') return obj;\n    backChar();\n\n    while (true) {\n      var loc = getLoc();\n      if (getChar() != '\"') wasUnexpectedToken();\n      var key = parseString();\n      var propPtr = ptr + '/' + escapeJsonPointer(key);\n      mapLoc(propPtr, 'key', loc);\n      map(propPtr, 'keyEnd');\n      whitespace();\n      if (getChar() != ':') wasUnexpectedToken();\n      whitespace();\n      obj[key] = _parse(propPtr);\n      whitespace();\n      var char = getChar();\n      if (char == '}') break;\n      if (char != ',') wasUnexpectedToken();\n      whitespace();\n    }\n    return obj;\n  }\n\n  function read(str) {\n    for (var i=0; i<str.length; i++)\n      if (getChar() !== str[i]) wasUnexpectedToken();\n  }\n\n  function getChar() {\n    checkUnexpectedEnd();\n    var char = source[pos];\n    pos++;\n    column++; // new line?\n    return char;\n  }\n\n  function backChar() {\n    pos--;\n    column--;\n  }\n\n  function getCharCode() {\n    var count = 4;\n    var code = 0;\n    while (count--) {\n      code <<= 4;\n      var char = getChar().toLowerCase();\n      if (char >= 'a' && char <= 'f')\n        code += char.charCodeAt() - A_CODE + 10;\n      else if (char >= '0' && char <= '9')\n        code += +char;\n      else\n        wasUnexpectedToken();\n    }\n    return String.fromCharCode(code);\n  }\n\n  function getDigits() {\n    var digits = '';\n    while (source[pos] >= '0' && source[pos] <= '9')\n      digits += getChar();\n\n    if (digits.length) return digits;\n    checkUnexpectedEnd();\n    unexpectedToken();\n  }\n\n  function map(ptr, prop) {\n    mapLoc(ptr, prop, getLoc());\n  }\n\n  function mapLoc(ptr, prop, loc) {\n    pointers[ptr] = pointers[ptr] || {};\n    pointers[ptr][prop] = loc;\n  }\n\n  function getLoc() {\n    return {\n      line: line,\n      column: column,\n      pos: pos\n    };\n  }\n\n  function unexpectedToken() {\n    throw new SyntaxError('Unexpected token ' + source[pos] + ' in JSON at position ' + pos);\n  }\n\n  function wasUnexpectedToken() {\n    backChar();\n    unexpectedToken();\n  }\n\n  function checkUnexpectedEnd() {\n    if (pos >= source.length)\n      throw new SyntaxError('Unexpected end of JSON input');\n  }\n};\n\n\nvar stringify = function (data, _, options) {\n  if (!validType(data)) return;\n  var wsLine = 0;\n  var wsPos, wsColumn;\n  var whitespace = typeof options == 'object'\n                    ? options.space\n                    : options;\n  switch (typeof whitespace) {\n    case 'number':\n      var len = whitespace > 10\n                  ? 10\n                  : whitespace < 0\n                    ? 0\n                    : Math.floor(whitespace);\n      whitespace = len && repeat(len, ' ');\n      wsPos = len;\n      wsColumn = len;\n      break;\n    case 'string':\n      whitespace = whitespace.slice(0, 10);\n      wsPos = 0;\n      wsColumn = 0;\n      for (var j=0; j<whitespace.length; j++) {\n        var char = whitespace[j];\n        switch (char) {\n          case ' ': wsColumn++; break;\n          case '\\t': wsColumn += 4; break;\n          case '\\r': wsColumn = 0; break;\n          case '\\n': wsColumn = 0; wsLine++; break;\n          default: throw new Error('whitespace characters not allowed in JSON');\n        }\n        wsPos++;\n      }\n      break;\n    default:\n      whitespace = undefined;\n  }\n\n  var json = '';\n  var pointers = {};\n  var line = 0;\n  var column = 0;\n  var pos = 0;\n  var es6 = options && options.es6 && typeof Map == 'function';\n  _stringify(data, 0, '');\n  return {\n    json: json,\n    pointers: pointers\n  };\n\n  function _stringify(_data, lvl, ptr) {\n    map(ptr, 'value');\n    switch (typeof _data) {\n      case 'number':\n      case 'bigint':\n      case 'boolean':\n        out('' + _data); break;\n      case 'string':\n        out(quoted(_data)); break;\n      case 'object':\n        if (_data === null) {\n          out('null');\n        } else if (typeof _data.toJSON == 'function') {\n          out(quoted(_data.toJSON()));\n        } else if (Array.isArray(_data)) {\n          stringifyArray();\n        } else if (es6) {\n          if (_data.constructor.BYTES_PER_ELEMENT)\n            stringifyArray();\n          else if (_data instanceof Map)\n            stringifyMapSet();\n          else if (_data instanceof Set)\n            stringifyMapSet(true);\n          else\n            stringifyObject();\n        } else {\n          stringifyObject();\n        }\n    }\n    map(ptr, 'valueEnd');\n\n    function stringifyArray() {\n      if (_data.length) {\n        out('[');\n        var itemLvl = lvl + 1;\n        for (var i=0; i<_data.length; i++) {\n          if (i) out(',');\n          indent(itemLvl);\n          var item = validType(_data[i]) ? _data[i] : null;\n          var itemPtr = ptr + '/' + i;\n          _stringify(item, itemLvl, itemPtr);\n        }\n        indent(lvl);\n        out(']');\n      } else {\n        out('[]');\n      }\n    }\n\n    function stringifyObject() {\n      var keys = Object.keys(_data);\n      if (keys.length) {\n        out('{');\n        var propLvl = lvl + 1;\n        for (var i=0; i<keys.length; i++) {\n          var key = keys[i];\n          var value = _data[key];\n          if (validType(value)) {\n            if (i) out(',');\n            var propPtr = ptr + '/' + escapeJsonPointer(key);\n            indent(propLvl);\n            map(propPtr, 'key');\n            out(quoted(key));\n            map(propPtr, 'keyEnd');\n            out(':');\n            if (whitespace) out(' ');\n            _stringify(value, propLvl, propPtr);\n          }\n        }\n        indent(lvl);\n        out('}');\n      } else {\n        out('{}');\n      }\n    }\n\n    function stringifyMapSet(isSet) {\n      if (_data.size) {\n        out('{');\n        var propLvl = lvl + 1;\n        var first = true;\n        var entries = _data.entries();\n        var entry = entries.next();\n        while (!entry.done) {\n          var item = entry.value;\n          var key = item[0];\n          var value = isSet ? true : item[1];\n          if (validType(value)) {\n            if (!first) out(',');\n            first = false;\n            var propPtr = ptr + '/' + escapeJsonPointer(key);\n            indent(propLvl);\n            map(propPtr, 'key');\n            out(quoted(key));\n            map(propPtr, 'keyEnd');\n            out(':');\n            if (whitespace) out(' ');\n            _stringify(value, propLvl, propPtr);\n          }\n          entry = entries.next();\n        }\n        indent(lvl);\n        out('}');\n      } else {\n        out('{}');\n      }\n    }\n  }\n\n  function out(str) {\n    column += str.length;\n    pos += str.length;\n    json += str;\n  }\n\n  function indent(lvl) {\n    if (whitespace) {\n      json += '\\n' + repeat(lvl, whitespace);\n      line++;\n      column = 0;\n      while (lvl--) {\n        if (wsLine) {\n          line += wsLine;\n          column = wsColumn;\n        } else {\n          column += wsColumn;\n        }\n        pos += wsPos;\n      }\n      pos += 1; // \\n character\n    }\n  }\n\n  function map(ptr, prop) {\n    pointers[ptr] = pointers[ptr] || {};\n    pointers[ptr][prop] = {\n      line: line,\n      column: column,\n      pos: pos\n    };\n  }\n\n  function repeat(n, str) {\n    return Array(n + 1).join(str);\n  }\n};\n\n\nvar VALID_TYPES = ['number', 'bigint', 'boolean', 'string', 'object'];\nfunction validType(data) {\n  return VALID_TYPES.indexOf(typeof data) >= 0;\n}\n\n\nvar ESC_QUOTE = /\"|\\\\/g;\nvar ESC_B = /[\\b]/g;\nvar ESC_F = /\\f/g;\nvar ESC_N = /\\n/g;\nvar ESC_R = /\\r/g;\nvar ESC_T = /\\t/g;\nfunction quoted(str) {\n  str = str.replace(ESC_QUOTE, '\\\\$&')\n           .replace(ESC_F, '\\\\f')\n           .replace(ESC_B, '\\\\b')\n           .replace(ESC_N, '\\\\n')\n           .replace(ESC_R, '\\\\r')\n           .replace(ESC_T, '\\\\t');\n  return '\"' + str + '\"';\n}\n\n\nvar ESC_0 = /~/g;\nvar ESC_1 = /\\//g;\nfunction escapeJsonPointer(str) {\n  return str.replace(ESC_0, '~0')\n            .replace(ESC_1, '~1');\n}\n\nvar jsonSourceMap = {\n\tparse: parse,\n\tstringify: stringify\n};\n\nvar version = \"0.3.1\";\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n};\n\n// do NOT remove this file - it would break pre-compiled schemas\n// https://github.com/ajv-validator/ajv/issues/889\nvar equal = fastDeepEqual;\n\nvar standaloneValidator = validate14;var _default = validate14;const schema17 = {\"type\":\"object\",\"required\":[\"name\",\"id\",\"appliesTo\",\"properties\"],\"properties\":{\"name\":{\"$id\":\"#/name\",\"type\":\"string\",\"title\":\"element template name\",\"description\":\"The name of the element template\"},\"id\":{\"$id\":\"#/id\",\"type\":\"string\",\"title\":\"element template id\",\"description\":\"The identifier of the element template\"},\"description\":{\"$id\":\"#/description\",\"type\":\"string\",\"title\":\"element template description\",\"description\":\"The description of the element template\"},\"version\":{\"$id\":\"#/version\",\"type\":\"number\",\"title\":\"element template version\",\"description\":\"The version of the element template\"},\"isDefault\":{\"$id\":\"#/isDefault\",\"type\":\"boolean\",\"title\":\"element template is default\",\"description\":\"Indicates whether the element template is a default template\"},\"appliesTo\":{\"$id\":\"#/appliesTo\",\"type\":\"array\",\"title\":\"element template applies to\",\"description\":\"The definition for which element types the element template can be applied\",\"default\":[],\"items\":{\"$id\":\"#/appliesTo/items\",\"type\":\"string\",\"pattern\":\"^(.*?:)\",\"errorMessage\":{\"pattern\":\"invalid item for \\\"appliesTo\\\", should contain namespaced property, example: \\\"bpmn:Task\\\"\"}}},\"properties\":{\"$ref\":\"#/definitions/properties\",\"$id\":\"#/properties\"},\"metadata\":{\"$id\":\"#/metadata\",\"type\":\"object\",\"title\":\"element template metadata\",\"description\":\"Some metadata for further configuration\"},\"scopes\":{\"oneOf\":[{\"$ref\":\"#/definitions/scopes_old\"},{\"$ref\":\"#/definitions/scopes\"}]},\"entriesVisible\":{\"$id\":\"#/entriesVisible\",\"deprecated\":true,\"type\":[\"object\",\"boolean\"],\"title\":\"element template entries visible\",\"description\":\"@Deprecated - Select which entries are visible in the properties panel\"}},\"errorMessage\":{\"required\":{\"name\":\"missing template name\",\"id\":\"missing template id\",\"appliesTo\":\"missing appliesTo=[]\",\"properties\":\"missing properties=[]\"}}};const schema18 = {\"type\":\"array\",\"title\":\"element template properties\",\"description\":\"The properties of the element template\",\"default\":[],\"items\":{\"$id\":\"#/properties/property\",\"type\":\"object\",\"title\":\"element template property\",\"description\":\"A property defined for the element template\",\"default\":{},\"required\":[\"binding\"],\"errorMessage\":{\"required\":{\"binding\":\"missing binding for property \\\"${0#}\\\"\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"Dropdown\"}},\"required\":[\"type\"]},\"then\":{\"required\":[\"choices\"],\"errorMessage\":\"must provide choices=[] with \\\"Dropdown\\\" type\"}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"const\":\"property\"}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Text\",\"Hidden\",\"Dropdown\",\"Boolean\"],\"errorMessage\":\"invalid property type ${0} for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"const\":\"camunda:executionListener\"}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"Hidden\"],\"errorMessage\":\"invalid property type ${1/type} for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"enum\":[\"camunda:property\",\"camunda:outputParameter\",\"camunda:in\",\"camunda:in:businessKey\",\"camunda:out\",\"camunda:errorEventDefinition\"]}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Hidden\",\"Dropdown\"],\"errorMessage\":\"invalid property type ${0} for binding type ${1/binding/type}; must be any of { String, Hidden, Dropdown }\"}}}},{\"if\":{\"properties\":{\"binding\":{\"properties\":{\"type\":{\"enum\":[\"camunda:inputParameter\",\"camunda:field\"]}},\"required\":[\"type\"]}},\"required\":[\"binding\"]},\"then\":{\"properties\":{\"type\":{\"enum\":[\"String\",\"Text\",\"Hidden\",\"Dropdown\"],\"errorMessage\":\"invalid property type ${0} for binding type ${1/binding/type}; must be any of { String, Text, Hidden, Dropdown }\"}}}}],\"properties\":{\"value\":{\"$id\":\"#/properties/property/value\",\"type\":[\"string\",\"boolean\"],\"title\":\"property value\",\"description\":\"The value of the control field for the property\"},\"description\":{\"$id\":\"#/properties/property/description\",\"type\":\"string\",\"title\":\"property description\",\"description\":\"The description of the control field\"},\"label\":{\"$id\":\"#/properties/property/label\",\"type\":\"string\",\"title\":\"property label\",\"description\":\"The label of the control field for the property\"},\"type\":{\"$id\":\"#/properties/property/type\",\"type\":\"string\",\"title\":\"property type\",\"description\":\"The type of the control field\"},\"editable\":{\"$id\":\"#/properties/property/editable\",\"type\":\"boolean\",\"title\":\"property editable\",\"description\":\"Indicates whether the property is editable or not\"},\"choices\":{\"$id\":\"#/properties/property/choices\",\"type\":\"array\",\"title\":\"property choices\",\"description\":\"The choices for dropdown properties\",\"items\":{\"$id\":\"#/properties/property/choices/item\",\"type\":\"object\",\"properties\":{\"name\":{\"$id\":\"#/properties/property/choices/item/name\",\"type\":\"string\",\"title\":\"choice name\",\"description\":\"The name of the choice\"},\"value\":{\"$id\":\"#/properties/property/choices/item/value\",\"type\":\"string\",\"title\":\"choice value\",\"description\":\"The value of the choice\"}},\"required\":[\"value\",\"name\"],\"errorMessage\":\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"}},\"binding\":{\"$id\":\"#/properties/property/binding\",\"type\":\"object\",\"title\":\"property binding\",\"description\":\"A binding to a BPMN 2.0 property\",\"required\":[\"type\"],\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"enum\":[\"property\",\"camunda:property\",\"camunda:inputParameter\",\"camunda:field\"]}},\"required\":[\"type\"]},\"then\":{\"required\":[\"name\"],\"errorMessage\":\"property.binding ${0/type} requires name\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:outputParameter\"}},\"required\":[\"type\"]},\"then\":{\"required\":[\"source\"],\"errorMessage\":\"property.binding ${0/type} requires source\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:in\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"variables\"]},{\"required\":[\"target\"]}],\"errorMessage\":\"property.binding ${0/type} requires variables or target\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:out\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"variables\"]},{\"required\":[\"source\"]},{\"required\":[\"sourceExpression\"]}],\"errorMessage\":\"property.binding ${0/type} requires variables, sourceExpression or source\"}},{\"if\":{\"properties\":{\"type\":{\"const\":\"camunda:errorEventDefinition\"}},\"required\":[\"type\"]},\"then\":{\"oneOf\":[{\"required\":[\"errorRef\"]}],\"errorMessage\":\"property.binding ${0/type} requires errorRef\"}}],\"properties\":{\"type\":{\"$id\":\"#/properties/property/binding/type\",\"type\":\"string\",\"title\":\"property binding type\",\"enum\":[\"property\",\"camunda:property\",\"camunda:inputParameter\",\"camunda:outputParameter\",\"camunda:in\",\"camunda:out\",\"camunda:in:businessKey\",\"camunda:executionListener\",\"camunda:field\",\"camunda:errorEventDefinition\"],\"errorMessage\":\"invalid property.binding type ${0}; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\",\"description\":\"The type of the property binding\"},\"name\":{\"$id\":\"#/properties/property/binding/name\",\"type\":\"string\",\"title\":\"property binding name\",\"description\":\"The name of binding xml property\"},\"event\":{\"$id\":\"#/properties/property/binding/event\",\"type\":\"string\",\"title\":\"property binding event\",\"description\":\"The event type of an execution listener binding\"},\"scriptFormat\":{\"$id\":\"#/properties/property/binding/scriptFormat\",\"type\":\"string\",\"title\":\"property binding script format\",\"description\":\"The format of a script property binding (camunda:outputParameter, camunda:inputParameter)\"},\"source\":{\"$id\":\"#/properties/property/binding/source\",\"type\":\"string\",\"title\":\"property binding source\",\"description\":\"The source value of a property binding (camunda:outputParameter, camunda:out)\"},\"target\":{\"$id\":\"#/properties/property/binding/target\",\"type\":\"string\",\"title\":\"property binding target\",\"description\":\"The target value to be mapped to (camunda:in)\"},\"expression\":{\"$id\":\"#/properties/property/binding/expression\",\"type\":\"boolean\",\"title\":\"property binding expression\",\"description\":\"True indicates that the control field value is an expression (camunda:in, camunda:field)\"},\"variables\":{\"$id\":\"#/properties/property/binding/variables\",\"type\":\"string\",\"title\":\"property binding variables\",\"enum\":[\"all\",\"local\"],\"description\":\"Either all or local indicating the variable mapping (camunda:in)\"},\"sourceExpression\":{\"$id\":\"#/properties/property/binding/sourceExpression\",\"type\":\"string\",\"title\":\"property binding source expression\",\"description\":\"The string containing the expression for the source attribute (camunda:out)\"}}},\"constraints\":{\"$id\":\"#/properties/property/constraints\",\"type\":\"object\",\"title\":\"property constraints\",\"description\":\"The validation constraints\",\"properties\":{\"notEmpty\":{\"$id\":\"#/properties/property/constraints/notEmpty\",\"type\":\"boolean\",\"title\":\"property constraints not empty\",\"description\":\"The control field must not be empty\"},\"minLength\":{\"$id\":\"#/properties/property/constraints/minLength\",\"type\":\"number\",\"title\":\"property constraints min length\",\"description\":\"The minimal length for the control field value\"},\"maxLength\":{\"$id\":\"#/properties/property/constraints/maxLength\",\"type\":\"number\",\"title\":\"property constraints max length\",\"description\":\"The maximal length for the control field value\"},\"pattern\":{\"$id\":\"#/properties/property/constraints/pattern\",\"title\":\"property constraints pattern\",\"description\":\"A regular expression pattern for the constraints\",\"oneOf\":[{\"type\":\"object\",\"properties\":{\"value\":{\"$id\":\"#/properties/property/constraints/pattern/value\",\"type\":\"string\",\"title\":\"property constraints pattern value\",\"description\":\"The regular expression of the pattern constraint\"},\"message\":{\"$id\":\"#/properties/property/constraints/pattern/message\",\"type\":\"string\",\"title\":\"property constraints pattern message\",\"description\":\"The validation message of the pattern constraint\"}}},{\"type\":\"string\"}]}}}}}};const pattern0 = new RegExp(\"^(.*?:)\", \"u\");const obj0 = {\"required\":\"missingProperty\",\"dependencies\":\"property\",\"dependentRequired\":\"property\"};function validate16(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == \"object\" && !Array.isArray(data)){for(const key0 in data){if(!(key0 === \"camunda:Connector\")){const err0 = {keyword:\"not\",dataPath:dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/additionalProperties/not\",params:{},message:\"should NOT be valid\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;if(errors > 0){const emErrs0 = [];for(const err1 of vErrors){if(((((err1.keyword !== \"errorMessage\") && (!err1.emUsed)) && ((err1.dataPath === dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")) || ((err1.dataPath.indexOf(dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")) === 0) && (err1.dataPath[dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\").length] === \"/\")))) && (err1.schemaPath.indexOf(\"#/additionalProperties\") === 0)) && (err1.schemaPath[\"#/additionalProperties\".length] === \"/\")){emErrs0.push(err1);err1.emUsed = true;}}if(emErrs0.length){const err2 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + key0.replace(/~/g, \"~0\").replace(/\\//g, \"~1\"),schemaPath:\"#/additionalProperties/errorMessage\",params:{errors: emErrs0},message:\"invalid scope \" + JSON.stringify(key0) + \", object descriptor is only supported for \\\"camunda:Connector\\\"\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}const emErrs1 = [];for(const err3 of vErrors){if(!err3.emUsed){emErrs1.push(err3);}}vErrors = emErrs1;errors = emErrs1.length;}}}if(data[\"camunda:Connector\"] !== undefined){let data1 = data[\"camunda:Connector\"];if(data1 && typeof data1 == \"object\" && !Array.isArray(data1)){if(data1.properties !== undefined){let data2 = data1.properties;if(Array.isArray(data2)){const len0 = data2.length;for(let i0=0; i0<len0; i0++){let data3 = data2[i0];const _errs12 = errors;let valid7 = true;const _errs13 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.type === undefined) && (\"type\")){const err4 = {};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {if(data3.type !== undefined){if(!equal(data3.type, \"Dropdown\")){const err5 = {};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}}}var _valid0 = _errs13 === errors;errors = _errs12;if(vErrors !== null){if(_errs12){vErrors.length = _errs12;}else {vErrors = null;}}if(_valid0){const _errs15 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.choices === undefined){const err6 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/0/then/required\",params:{missingProperty: \"choices\"},message:\"should have required property '\"+\"choices\"+\"'\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(errors > 0){const emErrs2 = [];for(const err7 of vErrors){if(((((err7.keyword !== \"errorMessage\") && (!err7.emUsed)) && ((err7.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0) || ((err7.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0) === 0) && (err7.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0.length] === \"/\")))) && (err7.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err7.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs2.push(err7);err7.emUsed = true;}}if(emErrs2.length){const err8 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs2},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}const emErrs3 = [];for(const err9 of vErrors){if(!err9.emUsed){emErrs3.push(err9);}}vErrors = emErrs3;errors = emErrs3.length;}var _valid0 = _errs15 === errors;valid7 = _valid0;}if(!valid7){const err10 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}const _errs17 = errors;let valid9 = true;const _errs18 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err11 = {};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}else {if(data3.binding !== undefined){let data5 = data3.binding;if(data5 && typeof data5 == \"object\" && !Array.isArray(data5)){if((data5.type === undefined) && (\"type\")){const err12 = {};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {if(data5.type !== undefined){if(!equal(data5.type, \"property\")){const err13 = {};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}}}}}}var _valid1 = _errs18 === errors;errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}if(_valid1){const _errs21 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data7 = data3.type;if(!(((((data7 === \"String\") || (data7 === \"Text\")) || (data7 === \"Hidden\")) || (data7 === \"Dropdown\")) || (data7 === \"Boolean\"))){const err14 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}if(errors > 0){const emErrs4 = [];for(const err15 of vErrors){if(((((err15.keyword !== \"errorMessage\") && (!err15.emUsed)) && ((err15.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err15.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err15.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err15.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err15.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs4.push(err15);err15.emUsed = true;}}if(emErrs4.length){const err16 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs4},message:\"invalid property type \" + JSON.stringify(data7) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}const emErrs5 = [];for(const err17 of vErrors){if(!err17.emUsed){emErrs5.push(err17);}}vErrors = emErrs5;errors = emErrs5.length;}}}var _valid1 = _errs21 === errors;valid9 = _valid1;}if(!valid9){const err18 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const _errs24 = errors;let valid13 = true;const _errs25 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err19 = {};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {if(data3.binding !== undefined){let data8 = data3.binding;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.type === undefined) && (\"type\")){const err20 = {};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}else {if(data8.type !== undefined){if(!equal(data8.type, \"camunda:executionListener\")){const err21 = {};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}}}}}}var _valid2 = _errs25 === errors;errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}if(_valid2){const _errs28 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){if(!(data3.type === \"Hidden\")){const err22 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}if(errors > 0){const emErrs6 = [];for(const err23 of vErrors){if(((((err23.keyword !== \"errorMessage\") && (!err23.emUsed)) && ((err23.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err23.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err23.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err23.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err23.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs6.push(err23);err23.emUsed = true;}}if(emErrs6.length){const err24 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs6},message:\"invalid property type \" + JSON.stringify(data3 && data3.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}const emErrs7 = [];for(const err25 of vErrors){if(!err25.emUsed){emErrs7.push(err25);}}vErrors = emErrs7;errors = emErrs7.length;}}}var _valid2 = _errs28 === errors;valid13 = _valid2;}if(!valid13){const err26 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const _errs31 = errors;let valid17 = true;const _errs32 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err27 = {};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}else {if(data3.binding !== undefined){let data11 = data3.binding;if(data11 && typeof data11 == \"object\" && !Array.isArray(data11)){if((data11.type === undefined) && (\"type\")){const err28 = {};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}else {if(data11.type !== undefined){let data12 = data11.type;if(!((((((data12 === \"camunda:property\") || (data12 === \"camunda:outputParameter\")) || (data12 === \"camunda:in\")) || (data12 === \"camunda:in:businessKey\")) || (data12 === \"camunda:out\")) || (data12 === \"camunda:errorEventDefinition\"))){const err29 = {};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}}}}}}var _valid3 = _errs32 === errors;errors = _errs31;if(vErrors !== null){if(_errs31){vErrors.length = _errs31;}else {vErrors = null;}}if(_valid3){const _errs35 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data13 = data3.type;if(!(((data13 === \"String\") || (data13 === \"Hidden\")) || (data13 === \"Dropdown\"))){const err30 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}if(errors > 0){const emErrs8 = [];for(const err31 of vErrors){if(((((err31.keyword !== \"errorMessage\") && (!err31.emUsed)) && ((err31.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err31.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err31.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err31.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err31.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs8.push(err31);err31.emUsed = true;}}if(emErrs8.length){const err32 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs8},message:\"invalid property type \" + JSON.stringify(data13) + \" for binding type \" + JSON.stringify(data3 && data3.binding && data3.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}const emErrs9 = [];for(const err33 of vErrors){if(!err33.emUsed){emErrs9.push(err33);}}vErrors = emErrs9;errors = emErrs9.length;}}}var _valid3 = _errs35 === errors;valid17 = _valid3;}if(!valid17){const err34 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const _errs38 = errors;let valid21 = true;const _errs39 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if((data3.binding === undefined) && (\"binding\")){const err35 = {};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {if(data3.binding !== undefined){let data14 = data3.binding;if(data14 && typeof data14 == \"object\" && !Array.isArray(data14)){if((data14.type === undefined) && (\"type\")){const err36 = {};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {if(data14.type !== undefined){let data15 = data14.type;if(!((data15 === \"camunda:inputParameter\") || (data15 === \"camunda:field\"))){const err37 = {};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}}}}}}var _valid4 = _errs39 === errors;errors = _errs38;if(vErrors !== null){if(_errs38){vErrors.length = _errs38;}else {vErrors = null;}}if(_valid4){const _errs42 = errors;if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.type !== undefined){let data16 = data3.type;if(!((((data16 === \"String\") || (data16 === \"Text\")) || (data16 === \"Hidden\")) || (data16 === \"Dropdown\"))){const err38 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}if(errors > 0){const emErrs10 = [];for(const err39 of vErrors){if(((((err39.keyword !== \"errorMessage\") && (!err39.emUsed)) && ((err39.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") || ((err39.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\") === 0) && (err39.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\".length] === \"/\")))) && (err39.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err39.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs10.push(err39);err39.emUsed = true;}}if(emErrs10.length){const err40 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs10},message:\"invalid property type \" + JSON.stringify(data16) + \" for binding type \" + JSON.stringify(data3 && data3.binding && data3.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}const emErrs11 = [];for(const err41 of vErrors){if(!err41.emUsed){emErrs11.push(err41);}}vErrors = emErrs11;errors = emErrs11.length;}}}var _valid4 = _errs42 === errors;valid21 = _valid4;}if(!valid21){const err42 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}if(data3 && typeof data3 == \"object\" && !Array.isArray(data3)){if(data3.binding === undefined){const err43 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}if(data3.value !== undefined){let data17 = data3.value;if((typeof data17 !== \"string\") && (typeof data17 !== \"boolean\")){const err44 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}if(data3.description !== undefined){if(typeof data3.description !== \"string\"){const err45 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}if(data3.label !== undefined){if(typeof data3.label !== \"string\"){const err46 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}}if(data3.type !== undefined){if(typeof data3.type !== \"string\"){const err47 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}if(data3.editable !== undefined){if(typeof data3.editable !== \"boolean\"){const err48 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}if(data3.choices !== undefined){let data22 = data3.choices;if(Array.isArray(data22)){const len1 = data22.length;for(let i1=0; i1<len1; i1++){let data23 = data22[i1];if(data23 && typeof data23 == \"object\" && !Array.isArray(data23)){if(data23.value === undefined){const err49 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"value\"},message:\"should have required property '\"+\"value\"+\"'\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(data23.name === undefined){const err50 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}if(data23.name !== undefined){if(typeof data23.name !== \"string\"){const err51 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1+\"/name\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}if(data23.value !== undefined){if(typeof data23.value !== \"string\"){const err52 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1+\"/value\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}}else {const err53 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1,schemaPath:\"#/definitions/properties/items/properties/choices/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if(errors > 0){const emErrs12 = [];for(const err54 of vErrors){if(((((err54.keyword !== \"errorMessage\") && (!err54.emUsed)) && ((err54.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1) || ((err54.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1) === 0) && (err54.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1.length] === \"/\")))) && (err54.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err54.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs12.push(err54);err54.emUsed = true;}}if(emErrs12.length){const err55 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices/\" + i1,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs12},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}const emErrs13 = [];for(const err56 of vErrors){if(!err56.emUsed){emErrs13.push(err56);}}vErrors = emErrs13;errors = emErrs13.length;}}}else {const err57 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data3.binding !== undefined){let data26 = data3.binding;const _errs65 = errors;let valid30 = true;const _errs66 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err58 = {};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}else {if(data26.type !== undefined){let data27 = data26.type;if(!((((data27 === \"property\") || (data27 === \"camunda:property\")) || (data27 === \"camunda:inputParameter\")) || (data27 === \"camunda:field\"))){const err59 = {};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}}}var _valid5 = _errs66 === errors;errors = _errs65;if(vErrors !== null){if(_errs65){vErrors.length = _errs65;}else {vErrors = null;}}if(_valid5){const _errs68 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.name === undefined){const err60 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}}if(errors > 0){const emErrs14 = [];for(const err61 of vErrors){if(((((err61.keyword !== \"errorMessage\") && (!err61.emUsed)) && ((err61.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err61.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err61.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err61.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err61.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs14.push(err61);err61.emUsed = true;}}if(emErrs14.length){const err62 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs14},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires name\"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}const emErrs15 = [];for(const err63 of vErrors){if(!err63.emUsed){emErrs15.push(err63);}}vErrors = emErrs15;errors = emErrs15.length;}var _valid5 = _errs68 === errors;valid30 = _valid5;}if(!valid30){const err64 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}const _errs70 = errors;let valid32 = true;const _errs71 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err65 = {};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:outputParameter\")){const err66 = {};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}}}}var _valid6 = _errs71 === errors;errors = _errs70;if(vErrors !== null){if(_errs70){vErrors.length = _errs70;}else {vErrors = null;}}if(_valid6){const _errs73 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.source === undefined){const err67 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}if(errors > 0){const emErrs16 = [];for(const err68 of vErrors){if(((((err68.keyword !== \"errorMessage\") && (!err68.emUsed)) && ((err68.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err68.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err68.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err68.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err68.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs16.push(err68);err68.emUsed = true;}}if(emErrs16.length){const err69 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs16},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires source\"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}const emErrs17 = [];for(const err70 of vErrors){if(!err70.emUsed){emErrs17.push(err70);}}vErrors = emErrs17;errors = emErrs17.length;}var _valid6 = _errs73 === errors;valid32 = _valid6;}if(!valid32){const err71 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}const _errs75 = errors;let valid34 = true;const _errs76 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err72 = {};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:in\")){const err73 = {};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}}}var _valid7 = _errs76 === errors;errors = _errs75;if(vErrors !== null){if(_errs75){vErrors.length = _errs75;}else {vErrors = null;}}if(_valid7){const _errs78 = errors;const _errs79 = errors;let valid36 = false;let passing0 = null;const _errs80 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.variables === undefined){const err74 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}var _valid8 = _errs80 === errors;if(_valid8){valid36 = true;passing0 = 0;}const _errs81 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.target === undefined){const err75 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}}var _valid8 = _errs81 === errors;if(_valid8 && valid36){valid36 = false;passing0 = [passing0, 1];}else {if(_valid8){valid36 = true;passing0 = 1;}}if(!valid36){const err76 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}else {errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}}if(errors > 0){const emErrs18 = [];for(const err77 of vErrors){if(((((err77.keyword !== \"errorMessage\") && (!err77.emUsed)) && ((err77.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err77.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err77.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err77.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err77.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs18.push(err77);err77.emUsed = true;}}if(emErrs18.length){const err78 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs18},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}const emErrs19 = [];for(const err79 of vErrors){if(!err79.emUsed){emErrs19.push(err79);}}vErrors = emErrs19;errors = emErrs19.length;}var _valid7 = _errs78 === errors;valid34 = _valid7;}if(!valid34){const err80 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}const _errs83 = errors;let valid37 = true;const _errs84 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err81 = {};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:out\")){const err82 = {};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}}}}var _valid9 = _errs84 === errors;errors = _errs83;if(vErrors !== null){if(_errs83){vErrors.length = _errs83;}else {vErrors = null;}}if(_valid9){const _errs86 = errors;const _errs87 = errors;let valid39 = false;let passing1 = null;const _errs88 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.variables === undefined){const err83 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}}var _valid10 = _errs88 === errors;if(_valid10){valid39 = true;passing1 = 0;}const _errs89 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.source === undefined){const err84 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}var _valid10 = _errs89 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 1];}else {if(_valid10){valid39 = true;passing1 = 1;}const _errs90 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.sourceExpression === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid10 = _errs90 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 2];}else {if(_valid10){valid39 = true;passing1 = 2;}}}if(!valid39){const err86 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}else {errors = _errs87;if(vErrors !== null){if(_errs87){vErrors.length = _errs87;}else {vErrors = null;}}}if(errors > 0){const emErrs20 = [];for(const err87 of vErrors){if(((((err87.keyword !== \"errorMessage\") && (!err87.emUsed)) && ((err87.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err87.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err87.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err87.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err87.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs20.push(err87);err87.emUsed = true;}}if(emErrs20.length){const err88 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs20},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}const emErrs21 = [];for(const err89 of vErrors){if(!err89.emUsed){emErrs21.push(err89);}}vErrors = emErrs21;errors = emErrs21.length;}var _valid9 = _errs86 === errors;valid37 = _valid9;}if(!valid37){const err90 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}const _errs92 = errors;let valid40 = true;const _errs93 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if((data26.type === undefined) && (\"type\")){const err91 = {};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}else {if(data26.type !== undefined){if(!equal(data26.type, \"camunda:errorEventDefinition\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}}var _valid11 = _errs93 === errors;errors = _errs92;if(vErrors !== null){if(_errs92){vErrors.length = _errs92;}else {vErrors = null;}}if(_valid11){const _errs95 = errors;const _errs96 = errors;let valid42 = false;let passing2 = null;const _errs97 = errors;if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.errorRef === undefined){const err93 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}var _valid12 = _errs97 === errors;if(_valid12){valid42 = true;passing2 = 0;}if(!valid42){const err94 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}else {errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}}if(errors > 0){const emErrs22 = [];for(const err95 of vErrors){if(((((err95.keyword !== \"errorMessage\") && (!err95.emUsed)) && ((err95.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") || ((err95.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\") === 0) && (err95.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\".length] === \"/\")))) && (err95.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err95.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs22.push(err95);err95.emUsed = true;}}if(emErrs22.length){const err96 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs22},message:\"property.binding \" + JSON.stringify(data26 && data26.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}const emErrs23 = [];for(const err97 of vErrors){if(!err97.emUsed){emErrs23.push(err97);}}vErrors = emErrs23;errors = emErrs23.length;}var _valid11 = _errs95 === errors;valid40 = _valid11;}if(!valid40){const err98 = {keyword:\"if\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}if(data26 && typeof data26 == \"object\" && !Array.isArray(data26)){if(data26.type === undefined){const err99 = {keyword:\"required\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}if(data26.type !== undefined){let data32 = data26.type;if(typeof data32 !== \"string\"){const err100 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}if(!((((((((((data32 === \"property\") || (data32 === \"camunda:property\")) || (data32 === \"camunda:inputParameter\")) || (data32 === \"camunda:outputParameter\")) || (data32 === \"camunda:in\")) || (data32 === \"camunda:out\")) || (data32 === \"camunda:in:businessKey\")) || (data32 === \"camunda:executionListener\")) || (data32 === \"camunda:field\")) || (data32 === \"camunda:errorEventDefinition\"))){const err101 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}if(errors > 0){const emErrs24 = [];for(const err102 of vErrors){if(((((err102.keyword !== \"errorMessage\") && (!err102.emUsed)) && ((err102.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\") || ((err102.dataPath.indexOf(dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\") === 0) && (err102.dataPath[dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\".length] === \"/\")))) && (err102.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err102.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs24.push(err102);err102.emUsed = true;}}if(emErrs24.length){const err103 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs24},message:\"invalid property.binding type \" + JSON.stringify(data32) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}const emErrs25 = [];for(const err104 of vErrors){if(!err104.emUsed){emErrs25.push(err104);}}vErrors = emErrs25;errors = emErrs25.length;}}if(data26.name !== undefined){if(typeof data26.name !== \"string\"){const err105 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}}if(data26.event !== undefined){if(typeof data26.event !== \"string\"){const err106 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}}if(data26.scriptFormat !== undefined){if(typeof data26.scriptFormat !== \"string\"){const err107 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}}if(data26.source !== undefined){if(typeof data26.source !== \"string\"){const err108 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}}if(data26.target !== undefined){if(typeof data26.target !== \"string\"){const err109 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}}if(data26.expression !== undefined){if(typeof data26.expression !== \"boolean\"){const err110 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}}if(data26.variables !== undefined){let data39 = data26.variables;if(typeof data39 !== \"string\"){const err111 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(!((data39 === \"all\") || (data39 === \"local\"))){const err112 = {keyword:\"enum\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}}if(data26.sourceExpression !== undefined){if(typeof data26.sourceExpression !== \"string\"){const err113 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}}}else {const err114 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}}if(data3.constraints !== undefined){let data41 = data3.constraints;if(data41 && typeof data41 == \"object\" && !Array.isArray(data41)){if(data41.notEmpty !== undefined){if(typeof data41.notEmpty !== \"boolean\"){const err115 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data41.minLength !== undefined){if(!(typeof data41.minLength == \"number\")){const err116 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data41.maxLength !== undefined){if(!(typeof data41.maxLength == \"number\")){const err117 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data41.pattern !== undefined){let data45 = data41.pattern;const _errs125 = errors;let valid45 = false;let passing3 = null;const _errs126 = errors;if(data45 && typeof data45 == \"object\" && !Array.isArray(data45)){if(data45.value !== undefined){if(typeof data45.value !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data45.message !== undefined){if(typeof data45.message !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}}else {const err120 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}var _valid13 = _errs126 === errors;if(_valid13){valid45 = true;passing3 = 0;}const _errs132 = errors;if(typeof data45 !== \"string\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}var _valid13 = _errs132 === errors;if(_valid13 && valid45){valid45 = false;passing3 = [passing3, 1];}else {if(_valid13){valid45 = true;passing3 = 1;}}if(!valid45){const err122 = {keyword:\"oneOf\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}else {errors = _errs125;if(vErrors !== null){if(_errs125){vErrors.length = _errs125;}else {vErrors = null;}}}}}else {const err123 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}}else {const err124 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}if(errors > 0){const emErrors0 = {\"required\":{\"binding\":[]}};const templates0 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i0) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err125 of vErrors){if((((((err125.keyword !== \"errorMessage\") && (!err125.emUsed)) && (err125.dataPath === dataPath+\"/camunda:Connector/properties/\" + i0)) && (err125.keyword in emErrors0)) && (err125.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err125.schemaPath.slice(30)))){emPropParams0 = obj0[err125.keyword];emParamsErrors0 = emErrors0[err125.keyword][err125.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err125);err125.emUsed = true;}}}for(const key1 in emErrors0){for(const keyProp0 in emErrors0[key1]){emParamsErrors0 = emErrors0[key1][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates0[key1] && templates0[key1][keyProp0];const err126 = {keyword:\"errorMessage\",dataPath:dataPath+\"/camunda:Connector/properties/\" + i0,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key1][keyProp0]};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}}const emErrs26 = [];for(const err127 of vErrors){if(!err127.emUsed){emErrs26.push(err127);}}vErrors = emErrs26;errors = emErrs26.length;}}}else {const err128 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}}else {const err129 = {keyword:\"type\",dataPath:dataPath+\"/camunda:Connector\",schemaPath:\"#/properties/camunda%3AConnector/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}}else {const err130 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}validate16.errors = vErrors;return errors === 0;}const schema21 = {\"$id\":\"#/definitions/scopes\",\"type\":\"array\",\"title\":\"element template scope\",\"description\":\"Special scoped bindings that allow you to configure nested elements\",\"items\":{\"$id\":\"#/scopes/item\",\"type\":\"object\",\"title\":\"element template scope item\",\"description\":\"Scoped binding to configure nested elements\",\"properties\":{\"type\":{\"$id\":\"#scopes/item/type\",\"type\":\"string\",\"enum\":[\"camunda:Connector\",\"bpmn:Error\"],\"errorMessage\":\"invalid scope type ${0}; must be any of { camunda:Connector, bpmn:Error }\"},\"properties\":{\"$ref\":\"#/definitions/properties\"}},\"required\":[\"type\",\"properties\"],\"errorMessage\":{\"required\":{\"type\":\"invalid scope, missing type\",\"properties\":\"invalid scope ${0/type}, missing properties=[]\"}},\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"enum\":[\"bpmn:Error\"]}},\"required\":[\"type\"]},\"then\":{\"required\":[\"id\"],\"errorMessage\":\"invalid scope ${0/type}, missing id\"}}]}};function validate18(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(Array.isArray(data)){const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs4 = errors;let valid3 = true;const _errs5 = errors;if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if((data0.type === undefined) && (\"type\")){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data0.type !== undefined){if(!(data0.type === \"bpmn:Error\")){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}}var _valid0 = _errs5 === errors;errors = _errs4;if(vErrors !== null){if(_errs4){vErrors.length = _errs4;}else {vErrors = null;}}if(_valid0){const _errs7 = errors;if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(data0.id === undefined){const err2 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/allOf/0/then/required\",params:{missingProperty: \"id\"},message:\"should have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}if(errors > 0){const emErrs0 = [];for(const err3 of vErrors){if(((((err3.keyword !== \"errorMessage\") && (!err3.emUsed)) && ((err3.dataPath === dataPath+\"/\" + i0) || ((err3.dataPath.indexOf(dataPath+\"/\" + i0) === 0) && (err3.dataPath[dataPath+\"/\" + i0.length] === \"/\")))) && (err3.schemaPath.indexOf(\"#/items/allOf/0/then\") === 0)) && (err3.schemaPath[\"#/items/allOf/0/then\".length] === \"/\")){emErrs0.push(err3);err3.emUsed = true;}}if(emErrs0.length){const err4 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/allOf/0/then/errorMessage\",params:{errors: emErrs0},message:\"invalid scope \" + JSON.stringify(data0 && data0.type) + \", missing id\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}const emErrs1 = [];for(const err5 of vErrors){if(!err5.emUsed){emErrs1.push(err5);}}vErrors = emErrs1;errors = emErrs1.length;}var _valid0 = _errs7 === errors;valid3 = _valid0;}if(!valid3){const err6 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}if(data0 && typeof data0 == \"object\" && !Array.isArray(data0)){if(data0.type === undefined){const err7 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}if(data0.properties === undefined){const err8 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/required\",params:{missingProperty: \"properties\"},message:\"should have required property '\"+\"properties\"+\"'\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}if(data0.type !== undefined){let data2 = data0.type;if(typeof data2 !== \"string\"){const err9 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}if(!((data2 === \"camunda:Connector\") || (data2 === \"bpmn:Error\"))){const err10 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/enum\",params:{allowedValues: schema21.items.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(errors > 0){const emErrs2 = [];for(const err11 of vErrors){if(((((err11.keyword !== \"errorMessage\") && (!err11.emUsed)) && ((err11.dataPath === dataPath+\"/\" + i0+\"/type\") || ((err11.dataPath.indexOf(dataPath+\"/\" + i0+\"/type\") === 0) && (err11.dataPath[dataPath+\"/\" + i0+\"/type\".length] === \"/\")))) && (err11.schemaPath.indexOf(\"#/items/properties/type\") === 0)) && (err11.schemaPath[\"#/items/properties/type\".length] === \"/\")){emErrs2.push(err11);err11.emUsed = true;}}if(emErrs2.length){const err12 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/type\",schemaPath:\"#/items/properties/type/errorMessage\",params:{errors: emErrs2},message:\"invalid scope type \" + JSON.stringify(data2) + \"; must be any of { camunda:Connector, bpmn:Error }\"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}const emErrs3 = [];for(const err13 of vErrors){if(!err13.emUsed){emErrs3.push(err13);}}vErrors = emErrs3;errors = emErrs3.length;}}if(data0.properties !== undefined){let data3 = data0.properties;if(Array.isArray(data3)){const len1 = data3.length;for(let i1=0; i1<len1; i1++){let data4 = data3[i1];const _errs16 = errors;let valid10 = true;const _errs17 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.type === undefined) && (\"type\")){const err14 = {};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data4.type !== undefined){if(!equal(data4.type, \"Dropdown\")){const err15 = {};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid1 = _errs17 === errors;errors = _errs16;if(vErrors !== null){if(_errs16){vErrors.length = _errs16;}else {vErrors = null;}}if(_valid1){const _errs19 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.choices === undefined){const err16 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/required\",params:{missingProperty: \"choices\"},message:\"should have required property '\"+\"choices\"+\"'\"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}if(errors > 0){const emErrs4 = [];for(const err17 of vErrors){if(((((err17.keyword !== \"errorMessage\") && (!err17.emUsed)) && ((err17.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1) || ((err17.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1) === 0) && (err17.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1.length] === \"/\")))) && (err17.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err17.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs4.push(err17);err17.emUsed = true;}}if(emErrs4.length){const err18 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs4},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}const emErrs5 = [];for(const err19 of vErrors){if(!err19.emUsed){emErrs5.push(err19);}}vErrors = emErrs5;errors = emErrs5.length;}var _valid1 = _errs19 === errors;valid10 = _valid1;}if(!valid10){const err20 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}const _errs21 = errors;let valid12 = true;const _errs22 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err21 = {};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}else {if(data4.binding !== undefined){let data6 = data4.binding;if(data6 && typeof data6 == \"object\" && !Array.isArray(data6)){if((data6.type === undefined) && (\"type\")){const err22 = {};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {if(data6.type !== undefined){if(!equal(data6.type, \"property\")){const err23 = {};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}}}}}}var _valid2 = _errs22 === errors;errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}if(_valid2){const _errs25 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data8 = data4.type;if(!(((((data8 === \"String\") || (data8 === \"Text\")) || (data8 === \"Hidden\")) || (data8 === \"Dropdown\")) || (data8 === \"Boolean\"))){const err24 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}if(errors > 0){const emErrs6 = [];for(const err25 of vErrors){if(((((err25.keyword !== \"errorMessage\") && (!err25.emUsed)) && ((err25.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err25.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err25.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err25.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err25.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs6.push(err25);err25.emUsed = true;}}if(emErrs6.length){const err26 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs6},message:\"invalid property type \" + JSON.stringify(data8) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}const emErrs7 = [];for(const err27 of vErrors){if(!err27.emUsed){emErrs7.push(err27);}}vErrors = emErrs7;errors = emErrs7.length;}}}var _valid2 = _errs25 === errors;valid12 = _valid2;}if(!valid12){const err28 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}const _errs28 = errors;let valid16 = true;const _errs29 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err29 = {};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {if(data4.binding !== undefined){let data9 = data4.binding;if(data9 && typeof data9 == \"object\" && !Array.isArray(data9)){if((data9.type === undefined) && (\"type\")){const err30 = {};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {if(data9.type !== undefined){if(!equal(data9.type, \"camunda:executionListener\")){const err31 = {};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}}}}}}var _valid3 = _errs29 === errors;errors = _errs28;if(vErrors !== null){if(_errs28){vErrors.length = _errs28;}else {vErrors = null;}}if(_valid3){const _errs32 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){if(!(data4.type === \"Hidden\")){const err32 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}if(errors > 0){const emErrs8 = [];for(const err33 of vErrors){if(((((err33.keyword !== \"errorMessage\") && (!err33.emUsed)) && ((err33.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err33.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err33.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err33.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err33.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs8.push(err33);err33.emUsed = true;}}if(emErrs8.length){const err34 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs8},message:\"invalid property type \" + JSON.stringify(data4 && data4.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}const emErrs9 = [];for(const err35 of vErrors){if(!err35.emUsed){emErrs9.push(err35);}}vErrors = emErrs9;errors = emErrs9.length;}}}var _valid3 = _errs32 === errors;valid16 = _valid3;}if(!valid16){const err36 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}const _errs35 = errors;let valid20 = true;const _errs36 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err37 = {};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(data4.binding !== undefined){let data12 = data4.binding;if(data12 && typeof data12 == \"object\" && !Array.isArray(data12)){if((data12.type === undefined) && (\"type\")){const err38 = {};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {if(data12.type !== undefined){let data13 = data12.type;if(!((((((data13 === \"camunda:property\") || (data13 === \"camunda:outputParameter\")) || (data13 === \"camunda:in\")) || (data13 === \"camunda:in:businessKey\")) || (data13 === \"camunda:out\")) || (data13 === \"camunda:errorEventDefinition\"))){const err39 = {};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}}}}}}var _valid4 = _errs36 === errors;errors = _errs35;if(vErrors !== null){if(_errs35){vErrors.length = _errs35;}else {vErrors = null;}}if(_valid4){const _errs39 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data14 = data4.type;if(!(((data14 === \"String\") || (data14 === \"Hidden\")) || (data14 === \"Dropdown\"))){const err40 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}if(errors > 0){const emErrs10 = [];for(const err41 of vErrors){if(((((err41.keyword !== \"errorMessage\") && (!err41.emUsed)) && ((err41.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err41.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err41.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err41.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err41.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs10.push(err41);err41.emUsed = true;}}if(emErrs10.length){const err42 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs10},message:\"invalid property type \" + JSON.stringify(data14) + \" for binding type \" + JSON.stringify(data4 && data4.binding && data4.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}const emErrs11 = [];for(const err43 of vErrors){if(!err43.emUsed){emErrs11.push(err43);}}vErrors = emErrs11;errors = emErrs11.length;}}}var _valid4 = _errs39 === errors;valid20 = _valid4;}if(!valid20){const err44 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}const _errs42 = errors;let valid24 = true;const _errs43 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if((data4.binding === undefined) && (\"binding\")){const err45 = {};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}else {if(data4.binding !== undefined){let data15 = data4.binding;if(data15 && typeof data15 == \"object\" && !Array.isArray(data15)){if((data15.type === undefined) && (\"type\")){const err46 = {};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {if(data15.type !== undefined){let data16 = data15.type;if(!((data16 === \"camunda:inputParameter\") || (data16 === \"camunda:field\"))){const err47 = {};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}}}}}}var _valid5 = _errs43 === errors;errors = _errs42;if(vErrors !== null){if(_errs42){vErrors.length = _errs42;}else {vErrors = null;}}if(_valid5){const _errs46 = errors;if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.type !== undefined){let data17 = data4.type;if(!((((data17 === \"String\") || (data17 === \"Text\")) || (data17 === \"Hidden\")) || (data17 === \"Dropdown\"))){const err48 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}if(errors > 0){const emErrs12 = [];for(const err49 of vErrors){if(((((err49.keyword !== \"errorMessage\") && (!err49.emUsed)) && ((err49.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") || ((err49.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\") === 0) && (err49.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err49.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err49.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs12.push(err49);err49.emUsed = true;}}if(emErrs12.length){const err50 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs12},message:\"invalid property type \" + JSON.stringify(data17) + \" for binding type \" + JSON.stringify(data4 && data4.binding && data4.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}const emErrs13 = [];for(const err51 of vErrors){if(!err51.emUsed){emErrs13.push(err51);}}vErrors = emErrs13;errors = emErrs13.length;}}}var _valid5 = _errs46 === errors;valid24 = _valid5;}if(!valid24){const err52 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}if(data4 && typeof data4 == \"object\" && !Array.isArray(data4)){if(data4.binding === undefined){const err53 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if(data4.value !== undefined){let data18 = data4.value;if((typeof data18 !== \"string\") && (typeof data18 !== \"boolean\")){const err54 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}}if(data4.description !== undefined){if(typeof data4.description !== \"string\"){const err55 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}if(data4.label !== undefined){if(typeof data4.label !== \"string\"){const err56 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data4.type !== undefined){if(typeof data4.type !== \"string\"){const err57 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data4.editable !== undefined){if(typeof data4.editable !== \"boolean\"){const err58 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}if(data4.choices !== undefined){let data23 = data4.choices;if(Array.isArray(data23)){const len2 = data23.length;for(let i2=0; i2<len2; i2++){let data24 = data23[i2];if(data24 && typeof data24 == \"object\" && !Array.isArray(data24)){if(data24.value === undefined){const err59 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"value\"},message:\"should have required property '\"+\"value\"+\"'\"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}if(data24.name === undefined){const err60 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}if(data24.name !== undefined){if(typeof data24.name !== \"string\"){const err61 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2+\"/name\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}}if(data24.value !== undefined){if(typeof data24.value !== \"string\"){const err62 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2+\"/value\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}}}else {const err63 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}if(errors > 0){const emErrs14 = [];for(const err64 of vErrors){if(((((err64.keyword !== \"errorMessage\") && (!err64.emUsed)) && ((err64.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2) || ((err64.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2) === 0) && (err64.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2.length] === \"/\")))) && (err64.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err64.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs14.push(err64);err64.emUsed = true;}}if(emErrs14.length){const err65 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs14},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}const emErrs15 = [];for(const err66 of vErrors){if(!err66.emUsed){emErrs15.push(err66);}}vErrors = emErrs15;errors = emErrs15.length;}}}else {const err67 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}if(data4.binding !== undefined){let data27 = data4.binding;const _errs69 = errors;let valid33 = true;const _errs70 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err68 = {};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}else {if(data27.type !== undefined){let data28 = data27.type;if(!((((data28 === \"property\") || (data28 === \"camunda:property\")) || (data28 === \"camunda:inputParameter\")) || (data28 === \"camunda:field\"))){const err69 = {};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}}}}var _valid6 = _errs70 === errors;errors = _errs69;if(vErrors !== null){if(_errs69){vErrors.length = _errs69;}else {vErrors = null;}}if(_valid6){const _errs72 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.name === undefined){const err70 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}if(errors > 0){const emErrs16 = [];for(const err71 of vErrors){if(((((err71.keyword !== \"errorMessage\") && (!err71.emUsed)) && ((err71.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err71.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err71.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err71.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err71.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs16.push(err71);err71.emUsed = true;}}if(emErrs16.length){const err72 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs16},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires name\"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}const emErrs17 = [];for(const err73 of vErrors){if(!err73.emUsed){emErrs17.push(err73);}}vErrors = emErrs17;errors = emErrs17.length;}var _valid6 = _errs72 === errors;valid33 = _valid6;}if(!valid33){const err74 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}const _errs74 = errors;let valid35 = true;const _errs75 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err75 = {};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:outputParameter\")){const err76 = {};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}}}}var _valid7 = _errs75 === errors;errors = _errs74;if(vErrors !== null){if(_errs74){vErrors.length = _errs74;}else {vErrors = null;}}if(_valid7){const _errs77 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.source === undefined){const err77 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}if(errors > 0){const emErrs18 = [];for(const err78 of vErrors){if(((((err78.keyword !== \"errorMessage\") && (!err78.emUsed)) && ((err78.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err78.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err78.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err78.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err78.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs18.push(err78);err78.emUsed = true;}}if(emErrs18.length){const err79 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs18},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires source\"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}const emErrs19 = [];for(const err80 of vErrors){if(!err80.emUsed){emErrs19.push(err80);}}vErrors = emErrs19;errors = emErrs19.length;}var _valid7 = _errs77 === errors;valid35 = _valid7;}if(!valid35){const err81 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}const _errs79 = errors;let valid37 = true;const _errs80 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err82 = {};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:in\")){const err83 = {};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}}}}var _valid8 = _errs80 === errors;errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}if(_valid8){const _errs82 = errors;const _errs83 = errors;let valid39 = false;let passing0 = null;const _errs84 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.variables === undefined){const err84 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}var _valid9 = _errs84 === errors;if(_valid9){valid39 = true;passing0 = 0;}const _errs85 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.target === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid9 = _errs85 === errors;if(_valid9 && valid39){valid39 = false;passing0 = [passing0, 1];}else {if(_valid9){valid39 = true;passing0 = 1;}}if(!valid39){const err86 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}else {errors = _errs83;if(vErrors !== null){if(_errs83){vErrors.length = _errs83;}else {vErrors = null;}}}if(errors > 0){const emErrs20 = [];for(const err87 of vErrors){if(((((err87.keyword !== \"errorMessage\") && (!err87.emUsed)) && ((err87.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err87.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err87.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err87.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err87.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs20.push(err87);err87.emUsed = true;}}if(emErrs20.length){const err88 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs20},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err88];}else {vErrors.push(err88);}errors++;}const emErrs21 = [];for(const err89 of vErrors){if(!err89.emUsed){emErrs21.push(err89);}}vErrors = emErrs21;errors = emErrs21.length;}var _valid8 = _errs82 === errors;valid37 = _valid8;}if(!valid37){const err90 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err90];}else {vErrors.push(err90);}errors++;}const _errs87 = errors;let valid40 = true;const _errs88 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err91 = {};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:out\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}}}}var _valid10 = _errs88 === errors;errors = _errs87;if(vErrors !== null){if(_errs87){vErrors.length = _errs87;}else {vErrors = null;}}if(_valid10){const _errs90 = errors;const _errs91 = errors;let valid42 = false;let passing1 = null;const _errs92 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.variables === undefined){const err93 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}var _valid11 = _errs92 === errors;if(_valid11){valid42 = true;passing1 = 0;}const _errs93 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.source === undefined){const err94 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}}var _valid11 = _errs93 === errors;if(_valid11 && valid42){valid42 = false;passing1 = [passing1, 1];}else {if(_valid11){valid42 = true;passing1 = 1;}const _errs94 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.sourceExpression === undefined){const err95 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}var _valid11 = _errs94 === errors;if(_valid11 && valid42){valid42 = false;passing1 = [passing1, 2];}else {if(_valid11){valid42 = true;passing1 = 2;}}}if(!valid42){const err96 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}else {errors = _errs91;if(vErrors !== null){if(_errs91){vErrors.length = _errs91;}else {vErrors = null;}}}if(errors > 0){const emErrs22 = [];for(const err97 of vErrors){if(((((err97.keyword !== \"errorMessage\") && (!err97.emUsed)) && ((err97.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err97.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err97.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err97.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err97.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs22.push(err97);err97.emUsed = true;}}if(emErrs22.length){const err98 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs22},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err98];}else {vErrors.push(err98);}errors++;}const emErrs23 = [];for(const err99 of vErrors){if(!err99.emUsed){emErrs23.push(err99);}}vErrors = emErrs23;errors = emErrs23.length;}var _valid10 = _errs90 === errors;valid40 = _valid10;}if(!valid40){const err100 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err100];}else {vErrors.push(err100);}errors++;}const _errs96 = errors;let valid43 = true;const _errs97 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if((data27.type === undefined) && (\"type\")){const err101 = {};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}else {if(data27.type !== undefined){if(!equal(data27.type, \"camunda:errorEventDefinition\")){const err102 = {};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}}}}var _valid12 = _errs97 === errors;errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}if(_valid12){const _errs99 = errors;const _errs100 = errors;let valid45 = false;let passing2 = null;const _errs101 = errors;if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.errorRef === undefined){const err103 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}}var _valid13 = _errs101 === errors;if(_valid13){valid45 = true;passing2 = 0;}if(!valid45){const err104 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}else {errors = _errs100;if(vErrors !== null){if(_errs100){vErrors.length = _errs100;}else {vErrors = null;}}}if(errors > 0){const emErrs24 = [];for(const err105 of vErrors){if(((((err105.keyword !== \"errorMessage\") && (!err105.emUsed)) && ((err105.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") || ((err105.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\") === 0) && (err105.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err105.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err105.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs24.push(err105);err105.emUsed = true;}}if(emErrs24.length){const err106 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs24},message:\"property.binding \" + JSON.stringify(data27 && data27.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err106];}else {vErrors.push(err106);}errors++;}const emErrs25 = [];for(const err107 of vErrors){if(!err107.emUsed){emErrs25.push(err107);}}vErrors = emErrs25;errors = emErrs25.length;}var _valid12 = _errs99 === errors;valid43 = _valid12;}if(!valid43){const err108 = {keyword:\"if\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err108];}else {vErrors.push(err108);}errors++;}if(data27 && typeof data27 == \"object\" && !Array.isArray(data27)){if(data27.type === undefined){const err109 = {keyword:\"required\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data27.type !== undefined){let data33 = data27.type;if(typeof data33 !== \"string\"){const err110 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}if(!((((((((((data33 === \"property\") || (data33 === \"camunda:property\")) || (data33 === \"camunda:inputParameter\")) || (data33 === \"camunda:outputParameter\")) || (data33 === \"camunda:in\")) || (data33 === \"camunda:out\")) || (data33 === \"camunda:in:businessKey\")) || (data33 === \"camunda:executionListener\")) || (data33 === \"camunda:field\")) || (data33 === \"camunda:errorEventDefinition\"))){const err111 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(errors > 0){const emErrs26 = [];for(const err112 of vErrors){if(((((err112.keyword !== \"errorMessage\") && (!err112.emUsed)) && ((err112.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\") || ((err112.dataPath.indexOf(dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\") === 0) && (err112.dataPath[dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\".length] === \"/\")))) && (err112.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err112.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs26.push(err112);err112.emUsed = true;}}if(emErrs26.length){const err113 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs26},message:\"invalid property.binding type \" + JSON.stringify(data33) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err113];}else {vErrors.push(err113);}errors++;}const emErrs27 = [];for(const err114 of vErrors){if(!err114.emUsed){emErrs27.push(err114);}}vErrors = emErrs27;errors = emErrs27.length;}}if(data27.name !== undefined){if(typeof data27.name !== \"string\"){const err115 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err115];}else {vErrors.push(err115);}errors++;}}if(data27.event !== undefined){if(typeof data27.event !== \"string\"){const err116 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data27.scriptFormat !== undefined){if(typeof data27.scriptFormat !== \"string\"){const err117 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data27.source !== undefined){if(typeof data27.source !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data27.target !== undefined){if(typeof data27.target !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}if(data27.expression !== undefined){if(typeof data27.expression !== \"boolean\"){const err120 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}}if(data27.variables !== undefined){let data40 = data27.variables;if(typeof data40 !== \"string\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}if(!((data40 === \"all\") || (data40 === \"local\"))){const err122 = {keyword:\"enum\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}}if(data27.sourceExpression !== undefined){if(typeof data27.sourceExpression !== \"string\"){const err123 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}}else {const err124 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}}if(data4.constraints !== undefined){let data42 = data4.constraints;if(data42 && typeof data42 == \"object\" && !Array.isArray(data42)){if(data42.notEmpty !== undefined){if(typeof data42.notEmpty !== \"boolean\"){const err125 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}}if(data42.minLength !== undefined){if(!(typeof data42.minLength == \"number\")){const err126 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}if(data42.maxLength !== undefined){if(!(typeof data42.maxLength == \"number\")){const err127 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}}if(data42.pattern !== undefined){let data46 = data42.pattern;const _errs129 = errors;let valid48 = false;let passing3 = null;const _errs130 = errors;if(data46 && typeof data46 == \"object\" && !Array.isArray(data46)){if(data46.value !== undefined){if(typeof data46.value !== \"string\"){const err128 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}if(data46.message !== undefined){if(typeof data46.message !== \"string\"){const err129 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}}else {const err130 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}var _valid14 = _errs130 === errors;if(_valid14){valid48 = true;passing3 = 0;}const _errs136 = errors;if(typeof data46 !== \"string\"){const err131 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}var _valid14 = _errs136 === errors;if(_valid14 && valid48){valid48 = false;passing3 = [passing3, 1];}else {if(_valid14){valid48 = true;passing3 = 1;}}if(!valid48){const err132 = {keyword:\"oneOf\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}else {errors = _errs129;if(vErrors !== null){if(_errs129){vErrors.length = _errs129;}else {vErrors = null;}}}}}else {const err133 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}}}else {const err134 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}if(errors > 0){const emErrors0 = {\"required\":{\"binding\":[]}};const templates0 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i1) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err135 of vErrors){if((((((err135.keyword !== \"errorMessage\") && (!err135.emUsed)) && (err135.dataPath === dataPath+\"/\" + i0+\"/properties/\" + i1)) && (err135.keyword in emErrors0)) && (err135.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err135.schemaPath.slice(30)))){emPropParams0 = obj0[err135.keyword];emParamsErrors0 = emErrors0[err135.keyword][err135.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err135);err135.emUsed = true;}}}for(const key0 in emErrors0){for(const keyProp0 in emErrors0[key0]){emParamsErrors0 = emErrors0[key0][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates0[key0] && templates0[key0][keyProp0];const err136 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key0][keyProp0]};if(vErrors === null){vErrors = [err136];}else {vErrors.push(err136);}errors++;}}}const emErrs28 = [];for(const err137 of vErrors){if(!err137.emUsed){emErrs28.push(err137);}}vErrors = emErrs28;errors = emErrs28.length;}}}else {const err138 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0+\"/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err138];}else {vErrors.push(err138);}errors++;}}}else {const err139 = {keyword:\"type\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}if(errors > 0){const emErrors1 = {\"required\":{\"type\":[],\"properties\":[]}};const templates1 = {required:{properties:function(){return \"invalid scope \" + JSON.stringify(data0 && data0.type) + \", missing properties=[]\"}}};let emPropParams1;let emParamsErrors1;for(const err140 of vErrors){if((((((err140.keyword !== \"errorMessage\") && (!err140.emUsed)) && (err140.dataPath === dataPath+\"/\" + i0)) && (err140.keyword in emErrors1)) && (err140.schemaPath.indexOf(\"#/items\") === 0)) && (/^\\/[^\\/]*$/.test(err140.schemaPath.slice(7)))){emPropParams1 = obj0[err140.keyword];emParamsErrors1 = emErrors1[err140.keyword][err140.params[emPropParams1]];if(emParamsErrors1){emParamsErrors1.push(err140);err140.emUsed = true;}}}for(const key1 in emErrors1){for(const keyProp1 in emErrors1[key1]){emParamsErrors1 = emErrors1[key1][keyProp1];if(emParamsErrors1.length){const tmpl1 = templates1[key1] && templates1[key1][keyProp1];const err141 = {keyword:\"errorMessage\",dataPath:dataPath+\"/\" + i0,schemaPath:\"#/items/errorMessage\",params:{errors: emParamsErrors1},message:tmpl1 ? tmpl1() : schema21.items.errorMessage[key1][keyProp1]};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}}}const emErrs29 = [];for(const err142 of vErrors){if(!err142.emUsed){emErrs29.push(err142);}}vErrors = emErrs29;errors = emErrs29.length;}}}else {const err143 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}validate18.errors = vErrors;return errors === 0;}function validate15(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(data && typeof data == \"object\" && !Array.isArray(data)){if(data.name === undefined){const err0 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}if(data.id === undefined){const err1 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"id\"},message:\"should have required property '\"+\"id\"+\"'\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}if(data.appliesTo === undefined){const err2 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"appliesTo\"},message:\"should have required property '\"+\"appliesTo\"+\"'\"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}if(data.properties === undefined){const err3 = {keyword:\"required\",dataPath,schemaPath:\"#/required\",params:{missingProperty: \"properties\"},message:\"should have required property '\"+\"properties\"+\"'\"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}if(data.name !== undefined){if(typeof data.name !== \"string\"){const err4 = {keyword:\"type\",dataPath:dataPath+\"/name\",schemaPath:\"#/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}if(data.id !== undefined){if(typeof data.id !== \"string\"){const err5 = {keyword:\"type\",dataPath:dataPath+\"/id\",schemaPath:\"#/properties/id/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}if(data.description !== undefined){if(typeof data.description !== \"string\"){const err6 = {keyword:\"type\",dataPath:dataPath+\"/description\",schemaPath:\"#/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}if(data.version !== undefined){if(!(typeof data.version == \"number\")){const err7 = {keyword:\"type\",dataPath:dataPath+\"/version\",schemaPath:\"#/properties/version/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}if(data.isDefault !== undefined){if(typeof data.isDefault !== \"boolean\"){const err8 = {keyword:\"type\",dataPath:dataPath+\"/isDefault\",schemaPath:\"#/properties/isDefault/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}if(data.appliesTo !== undefined){let data5 = data.appliesTo;if(Array.isArray(data5)){const len0 = data5.length;for(let i0=0; i0<len0; i0++){let data6 = data5[i0];if(typeof data6 === \"string\"){if(!pattern0.test(data6)){const err9 = {keyword:\"pattern\",dataPath:dataPath+\"/appliesTo/\" + i0,schemaPath:\"#/properties/appliesTo/items/pattern\",params:{pattern: \"^(.*?:)\"},message:\"should match pattern \\\"\"+\"^(.*?:)\"+\"\\\"\"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {keyword:\"type\",dataPath:dataPath+\"/appliesTo/\" + i0,schemaPath:\"#/properties/appliesTo/items/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}if(errors > 0){const emErrors0 = {\"pattern\":[]};const templates0 = {};for(const err11 of vErrors){if((((((err11.keyword !== \"errorMessage\") && (!err11.emUsed)) && (err11.dataPath === dataPath+\"/appliesTo/\" + i0)) && (err11.keyword in emErrors0)) && (err11.schemaPath.indexOf(\"#/properties/appliesTo/items\") === 0)) && (/^\\/[^\\/]*$/.test(err11.schemaPath.slice(28)))){emErrors0[err11.keyword].push(err11);err11.emUsed = true;}}for(const key0 in emErrors0){if(emErrors0[key0].length){const err12 = {keyword:\"errorMessage\",dataPath:dataPath+\"/appliesTo/\" + i0,schemaPath:\"#/properties/appliesTo/items/errorMessage\",params:{errors: emErrors0[key0]},message:key0 in templates0 ? templates0[key0]() : schema17.properties.appliesTo.items.errorMessage[key0]};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}const emErrs0 = [];for(const err13 of vErrors){if(!err13.emUsed){emErrs0.push(err13);}}vErrors = emErrs0;errors = emErrs0.length;}}}else {const err14 = {keyword:\"type\",dataPath:dataPath+\"/appliesTo\",schemaPath:\"#/properties/appliesTo/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}if(data.properties !== undefined){let data7 = data.properties;if(Array.isArray(data7)){const len1 = data7.length;for(let i1=0; i1<len1; i1++){let data8 = data7[i1];const _errs21 = errors;let valid7 = true;const _errs22 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.type === undefined) && (\"type\")){const err15 = {};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {if(data8.type !== undefined){if(!equal(data8.type, \"Dropdown\")){const err16 = {};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}}var _valid0 = _errs22 === errors;errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}if(_valid0){const _errs24 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.choices === undefined){const err17 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/required\",params:{missingProperty: \"choices\"},message:\"should have required property '\"+\"choices\"+\"'\"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}if(errors > 0){const emErrs1 = [];for(const err18 of vErrors){if(((((err18.keyword !== \"errorMessage\") && (!err18.emUsed)) && ((err18.dataPath === dataPath+\"/properties/\" + i1) || ((err18.dataPath.indexOf(dataPath+\"/properties/\" + i1) === 0) && (err18.dataPath[dataPath+\"/properties/\" + i1.length] === \"/\")))) && (err18.schemaPath.indexOf(\"#/definitions/properties/items/allOf/0/then\") === 0)) && (err18.schemaPath[\"#/definitions/properties/items/allOf/0/then\".length] === \"/\")){emErrs1.push(err18);err18.emUsed = true;}}if(emErrs1.length){const err19 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/then/errorMessage\",params:{errors: emErrs1},message:\"must provide choices=[] with \\\"Dropdown\\\" type\"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}const emErrs2 = [];for(const err20 of vErrors){if(!err20.emUsed){emErrs2.push(err20);}}vErrors = emErrs2;errors = emErrs2.length;}var _valid0 = _errs24 === errors;valid7 = _valid0;}if(!valid7){const err21 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}const _errs26 = errors;let valid9 = true;const _errs27 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err22 = {};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {if(data8.binding !== undefined){let data10 = data8.binding;if(data10 && typeof data10 == \"object\" && !Array.isArray(data10)){if((data10.type === undefined) && (\"type\")){const err23 = {};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data10.type !== undefined){if(!equal(data10.type, \"property\")){const err24 = {};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}}}}var _valid1 = _errs27 === errors;errors = _errs26;if(vErrors !== null){if(_errs26){vErrors.length = _errs26;}else {vErrors = null;}}if(_valid1){const _errs30 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data12 = data8.type;if(!(((((data12 === \"String\") || (data12 === \"Text\")) || (data12 === \"Hidden\")) || (data12 === \"Dropdown\")) || (data12 === \"Boolean\"))){const err25 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[1].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}if(errors > 0){const emErrs3 = [];for(const err26 of vErrors){if(((((err26.keyword !== \"errorMessage\") && (!err26.emUsed)) && ((err26.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err26.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err26.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err26.schemaPath.indexOf(\"#/definitions/properties/items/allOf/1/then/properties/type\") === 0)) && (err26.schemaPath[\"#/definitions/properties/items/allOf/1/then/properties/type\".length] === \"/\")){emErrs3.push(err26);err26.emUsed = true;}}if(emErrs3.length){const err27 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/1/then/properties/type/errorMessage\",params:{errors: emErrs3},message:\"invalid property type \" + JSON.stringify(data12) + \" for binding type \\\"property\\\"; must be any of { String, Text, Hidden, Dropdown, Boolean }\"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}const emErrs4 = [];for(const err28 of vErrors){if(!err28.emUsed){emErrs4.push(err28);}}vErrors = emErrs4;errors = emErrs4.length;}}}var _valid1 = _errs30 === errors;valid9 = _valid1;}if(!valid9){const err29 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}const _errs33 = errors;let valid13 = true;const _errs34 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err30 = {};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {if(data8.binding !== undefined){let data13 = data8.binding;if(data13 && typeof data13 == \"object\" && !Array.isArray(data13)){if((data13.type === undefined) && (\"type\")){const err31 = {};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(data13.type !== undefined){if(!equal(data13.type, \"camunda:executionListener\")){const err32 = {};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}}}}}var _valid2 = _errs34 === errors;errors = _errs33;if(vErrors !== null){if(_errs33){vErrors.length = _errs33;}else {vErrors = null;}}if(_valid2){const _errs37 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){if(!(data8.type === \"Hidden\")){const err33 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[2].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}if(errors > 0){const emErrs5 = [];for(const err34 of vErrors){if(((((err34.keyword !== \"errorMessage\") && (!err34.emUsed)) && ((err34.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err34.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err34.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err34.schemaPath.indexOf(\"#/definitions/properties/items/allOf/2/then/properties/type\") === 0)) && (err34.schemaPath[\"#/definitions/properties/items/allOf/2/then/properties/type\".length] === \"/\")){emErrs5.push(err34);err34.emUsed = true;}}if(emErrs5.length){const err35 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/2/then/properties/type/errorMessage\",params:{errors: emErrs5},message:\"invalid property type \" + JSON.stringify(data8 && data8.type) + \" for binding type \\\"camunda:executionListener\\\"; must be \\\"Hidden\\\"\"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}const emErrs6 = [];for(const err36 of vErrors){if(!err36.emUsed){emErrs6.push(err36);}}vErrors = emErrs6;errors = emErrs6.length;}}}var _valid2 = _errs37 === errors;valid13 = _valid2;}if(!valid13){const err37 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}const _errs40 = errors;let valid17 = true;const _errs41 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err38 = {};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {if(data8.binding !== undefined){let data16 = data8.binding;if(data16 && typeof data16 == \"object\" && !Array.isArray(data16)){if((data16.type === undefined) && (\"type\")){const err39 = {};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}else {if(data16.type !== undefined){let data17 = data16.type;if(!((((((data17 === \"camunda:property\") || (data17 === \"camunda:outputParameter\")) || (data17 === \"camunda:in\")) || (data17 === \"camunda:in:businessKey\")) || (data17 === \"camunda:out\")) || (data17 === \"camunda:errorEventDefinition\"))){const err40 = {};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}}}}}}var _valid3 = _errs41 === errors;errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}if(_valid3){const _errs44 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data18 = data8.type;if(!(((data18 === \"String\") || (data18 === \"Hidden\")) || (data18 === \"Dropdown\"))){const err41 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[3].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}if(errors > 0){const emErrs7 = [];for(const err42 of vErrors){if(((((err42.keyword !== \"errorMessage\") && (!err42.emUsed)) && ((err42.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err42.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err42.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err42.schemaPath.indexOf(\"#/definitions/properties/items/allOf/3/then/properties/type\") === 0)) && (err42.schemaPath[\"#/definitions/properties/items/allOf/3/then/properties/type\".length] === \"/\")){emErrs7.push(err42);err42.emUsed = true;}}if(emErrs7.length){const err43 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/3/then/properties/type/errorMessage\",params:{errors: emErrs7},message:\"invalid property type \" + JSON.stringify(data18) + \" for binding type \" + JSON.stringify(data8 && data8.binding && data8.binding.type) + \"; must be any of { String, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}const emErrs8 = [];for(const err44 of vErrors){if(!err44.emUsed){emErrs8.push(err44);}}vErrors = emErrs8;errors = emErrs8.length;}}}var _valid3 = _errs44 === errors;valid17 = _valid3;}if(!valid17){const err45 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}const _errs47 = errors;let valid21 = true;const _errs48 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if((data8.binding === undefined) && (\"binding\")){const err46 = {};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {if(data8.binding !== undefined){let data19 = data8.binding;if(data19 && typeof data19 == \"object\" && !Array.isArray(data19)){if((data19.type === undefined) && (\"type\")){const err47 = {};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {if(data19.type !== undefined){let data20 = data19.type;if(!((data20 === \"camunda:inputParameter\") || (data20 === \"camunda:field\"))){const err48 = {};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}}}}}}var _valid4 = _errs48 === errors;errors = _errs47;if(vErrors !== null){if(_errs47){vErrors.length = _errs47;}else {vErrors = null;}}if(_valid4){const _errs51 = errors;if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.type !== undefined){let data21 = data8.type;if(!((((data21 === \"String\") || (data21 === \"Text\")) || (data21 === \"Hidden\")) || (data21 === \"Dropdown\"))){const err49 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/enum\",params:{allowedValues: schema18.items.allOf[4].then.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}if(errors > 0){const emErrs9 = [];for(const err50 of vErrors){if(((((err50.keyword !== \"errorMessage\") && (!err50.emUsed)) && ((err50.dataPath === dataPath+\"/properties/\" + i1+\"/type\") || ((err50.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/type\") === 0) && (err50.dataPath[dataPath+\"/properties/\" + i1+\"/type\".length] === \"/\")))) && (err50.schemaPath.indexOf(\"#/definitions/properties/items/allOf/4/then/properties/type\") === 0)) && (err50.schemaPath[\"#/definitions/properties/items/allOf/4/then/properties/type\".length] === \"/\")){emErrs9.push(err50);err50.emUsed = true;}}if(emErrs9.length){const err51 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/allOf/4/then/properties/type/errorMessage\",params:{errors: emErrs9},message:\"invalid property type \" + JSON.stringify(data21) + \" for binding type \" + JSON.stringify(data8 && data8.binding && data8.binding.type) + \"; must be any of { String, Text, Hidden, Dropdown }\"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}const emErrs10 = [];for(const err52 of vErrors){if(!err52.emUsed){emErrs10.push(err52);}}vErrors = emErrs10;errors = emErrs10.length;}}}var _valid4 = _errs51 === errors;valid21 = _valid4;}if(!valid21){const err53 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}if(data8 && typeof data8 == \"object\" && !Array.isArray(data8)){if(data8.binding === undefined){const err54 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/required\",params:{missingProperty: \"binding\"},message:\"should have required property '\"+\"binding\"+\"'\"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}if(data8.value !== undefined){let data22 = data8.value;if((typeof data22 !== \"string\") && (typeof data22 !== \"boolean\")){const err55 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/value\",schemaPath:\"#/definitions/properties/items/properties/value/type\",params:{type: schema18.items.properties.value.type},message:\"should be string,boolean\"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;}}if(data8.description !== undefined){if(typeof data8.description !== \"string\"){const err56 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/description\",schemaPath:\"#/definitions/properties/items/properties/description/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}if(data8.label !== undefined){if(typeof data8.label !== \"string\"){const err57 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/label\",schemaPath:\"#/definitions/properties/items/properties/label/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}if(data8.type !== undefined){if(typeof data8.type !== \"string\"){const err58 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/type\",schemaPath:\"#/definitions/properties/items/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}if(data8.editable !== undefined){if(typeof data8.editable !== \"boolean\"){const err59 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/editable\",schemaPath:\"#/definitions/properties/items/properties/editable/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}if(data8.choices !== undefined){let data27 = data8.choices;if(Array.isArray(data27)){const len2 = data27.length;for(let i2=0; i2<len2; i2++){let data28 = data27[i2];if(data28 && typeof data28 == \"object\" && !Array.isArray(data28)){if(data28.value === undefined){const err60 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"value\"},message:\"should have required property '\"+\"value\"+\"'\"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}if(data28.name === undefined){const err61 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}if(data28.name !== undefined){if(typeof data28.name !== \"string\"){const err62 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2+\"/name\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;}}if(data28.value !== undefined){if(typeof data28.value !== \"string\"){const err63 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2+\"/value\",schemaPath:\"#/definitions/properties/items/properties/choices/items/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}}}else {const err64 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}if(errors > 0){const emErrs11 = [];for(const err65 of vErrors){if(((((err65.keyword !== \"errorMessage\") && (!err65.emUsed)) && ((err65.dataPath === dataPath+\"/properties/\" + i1+\"/choices/\" + i2) || ((err65.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/choices/\" + i2) === 0) && (err65.dataPath[dataPath+\"/properties/\" + i1+\"/choices/\" + i2.length] === \"/\")))) && (err65.schemaPath.indexOf(\"#/definitions/properties/items/properties/choices/items\") === 0)) && (err65.schemaPath[\"#/definitions/properties/items/properties/choices/items\".length] === \"/\")){emErrs11.push(err65);err65.emUsed = true;}}if(emErrs11.length){const err66 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/choices/\" + i2,schemaPath:\"#/definitions/properties/items/properties/choices/items/errorMessage\",params:{errors: emErrs11},message:\"{ name, value } must be specified for \\\"Dropdown\\\" choices\"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}const emErrs12 = [];for(const err67 of vErrors){if(!err67.emUsed){emErrs12.push(err67);}}vErrors = emErrs12;errors = emErrs12.length;}}}else {const err68 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/choices\",schemaPath:\"#/definitions/properties/items/properties/choices/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}}if(data8.binding !== undefined){let data31 = data8.binding;const _errs74 = errors;let valid30 = true;const _errs75 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err69 = {};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;}else {if(data31.type !== undefined){let data32 = data31.type;if(!((((data32 === \"property\") || (data32 === \"camunda:property\")) || (data32 === \"camunda:inputParameter\")) || (data32 === \"camunda:field\"))){const err70 = {};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}}}var _valid5 = _errs75 === errors;errors = _errs74;if(vErrors !== null){if(_errs74){vErrors.length = _errs74;}else {vErrors = null;}}if(_valid5){const _errs77 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.name === undefined){const err71 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/required\",params:{missingProperty: \"name\"},message:\"should have required property '\"+\"name\"+\"'\"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}if(errors > 0){const emErrs13 = [];for(const err72 of vErrors){if(((((err72.keyword !== \"errorMessage\") && (!err72.emUsed)) && ((err72.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err72.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err72.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err72.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/0/then\") === 0)) && (err72.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/0/then\".length] === \"/\")){emErrs13.push(err72);err72.emUsed = true;}}if(emErrs13.length){const err73 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/then/errorMessage\",params:{errors: emErrs13},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires name\"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}const emErrs14 = [];for(const err74 of vErrors){if(!err74.emUsed){emErrs14.push(err74);}}vErrors = emErrs14;errors = emErrs14.length;}var _valid5 = _errs77 === errors;valid30 = _valid5;}if(!valid30){const err75 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/0/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}const _errs79 = errors;let valid32 = true;const _errs80 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err76 = {};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:outputParameter\")){const err77 = {};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}}}var _valid6 = _errs80 === errors;errors = _errs79;if(vErrors !== null){if(_errs79){vErrors.length = _errs79;}else {vErrors = null;}}if(_valid6){const _errs82 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.source === undefined){const err78 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}}if(errors > 0){const emErrs15 = [];for(const err79 of vErrors){if(((((err79.keyword !== \"errorMessage\") && (!err79.emUsed)) && ((err79.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err79.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err79.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err79.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/1/then\") === 0)) && (err79.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/1/then\".length] === \"/\")){emErrs15.push(err79);err79.emUsed = true;}}if(emErrs15.length){const err80 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/then/errorMessage\",params:{errors: emErrs15},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires source\"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}const emErrs16 = [];for(const err81 of vErrors){if(!err81.emUsed){emErrs16.push(err81);}}vErrors = emErrs16;errors = emErrs16.length;}var _valid6 = _errs82 === errors;valid32 = _valid6;}if(!valid32){const err82 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/1/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}const _errs84 = errors;let valid34 = true;const _errs85 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err83 = {};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:in\")){const err84 = {};if(vErrors === null){vErrors = [err84];}else {vErrors.push(err84);}errors++;}}}}var _valid7 = _errs85 === errors;errors = _errs84;if(vErrors !== null){if(_errs84){vErrors.length = _errs84;}else {vErrors = null;}}if(_valid7){const _errs87 = errors;const _errs88 = errors;let valid36 = false;let passing0 = null;const _errs89 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.variables === undefined){const err85 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err85];}else {vErrors.push(err85);}errors++;}}var _valid8 = _errs89 === errors;if(_valid8){valid36 = true;passing0 = 0;}const _errs90 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.target === undefined){const err86 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf/1/required\",params:{missingProperty: \"target\"},message:\"should have required property '\"+\"target\"+\"'\"};if(vErrors === null){vErrors = [err86];}else {vErrors.push(err86);}errors++;}}var _valid8 = _errs90 === errors;if(_valid8 && valid36){valid36 = false;passing0 = [passing0, 1];}else {if(_valid8){valid36 = true;passing0 = 1;}}if(!valid36){const err87 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err87];}else {vErrors.push(err87);}errors++;}else {errors = _errs88;if(vErrors !== null){if(_errs88){vErrors.length = _errs88;}else {vErrors = null;}}}if(errors > 0){const emErrs17 = [];for(const err88 of vErrors){if(((((err88.keyword !== \"errorMessage\") && (!err88.emUsed)) && ((err88.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err88.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err88.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err88.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/2/then\") === 0)) && (err88.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/2/then\".length] === \"/\")){emErrs17.push(err88);err88.emUsed = true;}}if(emErrs17.length){const err89 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/then/errorMessage\",params:{errors: emErrs17},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires variables or target\"};if(vErrors === null){vErrors = [err89];}else {vErrors.push(err89);}errors++;}const emErrs18 = [];for(const err90 of vErrors){if(!err90.emUsed){emErrs18.push(err90);}}vErrors = emErrs18;errors = emErrs18.length;}var _valid7 = _errs87 === errors;valid34 = _valid7;}if(!valid34){const err91 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/2/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err91];}else {vErrors.push(err91);}errors++;}const _errs92 = errors;let valid37 = true;const _errs93 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err92 = {};if(vErrors === null){vErrors = [err92];}else {vErrors.push(err92);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:out\")){const err93 = {};if(vErrors === null){vErrors = [err93];}else {vErrors.push(err93);}errors++;}}}}var _valid9 = _errs93 === errors;errors = _errs92;if(vErrors !== null){if(_errs92){vErrors.length = _errs92;}else {vErrors = null;}}if(_valid9){const _errs95 = errors;const _errs96 = errors;let valid39 = false;let passing1 = null;const _errs97 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.variables === undefined){const err94 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/0/required\",params:{missingProperty: \"variables\"},message:\"should have required property '\"+\"variables\"+\"'\"};if(vErrors === null){vErrors = [err94];}else {vErrors.push(err94);}errors++;}}var _valid10 = _errs97 === errors;if(_valid10){valid39 = true;passing1 = 0;}const _errs98 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.source === undefined){const err95 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/1/required\",params:{missingProperty: \"source\"},message:\"should have required property '\"+\"source\"+\"'\"};if(vErrors === null){vErrors = [err95];}else {vErrors.push(err95);}errors++;}}var _valid10 = _errs98 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 1];}else {if(_valid10){valid39 = true;passing1 = 1;}const _errs99 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.sourceExpression === undefined){const err96 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf/2/required\",params:{missingProperty: \"sourceExpression\"},message:\"should have required property '\"+\"sourceExpression\"+\"'\"};if(vErrors === null){vErrors = [err96];}else {vErrors.push(err96);}errors++;}}var _valid10 = _errs99 === errors;if(_valid10 && valid39){valid39 = false;passing1 = [passing1, 2];}else {if(_valid10){valid39 = true;passing1 = 2;}}}if(!valid39){const err97 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/oneOf\",params:{passingSchemas: passing1},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err97];}else {vErrors.push(err97);}errors++;}else {errors = _errs96;if(vErrors !== null){if(_errs96){vErrors.length = _errs96;}else {vErrors = null;}}}if(errors > 0){const emErrs19 = [];for(const err98 of vErrors){if(((((err98.keyword !== \"errorMessage\") && (!err98.emUsed)) && ((err98.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err98.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err98.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err98.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/3/then\") === 0)) && (err98.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/3/then\".length] === \"/\")){emErrs19.push(err98);err98.emUsed = true;}}if(emErrs19.length){const err99 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/then/errorMessage\",params:{errors: emErrs19},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires variables, sourceExpression or source\"};if(vErrors === null){vErrors = [err99];}else {vErrors.push(err99);}errors++;}const emErrs20 = [];for(const err100 of vErrors){if(!err100.emUsed){emErrs20.push(err100);}}vErrors = emErrs20;errors = emErrs20.length;}var _valid9 = _errs95 === errors;valid37 = _valid9;}if(!valid37){const err101 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/3/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err101];}else {vErrors.push(err101);}errors++;}const _errs101 = errors;let valid40 = true;const _errs102 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if((data31.type === undefined) && (\"type\")){const err102 = {};if(vErrors === null){vErrors = [err102];}else {vErrors.push(err102);}errors++;}else {if(data31.type !== undefined){if(!equal(data31.type, \"camunda:errorEventDefinition\")){const err103 = {};if(vErrors === null){vErrors = [err103];}else {vErrors.push(err103);}errors++;}}}}var _valid11 = _errs102 === errors;errors = _errs101;if(vErrors !== null){if(_errs101){vErrors.length = _errs101;}else {vErrors = null;}}if(_valid11){const _errs104 = errors;const _errs105 = errors;let valid42 = false;let passing2 = null;const _errs106 = errors;if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.errorRef === undefined){const err104 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf/0/required\",params:{missingProperty: \"errorRef\"},message:\"should have required property '\"+\"errorRef\"+\"'\"};if(vErrors === null){vErrors = [err104];}else {vErrors.push(err104);}errors++;}}var _valid12 = _errs106 === errors;if(_valid12){valid42 = true;passing2 = 0;}if(!valid42){const err105 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/oneOf\",params:{passingSchemas: passing2},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err105];}else {vErrors.push(err105);}errors++;}else {errors = _errs105;if(vErrors !== null){if(_errs105){vErrors.length = _errs105;}else {vErrors = null;}}}if(errors > 0){const emErrs21 = [];for(const err106 of vErrors){if(((((err106.keyword !== \"errorMessage\") && (!err106.emUsed)) && ((err106.dataPath === dataPath+\"/properties/\" + i1+\"/binding\") || ((err106.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding\") === 0) && (err106.dataPath[dataPath+\"/properties/\" + i1+\"/binding\".length] === \"/\")))) && (err106.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/allOf/4/then\") === 0)) && (err106.schemaPath[\"#/definitions/properties/items/properties/binding/allOf/4/then\".length] === \"/\")){emErrs21.push(err106);err106.emUsed = true;}}if(emErrs21.length){const err107 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/then/errorMessage\",params:{errors: emErrs21},message:\"property.binding \" + JSON.stringify(data31 && data31.type) + \" requires errorRef\"};if(vErrors === null){vErrors = [err107];}else {vErrors.push(err107);}errors++;}const emErrs22 = [];for(const err108 of vErrors){if(!err108.emUsed){emErrs22.push(err108);}}vErrors = emErrs22;errors = emErrs22.length;}var _valid11 = _errs104 === errors;valid40 = _valid11;}if(!valid40){const err109 = {keyword:\"if\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/allOf/4/if\",params:{failingKeyword: \"then\"},message:\"should match \\\"then\\\" schema\"};if(vErrors === null){vErrors = [err109];}else {vErrors.push(err109);}errors++;}if(data31 && typeof data31 == \"object\" && !Array.isArray(data31)){if(data31.type === undefined){const err110 = {keyword:\"required\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/required\",params:{missingProperty: \"type\"},message:\"should have required property '\"+\"type\"+\"'\"};if(vErrors === null){vErrors = [err110];}else {vErrors.push(err110);}errors++;}if(data31.type !== undefined){let data37 = data31.type;if(typeof data37 !== \"string\"){const err111 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err111];}else {vErrors.push(err111);}errors++;}if(!((((((((((data37 === \"property\") || (data37 === \"camunda:property\")) || (data37 === \"camunda:inputParameter\")) || (data37 === \"camunda:outputParameter\")) || (data37 === \"camunda:in\")) || (data37 === \"camunda:out\")) || (data37 === \"camunda:in:businessKey\")) || (data37 === \"camunda:executionListener\")) || (data37 === \"camunda:field\")) || (data37 === \"camunda:errorEventDefinition\"))){const err112 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/enum\",params:{allowedValues: schema18.items.properties.binding.properties.type.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err112];}else {vErrors.push(err112);}errors++;}if(errors > 0){const emErrs23 = [];for(const err113 of vErrors){if(((((err113.keyword !== \"errorMessage\") && (!err113.emUsed)) && ((err113.dataPath === dataPath+\"/properties/\" + i1+\"/binding/type\") || ((err113.dataPath.indexOf(dataPath+\"/properties/\" + i1+\"/binding/type\") === 0) && (err113.dataPath[dataPath+\"/properties/\" + i1+\"/binding/type\".length] === \"/\")))) && (err113.schemaPath.indexOf(\"#/definitions/properties/items/properties/binding/properties/type\") === 0)) && (err113.schemaPath[\"#/definitions/properties/items/properties/binding/properties/type\".length] === \"/\")){emErrs23.push(err113);err113.emUsed = true;}}if(emErrs23.length){const err114 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/type\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/type/errorMessage\",params:{errors: emErrs23},message:\"invalid property.binding type \" + JSON.stringify(data37) + \"; must be any of { property, camunda:property, camunda:inputParameter, camunda:outputParameter, camunda:in, camunda:out, camunda:in:businessKey, camunda:executionListener, camunda:field, camunda:errorEventDefinition }\"};if(vErrors === null){vErrors = [err114];}else {vErrors.push(err114);}errors++;}const emErrs24 = [];for(const err115 of vErrors){if(!err115.emUsed){emErrs24.push(err115);}}vErrors = emErrs24;errors = emErrs24.length;}}if(data31.name !== undefined){if(typeof data31.name !== \"string\"){const err116 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/name\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/name/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err116];}else {vErrors.push(err116);}errors++;}}if(data31.event !== undefined){if(typeof data31.event !== \"string\"){const err117 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/event\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/event/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err117];}else {vErrors.push(err117);}errors++;}}if(data31.scriptFormat !== undefined){if(typeof data31.scriptFormat !== \"string\"){const err118 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/scriptFormat\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/scriptFormat/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err118];}else {vErrors.push(err118);}errors++;}}if(data31.source !== undefined){if(typeof data31.source !== \"string\"){const err119 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/source\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/source/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err119];}else {vErrors.push(err119);}errors++;}}if(data31.target !== undefined){if(typeof data31.target !== \"string\"){const err120 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/target\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/target/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err120];}else {vErrors.push(err120);}errors++;}}if(data31.expression !== undefined){if(typeof data31.expression !== \"boolean\"){const err121 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/expression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/expression/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err121];}else {vErrors.push(err121);}errors++;}}if(data31.variables !== undefined){let data44 = data31.variables;if(typeof data44 !== \"string\"){const err122 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err122];}else {vErrors.push(err122);}errors++;}if(!((data44 === \"all\") || (data44 === \"local\"))){const err123 = {keyword:\"enum\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/variables\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/variables/enum\",params:{allowedValues: schema18.items.properties.binding.properties.variables.enum},message:\"should be equal to one of the allowed values\"};if(vErrors === null){vErrors = [err123];}else {vErrors.push(err123);}errors++;}}if(data31.sourceExpression !== undefined){if(typeof data31.sourceExpression !== \"string\"){const err124 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding/sourceExpression\",schemaPath:\"#/definitions/properties/items/properties/binding/properties/sourceExpression/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err124];}else {vErrors.push(err124);}errors++;}}}else {const err125 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/binding\",schemaPath:\"#/definitions/properties/items/properties/binding/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err125];}else {vErrors.push(err125);}errors++;}}if(data8.constraints !== undefined){let data46 = data8.constraints;if(data46 && typeof data46 == \"object\" && !Array.isArray(data46)){if(data46.notEmpty !== undefined){if(typeof data46.notEmpty !== \"boolean\"){const err126 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/notEmpty\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/notEmpty/type\",params:{type: \"boolean\"},message:\"should be boolean\"};if(vErrors === null){vErrors = [err126];}else {vErrors.push(err126);}errors++;}}if(data46.minLength !== undefined){if(!(typeof data46.minLength == \"number\")){const err127 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/minLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/minLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err127];}else {vErrors.push(err127);}errors++;}}if(data46.maxLength !== undefined){if(!(typeof data46.maxLength == \"number\")){const err128 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/maxLength\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/maxLength/type\",params:{type: \"number\"},message:\"should be number\"};if(vErrors === null){vErrors = [err128];}else {vErrors.push(err128);}errors++;}}if(data46.pattern !== undefined){let data50 = data46.pattern;const _errs134 = errors;let valid45 = false;let passing3 = null;const _errs135 = errors;if(data50 && typeof data50 == \"object\" && !Array.isArray(data50)){if(data50.value !== undefined){if(typeof data50.value !== \"string\"){const err129 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern/value\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/value/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err129];}else {vErrors.push(err129);}errors++;}}if(data50.message !== undefined){if(typeof data50.message !== \"string\"){const err130 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern/message\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/properties/message/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err130];}else {vErrors.push(err130);}errors++;}}}else {const err131 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/0/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err131];}else {vErrors.push(err131);}errors++;}var _valid13 = _errs135 === errors;if(_valid13){valid45 = true;passing3 = 0;}const _errs141 = errors;if(typeof data50 !== \"string\"){const err132 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf/1/type\",params:{type: \"string\"},message:\"should be string\"};if(vErrors === null){vErrors = [err132];}else {vErrors.push(err132);}errors++;}var _valid13 = _errs141 === errors;if(_valid13 && valid45){valid45 = false;passing3 = [passing3, 1];}else {if(_valid13){valid45 = true;passing3 = 1;}}if(!valid45){const err133 = {keyword:\"oneOf\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints/pattern\",schemaPath:\"#/definitions/properties/items/properties/constraints/properties/pattern/oneOf\",params:{passingSchemas: passing3},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err133];}else {vErrors.push(err133);}errors++;}else {errors = _errs134;if(vErrors !== null){if(_errs134){vErrors.length = _errs134;}else {vErrors = null;}}}}}else {const err134 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1+\"/constraints\",schemaPath:\"#/definitions/properties/items/properties/constraints/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err134];}else {vErrors.push(err134);}errors++;}}}else {const err135 = {keyword:\"type\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err135];}else {vErrors.push(err135);}errors++;}if(errors > 0){const emErrors1 = {\"required\":{\"binding\":[]}};const templates1 = {required:{binding:function(){return \"missing binding for property \\\"\" + JSON.stringify(i1) + \"\\\"\"}}};let emPropParams0;let emParamsErrors0;for(const err136 of vErrors){if((((((err136.keyword !== \"errorMessage\") && (!err136.emUsed)) && (err136.dataPath === dataPath+\"/properties/\" + i1)) && (err136.keyword in emErrors1)) && (err136.schemaPath.indexOf(\"#/definitions/properties/items\") === 0)) && (/^\\/[^\\/]*$/.test(err136.schemaPath.slice(30)))){emPropParams0 = obj0[err136.keyword];emParamsErrors0 = emErrors1[err136.keyword][err136.params[emPropParams0]];if(emParamsErrors0){emParamsErrors0.push(err136);err136.emUsed = true;}}}for(const key1 in emErrors1){for(const keyProp0 in emErrors1[key1]){emParamsErrors0 = emErrors1[key1][keyProp0];if(emParamsErrors0.length){const tmpl0 = templates1[key1] && templates1[key1][keyProp0];const err137 = {keyword:\"errorMessage\",dataPath:dataPath+\"/properties/\" + i1,schemaPath:\"#/definitions/properties/items/errorMessage\",params:{errors: emParamsErrors0},message:tmpl0 ? tmpl0() : schema18.items.errorMessage[key1][keyProp0]};if(vErrors === null){vErrors = [err137];}else {vErrors.push(err137);}errors++;}}}const emErrs25 = [];for(const err138 of vErrors){if(!err138.emUsed){emErrs25.push(err138);}}vErrors = emErrs25;errors = emErrs25.length;}}}else {const err139 = {keyword:\"type\",dataPath:dataPath+\"/properties\",schemaPath:\"#/definitions/properties/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err139];}else {vErrors.push(err139);}errors++;}}if(data.metadata !== undefined){let data53 = data.metadata;if(!(data53 && typeof data53 == \"object\" && !Array.isArray(data53))){const err140 = {keyword:\"type\",dataPath:dataPath+\"/metadata\",schemaPath:\"#/properties/metadata/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err140];}else {vErrors.push(err140);}errors++;}}if(data.scopes !== undefined){let data54 = data.scopes;const _errs146 = errors;let valid47 = false;let passing4 = null;const _errs147 = errors;if(!(validate16(data54, {dataPath:dataPath+\"/scopes\",parentData:data,parentDataProperty:\"scopes\",rootData}))){vErrors = vErrors === null ? validate16.errors : vErrors.concat(validate16.errors);errors = vErrors.length;}var _valid14 = _errs147 === errors;if(_valid14){valid47 = true;passing4 = 0;}const _errs148 = errors;if(!(validate18(data54, {dataPath:dataPath+\"/scopes\",parentData:data,parentDataProperty:\"scopes\",rootData}))){vErrors = vErrors === null ? validate18.errors : vErrors.concat(validate18.errors);errors = vErrors.length;}var _valid14 = _errs148 === errors;if(_valid14 && valid47){valid47 = false;passing4 = [passing4, 1];}else {if(_valid14){valid47 = true;passing4 = 1;}}if(!valid47){const err141 = {keyword:\"oneOf\",dataPath:dataPath+\"/scopes\",schemaPath:\"#/properties/scopes/oneOf\",params:{passingSchemas: passing4},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err141];}else {vErrors.push(err141);}errors++;}else {errors = _errs146;if(vErrors !== null){if(_errs146){vErrors.length = _errs146;}else {vErrors = null;}}}}if(data.entriesVisible !== undefined){let data55 = data.entriesVisible;if((!(data55 && typeof data55 == \"object\" && !Array.isArray(data55))) && (typeof data55 !== \"boolean\")){const err142 = {keyword:\"type\",dataPath:dataPath+\"/entriesVisible\",schemaPath:\"#/properties/entriesVisible/type\",params:{type: schema17.properties.entriesVisible.type},message:\"should be object,boolean\"};if(vErrors === null){vErrors = [err142];}else {vErrors.push(err142);}errors++;}}}else {const err143 = {keyword:\"type\",dataPath,schemaPath:\"#/type\",params:{type: \"object\"},message:\"should be object\"};if(vErrors === null){vErrors = [err143];}else {vErrors.push(err143);}errors++;}if(errors > 0){const emErrors2 = {\"required\":{\"name\":[],\"id\":[],\"appliesTo\":[],\"properties\":[]}};const templates2 = {required:{}};let emPropParams1;let emParamsErrors1;for(const err144 of vErrors){if((((((err144.keyword !== \"errorMessage\") && (!err144.emUsed)) && (err144.dataPath === dataPath)) && (err144.keyword in emErrors2)) && (err144.schemaPath.indexOf(\"#\") === 0)) && (/^\\/[^\\/]*$/.test(err144.schemaPath.slice(1)))){emPropParams1 = obj0[err144.keyword];emParamsErrors1 = emErrors2[err144.keyword][err144.params[emPropParams1]];if(emParamsErrors1){emParamsErrors1.push(err144);err144.emUsed = true;}}}for(const key2 in emErrors2){for(const keyProp1 in emErrors2[key2]){emParamsErrors1 = emErrors2[key2][keyProp1];if(emParamsErrors1.length){const tmpl1 = templates2[key2] && templates2[key2][keyProp1];const err145 = {keyword:\"errorMessage\",dataPath,schemaPath:\"#/errorMessage\",params:{errors: emParamsErrors1},message:tmpl1 ? tmpl1() : schema17.errorMessage[key2][keyProp1]};if(vErrors === null){vErrors = [err145];}else {vErrors.push(err145);}errors++;}}}const emErrs26 = [];for(const err146 of vErrors){if(!err146.emUsed){emErrs26.push(err146);}}vErrors = emErrs26;errors = emErrs26.length;}validate15.errors = vErrors;return errors === 0;}function validate14(data, {dataPath=\"\", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;if(!(validate15(data, {dataPath,parentData,parentDataProperty,rootData}))){vErrors = vErrors === null ? validate15.errors : vErrors.concat(validate15.errors);errors = vErrors.length;}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;}const _errs2 = errors;if(Array.isArray(data)){const len0 = data.length;for(let i0=0; i0<len0; i0++){if(!(validate15(data[i0], {dataPath:dataPath+\"/\" + i0,parentData:data,parentDataProperty:i0,rootData}))){vErrors = vErrors === null ? validate15.errors : vErrors.concat(validate15.errors);errors = vErrors.length;}}}else {const err0 = {keyword:\"type\",dataPath,schemaPath:\"#/oneOf/1/type\",params:{type: \"array\"},message:\"should be array\"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs2 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;}}if(!valid0){const err1 = {keyword:\"oneOf\",dataPath,schemaPath:\"#/oneOf\",params:{passingSchemas: passing0},message:\"should match exactly one schema in oneOf\"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate14.errors = vErrors;return errors === 0;}\nstandaloneValidator.default = _default;\n\nfunction getSchemaVersion() {\n  return version;\n}\n\n/**\n * Validate a single object.\n *\n * @param {Object} object\n * @return {Object} single object validation result\n */\nfunction validate(object) {\n  const dataPointerMap = generateDataPointerMap(object);\n\n  const valid = standaloneValidator(object);\n\n  let errors = standaloneValidator.errors;\n\n  if (errors && errors.length) {\n\n    // @pinussilvestrus: the <ajv-errors> extensions produces a couple of\n    // unnecessary errors when using an <errorMessage> attribute.\n    // Therefore, we should flatten the produced errors a bit to not\n    // confuse the consumer of this library.\n\n    // (1) wrap raw errors in case of custom errorMessage attribute\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errors, wrapRawErrors);\n\n    // (2) ignore supportive error messages (e.g. \"if-then-rules\")\n    errors = ignoreSupportiveErrors(errors);\n\n    // (3) set data pointer for each error\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errors, function(error) {\n      setDataPointer(error, dataPointerMap);\n    });\n  }\n\n  return {\n    valid: valid,\n    object: object,\n    errors: errors\n  };\n}\n\n/**\n * Validate a list of objects\n *\n * @param  {Object[]} objects\n * @return {Object} list validation result\n */\nfunction validateAll(objects) {\n\n  const results = [];\n\n  let allValid = true;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(objects, function(object) {\n    const result = validate(object);\n\n    if (!result.valid) {\n      allValid = false;\n    }\n\n    results.push(result);\n  });\n\n  return {\n    valid: allValid,\n    results: results\n  };\n}\n\n\n// helper //////////////\nfunction wrapRawErrors(error) {\n  const params = error.params;\n\n  if (params && params.errors) {\n    params.rawErrors = params.errors;\n    delete params.errors;\n  }\n}\n\nfunction setDataPointer(error, dataPointerMap) {\n  const dataPath = error.dataPath;\n\n  const pointer = dataPointerMap[dataPath];\n\n  error.dataPointer = pointer;\n}\n\nfunction ignoreSupportiveErrors(errors) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(errors, function(error) {\n    return error.keyword !== 'if';\n  });\n}\n\n/**\n * Generates a key-pointer map for the object.\n *\n * Example:\n *\n * {\n *  foo: 'bar'\n * }\n *\n * =>\n *\n * {\n *  '': {\n *    value: { line: 0, column: 0, pos: 0 },\n *    valueEnd: { line: 2, column: 1, pos: 18 }\n *  },\n *  '/foo': {\n *    key: { line: 1, column: 2, pos: 4 },\n *    keyEnd: { line: 1, column: 7, pos: 9 },\n *    value: { line: 1, column: 9, pos: 11 },\n *    valueEnd: { line: 1, column: 14, pos: 16 }\n *  }\n * }\n *\n * @param {Object} object\n * @return {Object}\n */\nfunction generateDataPointerMap(object) {\n  return jsonSourceMap.stringify(object, null, 2).pointers;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getProcessVariables\": () => (/* binding */ getProcessVariables),\n/* harmony export */   \"getVariablesForScope\": () => (/* binding */ getVariablesForScope)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement} the inputOutput object\n */\nfunction getInputOutput(element) {\n  return (getElements(element, 'camunda:InputOutput') || [])[0];\n}\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {ModdleElement} element\n *\n * @return {Array<ModdleElement>} a list of input parameter objects\n */\nfunction getInputParameters(element) {\n  return getParameters(element, 'inputParameters');\n}\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {ModdleElement} element\n * @param  {boolean} insideConnector\n *\n * @return {Array<ModdleElement>} a list of output parameter objects\n */\nfunction getOutputParameters(element) {\n  return getParameters(element, 'outputParameters');\n}\n\n/**\n * Return all form fields existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array<ModdleElement>} a list of form fields\n */\nfunction getFormFields(element) {\n  var formData = getFormData(element);\n  return (formData && formData.get('fields')) || [];\n}\n\n/**\n * Return form data existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement}\n */\nfunction getFormData(element) {\n  return (getElements(element, 'camunda:FormData') || [])[0];\n}\n\n/**\n * Return out mappings existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {Array<ModdleElement>}\n */\nfunction getOutMappings(element) {\n  return getElements(element, 'camunda:Out') || [];\n}\n\n\n// helpers //////////\n\nfunction getElements(element, type, property) {\n  var elements = getExtensionElements(element, type) || [];\n\n  return !property ? elements : (elements[0] || {})[property] || [];\n}\n\nfunction getParameters(element, property) {\n  var inputOutput = getInputOutput(element);\n\n  return (inputOutput && inputOutput.get(property)) || [];\n}\n\nfunction getExtensionElements(element, type) {\n  var extensionElements = element.get('extensionElements');\n\n  if (typeof extensionElements !== 'undefined') {\n    var extensionValues = extensionElements.get('values');\n\n    if (typeof extensionValues !== 'undefined') {\n      var elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(extensionValues, function(value) {\n        return is(value, type);\n      });\n\n      if (elements.length) {\n        return elements;\n      }\n    }\n  }\n}\n\nfunction is(element, type) {\n  return (\n    element &&\n    typeof element.$instanceOf === 'function' &&\n    element.$instanceOf(type)\n  );\n}\n\n/**\n * Get all parent elements for a given element.\n *\n * @param {ModdleElement|string} element\n *\n * @returns {Array<ModdleElement>}\n */\nfunction getParents(element) {\n  var parents = [];\n  var current = element;\n\n  while (current.$parent) {\n    parents.push(current.$parent);\n    current = current.$parent;\n  }\n\n  return parents;\n}\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param  {Object|Array<Object>} elements\n * @param  {Function} fn iterator function called with (element, index, recursionDepth)\n * @param  {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n  depth = depth || 0;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [elements];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(s, i) {\n    var filter = fn(s, i, depth);\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(filter) && filter.length) {\n      eachElement(filter, fn, depth + 1);\n    }\n  });\n}\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array<Object>} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n  var canAdd = !unique || elements.indexOf(e) === -1;\n\n  if (canAdd) {\n    elements.push(e);\n  }\n\n  return canAdd;\n}\n\n/**\n * Collects self + flow elements up to a given depth from a list of elements.\n *\n * @param  {ModdleElement|Array<ModdleElement>} elements the elements to select the flowElements from\n * @param  {boolean} unique whether to return a unique result set (no duplicates)\n * @param  {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array<ModdleElement>} found elements\n */\nfunction selfAndFlowElements(elements, unique, maxDepth) {\n  var result = [],\n      processedFlowElements = [];\n\n  eachElement(elements, function(element, i, depth) {\n    add(result, element, unique);\n\n    var flowElements = element.flowElements;\n\n    // max traversal depth not reached yet\n    if (maxDepth === -1 || depth < maxDepth) {\n\n      // flowElements exist && flowElements not yet processed\n      if (flowElements && add(processedFlowElements, flowElements, unique)) {\n        return flowElements;\n      }\n    }\n  });\n\n  return result;\n}\n\n/**\n * Return self + ALL flowElements for a number of elements\n *\n * @param  {Array<ModdleElement>} elements to query\n * @param  {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array<ModdleElement>} the collected elements\n */\nfunction selfAndAllFlowElements(elements, allowDuplicates) {\n  return selfAndFlowElements(elements, !allowDuplicates, -1);\n}\n\n/**\n * Return full moddle element for given element id\n *\n * @param {string} elementId\n * @param {ModdleElement} rootElement\n *\n * @returns {ModdleElement}\n */\nfunction getElement(elementId, rootElement) {\n  var allElements = selfAndAllFlowElements(rootElement);\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(allElements, function(element) {\n    return element.id === elementId;\n  });\n}\n\nfunction addVariableToList(variablesList, newVariable) {\n  var foundIdx = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.findIndex)(variablesList, function(variable) {\n    return (\n      variable.name === newVariable.name && variable.scope === newVariable.scope\n    );\n  });\n\n  if (foundIdx >= 0) {\n    variablesList[foundIdx].origin = combineArrays(\n      variablesList[foundIdx].origin,\n      newVariable.origin\n    );\n  } else {\n    variablesList.push(newVariable);\n  }\n}\n\n/**\n * Creates new process variable definition object\n * Identifies correct (highest) scope, in which variable is available\n *\n * @param {ModdleElement} flowElement\n * @param {String} name\n * @param {ModdleElement} defaultScope\n *\n * @returns {ProcessVariable}\n */\nfunction createProcessVariable(flowElement, name, defaultScope) {\n  var scope = getScope(flowElement, defaultScope, name);\n\n  return {\n    name: name,\n    origin: [flowElement],\n    scope: scope,\n  };\n}\n\n\n// helpers ////////////////////\n\n/**\n * Set parent container if it defines it's own scope for the variable, so\n * when it defines an input mapping for it. Otherwise returns the default global scope\n */\nfunction getScope(element, globalScope, variableName) {\n  var parents = getParents(element);\n\n  var scopedParent = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parents, function(parent) {\n    return (\n      is$1(parent, 'bpmn:SubProcess') && hasInputParameter(parent, variableName)\n    );\n  });\n\n  return scopedParent ? scopedParent : globalScope;\n}\n\nfunction is$1(element, type) {\n  return (\n    element &&\n      typeof element.$instanceOf === 'function' &&\n      element.$instanceOf(type)\n  );\n}\n\nfunction hasInputParameter(element, name) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(getInputParameters(element), function(input) {\n    return input.name === name;\n  });\n}\n\nfunction combineArrays(a, b) {\n  return a.concat(b);\n}\n\n/**\n * Retrieves process variables defined in output parameters, e.g.\n *\n * <camunda:inputOutput>\n *   <camunda:outputParameter name=\"variable1\">200</camunda:outputParameter>\n *   <camunda:outputParameter name=\"variable2\">${myLocalVar + 20}</camunda:outputParameter>\n * </camunda:inputOutput>\n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractOutputParameters(options) {\n  var elements = options.elements,\n      containerElement = options.containerElement,\n      processVariables = options.processVariables;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    // variables are created by output parameters\n    var outputParameters = getOutputParameters(element);\n\n    // extract all variables with correct scope\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outputParameters, function(parameter) {\n      var newVariable = createProcessVariable(\n        element,\n        parameter.name,\n        containerElement\n      );\n\n      addVariableToList(processVariables, newVariable);\n    });\n  });\n\n  return processVariables;\n}\n\n/**\n * Retrieves process variables defined in result variables, e.g.\n *\n * <bpmn:sendTask\n *   id=\"SendTask_1\"\n *   camunda:expression=\"${myBean.ready}\"\n *   camunda:resultVariable=\"variable1\"\n * />\n *\n * => Adds one variable \"variable1\"to the list.\n *\n */\nfunction extractResultVariables(options) {\n  var elements = options.elements,\n      containerElement = options.containerElement,\n      processVariables = options.processVariables;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    var resultVariable = getResultVariable(element);\n\n    if (resultVariable) {\n      var newVariable = createProcessVariable(\n        element,\n        resultVariable,\n        containerElement\n      );\n\n      addVariableToList(processVariables, newVariable);\n    }\n  });\n\n  return processVariables;\n}\n\n\n// helpers ///////////////////////\n\nfunction getResultVariable(element) {\n  return element.get('camunda:resultVariable');\n}\n\n/**\n * Retrieves process variables defined in form fields, e.g.\n *\n * <camunda:formData>\n *   <camunda:formField id=\"variable1\" />\n *   <camunda:formField id=\"variable2\" />\n * </camunda:formData>\n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractFormFields(options) {\n  var elements = options.elements,\n      containerElement = options.containerElement,\n      processVariables = options.processVariables;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    var formFields = getFormFields(element);\n\n    // extract all variables with correct scope\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(formFields, function(field) {\n      var newVariable = createProcessVariable(\n        element,\n        field.id,\n        containerElement\n      );\n\n      addVariableToList(processVariables, newVariable);\n    });\n  });\n\n  return processVariables;\n}\n\n/**\n * Retrieves process variables defined in output mappings and\n * ignores local variables, e.g.\n *\n * <bpmn:extensionElements>\n *   <camunda:out sourceExpression=\"${myBean.ready}\" target=\"variable1\" />\n *   <camunda:out source=\"foo\" target=\"variableLocal\" local=\"true\" />\n * </bpmn:extensionElements>\n *\n * => Adds one variable \"variable1\" to the list.\n *\n */\nfunction extractOutMappings(options) {\n  var elements = options.elements,\n      containerElement = options.containerElement,\n      processVariables = options.processVariables;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    var outMappings = getOutMappings(element);\n\n    // extract all variables with correct scope\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outMappings, function(mapping) {\n\n      // do not use variables marked as <local>\n      if (mapping.local) {\n        return;\n      }\n\n      var newVariable = createProcessVariable(\n        element,\n        mapping.target,\n        containerElement\n      );\n\n      addVariableToList(processVariables, newVariable);\n    });\n  });\n\n  return processVariables;\n}\n\n/**\n *\n * @param {ModdleElement} element\n * @param {string} [type] - optional\n *\n * @return {Array<ModdleElement>|undefined} collection of event definitions or none\n */\nfunction getEventDefinitions(element, type) {\n  var eventDefinitions = element.eventDefinitions;\n\n  if (!eventDefinitions || !type) {\n    return eventDefinitions;\n  }\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(eventDefinitions, function(definition) {\n    return is$2(definition, type);\n  });\n}\n\n/**\n * Returns error event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array<ModdleElement>} collection of error event definitions\n */\nfunction getErrorEventDefinitions(element) {\n  return getEventDefinitions(element, 'bpmn:ErrorEventDefinition');\n}\n\n/**\n * Returns escalation event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array<ModdleElement>} collection of escalation event definitions\n */\nfunction getEscalationEventDefinitions(element) {\n  return getEventDefinitions(element, 'bpmn:EscalationEventDefinition');\n}\n\n\n// helper ////////////////\n\nfunction is$2(element, type) {\n  return (\n    element &&\n    typeof element.$instanceOf === 'function' &&\n    element.$instanceOf(type)\n  );\n}\n\n/**\n * Retrieves process variables defined in event definitions, e.g.\n *\n * <bpmn:escalationEventDefinition\n *   id=\"EscalationEventDefinition_1\"\n *   escalationRef=\"Escalation_1\"\n *   camunda:escalationCodeVariable=\"variable1\"\n * />\n *\n * => Adds one variable \"variable1\" to the list.\n *\n * <bpmn:errorEventDefinition\n *   id=\"ErrorEventDefinition_1\"\n *   errorRef=\"Error_1\"\n *   camunda:errorCodeVariable=\"variable2\"\n *   camunda:errorMessageVariable=\"variable3\"\n * />\n *\n * => Adds two variables \"variable2\" & \"variable3\" to the list.\n *\n */\nfunction extractEventDefinitionVariables(options) {\n  var elements = options.elements,\n      containerElement = options.containerElement,\n      processVariables = options.processVariables;\n\n  var addVariable = function(element, name) {\n    var newVariable = createProcessVariable(\n      element,\n      name,\n      containerElement\n    );\n\n    addVariableToList(processVariables, newVariable);\n  };\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    // (1) error event code + message variable\n    var errorEventDefinitions = getErrorEventDefinitions(element);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(errorEventDefinitions, function(definition) {\n\n      var errorCodeVariable = definition.get('errorCodeVariable'),\n          errorMessageVariable = definition.get('errorMessageVariable');\n\n      if (errorCodeVariable) {\n        addVariable(element, errorCodeVariable);\n      }\n\n      if (errorMessageVariable) {\n        addVariable(element, errorMessageVariable);\n      }\n    });\n\n    // (2) escalation code variable\n    var escalationEventDefinitions = getEscalationEventDefinitions(element);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(escalationEventDefinitions, function(definition) {\n\n      var escalationCodeVariable = definition.get('escalationCodeVariable');\n\n      if (escalationCodeVariable) {\n        addVariable(element, escalationCodeVariable);\n      }\n    });\n\n  });\n\n  return processVariables;\n}\n\nvar extractors = [\n  extractOutputParameters,\n  extractResultVariables,\n  extractFormFields,\n  extractOutMappings,\n  extractEventDefinitionVariables\n];\n\n/**\n * @typedef {Object} ProcessVariable\n * @property {string} name\n * @property {Array<ModdleElement>} origin\n * @property {ModdleElement} scope\n */\n\n// api /////////////////////////\n\n/**\n * Retrieves all process variables for a given container element.\n * @param {ModdleElement} containerElement\n *\n * @returns {Array<ProcessVariable>}\n */\nfunction getProcessVariables(containerElement) {\n  var processVariables = [];\n\n  // (1) extract all flow elements inside the container\n  var elements = selfAndAllFlowElements([containerElement], false);\n\n  // (2) extract all variables from the extractors\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(extractors, function(extractor) {\n    extractor({\n      elements: elements,\n      containerElement: containerElement,\n      processVariables: processVariables\n    });\n  });\n\n  return processVariables;\n}\n\n/**\n * Retrieves all variables which are available in the given scope\n *\n * * Exclude variables which are only available in other scopes\n * * Exclude variables which are produced by the given element\n * * Include variables which are available in parent scopes\n *\n * @param {string} scope\n * @param {ModdleElement} rootElement element from where to extract all variables\n *\n * @returns {Array<ProcessVariable>}\n */\nfunction getVariablesForScope(scope, rootElement) {\n\n  var allVariables = getProcessVariables(rootElement);\n\n  var scopeElement = getElement(scope, rootElement);\n\n  // (1) get variables for given scope\n  var scopeVariables = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(allVariables, function(variable) {\n    return variable.scope.id === scopeElement.id;\n  });\n\n  // (2) get variables for parent scopes\n  var parents = getParents(scopeElement);\n\n  var parentsScopeVariables = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(allVariables, function(variable) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parents, function(parent) {\n      return parent.id === variable.scope.id;\n    });\n  });\n\n  return combineArrays$1(scopeVariables, parentsScopeVariables);\n}\n\n// helpers ////////////////////\n\nfunction combineArrays$1(a, b) {\n  return a.concat(b);\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/index.js":
  /*!********************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/index.js ***!
    \********************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("module.exports = __webpack_require__(/*! ./lib */ \"./node_modules/bpmn-js-properties-panel/lib/index.js\");\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js ***!
    \**************************************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A component that decides upon the visibility / editable\n * state of properties in the properties panel.\n *\n * Implementors must subclass this component and override\n * {@link PropertiesActivator#isEntryVisible} and\n * {@link PropertiesActivator#isPropertyEditable} to provide\n * custom behavior.\n *\n * @class\n * @constructor\n *\n * @param {EventBus} eventBus\n * @param {Number} [priority] at which priority to hook into the activation\n */\nfunction PropertiesActivator(eventBus, priority) {\n  var self = this;\n\n  priority = priority || DEFAULT_PRIORITY;\n\n  eventBus.on('propertiesPanel.isEntryVisible', priority, function(context) {\n    var element = context.element,\n        entry = context.entry,\n        group = context.group,\n        tab = context.tab;\n\n    return self.isEntryVisible(element, entry, group, tab);\n  });\n\n  eventBus.on('propertiesPanel.isPropertyEditable', priority, function(context) {\n    var element = context.element,\n        entry = context.entry,\n        group = context.group,\n        propertyName = context.propertyName,\n        tab = context.tab;\n\n    return self.isPropertyEditable(propertyName, element, entry, group, tab);\n  });\n}\n\nPropertiesActivator.$inject = [ 'eventBus' ];\n\nmodule.exports = PropertiesActivator;\n\n\n/**\n * Should the given entry be visible for the specified element.\n *\n * @method  PropertiesActivator#isEntryVisible\n *\n * @param {ModdleElement} element\n * @param {Object} entry\n * @param {Object} group\n * @param {Object} tab\n *\n * @returns {boolean}\n */\nPropertiesActivator.prototype.isEntryVisible = function(element, entry, group, tab) {\n  return true;\n};\n\n/**\n * Should the given property be editable for the specified element\n *\n * @method  PropertiesActivator#isPropertyEditable\n *\n * @param {string} propertyName\n * @param {ModdleElement} element\n * @param {Object} entry\n * @param {Object} group\n * @param {Object} tab\n *\n * @returns {boolean}\n */\nPropertiesActivator.prototype.isPropertyEditable = function(propertyName, element, entry, group, tab) {\n  return true;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js ***!
    \**********************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar createDropdown = __webpack_require__(/*! ./Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").createDropdown,\n    escapeHTML = __webpack_require__(/*! ./Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domQueryAll = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").queryAll,\n    domRemove = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").remove,\n    domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n    domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr,\n    domDelegate = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").delegate,\n    domMatches = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").matches;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\"),\n    get = __webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"),\n    keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n    isEmpty = __webpack_require__(/*! lodash/isEmpty */ \"./node_modules/lodash/isEmpty.js\"),\n    isArray = __webpack_require__(/*! lodash/isArray */ \"./node_modules/lodash/isArray.js\"),\n    isFunction = __webpack_require__(/*! lodash/isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isObject = __webpack_require__(/*! lodash/isObject */ \"./node_modules/lodash/isObject.js\"),\n    xor = __webpack_require__(/*! lodash/xor */ \"./node_modules/lodash/xor.js\"),\n    debounce = __webpack_require__(/*! lodash/debounce */ \"./node_modules/lodash/debounce.js\"),\n    flattenDeep = __webpack_require__(/*! lodash/flattenDeep */ \"./node_modules/lodash/flattenDeep.js\"),\n    keyBy = __webpack_require__(/*! lodash/keyBy */ \"./node_modules/lodash/keyBy.js\"),\n    map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\"),\n    reduce = __webpack_require__(/*! lodash/reduce */ \"./node_modules/lodash/reduce.js\");\n\nvar updateSelection = __webpack_require__(/*! selection-update */ \"./node_modules/selection-update/index.js\");\n\nvar scrollTabs = __webpack_require__(/*! scroll-tabs */ \"./node_modules/scroll-tabs/index.js\").default;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar HIDE_CLASS = 'bpp-hidden';\nvar DEBOUNCE_DELAY = 300;\n\nvar DEFAULT_PRIORITY = 1000;\n\nfunction isToggle(node) {\n  return node.type === 'checkbox' || node.type === 'radio';\n}\n\nfunction isSelect(node) {\n  return node.type === 'select-one';\n}\n\nfunction isContentEditable(node) {\n  return domAttr(node, 'contenteditable');\n}\n\nfunction getPropertyPlaceholders(node) {\n  var selector = 'input[name], textarea[name], [data-value], [contenteditable]';\n  var placeholders = domQueryAll(selector, node);\n  if ((!placeholders || !placeholders.length) && domMatches(node, selector)) {\n    placeholders = [ node ];\n  }\n  return placeholders;\n}\n\n/**\n * Return all active form controls.\n * This excludes the invisible controls unless all is true\n *\n * @param {Element} node\n * @param {Boolean} [all=false]\n */\nfunction getFormControls(node, all) {\n  var controls = domQueryAll('input[name], textarea[name], select[name], [contenteditable]', node);\n\n  if (!controls || !controls.length) {\n    controls = domMatches(node, 'option') ? [ node ] : controls;\n  }\n\n  if (!all) {\n    controls = filter(controls, function(node) {\n      return !domClosest(node, '.' + HIDE_CLASS);\n    });\n  }\n\n  return controls;\n}\n\nfunction getFormControlValuesInScope(entryNode) {\n  var values = {};\n\n  var controlNodes = getFormControls(entryNode);\n\n  forEach(controlNodes, function(controlNode) {\n    var value = controlNode.value;\n\n    var name = domAttr(controlNode, 'name') || domAttr(controlNode, 'data-name');\n\n    // take toggle state into account for radio / checkboxes\n    if (isToggle(controlNode)) {\n      if (controlNode.checked) {\n        if (!domAttr(controlNode, 'value')) {\n          value = true;\n        } else {\n          value = controlNode.value;\n        }\n      } else {\n        value = null;\n      }\n    } else\n    if (isContentEditable(controlNode)) {\n      value = controlNode.innerText;\n    }\n\n    if (value !== null) {\n\n      // return the actual value\n      // handle serialization in entry provider\n      // (ie. if empty string should be serialized or not)\n      values[name] = value;\n    }\n  });\n\n  return values;\n\n}\n\n/**\n * Extract input values from entry node\n *\n * @param  {DOMElement} entryNode\n * @returns {Object}\n */\nfunction getFormControlValues(entryNode) {\n\n  var values;\n\n  var listContainer = domQuery('[data-list-entry-container]', entryNode);\n  if (listContainer) {\n    values = [];\n    var listNodes = listContainer.children || [];\n    forEach(listNodes, function(listNode) {\n      values.push(getFormControlValuesInScope(listNode));\n    });\n  } else {\n    values = getFormControlValuesInScope(entryNode);\n  }\n\n  return values;\n}\n\n/**\n * Return true if the given form extracted value equals\n * to an old cached version.\n *\n * @param {Object} value\n * @param {Object} oldValue\n * @return {Boolean}\n */\nfunction valueEqual(value, oldValue) {\n\n  if (value && !oldValue) {\n    return false;\n  }\n\n  var allKeys = keys(value).concat(keys(oldValue));\n\n  return allKeys.every(function(key) {\n    return value[key] === oldValue[key];\n  });\n}\n\n/**\n * Return true if the given form extracted value(s)\n * equal an old cached version.\n *\n * @param {Array<Object>|Object} values\n * @param {Array<Object>|Object} oldValues\n * @return {Boolean}\n */\nfunction valuesEqual(values, oldValues) {\n\n  if (isArray(values)) {\n\n    if (values.length !== oldValues.length) {\n      return false;\n    }\n\n    return values.every(function(v, idx) {\n      return valueEqual(v, oldValues[idx]);\n    });\n  }\n\n  return valueEqual(values, oldValues);\n}\n\n/**\n * Return a mapping of { id: entry } for all entries in the given groups in the given tabs.\n *\n * @param {Object} tabs\n * @return {Object}\n */\nfunction extractEntries(tabs) {\n  return keyBy(flattenDeep(map(flattenDeep(map(tabs, 'groups')), 'entries')), 'id');\n}\n\n/**\n * Return a mapping of { id: group } for all groups in the given tabs.\n *\n * @param {Object} tabs\n * @return {Object}\n */\nfunction extractGroups(tabs) {\n  return keyBy(flattenDeep(map(tabs, 'groups')), 'id');\n}\n\n/**\n * A properties panel implementation.\n *\n * To use it provide a `propertiesProvider` component that knows\n * about which properties to display.\n *\n * Properties edit state / visibility can be intercepted\n * via a custom {@link PropertiesActivator}.\n *\n * @class\n * @constructor\n *\n * @param {Object} config\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Canvas} canvas\n * @param {CommandStack} commandStack\n */\nfunction PropertiesPanel(config, injector, eventBus, modeling, commandStack, canvas) {\n\n  this._eventBus = eventBus;\n  this._modeling = modeling;\n  this._commandStack = commandStack;\n  this._canvas = canvas;\n\n  var propertiesProvider = injector.get('propertiesProvider', false);\n\n  if (propertiesProvider) {\n    this.registerProvider(propertiesProvider);\n  }\n\n  this._init(config);\n}\n\nPropertiesPanel.$inject = [\n  'config.propertiesPanel',\n  'injector',\n  'eventBus',\n  'modeling',\n  'commandStack',\n  'canvas'\n];\n\nmodule.exports = PropertiesPanel;\n\n/**\n * @param {number} [priority]\n * @param { { getTabs: any[] | (any) => (any[]) => any[]) } } provider\n */\nPropertiesPanel.prototype.registerProvider = function(priority, provider) {\n\n  if (!provider) {\n    provider = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  this._eventBus.on('propertiesPanel.getProviders', priority, function(event) {\n    event.providers.push(provider);\n  });\n\n  this._eventBus.fire('propertiesPanel.providersChanged');\n};\n\nPropertiesPanel.prototype._init = function(config) {\n\n  var canvas = this._canvas,\n      eventBus = this._eventBus;\n\n  var self = this;\n\n  /**\n   * Select the root element once it is added to the canvas\n   */\n  eventBus.on('root.added', function(e) {\n    var element = e.element;\n\n    if (isImplicitRoot(element)) {\n      return;\n    }\n\n    self.update(element);\n  });\n\n  eventBus.on('selection.changed', function(e) {\n    var newElement = e.newSelection[0];\n\n    var rootElement = canvas.getRootElement();\n\n    if (isImplicitRoot(rootElement)) {\n      return;\n    }\n\n    self.update(newElement);\n  });\n\n  // add / update tab-bar scrolling\n  eventBus.on([\n    'propertiesPanel.changed',\n    'propertiesPanel.resized'\n  ], function(event) {\n\n    var tabBarNode = domQuery('.bpp-properties-tab-bar', self._container);\n\n    if (!tabBarNode) {\n      return;\n    }\n\n    var scroller = scrollTabs.get(tabBarNode);\n\n    if (!scroller) {\n\n      // we did not initialize yet, do that\n      // now and make sure we select the active\n      // tab on scroll update\n      scroller = scrollTabs(tabBarNode, {\n        selectors: {\n          tabsContainer: '.bpp-properties-tabs-links',\n          tab: '.bpp-properties-tabs-links li',\n          ignore: '.bpp-hidden',\n          active: '.bpp-active'\n        }\n      });\n\n\n      scroller.on('scroll', function(newActiveNode, oldActiveNode, direction) {\n\n        var linkNode = domQuery('[data-tab-target]', newActiveNode);\n\n        var tabId = domAttr(linkNode, 'data-tab-target');\n\n        self.activateTab(tabId);\n      });\n    }\n\n    // react on tab changes and or tabContainer resize\n    // and make sure the active tab is shown completely\n    scroller.update();\n  });\n\n  eventBus.on('elements.changed', function(e) {\n\n    var current = self._current;\n    var element = current && current.element;\n\n    if (element) {\n      if (e.elements.indexOf(element) !== -1) {\n        self.update(element);\n      }\n    }\n  });\n\n  eventBus.on([\n    'elementTemplates.changed',\n    'propertiesPanel.providersChanged'\n  ], function() {\n    var current = self._current;\n    var element = current && current.element;\n\n    if (element) {\n      self.update(element);\n    }\n  });\n\n  eventBus.on('diagram.destroy', function() {\n    self.detach();\n  });\n\n  this._container = domify('<div class=\"bpp-properties-panel\"></div>');\n\n  this._bindListeners(this._container);\n\n  if (config && config.parent) {\n    this.attachTo(config.parent);\n  }\n};\n\n\nPropertiesPanel.prototype.attachTo = function(parentNode) {\n\n  if (!parentNode) {\n    throw new Error('parentNode required');\n  }\n\n  // ensure we detach from the\n  // previous, old parent\n  this.detach();\n\n  // unwrap jQuery if provided\n  if (parentNode.get && parentNode.constructor.prototype.jquery) {\n    parentNode = parentNode.get(0);\n  }\n\n  if (typeof parentNode === 'string') {\n    parentNode = domQuery(parentNode);\n  }\n\n  var container = this._container;\n\n  parentNode.appendChild(container);\n\n  this._emit('attach');\n};\n\nPropertiesPanel.prototype.detach = function() {\n\n  var container = this._container,\n      parentNode = container.parentNode;\n\n  if (!parentNode) {\n    return;\n  }\n\n  this._emit('detach');\n\n  parentNode.removeChild(container);\n};\n\n\n/**\n * Activate tab. Fall back to first visible tab.\n *\n * @param {Object|string} tabId\n */\nPropertiesPanel.prototype.activateTab = function(tabId) {\n  if (isObject(tabId)) {\n    tabId = tabId.id;\n  }\n\n  var tabs = domQueryAll('.bpp-properties-tab', this._current.panel),\n      tabLinks = domQueryAll('.bpp-properties-tab-link', this._current.panel);\n\n  // (1) Deactivate all tabs\n  forEach(tabs, function(tab) {\n    domClasses(tab).remove('bpp-active');\n  });\n\n  forEach(tabLinks, function(tabLink) {\n    domClasses(tabLink).remove('bpp-active');\n  });\n\n  // (2) Activate tab, fall back to first visible tab\n  var visibleTabs = filter(tabs, function(tab) {\n    return !domClasses(tab).has(HIDE_CLASS);\n  });\n\n  var activeTab = reduce(visibleTabs, function(activeTab, tab) {\n    if (domAttr(tab, 'data-tab') === tabId) {\n      return tab;\n    }\n\n    return activeTab;\n  }, visibleTabs[ 0 ]);\n\n  if (activeTab) {\n    domClasses(activeTab).add('bpp-active');\n  }\n\n  var visibleTabLinks = filter(tabLinks, function(tabLink) {\n    return !domClasses(tabLink).has(HIDE_CLASS);\n  });\n\n  var activeTabLink = reduce(visibleTabLinks, function(activeTabLink, tabLink) {\n    if (domAttr(domQuery('a[data-tab-target]', tabLink), 'data-tab-target') === tabId) {\n      return tabLink;\n    }\n\n    return activeTabLink;\n  }, visibleTabLinks[ 0 ]);\n\n  if (activeTabLink) {\n    domClasses(activeTabLink).add('bpp-active');\n  }\n};\n\nPropertiesPanel.prototype._getProviders = function() {\n\n  var event = this._eventBus.createEvent({\n    type: 'propertiesPanel.getProviders',\n    providers: []\n  });\n\n  this._eventBus.fire(event);\n\n  return event.providers;\n};\n\nPropertiesPanel.prototype._getTabs = function(element) {\n  var providers = this._getProviders();\n\n  // loop through all providers and their entries.\n  // group entries by id so that overriding an entry is possible\n  return reduce(providers, function(tabs, provider) {\n    var tabsOrUpdater = provider.getTabs(element);\n\n    if (isFunction(tabsOrUpdater)) {\n      return tabsOrUpdater(tabs);\n    } else {\n      return tabsOrUpdater;\n    }\n  }, []);\n};\n\n/**\n * Update properties panel to show properties of element. Create new properties panel if no previous\n * properties panel, element has changed or element has not changed but entries have.\n *\n * @param {ModdleElement|undefined} element\n */\nPropertiesPanel.prototype.update = function(element) {\n\n  // (1) Fall back to root element\n  if (!element) {\n    element = this._canvas.getRootElement();\n  }\n\n  // (2) Get tabs\n  var tabs = this._getTabs(element);\n\n  var activeTabId,\n      activeTabNode;\n\n  if (this._current) {\n    activeTabNode = domQuery('.bpp-properties-tab.bpp-active', this._current.panel);\n\n    if (activeTabNode) {\n      activeTabId = domAttr(activeTabNode, 'data-tab');\n    }\n  }\n\n  // (3) Create new properties panel if necessary\n  if (!this._current\n    || this._current.element !== element\n    || this._entriesChanged(this._current.entries, extractEntries(tabs))) {\n\n    if (this._current) {\n      domRemove(this._current.panel);\n    }\n\n    this._current = this._create(element, tabs);\n  }\n\n  // (4) Update visibility of tabs, groups and entries\n  this._updateActivation(this._current);\n\n  // (5) Update active tab\n  if (activeTabId) {\n    this.activateTab(activeTabId);\n  } else {\n    this.activateTab(this._current.tabs[ 0 ]);\n  }\n\n  this._emit('changed');\n};\n\n\n/**\n * Check whether entries have changes.\n *\n * @param  {Array} prevEntries\n * @param  {Array} entries\n *\n * @returns {Boolean}\n */\nPropertiesPanel.prototype._entriesChanged = function(prevEntries, entries) {\n  var prevEntryIds = keys(prevEntries),\n      entryIds = keys(entries);\n\n  return !isEmpty(xor(prevEntryIds, entryIds));\n};\n\nPropertiesPanel.prototype._emit = function(event) {\n  this._eventBus.fire('propertiesPanel.' + event, { panel: this, current: this._current });\n};\n\nPropertiesPanel.prototype._bindListeners = function(container) {\n\n  var self = this;\n\n  // handles a change for a given event\n  var handleChange = function handleChange(event) {\n\n    // see if we handle a change inside a [data-entry] element.\n    // if not, drop out\n    var inputNode = event.delegateTarget,\n        entryNode = domClosest(inputNode, '[data-entry]'),\n        entryId, entry;\n\n    // change from outside a [data-entry] element, simply ignore\n    if (!entryNode) {\n      return;\n    }\n\n    entryId = domAttr(entryNode, 'data-entry');\n    entry = self.getEntry(entryId);\n\n    var values = getFormControlValues(entryNode);\n\n    if (event.type === 'change') {\n\n      // - if the \"data-on-change\" attribute is present and a value is changed,\n      //   then the associated action is performed.\n      // - if the associated action returns \"true\" then an update to the business\n      //   object is done\n      // - if it does not return \"true\", then only the DOM content is updated\n      var onChangeAction = domAttr(inputNode, 'data-on-change');\n\n      if (onChangeAction) {\n        var isEntryDirty = self.executeAction(entry, entryNode, onChangeAction, event);\n\n        if (!isEntryDirty) {\n          return self.update(self._current.element);\n        }\n      }\n    }\n    self.applyChanges(entry, values, entryNode);\n    self.updateState(entry, entryNode);\n  };\n\n  // debounce update only elements that are target of key events,\n  // i.e. INPUT and TEXTAREA. SELECTs will trigger an immediate update anyway.\n  domDelegate.bind(container, 'input, textarea, [contenteditable]', 'input', debounce(handleChange, DEBOUNCE_DELAY));\n  domDelegate.bind(container, 'input, textarea, select, [contenteditable]', 'change', handleChange);\n\n  // paste as plain text only\n  domDelegate.bind(container, '[contenteditable]', 'paste', handlePaste);\n\n  function handlePaste(event) {\n    var text = (event.clipboardData || window.clipboardData).getData('text');\n    document.execCommand('insertText', false, text);\n\n    event.preventDefault();\n  }\n\n  // handle key events\n  domDelegate.bind(container, 'select', 'keydown', function(e) {\n\n    // DEL\n    if (e.keyCode === 46) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n  });\n\n  function handleSuggestItems(event) {\n\n    // triggers on all inputs\n    var inputNode = event.delegateTarget;\n\n    var entryNode = domClosest(inputNode, '[data-entry]');\n\n    // only work on data entries\n    if (!entryNode) {\n      return;\n    }\n\n    var action = domAttr(inputNode, 'data-auto-suggest'),\n        entryId = domAttr(entryNode, 'data-entry');\n\n    var entry = self.getEntry(entryId);\n\n    self.executeAction(entry, entryNode, action, event);\n  }\n\n  domDelegate.bind(container, '[data-auto-suggest]', 'input', handleSuggestItems, true);\n\n  domDelegate.bind(container, '[data-action]', 'click', function onClick(event) {\n\n    // triggers on all inputs\n    var inputNode = event.delegateTarget,\n        entryNode = domClosest(inputNode, '[data-entry]');\n\n    var actionId = domAttr(inputNode, 'data-action'),\n        entryId = domAttr(entryNode, 'data-entry');\n\n    var entry = self.getEntry(entryId);\n\n    var isEntryDirty = self.executeAction(entry, entryNode, actionId, event);\n\n    if (!isEntryDirty) {\n      return self.update(self._current.element);\n    }\n\n    var values = getFormControlValues(entryNode);\n\n    self.applyChanges(entry, values, entryNode);\n    self.updateState(entry, entryNode);\n  });\n\n  function handleInput(event, element) {\n\n    // triggers on all inputs\n    var inputNode = event.delegateTarget;\n\n    var entryNode = domClosest(inputNode, '[data-entry]');\n\n    // only work on data entries\n    if (!entryNode) {\n      return;\n    }\n\n    var eventHandlerId = domAttr(inputNode, 'data-blur'),\n        entryId = domAttr(entryNode, 'data-entry');\n\n    var entry = self.getEntry(entryId);\n\n    var isEntryDirty = self.executeAction(entry, entryNode, eventHandlerId, event);\n\n    if (isEntryDirty) {\n      var values = getFormControlValues(entryNode);\n\n      self.applyChanges(entry, values, entryNode);\n    }\n\n    self.updateState(entry, entryNode);\n  }\n\n  domDelegate.bind(container, '[data-blur]', 'blur', handleInput, true);\n\n  // make tab links interactive\n  domDelegate.bind(container, '.bpp-properties-tabs-links [data-tab-target]', 'click', function(event) {\n    event.preventDefault();\n\n    var delegateTarget = event.delegateTarget;\n\n    var tabId = domAttr(delegateTarget, 'data-tab-target');\n\n    // activate tab on link click\n    self.activateTab(tabId);\n  });\n\n};\n\nPropertiesPanel.prototype.updateState = function(entry, entryNode) {\n  this.updateShow(entry, entryNode);\n  this.updateDisable(entry, entryNode);\n};\n\n/**\n * Update the visibility of the entry node in the DOM\n */\nPropertiesPanel.prototype.updateShow = function(entry, node) {\n\n  var current = this._current;\n\n  if (!current) {\n    return;\n  }\n\n  var showNodes = domQueryAll('[data-show]', node) || [];\n\n  forEach(showNodes, function(showNode) {\n\n    var expr = domAttr(showNode, 'data-show');\n    var fn = get(entry, expr);\n    if (fn) {\n      var scope = domClosest(showNode, '[data-scope]') || node;\n      var shouldShow = fn(current.element, node, showNode, scope) || false;\n      if (shouldShow) {\n        domClasses(showNode).remove(HIDE_CLASS);\n      } else {\n        domClasses(showNode).add(HIDE_CLASS);\n      }\n    }\n  });\n};\n\n/**\n * Evaluates a given function. If it returns true, then the\n * node is marked as \"disabled\".\n */\nPropertiesPanel.prototype.updateDisable = function(entry, node) {\n  var current = this._current;\n\n  if (!current) {\n    return;\n  }\n\n  var nodes = domQueryAll('[data-disable]', node) || [];\n\n  forEach(nodes, function(currentNode) {\n    var expr = domAttr(currentNode, 'data-disable');\n    var fn = get(entry, expr);\n    if (fn) {\n      var scope = domClosest(currentNode, '[data-scope]') || node;\n      var shouldDisable = fn(current.element, node, currentNode, scope) || false;\n      domAttr(currentNode, 'disabled', shouldDisable ? '' : null);\n    }\n  });\n};\n\nPropertiesPanel.prototype.executeAction = function(entry, entryNode, actionId, event) {\n  var current = this._current;\n\n  if (!current) {\n    return;\n  }\n\n  var fn = get(entry, actionId);\n  if (fn) {\n    var scopeNode = domClosest(event.target, '[data-scope]') || entryNode;\n    return fn.apply(entry, [ current.element, entryNode, event, scopeNode ]);\n  }\n};\n\n/**\n * Apply changes to the business object by executing a command\n */\nPropertiesPanel.prototype.applyChanges = function(entry, values, containerElement) {\n\n  var element = this._current.element;\n\n  // ensure we only update the model if we got dirty changes\n  if (valuesEqual(values, entry.oldValues)) {\n    return;\n  }\n\n  var command = entry.set(element, values, containerElement);\n\n  var commandToExecute;\n\n  if (isArray(command)) {\n    if (command.length) {\n      commandToExecute = {\n        cmd: 'properties-panel.multi-command-executor',\n        context: flattenDeep(command)\n      };\n    }\n  } else {\n    commandToExecute = command;\n  }\n\n  if (commandToExecute) {\n    this._commandStack.execute(commandToExecute.cmd, commandToExecute.context || { element : element });\n  } else {\n    this.update(element);\n  }\n};\n\n\n/**\n * apply validation errors in the DOM and show or remove an error message near the entry node.\n */\nPropertiesPanel.prototype.applyValidationErrors = function(validationErrors, entryNode) {\n\n  var valid = true;\n\n  var controlNodes = getFormControls(entryNode, true);\n\n  forEach(controlNodes, function(controlNode) {\n\n    var name = domAttr(controlNode, 'name') || domAttr(controlNode, 'data-name');\n\n    var error = validationErrors && validationErrors[name];\n\n    var errorMessageNode = domQuery('.bpp-error-message', controlNode.parentNode);\n\n    if (error) {\n      valid = false;\n\n      if (!errorMessageNode) {\n        errorMessageNode = domify('<div></div>');\n\n        domClasses(errorMessageNode).add('bpp-error-message');\n\n        // insert errorMessageNode after controlNode\n        controlNode.parentNode.insertBefore(errorMessageNode, controlNode.nextSibling);\n      }\n\n      errorMessageNode.textContent = error;\n\n      domClasses(controlNode).add('invalid');\n    } else {\n      domClasses(controlNode).remove('invalid');\n\n      if (errorMessageNode) {\n        controlNode.parentNode.removeChild(errorMessageNode);\n      }\n    }\n  });\n\n  return valid;\n};\n\n\n/**\n * Check if the entry contains valid input\n */\nPropertiesPanel.prototype.validate = function(entry, values, entryNode) {\n  var self = this;\n\n  var current = this._current;\n\n  var valid = true;\n\n  entryNode = entryNode || domQuery('[data-entry=\"' + entry.id + '\"]', current.panel);\n\n  if (values instanceof Array) {\n    var listContainer = domQuery('[data-list-entry-container]', entryNode),\n        listEntryNodes = listContainer.children || [];\n\n    // create new elements\n    for (var i = 0; i < values.length; i++) {\n      var listValue = values[i];\n\n      if (entry.validateListItem) {\n\n        var validationErrors = entry.validateListItem(current.element, listValue, entryNode, i),\n            listEntryNode = listEntryNodes[i];\n\n        valid = self.applyValidationErrors(validationErrors, listEntryNode) && valid;\n      }\n    }\n  } else {\n    if (entry.validate) {\n      this.validationErrors = entry.validate(current.element, values, entryNode);\n\n      valid = self.applyValidationErrors(this.validationErrors, entryNode) && valid;\n    }\n  }\n\n  return valid;\n};\n\nPropertiesPanel.prototype.getEntry = function(id) {\n  return this._current && this._current.entries[id];\n};\n\nPropertiesPanel.prototype._create = function(element, tabs) {\n\n  if (!element) {\n    return null;\n  }\n\n  var containerNode = this._container;\n\n  var panelNode = this._createPanel(element, tabs);\n\n  containerNode.appendChild(panelNode);\n\n  var entries = extractEntries(tabs);\n  var groups = extractGroups(tabs);\n\n  return {\n    tabs: tabs,\n    groups: groups,\n    entries: entries,\n    element: element,\n    panel: panelNode\n  };\n};\n\n/**\n * Update variable parts of the entry node on element changes.\n *\n * @param {djs.model.Base} element\n * @param {EntryDescriptor} entry\n * @param {Object} values\n * @param {HTMLElement} entryNode\n * @param {Number} idx\n */\nPropertiesPanel.prototype._bindTemplate = function(element, entry, values, entryNode, idx) {\n\n  var eventBus = this._eventBus;\n\n  function isPropertyEditable(entry, propertyName) {\n    return eventBus.fire('propertiesPanel.isPropertyEditable', {\n      entry: entry,\n      propertyName: propertyName,\n      element: element\n    });\n  }\n\n  var inputNodes = getPropertyPlaceholders(entryNode);\n\n  forEach(inputNodes, function(node) {\n\n    var name,\n        newValue,\n        editable;\n\n    // we deal with an input element\n    if ('value' in node || isContentEditable(node) === 'true') {\n      name = domAttr(node, 'name') || domAttr(node, 'data-name');\n      newValue = values[name];\n\n      editable = isPropertyEditable(entry, name);\n      if (editable && entry.editable) {\n        editable = entry.editable(element, entryNode, node, name, newValue, idx);\n      }\n\n      domAttr(node, 'readonly', editable ? null : '');\n      domAttr(node, 'disabled', editable ? null : '');\n\n      // take full control over setting the value\n      // and possibly updating the input in entry#setControlValue\n      if (entry.setControlValue) {\n        entry.setControlValue(element, entryNode, node, name, newValue, idx);\n      } else if (isToggle(node)) {\n        setToggleValue(node, newValue);\n      } else if (isSelect(node)) {\n        setSelectValue(node, newValue);\n      } else {\n        setInputValue(node, newValue);\n      }\n    }\n\n    // we deal with some non-editable html element\n    else {\n      name = domAttr(node, 'data-value');\n      newValue = values[name];\n      if (entry.setControlValue) {\n        entry.setControlValue(element, entryNode, node, name, newValue, idx);\n      } else {\n        setTextValue(node, newValue);\n      }\n    }\n  });\n};\n\n// TODO(nikku): WTF freaking name? Change / clarify.\nPropertiesPanel.prototype._updateActivation = function(current) {\n  var self = this;\n\n  var eventBus = this._eventBus;\n\n  var element = current.element;\n\n  function isEntryVisible(entry, group, tab) {\n    return eventBus.fire('propertiesPanel.isEntryVisible', {\n      element: element,\n      entry: entry,\n      group: group,\n      tab: tab\n    });\n  }\n\n  function isGroupVisible(group, element, groupNode) {\n    if (isFunction(group.enabled)) {\n      return group.enabled(element, groupNode);\n    } else {\n      return true;\n    }\n  }\n\n  function isTabVisible(tab, element) {\n    if (isFunction(tab.enabled)) {\n      return tab.enabled(element);\n    } else {\n      return true;\n    }\n  }\n\n  function toggleVisible(node, visible) {\n    domClasses(node).toggle(HIDE_CLASS, !visible);\n  }\n\n  function updateLabel(element, selector, text) {\n    var labelNode = domQuery(selector, element);\n\n    if (!labelNode) {\n      return;\n    }\n\n    labelNode.textContent = text;\n  }\n\n  var panelNode = current.panel;\n\n  forEach(current.tabs, function(tab) {\n\n    var tabNode = domQuery('[data-tab=' + tab.id + ']', panelNode);\n    var tabLinkNode = domQuery('[data-tab-target=' + tab.id + ']', panelNode).parentNode;\n\n    var tabVisible = false;\n\n    forEach(tab.groups, function(group) {\n\n      var groupVisible = false;\n\n      var groupNode = domQuery('[data-group=' + group.id + ']', tabNode);\n\n      forEach(group.entries, function(entry) {\n\n        var entryNode = domQuery('[data-entry=\"' + entry.id + '\"]', groupNode);\n\n        var entryVisible = isEntryVisible(entry, group, tab);\n\n        groupVisible = groupVisible || entryVisible;\n\n        toggleVisible(entryNode, entryVisible);\n\n        var values = 'get' in entry ? entry.get(element, entryNode) : {};\n\n        if (values instanceof Array) {\n          var listEntryContainer = domQuery('[data-list-entry-container]', entryNode);\n          var existingElements = listEntryContainer.children || [];\n\n          for (var i = 0; i < values.length; i++) {\n            var listValue = values[i];\n            var listItemNode = existingElements[i];\n            if (!listItemNode) {\n              listItemNode = domify(entry.createListEntryTemplate(listValue, i, listEntryContainer));\n              listEntryContainer.appendChild(listItemNode);\n            }\n            domAttr(listItemNode, 'data-index', i);\n\n            self._bindTemplate(element, entry, listValue, listItemNode, i);\n          }\n\n          var entriesToRemove = existingElements.length - values.length;\n\n          for (var j = 0; j < entriesToRemove; j++) {\n\n            // remove orphaned element\n            listEntryContainer.removeChild(listEntryContainer.lastChild);\n          }\n\n        } else {\n          self._bindTemplate(element, entry, values, entryNode);\n        }\n\n        // update conditionally visible elements\n        self.updateState(entry, entryNode);\n        self.validate(entry, values, entryNode);\n\n        // remember initial state for later dirty checking\n        entry.oldValues = getFormControlValues(entryNode);\n      });\n\n      if (typeof group.label === 'function') {\n        updateLabel(groupNode, '.group-label', group.label(element, groupNode));\n      }\n\n      groupVisible = groupVisible && isGroupVisible(group, element, groupNode);\n\n      tabVisible = tabVisible || groupVisible;\n\n      toggleVisible(groupNode, groupVisible);\n    });\n\n    tabVisible = tabVisible && isTabVisible(tab, element);\n\n    toggleVisible(tabNode, tabVisible);\n    toggleVisible(tabLinkNode, tabVisible);\n  });\n\n  // inject elements id into header\n  updateLabel(panelNode, '[data-label-id]', getBusinessObject(element).id || '');\n};\n\nPropertiesPanel.prototype._createPanel = function(element, tabs) {\n  var self = this;\n\n  var panelNode = domify('<div class=\"bpp-properties\"></div>'),\n      headerNode = domify('<div class=\"bpp-properties-header\">' +\n        '<div class=\"label\" data-label-id></div>' +\n      '</div>'),\n      tabBarNode = domify('<div class=\"bpp-properties-tab-bar\"></div>'),\n      tabLinksNode = domify('<ul class=\"bpp-properties-tabs-links\"></ul>'),\n      tabContainerNode = domify('<div class=\"bpp-properties-tabs-container\"></div>');\n\n  panelNode.appendChild(headerNode);\n\n  forEach(tabs, function(tab, tabIndex) {\n\n    if (!tab.id) {\n      throw new Error('tab must have an id');\n    }\n\n    var tabNode = domify('<div class=\"bpp-properties-tab\" data-tab=\"' + escapeHTML(tab.id) + '\"></div>'),\n        tabLinkNode = domify('<li class=\"bpp-properties-tab-link\">' +\n          '<a href data-tab-target=\"' + escapeHTML(tab.id) + '\">' + escapeHTML(tab.label) + '</a>' +\n        '</li>');\n\n    var groups = tab.groups;\n\n    forEach(groups, function(group) {\n\n      if (!group.id) {\n        throw new Error('group must have an id');\n      }\n\n      var groupNode = domify('<div class=\"bpp-properties-group\" data-group=\"' + escapeHTML(group.id) + '\">' +\n          '<span class=\"group-toggle\"></span>' +\n          '<div class=\"group-header\">' +\n            '<span class=\"group-label\">' + escapeHTML(group.label) + '</span>' +\n          '</div>' +\n        '</div>');\n\n      if (group.dropdown) {\n        domQuery('.group-header', groupNode).appendChild(createDropdown(group.dropdown));\n      }\n\n      // TODO(nre): use event delegation to handle that...\n      groupNode.querySelector('.group-toggle').addEventListener('click', function(evt) {\n        domClasses(groupNode).toggle('group-closed');\n        evt.preventDefault();\n        evt.stopPropagation();\n      });\n      groupNode.addEventListener('click', function(evt) {\n        if (!evt.defaultPrevented && domClasses(groupNode).has('group-closed')) {\n          domClasses(groupNode).remove('group-closed');\n        }\n      });\n\n      forEach(group.entries, function(entry) {\n\n        if (!entry.id) {\n          throw new Error('entry must have an id');\n        }\n\n        var html = entry.html;\n\n        if (typeof html === 'string') {\n          html = domify(html);\n        }\n\n        // unwrap jquery\n        if (html.get && html.constructor.prototype.jquery) {\n          html = html.get(0);\n        }\n\n        var entryNode = domify('<div class=\"bpp-properties-entry\" data-entry=\"' + escapeHTML(entry.id) + '\"></div>');\n\n        forEach(entry.cssClasses || [], function(cssClass) {\n          domClasses(entryNode).add(cssClass);\n        });\n\n        entryNode.appendChild(html);\n\n        groupNode.appendChild(entryNode);\n\n        // update conditionally visible elements\n        self.updateState(entry, entryNode);\n      });\n\n      tabNode.appendChild(groupNode);\n    });\n\n    tabLinksNode.appendChild(tabLinkNode);\n    tabContainerNode.appendChild(tabNode);\n  });\n\n  tabBarNode.appendChild(tabLinksNode);\n\n  panelNode.appendChild(tabBarNode);\n  panelNode.appendChild(tabContainerNode);\n\n  return panelNode;\n};\n\n\n\nfunction setInputValue(node, value) {\n\n  var contentEditable = isContentEditable(node);\n\n  var oldValue = contentEditable ? node.innerText : node.value;\n\n  var selection;\n\n  // prevents input fields from having the value 'undefined'\n  if (value === undefined) {\n    value = '';\n  }\n\n  if (oldValue === value) {\n    return;\n  }\n\n  // update selection on undo/redo\n  if (document.activeElement === node) {\n    selection = updateSelection(getSelection(node), oldValue, value);\n  }\n\n  if (contentEditable) {\n    node.innerText = value;\n  } else {\n    node.value = value;\n  }\n\n  if (selection) {\n    setSelection(node, selection);\n  }\n}\n\nfunction setSelectValue(node, value) {\n  if (value !== undefined) {\n    node.value = value;\n  }\n}\n\nfunction setToggleValue(node, value) {\n  var nodeValue = node.value;\n\n  node.checked = (value === nodeValue) || (!domAttr(node, 'value') && value);\n}\n\nfunction setTextValue(node, value) {\n  node.textContent = value;\n}\n\nfunction getSelection(node) {\n\n  return isContentEditable(node) ? getContentEditableSelection(node) : {\n    start: node.selectionStart,\n    end: node.selectionEnd\n  };\n}\n\nfunction getContentEditableSelection(node) {\n\n  var selection = window.getSelection();\n\n  var focusNode = selection.focusNode,\n      focusOffset = selection.focusOffset,\n      anchorOffset = selection.anchorOffset;\n\n  if (!focusNode) {\n    throw new Error('not selected');\n  }\n\n  // verify we have selection on the current element\n  if (!node.contains(focusNode)) {\n    throw new Error('not selected');\n  }\n\n  return {\n    start: Math.min(focusOffset, anchorOffset),\n    end: Math.max(focusOffset, anchorOffset)\n  };\n}\n\nfunction setSelection(node, selection) {\n\n  if (isContentEditable(node)) {\n    setContentEditableSelection(node, selection);\n  } else {\n    node.selectionStart = selection.start;\n    node.selectionEnd = selection.end;\n  }\n}\n\nfunction setContentEditableSelection(node, selection) {\n\n  var focusNode,\n      domRange,\n      domSelection;\n\n  focusNode = node.firstChild || node,\n  domRange = document.createRange();\n  domRange.setStart(focusNode, selection.start);\n  domRange.setEnd(focusNode, selection.end);\n\n  domSelection = window.getSelection();\n  domSelection.removeAllRanges();\n  domSelection.addRange(domRange);\n}\n\nfunction isImplicitRoot(element) {\n  return element.id === '__implicitroot';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/Utils.js":
  /*!************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/Utils.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domClear = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").clear,\n    domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    Ids = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\").default;\n\nvar SPACE_REGEX = /\\s/;\n\n// for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar\nvar QNAME_REGEX = /^([a-z][\\w-.]*:)?[a-z_][\\w-.]*$/i;\n\n// for ID validation as per BPMN Schema (QName - Namespace)\nvar ID_REGEX = /^[a-z_][\\w-.]*$/i;\n\nvar HTML_ESCAPE_MAP = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\n\nfunction selectedOption(selectBox) {\n  if (selectBox.selectedIndex >= 0) {\n    return selectBox.options[selectBox.selectedIndex].value;\n  }\n}\n\nmodule.exports.selectedOption = selectedOption;\n\n\nfunction selectedType(elementSyntax, inputNode) {\n  var typeSelect = domQuery(elementSyntax, inputNode);\n  return selectedOption(typeSelect);\n}\n\nmodule.exports.selectedType = selectedType;\n\n\n/**\n * Retrieve the root element the document this\n * business object is contained in.\n *\n * @return {ModdleElement}\n */\nfunction getRoot(businessObject) {\n  var parent = businessObject;\n  while (parent.$parent) {\n    parent = parent.$parent;\n  }\n  return parent;\n}\n\nmodule.exports.getRoot = getRoot;\n\n\n/**\n * filters all elements in the list which have a given type.\n * removes a new list\n */\nfunction filterElementsByType(objectList, type) {\n  var list = objectList || [];\n  var result = [];\n  forEach(list, function(obj) {\n    if (is(obj, type)) {\n      result.push(obj);\n    }\n  });\n  return result;\n}\n\nmodule.exports.filterElementsByType = filterElementsByType;\n\n\nfunction findRootElementsByType(businessObject, referencedType) {\n  var root = getRoot(businessObject);\n\n  return filterElementsByType(root.rootElements, referencedType);\n}\n\nmodule.exports.findRootElementsByType = findRootElementsByType;\n\n\nfunction removeAllChildren(domElement) {\n  while (domElement.firstChild) {\n    domElement.removeChild(domElement.firstChild);\n  }\n}\n\nmodule.exports.removeAllChildren = removeAllChildren;\n\n\n/**\n * adds an empty option to the list\n */\nfunction addEmptyParameter(list) {\n  return list.push({ 'label': '', 'value': '', 'name': '' });\n}\n\nmodule.exports.addEmptyParameter = addEmptyParameter;\n\n\n/**\n * returns a dropdown option label depending on the defined event attributes\n */\nfunction getOptionLabel(obj) {\n  var label = obj.name || '';\n\n  if (obj.errorCode)\n    label += ' (code=' + obj.errorCode + ')';\n  if (obj.escalationCode)\n    label += ' (code=' + obj.escalationCode + ')';\n\n  return label;\n}\n\n/**\n * returns a list with all root elements for the given parameter 'referencedType'\n */\nfunction refreshOptionsModel(businessObject, referencedType) {\n  var model = [];\n  var referableObjects = findRootElementsByType(businessObject, referencedType);\n  forEach(referableObjects, function(obj) {\n    model.push({\n      label: getOptionLabel(obj),\n      value: obj.id,\n      name: obj.name\n    });\n  });\n  return model;\n}\n\nmodule.exports.refreshOptionsModel = refreshOptionsModel;\n\n\n/**\n * fills the drop down with options\n */\nfunction updateOptionsDropDown(domSelector, businessObject, referencedType, entryNode) {\n  var options = refreshOptionsModel(businessObject, referencedType);\n  addEmptyParameter(options);\n  var selectBox = domQuery(domSelector, entryNode);\n  domClear(selectBox);\n\n  forEach(options, function(option) {\n    var optionEntry = domify('<option value=\"' + escapeHTML(option.value) + '\">' + escapeHTML(option.label) + '</option>');\n    selectBox.appendChild(optionEntry);\n  });\n  return options;\n}\n\nmodule.exports.updateOptionsDropDown = updateOptionsDropDown;\n\n\n/**\n * checks whether the id value is valid\n *\n * @param {ModdleElement} bo\n * @param {String} idValue\n * @param {Function} translate\n *\n * @return {String} error message\n */\nfunction isIdValid(bo, idValue, translate) {\n  var assigned = bo.$model.ids.assigned(idValue);\n\n  var idExists = assigned && assigned !== bo;\n\n  if (!idValue || idExists) {\n    return translate('Element must have an unique id.');\n  }\n\n  return validateId(idValue, translate);\n}\n\nmodule.exports.isIdValid = isIdValid;\n\n\nfunction validateId(idValue, translate) {\n\n  if (containsSpace(idValue)) {\n    return translate('Id must not contain spaces.');\n  }\n\n  if (!ID_REGEX.test(idValue)) {\n\n    if (QNAME_REGEX.test(idValue)) {\n      return translate('Id must not contain prefix.');\n    }\n\n    return translate('Id must be a valid QName.');\n  }\n}\n\nmodule.exports.validateId = validateId;\n\n\nfunction containsSpace(value) {\n  return SPACE_REGEX.test(value);\n}\n\nmodule.exports.containsSpace = containsSpace;\n\n/**\n * generate a semantic id with given prefix\n */\nfunction nextId(prefix) {\n  var ids = new Ids([32,32,1]);\n\n  return ids.nextPrefixed(prefix);\n}\n\nmodule.exports.nextId = nextId;\n\n\nfunction triggerClickEvent(element) {\n  var evt;\n  var eventType = 'click';\n\n  if (document.createEvent) {\n    try {\n\n      // Chrome, Safari, Firefox\n      evt = new MouseEvent((eventType), { view: window, bubbles: true, cancelable: true });\n    } catch (e) {\n\n      // IE 11, PhantomJS (wat!)\n      evt = document.createEvent('MouseEvent');\n\n      evt.initEvent((eventType), true, true);\n    }\n    return element.dispatchEvent(evt);\n  } else {\n\n    // Welcome IE\n    evt = document.createEventObject();\n\n    return element.fireEvent('on' + eventType, evt);\n  }\n}\n\nmodule.exports.triggerClickEvent = triggerClickEvent;\n\n\nfunction escapeHTML(str) {\n  str = '' + str;\n\n  return str && str.replace(/[&<>\"']/g, function(match) {\n    return HTML_ESCAPE_MAP[match];\n  });\n}\n\nmodule.exports.escapeHTML = escapeHTML;\n\nfunction createDropdown(dropdown) {\n  var menu = dropdown.menu;\n\n  var dropdownNode = domify(\n    '<div class=\"group__dropdown\">' +\n      '<button class=\"group__dropdown-button\">' +\n      '<svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 192 512\"><path fill=\"currentColor\" d=\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"></path></svg>' +\n      '</button>' +\n      '<div class=\"group__dropdown-menu\"></div>' +\n    '</div>'\n  );\n\n  var buttonNode = domQuery('.group__dropdown-button', dropdownNode),\n      menuNode = domQuery('.group__dropdown-menu', dropdownNode);\n\n  buttonNode.addEventListener('click', function(event) {\n    domClasses(dropdownNode).toggle('group__dropdown--open');\n\n    createOnGlobalClick(event);\n  });\n\n  forEach(menu, function(menuItem) {\n    var menuItemNode = domify('<div class=\"group__dropdown-menu-item\" data-dropdown-action=\"' +\n      menuItem.id +\n      '\">' + escapeHTML(menuItem.label) + '</div>');\n\n    menuItemNode.addEventListener('click', function() {\n      menuItem.onClick();\n\n      domClasses(dropdownNode).remove('group__dropdown--open');\n    });\n\n    menuNode.appendChild(menuItemNode);\n  });\n\n  var _onGlobalClick;\n\n  function createOnGlobalClick(_event) {\n    function onGlobalClick(event) {\n      if (event === _event) {\n        return;\n      }\n\n      var target = event.target;\n\n      if (menuNode !== target && !menuNode.contains(target)) {\n        domClasses(dropdownNode).remove('group__dropdown--open');\n\n        document.removeEventListener('click', onGlobalClick);\n      }\n    }\n\n    if (_onGlobalClick) {\n      document.removeEventListener('click', _onGlobalClick);\n    }\n\n    document.addEventListener('click', onGlobalClick);\n\n    _onGlobalClick = onGlobalClick;\n  }\n\n  return dropdownNode;\n}\n\nmodule.exports.createDropdown = createDropdown;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/Utils.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js ***!
    \************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar elementHelper = __webpack_require__(/*! ../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\n/**\n * A handler capable of creating a new element under a provided parent\n * and updating / creating a reference to it in one atomic action.\n *\n * @class\n * @constructor\n */\nfunction CreateAndReferenceElementHandler(elementRegistry, bpmnFactory) {\n  this._elementRegistry = elementRegistry;\n  this._bpmnFactory = bpmnFactory;\n}\n\nCreateAndReferenceElementHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = CreateAndReferenceElementHandler;\n\n\n// api ////////////////////\n\n/**\n * Creates a new element under a provided parent and updates / creates a reference to it in\n * one atomic action.\n *\n * @method  CreateAndReferenceElementHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element which is the context for the reference\n * @param {moddle.referencingObject} context.referencingObject the object which creates the reference\n * @param {String} context.referenceProperty the property of the referencingObject which makes the reference\n * @param {moddle.newObject} context.newObject the new object to add\n * @param {moddle.newObjectContainer} context.newObjectContainer the container for the new object\n *\n * @returns {Array<djs.mode.Base>} the updated element\n */\nCreateAndReferenceElementHandler.prototype.execute = function(context) {\n\n  var referencingObject = ensureNotNull(context.referencingObject, 'referencingObject'),\n      referenceProperty = ensureNotNull(context.referenceProperty, 'referenceProperty'),\n      newObject = ensureNotNull(context.newObject, 'newObject'),\n      newObjectContainer = ensureNotNull(context.newObjectContainer, 'newObjectContainer'),\n      newObjectParent = ensureNotNull(context.newObjectParent, 'newObjectParent'),\n      changed = [ context.element ]; // this will not change any diagram-js elements\n\n  // create new object\n  var referencedObject = elementHelper\n    .createElement(newObject.type, newObject.properties, newObjectParent, this._bpmnFactory);\n  context.referencedObject = referencedObject;\n\n  // add to containing list\n  newObjectContainer.push(referencedObject);\n\n  // adjust reference attribute\n  context.previousReference = referencingObject[referenceProperty];\n  referencingObject[referenceProperty] = referencedObject;\n\n  context.changed = changed;\n\n  // indicate changed on objects affected by the update\n  return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method  CreateAndReferenceElementHandler#revert\n *\n * @param {Object} context\n *\n * @returns {djs.mode.Base} the updated element\n */\nCreateAndReferenceElementHandler.prototype.revert = function(context) {\n\n  var referencingObject = context.referencingObject,\n      referenceProperty = context.referenceProperty,\n      previousReference = context.previousReference,\n      referencedObject = context.referencedObject,\n      newObjectContainer = context.newObjectContainer;\n\n  // reset reference\n  referencingObject.set(referenceProperty, previousReference);\n\n  // remove new element\n  newObjectContainer.splice(newObjectContainer.indexOf(referencedObject), 1);\n\n  return context.changed;\n};\n\n\n\n// helpers //////////////\n\nfunction ensureNotNull(prop, name) {\n  if (!prop) {\n    throw new Error(name + ' required');\n  }\n  return prop;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js ***!
    \******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar elementHelper = __webpack_require__(/*! ../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business objects which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction CreateBusinessObjectListHandler(elementRegistry, bpmnFactory) {\n  this._elementRegistry = elementRegistry;\n  this._bpmnFactory = bpmnFactory;\n}\n\nCreateBusinessObjectListHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = CreateBusinessObjectListHandler;\n\nfunction ensureNotNull(prop, name) {\n  if (!prop) {\n    throw new Error(name + ' required');\n  }\n  return prop;\n\n}\nfunction ensureList(prop, name) {\n  if (!prop || Object.prototype.toString.call(prop) !== '[object Array]') {\n    throw new Error(name + ' needs to be a list');\n  }\n  return prop;\n}\n\n// api /////////////////////////////////////////////\n\n/**\n * Creates a new element under a provided parent and updates / creates a reference to it in\n * one atomic action.\n *\n * @method  CreateBusinessObjectListHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element which is the context for the reference\n * @param {moddle.referencingObject} context.referencingObject the object which creates the reference\n * @param {String} context.referenceProperty the property of the referencingObject which makes the reference\n * @param {moddle.newObject} context.newObject the new object to add\n * @param {moddle.newObjectContainer} context.newObjectContainer the container for the new object\n *\n * @return {Array<djs.mode.Base>} the updated element\n */\nCreateBusinessObjectListHandler.prototype.execute = function(context) {\n\n  var currentObject = ensureNotNull(context.currentObject, 'currentObject'),\n      propertyName = ensureNotNull(context.propertyName, 'propertyName'),\n      newObjects = ensureList(context.newObjects, 'newObjects'),\n      changed = [ context.element ]; // this will not change any diagram-js elements\n\n\n  var childObjects = [];\n  var self = this;\n\n  // create new array of business objects\n  forEach(newObjects, function(obj) {\n    var element = elementHelper.createElement(obj.type, obj.properties, currentObject, self._bpmnFactory);\n\n    childObjects.push(element);\n  });\n  context.childObject = childObjects;\n\n  // adjust array reference in the parent business object\n  context.previousChilds = currentObject[propertyName];\n  currentObject[propertyName] = childObjects;\n\n  context.changed = changed;\n\n  // indicate changed on objects affected by the update\n  return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method  CreateBusinessObjectListHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nCreateBusinessObjectListHandler.prototype.revert = function(context) {\n\n  var currentObject = context.currentObject,\n      propertyName = context.propertyName,\n      previousChilds = context.previousChilds;\n\n  // remove new element\n  currentObject.set(propertyName, previousChilds);\n\n  return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js ***!
    \******************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that combines and executes multiple commands.\n *\n * All updates are bundled on the command stack and executed in one step.\n * This also makes it possible to revert the changes in one step.\n *\n * Example use case: remove the camunda:formKey attribute and in addition\n * add all form fields needed for the camunda:formData property.\n *\n * @class\n * @constructor\n */\nfunction MultiCommandHandler(commandStack) {\n  this._commandStack = commandStack;\n}\n\nMultiCommandHandler.$inject = [ 'commandStack' ];\n\nmodule.exports = MultiCommandHandler;\n\nMultiCommandHandler.prototype.preExecute = function(context) {\n\n  var commandStack = this._commandStack;\n\n  forEach(context, function(command) {\n    commandStack.execute(command.cmd, command.context);\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js ***!
    \**************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar reduce = __webpack_require__(/*! lodash/transform */ \"./node_modules/lodash/transform.js\"),\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business objects which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction UpdateBusinessObjectHandler(elementRegistry) {\n  this._elementRegistry = elementRegistry;\n}\n\nUpdateBusinessObjectHandler.$inject = [ 'elementRegistry' ];\n\nmodule.exports = UpdateBusinessObjectHandler;\n\n/**\n * returns the root element\n */\nfunction getRoot(businessObject) {\n  var parent = businessObject;\n  while (parent.$parent) {\n    parent = parent.$parent;\n  }\n  return parent;\n}\n\nfunction getProperties(businessObject, propertyNames) {\n  return reduce(propertyNames, function(result, key) {\n    result[key] = businessObject.get(key);\n    return result;\n  }, {});\n}\n\n\nfunction setProperties(businessObject, properties) {\n  forEach(properties, function(value, key) {\n    businessObject.set(key, value);\n  });\n}\n\n\n// api /////////////////////////////////////////////\n\n/**\n * Updates a business object with a list of new properties\n *\n * @method  UpdateBusinessObjectHandler#execute\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element the element which has a child business object updated\n * @param {moddle.businessObject} context.businessObject the businessObject to update\n * @param {Object} context.properties a list of properties to set on the businessObject\n *\n * @return {Array<djs.mode.Base>} the updated element\n */\nUpdateBusinessObjectHandler.prototype.execute = function(context) {\n\n  var element = context.element,\n      businessObject = context.businessObject,\n      rootElements = getRoot(businessObject).rootElements,\n      referenceType = context.referenceType,\n      referenceProperty = context.referenceProperty,\n      changed = [ element ]; // this will not change any diagram-js elements\n\n  if (!element) {\n    throw new Error('element required');\n  }\n\n  if (!businessObject) {\n    throw new Error('businessObject required');\n  }\n\n  var properties = context.properties,\n      oldProperties = context.oldProperties || getProperties(businessObject, keys(properties));\n\n  // check if there the update needs an external element for reference\n  if (typeof referenceType !== 'undefined' && typeof referenceProperty !== 'undefined') {\n    forEach(rootElements, function(rootElement) {\n      if (is(rootElement, referenceType)) {\n        if (rootElement.id === properties[referenceProperty]) {\n          properties[referenceProperty] = rootElement;\n        }\n      }\n    });\n  }\n\n  // update properties\n  setProperties(businessObject, properties);\n\n  // store old values\n  context.oldProperties = oldProperties;\n  context.changed = changed;\n\n  // indicate changed on objects affected by the update\n  return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method  UpdateBusinessObjectHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nUpdateBusinessObjectHandler.prototype.revert = function(context) {\n\n  var oldProperties = context.oldProperties,\n      businessObject = context.businessObject;\n\n  // update properties\n  setProperties(businessObject, oldProperties);\n\n  return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js ***!
    \******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n/**\n * A handler that implements a BPMN 2.0 property update\n * for business object lists which are not represented in the\n * diagram.\n *\n * This is useful in the context of the properties panel in\n * order to update child elements of elements visible in\n * the diagram.\n *\n * Example: perform an update of a specific event definition\n * of an intermediate event.\n *\n * @class\n * @constructor\n */\nfunction UpdateBusinessObjectListHandler(elementRegistry, bpmnFactory) {\n  this._elementRegistry = elementRegistry;\n  this._bpmnFactory = bpmnFactory;\n}\n\nUpdateBusinessObjectListHandler.$inject = [ 'elementRegistry', 'bpmnFactory' ];\n\nmodule.exports = UpdateBusinessObjectListHandler;\n\nfunction ensureNotNull(prop, name) {\n  if (!prop) {\n    throw new Error(name + 'required');\n  }\n  return prop;\n}\n\n// api /////////////////////////////////////////////\n\n/**\n * Updates a element under a provided parent.\n */\nUpdateBusinessObjectListHandler.prototype.execute = function(context) {\n\n  var currentObject = ensureNotNull(context.currentObject, 'currentObject'),\n      propertyName = ensureNotNull(context.propertyName, 'propertyName'),\n      updatedObjectList = context.updatedObjectList,\n      objectsToRemove = context.objectsToRemove || [],\n      objectsToAdd = context.objectsToAdd || [],\n      objectsToPrepend = context.objectsToPrepend || [],\n      changed = [ context.element], // this will not change any diagram-js elements\n      referencePropertyName;\n\n  if (context.referencePropertyName) {\n    referencePropertyName = context.referencePropertyName;\n  }\n\n  var objectList = currentObject[propertyName];\n\n  // adjust array reference in the parent business object\n  context.previousList = currentObject[propertyName];\n\n  if (updatedObjectList) {\n    currentObject[propertyName] = updatedObjectList;\n  } else {\n\n    // start with objects to prepend\n    var listCopy = objectsToPrepend.slice();\n\n    // remove all objects which should be removed\n    forEach(objectList, function(object) {\n      if (objectsToRemove.indexOf(object) == -1) {\n        listCopy.push(object);\n      }\n    });\n\n    // add all objects which should be added\n    listCopy = listCopy.concat(objectsToAdd);\n\n    // set property to new list\n    if (listCopy.length > 0 || !referencePropertyName) {\n\n      // as long as there are elements in the list update the list\n      currentObject[propertyName] = listCopy;\n    } else if (referencePropertyName) {\n\n      // remove the list when it is empty\n      var parentObject = currentObject.$parent;\n      parentObject.set(referencePropertyName, undefined);\n    }\n  }\n\n  context.changed = changed;\n\n  // indicate changed on objects affected by the update\n  return changed;\n};\n\n/**\n * Reverts the update\n *\n * @method  CreateBusinessObjectListHandler#revert\n *\n * @param {Object} context\n *\n * @return {djs.mode.Base} the updated element\n */\nUpdateBusinessObjectListHandler.prototype.revert = function(context) {\n\n  var currentObject = context.currentObject,\n      propertyName = context.propertyName,\n      previousList = context.previousList,\n      parentObject = currentObject.$parent;\n\n  if (context.referencePropertyName) {\n    parentObject.set(context.referencePropertyName, currentObject);\n  }\n\n  // remove new element\n  currentObject.set(propertyName, previousList);\n\n  return context.changed;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/cmd/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/cmd/index.js ***!
    \****************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar HANDLERS = {\n  'properties-panel.update-businessobject': __webpack_require__(/*! ./UpdateBusinessObjectHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectHandler.js\"),\n  'properties-panel.create-and-reference': __webpack_require__(/*! ./CreateAndReferenceHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/CreateAndReferenceHandler.js\"),\n  'properties-panel.create-businessobject-list': __webpack_require__(/*! ./CreateBusinessObjectListHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/CreateBusinessObjectListHandler.js\"),\n  'properties-panel.update-businessobject-list': __webpack_require__(/*! ./UpdateBusinessObjectListHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/UpdateBusinessObjectListHandler.js\"),\n  'properties-panel.multi-command-executor': __webpack_require__(/*! ./MultiCommandHandler */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/MultiCommandHandler.js\")\n};\n\n\nfunction CommandInitializer(eventBus, commandStack) {\n\n  eventBus.on('diagram.init', function() {\n    forEach(HANDLERS, function(handler, id) {\n      commandStack.registerHandler(id, handler);\n    });\n  });\n}\n\nCommandInitializer.$inject = [ 'eventBus', 'commandStack' ];\n\nmodule.exports = {\n  __init__: [ CommandInitializer ]\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/cmd/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js ***!
    \****************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n    find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n    debounce = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").debounce;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar CLASS_ACTIVE = 'active';\n\nvar FOCUS_LEAVE_DELAY = '150';\n\nvar TEXT_NODE_NAME = '#text';\n\nvar SUGGESTION_LIST_BOX_THRESHOLD = 15;\n\nvar noop = function() {};\n\n\nvar autoSuggestTextBox = function(translate, options, defaultParameters) {\n\n  var resource = defaultParameters,\n      label = options.label || resource.id,\n      canBeShown = !!options.show && typeof options.show === 'function',\n      description = options.description;\n\n  resource.html =\n    domify('<label ' +\n      'for=\"camunda-' + escapeHTML(resource.id) + '\" ' +\n      (canBeShown ? 'data-show=\"isShown\"' : '') +\n      '>' + label + '</label>' +\n    '<div class=\"bpp-field-wrapper\" ' +\n      (canBeShown ? 'data-show=\"isShown\"' : '') +\n    '>' +\n      '<div ' +\n        'contenteditable=\"true\"' +\n        'id=\"camunda-' + escapeHTML(resource.id) + '\" ' +\n        'name=\"' + escapeHTML(options.modelProperty) + '\" ' +\n        'data-auto-suggest=\"suggestItems\"' +\n        'data-blur=\"handleFocusLeave\"' +\n      '></div>' +\n      '<div class=\"bpp-autosuggest-list\"></div>' +\n    '</div>');\n\n  if (description) {\n    domQuery('.bpp-field-wrapper', resource.html).appendChild(entryFieldDescription(translate, description));\n  }\n\n  if (canBeShown) {\n    resource.isShown = function() {\n      return options.show.apply(resource, arguments);\n    };\n  }\n\n  /**\n   * Ensure selected item got recognized before list got hidden\n   */\n  resource.handleFocusLeave = debounce(function(element, entryNode) {\n    clearSuggestionList(entryNode);\n    hideSuggestionList(entryNode);\n  }, FOCUS_LEAVE_DELAY);\n\n  /**\n   * Fill the suggestion list relative to the current word under the cursor.\n   *\n   * @param {djs.model.Base} element\n   * @param {HTMLElement} entryNode\n   * @param {Event} event\n   */\n  resource.suggestItems = function(element, entryNode, event) {\n    var editorNode = event.delegateTarget,\n        range = getSelectionRange(),\n        focusNode = range.focusNode,\n        caretPosition = getCaretPosition(range.range),\n        canSuggest = options.canSuggest || noop,\n        getItems = options.getItems;\n\n    function updateSuggestionList(items) {\n      var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n\n      // (1) clear list before\n      clearSuggestionList(entryNode);\n\n      // (2) keep list invisible if no items\n      if (!items.length) {\n        return;\n      }\n\n      domClasses(listNode).add(CLASS_ACTIVE);\n\n      // (3) create new items\n      forEach(items, function(item) {\n        createSuggestionItem(listNode, item);\n      });\n\n      // (4) place list relative to cursor\n      var position = getSuggestionListPosition(listNode, document.body).position;\n      setPosition(listNode, position.x, position.y);\n    }\n\n    function createSuggestionItem(parentNode, value) {\n      var itemNode = domify('<div class=\"bpp-autosuggest-item\"></div>');\n      itemNode.innerText = escapeHTML(value);\n\n      parentNode.appendChild(itemNode);\n\n      itemNode.addEventListener('click', handleItemClick);\n    }\n\n    function handleItemClick(event) {\n      var value = event.target.innerText,\n          wordIndex = currentWord.index,\n          start = wordIndex,\n          end = wordIndex + currentWord[0].length;\n\n      selectRange(focusNode, start, end);\n\n      document.execCommand('insertText', false, value);\n\n      clearSuggestionList(entryNode);\n      hideSuggestionList(entryNode);\n    }\n\n    hideSuggestionList(entryNode);\n\n    var currentWord = (getWordUnderCursor(focusNode, caretPosition) || []);\n\n    if (currentWord && canSuggest(currentWord, editorNode, focusNode)) {\n      var items = getItems(element, entryNode),\n          results = [],\n          value = currentWord[0];\n\n      // sort matches by\n      // (1) item starts with value (case insensitive)\n      // (2) value is inside suggested item (case insensitive)\n      forEach(items, function(item) {\n        var itemLowerCase = item.toLowerCase(),\n            valueLowerCase = value && value.toLowerCase();\n\n        if (itemLowerCase.indexOf(valueLowerCase) === 0) {\n          results.push(item);\n        }\n      });\n\n      forEach(items, function(item) {\n        var itemLowerCase = item.toLowerCase(item),\n            valueLowerCase = value && value.toLowerCase();\n\n        if (itemLowerCase.indexOf(valueLowerCase) >= 1) {\n          results.push(item);\n        }\n      });\n\n      updateSuggestionList(results);\n    }\n  };\n\n  /**\n  * Calculates the position coordinates of the suggestion list,\n  * dependant on position of cursor\n  *\n  * @return {Object} coordinates\n  */\n  function getSuggestionListPosition(listNode, container) {\n    var range = getSelectionRange().range,\n        cursorBounds = range.getBoundingClientRect(),\n        clientBounds = container.getBoundingClientRect(),\n        listBounds = listNode.getBoundingClientRect();\n\n    var coordinates = {\n      'top-left': {\n        x: cursorBounds.right - listBounds.width,\n        y: cursorBounds.top - listBounds.height\n      },\n      'top-right': {\n        x: cursorBounds.right,\n        y: cursorBounds.top - listBounds.height\n      },\n      'bottom-left': {\n        x: cursorBounds.right - listBounds.width,\n        y: cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD\n      },\n      'bottom-right': {\n        x: cursorBounds.right,\n        y: cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD\n      }\n    };\n\n    var orientation = '';\n\n    if (cursorBounds.top + SUGGESTION_LIST_BOX_THRESHOLD + listBounds.height > (clientBounds.height + clientBounds.top)) {\n      orientation = 'top-';\n    } else {\n      orientation = 'bottom-';\n    }\n\n    if (cursorBounds.right + listBounds.width > (clientBounds.width + clientBounds.left)) {\n      orientation += 'left';\n    } else {\n      orientation += 'right';\n    }\n\n    return { orientation: orientation, position: coordinates[orientation] };\n  }\n\n  resource.getSuggestionListPosition = getSuggestionListPosition;\n\n\n  resource.cssClasses = ['bpp-autosuggest-textbox'];\n\n  return resource;\n};\n\nmodule.exports = autoSuggestTextBox;\n\n\n// helpers /////////////////////////////\n\nfunction getSelectionRange() {\n  var selection = document.getSelection();\n\n  return {\n    range: selection.getRangeAt(0),\n    focusNode: selection.focusNode\n  };\n}\n\nfunction getCaretPosition(range) {\n  return range.startOffset;\n}\n\nfunction selectRange(focusNode, start, end) {\n  var range = document.createRange(),\n      selection = window.getSelection();\n\n  range.setStart(focusNode, start);\n  range.setEnd(focusNode, end);\n\n  selection.removeAllRanges();\n\n  selection.addRange(range);\n}\n\nfunction hideSuggestionList(entryNode) {\n  var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n  domClasses(listNode).remove(CLASS_ACTIVE);\n}\n\nfunction clearSuggestionList(entryNode) {\n  var listNode = domQuery('.bpp-autosuggest-list', entryNode);\n  while (listNode.firstChild) {\n    listNode.removeChild(listNode.firstChild);\n  }\n}\n\nfunction getWordUnderCursor(node, currentCursorPositon) {\n  var value = node.nodeName === TEXT_NODE_NAME ? node.wholeText : node.innerText,\n      allWords = findWords(value);\n\n  return find(allWords, function(word) {\n    var matchValue = word[0],\n        wordStart = word.index,\n        wordEnd = wordStart + matchValue.length - 1;\n\n    return (\n      wordStart <= (currentCursorPositon - 1) &&\n      wordEnd >= (currentCursorPositon - 1)\n    );\n  });\n}\n\n/**\n * Retrieves all words inside a text (also inside clauses and after operators)\n *\n * @param {string} value\n *\n * @return {Array<Object>}\n */\nfunction findWords(value) {\n\n  // eslint-disable-next-line no-useless-escape\n  return matchAll(value, /[^\\s\\r\\(\\)\\,\\+\\-\\*\\/\\{\\}]+/g);\n}\n\nfunction matchAll(value, regex) {\n  var regexp = RegExp(regex),\n      match,\n      matches = [];\n\n  while ((match = regexp.exec(value)) !== null) {\n    matches.push(match);\n  }\n\n  return matches;\n}\n\nfunction setPosition(el, x, y) {\n  assign(el.style, { left: x + 'px', top: y + 'px' });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js ***!
    \***********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar checkbox = function(translate, options, defaultParameters) {\n  var resource = defaultParameters,\n      id = resource.id,\n      label = options.label || id,\n      canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n      canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n      description = options.description;\n\n  resource.html =\n    domify('<input id=\"camunda-' + escapeHTML(id) + '\" ' +\n         'type=\"checkbox\" ' +\n         'name=\"' + escapeHTML(options.modelProperty) + '\" ' +\n         (canBeDisabled ? 'data-disable=\"isDisabled\"' : '') +\n         (canBeHidden ? 'data-show=\"isHidden\"' : '') +\n         ' />' +\n    '<label for=\"camunda-' + escapeHTML(id) + '\" ' +\n         (canBeDisabled ? 'data-disable=\"isDisabled\"' : '') +\n         (canBeHidden ? 'data-show=\"isHidden\"' : '') +\n         '>' + escapeHTML(label) + '</label>');\n\n  // add description below checkbox entry field\n  if (description) {\n    resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n  }\n\n  resource.get = function(element) {\n    var bo = getBusinessObject(element),\n        res = {};\n\n    res[options.modelProperty] = bo.get(options.modelProperty);\n\n    return res;\n  };\n\n  resource.set = function(element, values) {\n    var res = {};\n\n    res[options.modelProperty] = !!values[options.modelProperty];\n\n    return cmdHelper.updateProperties(element, res);\n  };\n\n  if (typeof options.set === 'function') {\n    resource.set = options.set;\n  }\n\n  if (typeof options.get === 'function') {\n    resource.get = options.get;\n  }\n\n  if (canBeDisabled) {\n    resource.isDisabled = function() {\n      return options.disabled.apply(resource, arguments);\n    };\n  }\n\n  if (canBeHidden) {\n    resource.isHidden = function() {\n      return !options.hidden.apply(resource, arguments);\n    };\n  }\n\n  resource.cssClasses = ['bpp-checkbox'];\n\n  return resource;\n};\n\nmodule.exports = checkbox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js ***!
    \**************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\n\n/**\n * @param  {object} options\n * @param  {string} options.id\n * @param  {string} [options.title='']\n * @param  {string} [options.description='']\n * @param  {boolean} [options.open=false]\n * @param  {Function} [options.onToggle]\n * @param  {Function} [options.onRemove]\n *\n * @return {object}\n */\nfunction Collapsible(options) {\n\n  var id = options.id,\n      title = options.title || '',\n      description = options.description || '',\n      open = !!options.open || false,\n      onToggle = options.onToggle || noop,\n      onRemove = options.onRemove,\n      cssClasses = options.cssClasses || [];\n\n\n  var collapsibleEntry = {\n    id: id,\n    toggle: toggle,\n    isOpen: isOpen,\n    set: set,\n    setOpen: setOpen,\n    get: get\n  };\n\n  if (typeof onRemove === 'function') {\n    collapsibleEntry.onRemove = function(entry, entryNode, actionId, event) {\n      var commands = onRemove(entry, entryNode, actionId, event);\n\n      if (commands) {\n        scheduleCommands(commands, entryNode);\n        return true;\n      }\n    };\n  }\n\n  function get(element, entryNode) {\n    if (options.get) {\n      return options.get(element, entryNode);\n    }\n\n    return {\n      title: title || '',\n      description: description || ''\n    };\n  }\n\n  function set() {\n    var commands = this._commands;\n\n    if (commands) {\n      delete this._commands;\n      return commands;\n    }\n  }\n\n  function toggle(element, entryNode, event, scope) {\n    var value = !open;\n\n    setOpen(value, entryNode);\n    onToggle(value, entryNode);\n  }\n\n  /**\n   * Set entry's open state.\n   *\n   * @param {boolean} value\n   * @param {HTMLElement} entryNode\n   */\n  function setOpen(value, entryNode) {\n    open = value;\n    entryNode.classList.toggle('bpp-collapsible--collapsed', !value);\n  }\n\n  function isOpen() {\n    return open;\n  }\n\n  /**\n   * Schedule commands to be run with next `set` method call.\n   *\n   * @param {Array<any>} commands\n   * @param {HTMLElement} entryNode\n   */\n  function scheduleCommands(commands, entryNode) {\n    collapsibleEntry._commands = commands;\n\n    // @barmac: hack to make properties panel call `set`\n    var input = domQuery('input[type=\"hidden\"]', entryNode);\n    input.value = 1;\n  }\n\n  collapsibleEntry.html = '<div class=\"bpp-field-wrapper\" data-action=\"toggle\"><input name=\"hidden\" type=\"hidden\">' +\n    '<span class=\"bpp-collapsible__icon\"></span>' +\n    '<label class=\"bpp-collapsible__title\" data-value=\"title\">' + escapeHTML(title) + '</label>' +\n    '<label class=\"bpp-collapsible__description\" data-value=\"description\">' + escapeHTML(description) + '</label>' +\n    (onRemove ? '<button class=\"bpp-collapsible__remove action-button clear\" data-action=\"onRemove\"></button>' : '') +\n  '</div>';\n\n  collapsibleEntry.cssClasses = cssClasses.concat(open ?\n    [ 'bpp-collapsible' ] : [ 'bpp-collapsible', 'bpp-collapsible--collapsed' ]\n  );\n\n  return collapsibleEntry;\n}\n\nmodule.exports = Collapsible;\n\nfunction noop() {}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js ***!
    \********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\"),\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar selectEntryFactory = __webpack_require__(/*! ./SelectEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js\"),\n    entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\n/**\n * The combo box is a special implementation of the select entry and adds the option 'custom' to the\n * select box. If 'custom' is selected, an additional text input field is shown which allows to define\n * a custom value.\n *\n * @param  {Object} options\n * @param  {string} options.id\n * @param  {string} options.label\n * @param  {Array<Object>} options.selectOptions list of name/value pairs\n * @param  {string} options.modelProperty\n * @param  {function} options.get\n * @param  {function} options.set\n * @param  {string} [options.customValue] custom select option value (default: 'custom')\n * @param  {string} [options.customName] custom select option name visible in the select box (default: 'custom')\n *\n * @return {Object}\n */\nvar comboBox = function(translate, options) {\n\n  var selectOptions = options.selectOptions,\n      modelProperty = options.modelProperty,\n      customValue = options.customValue || 'custom',\n      customName = options.customName || 'custom ' + modelProperty,\n      description = options.description;\n\n  // check if a value is not a built in value\n  var isCustomValue = function(value) {\n    if (typeof value[modelProperty] === 'undefined') {\n      return false;\n    }\n\n    var isCustom = !find(selectOptions, function(option) {\n      return value[modelProperty] === option.value;\n    });\n\n    return isCustom;\n  };\n\n  var comboOptions = assign({}, options);\n\n  // true if the selected value in the select box is customValue\n  comboOptions.showCustomInput = function(element, node) {\n    var selectBox = domQuery('[data-entry=\"'+ options.id +'\"] select', node.parentNode);\n\n    if (selectBox) {\n      return selectBox.value === customValue;\n    }\n\n    return false;\n  };\n\n  comboOptions.get = function(element, node) {\n    var value = options.get(element, node);\n\n    var modifiedValues = {};\n\n    if (!isCustomValue(value)) {\n      modifiedValues[modelProperty] = value[modelProperty] || '';\n\n      return modifiedValues;\n    }\n\n    modifiedValues[modelProperty] = customValue;\n    modifiedValues['custom-'+modelProperty] = value[modelProperty];\n\n    return modifiedValues;\n  };\n\n  comboOptions.set = function(element, values, node) {\n    var modifiedValues = {};\n\n    // if the custom select option has been selected\n    // take the value from the text input field\n    if (values[modelProperty] === customValue) {\n      modifiedValues[modelProperty] = values['custom-' + modelProperty] || '';\n    }\n    else if (options.emptyParameter && values[modelProperty] === '') {\n      modifiedValues[modelProperty] = undefined;\n    } else {\n      modifiedValues[modelProperty] = values[modelProperty];\n    }\n    return options.set(element, modifiedValues, node);\n  };\n\n  comboOptions.selectOptions.push({ name: customName, value: customValue });\n\n  var comboBoxEntry = assign({}, selectEntryFactory(translate, comboOptions, comboOptions));\n\n  var fragment = document.createDocumentFragment();\n\n  fragment.appendChild(comboBoxEntry.html);\n\n  comboBoxEntry.html = fragment;\n\n  comboBoxEntry.html.appendChild(domify('<div class=\"bpp-field-wrapper bpp-combo-input\" ' +\n    'data-show=\"showCustomInput\"' +\n    '>' +\n    '<input id=\"camunda-' + escapeHTML(options.id) + '-input\" type=\"text\" name=\"custom-' +\n      escapeHTML(modelProperty) + '\" ' +\n    ' />' +\n  '</div>'));\n\n  // add description below combo box entry field\n  if (description) {\n    comboBoxEntry.html.appendChild(entryFieldDescription(translate, description, { show: 'showCustomInput' }));\n  }\n\n  return comboBoxEntry;\n};\n\nmodule.exports = comboBox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js ***!
    \***************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n// input entities\nvar textInputField = __webpack_require__(/*! ./TextInputEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js\"),\n    checkboxField = __webpack_require__(/*! ./CheckboxEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/CheckboxEntryFactory.js\"),\n    selectBoxField = __webpack_require__(/*! ./SelectEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js\"),\n    comboBoxField = __webpack_require__(/*! ./ComboEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ComboEntryFactory.js\"),\n    textBoxField = __webpack_require__(/*! ./TextBoxEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js\"),\n    validationAwareTextInputField = __webpack_require__(/*! ./ValidationAwareTextInput */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js\"),\n    tableField = __webpack_require__(/*! ./TableEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js\"),\n    labelEntry = __webpack_require__(/*! ./LabelFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js\"),\n    link = __webpack_require__(/*! ./LinkEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js\"),\n    autoSuggestTextBoxField = __webpack_require__(/*! ./AutoSuggestTextBoxFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/AutoSuggestTextBoxFactory.js\"),\n    collapsible = __webpack_require__(/*! ./CollapsibleEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/CollapsibleEntryFactory.js\"),\n    toggleSwitch = __webpack_require__(/*! ./ToggleSwitchEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n// helpers ////////////////////////////////////////\n\nfunction ensureNotNull(prop) {\n  if (!prop) {\n    throw new Error(prop + ' must be set.');\n  }\n\n  return prop;\n}\n\n/**\n * sets the default parameters which are needed to create an entry\n *\n * @param options\n * @returns {{id: *, description: (*|string), get: (*|Function), set: (*|Function),\n *            validate: (*|Function), html: string}}\n */\nvar setDefaultParameters = function(options) {\n\n  // default method to fetch the current value of the input field\n  var defaultGet = function(element) {\n    var bo = getBusinessObject(element),\n        res = {},\n        prop = ensureNotNull(options.modelProperty);\n    res[prop] = bo.get(prop);\n\n    return res;\n  };\n\n  // default method to set a new value to the input field\n  var defaultSet = function(element, values) {\n    var res = {},\n        prop = ensureNotNull(options.modelProperty);\n    if (values[prop] !== '') {\n      res[prop] = values[prop];\n    } else {\n      res[prop] = undefined;\n    }\n\n    return cmdHelper.updateProperties(element, res);\n  };\n\n  // default validation method\n  var defaultValidate = function() {\n    return {};\n  };\n\n  return {\n    id : options.id,\n    description : (options.description || ''),\n    get : (options.get || defaultGet),\n    set : (options.set || defaultSet),\n    validate : (options.validate || defaultValidate),\n    html: ''\n  };\n};\n\nfunction EntryFactory() {\n\n}\n\n/**\n * Generates an text input entry object for a property panel.\n * options are:\n * - id: id of the entry - String\n *\n * - description: description of the property - String\n *\n * - label: label for the input field - String\n *\n * - set: setter method - Function\n *\n * - get: getter method - Function\n *\n * - validate: validation mehtod - Function\n *\n * - modelProperty: name of the model property - String\n *\n * - buttonAction: Object which contains the following properties: - Object\n * ---- name: name of the [data-action] callback - String\n * ---- method: callback function for [data-action] - Function\n *\n * - buttonShow: Object which contains the following properties: - Object\n * ---- name: name of the [data-show] callback - String\n * ---- method: callback function for [data-show] - Function\n *\n * @param options\n * @returns the propertyPanel entry resource object\n */\nEntryFactory.textField = function(translate, options) {\n  return textInputField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.validationAwareTextField = function(translate, options) {\n  return validationAwareTextInputField(translate, options, setDefaultParameters(options));\n};\n\n/**\n * Generates a checkbox input entry object for a property panel.\n * options are:\n * - id: id of the entry - String\n *\n * - description: description of the property - String\n *\n * - label: label for the input field - String\n *\n * - set: setter method - Function\n *\n * - get: getter method - Function\n *\n * - validate: validation method - Function\n *\n * - modelProperty: name of the model property - String\n *\n * @param options\n * @returns the propertyPanel entry resource object\n */\nEntryFactory.checkbox = function(translate, options) {\n  return checkboxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.textBox = function(translate, options) {\n  return textBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.selectBox = function(translate, options) {\n  return selectBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.comboBox = function(translate, options) {\n  return comboBoxField(translate, options);\n};\n\nEntryFactory.table = function(translate, options) {\n  return tableField(translate, options);\n};\n\nEntryFactory.label = function(options) {\n  return labelEntry(options);\n};\n\nEntryFactory.link = function(translate, options) {\n  return link(translate, options);\n};\n\nEntryFactory.autoSuggest = function(translate, options) {\n  return autoSuggestTextBoxField(translate, options, setDefaultParameters(options));\n};\n\nEntryFactory.collapsible = function(options) {\n  return collapsible(options);\n};\n\nEntryFactory.toggleSwitch = function(translate, options) {\n  return toggleSwitch(translate, options, setDefaultParameters(options));\n};\n\nmodule.exports = EntryFactory;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js ***!
    \************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\n/**\n * Create a linkified and HTML escaped entry field description.\n *\n * As a special feature, this description may contain both markdown,\n * plain <a href> links and <br />\n *\n * @param {string} description\n * @param {object} [options]\n * @param {string} [options.show] - name of callback to determine whether description is shown\n */\nmodule.exports = function entryFieldDescription(translate, description, options) {\n  var show = options && options.show;\n\n  // we tokenize the description to extract text, HTML and markdown links\n  // text, links and new lines are handled seperately\n\n  var escaped = [];\n\n  // match markdown [{TEXT}]({URL}) and HTML links <a href=\"{URL}\">{TEXT}</a>\n  var pattern = /(?:\\[([^\\]]+)\\]\\((https?:\\/\\/[^)]+)\\))|(?:<a href=\"(https?:\\/\\/[^\"]+)\">(.+?(?=<\\/))<\\/a>)/gi;\n\n  var index = 0;\n  var match;\n  var link, text;\n\n  while ((match = pattern.exec(description))) {\n\n    // escape + insert text before match\n    if (match.index > index) {\n      escaped.push(escapeText(description.substring(index, match.index)));\n    }\n\n    link = match[2] && encodeURI(match[2]) || match[3];\n    text = match[1] || match[4];\n\n    // insert safe link\n    escaped.push('<a href=\"' + link + '\" target=\"_blank\">' + escapeText(text) + '</a>');\n\n    index = match.index + match[0].length;\n  }\n\n  // escape and insert text after last match\n  if (index < description.length) {\n    escaped.push(escapeText(description.substring(index)));\n  }\n\n  description = escaped.join('');\n\n  var html = domify(\n    '<div class=\"bpp-field-description description description--expanded\"' +\n    (show ? 'data-show=\"' + show + '\">' : '>') +\n    '</div>'\n  );\n\n  var descriptionText = domify('<span class=\"description__text\">' + description + '</span>');\n\n  html.appendChild(descriptionText);\n\n  function toggleExpanded(expanded) {\n    if (expanded) {\n      domClasses(html).add('description--expanded');\n\n      descriptionText.textContent = description + ' ';\n\n      expand.textContent = translate('Less');\n    } else {\n      domClasses(html).remove('description--expanded');\n\n      descriptionText.textContent = descriptionShortened + ' ... ';\n\n      expand.textContent = translate('More');\n    }\n  }\n\n  var descriptionShortened,\n      expand,\n      expanded = false;\n\n  if (description.length > MAX_DESCRIPTION_LENGTH) {\n    descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n    expand = domify(\n      '<span class=\"bpp-entry-link description__expand\">' +\n        translate('More') +\n      '</span>'\n    );\n\n    domEvent.bind(expand, 'click', function() {\n      expanded = !expanded;\n\n      toggleExpanded(expanded);\n    });\n\n    html.appendChild(expand);\n\n    toggleExpanded(expanded);\n  }\n\n  return html;\n};\n\nfunction escapeText(text) {\n  var match, index = 0, escaped = [];\n\n  // match new line <br/> <br /> <br.... /> etc.\n  var pattern = /<br\\s*\\/?>/gi;\n\n  while ((match = pattern.exec(text))) {\n\n    if (match.index > index) {\n      escaped.push(escapeHTML(text.substring(index, match.index)));\n    }\n\n    escaped.push('<br />');\n\n    index = match.index + match[0].length;\n  }\n\n  if (index < text.length) {\n    escaped.push(escapeHTML(text.substring(index)));\n  }\n\n  return escaped.join('');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js ***!
    \***************************************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\n/**\n * The label factory provides a label entry. For the label text\n * it expects either a string provided by the options.labelText\n * parameter or it could be generated programmatically using a\n * function passed as the options.get parameter.\n *\n * @param  {Object} options\n * @param  {string} options.id\n * @param  {string} [options.labelText]\n * @param  {Function} [options.get]\n * @param  {Function} [options.showLabel]\n * @param  {Boolean} [options.divider] adds a divider at the top of the label if true; default: false\n */\nvar label = function(options) {\n  return {\n    id: options.id,\n    html: '<label data-value=\"label\" ' +\n            'data-show=\"showLabel\" ' +\n            'class=\"entry-label' + (options.divider ? ' divider' : '') + '\">' +\n          '</label>',\n    get: function(element, node) {\n      if (typeof options.get === 'function') {\n        return options.get(element, node);\n      }\n      return { label: options.labelText };\n    },\n    showLabel: function(element, node) {\n      if (typeof options.showLabel === 'function') {\n        return options.showLabel(element, node);\n      }\n      return true;\n    }\n  };\n};\n\nmodule.exports = label;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/LabelFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js ***!
    \*******************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar bind = __webpack_require__(/*! lodash/bind */ \"./node_modules/lodash/bind.js\");\n\n/**\n * An entry that renders a clickable link.\n *\n * A passed {@link options#handleClick} handler is responsible\n * to process the click.\n *\n * The link may be conditionally shown or hidden. This can be\n * controlled via the {@link options.showLink}.\n *\n * @param {Object} options\n * @param {String} options.id\n * @param {String} [options.buttonLabel]\n * @param {Function} options.handleClick\n * @param {Function} [options.showLink] returning false to hide link\n * @param {String} [options.description]\n *\n * @example\n *\n * var linkEntry = link({\n *   id: 'foo',\n *   description: 'Some Description',\n *   handleClick: function(element, node, event) { ... },\n *   showLink: function(element, node) { ... }\n * });\n *\n * @return {Entry} the newly created entry\n */\nfunction link(translate, options) {\n\n  var id = options.id,\n      buttonLabel = options.buttonLabel || id,\n      showLink = options.showLink,\n      handleClick = options.handleClick,\n      description = options.description,\n      label = options.label;\n\n  if (showLink && typeof showLink !== 'function') {\n    throw new Error('options.showLink must be a function');\n  }\n\n  if (typeof handleClick !== 'function') {\n    throw new Error('options.handleClick must be a function');\n  }\n\n  var resource = {\n    id: id,\n    html: document.createDocumentFragment()\n  };\n\n  if (label) {\n    resource.html.appendChild(domify('<label for=\"camunda-' + escapeHTML(id) + '\" ' +\n      (showLink ? 'data-show=\"showLink\" ' : '') +\n      '>'+ escapeHTML(label) +'</label>'));\n  }\n\n  resource.html.appendChild(domify('<div class=\"bpp-field-wrapper\">' +\n    '<a data-action=\"handleClick\" ' +\n    (showLink ? 'data-show=\"showLink\" ' : '') +\n    'class=\"bpp-entry-link' + (options.cssClasses ? ' ' + escapeHTML(options.cssClasses) : '') +\n    '\">' + escapeHTML(buttonLabel) + '</a></div>'));\n\n\n  // add description below link entry field\n  if (description) {\n    resource.html.appendChild(entryFieldDescription(translate, description, { show: 'showLink' }));\n  }\n\n  resource.handleClick = bind(handleClick, resource);\n\n  if (typeof showLink === 'function') {\n    resource.showLink = function() {\n      return showLink.apply(resource, arguments);\n    };\n  }\n\n  return resource;\n}\n\nmodule.exports = link;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/LinkEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js ***!
    \*********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar isList = function(list) {\n  return !(!list || Object.prototype.toString.call(list) !== '[object Array]');\n};\n\nvar addEmptyParameter = function(list) {\n  return list.concat([ { name: '', value: '' } ]);\n};\n\nvar createOption = function(option) {\n  return '<option value=\"' + option.value + '\">' + option.name + '</option>';\n};\n\n/**\n * @param  {Object} options\n * @param  {string} options.id\n * @param  {string} [options.label]\n * @param  {Array<Object>} options.selectOptions\n * @param  {string} options.modelProperty\n * @param  {boolean} options.emptyParameter\n * @param  {function} options.disabled\n * @param  {function} options.hidden\n * @param  {Object} defaultParameters\n *\n * @return {Object}\n */\nvar selectbox = function(translate, options, defaultParameters) {\n  var resource = defaultParameters,\n      label = options.label || resource.id,\n      selectOptions = options.selectOptions || [ { name: '', value: '' } ],\n      modelProperty = options.modelProperty,\n      emptyParameter = options.emptyParameter,\n      canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n      canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n      description = options.description;\n\n\n  if (emptyParameter) {\n    selectOptions = addEmptyParameter(selectOptions);\n  }\n\n\n  resource.html =\n    domify('<label for=\"camunda-' + escapeHTML(resource.id) + '\"' +\n    (canBeDisabled ? 'data-disable=\"isDisabled\" ' : '') +\n    (canBeHidden ? 'data-show=\"isHidden\" ' : '') +\n    '>' + escapeHTML(label) + '</label>' +\n    '<select id=\"camunda-' + escapeHTML(resource.id) + '-select\" name=\"' +\n    escapeHTML(modelProperty) + '\"' +\n    (canBeDisabled ? 'data-disable=\"isDisabled\" ' : '') +\n    (canBeHidden ? 'data-show=\"isHidden\" ' : '') +\n    ' data-value></select>');\n\n  var select = domQuery('select', resource.html);\n\n  if (isList(selectOptions)) {\n    forEach(selectOptions, function(option) {\n      select.appendChild(\n        domify(\n          '<option value=\"' + escapeHTML(option.value) +\n          (option.title ? '\" title=\"' + escapeHTML(option.title) : '') +\n          '\">' +\n          (option.name ? escapeHTML(option.name) : '') +\n          '</option>'\n        )\n      );\n    });\n  }\n\n  // add description below select box entry field\n  if (description && typeof options.showCustomInput !== 'function') {\n    resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n  }\n\n  /**\n   * Fill the select box options dynamically.\n   *\n   * Calls the defined function #selectOptions in the entry to get the\n   * values for the options and set the value to the inputNode.\n   *\n   * @param {djs.model.Base} element\n   * @param {HTMLElement} entryNode\n   * @param {EntryDescriptor} inputNode\n   * @param {Object} inputName\n   * @param {Object} newValue\n   */\n  resource.setControlValue = function(element, entryNode, inputNode, inputName, newValue) {\n    if (typeof selectOptions === 'function') {\n\n      var options = selectOptions(element, inputNode);\n\n      if (options) {\n\n        // remove existing options\n        while (inputNode.firstChild) {\n          inputNode.removeChild(inputNode.firstChild);\n        }\n\n        // add options\n        forEach(options, function(option) {\n          var template = domify(createOption(option));\n\n          inputNode.appendChild(template);\n        });\n\n\n      }\n    }\n\n    // set select value\n    if (newValue !== undefined) {\n      inputNode.value = newValue;\n    }\n\n  };\n\n  if (canBeDisabled) {\n    resource.isDisabled = function() {\n      return options.disabled.apply(resource, arguments);\n    };\n  }\n\n  if (canBeHidden) {\n    resource.isHidden = function() {\n      return !options.hidden.apply(resource, arguments);\n    };\n  }\n\n  resource.cssClasses = ['bpp-dropdown'];\n\n  return resource;\n};\n\nmodule.exports = selectbox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/SelectEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js ***!
    \********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr,\n    domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest;\n\nvar filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\"),\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar updateSelection = __webpack_require__(/*! selection-update */ \"./node_modules/selection-update/index.js\");\n\nvar TABLE_ROW_DIV_SNIPPET = '<div class=\"bpp-field-wrapper bpp-table-row\">';\nvar DELETE_ROW_BUTTON_SNIPPET = '<button class=\"action-button clear\" data-action=\"deleteElement\">' +\n                                  '<span>X</span>' +\n                                '</button>';\n\nfunction createInputRowTemplate(properties, canRemove) {\n  var template = TABLE_ROW_DIV_SNIPPET;\n  template += createInputTemplate(properties, canRemove);\n  template += canRemove ? DELETE_ROW_BUTTON_SNIPPET : '';\n  template += '</div>';\n\n  return template;\n}\n\nfunction createInputTemplate(properties, canRemove) {\n  var columns = properties.length;\n  var template = '';\n  forEach(properties, function(prop) {\n    template += '<input class=\"bpp-table-row-columns-' + columns + ' ' +\n                               (canRemove ? 'bpp-table-row-removable' : '') + '\" ' +\n                       'id=\"camunda-table-row-cell-input-value\" ' +\n                       'type=\"text\" ' +\n                       'name=\"' + escapeHTML(prop) + '\" />';\n  });\n  return template;\n}\n\nfunction createLabelRowTemplate(labels) {\n  var template = TABLE_ROW_DIV_SNIPPET;\n  template += createLabelTemplate(labels);\n  template += '</div>';\n\n  return template;\n}\n\nfunction createLabelTemplate(labels) {\n  var columns = labels.length;\n  var template = '';\n  forEach(labels, function(label) {\n    template += '<label class=\"bpp-table-row-columns-' + columns + '\">' + escapeHTML(label) + '</label>';\n  });\n  return template;\n}\n\nfunction pick(elements, properties) {\n  return (elements || []).map(function(elem) {\n    var newElement = {};\n    forEach(properties, function(prop) {\n      newElement[prop] = elem[prop] || '';\n    });\n    return newElement;\n  });\n}\n\nfunction diff(element, node, values, oldValues, editable) {\n  return filter(values, function(value, idx) {\n    return !valueEqual(element, node, value, oldValues[idx], editable, idx);\n  });\n}\n\nfunction valueEqual(element, node, value, oldValue, editable, idx) {\n  if (value && !oldValue) {\n    return false;\n  }\n  var allKeys = keys(value).concat(keys(oldValue));\n\n  return allKeys.every(function(key) {\n    var n = value[key] || undefined;\n    var o = oldValue[key] || undefined;\n    return !editable(element, node, key, idx) || n === o;\n  });\n}\n\nfunction getEntryNode(node) {\n  return domClosest(node, '[data-entry]', true);\n}\n\nfunction getContainer(node) {\n  return domQuery('div[data-list-entry-container]', node);\n}\n\nfunction getSelection(node) {\n  return {\n    start: node.selectionStart,\n    end: node.selectionEnd\n  };\n}\n\nfunction setSelection(node, selection) {\n  node.selectionStart = selection.start;\n  node.selectionEnd = selection.end;\n}\n\n/**\n * @param  {Object} options\n * @param  {string} options.id\n * @param  {string} options.description\n * @param  {Array<string>} options.modelProperties\n * @param  {Array<string>} options.labels\n * @param  {Function} options.getElements - this callback function must return a list of business object items\n * @param  {Function} options.removeElement\n * @param  {Function} options.addElement\n * @param  {Function} options.updateElement\n * @param  {Function} options.editable\n * @param  {Function} options.setControlValue\n * @param  {Function} options.show\n *\n * @return {Object}\n */\nmodule.exports = function(translate, options) {\n\n  var id = options.id,\n      modelProperties = options.modelProperties,\n      labels = options.labels,\n      description = options.description;\n\n  var labelRow = createLabelRowTemplate(labels);\n\n  var getElements = options.getElements;\n\n  var removeElement = options.removeElement,\n      canRemove = typeof removeElement === 'function';\n\n  var addElement = options.addElement,\n      canAdd = typeof addElement === 'function',\n      addLabel = options.addLabel || 'Add Value';\n\n  var updateElement = options.updateElement,\n      canUpdate = typeof updateElement === 'function';\n\n  var editable = options.editable || function() { return true; },\n      setControlValue = options.setControlValue;\n\n  var show = options.show,\n      canBeShown = typeof show === 'function';\n\n  var elements = function(element, node) {\n    return pick(getElements(element, node), modelProperties);\n  };\n\n  var html = domify((canAdd ?\n    '<div class=\"bpp-table-add-row\" ' + (canBeShown ? 'data-show=\"show\"' : '') + '>' +\n          '<label>' + escapeHTML(addLabel) + '</label>' +\n          '<button class=\"action-button add\" data-action=\"addElement\"><span>+</span></button>' +\n        '</div>' : '') +\n        '<div class=\"bpp-table\" data-show=\"showTable\">' +\n          '<div class=\"bpp-field-wrapper bpp-table-row\">' +\n             labelRow +\n          '</div>' +\n          '<div data-list-entry-container>' +\n          '</div>' +\n        '</div>');\n\n  if (description) {\n    html.appendChild(entryFieldDescription(translate, description, { show: 'showTable' }));\n  }\n\n  var factory = {\n    id: id,\n    html: html,\n\n    get: function(element, node) {\n      var boElements = elements(element, node, this.__invalidValues);\n\n      var invalidValues = this.__invalidValues;\n\n      delete this.__invalidValues;\n\n      forEach(invalidValues, function(value, idx) {\n        var element = boElements[idx];\n\n        forEach(modelProperties, function(prop) {\n          element[prop] = value[prop];\n        });\n      });\n\n      return boElements;\n    },\n\n    set: function(element, values, node) {\n      var action = this.__action || {};\n      delete this.__action;\n\n      if (action.id === 'delete-element') {\n        return removeElement(element, node, action.idx);\n      }\n      else if (action.id === 'add-element') {\n        return addElement(element, node);\n      }\n      else if (canUpdate) {\n        var commands = [],\n            valuesToValidate = values;\n\n        if (typeof options.validate !== 'function') {\n          valuesToValidate = diff(element, node, values, elements(element, node), editable);\n        }\n\n        var self = this;\n\n        forEach(valuesToValidate, function(value) {\n          var validationError,\n              idx = values.indexOf(value);\n\n          if (typeof options.validate === 'function') {\n            validationError = options.validate(element, value, node, idx);\n          }\n\n          if (!validationError) {\n            var cmd = updateElement(element, value, node, idx);\n\n            if (cmd) {\n              commands.push(cmd);\n            }\n          } else {\n\n            // cache invalid value in an object by index as key\n            self.__invalidValues = self.__invalidValues || {};\n            self.__invalidValues[idx] = value;\n\n            // execute a command, which does not do anything\n            commands.push(cmdHelper.updateProperties(element, {}));\n          }\n        });\n\n        return commands;\n      }\n    },\n    createListEntryTemplate: function(value, index, selectBox) {\n      return createInputRowTemplate(modelProperties, canRemove);\n    },\n\n    addElement: function(element, node, event, scopeNode) {\n      var template = domify(createInputRowTemplate(modelProperties, canRemove));\n\n      var container = getContainer(node);\n      container.appendChild(template);\n\n      this.__action = {\n        id: 'add-element'\n      };\n\n      return true;\n    },\n\n    deleteElement: function(element, node, event, scopeNode) {\n      var container = getContainer(node);\n      var rowToDelete = event.delegateTarget.parentNode;\n      var idx = parseInt(domAttr(rowToDelete, 'data-index'), 10);\n\n      container.removeChild(rowToDelete);\n\n      this.__action = {\n        id: 'delete-element',\n        idx: idx\n      };\n\n      return true;\n    },\n\n    editable: function(element, rowNode, input, prop, value, idx) {\n      var entryNode = domClosest(rowNode, '[data-entry]');\n      return editable(element, entryNode, prop, idx);\n    },\n\n    show: function(element, entryNode, node, scopeNode) {\n      entryNode = getEntryNode(entryNode);\n      return show(element, entryNode, node, scopeNode);\n    },\n\n    showTable: function(element, entryNode, node, scopeNode) {\n      entryNode = getEntryNode(entryNode);\n      var elems = elements(element, entryNode);\n      return elems && elems.length && (!canBeShown || show(element, entryNode, node, scopeNode));\n    },\n\n    validateListItem: function(element, value, node, idx) {\n      if (typeof options.validate === 'function') {\n        return options.validate(element, value, node, idx);\n      }\n    }\n\n  };\n\n  // Update/set the selection on the correct position.\n  // It's the same code like for an input value in the PropertiesPanel.js.\n  if (setControlValue) {\n    factory.setControlValue = function(element, rowNode, input, prop, value, idx) {\n      var entryNode = getEntryNode(rowNode);\n\n      var isReadOnly = domAttr(input, 'readonly');\n      var oldValue = input.value;\n\n      var selection;\n\n      // prevents input fields from having the value 'undefined'\n      if (value === undefined) {\n        value = '';\n      }\n\n      // when the attribute 'readonly' exists, ignore the comparison\n      // with 'oldValue' and 'value'\n      if (!!isReadOnly && oldValue === value) {\n        return;\n      }\n\n      // update selection on undo/redo\n      if (document.activeElement === input) {\n        selection = updateSelection(getSelection(input), oldValue, value);\n      }\n\n      setControlValue(element, entryNode, input, prop, value, idx);\n\n      if (selection) {\n        setSelection(input, selection);\n      }\n\n    };\n  }\n\n  return factory;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TableEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js ***!
    \**********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar textBox = function(translate, options, defaultParameters) {\n\n  var resource = defaultParameters,\n      label = options.label || resource.id,\n      canBeShown = !!options.show && typeof options.show === 'function',\n      description = options.description;\n\n  resource.html =\n    domify('<label for=\"camunda-' + escapeHTML(resource.id) + '\" ' +\n    (canBeShown ? 'data-show=\"isShown\"' : '') +\n    '>' + label + '</label>' +\n    '<div class=\"bpp-field-wrapper\" ' +\n    (canBeShown ? 'data-show=\"isShown\"' : '') +\n    '>' +\n      '<div contenteditable=\"true\" id=\"camunda-' + escapeHTML(resource.id) + '\" ' +\n            'name=\"' + escapeHTML(options.modelProperty) + '\" />' +\n    '</div>');\n\n  // add description below text box entry field\n  if (description) {\n    resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeShown && 'isShown' }));\n  }\n\n  if (canBeShown) {\n    resource.isShown = function() {\n      return options.show.apply(resource, arguments);\n    };\n  }\n\n  resource.cssClasses = ['bpp-textbox'];\n\n  return resource;\n};\n\nmodule.exports = textBox;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TextBoxEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js ***!
    \************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nvar textField = function(translate, options, defaultParameters) {\n\n  // Default action for the button next to the input-field\n  var defaultButtonAction = function(element, inputNode) {\n    var input = domQuery('input[name=\"' + options.modelProperty + '\"]', inputNode);\n    input.value = '';\n\n    return true;\n  };\n\n  // default method to determine if the button should be visible\n  var defaultButtonShow = function(element, inputNode) {\n    var input = domQuery('input[name=\"' + options.modelProperty + '\"]', inputNode);\n\n    return input.value !== '';\n  };\n\n\n  var resource = defaultParameters,\n      label = options.label || resource.id,\n      dataValueLabel = options.dataValueLabel,\n      buttonLabel = (options.buttonLabel || 'X'),\n      actionName = (typeof options.buttonAction != 'undefined') ? options.buttonAction.name : 'clear',\n      actionMethod = (typeof options.buttonAction != 'undefined') ? options.buttonAction.method : defaultButtonAction,\n      showName = (typeof options.buttonShow != 'undefined') ? options.buttonShow.name : 'canClear',\n      showMethod = (typeof options.buttonShow != 'undefined') ? options.buttonShow.method : defaultButtonShow,\n      canBeDisabled = !!options.disabled && typeof options.disabled === 'function',\n      canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n      description = options.description;\n\n  resource.html =\n    domify('<label for=\"camunda-' + escapeHTML(resource.id) + '\" ' +\n      (canBeDisabled ? 'data-disable=\"isDisabled\" ' : '') +\n      (canBeHidden ? 'data-show=\"isHidden\" ' : '') +\n      (dataValueLabel ? 'data-value=\"' + escapeHTML(dataValueLabel) + '\"' : '') + '>'+ escapeHTML(label) +'</label>' +\n    '<div class=\"bpp-field-wrapper\" ' +\n      (canBeDisabled ? 'data-disable=\"isDisabled\"' : '') +\n      (canBeHidden ? 'data-show=\"isHidden\"' : '') +\n      '>' +\n      '<input id=\"camunda-' + escapeHTML(resource.id) + '\" type=\"text\" name=\"' + escapeHTML(options.modelProperty) + '\" ' +\n        (canBeDisabled ? 'data-disable=\"isDisabled\"' : '') +\n        (canBeHidden ? 'data-show=\"isHidden\"' : '') +\n        ' />' +\n      '<button class=\"action-button ' + escapeHTML(actionName) + '\" data-action=\"' + escapeHTML(actionName) + '\" data-show=\"' + escapeHTML(showName) + '\" ' +\n        (canBeDisabled ? 'data-disable=\"isDisabled\"' : '') +\n        (canBeHidden ? ' data-show=\"isHidden\"' : '') + '>' +\n        '<span>' + escapeHTML(buttonLabel) + '</span>' +\n      '</button>' +\n    '</div>');\n\n  // add description below text input entry field\n  if (description) {\n    resource.html.appendChild(entryFieldDescription(translate, description, { show: canBeHidden && 'isHidden' }));\n  }\n\n  resource[actionName] = actionMethod;\n  resource[showName] = showMethod;\n\n  if (canBeDisabled) {\n    resource.isDisabled = function() {\n      return options.disabled.apply(resource, arguments);\n    };\n  }\n\n  if (canBeHidden) {\n    resource.isHidden = function() {\n      return !options.hidden.apply(resource, arguments);\n    };\n  }\n\n  resource.cssClasses = ['bpp-textfield'];\n\n  return resource;\n};\n\nmodule.exports = textField;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js ***!
    \***************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    cmdHelper = __webpack_require__(/*! ../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    escapeHTML = __webpack_require__(/*! ../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFieldDescription = __webpack_require__(/*! ./EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify;\n\nvar toggleSwitch = function(translate, options, defaultParameters) {\n  var resource = defaultParameters,\n      id = resource.id,\n      label = options.label || id,\n      canBeHidden = !!options.hidden && typeof options.hidden === 'function',\n      isOn = options.isOn,\n      descriptionOn = options.descriptionOn,\n      descriptionOff = options.descriptionOff,\n      labelOn = options.labelOn,\n      labelOff = options.labelOff;\n\n  resource.html = document.createDocumentFragment();\n\n  resource.html.appendChild(domify('<label for=\"' + escapeHTML(id) + '\" ' +\n      (canBeHidden ? 'data-show=\"shouldShow\"' : '') +\n      '>' + escapeHTML(label) + '</label>' +\n    '<div class=\"bpp-field-wrapper\"' +\n    (canBeHidden ? 'data-show=\"shouldShow\"' : '') +\n    '>' +\n      '<label class=\"bpp-toggle-switch__switcher\">' +\n        '<input id=\"' + escapeHTML(id) + '\" ' +\n            'type=\"checkbox\" ' +\n            'name=\"' + escapeHTML(options.modelProperty) + '\" />' +\n        '<span class=\"bpp-toggle-switch__slider\"></span>' +\n      '</label>' +\n      '<p class=\"bpp-toggle-switch__label\" data-show=\"isOn\">' +\n        escapeHTML(labelOn) +\n      '</p>' +\n      '<p class=\"bpp-toggle-switch__label\" data-show=\"isOff\">' +\n        escapeHTML(labelOff) +\n      '</p>' +\n    '</div>'));\n\n  if (descriptionOn) {\n    resource.html.appendChild(entryFieldDescription(translate, descriptionOn, { show: 'isOn' }));\n  }\n\n  if (descriptionOff) {\n    resource.html.appendChild(entryFieldDescription(translate, descriptionOff, { show: 'isOff' }));\n  }\n\n  resource.get = function(element) {\n    var bo = getBusinessObject(element),\n        res = {};\n\n    res[options.modelProperty] = bo.get(options.modelProperty);\n\n    return res;\n  };\n\n  resource.set = function(element, values) {\n    var res = {};\n\n    res[options.modelProperty] = !!values[options.modelProperty];\n\n    return cmdHelper.updateProperties(element, res);\n  };\n\n  if (typeof options.set === 'function') {\n    resource.set = options.set;\n  }\n\n  if (typeof options.get === 'function') {\n    resource.get = options.get;\n  }\n\n  if (canBeHidden) {\n    resource.shouldShow = function() {\n      return !options.hidden.apply(resource, arguments);\n    };\n  }\n\n  resource.isOn = function() {\n    if (canBeHidden && !resource.shouldShow()) {\n      return false;\n    }\n\n    return isOn.apply(resource, arguments);\n  };\n\n  resource.isOff = function() {\n    if (canBeHidden && !resource.shouldShow()) {\n      return false;\n    }\n\n    return !resource.isOn();\n  };\n\n  resource.cssClasses = ['bpp-toggle-switch'];\n\n  return resource;\n};\n\nmodule.exports = toggleSwitch;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ToggleSwitchEntryFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js ***!
    \***************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar textField = __webpack_require__(/*! ./TextInputEntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/TextInputEntryFactory.js\");\n\n/**\n * This function is a wrapper around TextInputEntryFactory.\n * It adds functionality to cache an invalid value entered in the\n * text input, instead of setting it on the business object.\n */\nvar validationAwareTextField = function(translate, options, defaultParameters) {\n\n  var modelProperty = options.modelProperty;\n\n  defaultParameters.get = function(element, node) {\n    var value = this.__lastInvalidValue;\n\n    delete this.__lastInvalidValue;\n\n    var properties = {};\n\n    properties[modelProperty] = value !== undefined ? value : options.getProperty(element, node);\n\n    return properties;\n  };\n\n  defaultParameters.set = function(element, values, node) {\n    var validationErrors = validate.apply(this, [ element, values, node ]),\n        propertyValue = values[modelProperty];\n\n    // make sure we do not update the id\n    if (validationErrors && validationErrors[modelProperty]) {\n      this.__lastInvalidValue = propertyValue;\n\n      return options.setProperty(element, {}, node);\n    } else {\n      var properties = {};\n\n      properties[modelProperty] = propertyValue;\n\n      return options.setProperty(element, properties, node);\n    }\n  };\n\n  var validate = defaultParameters.validate = function(element, values, node) {\n    var value = values[modelProperty] || this.__lastInvalidValue;\n\n    var property = {};\n    property[modelProperty] = value;\n\n    return options.validate(element, property, node);\n  };\n\n  return textField(translate, options, defaultParameters);\n};\n\nmodule.exports = validationAwareTextField;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/factory/ValidationAwareTextInput.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js ***!
    \********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n\nvar extensionElementsHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\n/**\n * Returns true if the attribute 'camunda:asyncBefore' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncBefore(bo) {\n  return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));\n}\n\nmodule.exports.isAsyncBefore = isAsyncBefore;\n\n/**\n * Returns true if the attribute 'camunda:asyncAfter' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isAsyncAfter(bo) {\n  return !!bo.get('camunda:asyncAfter');\n}\n\nmodule.exports.isAsyncAfter = isAsyncAfter;\n\n/**\n * Returns true if the attribute 'camunda:exclusive' is set\n * to true.\n *\n * @param  {ModdleElement} bo\n *\n * @return {boolean} a boolean value\n */\nfunction isExclusive(bo) {\n  return !!bo.get('camunda:exclusive');\n}\n\nmodule.exports.isExclusive = isExclusive;\n\n/**\n * Get first 'camunda:FailedJobRetryTimeCycle' from the business object.\n *\n * @param  {ModdleElement} bo\n *\n * @return {Array<ModdleElement>} a list of 'camunda:FailedJobRetryTimeCycle'\n */\nfunction getFailedJobRetryTimeCycle(bo) {\n  return extensionElementsHelper.getExtensionElements(bo, 'camunda:FailedJobRetryTimeCycle')[0];\n}\n\nmodule.exports.getFailedJobRetryTimeCycle = getFailedJobRetryTimeCycle;\n\n/**\n * Removes all existing 'camunda:FailedJobRetryTimeCycle' from the business object\n *\n * @param  {ModdleElement} bo\n *\n * @return {Array<ModdleElement>} a list of 'camunda:FailedJobRetryTimeCycle'\n */\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n  var retryTimeCycles = extensionElementsHelper.getExtensionElements(bo, 'camunda:FailedJobRetryTimeCycle');\n  return map(retryTimeCycles, function(cycle) {\n    return extensionElementsHelper.removeEntry(bo, element, cycle);\n  });\n}\n\nmodule.exports.removeFailedJobRetryTimeCycle = removeFailedJobRetryTimeCycle;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js ***!
    \****************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar collectionAdd = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\").add,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar CategoryHelper = {};\n\nmodule.exports = CategoryHelper;\n\n/**\n * Creates a new bpmn:CategoryValue inside a new bpmn:Category\n *\n * @param {ModdleElement} definitions\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement} categoryValue.\n */\nCategoryHelper.createCategoryValue = function(definitions, bpmnFactory) {\n  var categoryValue = bpmnFactory.create('bpmn:CategoryValue'),\n      category = bpmnFactory.create('bpmn:Category', {\n        categoryValue: [ categoryValue ]\n      });\n\n  // add to correct place\n  collectionAdd(definitions.get('rootElements'), category);\n  getBusinessObject(category).$parent = definitions;\n  getBusinessObject(categoryValue).$parent = category;\n\n  return categoryValue;\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js ***!
    \***********************************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\nvar CmdHelper = {};\nmodule.exports = CmdHelper;\n\nCmdHelper.updateProperties = function(element, properties) {\n  return {\n    cmd: 'element.updateProperties',\n    context: { element: element, properties: properties }\n  };\n};\n\nCmdHelper.updateBusinessObject = function(element, businessObject, newProperties) {\n  return {\n    cmd: 'properties-panel.update-businessobject',\n    context: {\n      element: element,\n      businessObject: businessObject,\n      properties: newProperties\n    }\n  };\n};\n\nCmdHelper.addElementsTolist = function(element, businessObject, listPropertyName, objectsToAdd, objectsToPrepend) {\n  return {\n    cmd: 'properties-panel.update-businessobject-list',\n    context: {\n      element: element,\n      currentObject: businessObject,\n      propertyName: listPropertyName,\n      objectsToPrepend: objectsToPrepend,\n      objectsToAdd: objectsToAdd\n    }\n  };\n};\n\nCmdHelper.removeElementsFromList = function(element, businessObject, listPropertyName, referencePropertyName, objectsToRemove) {\n\n  return {\n    cmd: 'properties-panel.update-businessobject-list',\n    context: {\n      element: element,\n      currentObject: businessObject,\n      propertyName: listPropertyName,\n      referencePropertyName: referencePropertyName,\n      objectsToRemove: objectsToRemove\n    }\n  };\n};\n\n\nCmdHelper.addAndRemoveElementsFromList = function(element, businessObject, listPropertyName, referencePropertyName, objectsToAdd, objectsToRemove) {\n\n  return {\n    cmd: 'properties-panel.update-businessobject-list',\n    context: {\n      element: element,\n      currentObject: businessObject,\n      propertyName: listPropertyName,\n      referencePropertyName: referencePropertyName,\n      objectsToAdd: objectsToAdd,\n      objectsToRemove: objectsToRemove\n    }\n  };\n};\n\n\nCmdHelper.setList = function(element, businessObject, listPropertyName, updatedObjectList) {\n  return {\n    cmd: 'properties-panel.update-businessobject-list',\n    context: {\n      element: element,\n      currentObject: businessObject,\n      propertyName: listPropertyName,\n      updatedObjectList: updatedObjectList\n    }\n  };\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js ***!
    \***************************************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\nvar ElementHelper = {};\nmodule.exports = ElementHelper;\n\n/**\n * Creates a new element and set the parent to it\n *\n * @method ElementHelper#createElement\n *\n * @param {String} elementType of the new element\n * @param {Object} properties of the new element in key-value pairs\n * @param {moddle.object} parent of the new element\n * @param {BpmnFactory} factory which creates the new element\n *\n * @returns {djs.model.Base} element which is created\n */\nElementHelper.createElement = function(elementType, properties, parent, factory) {\n  var element = factory.create(elementType, properties);\n  element.$parent = parent;\n\n  return element;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js ***!
    \***********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar EventDefinitionHelper = {};\n\nmodule.exports = EventDefinitionHelper;\n\nEventDefinitionHelper.getEventDefinition = function(element, eventType) {\n\n  var bo = getBusinessObject(element),\n      eventDefinition = null;\n\n  if (bo.eventDefinitions) {\n    forEach(bo.eventDefinitions, function(event) {\n      if (is(event, eventType)) {\n        eventDefinition = event;\n      }\n    });\n  }\n\n  return eventDefinition;\n};\n\nEventDefinitionHelper.getTimerEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:TimerEventDefinition');\n};\n\nEventDefinitionHelper.getMessageEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:MessageEventDefinition');\n};\n\nEventDefinitionHelper.getSignalEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:SignalEventDefinition');\n};\n\nEventDefinitionHelper.getErrorEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:ErrorEventDefinition');\n};\n\nEventDefinitionHelper.getEscalationEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:EscalationEventDefinition');\n};\n\nEventDefinitionHelper.getCompensateEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:CompensateEventDefinition');\n};\n\nEventDefinitionHelper.getLinkEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:LinkEventDefinition');\n};\n\nEventDefinitionHelper.getConditionalEventDefinition = function(element) {\n  return this.getEventDefinition(element, 'bpmn:ConditionalEventDefinition');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js ***!
    \*************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar cmdHelper = __webpack_require__(/*! ./CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ./ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar ExtensionElementsHelper = {};\n\nExtensionElementsHelper.getExtensionElements = function(bo, type) {\n  var elements = [];\n  var extensionElements = bo.get('extensionElements');\n\n  if (typeof extensionElements !== 'undefined') {\n    var extensionValues = extensionElements.get('values');\n    if (typeof extensionValues !== 'undefined') {\n      elements = extensionValues.filter(function(value) {\n        return is(value, type);\n      });\n    }\n  }\n\n  return elements;\n};\n\nExtensionElementsHelper.addEntry = function(bo, element, entry, bpmnFactory) {\n  var extensionElements = bo.get('extensionElements');\n\n  // if there is no extensionElements list, create one\n  if (!extensionElements) {\n\n    // TODO: Ask Daniel which operation costs more\n    extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [entry] }, bo, bpmnFactory);\n    return { extensionElements : extensionElements };\n  } else {\n\n    // add new failedJobRetryExtensionElement to existing extensionElements list\n    return cmdHelper.addElementsTolist(element, extensionElements, 'values', [entry]);\n  }\n};\n\nExtensionElementsHelper.removeEntry = function(bo, element, entry) {\n  var extensionElements = bo.get('extensionElements');\n\n  if (!extensionElements) {\n\n    // return an empty command when there is no extensionElements list\n    return {};\n  }\n\n  return cmdHelper.removeElementsFromList(element, extensionElements, 'values', 'extensionElements', [entry]);\n};\n\nmodule.exports = ExtensionElementsHelper;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js":
  /*!************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js ***!
    \************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    getExtensionElements = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").getExtensionElements;\n\nvar FormHelper = {};\n\nmodule.exports = FormHelper;\n\n/**\n * Return form data from business object or undefined if none exist\n *\n * @param  {djs.model.Base} element\n *\n * @return {ModdleElement|undefined} formData\n */\nFormHelper.getFormData = function(element) {\n  var bo = getBusinessObject(element);\n\n  var formData = getExtensionElements(bo, 'camunda:FormData');\n\n  return formData[0];\n};\n\n\n/**\n * Return all form fields existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array} a list of form field objects\n */\nFormHelper.getFormFields = function(element) {\n  var formData = this.getFormData(element);\n\n  if (typeof formData === 'undefined') {\n    return [];\n  }\n\n  return formData.fields || [];\n};\n\n\n/**\n * Get a form field from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param {number} idx\n *\n * @return {ModdleElement} the form field\n */\nFormHelper.getFormField = function(element, idx) {\n\n  var formFields = this.getFormFields(element);\n\n  return formFields[idx];\n};\n\n\n/**\n * Get all constraints for a specific form field from the business object\n *\n * @param  {ModdleElement} formField\n *\n * @return {Array<ModdleElement>} a list of constraint objects\n */\nFormHelper.getConstraints = function(formField) {\n  if (formField && formField.validation && formField.validation.constraints) {\n    return formField.validation.constraints;\n  }\n  return [];\n};\n\n\n/**\n * Get all camunda:value objects for a specific form field from the business object\n *\n * @param  {ModdleElement} formField\n *\n * @return {Array<ModdleElement>} a list of camunda:value objects\n */\nFormHelper.getEnumValues = function(formField) {\n  if (formField && formField.values) {\n    return formField.values;\n  }\n  return [];\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js ***!
    \**************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n    is = ModelUtil.is,\n    getBusinessObject = ModelUtil.getBusinessObject;\n\nvar eventDefinitionHelper = __webpack_require__(/*! ./EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\nvar extensionsElementHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\nvar ImplementationTypeHelper = {};\n\nmodule.exports = ImplementationTypeHelper;\n\n/**\n * Returns 'true' if the given element is 'camunda:ServiceTaskLike'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isServiceTaskLike = function(element) {\n  return is(element, 'camunda:ServiceTaskLike');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:DmnCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isDmnCapable = function(element) {\n  return is(element, 'camunda:DmnCapable');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExternalCapable'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isExternalCapable = function(element) {\n  return is(element, 'camunda:ExternalCapable');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:TaskListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isTaskListener = function(element) {\n  return is(element, 'camunda:TaskListener');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExecutionListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isExecutionListener = function(element) {\n  return is(element, 'camunda:ExecutionListener');\n};\n\n/**\n * Returns 'true' if the given element is 'camunda:ExecutionListener' or\n * 'camunda:TaskListener'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isListener = function(element) {\n  return this.isTaskListener(element) || this.isExecutionListener(element);\n};\n\n/**\n * Returns 'true' if the given element is 'bpmn:SequenceFlow'\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean} a boolean value\n */\nImplementationTypeHelper.isSequenceFlow = function(element) {\n  return is(element, 'bpmn:SequenceFlow');\n};\n\n/**\n * Get a 'camunda:ServiceTaskLike' business object.\n *\n * If the given element is not a 'camunda:ServiceTaskLike', then 'false'\n * is returned.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the 'camunda:ServiceTaskLike' business object\n */\nImplementationTypeHelper.getServiceTaskLikeBusinessObject = function(element) {\n\n  if (is(element, 'bpmn:IntermediateThrowEvent') || is(element, 'bpmn:EndEvent')) {\n\n    // change business object to 'messageEventDefinition' when\n    // the element is a message intermediate throw event or message end event\n    // because the camunda extensions (e.g. camunda:class) are in the message\n    // event definition tag and not in the intermediate throw event or end event tag\n    var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element);\n    if (messageEventDefinition) {\n      element = messageEventDefinition;\n    }\n  }\n\n  return this.isServiceTaskLike(element) && getBusinessObject(element);\n\n};\n\n/**\n * Returns the implementation type of the given element.\n *\n * Possible implementation types are:\n * - dmn\n * - connector\n * - external\n * - class\n * - expression\n * - delegateExpression\n * - script\n * - or undefined, when no matching implementation type is found\n *\n * @param  {djs.model.Base} element\n *\n * @return {String} the implementation type\n */\nImplementationTypeHelper.getImplementationType = function(element) {\n\n  var bo = this.getServiceTaskLikeBusinessObject(element);\n\n  if (!bo) {\n    if (this.isListener(element)) {\n      bo = element;\n    } else {\n      return;\n    }\n  }\n\n  if (this.isDmnCapable(bo)) {\n    var decisionRef = bo.get('camunda:decisionRef');\n    if (typeof decisionRef !== 'undefined') {\n      return 'dmn';\n    }\n  }\n\n  if (this.isServiceTaskLike(bo)) {\n    var connectors = extensionsElementHelper.getExtensionElements(bo, 'camunda:Connector');\n    if (connectors.length) {\n      return 'connector';\n    }\n  }\n\n  if (this.isExternalCapable(bo)) {\n    var type = bo.get('camunda:type');\n    if (type === 'external') {\n      return 'external';\n    }\n  }\n\n  var cls = bo.get('camunda:class');\n  if (typeof cls !== 'undefined') {\n    return 'class';\n  }\n\n  var expression = bo.get('camunda:expression');\n  if (typeof expression !== 'undefined') {\n    return 'expression';\n  }\n\n  var delegateExpression = bo.get('camunda:delegateExpression');\n  if (typeof delegateExpression !== 'undefined') {\n    return 'delegateExpression';\n  }\n\n  if (this.isListener(bo)) {\n    var script = bo.get('script');\n    if (typeof script !== 'undefined') {\n      return 'script';\n    }\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js ***!
    \*******************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n    is = ModelUtil.is,\n    getBusinessObject = ModelUtil.getBusinessObject;\n\nvar extensionElementsHelper = __webpack_require__(/*! ./ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    implementationTypeHelper = __webpack_require__(/*! ./ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar InputOutputHelper = {};\n\nmodule.exports = InputOutputHelper;\n\nfunction getElements(bo, type, prop) {\n  var elems = extensionElementsHelper.getExtensionElements(bo, type);\n  return !prop ? elems : (elems[0] || {})[prop] || [];\n}\n\nfunction getParameters(element, prop, insideConnector) {\n  var inputOutput = InputOutputHelper.getInputOutput(element, insideConnector);\n  return (inputOutput && inputOutput.get(prop)) || [];\n}\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {djs.model.Base} element\n * @param  {boolean} insideConnector\n *\n * @return {ModdleElement} the inputOutput object\n */\nInputOutputHelper.getInputOutput = function(element, insideConnector) {\n  if (!insideConnector) {\n    var bo = getBusinessObject(element);\n    return (getElements(bo, 'camunda:InputOutput') || [])[0];\n  }\n  var connector = this.getConnector(element);\n  return connector && connector.get('inputOutput');\n};\n\n/**\n * Get a connector from the business object\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement} the connector object\n */\nInputOutputHelper.getConnector = function(element) {\n  var bo = implementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n  return bo && (getElements(bo, 'camunda:Connector') || [])[0];\n};\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n * @param  {boolean} insideConnector\n *\n * @return {Array} a list of input parameter objects\n */\nInputOutputHelper.getInputParameters = function(element, insideConnector) {\n  return getParameters.apply(this, [ element, 'inputParameters', insideConnector ]);\n};\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param  {djs.model.Base} element\n * @param  {boolean} insideConnector\n *\n * @return {Array} a list of output parameter objects\n */\nInputOutputHelper.getOutputParameters = function(element, insideConnector) {\n  return getParameters.apply(this, [ element, 'outputParameters', insideConnector ]);\n};\n\n/**\n * Get a input parameter from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param  {boolean} insideConnector\n * @param {number} idx\n *\n * @return {ModdleElement} input parameter\n */\nInputOutputHelper.getInputParameter = function(element, insideConnector, idx) {\n  return this.getInputParameters(element, insideConnector)[idx];\n};\n\n/**\n * Get a output parameter from the business object at given index\n *\n * @param {djs.model.Base} element\n * @param  {boolean} insideConnector\n * @param {number} idx\n *\n * @return {ModdleElement} output parameter\n */\nInputOutputHelper.getOutputParameter = function(element, insideConnector, idx) {\n  return this.getOutputParameters(element, insideConnector)[idx];\n};\n\n/**\n * Returns 'true' if the given element supports inputOutput\n *\n * @param {djs.model.Base} element\n * @param  {boolean} insideConnector\n *\n * @return {boolean} a boolean value\n */\nInputOutputHelper.isInputOutputSupported = function(element, insideConnector) {\n\n  if (insideConnector) {\n    return true;\n  }\n\n  var bo = getBusinessObject(element);\n\n  return (\n    is(bo, 'bpmn:FlowNode') && !(\n      is(bo, 'bpmn:StartEvent') ||\n      is(bo, 'bpmn:Gateway') ||\n      is(bo, 'bpmn:BoundaryEvent') ||\n      (\n        is(bo, 'bpmn:SubProcess') && bo.get('triggeredByEvent')\n      )\n    )\n  );\n};\n\n/**\n * Returns 'true' if the given element supports output parameters\n *\n * @param {djs.model.Base} element\n * @param  {boolean} insideConnector\n *\n * @return {boolean} a boolean value\n */\nInputOutputHelper.areOutputParametersSupported = function(element, insideConnector) {\n  var bo = getBusinessObject(element);\n  return insideConnector || (!is(bo, 'bpmn:EndEvent') && !bo.loopCharacteristics);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js ***!
    \*******************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    cmdHelper = __webpack_require__(/*! ./CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n\nvar ParticipantHelper = {};\n\nmodule.exports = ParticipantHelper;\n\nParticipantHelper.modifyProcessBusinessObject = function(element, property, values) {\n  if (!is(element, 'bpmn:Participant')) {\n    return {};\n  }\n\n  var bo = getBusinessObject(element).get('processRef'),\n      properties = {};\n\n  properties[property] = values[property];\n\n  return cmdHelper.updateBusinessObject(element, bo, properties);\n};\n\nParticipantHelper.getProcessBusinessObject = function(element, propertyName) {\n  if (!is(element, 'bpmn:Participant')) {\n    return {};\n  }\n\n  var bo = getBusinessObject(element).get('processRef'),\n      properties = {};\n\n  properties[propertyName] = bo.get(propertyName);\n\n  return properties;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/index.js":
  /*!************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/index.js ***!
    \************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("module.exports = {\n  __depends__: [\n    __webpack_require__(/*! ./cmd */ \"./node_modules/bpmn-js-properties-panel/lib/cmd/index.js\"),\n    __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n  ],\n  __init__: [ 'propertiesPanel' ],\n  propertiesPanel: [ 'type', __webpack_require__(/*! ./PropertiesPanel */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesPanel.js\") ]\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js ***!
    \*********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n    is = ModelUtil.is,\n    getBusinessObject = ModelUtil.getBusinessObject;\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var getValue = function(businessObject) {\n    return function(element) {\n      var documentations = businessObject && businessObject.get('documentation'),\n          text = (documentations && documentations.length > 0) ? documentations[0].text : '';\n\n      return { documentation: text };\n    };\n  };\n\n  var setValue = function(businessObject) {\n    return function(element, values) {\n      var newObjectList = [];\n\n      if (typeof values.documentation !== 'undefined' && values.documentation !== '') {\n        newObjectList.push(bpmnFactory.create('bpmn:Documentation', {\n          text: values.documentation\n        }));\n      }\n\n      return cmdHelper.setList(element, businessObject, 'documentation', newObjectList);\n    };\n  };\n\n  // Element Documentation\n  var elementDocuEntry = entryFactory.textBox(translate, {\n    id: 'documentation',\n    label: translate('Element Documentation'),\n    modelProperty: 'documentation'\n  });\n\n  elementDocuEntry.set = setValue(getBusinessObject(element));\n\n  elementDocuEntry.get = getValue(getBusinessObject(element));\n\n  group.entries.push(elementDocuEntry);\n\n\n  var processRef;\n\n  // Process Documentation when having a Collaboration Diagram\n  if (is(element, 'bpmn:Participant')) {\n\n    processRef = getBusinessObject(element).processRef;\n\n    // do not show for collapsed Pools/Participants\n    if (processRef) {\n      var processDocuEntry = entryFactory.textBox(translate, {\n        id: 'process-documentation',\n        label: translate('Process Documentation'),\n        modelProperty: 'documentation'\n      });\n\n      processDocuEntry.set = setValue(processRef);\n\n      processDocuEntry.get = getValue(processRef);\n\n      group.entries.push(processDocuEntry);\n    }\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js ***!
    \*************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar message = __webpack_require__(/*! ./implementation/MessageEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js\"),\n    signal = __webpack_require__(/*! ./implementation/SignalEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js\"),\n    error = __webpack_require__(/*! ./implementation/ErrorEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js\"),\n    escalation = __webpack_require__(/*! ./implementation/EscalationEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js\"),\n    timer = __webpack_require__(/*! ./implementation/TimerEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js\"),\n    compensation = __webpack_require__(/*! ./implementation/CompensateEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js\"),\n    condition = __webpack_require__(/*! ./implementation/ConditionalEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, elementRegistry, translate) {\n  var events = [\n    'bpmn:StartEvent',\n    'bpmn:EndEvent',\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:IntermediateCatchEvent'\n  ];\n\n  // Message and Signal Event Definition\n  forEach(events, function(event) {\n    if (is(element, event)) {\n\n      var messageEventDefinition = eventDefinitionHelper.getMessageEventDefinition(element),\n          signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);\n\n      if (messageEventDefinition) {\n        message(group, element, bpmnFactory, messageEventDefinition, translate);\n      }\n\n      if (signalEventDefinition) {\n        signal(group, element, bpmnFactory, signalEventDefinition, translate);\n      }\n\n    }\n  });\n\n  // Special Case: Receive Task\n  if (is(element, 'bpmn:ReceiveTask')) {\n    message(group, element, bpmnFactory, getBusinessObject(element), translate);\n  }\n\n  // Error Event Definition\n  var errorEvents = [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:EndEvent'\n  ];\n\n  forEach(errorEvents, function(event) {\n    if (is(element, event)) {\n\n      var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);\n\n      if (errorEventDefinition) {\n\n        error(group, element, bpmnFactory, errorEventDefinition, translate);\n      }\n    }\n  });\n\n  // Escalation Event Definition\n  var escalationEvents = [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:EndEvent'\n  ];\n\n  forEach(escalationEvents, function(event) {\n    if (is(element, event)) {\n\n      var showEscalationCodeVariable = is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');\n\n      // get business object\n      var escalationEventDefinition = eventDefinitionHelper.getEscalationEventDefinition(element);\n\n      if (escalationEventDefinition) {\n        escalation(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable,\n          translate);\n      }\n    }\n\n  });\n\n  // Timer Event Definition\n  var timerEvents = [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:IntermediateCatchEvent'\n  ];\n\n  forEach(timerEvents, function(event) {\n    if (is(element, event)) {\n\n      // get business object\n      var timerEventDefinition = eventDefinitionHelper.getTimerEventDefinition(element);\n\n      if (timerEventDefinition) {\n        timer(group, element, bpmnFactory, timerEventDefinition, translate);\n      }\n    }\n  });\n\n  // Compensate Event Definition\n  var compensationEvents = [\n    'bpmn:EndEvent',\n    'bpmn:IntermediateThrowEvent'\n  ];\n\n  forEach(compensationEvents, function(event) {\n    if (is(element, event)) {\n\n      // get business object\n      var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(element);\n\n      if (compensateEventDefinition) {\n        compensation(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate);\n      }\n    }\n  });\n\n\n  // Conditional Event Definition\n  var conditionalEvents = [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:IntermediateCatchEvent'\n  ];\n\n  if (isAny(element, conditionalEvents)) {\n\n    // get business object\n    var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n    if (conditionalEventDefinition) {\n      condition(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate);\n    }\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js ***!
    \******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar participantHelper = __webpack_require__(/*! ../../../helper/ParticipantHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js\");\n\nmodule.exports = function(group, element, translate) {\n\n  var bo = getBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && bo.get('processRef'))) {\n\n    var executableEntry = entryFactory.checkbox(translate, {\n      id: 'process-is-executable',\n      label: translate('Executable'),\n      modelProperty: 'isExecutable'\n    });\n\n    // in participants we have to change the default behavior of set and get\n    if (is(element, 'bpmn:Participant')) {\n      executableEntry.get = function(element) {\n        return participantHelper.getProcessBusinessObject(element, 'isExecutable');\n      };\n\n      executableEntry.set = function(element, values) {\n        return participantHelper.modifyProcessBusinessObject(element, 'isExecutable', values);\n      };\n    }\n\n    group.entries.push(executableEntry);\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js ***!
    \**********************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(group, element, translate, options) {\n  if (!options) {\n    options = {};\n  }\n\n  // Id\n  group.entries.push(entryFactory.validationAwareTextField(translate, {\n    id: options.id || 'id',\n    label: translate(options.label || 'Id'),\n    description: options.description && translate(options.description),\n    modelProperty: 'id',\n    getProperty: function(element) {\n      return getBusinessObject(element).id;\n    },\n    setProperty: function(element, properties) {\n\n      element = element.labelTarget || element;\n\n      return cmdHelper.updateProperties(element, properties);\n    },\n    validate: function(element, values) {\n      var idValue = values.id;\n\n      var bo = getBusinessObject(element);\n\n      var idError = utils.isIdValid(bo, idValue, translate);\n\n      return idError ? { id: idError } : {};\n    }\n  }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js ***!
    \************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nfunction getLinkEventDefinition(element) {\n\n  var bo = getBusinessObject(element);\n\n  var linkEventDefinition = null;\n  if (bo.eventDefinitions) {\n    forEach(bo.eventDefinitions, function(eventDefinition) {\n      if (is(eventDefinition, 'bpmn:LinkEventDefinition')) {\n        linkEventDefinition = eventDefinition;\n      }\n    });\n  }\n\n  return linkEventDefinition;\n}\n\nmodule.exports = function(group, element, translate) {\n  var linkEvents = [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ];\n\n  forEach(linkEvents, function(event) {\n    if (is(element, event)) {\n\n      var linkEventDefinition = getLinkEventDefinition(element);\n\n      if (linkEventDefinition) {\n        var entry = entryFactory.textField(translate, {\n          id: 'link-event',\n          label: translate('Link Name'),\n          modelProperty: 'link-name'\n        });\n\n        entry.get = function() {\n          return { 'link-name': linkEventDefinition.get('name') };\n        };\n\n        entry.set = function(element, values) {\n          var newProperties = {\n            name: values['link-name']\n          };\n          return cmdHelper.updateBusinessObject(element, linkEventDefinition, newProperties);\n        };\n\n        group.entries.push(entry);\n      }\n    }\n  });\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js ***!
    \************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar nameEntryFactory = __webpack_require__(/*! ./implementation/Name */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js\"),\n    createCategoryValue = __webpack_require__(/*! ../../../helper/CategoryHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CategoryHelper.js\").createCategoryValue,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nmodule.exports = function(group, element, bpmnFactory, canvas, translate, options) {\n  if (!options) {\n    options = {};\n  }\n\n  function initializeCategory(semantic) {\n    var rootElement = canvas.getRootElement(),\n        definitions = getBusinessObject(rootElement).$parent,\n        categoryValue = createCategoryValue(definitions, bpmnFactory);\n\n    semantic.categoryValueRef = categoryValue;\n\n  }\n\n  function setGroupName(element, values) {\n    var bo = getBusinessObject(element),\n        categoryValueRef = bo.categoryValueRef;\n\n    if (!categoryValueRef) {\n      initializeCategory(bo);\n    }\n\n    // needs direct call to update categoryValue properly\n    return {\n      cmd: 'element.updateLabel',\n      context: {\n        element: element,\n        newLabel: values.categoryValue\n      }\n    };\n  }\n\n  function getGroupName(element) {\n    var bo = getBusinessObject(element),\n        value = (bo.categoryValueRef || {}).value;\n\n    return { categoryValue: value };\n  }\n\n  if (!is(element, 'bpmn:Collaboration')) {\n    var nameOptions = {\n      id: options.id,\n      label: options.label && translate(options.label)\n    };\n\n    if (is(element, 'bpmn:TextAnnotation')) {\n      nameOptions.modelProperty = 'text';\n      nameOptions.label = translate('Text');\n    } else if (is(element, 'bpmn:Group')) {\n      nameOptions.modelProperty = 'categoryValue';\n      nameOptions.label = translate('Category Value');\n      nameOptions.get = getGroupName;\n      nameOptions.set = setGroupName;\n    }\n\n    // name\n    group.entries = group.entries.concat(nameEntryFactory(element, nameOptions, translate));\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js ***!
    \***************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    participantHelper = __webpack_require__(/*! ../../../helper/ParticipantHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ParticipantHelper.js\"),\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    nameEntryFactory = __webpack_require__(/*! ./implementation/Name */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js\"),\n    utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nmodule.exports = function(group, element, translate, options) {\n  var businessObject = getBusinessObject(element);\n\n  var processIdDescription = options && options.processIdDescription;\n\n  if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {\n\n    /**\n     * processId\n     */\n    if (is(element, 'bpmn:Participant')) {\n      var idEntry = entryFactory.validationAwareTextField(translate, {\n        id: 'process-id',\n        label: translate('Process Id'),\n        description: processIdDescription && translate(processIdDescription),\n        modelProperty: 'processId'\n      });\n\n      // in participants we have to change the default behavior of set and get\n      idEntry.get = function(element) {\n        var properties = participantHelper.getProcessBusinessObject(element, 'id');\n        return { processId: properties.id };\n      };\n\n      idEntry.set = function(element, values) {\n        return participantHelper.modifyProcessBusinessObject(element, 'id', { id: values.processId });\n      };\n\n      idEntry.validate = function(element, values) {\n        var idValue = values.processId;\n\n        var bo = getBusinessObject(element);\n\n        var processIdError = utils.isIdValid(bo.processRef, idValue, translate);\n\n        return processIdError ? { processId: processIdError } : {};\n      };\n\n      group.entries.push(idEntry);\n\n\n      /**\n       * process name\n       */\n      var processNameEntry = nameEntryFactory(element, {\n        id: 'process-name',\n        label: translate('Process Name')\n      })[0];\n\n      // in participants we have to change the default behavior of set and get\n      processNameEntry.get = function(element) {\n        return participantHelper.getProcessBusinessObject(element, 'name');\n      };\n\n      processNameEntry.set = function(element, values) {\n        return participantHelper.modifyProcessBusinessObject(element, 'name', values);\n      };\n\n      group.entries.push(processNameEntry);\n    }\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js":
  /*!*******************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js ***!
    \*******************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n    filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n\n\nfunction getContainedActivities(element) {\n  return getFlowElements(element, 'bpmn:Activity');\n}\n\nfunction getContainedBoundaryEvents(element) {\n  return getFlowElements(element, 'bpmn:BoundaryEvent');\n}\n\nfunction getFlowElements(element, type) {\n  return utils.filterElementsByType(element.flowElements, type);\n}\n\nfunction isCompensationEventAttachedToActivity(activity, boundaryEvents) {\n  var activityId = activity.id;\n  var boundaryEvent = find(boundaryEvents, function(boundaryEvent) {\n    var compensateEventDefinition = eventDefinitionHelper.getCompensateEventDefinition(boundaryEvent);\n    var attachedToRef = boundaryEvent.attachedToRef;\n    return compensateEventDefinition && attachedToRef && attachedToRef.id === activityId;\n  });\n  return !!boundaryEvent;\n}\n\n// subprocess: only when it is not triggeredByEvent\n// activity: only when it attach a compensation boundary event\n// callActivity: no limitation\nfunction canActivityBeCompensated(activity, boundaryEvents) {\n  return (is(activity, 'bpmn:SubProcess') && !activity.triggeredByEvent) ||\n          is(activity, 'bpmn:CallActivity') ||\n          isCompensationEventAttachedToActivity(activity, boundaryEvents);\n}\n\nfunction getActivitiesForCompensation(element) {\n  var boundaryEvents = getContainedBoundaryEvents(element);\n  return filter(getContainedActivities(element), function(activity) {\n    return canActivityBeCompensated(activity, boundaryEvents);\n  });\n}\n\nfunction getActivitiesForActivityRef(element) {\n  var bo = getBusinessObject(element);\n  var parent = bo.$parent;\n\n  var activitiesForActivityRef = getActivitiesForCompensation(parent);\n\n  // if throwing compensation event is in an event sub process:\n  // get also all activities outside of the event sub process\n  if (is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent) {\n    parent = parent.$parent;\n    if (parent) {\n      activitiesForActivityRef = activitiesForActivityRef.concat(getActivitiesForCompensation(parent));\n    }\n\n  }\n\n  return activitiesForActivityRef;\n}\n\nfunction createActivityRefOptions(element) {\n  var options = [ { value: '' } ];\n\n  var activities = getActivitiesForActivityRef(element);\n  forEach(activities, function(activity) {\n    var activityId = activity.id;\n    var name = (activity.name ? (activity.name + ' ') : '') + '(id=' + activityId + ')';\n    options.push({ value: activityId, name: name });\n  });\n\n  return options;\n}\n\n\nmodule.exports = function(group, element, bpmnFactory, compensateEventDefinition, elementRegistry, translate) {\n\n  group.entries.push(entryFactory.checkbox(translate, {\n    id: 'wait-for-completion',\n    label: translate('Wait for Completion'),\n    modelProperty: 'waitForCompletion',\n\n    get: function(element, node) {\n      return {\n        waitForCompletion: compensateEventDefinition.waitForCompletion\n      };\n    },\n\n    set: function(element, values) {\n      values.waitForCompletion = values.waitForCompletion || false;\n      return cmdHelper.updateBusinessObject(element, compensateEventDefinition, values);\n    }\n  }));\n\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: 'activity-ref',\n    label: translate('Activity Ref'),\n    selectOptions: createActivityRefOptions(element),\n    modelProperty: 'activityRef',\n\n    get: function(element, node) {\n      var activityRef = compensateEventDefinition.activityRef;\n      activityRef = activityRef && activityRef.id;\n      return {\n        activityRef: activityRef || ''\n      };\n    },\n\n    set: function(element, values) {\n      var activityRef = values.activityRef || undefined;\n      activityRef = activityRef && getBusinessObject(elementRegistry.get(activityRef));\n      return cmdHelper.updateBusinessObject(element, compensateEventDefinition, {\n        activityRef: activityRef\n      });\n    }\n  }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/CompensateEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js":
  /*!********************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js ***!
    \********************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isEventSubProcess = __webpack_require__(/*! bpmn-js/lib/util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\").isEventSubProcess;\n\nmodule.exports = function(group, element, bpmnFactory, conditionalEventDefinition, elementRegistry, translate) {\n\n  var getValue = function(modelProperty) {\n    return function(element) {\n      var modelPropertyValue = conditionalEventDefinition.get('camunda:' + modelProperty);\n      var value = {};\n\n      value[modelProperty] = modelPropertyValue;\n      return value;\n    };\n  };\n\n  var setValue = function(modelProperty) {\n    return function(element, values) {\n      var props = {};\n\n      props['camunda:' + modelProperty] = values[modelProperty] || undefined;\n\n      return cmdHelper.updateBusinessObject(element, conditionalEventDefinition, props);\n    };\n  };\n\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'variableName',\n    label: translate('Variable Name'),\n    modelProperty : 'variableName',\n\n    get: getValue('variableName'),\n    set: setValue('variableName')\n  }));\n\n  var isConditionalStartEvent =\n    is(element, 'bpmn:StartEvent') && !isEventSubProcess(element.parent);\n\n  if (!isConditionalStartEvent) {\n    group.entries.push(entryFactory.textField(translate, {\n      id: 'variableEvents',\n      label: translate('Variable Events'),\n      description: translate('Specify more than one variable change event as a comma separated list.'),\n      modelProperty : 'variableEvents',\n\n      get: getValue('variableEvents'),\n      set: setValue('variableEvents')\n    }));\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ConditionalEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js":
  /*!******************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js ***!
    \******************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n/**\n * Create an entry to modify a property of an element which\n * is referenced by a event definition.\n *\n * @param  {djs.model.Base} element\n * @param  {ModdleElement} definition\n * @param  {BpmnFactory} bpmnFactory\n * @param  {Object} options\n * @param  {string} options.id the id of the entry\n * @param  {string} options.label the label of the entry\n * @param  {string} options.referenceProperty the name of referencing property\n * @param  {string} options.modelProperty the name of property to modify\n * @param  {string} options.shouldValidate a flag indicate whether to validate or not\n *\n * @return {Array<Object>} return an array containing the entries\n */\nmodule.exports = function(element, definition, bpmnFactory, translate, options) {\n\n  var id = options.id || 'element-property';\n  var label = options.label;\n  var referenceProperty = options.referenceProperty;\n  var modelProperty = options.modelProperty || 'name';\n  var shouldValidate = options.shouldValidate || false;\n  var description = options.description;\n  var canBeHidden = !!options.hidden && typeof options.hidden === 'function';\n\n  var entry = entryFactory.textField(translate, {\n    id: id,\n    label: label,\n    modelProperty: modelProperty,\n    description: description,\n\n    get: function(element, node) {\n      var reference = definition.get(referenceProperty);\n      var props = {};\n      props[modelProperty] = reference && reference.get(modelProperty);\n      return props;\n    },\n\n    set: function(element, values, node) {\n      var reference = definition.get(referenceProperty);\n      var props = {};\n      props[modelProperty] = values[modelProperty] || undefined;\n      return cmdHelper.updateBusinessObject(element, reference, props);\n    },\n\n    hidden: function(element, node) {\n      if (canBeHidden) {\n        return options.hidden.apply(definition, arguments) || !definition.get(referenceProperty);\n      }\n      return !definition.get(referenceProperty);\n    }\n  });\n\n  if (shouldValidate) {\n    entry.validate = function(element, values, node) {\n      var reference = definition.get(referenceProperty);\n      if (reference && !values[modelProperty]) {\n        var validationErrors = {};\n        validationErrors[modelProperty] = 'Must provide a value';\n        return validationErrors;\n      }\n    };\n  }\n\n  return [ entry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, errorEventDefinition, translate) {\n\n\n  group.entries = group.entries.concat(eventDefinitionReference(element, errorEventDefinition, bpmnFactory, {\n    label: translate('Global Error referenced'),\n    elementName: 'error',\n    elementType: 'bpmn:Error',\n    referenceProperty: 'errorRef',\n    newElementIdPrefix: 'Error_'\n  }));\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n      id: 'error-element-name',\n      label: translate('Name'),\n      referenceProperty: 'errorRef',\n      modelProperty: 'name',\n      shouldValidate: true\n    })\n  );\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n      id: 'error-element-code',\n      label: translate('Code'),\n      referenceProperty: 'errorRef',\n      modelProperty: 'errorCode'\n    })\n  );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ErrorEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js":
  /*!*******************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js ***!
    \*******************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, escalationEventDefinition, showEscalationCodeVariable, translate) {\n\n  group.entries = group.entries.concat(eventDefinitionReference(element, escalationEventDefinition, bpmnFactory, {\n    label: translate('Global Escalation referenced'),\n    elementName: 'escalation',\n    elementType: 'bpmn:Escalation',\n    referenceProperty: 'escalationRef',\n    newElementIdPrefix: 'Escalation_'\n  }));\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, escalationEventDefinition, bpmnFactory, translate, {\n      id: 'escalation-element-name',\n      label: translate('Global Escalation Name'),\n      referenceProperty: 'escalationRef',\n      modelProperty: 'name',\n      shouldValidate: true\n    })\n  );\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, escalationEventDefinition, bpmnFactory, translate, {\n      id: 'escalation-element-code',\n      label: translate('Global Escalation Code'),\n      referenceProperty: 'escalationRef',\n      modelProperty: 'escalationCode'\n    })\n  );\n\n\n  if (showEscalationCodeVariable) {\n    group.entries.push(entryFactory.validationAwareTextField(translate, {\n      id : 'escalationCodeVariable',\n      label : translate('Escalation Code Variable'),\n      modelProperty : 'escalationCodeVariable',\n      description: translate('Define the name of the variable that will contain the escalation code'),\n\n      getProperty: function(element) {\n        var codeVariable = escalationEventDefinition.get('camunda:escalationCodeVariable');\n\n        return codeVariable;\n      },\n\n      setProperty: function(element, values) {\n        if (values.escalationCodeVariable === '')\n          values.escalationCodeVariable = undefined;\n\n        return cmdHelper.updateBusinessObject(element, escalationEventDefinition, values);\n      },\n\n      validate: function(element, values) {\n        var validation = {},\n            targetValue = values.escalationCodeVariable;\n\n        if (utils.containsSpace(targetValue)) {\n          validation.escalationCodeVariable = translate('Escalation code variable must not contain spaces.');\n        }\n\n        return validation;\n      }\n    }));\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EscalationEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js":
  /*!******************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js ***!
    \******************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domAttr = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").attr;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n    escapeHTML = utils.escapeHTML;\n\nvar selector = 'select[name=selectedElement]';\n\n/**\n * Get select box containing all elements.\n *\n * @param {DOMElement} node\n *\n * @return {DOMElement} the select box\n */\nfunction getSelectBox(node) {\n  return domQuery(selector, node);\n}\n\n/**\n * Find element by given id.\n *\n * @param {ModdleElement} eventDefinition\n *\n * @return {ModdleElement} an element\n */\nfunction findElementById(eventDefinition, type, id) {\n  var elements = utils.findRootElementsByType(eventDefinition, type);\n  return find(elements, function(element) {\n    return element.id === id;\n  });\n}\n\n/**\n * Create an entry to modify the reference to an element from an\n * event definition.\n *\n * @param  {djs.model.Base} element\n * @param  {ModdleElement} definition\n * @param  {BpmnFactory} bpmnFactory\n * @param  {Object} options\n * @param  {string} options.label the label of the entry\n * @param  {string} options.description the description of the entry\n * @param  {string} options.elementName the name of the element\n * @param  {string} options.elementType the type of the element\n * @param  {string} options.referenceProperty the name of referencing property\n * @param  {string} options.newElementIdPrefix the prefix of a new created element\n *\n * @return {Array<Object>} return an array containing the entries\n */\nmodule.exports = function(element, definition, bpmnFactory, options) {\n\n  var elementName = options.elementName || '',\n      elementType = options.elementType,\n      referenceProperty = options.referenceProperty;\n\n  var newElementIdPrefix = options.newElementIdPrefix || 'elem_';\n\n  var label = options.label || '',\n      description = options.description || '';\n\n  var entries = [];\n\n  var canBeHidden = !!options.hidden && typeof options.hidden === 'function';\n\n  entries.push({\n\n    id: options.id || 'event-definitions-' + elementName,\n    description: description,\n    isShown: function() {\n      if (canBeHidden) {\n        return !options.hidden.apply(definition, arguments);\n      }\n      return !options.hidden;\n    },\n    html: '<div class=\"bpp-row bpp-select\" data-show=\"isShown\">' +\n             '<label for=\"camunda-' + escapeHTML(elementName) + '\">' + escapeHTML(label) + '</label>' +\n             '<div class=\"bpp-field-wrapper\">' +\n               '<select id=\"camunda-' + escapeHTML(elementName) + '\" name=\"selectedElement\" data-value>' +\n               '</select>' +\n               '<button class=\"action-button add\" id=\"addElement\" data-action=\"addElement\"><span>+</span></button>' +\n             '</div>' +\n          '</div>',\n\n    get: function(element, entryNode) {\n      utils.updateOptionsDropDown(selector, definition, elementType, entryNode);\n      var reference = definition.get(referenceProperty);\n      return {\n        selectedElement: (reference && reference.id) || ''\n      };\n    },\n\n    set: function(element, values) {\n      var selection = values.selectedElement;\n\n      var props = {};\n\n      if (!selection || typeof selection === 'undefined') {\n\n        // remove reference to element\n        props[referenceProperty] = undefined;\n        return cmdHelper.updateBusinessObject(element, definition, props);\n      }\n\n      var commands = [];\n\n      var selectedElement = findElementById(definition, elementType, selection);\n      if (!selectedElement) {\n        var root = utils.getRoot(definition);\n\n        // create a new element\n        selectedElement = elementHelper.createElement(elementType, { name: selection }, root, bpmnFactory);\n        commands.push(cmdHelper.addAndRemoveElementsFromList(element, root, 'rootElements', null, [ selectedElement ]));\n      }\n\n      // update reference to element\n      props[referenceProperty] = selectedElement;\n      commands.push(cmdHelper.updateBusinessObject(element, definition, props));\n\n      return commands;\n    },\n\n    addElement: function(element, inputNode) {\n\n      // note: this generated id will be used as name\n      // of the element and not as id\n      var id = utils.nextId(newElementIdPrefix);\n\n      var optionTemplate = domify('<option value=\"' + escapeHTML(id) + '\"> (id='+escapeHTML(id)+')' + '</option>');\n\n      // add new option\n      var selectBox = getSelectBox(inputNode);\n      selectBox.insertBefore(optionTemplate, selectBox.firstChild);\n\n      // select new element in the select box\n      forEach(selectBox, function(option) {\n        if (option.value === id) {\n          domAttr(option, 'selected', 'selected');\n        } else {\n          domAttr(option, 'selected', null);\n        }\n      });\n\n      return true;\n    }\n\n  });\n\n  return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js":
  /*!****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js ***!
    \****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, messageEventDefinition, translate) {\n\n  group.entries = group.entries.concat(eventDefinitionReference(element, messageEventDefinition, bpmnFactory, {\n    label: translate('Global Message referenced'),\n    elementName: 'message',\n    elementType: 'bpmn:Message',\n    referenceProperty: 'messageRef',\n    newElementIdPrefix: 'Message_'\n  }));\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, messageEventDefinition, bpmnFactory, translate, {\n      id: 'message-element-name',\n      label: translate('Global Message Name'),\n      referenceProperty: 'messageRef',\n      modelProperty: 'name',\n      shouldValidate: true\n    })\n  );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/MessageEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js":
  /*!**********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js ***!
    \**********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n * Create an entry to modify the name of an an element.\n *\n * @param  {djs.model.Base} element\n * @param  {Object} options\n * @param  {string} options.id the id of the entry\n * @param  {string} options.label the label of the entry\n *\n * @return {Array<Object>} return an array containing\n *                         the entry to modify the name\n */\nmodule.exports = function(element, options, translate) {\n\n  options = options || {};\n  var id = options.id || 'name',\n      label = options.label || translate('Name'),\n      modelProperty = options.modelProperty || 'name';\n\n  var nameEntry = entryFactory.textBox(translate, {\n    id: id,\n    label: label,\n    modelProperty: modelProperty,\n    get: options.get,\n    set: options.set\n  });\n\n  return [ nameEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/Name.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js":
  /*!***************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js ***!
    \***************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar eventDefinitionReference = __webpack_require__(/*! ./EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ./ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, signalEventDefinition, translate) {\n\n  group.entries = group.entries.concat(eventDefinitionReference(element, signalEventDefinition, bpmnFactory, {\n    label: translate('Global Signal referenced'),\n    elementName: 'signal',\n    elementType: 'bpmn:Signal',\n    referenceProperty: 'signalRef',\n    newElementIdPrefix: 'Signal_'\n  }));\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, signalEventDefinition, bpmnFactory, translate, {\n      id: 'signal-element-name',\n      label: translate('Global Signal Name'),\n      referenceProperty: 'signalRef',\n      modelProperty: 'name',\n      shouldValidate: true\n    })\n  );\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/SignalEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n * Get the timer definition type for a given timer event definition.\n *\n * @param {ModdleElement<bpmn:TimerEventDefinition>} timer\n *\n * @return {string|undefined} the timer definition type\n */\nfunction getTimerDefinitionType(timer) {\n\n  if (!timer) {\n    return;\n  }\n\n  var timeDate = timer.get('timeDate');\n  if (typeof timeDate !== 'undefined') {\n    return 'timeDate';\n  }\n\n  var timeCycle = timer.get('timeCycle');\n  if (typeof timeCycle !== 'undefined') {\n    return 'timeCycle';\n  }\n\n  var timeDuration = timer.get('timeDuration');\n  if (typeof timeDuration !== 'undefined') {\n    return 'timeDuration';\n  }\n}\n\n/**\n * Get the actual timer event definition based on option, whether it's a getter\n * to fetch the timer event definition or the exact event definition itself\n *\n * @param {ModdleElement<bpmn:TimerEventDefinition>|Function} timerOrFunction\n * @param {Shape} element\n * @param {HTMLElement} node\n *\n * @return ModdleElement<bpmn:TimerEventDefinition>\n */\nfunction getTimerDefinition(timerOrFunction, element, node) {\n  if (typeof timerOrFunction === 'function') {\n    return timerOrFunction(element, node);\n  }\n\n  return timerOrFunction;\n}\n\n/**\n * Creates 'bpmn:FormalExpression' element.\n *\n * @param {ModdleElement} parent\n * @param {string} body\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement<bpmn:FormalExpression>} a formal expression\n */\nfunction createFormalExpression(parent, body, bpmnFactory) {\n  body = body || undefined;\n  return elementHelper.createElement('bpmn:FormalExpression', { body: body }, parent, bpmnFactory);\n}\n\nfunction TimerEventDefinition(group, element, bpmnFactory, timerEventDefinition, translate, options) {\n\n  var selectOptions = [\n    { value: 'timeDate', name: translate('Date') },\n    { value: 'timeDuration', name: translate('Duration') },\n    { value: 'timeCycle', name: translate('Cycle') }\n  ];\n\n  var prefix = options && options.idPrefix,\n      createTimerEventDefinition = options && options.createTimerEventDefinition;\n\n\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: prefix + 'timer-event-definition-type',\n    label: translate('Timer Definition Type'),\n    selectOptions: selectOptions,\n    emptyParameter: true,\n    modelProperty: 'timerDefinitionType',\n\n    get: function(element, node) {\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node);\n\n      return {\n        timerDefinitionType: getTimerDefinitionType(timerDefinition) || ''\n      };\n    },\n\n    set: function(element, values, node) {\n      var props = {\n        timeDuration: undefined,\n        timeDate: undefined,\n        timeCycle: undefined\n      };\n\n\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n          newType = values.timerDefinitionType;\n\n      if (!timerDefinition && typeof createTimerEventDefinition === 'function') {\n        timerDefinition = createTimerEventDefinition(element, node);\n      }\n\n      if (values.timerDefinitionType) {\n        var oldType = getTimerDefinitionType(timerDefinition);\n\n        var value;\n        if (oldType) {\n          var definition = timerDefinition.get(oldType);\n          value = definition.get('body');\n        }\n\n        props[newType] = createFormalExpression(timerDefinition, value, bpmnFactory);\n      }\n\n      return cmdHelper.updateBusinessObject(element, timerDefinition, props);\n    },\n\n    hidden: function(element, node) {\n      return getTimerDefinition(timerEventDefinition, element, node) === undefined;\n    }\n\n  }));\n\n\n  group.entries.push(entryFactory.textField(translate, {\n    id: prefix + 'timer-event-definition',\n    label: translate('Timer Definition'),\n    modelProperty: 'timerDefinition',\n\n    get: function(element, node) {\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n          type = getTimerDefinitionType(timerDefinition),\n          definition = type && timerDefinition.get(type),\n          value = definition && definition.get('body');\n\n      return {\n        timerDefinition: value\n      };\n    },\n\n    set: function(element, values, node) {\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n          type = getTimerDefinitionType(timerDefinition),\n          definition = type && timerDefinition.get(type);\n\n      if (definition) {\n        return cmdHelper.updateBusinessObject(element, definition, {\n          body: values.timerDefinition || undefined\n        });\n      }\n    },\n\n    validate: function(element, node) {\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node),\n          type = getTimerDefinitionType(timerDefinition),\n          definition = type && timerDefinition.get(type);\n\n      if (definition) {\n        var value = definition.get('body');\n        if (!value) {\n          return {\n            timerDefinition: translate('Must provide a value')\n          };\n        }\n      }\n    },\n\n    hidden: function(element, node) {\n      var timerDefinition = getTimerDefinition(timerEventDefinition, element, node);\n\n      return !getTimerDefinitionType(timerDefinition);\n    }\n\n  }));\n\n}\n\nmodule.exports = TimerEventDefinition;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js":
  /*!*************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js ***!
    \*************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar PropertiesActivator = __webpack_require__(/*! ../../PropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\"),\n    ImplementationTypeHelper = __webpack_require__(/*! ../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\n// bpmn properties\nvar processProps = __webpack_require__(/*! ../bpmn/parts/ProcessProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ProcessProps.js\"),\n    eventProps = __webpack_require__(/*! ../bpmn/parts/EventProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/EventProps.js\"),\n    linkProps = __webpack_require__(/*! ../bpmn/parts/LinkProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/LinkProps.js\"),\n    documentationProps = __webpack_require__(/*! ../bpmn/parts/DocumentationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/DocumentationProps.js\"),\n    idProps = __webpack_require__(/*! ../bpmn/parts/IdProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/IdProps.js\"),\n    nameProps = __webpack_require__(/*! ../bpmn/parts/NameProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/NameProps.js\"),\n    executableProps = __webpack_require__(/*! ../bpmn/parts/ExecutableProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js\");\n\n// camunda properties\nvar serviceTaskDelegateProps = __webpack_require__(/*! ./parts/ServiceTaskDelegateProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js\"),\n    userTaskProps = __webpack_require__(/*! ./parts/UserTaskProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js\"),\n    asynchronousContinuationProps = __webpack_require__(/*! ./parts/AsynchronousContinuationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js\"),\n    callActivityProps = __webpack_require__(/*! ./parts/CallActivityProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js\"),\n    multiInstanceProps = __webpack_require__(/*! ./parts/MultiInstanceLoopProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js\"),\n    conditionalProps = __webpack_require__(/*! ./parts/ConditionalProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js\"),\n    scriptProps = __webpack_require__(/*! ./parts/ScriptTaskProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js\"),\n    errorProps = __webpack_require__(/*! ./parts/ErrorEventProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js\"),\n    formProps = __webpack_require__(/*! ./parts/FormProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js\"),\n    startEventInitiator = __webpack_require__(/*! ./parts/StartEventInitiator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js\"),\n    variableMapping = __webpack_require__(/*! ./parts/VariableMappingProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js\"),\n    versionTag = __webpack_require__(/*! ./parts/VersionTagProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js\"),\n    processVariablesProps = __webpack_require__(/*! ./parts/ProcessVariablesProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js\");\n\nvar listenerProps = __webpack_require__(/*! ./parts/ListenerProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js\"),\n    listenerDetails = __webpack_require__(/*! ./parts/ListenerDetailProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js\"),\n    listenerFields = __webpack_require__(/*! ./parts/ListenerFieldInjectionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js\");\n\n// element template properties\nvar elementTemplateDescriptionProps = __webpack_require__(/*! ./element-templates/parts/DescriptionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js\"),\n    elementTemplateChooserProps = __webpack_require__(/*! ./element-templates/parts/ChooserProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js\"),\n    elementTemplateCustomProps = __webpack_require__(/*! ./element-templates/parts/CustomProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js\"),\n    elementTemplateInputParametersProps = __webpack_require__(/*! ./element-templates/parts/InputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js\"),\n    elementTemplateOutputParametersProps = __webpack_require__(/*! ./element-templates/parts/OutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js\"),\n    elementTemplateErrorsProps = __webpack_require__(/*! ./element-templates/parts/ErrorsProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js\"),\n    getTemplateId = __webpack_require__(/*! ./element-templates/Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\n\n// Input/Output\nvar inputParameters = __webpack_require__(/*! ./parts/InputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js\"),\n    outputParameters = __webpack_require__(/*! ./parts/OutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js\"),\n    errorsProps = __webpack_require__(/*! ./parts/ErrorsProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js\");\n\n// Connector\nvar connectorDetails = __webpack_require__(/*! ./parts/ConnectorDetailProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js\"),\n    connectorInputParameters = __webpack_require__(/*! ./parts/ConnectorInputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js\"),\n    connectorOutputParameters = __webpack_require__(/*! ./parts/ConnectorOutputParametersProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js\");\n\n// properties\nvar properties = __webpack_require__(/*! ./parts/PropertiesProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js\");\n\n// job configuration\nvar jobConfiguration = __webpack_require__(/*! ./parts/JobConfigurationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js\");\n\n// history time to live\nvar historyTimeToLive = __webpack_require__(/*! ./parts/HistoryTimeToLiveProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js\");\n\n// candidate starter groups/users\nvar candidateStarter = __webpack_require__(/*! ./parts/CandidateStarterProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js\");\n\n// tasklist\nvar tasklist = __webpack_require__(/*! ./parts/TasklistProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js\");\n\n// external task configuration\nvar externalTaskConfiguration = __webpack_require__(/*! ./parts/ExternalTaskConfigurationProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js\");\n\n// field injection\nvar fieldInjections = __webpack_require__(/*! ./parts/FieldInjectionProps */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    eventDefinitionHelper = __webpack_require__(/*! ../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    implementationTypeHelper = __webpack_require__(/*! ../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\n// helpers ////////////////////////////////////////\n\nvar isExternalTaskPriorityEnabled = function(element) {\n  var businessObject = getBusinessObject(element);\n\n  // show only if element is a process, a participant ...\n  if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n    return true;\n  }\n\n  var externalBo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element),\n      isExternalTask = ImplementationTypeHelper.getImplementationType(externalBo) === 'external';\n\n  // ... or an external task with selected external implementation type\n  return !!ImplementationTypeHelper.isExternalCapable(externalBo) && isExternalTask;\n};\n\nvar isJobConfigEnabled = function(element) {\n  var businessObject = getBusinessObject(element);\n\n  if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n    return true;\n  }\n\n  // async behavior\n  var bo = getBusinessObject(element);\n  if (asyncCapableHelper.isAsyncBefore(bo) || asyncCapableHelper.isAsyncAfter(bo)) {\n    return true;\n  }\n\n  // timer definition\n  if (is(element, 'bpmn:Event')) {\n    return !!eventDefinitionHelper.getTimerEventDefinition(element);\n  }\n\n  return false;\n};\n\nvar getListenerLabel = function(param, translate) {\n\n  if (is(param, 'camunda:ExecutionListener')) {\n    return translate('Execution Listener');\n  }\n\n  if (is(param, 'camunda:TaskListener')) {\n    return translate('Task Listener');\n  }\n\n  return '';\n};\n\nvar PROCESS_KEY_HINT = 'This maps to the process definition key.';\nvar TASK_KEY_HINT = 'This maps to the task definition key.';\n\nfunction getIdOptions(element) {\n\n  if (is(element, 'bpmn:Participant')) {\n    return { id: 'participant-id', label: 'Participant Id' };\n  }\n\n  if (is(element, 'bpmn:Process')) {\n    return { description: PROCESS_KEY_HINT };\n  }\n\n  if (is(element, 'bpmn:UserTask')) {\n    return { description: TASK_KEY_HINT };\n  }\n}\n\nfunction getNameOptions(element) {\n  if (is(element, 'bpmn:Participant')) {\n    return { id: 'participant-name', label: 'Participant Name' };\n  }\n}\n\nfunction getProcessOptions(element) {\n  if (is(element, 'bpmn:Participant')) {\n    return { processIdDescription: PROCESS_KEY_HINT };\n  }\n}\n\nfunction createElementTemplateGroups(\n    element,\n    bpmnFactory,\n    canvas,\n    commandStack,\n    elementTemplates,\n    modeling,\n    replace,\n    selection,\n    translate) {\n  var templateId = getTemplateId(element);\n\n  if (!templateId) {\n    return [];\n  }\n\n  var descriptionGroup = elementTemplateDescriptionProps(\n    element, commandStack, elementTemplates, modeling, replace, selection, translate);\n\n  var idOptions = getIdOptions(element) || {};\n\n  idOptions.id = 'element-template-element-id';\n\n  var nameOptions = { id: 'element-template-element-name' };\n\n  idProps(descriptionGroup, element, translate, idOptions);\n  nameProps(descriptionGroup, element, bpmnFactory, canvas, translate, nameOptions);\n  processProps(descriptionGroup, element, translate, getProcessOptions(element));\n\n  var elementTemplateInputParametersGroup = {\n    id: 'template-inputs',\n    label: translate('Input Parameters'),\n    entries: []\n  };\n  elementTemplateInputParametersProps(elementTemplateInputParametersGroup, element, elementTemplates, bpmnFactory, translate);\n\n  var elementTemplateOutputParametersGroup = {\n    id: 'template-outputs',\n    label: translate('Output Parameters'),\n    entries: []\n  };\n  elementTemplateOutputParametersProps(elementTemplateOutputParametersGroup, element, elementTemplates, bpmnFactory, translate);\n\n\n  var elementTemplateErrorsGroup = {\n    id: 'template-errors',\n    label: translate('Errors'),\n    entries: []\n  };\n  elementTemplateErrorsProps(elementTemplateErrorsGroup, element, elementTemplates, bpmnFactory, translate);\n\n  var customFieldsGroups = elementTemplateCustomProps(element, elementTemplates, bpmnFactory, translate);\n\n  return [\n    descriptionGroup,\n    elementTemplateInputParametersGroup,\n    elementTemplateOutputParametersGroup,\n    elementTemplateErrorsGroup\n  ].concat(customFieldsGroups);\n}\n\nfunction createGeneralTabGroups(\n    element, canvas, bpmnFactory,\n    elementRegistry, elementTemplates, translate) {\n\n  // refer to target element for external labels\n  element = element.labelTarget || element;\n\n  var generalGroup = {\n    id: 'general',\n    label: translate('General'),\n    entries: []\n  };\n\n  idProps(generalGroup, element, translate, getIdOptions(element));\n  nameProps(generalGroup, element, bpmnFactory, canvas, translate, getNameOptions(element));\n  processProps(generalGroup, element, translate, getProcessOptions(element));\n  versionTag(generalGroup, element, translate);\n  executableProps(generalGroup, element, translate);\n  elementTemplateChooserProps(generalGroup, element, elementTemplates, translate);\n\n  var detailsGroup = {\n    id: 'details',\n    label: translate('Details'),\n    entries: []\n  };\n  serviceTaskDelegateProps(detailsGroup, element, bpmnFactory, translate);\n  userTaskProps(detailsGroup, element, translate);\n  scriptProps(detailsGroup, element, bpmnFactory, translate);\n  linkProps(detailsGroup, element, translate);\n  callActivityProps(detailsGroup, element, bpmnFactory, translate);\n  eventProps(detailsGroup, element, bpmnFactory, elementRegistry, translate);\n  errorProps(detailsGroup, element, bpmnFactory, translate);\n  conditionalProps(detailsGroup, element, bpmnFactory, translate);\n  startEventInitiator(detailsGroup, element, translate); // this must be the last element of the details group!\n\n  var multiInstanceGroup = {\n    id: 'multiInstance',\n    label: translate('Multi Instance'),\n    entries: []\n  };\n  multiInstanceProps(multiInstanceGroup, element, bpmnFactory, translate);\n\n  var asyncGroup = {\n    id : 'async',\n    label: translate('Asynchronous Continuations'),\n    entries : []\n  };\n  asynchronousContinuationProps(asyncGroup, element, bpmnFactory, translate);\n\n  var jobConfigurationGroup = {\n    id : 'jobConfiguration',\n    label : translate('Job Configuration'),\n    entries : [],\n    enabled: isJobConfigEnabled\n  };\n  jobConfiguration(jobConfigurationGroup, element, bpmnFactory, translate);\n\n  var externalTaskGroup = {\n    id : 'externalTaskConfiguration',\n    label : translate('External Task Configuration'),\n    entries : [],\n    enabled: isExternalTaskPriorityEnabled\n  };\n  externalTaskConfiguration(externalTaskGroup, element, bpmnFactory, translate);\n\n\n  var candidateStarterGroup = {\n    id: 'candidateStarterConfiguration',\n    label: translate('Candidate Starter Configuration'),\n    entries: []\n  };\n  candidateStarter(candidateStarterGroup, element, bpmnFactory, translate);\n\n  var historyTimeToLiveGroup = {\n    id: 'historyConfiguration',\n    label: translate('History Configuration'),\n    entries: []\n  };\n  historyTimeToLive(historyTimeToLiveGroup, element, bpmnFactory, translate);\n\n  var tasklistGroup = {\n    id: 'tasklist',\n    label: translate('Tasklist Configuration'),\n    entries: []\n  };\n  tasklist(tasklistGroup, element, bpmnFactory, translate);\n\n  var documentationGroup = {\n    id: 'documentation',\n    label: translate('Documentation'),\n    entries: []\n  };\n  documentationProps(documentationGroup, element, bpmnFactory, translate);\n\n  var groups = [];\n  groups.push(generalGroup);\n  groups.push(detailsGroup);\n  groups.push(externalTaskGroup);\n  groups.push(multiInstanceGroup);\n  groups.push(asyncGroup);\n  groups.push(jobConfigurationGroup);\n  groups.push(candidateStarterGroup);\n  groups.push(historyTimeToLiveGroup);\n  groups.push(tasklistGroup);\n  groups.push(documentationGroup);\n\n  return groups;\n}\n\nfunction createVariablesTabGroups(element, bpmnFactory, elementRegistry, translate) {\n  var variablesGroup = {\n    id : 'variables',\n    label : translate('Variables'),\n    entries: []\n  };\n  variableMapping(variablesGroup, element, bpmnFactory, translate);\n\n  return [\n    variablesGroup\n  ];\n}\n\nfunction createProcessVariablesTabGroups(element, translate) {\n  var processVariablesGroup = {\n    id : 'process-variables',\n    label : translate('Variables'),\n    entries: []\n  };\n\n  processVariablesProps(processVariablesGroup, element, translate);\n\n  return [\n    processVariablesGroup\n  ];\n}\n\nfunction createFormsTabGroups(element, bpmnFactory, elementRegistry, translate) {\n  var formGroup = {\n    id : 'forms',\n    label : translate('Forms'),\n    entries: []\n  };\n  formProps(formGroup, element, bpmnFactory, translate);\n\n  return [\n    formGroup\n  ];\n}\n\nfunction createListenersTabGroups(element, bpmnFactory, elementRegistry, translate) {\n\n  var listenersGroup = {\n    id : 'listeners',\n    label: translate('Listeners'),\n    entries: []\n  };\n\n  var options = listenerProps(listenersGroup, element, bpmnFactory, translate);\n\n  var listenerDetailsGroup = {\n    id: 'listener-details',\n    entries: [],\n    enabled: function(element, node) {\n      return options.getSelectedListener(element, node);\n    },\n    label: function(element, node) {\n      var param = options.getSelectedListener(element, node);\n      return getListenerLabel(param, translate);\n    }\n  };\n\n  listenerDetails(listenerDetailsGroup, element, bpmnFactory, options, translate);\n\n  var listenerFieldsGroup = {\n    id: 'listener-fields',\n    label: translate('Field Injection'),\n    entries: [],\n    enabled: function(element, node) {\n      return options.getSelectedListener(element, node);\n    }\n  };\n\n  listenerFields(listenerFieldsGroup, element, bpmnFactory, options, translate);\n\n  return [\n    listenersGroup,\n    listenerDetailsGroup,\n    listenerFieldsGroup\n  ];\n}\n\nfunction createInputOutputTabGroups(element, bpmnFactory, elementTemplates, translate) {\n\n  var inputParametersGroup = {\n    id: 'input-parameters',\n    label: translate('Input Parameters'),\n    entries: []\n  };\n\n  inputParameters(inputParametersGroup, element, bpmnFactory, elementTemplates, translate);\n\n  var outputParametersGroup = {\n    id: 'output-parameters',\n    label: translate('Output Parameters'),\n    entries: []\n  };\n\n  outputParameters(outputParametersGroup, element, bpmnFactory, elementTemplates, translate);\n\n  var errorsGroup = {\n    id: 'errors',\n    label: translate('Errors'),\n    entries: [],\n\n    enabled: function(element, node) {\n      var businessObject = getBusinessObject(element);\n      var isExternal = ImplementationTypeHelper.getImplementationType(businessObject) === 'external';\n\n      return is(element, 'bpmn:ServiceTask') && isExternal;\n    },\n  };\n\n  errorsProps(errorsGroup, element, bpmnFactory, elementTemplates, translate);\n\n  return [\n    inputParametersGroup,\n    outputParametersGroup,\n    errorsGroup\n  ];\n}\n\nfunction createConnectorTabGroups(element, bpmnFactory, elementRegistry, translate) {\n  var connectorDetailsGroup = {\n    id: 'connector-details',\n    label: translate('Details'),\n    entries: []\n  };\n\n  connectorDetails(connectorDetailsGroup, element, bpmnFactory, translate);\n\n  var connectorInputParametersGroup = {\n    id: 'connector-input-parameters',\n    label: translate('Input Parameters'),\n    entries: []\n  };\n\n  connectorInputParameters(connectorInputParametersGroup, element, bpmnFactory, translate);\n\n  var connectorOutputParametersGroup = {\n    id: 'connector-output-parameters',\n    label: translate('Output Parameters'),\n    entries: []\n  };\n\n  connectorOutputParameters(connectorOutputParametersGroup, element, bpmnFactory, translate);\n\n  return [\n    connectorDetailsGroup,\n    connectorInputParametersGroup,\n    connectorOutputParametersGroup\n  ];\n}\n\nfunction createFieldInjectionsTabGroups(element, bpmnFactory, elementRegistry, translate) {\n\n  var fieldGroup = {\n    id: 'field-injections-properties',\n    label: translate('Field Injections'),\n    entries: []\n  };\n\n  fieldInjections(fieldGroup, element, bpmnFactory, translate);\n\n  return [\n    fieldGroup\n  ];\n}\n\nfunction createExtensionElementsGroups(element, bpmnFactory, elementRegistry, translate) {\n\n  var propertiesGroup = {\n    id : 'extensionElements-properties',\n    label: translate('Properties'),\n    entries: []\n  };\n  properties(propertiesGroup, element, bpmnFactory, translate);\n\n  return [\n    propertiesGroup\n  ];\n}\n\n// Camunda Properties Provider /////////////////////////////////////\n\n\n/**\n * A properties provider for Camunda related properties.\n *\n * @param {BpmnFactory} bpmnFactory\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n * @param {ElementTemplates} elementTemplates\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Replace} replace\n * @param {Selection} selection\n * @param {Translate} translate\n */\nfunction CamundaPropertiesProvider(\n    bpmnFactory,\n    canvas,\n    commandStack,\n    elementRegistry,\n    elementTemplates,\n    eventBus,\n    modeling,\n    replace,\n    selection,\n    translate\n) {\n  PropertiesActivator.call(this, eventBus);\n\n  this.getTabs = function(element) {\n\n    var generalTab = {\n      id: 'general',\n      label: translate('General'),\n      groups: createGeneralTabGroups(\n        element, canvas, bpmnFactory,\n        elementRegistry, elementTemplates, translate)\n    };\n\n    var elementTemplateTab = {\n      id: 'element-template',\n      label: translate('Template'),\n      groups: createElementTemplateGroups(\n        element,\n        bpmnFactory,\n        canvas,\n        commandStack,\n        elementTemplates,\n        modeling,\n        replace,\n        selection,\n        translate\n      )\n    };\n\n    var variablesTab = {\n      id: 'variables',\n      label: translate('Variables'),\n      groups: createVariablesTabGroups(element, bpmnFactory, elementRegistry, translate)\n    };\n\n    var processVariablesTab = {\n      id: 'process-variables',\n      label: translate('Variables'),\n      groups: createProcessVariablesTabGroups(element, translate)\n    };\n\n    var formsTab = {\n      id: 'forms',\n      label: translate('Forms'),\n      groups: createFormsTabGroups(element, bpmnFactory, elementRegistry, translate)\n    };\n\n    var listenersTab = {\n      id: 'listeners',\n      label: translate('Listeners'),\n      groups: createListenersTabGroups(element, bpmnFactory, elementRegistry, translate),\n      enabled: function(element) {\n        return !eventDefinitionHelper.getLinkEventDefinition(element)\n          || (!is(element, 'bpmn:IntermediateThrowEvent')\n          && eventDefinitionHelper.getLinkEventDefinition(element));\n      }\n    };\n\n    var inputOutputTab = {\n      id: 'input-output',\n      label: translate('Input/Output'),\n      groups: createInputOutputTabGroups(element, bpmnFactory, elementTemplates, translate)\n    };\n\n    var connectorTab = {\n      id: 'connector',\n      label: translate('Connector'),\n      groups: createConnectorTabGroups(element, bpmnFactory, elementRegistry, translate),\n      enabled: function(element) {\n        var bo = implementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n        return bo && implementationTypeHelper.getImplementationType(bo) === 'connector';\n      }\n    };\n\n    var fieldInjectionsTab = {\n      id: 'field-injections',\n      label: translate('Field Injections'),\n      groups: createFieldInjectionsTabGroups(element, bpmnFactory, elementRegistry, translate)\n    };\n\n    var extensionsTab = {\n      id: 'extensionElements',\n      label: translate('Extensions'),\n      groups: createExtensionElementsGroups(element, bpmnFactory, elementRegistry, translate)\n    };\n\n    return [\n      generalTab,\n      elementTemplateTab,\n      variablesTab,\n      processVariablesTab,\n      connectorTab,\n      formsTab,\n      listenersTab,\n      inputOutputTab,\n      fieldInjectionsTab,\n      extensionsTab\n    ];\n  };\n\n}\n\nCamundaPropertiesProvider.$inject = [\n  'bpmnFactory',\n  'canvas',\n  'commandStack',\n  'elementRegistry',\n  'elementTemplates',\n  'eventBus',\n  'modeling',\n  'replace',\n  'selection',\n  'translate'\n];\n\ninherits(CamundaPropertiesProvider, PropertiesActivator);\n\nmodule.exports = CamundaPropertiesProvider;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js":
  /*!******************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js ***!
    \******************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar nextId = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").nextId;\n\n/**\n * Create an input parameter representing the given\n * binding and value.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createInputParameter(binding, value, bpmnFactory) {\n  var scriptFormat = binding.scriptFormat,\n      parameterValue,\n      parameterDefinition;\n\n  if (scriptFormat) {\n    parameterDefinition = bpmnFactory.create('camunda:Script', {\n      scriptFormat: scriptFormat,\n      value: value\n    });\n  } else {\n    parameterValue = value;\n  }\n\n  return bpmnFactory.create('camunda:InputParameter', {\n    name: binding.name,\n    value: parameterValue,\n    definition: parameterDefinition\n  });\n}\n\nmodule.exports.createInputParameter = createInputParameter;\n\n\n/**\n * Create an output parameter representing the given\n * binding and value.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createOutputParameter(binding, value, bpmnFactory) {\n  var scriptFormat = binding.scriptFormat,\n      parameterValue,\n      parameterDefinition;\n\n  if (scriptFormat) {\n    parameterDefinition = bpmnFactory.create('camunda:Script', {\n      scriptFormat: scriptFormat,\n      value: binding.source\n    });\n  } else {\n    parameterValue = binding.source;\n  }\n\n  return bpmnFactory.create('camunda:OutputParameter', {\n    name: value,\n    value: parameterValue,\n    definition: parameterDefinition\n  });\n}\n\nmodule.exports.createOutputParameter = createOutputParameter;\n\n\n/**\n * Create camunda property from the given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaProperty(binding, value, bpmnFactory) {\n  return bpmnFactory.create('camunda:Property', {\n    name: binding.name,\n    value: value || ''\n  });\n}\n\nmodule.exports.createCamundaProperty = createCamundaProperty;\n\n\n/**\n * Create camunda:in element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaIn(binding, value, bpmnFactory) {\n\n  var properties = createCamundaInOutAttrs(binding, value);\n\n  return bpmnFactory.create('camunda:In', properties);\n}\n\nmodule.exports.createCamundaIn = createCamundaIn;\n\n\n/**\n * Create camunda:in with businessKey element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaInWithBusinessKey(binding, value, bpmnFactory) {\n  return bpmnFactory.create('camunda:In', {\n    businessKey: value\n  });\n}\n\nmodule.exports.createCamundaInWithBusinessKey = createCamundaInWithBusinessKey;\n\n\n/**\n * Create camunda:out element from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaOut(binding, value, bpmnFactory) {\n  var properties = createCamundaInOutAttrs(binding, value);\n\n  return bpmnFactory.create('camunda:Out', properties);\n}\n\nmodule.exports.createCamundaOut = createCamundaOut;\n\n\n/**\n * Create camunda:executionListener element containing an inline script from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaExecutionListenerScript(binding, value, bpmnFactory) {\n  var scriptFormat = binding.scriptFormat,\n      parameterValue,\n      parameterDefinition;\n\n  if (scriptFormat) {\n    parameterDefinition = bpmnFactory.create('camunda:Script', {\n      scriptFormat: scriptFormat,\n      value: value\n    });\n  } else {\n    parameterValue = value;\n  }\n\n  return bpmnFactory.create('camunda:ExecutionListener', {\n    event: binding.event,\n    value: parameterValue,\n    script: parameterDefinition\n  });\n}\n\nmodule.exports.createCamundaExecutionListenerScript = createCamundaExecutionListenerScript;\n\n/**\n * Create camunda:field element containing string or expression from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaFieldInjection(binding, value, bpmnFactory) {\n  var DEFAULT_PROPS = {\n    'string': undefined,\n    'expression': undefined,\n    'name': undefined\n  };\n\n  var props = assign({}, DEFAULT_PROPS);\n\n  if (!binding.expression) {\n    props.string = value;\n  } else {\n    props.expression = value;\n  }\n  props.name = binding.name;\n\n  return bpmnFactory.create('camunda:Field', props);\n}\n\nmodule.exports.createCamundaFieldInjection = createCamundaFieldInjection;\n\n/**\n * Create camunda:errorEventDefinition element containing expression and errorRef\n * from given binding.\n *\n * @param {PropertyBinding} binding\n * @param {String} value\n * @param {ModdleElement} error\n * @param {ModdleElement} parent\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement}\n */\nfunction createCamundaErrorEventDefinition(binding, value, error, parent, bpmnFactory) {\n  var errorRef = error,\n      expression = value;\n\n  var newErrorEventDefinition = bpmnFactory.create('camunda:ErrorEventDefinition', {\n    expression: expression,\n    errorRef: errorRef\n  });\n\n  newErrorEventDefinition.$parent = parent;\n\n  return newErrorEventDefinition;\n}\n\nmodule.exports.createCamundaErrorEventDefinition = createCamundaErrorEventDefinition;\n\n/**\n * Create bpmn:error element containing a specific error id given by a binding.\n *\n * @param {String} bindingErrorRef\n * @param {ModdleElement} parent\n * @param {BpmnFactory} bpmnFactory\n *\n * @return { ModdleElement }\n */\nfunction createError(bindingErrorRef, parent, bpmnFactory) {\n  var error = bpmnFactory.create('bpmn:Error', {\n\n    // we need to later retrieve the error from a binding\n    id: nextId('Error_' + bindingErrorRef + '_')\n  });\n\n  error.$parent = parent;\n\n  return error;\n}\n\nmodule.exports.createError = createError;\n\n// helpers ////////////////////////////\n\n/**\n * Create properties for camunda:in and camunda:out types.\n */\nfunction createCamundaInOutAttrs(binding, value) {\n\n  var properties = {};\n\n  // camunda:in source(Expression) target\n  if (binding.target) {\n\n    properties.target = binding.target;\n\n    if (binding.expression) {\n      properties.sourceExpression = value;\n    } else {\n      properties.source = value;\n    }\n  } else\n\n  // camunda:(in|out) variables local\n  if (binding.variables) {\n    properties.variables = 'all';\n\n    if (binding.variables === 'local') {\n      properties.local = true;\n    }\n  }\n\n  // camunda:out source(Expression) target\n  else {\n    properties.target = value;\n\n    [ 'source', 'sourceExpression' ].forEach(function(k) {\n      if (binding[k]) {\n        properties[k] = binding[k];\n      }\n    });\n  }\n\n  return properties;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js":
  /*!***************************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js ***!
    \***************************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar getTemplateId = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\n\nvar isBoolean = __webpack_require__(/*! lodash/isBoolean */ \"./node_modules/lodash/isBoolean.js\");\n\nvar find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find,\n    isNumber = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isNumber;\n\nvar handleLegacyScopes = __webpack_require__(/*! ./util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar PropertiesActivator = __webpack_require__(/*! ../../../PropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/PropertiesActivator.js\");\n\nvar HIGHER_PRIORITY = 1100;\n\n/**\n * Decides what entries are visible and editable. When an element template is applied only entries\n * in the element template tab are visible. Override this behavior through a properties activator\n * with higher priority or by specifying `entriesVisible`.\n *\n * @param {EventBus} eventBus\n * @param {ElementTemplates} elementTemplates\n */\nfunction CustomElementsPropertiesActivator(eventBus, elementTemplates) {\n  PropertiesActivator.call(this, eventBus, HIGHER_PRIORITY);\n\n  this.isEntryVisible = function(element, entry, group, tab) {\n    var template = elementTemplates.get(element),\n        templateId = getTemplateId(element);\n\n    if (templateId && !isEntryVisible(entry, tab, template)) {\n      return false;\n    }\n  };\n\n  this.isPropertyEditable = function(propertyName, element, entry, group, tab) {\n    var template = elementTemplates.get(element);\n\n    if (template && !isEntryEditable(entry, template)) {\n      return false;\n    }\n  };\n}\n\nCustomElementsPropertiesActivator.$inject = [ 'eventBus', 'elementTemplates' ];\n\ninherits(CustomElementsPropertiesActivator, PropertiesActivator);\n\nmodule.exports = CustomElementsPropertiesActivator;\n\n\n\n// helpers //////////\n\n\nvar CUSTOM_PROPERTIES_PATTERN = /^custom-/;\n\nvar DEFAULT_ENTRIES_VISIBLE = {\n  _all: false\n};\n\nfunction isCustomEntry(entry) {\n  return CUSTOM_PROPERTIES_PATTERN.test(entry.id);\n}\n\nfunction isEntryVisible(entry, tab, template) {\n  var entryId = entry.id;\n\n  if (tab.id === 'element-template') {\n    return true;\n  }\n\n  var entriesVisible = template && template.entriesVisible || DEFAULT_ENTRIES_VISIBLE;\n\n  if (isBoolean(entriesVisible)) {\n    return entriesVisible;\n  }\n\n  var defaultVisible = entriesVisible._all || false,\n      entryVisible = entriesVisible[ entryId ];\n\n  if (defaultVisible) {\n    return entryVisible !== false;\n  } else {\n    return entryVisible === true;\n  }\n}\n\nfunction isEntryEditable(entry, template) {\n\n  var property;\n\n  if (isCustomEntry(entry)) {\n    property = getProperty(template, entry);\n\n    return property && property.editable !== false;\n  }\n\n  return true;\n}\n\nfunction getProperty(template, entry) {\n\n  var idxAsNumber,\n      scope,\n      scopeName;\n\n  var throwError = function() {\n    throw new Error('cannot extract property index for entry <' + entry.id + '>');\n  };\n\n  // (0) retrieve raw property idx from entry\n  var idxOrScope = entry.id.replace('custom-' + template.id + '-', '');\n\n  // (1) handle custom props entries\n  // e.g. custom-com.example.template-{idx}\n  if (!idxOrScope.includes('-')) {\n    idxAsNumber = parseInt(idxOrScope, 10);\n\n    if (!isNumber(idxAsNumber)) {\n      throwError();\n    }\n\n    return template.properties[idxAsNumber];\n  }\n\n  // (2) handle scope entries\n  // e.g. custom-com.example.template-camunda_Connector-{idx}\n  var entryParts = idxOrScope.split('-');\n\n  if (entryParts.length == 2) {\n    scopeName = entryParts[0].replace(/_/g, ':');\n\n    idxAsNumber = parseInt(entryParts[1], 10);\n\n    if (scopeName && isNumber(idxAsNumber)) {\n      scope = findScopeForName(handleLegacyScopes(template.scopes), scopeName);\n\n      return scope.properties[idxAsNumber];\n    }\n\n  }\n\n  throwError();\n}\n\nfunction findScopeForName(scopes, scopeName) {\n  return find(scopes, function(scope) {\n    return scope.type === scopeName;\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js":
  /*!**********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js ***!
    \**********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar flatten = __webpack_require__(/*! lodash/flatten */ \"./node_modules/lodash/flatten.js\"),\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n    isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\"),\n    isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"),\n    values = __webpack_require__(/*! lodash/values */ \"./node_modules/lodash/values.js\");\n\nvar getTemplateId = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId,\n    getTemplateVersion = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateVersion;\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\n/**\n * Registry for element templates.\n */\nfunction ElementTemplates() {\n  this._templates = {};\n}\n\n/**\n * Get template with given ID and optional version or for element.\n *\n * @param {String|djs.model.Base} id\n * @param {number} [version]\n *\n * @return {ElementTemplate}\n */\nElementTemplates.prototype.get = function(id, version) {\n  var templates = this._templates,\n      element;\n\n  if (isUndefined(id)) {\n    return null;\n  } else if (isString(id)) {\n\n    if (isUndefined(version)) {\n      version = '_';\n    }\n\n    if (templates[ id ] && templates[ id ][ version ]) {\n      return templates[ id ][ version ];\n    } else {\n      return null;\n    }\n  } else {\n    element = id;\n\n    return this.get(getTemplateId(element), getTemplateVersion(element));\n  }\n};\n\n/**\n * Get default template for given element.\n *\n * @param {djs.model.Base} element\n *\n * @return {ElementTemplate}\n */\nElementTemplates.prototype.getDefault = function(element) {\n  return find(this.getAll(), function(template) {\n    return isAny(element, template.appliesTo) && template.isDefault;\n  }) || null;\n};\n\n/**\n * Get all templates (with given ID).\n *\n * @param {string} [id]\n *\n * @return {Array<ElementTemplate>}\n */\nElementTemplates.prototype.getAll = function(id) {\n  if (!isUndefined(id) && this._templates[ id ]) {\n    return values(this._templates[ id ]);\n  }\n\n  return flatten(values(this._templates).map(values));\n};\n\n/**\n * Set templates.\n *\n * @param {Array<ElementTemplate>} templates\n */\nElementTemplates.prototype.set = function(templates) {\n  var self = this;\n\n  this._templates = {};\n\n  templates.forEach(function(template) {\n    var id = template.id,\n        version = isUndefined(template.version) ? '_' : template.version;\n\n    if (!self._templates[ id ]) {\n      self._templates[ id ] = {};\n    }\n\n    self._templates[ id ][ version ] = template;\n  });\n};\n\nmodule.exports = ElementTemplates;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js":
  /*!****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js ***!
    \****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar Validator = __webpack_require__(/*! ./Validator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js\");\n\n/**\n * The guy responsible for template loading.\n *\n * Provide the actual templates via the `config.elementTemplates`.\n *\n * That configuration can either be an array of template\n * descriptors or a node style callback to retrieve\n * the templates asynchronously.\n *\n * @param {Array<TemplateDescriptor>|Function} loadTemplates\n * @param {EventBus} eventBus\n * @param {ElementTemplates} elementTemplates\n */\nfunction ElementTemplatesLoader(loadTemplates, eventBus, elementTemplates) {\n  this._loadTemplates = loadTemplates;\n  this._eventBus = eventBus;\n  this._elementTemplates = elementTemplates;\n\n  var self = this;\n\n  eventBus.on('diagram.init', function() {\n    self.reload();\n  });\n}\n\nmodule.exports = ElementTemplatesLoader;\n\nElementTemplatesLoader.$inject = [\n  'config.elementTemplates',\n  'eventBus',\n  'elementTemplates'\n];\n\n\nElementTemplatesLoader.prototype.reload = function() {\n\n  var self = this;\n\n  var loadTemplates = this._loadTemplates;\n\n  // no templates specified\n  if (typeof loadTemplates === 'undefined') {\n    return;\n  }\n\n  // template loader function specified\n  if (typeof loadTemplates === 'function') {\n\n    return loadTemplates(function(err, templates) {\n\n      if (err) {\n        return self.templateErrors([ err ]);\n      }\n\n      self.setTemplates(templates);\n    });\n  }\n\n  // templates array specified\n  if (loadTemplates.length) {\n    return this.setTemplates(loadTemplates);\n  }\n\n};\n\nElementTemplatesLoader.prototype.setTemplates = function(templates) {\n\n  var elementTemplates = this._elementTemplates;\n\n  var validator = new Validator().addAll(templates);\n\n  var errors = validator.getErrors(),\n      validTemplates = validator.getValidTemplates();\n\n  elementTemplates.set(validTemplates);\n\n  if (errors.length) {\n    this.templateErrors(errors);\n  }\n\n  this.templatesChanged();\n};\n\nElementTemplatesLoader.prototype.templatesChanged = function() {\n  this._eventBus.fire('elementTemplates.changed');\n};\n\nElementTemplatesLoader.prototype.templateErrors = function(errors) {\n  this._eventBus.fire('elementTemplates.errors', {\n    errors: errors\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js":
  /*!************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js ***!
    \************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nvar TEMPLATE_ID_ATTR = 'camunda:modelerTemplate',\n    TEMPLATE_VERSION_ATTR = 'camunda:modelerTemplateVersion';\n\n/**\n * The BPMN 2.0 extension attribute name under\n * which the element template ID is stored.\n *\n * @type {String}\n */\nmodule.exports.TEMPLATE_ID_ATTR = TEMPLATE_ID_ATTR;\n\n/**\n * The BPMN 2.0 extension attribute name under\n * which the element template version is stored.\n *\n * @type {String}\n */\nmodule.exports.TEMPLATE_VERSION_ATTR = TEMPLATE_VERSION_ATTR;\n\n\n/**\n * Get template id for a given diagram element.\n *\n * @param {djs.model.Base} element\n *\n * @return {String}\n */\nfunction getTemplateId(element) {\n\n  var bo = getBusinessObject(element);\n\n  if (bo) {\n    return bo.get(TEMPLATE_ID_ATTR);\n  }\n}\n\nmodule.exports.getTemplateId = getTemplateId;\n\n/**\n * Get template version for a given diagram element.\n *\n * @param {djs.model.Base} element\n *\n * @return {String}\n */\nfunction getTemplateVersion(element) {\n\n  var bo = getBusinessObject(element);\n\n  if (bo) {\n    return bo.get(TEMPLATE_VERSION_ATTR);\n  }\n}\n\nmodule.exports.getTemplateVersion = getTemplateVersion;\n\n\n/**\n * Find extension with given type in\n * BPMN element, diagram element or ExtensionElement.\n *\n * @param {ModdleElement|djs.model.Base} element\n * @param {String} type\n *\n * @return {ModdleElement} the extension\n */\nfunction findExtension(element, type) {\n  var bo = getBusinessObject(element);\n\n  var extensionElements;\n\n  if (is(bo, 'bpmn:ExtensionElements')) {\n    extensionElements = bo;\n  } else {\n    extensionElements = bo.extensionElements;\n  }\n\n  if (!extensionElements) {\n    return null;\n  }\n\n  return find(extensionElements.get('values'), function(e) {\n    return is(e, type);\n  });\n}\n\nmodule.exports.findExtension = findExtension;\n\n\nfunction findExtensions(element, types) {\n  var extensionElements = getExtensionElements(element);\n\n  if (!extensionElements) {\n    return [];\n  }\n\n  return extensionElements.get('values').filter(function(e) {\n    return isAny(e, types);\n  });\n}\n\nmodule.exports.findExtensions = findExtensions;\n\n\nfunction findCamundaInOut(element, binding) {\n\n  var extensionElements = getExtensionElements(element);\n\n  if (!extensionElements) {\n    return;\n  }\n\n  var matcher;\n\n  if (binding.type === 'camunda:in') {\n    matcher = function(e) {\n      return is(e, 'camunda:In') && isInOut(e, binding);\n    };\n  } else\n  if (binding.type === 'camunda:out') {\n    matcher = function(e) {\n      return is(e, 'camunda:Out') && isInOut(e, binding);\n    };\n  } else\n  if (binding.type === 'camunda:in:businessKey') {\n    matcher = function(e) {\n      return is(e, 'camunda:In') && 'businessKey' in e;\n    };\n  }\n\n  return find(extensionElements.get('values'), matcher);\n}\n\nmodule.exports.findCamundaInOut = findCamundaInOut;\n\nfunction findCamundaProperty(camundaProperties, binding) {\n  return find(camundaProperties.get('values'), function(p) {\n    return p.name === binding.name;\n  });\n}\n\nmodule.exports.findCamundaProperty = findCamundaProperty;\n\n\nfunction findInputParameter(inputOutput, binding) {\n  var parameters = inputOutput.get('inputParameters');\n\n  return find(parameters, function(p) {\n    return p.name === binding.name;\n  });\n}\n\nmodule.exports.findInputParameter = findInputParameter;\n\n\nfunction findOutputParameter(inputOutput, binding) {\n  var parameters = inputOutput.get('outputParameters');\n\n  return find(parameters, function(p) {\n    var value = p.value;\n\n    if (!binding.scriptFormat) {\n      return value === binding.source;\n    }\n\n    var definition = p.definition;\n\n    if (!definition || binding.scriptFormat !== definition.scriptFormat) {\n      return false;\n    }\n\n    return definition.value === binding.source;\n  });\n}\n\nmodule.exports.findOutputParameter = findOutputParameter;\n\n\nfunction findCamundaErrorEventDefinition(element, bindingErrorRef) {\n  var errorEventDefinitions = findExtensions(element, [ 'camunda:ErrorEventDefinition' ]),\n      error;\n\n  // error id has to start with <Error_${binding.errorRef}_>\n  return find(errorEventDefinitions, function(definition) {\n    error = definition.errorRef;\n\n    if (error) {\n      return error.id.indexOf('Error_' + bindingErrorRef) == 0;\n    }\n  });\n}\n\nmodule.exports.findCamundaErrorEventDefinition = findCamundaErrorEventDefinition;\n\n\n\n// helpers /////////////////////////////////\n\nfunction getExtensionElements(element) {\n  var bo = getBusinessObject(element);\n\n  if (is(bo, 'bpmn:ExtensionElements')) {\n    return bo;\n  } else {\n    return bo.extensionElements;\n  }\n}\n\n\nfunction isInOut(element, binding) {\n\n  if (binding.type === 'camunda:in') {\n\n    // find based on target attribute\n    if (binding.target) {\n      return element.target === binding.target;\n    }\n  }\n\n  if (binding.type === 'camunda:out') {\n\n    // find based on source / sourceExpression\n    if (binding.source) {\n      return element.source === binding.source;\n    }\n\n    if (binding.sourceExpression) {\n      return element.sourceExpression === binding.sourceExpression;\n    }\n  }\n\n  // find based variables / local combination\n  if (binding.variables) {\n    return element.variables === 'all' && (\n      binding.variables !== 'local' || element.local\n    );\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js":
  /*!*********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js ***!
    \*********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\n/**\n * This function catches the <moddleCopy.canCopyProperty> event\n * and only allows the copy of the modelerTemplate property\n * if the element's type or its parent's is in\n * the list of elements the template applies to.\n */\nfunction ReplaceBehavior(elementTemplates, eventBus) {\n  eventBus.on('moddleCopy.canCopyProperty', function(context) {\n    var parent = context.parent;\n    var property = context.property;\n    var propertyName = context.propertyName;\n\n    if (propertyName !== 'modelerTemplate') {\n      return;\n    }\n\n    var elementTemplate = elementTemplates.get(property);\n\n    if (!elementTemplate) {\n      return false;\n    }\n\n    var appliesTo = elementTemplate.appliesTo;\n\n    var allowed = appliesTo.reduce(function(allowed, type) {\n      return allowed || is(parent, type);\n    }, false);\n\n    if (!allowed) {\n      return false;\n    }\n  });\n}\n\nReplaceBehavior.$inject = ['elementTemplates', 'eventBus'];\n\nmodule.exports = ReplaceBehavior;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar isArray = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isArray,\n    filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter;\n\nvar semver = __webpack_require__(/*! semver */ \"./node_modules/semver/semver.js\");\n\nvar validateAgainstSchema = __webpack_require__(/*! @bpmn-io/element-templates-validator */ \"./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js\").validate,\n    getTemplateSchemaVersion = __webpack_require__(/*! @bpmn-io/element-templates-validator */ \"./node_modules/@bpmn-io/element-templates-validator/dist/index.esm.js\").getSchemaVersion;\n\nvar SUPPORTED_SCHEMA_VERSION = getTemplateSchemaVersion();\n\n\n/**\n * A element template validator.\n */\nfunction Validator() {\n\n  this._templatesById = {};\n\n  this._validTemplates = [];\n  this._errors = [];\n\n  /**\n   * Adds the templates.\n   *\n   * @param {Array<TemplateDescriptor>} templates\n   *\n   * @return {Validator} self\n   */\n  this.addAll = function(templates) {\n\n    if (!isArray(templates)) {\n      this._logError('templates must be []');\n    } else {\n      templates.forEach(this.add, this);\n    }\n\n    return this;\n  };\n\n  /**\n   * Add the given element template, if it is valid.\n   *\n   * @param {TemplateDescriptor} template\n   *\n   * @return {Validator} self\n   */\n  this.add = function(template) {\n\n    var err = this._validateTemplate(template);\n\n    var id, version;\n\n    if (!err) {\n      id = template.id;\n      version = template.version || '_';\n\n      if (!this._templatesById[ id ]) {\n        this._templatesById[ id ] = {};\n      }\n\n      this._templatesById[ id ][ version ] = template;\n\n      this._validTemplates.push(template);\n    }\n\n    return this;\n  };\n\n  /**\n   * Validate given template and return error (if any).\n   *\n   * @param {TemplateDescriptor} template\n   *\n   * @return {Error} validation error, if any\n   */\n  this._validateTemplate = function(template) {\n\n    var err,\n        id = template.id,\n        version = template.version || '_',\n        schemaVersion = template.$schema && getSchemaVersion(template.$schema),\n        self = this;\n\n    // (1) Compatibility\n    if (schemaVersion &&\n       (semver.compare(SUPPORTED_SCHEMA_VERSION, schemaVersion) < 0)) {\n      return this._logError('unsupported element template schema version <' + schemaVersion +\n        '>. Your installation only supports up to version <' + SUPPORTED_SCHEMA_VERSION +\n        '>. Please update your installation', template);\n    }\n\n    // (2) Versioning\n    if (this._templatesById[ id ] && this._templatesById[ id ][ version ]) {\n      if (version === '_') {\n        return this._logError('template id <' + id + '> already used', template);\n      } else {\n        return this._logError('template id <' + id + '> and version <' + version + '> already used', template);\n      }\n    }\n\n    // (3) JSON Schema compliant\n    var validationResult = validateAgainstSchema(template),\n        valid = validationResult.valid,\n        errors = validationResult.errors;\n\n    if (!valid) {\n      err = new Error('invalid template');\n\n      filteredSchemaErrors(errors).forEach(function(error) {\n        self._logError(error.message, template);\n      });\n    }\n\n    return err;\n  };\n\n  /**\n   * Log an error for the given template\n   *\n   * @param {(String|Error)} err\n   * @param {TemplateDescriptor} template\n   *\n   * @return {Error} logged validation errors\n   */\n  this._logError = function(err, template) {\n\n    if (typeof err === 'string') {\n\n      if (template) {\n        err = 'template(id: <' + template.id + '>, name: <' + template.name + '>): ' + err;\n      }\n\n      err = new Error(err);\n    }\n\n    this._errors.push(err);\n\n    return err;\n  };\n\n  this.getErrors = function() {\n    return this._errors;\n  };\n\n  this.getValidTemplates = function() {\n    return this._validTemplates;\n  };\n}\n\nmodule.exports = Validator;\n\n\n// helpers ///////////////////////////////////\n\n/**\n * Extract schema version from schema URI\n *\n * @param {String} schemaUri - for example https://unpkg.com/@camunda/element-templates-json-schema@99.99.99/resources/schema.json\n *\n * @return {String} for example '99.99.99'\n */\nfunction getSchemaVersion(schemaUri) {\n  var re = /\\d+\\.\\d+\\.\\d+/g;\n\n  var match = schemaUri.match(re);\n\n  return match === null ? undefined : match[0];\n}\n\n/**\n * Extract only relevant errors of the validation result.\n *\n * The JSON Schema we use under the hood produces more errors than we need for a\n * detected schema violation (for example, unmatched sub-schemas, if-then-rules,\n * `oneOf`-definitions ...).\n *\n * We call these errors \"relevant\" that have a custom error message defined by us OR\n * are basic data type errors.\n *\n * @param {Array} schemaErrors\n *\n * @return {Array}\n */\nfunction filteredSchemaErrors(schemaErrors) {\n  return filter(schemaErrors, function(err) {\n\n    // (1) regular errors are customized from the schema\n    if (err.keyword === 'errorMessage') {\n      return true;\n    }\n\n    // (2) data type errors are relevant, except for\n    // (scope) root level data type errors due to basic schema errors\n    if (err.keyword === 'type' && err.dataPath && err.dataPath !== '/scopes') {\n      return true;\n    }\n\n    return false;\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Validator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js":
  /*!**************************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js ***!
    \**************************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n    findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n    findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar handleLegacyScopes = __webpack_require__(/*! ../util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar createCamundaExecutionListenerScript = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaExecutionListenerScript,\n    createCamundaFieldInjection = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaFieldInjection,\n    createCamundaIn = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaIn,\n    createCamundaInWithBusinessKey = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaInWithBusinessKey,\n    createCamundaOut = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaOut,\n    createCamundaProperty = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaProperty,\n    createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter,\n    createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter,\n    createCamundaErrorEventDefinition = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaErrorEventDefinition,\n    createError = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createError;\n\nvar EventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar getRoot = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").getRoot;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    isString = __webpack_require__(/*! lodash/isString */ \"./node_modules/lodash/isString.js\"),\n    keys = __webpack_require__(/*! lodash/keys */ \"./node_modules/lodash/keys.js\"),\n    remove = __webpack_require__(/*! lodash/remove */ \"./node_modules/lodash/remove.js\");\n\nvar CAMUNDA_SERVICE_TASK_LIKE = [\n  'camunda:class',\n  'camunda:delegateExpression',\n  'camunda:expression'\n];\n\n/**\n * Applies an element template to an element. Sets `camunda:modelerTemplate` and\n * `camunda:modelerTemplateVersion`.\n */\nfunction ChangeElementTemplateHandler(bpmnFactory, commandStack, modeling) {\n  this._bpmnFactory = bpmnFactory;\n  this._commandStack = commandStack;\n  this._modeling = modeling;\n}\n\nChangeElementTemplateHandler.$inject = [\n  'bpmnFactory',\n  'commandStack',\n  'modeling'\n];\n\nmodule.exports = ChangeElementTemplateHandler;\n\n/**\n   * Change an element's template and update its properties as specified in `newTemplate`. Specify\n   * `oldTemplate` to update from one template to another. If `newTemplate` isn't specified the\n   * `camunda:modelerTemplate` and `camunda:modelerTemplateVersion` properties will be removed from\n   * the element.\n   *\n   * @param {Object} context\n   * @param {Object} context.element\n   * @param {Object} [context.oldTemplate]\n   * @param {Object} [context.newTemplate]\n   */\nChangeElementTemplateHandler.prototype.preExecute = function(context) {\n  var element = context.element,\n      newTemplate = context.newTemplate,\n      oldTemplate = context.oldTemplate;\n\n  var self = this;\n\n  // Update camunda:modelerTemplate attribute\n  this._updateCamundaModelerTemplate(element, newTemplate);\n\n  if (newTemplate) {\n\n    // Update properties\n    this._updateProperties(element, oldTemplate, newTemplate);\n\n    // Update camunda:ExecutionListener properties\n    this._updateCamundaExecutionListenerProperties(element, newTemplate);\n\n    // Update camunda:Field properties\n    this._updateCamundaFieldProperties(element, oldTemplate, newTemplate);\n\n    // Update camunda:In and camunda:Out properties\n    this._updateCamundaInOutProperties(element, oldTemplate, newTemplate);\n\n    // Update camunda:InputParameter and camunda:OutputParameter properties\n    this._updateCamundaInputOutputParameterProperties(element, oldTemplate, newTemplate);\n\n    // Update camunda:Property properties\n    this._updateCamundaPropertyProperties(element, oldTemplate, newTemplate);\n\n    // Update camunda:ErrorEventDefinition properties\n    this._updateCamundaErrorEventDefinitionProperties(element, oldTemplate, newTemplate);\n\n    // Update properties for each scope\n    forEach(handleLegacyScopes(newTemplate.scopes), function(newScopeTemplate) {\n      self._updateScopeProperties(element, oldTemplate, newScopeTemplate, newTemplate);\n    });\n\n  }\n};\n\nChangeElementTemplateHandler.prototype._getOrCreateExtensionElements = function(element) {\n  var bpmnFactory = this._bpmnFactory,\n      modeling = this._modeling;\n\n  var businessObject = getBusinessObject(element);\n\n  var extensionElements = businessObject.get('extensionElements');\n\n  if (!extensionElements) {\n    extensionElements = bpmnFactory.create('bpmn:ExtensionElements', {\n      values: []\n    });\n\n    extensionElements.$parent = businessObject;\n\n    modeling.updateProperties(element, {\n      extensionElements: extensionElements\n    });\n  }\n\n  return extensionElements;\n};\n\n/**\n * Update `camunda:ErrorEventDefinition` properties of specified business object. Event\n * definitions can only exist in `bpmn:ExtensionElements`.\n *\n * Ensures an bpmn:Error exists for the event definition.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaErrorEventDefinitionProperties = function(element, oldTemplate, newTemplate) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:errorEventDefinition';\n  });\n\n  // (1) Do not override if no updates\n  if (!newProperties.length) {\n    return;\n  }\n\n  var businessObject = this._getOrCreateExtensionElements(element);\n\n  var oldErrorEventDefinitions = findExtensions(element, [ 'camunda:ErrorEventDefinition' ]);\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        oldEventDefinition = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n        newBinding = newProperty.binding;\n\n    // (2) Update old event definitions\n    if (oldProperty && oldEventDefinition) {\n\n      if (!propertyChanged(oldEventDefinition, oldProperty)) {\n        commandStack.execute('properties-panel.update-businessobject', {\n          element: element,\n          businessObject: oldEventDefinition,\n          properties: {\n            expression: newProperty.value\n          }\n        });\n      }\n\n      remove(oldErrorEventDefinitions, oldEventDefinition);\n    }\n\n    // (3) Create new event definition + error\n    else {\n      var rootElement = getRoot(getBusinessObject(element)),\n          newError = createError(newBinding.errorRef, rootElement, bpmnFactory),\n          newEventDefinition =\n            createCamundaErrorEventDefinition(newBinding, newProperty.value, newError, businessObject, bpmnFactory);\n\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: rootElement,\n        propertyName: 'rootElements',\n        objectsToAdd: [ newError ],\n        objectsToRemove: []\n      });\n\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: businessObject,\n        propertyName: 'values',\n        objectsToAdd: [ newEventDefinition ],\n        objectsToRemove: []\n      });\n    }\n\n  });\n\n  // (4) Remove old event definitions\n  if (oldErrorEventDefinitions.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: businessObject,\n      propertyName: 'values',\n      objectsToAdd: [],\n      objectsToRemove: oldErrorEventDefinitions\n    });\n  }\n};\n\n/**\n * Update `camunda:ExecutionListener` properties of specified business object. Execution listeners\n * will always be overridden. Execution listeners can only exist in `bpmn:ExtensionElements`.\n *\n * @param {djs.model.Base} element\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaExecutionListenerProperties = function(element, newTemplate) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:executionListener';\n  });\n\n  // (1) Do not override old execution listeners if no new execution listeners specified\n  if (!newProperties.length) {\n    return;\n  }\n\n  var businessObject = this._getOrCreateExtensionElements(element);\n\n  // (2) Remove old execution listeners\n  var oldExecutionListeners = findExtensions(element, [ 'camunda:ExecutionListener' ]);\n\n  // (3) Add new execution listeners\n  var newExecutionListeners = newProperties.map(function(newProperty) {\n    var newBinding = newProperty.binding,\n        propertyValue = newProperty.value;\n\n    return createCamundaExecutionListenerScript(newBinding, propertyValue, bpmnFactory);\n  });\n\n  commandStack.execute('properties-panel.update-businessobject-list', {\n    element: element,\n    currentObject: businessObject,\n    propertyName: 'values',\n    objectsToAdd: newExecutionListeners,\n    objectsToRemove: oldExecutionListeners\n  });\n};\n\n/**\n * Update `camunda:Field` properties of specified business object.\n * If business object is `camunda:ExecutionListener` or `camunda:TaskListener` `fields` property\n * will be updated. Otherwise `extensionElements.values` property will be updated.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n * @param {ModdleElement} businessObject\n */\nChangeElementTemplateHandler.prototype._updateCamundaFieldProperties = function(element, oldTemplate, newTemplate, businessObject) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:field';\n  });\n\n  // (1) Do not override old fields if no new fields specified\n  if (!newProperties.length) {\n    return;\n  }\n\n  if (!businessObject) {\n    businessObject = this._getOrCreateExtensionElements(element);\n  }\n\n  var propertyName = isAny(businessObject, [ 'camunda:ExecutionListener', 'camunda:TaskListener' ])\n    ? 'fields'\n    : 'values';\n\n  var oldFields = findExtensions(element, [ 'camunda:Field' ]);\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        oldField = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n        newBinding = newProperty.binding;\n\n    // (2) Update old fields\n    if (oldProperty && oldField) {\n\n      if (!propertyChanged(oldField, oldProperty)) {\n        commandStack.execute('properties-panel.update-businessobject', {\n          element: element,\n          businessObject: oldField,\n          properties: {\n            string: newProperty.value\n          }\n        });\n      }\n\n      remove(oldFields, oldField);\n    }\n\n    // (3) Add new fields\n    else {\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: businessObject,\n        propertyName: propertyName,\n        objectsToAdd: [ createCamundaFieldInjection(newBinding, newProperty.value, bpmnFactory) ],\n        objectsToRemove: []\n      });\n    }\n  });\n\n  // (4) Remove old fields\n  if (oldFields.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: businessObject,\n      propertyName: propertyName,\n      objectsToAdd: [],\n      objectsToRemove: oldFields\n    });\n  }\n};\n\n/**\n * Update `camunda:In` and `camunda:Out` properties of specified business object. Only\n * `bpmn:CallActivity` and events with `bpmn:SignalEventDefinition` can have ins. Only\n * `camunda:CallActivity` can have outs.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaInOutProperties = function(element, oldTemplate, newTemplate) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:in'\n      || newBindingType === 'camunda:in:businessKey'\n      || newBindingType === 'camunda:out';\n  });\n\n  // (1) Do not override old fields if no new fields specified\n  if (!newProperties.length) {\n    return;\n  }\n\n  // Get extension elements of either signal event definition or call activity\n  var businessObject = this._getOrCreateExtensionElements(\n    EventDefinitionHelper.getSignalEventDefinition(element) || element);\n\n  var oldInsAndOuts = findExtensions(businessObject, [ 'camunda:In', 'camunda:Out' ]);\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        oldBinding = oldProperty && oldProperty.binding,\n        oldInOurOut = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n        newPropertyValue = newProperty.value,\n        newBinding = newProperty.binding,\n        newBindingType = newBinding.type,\n        newInOrOut,\n        properties = {};\n\n    // (2) Update old ins and outs\n    if (oldProperty && oldInOurOut) {\n\n      if (!propertyChanged(oldInOurOut, oldProperty)) {\n        if (newBindingType === 'camunda:in') {\n          if (newBinding.expression) {\n            properties[ 'camunda:sourceExpression' ] = newPropertyValue;\n          } else {\n            properties[ 'camunda:source' ] = newPropertyValue;\n          }\n        } else if (newBindingType === 'camunda:in:businessKey') {\n          properties[ 'camunda:businessKey' ] = newPropertyValue;\n        } else if (newBindingType === 'camunda:out') {\n          properties[ 'camunda:target' ] = newPropertyValue;\n        }\n      }\n\n      // Update `camunda:local` property if it changed\n      if ((oldBinding.local && !newBinding.local) || !oldBinding.local && newBinding.local) {\n        properties.local = newBinding.local;\n      }\n\n      if (keys(properties)) {\n        commandStack.execute('properties-panel.update-businessobject', {\n          element: element,\n          businessObject: oldInOurOut,\n          properties: properties\n        });\n      }\n\n      remove(oldInsAndOuts, oldInOurOut);\n    }\n\n    // (3) Add new ins and outs\n    else {\n      if (newBindingType === 'camunda:in') {\n        newInOrOut = createCamundaIn(newBinding, newPropertyValue, bpmnFactory);\n      } else if (newBindingType === 'camunda:out') {\n        newInOrOut = createCamundaOut(newBinding, newPropertyValue, bpmnFactory);\n      } else if (newBindingType === 'camunda:in:businessKey') {\n        newInOrOut = createCamundaInWithBusinessKey(newBinding, newPropertyValue, bpmnFactory);\n      }\n\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: businessObject,\n        propertyName: 'values',\n        objectsToAdd: [ newInOrOut ],\n        objectsToRemove: []\n      });\n    }\n  });\n\n  // (4) Remove old ins and outs\n  if (oldInsAndOuts.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: businessObject,\n      propertyName: 'values',\n      objectsToAdd: [],\n      objectsToRemove: oldInsAndOuts\n    });\n  }\n};\n\n/**\n * Update `camunda:InputParameter` and `camunda:OutputParameter` properties of specified business\n * object. Both can only exist in `camunda:InputOutput` which can exist in `bpmn:ExtensionElements`\n * or `camunda:Connector`.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateCamundaInputOutputParameterProperties = function(element, oldTemplate, newTemplate, businessObject) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:inputParameter' || newBindingType === 'camunda:outputParameter';\n  });\n\n  // (1) Do not override old inputs and outputs if no new inputs and outputs specified\n  if (!newProperties.length) {\n    return;\n  }\n\n  if (!businessObject) {\n    businessObject = this._getOrCreateExtensionElements(element);\n  }\n\n  var inputOutput;\n\n  if (is(businessObject, 'camunda:Connector')) {\n    inputOutput = businessObject.get('camunda:inputOutput');\n\n    if (!inputOutput) {\n      inputOutput = bpmnFactory.create('camunda:InputOutput');\n\n      commandStack.execute('properties-panel.update-businessobject', {\n        element: element,\n        businessObject: businessObject,\n        properties: {\n          inputOutput: inputOutput\n        }\n      });\n    }\n  } else {\n    inputOutput = findExtension(businessObject, 'camunda:InputOutput');\n\n    if (!inputOutput) {\n      inputOutput = bpmnFactory.create('camunda:InputOutput');\n\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: businessObject,\n        propertyName: 'values',\n        objectsToAdd: [ inputOutput ],\n        objectsToRemove: []\n      });\n    }\n  }\n\n  var oldInputs = inputOutput.get('camunda:inputParameters')\n    ? inputOutput.get('camunda:inputParameters').slice()\n    : [];\n\n  var oldOutputs = inputOutput.get('camunda:outputParameters')\n    ? inputOutput.get('camunda:outputParameters').slice()\n    : [];\n\n  var propertyName;\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        oldInputOrOutput = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n        newPropertyValue = newProperty.value,\n        newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    var newInputOrOutput,\n        properties;\n\n    // (2) Update old inputs and outputs\n    if (oldProperty && oldInputOrOutput) {\n\n      if (!propertyChanged(oldInputOrOutput, oldProperty)) {\n        if (is(oldInputOrOutput, 'camunda:InputParameter')) {\n          properties = {\n            value: newPropertyValue\n          };\n        } else {\n          properties = {\n            name: newPropertyValue\n          };\n        }\n\n        commandStack.execute('properties-panel.update-businessobject', {\n          element: element,\n          businessObject: oldInputOrOutput,\n          properties: properties\n        });\n      }\n\n      if (is(oldInputOrOutput, 'camunda:InputParameter')) {\n        remove(oldInputs, oldInputOrOutput);\n      } else {\n        remove(oldOutputs, oldInputOrOutput);\n      }\n    }\n\n    // (3) Add new inputs and outputs\n    else {\n      if (newBindingType === 'camunda:inputParameter') {\n        propertyName = 'inputParameters';\n\n        newInputOrOutput = createInputParameter(newBinding, newPropertyValue, bpmnFactory);\n      } else {\n        propertyName = 'outputParameters';\n\n        newInputOrOutput = createOutputParameter(newBinding, newPropertyValue, bpmnFactory);\n      }\n\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: inputOutput,\n        propertyName: propertyName,\n        objectsToAdd: [ newInputOrOutput ],\n        objectsToRemove: []\n      });\n    }\n  });\n\n  // (4) Remove old inputs and outputs\n  if (oldInputs.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: inputOutput,\n      propertyName: 'inputParameters',\n      objectsToAdd: [],\n      objectsToRemove: oldInputs\n    });\n  }\n\n  if (oldOutputs.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: inputOutput,\n      propertyName: 'outputParameters',\n      objectsToAdd: [],\n      objectsToRemove: oldOutputs\n    });\n  }\n};\n\nChangeElementTemplateHandler.prototype._updateCamundaModelerTemplate = function(element, newTemplate) {\n  var modeling = this._modeling;\n\n  modeling.updateProperties(element, {\n    'camunda:modelerTemplate': newTemplate && newTemplate.id,\n    'camunda:modelerTemplateVersion': newTemplate && newTemplate.version\n  });\n};\n\n/**\n * Update `camunda:Property` properties of specified business object. `camunda:Property` can only\n * exist in `camunda:Properties`.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newTemplate\n * @param {ModdleElement} businessObject\n */\nChangeElementTemplateHandler.prototype._updateCamundaPropertyProperties = function(element, oldTemplate, newTemplate, businessObject) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'camunda:property';\n  });\n\n  // (1) Do not override old properties if no new properties specified\n  if (!newProperties.length) {\n    return;\n  }\n\n  if (businessObject) {\n    businessObject = this._getOrCreateExtensionElements(businessObject);\n  } else {\n    businessObject = this._getOrCreateExtensionElements(element);\n  }\n\n  var camundaProperties = findExtension(businessObject, 'camunda:Properties');\n\n  if (!camundaProperties) {\n    camundaProperties = bpmnFactory.create('camunda:Properties');\n\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: businessObject,\n      propertyName: 'values',\n      objectsToAdd: [ camundaProperties ],\n      objectsToRemove: []\n    });\n  }\n\n  var oldCamundaProperties = camundaProperties.get('camunda:values')\n    ? camundaProperties.get('camunda:values').slice()\n    : [];\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        oldCamundaProperty = oldProperty && findOldBusinessObject(businessObject, oldProperty),\n        newPropertyValue = newProperty.value,\n        newBinding = newProperty.binding;\n\n    // (2) Update old properties\n    if (oldProperty && oldCamundaProperty) {\n\n      if (!propertyChanged(oldCamundaProperty, oldProperty)) {\n        commandStack.execute('properties-panel.update-businessobject', {\n          element: element,\n          businessObject: oldCamundaProperty,\n          properties: {\n            value: newPropertyValue\n          }\n        });\n      }\n\n      remove(oldCamundaProperties, oldCamundaProperty);\n    }\n\n    // (3) Add new properties\n    else {\n      commandStack.execute('properties-panel.update-businessobject-list', {\n        element: element,\n        currentObject: camundaProperties,\n        propertyName: 'values',\n        objectsToAdd: [ createCamundaProperty(newBinding, newPropertyValue, bpmnFactory) ],\n        objectsToRemove: []\n      });\n    }\n  });\n\n  // (4) Remove old properties\n  if (oldCamundaProperties.length) {\n    commandStack.execute('properties-panel.update-businessobject-list', {\n      element: element,\n      currentObject: camundaProperties,\n      propertyName: 'values',\n      objectsToAdd: [],\n      objectsToRemove: oldCamundaProperties\n    });\n  }\n};\n\n/**\n * Update `bpmn:conditionExpression` property of specified element. Since condition expression is\n * is not primitive it needs special handling.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldProperty\n * @param {Object} newProperty\n */\nChangeElementTemplateHandler.prototype._updateConditionExpression = function(element, oldProperty, newProperty) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack,\n      modeling = this._modeling;\n\n  var newBinding = newProperty.binding,\n      newPropertyValue = newProperty.value;\n\n  if (!oldProperty) {\n    modeling.updateProperties(element, {\n      conditionExpression: bpmnFactory.create('bpmn:FormalExpression', {\n        body: newPropertyValue,\n        language: newBinding.scriptFormat\n      })\n    });\n\n    return;\n  }\n\n  var oldBinding = oldProperty.binding,\n      oldPropertyValue = oldProperty.value;\n\n  var businessObject = getBusinessObject(element),\n      conditionExpression = businessObject.get('bpmn:conditionExpression');\n\n  var properties = {};\n\n  if (conditionExpression.get('body') === oldPropertyValue) {\n    properties.body = newPropertyValue;\n  }\n\n  if (conditionExpression.get('language') === oldBinding.scriptFormat) {\n    properties.language = newBinding.scriptFormat;\n  }\n\n  if (!keys(properties).length) {\n    return;\n  }\n\n  commandStack.execute('properties-panel.update-businessobject', {\n    element: element,\n    businessObject: conditionExpression,\n    properties: properties\n  });\n};\n\nChangeElementTemplateHandler.prototype._updateProperties = function(element, oldTemplate, newTemplate, businessObject) {\n  var self = this;\n\n  var commandStack = this._commandStack;\n\n  var newProperties = newTemplate.properties.filter(function(newProperty) {\n    var newBinding = newProperty.binding,\n        newBindingType = newBinding.type;\n\n    return newBindingType === 'property';\n  });\n\n  if (!newProperties.length) {\n    return;\n  }\n\n  if (!businessObject) {\n    businessObject = getBusinessObject(element);\n  }\n\n  newProperties.forEach(function(newProperty) {\n    var oldProperty = findOldProperty(oldTemplate, newProperty),\n        newBinding = newProperty.binding,\n        newBindingName = newBinding.name,\n        newPropertyValue = newProperty.value,\n        changedElement,\n        properties;\n\n    if (newBindingName === 'conditionExpression') {\n      self._updateConditionExpression(element, oldProperty, newProperty);\n    } else {\n\n      if (is(businessObject, 'bpmn:Error')) {\n        changedElement = businessObject;\n      } else {\n        changedElement = element;\n      }\n\n      if (oldProperty && propertyChanged(changedElement, oldProperty)) {\n        return;\n      }\n\n      properties = {};\n\n      properties[ newBindingName ] = newPropertyValue;\n\n      // Only one of `camunda:class`, `camunda:delegateExpression` and `camunda:expression` can be\n      // set\n      // TODO(philippfromme): ensuring only one of these properties is set at a time should be\n      // implemented in a behavior and not in this handler and properties panel UI\n      if (CAMUNDA_SERVICE_TASK_LIKE.indexOf(newBindingName) !== -1) {\n        CAMUNDA_SERVICE_TASK_LIKE.forEach(function(camundaServiceTaskLikeProperty) {\n          if (camundaServiceTaskLikeProperty !== newBindingName) {\n            properties[ camundaServiceTaskLikeProperty ] = undefined;\n          }\n        });\n      }\n\n      commandStack.execute('properties-panel.update-businessobject', {\n        element: element,\n        businessObject: businessObject,\n        properties: properties\n      });\n    }\n  });\n};\n\n/**\n * Update properties for a specified scope.\n *\n * @param {djs.model.Base} element\n * @param {Object} oldTemplate\n * @param {Object} newScopeTemplate\n * @param {Object} newTemplate\n */\nChangeElementTemplateHandler.prototype._updateScopeProperties = function(element, oldTemplate, newScopeTemplate, newTemplate) {\n  var bpmnFactory = this._bpmnFactory,\n      commandStack = this._commandStack;\n\n  var scopeName = newScopeTemplate.type;\n\n  var scopeElement;\n\n  scopeElement = findOldScopeElement(element, newScopeTemplate, newTemplate);\n\n  if (!scopeElement) {\n\n    scopeElement = bpmnFactory.create(scopeName);\n  }\n\n  var oldScopeTemplate = findOldScopeTemplate(newScopeTemplate, oldTemplate);\n\n  // Update properties\n  this._updateProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n  // Update camunda:ExecutionListener properties\n  this._updateCamundaExecutionListenerProperties(element, newScopeTemplate);\n\n  // Update camunda:In and camunda:Out properties\n  this._updateCamundaInOutProperties(element, oldScopeTemplate, newScopeTemplate);\n\n  // Update camunda:InputParameter and camunda:OutputParameter properties\n  this._updateCamundaInputOutputParameterProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n  // Update camunda:Field properties\n  this._updateCamundaFieldProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n  // Update camunda:Property properties\n  this._updateCamundaPropertyProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement);\n\n  // Assume: root elements were already been created in root by referenced event\n  // definition binding\n  if (isRootElementScope(scopeName)) {\n    return;\n  }\n\n  var extensionElements = this._getOrCreateExtensionElements(element);\n\n  commandStack.execute('properties-panel.update-businessobject-list', {\n    element: element,\n    currentObject: extensionElements,\n    propertyName: 'values',\n    objectsToAdd: [ scopeElement ],\n    objectsToRemove: []\n  });\n};\n\n// helpers //////////\n\n/**\n * Find old business object matching specified old property.\n *\n * @param {djs.model.Base|ModdleElement} element\n * @param {Object} oldProperty\n *\n * @returns {ModdleElement}\n */\nfunction findOldBusinessObject(element, oldProperty) {\n  var businessObject = getBusinessObject(element),\n      propertyName;\n\n  var oldBinding = oldProperty.binding,\n      oldBindingType = oldBinding.type;\n\n  if (oldBindingType === 'camunda:field') {\n\n    if (isAny(businessObject, [ 'camunda:ExecutionListener', 'camunda:TaskListener' ])) {\n      propertyName = 'camunda:fields';\n    } else {\n      propertyName = 'bpmn:values';\n    }\n\n    if (!businessObject || !businessObject.get(propertyName) || !businessObject.get(propertyName).length) {\n      return;\n    }\n\n    return find(businessObject.get(propertyName), function(oldBusinessObject) {\n      return oldBusinessObject.get('camunda:name') === oldBinding.name;\n    });\n  }\n\n  if (oldBindingType === 'camunda:in') {\n    return find(businessObject.get('values'), function(oldBusinessObject) {\n      return oldBusinessObject.get('target') === oldBinding.target;\n    });\n  }\n\n  if (oldBindingType === 'camunda:in:businessKey') {\n    return find(businessObject.get('values'), function(oldBusinessObject) {\n      return isString(oldBusinessObject.get('businessKey'));\n    });\n  }\n\n  if (oldBindingType === 'camunda:out') {\n    return find(businessObject.get('values'), function(oldBusinessObject) {\n      return oldBusinessObject.get('source') === oldBinding.source ||\n        oldBusinessObject.get('sourceExpression') || oldBinding.sourceExpression;\n    });\n  }\n\n  if (oldBindingType === 'camunda:inputParameter' || oldBindingType === 'camunda:outputParameter') {\n\n    if (is(businessObject, 'camunda:Connector')) {\n      businessObject = businessObject.get('camunda:inputOutput');\n\n      if (!businessObject) {\n        return;\n      }\n    } else {\n      businessObject = findExtension(businessObject, 'camunda:InputOutput');\n\n      if (!businessObject) {\n        return;\n      }\n    }\n\n    if (oldBindingType === 'camunda:inputParameter') {\n      return find(businessObject.get('camunda:inputParameters'), function(oldBusinessObject) {\n        return oldBusinessObject.get('camunda:name') === oldBinding.name;\n      });\n    } else {\n      return find(businessObject.get('camunda:outputParameters'), function(oldBusinessObject) {\n        var definition;\n\n        if (oldBinding.scriptFormat) {\n          definition = oldBusinessObject.get('camunda:definition');\n\n          return definition && definition.get('camunda:value') === oldBinding.source;\n        } else {\n          return oldBusinessObject.get('camunda:value') === oldBinding.source;\n        }\n      });\n    }\n\n  }\n\n  if (oldBindingType === 'camunda:property') {\n    if (!businessObject || !businessObject.get('values') || !businessObject.get('values').length) {\n      return;\n    }\n\n    businessObject = findExtension(businessObject, 'camunda:Properties');\n\n    if (!businessObject) {\n      return;\n    }\n\n    return find(businessObject.get('values'), function(oldBusinessObject) {\n      return oldBusinessObject.get('camunda:name') === oldBinding.name;\n    });\n  }\n\n  if (oldBindingType === 'camunda:errorEventDefinition') {\n    return findCamundaErrorEventDefinition(element, oldBinding.errorRef);\n  }\n}\n\n/**\n * Find old property matching specified new property.\n *\n * @param {Object} oldTemplate\n * @param {Object} newProperty\n *\n * @returns {Object}\n */\nfunction findOldProperty(oldTemplate, newProperty) {\n  if (!oldTemplate) {\n    return;\n  }\n\n  var oldProperties = oldTemplate.properties,\n      newBinding = newProperty.binding,\n      newBindingName = newBinding.name,\n      newBindingType = newBinding.type;\n\n  if (newBindingType === 'property') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingName = oldBinding.name,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'property' && oldBindingName === newBindingName;\n    });\n  }\n\n  if (newBindingType === 'camunda:field') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingName = oldBinding.name,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'camunda:field' && oldBindingName === newBindingName;\n    });\n  }\n\n  if (newBindingType === 'camunda:in') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingType = oldBinding.type;\n\n      if (oldBindingType !== 'camunda:in') {\n        return;\n      }\n\n      // Always override if change from source to source expression or vice versa\n      if ((oldBinding.expression && !newBinding.expression) ||\n        !oldBinding.expression && newBinding.expression) {\n        return;\n      }\n\n      return oldBinding.target === newBinding.target;\n    });\n  }\n\n  if (newBindingType === 'camunda:in:businessKey') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'camunda:in:businessKey';\n    });\n  }\n\n  if (newBindingType === 'camunda:out') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'camunda:out' && (\n        oldBinding.source === newBinding.source ||\n        oldBinding.sourceExpression === newBinding.sourceExpression\n      );\n    });\n  }\n\n  if (newBindingType === 'camunda:inputParameter') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingName = oldBinding.name,\n          oldBindingType = oldBinding.type;\n\n      if (oldBindingType !== 'camunda:inputParameter') {\n        return;\n      }\n\n      return oldBindingName === newBindingName\n        && oldBinding.scriptFormat === newBinding.scriptFormat;\n    });\n  }\n\n  if (newBindingType === 'camunda:outputParameter') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingType = oldBinding.type;\n\n      if (oldBindingType !== 'camunda:outputParameter') {\n        return;\n      }\n\n      return oldBinding.source === newBinding.source\n        && oldBinding.scriptFormat === newBinding.scriptFormat;\n    });\n  }\n\n  if (newBindingType === 'camunda:property') {\n    return find(oldProperties, function(oldProperty) {\n      var oldBinding = oldProperty.binding,\n          oldBindingName = oldBinding.name,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'camunda:property' && oldBindingName === newBindingName;\n    });\n  }\n\n  if (newBindingType === 'camunda:errorEventDefinition') {\n    return find(oldProperties, function(oldProperty) {\n      var newBindingRef = newBinding.errorRef,\n          oldBinding = oldProperty.binding,\n          oldBindingRef = oldBinding.errorRef,\n          oldBindingType = oldBinding.type;\n\n      return oldBindingType === 'camunda:errorEventDefinition'\n        && oldBindingRef === newBindingRef;\n    });\n  }\n}\n\nfunction findOldScopeElement(element, scopeTemplate, template) {\n  var scopeName = scopeTemplate.type,\n      id = scopeTemplate.id;\n\n  if (scopeName === 'camunda:Connector') {\n    return findExtension(element, 'camunda:Connector');\n  }\n\n  if (scopeName === 'bpmn:Error') {\n\n    // (1) find by error event definition binding\n    var errorEventDefinitionBinding = findErrorEventDefinitionBinding(template, id);\n\n    if (!errorEventDefinitionBinding) {\n      return;\n    }\n\n    // (2) find error event definition\n    var errorEventDefinition = findOldBusinessObject(element, errorEventDefinitionBinding);\n\n    if (!errorEventDefinition) {\n      return;\n    }\n\n    // (3) retrieve referenced error\n    return errorEventDefinition.errorRef;\n  }\n}\n\nfunction isRootElementScope(scopeName) {\n  return [ 'bpmn:Error' ].includes(scopeName);\n}\n\nfunction findOldScopeTemplate(scopeTemplate, oldTemplate) {\n  var scopeName = scopeTemplate.type,\n      scopeId = scopeTemplate.id,\n      scopes = oldTemplate && handleLegacyScopes(oldTemplate.scopes);\n\n  return scopes && find(scopes, function(scope) {\n\n    if (isRootElementScope(scopeName)) {\n      return scope.id === scopeId;\n    }\n\n    return scope.type === scopeName;\n  });\n}\n\nfunction findErrorEventDefinitionBinding(template, templateErrorId) {\n  return find(template.properties, function(property) {\n    return property.binding.errorRef === templateErrorId;\n  });\n}\n\n/**\n * Check whether property was changed after being set by template.\n *\n * @param {djs.model.Base|ModdleElement} element\n * @param {Object} oldProperty\n *\n * @returns {boolean}\n */\nfunction propertyChanged(element, oldProperty) {\n  var businessObject = getBusinessObject(element);\n\n  var oldBinding = oldProperty.binding,\n      oldBindingName = oldBinding.name,\n      oldBindingType = oldBinding.type,\n      oldPropertyValue = oldProperty.value,\n      conditionExpression,\n      definition;\n\n  if (oldBindingType === 'property') {\n    if (oldBindingName === 'conditionExpression') {\n      conditionExpression = businessObject.get('bpmn:conditionExpression');\n\n      return conditionExpression.get('bpmn:body') !== oldPropertyValue;\n    }\n\n    return businessObject.get(oldBindingName) !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:field') {\n    return businessObject.get('camunda:string') !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:in') {\n    if (oldBinding.expression) {\n      return businessObject.get('sourceExpression') !== oldPropertyValue;\n    } else {\n      return businessObject.get('camunda:source') !== oldPropertyValue;\n    }\n  }\n\n  if (oldBindingType === 'camunda:in:businessKey') {\n    return businessObject.get('camunda:businessKey') !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:out') {\n    return businessObject.get('camunda:target') !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:inputParameter') {\n    if (oldBinding.scriptFormat) {\n      definition = businessObject.get('camunda:definition');\n\n      return definition && definition.get('camunda:value') !== oldPropertyValue;\n    } else {\n      return businessObject.get('camunda:value') !== oldPropertyValue;\n    }\n  }\n\n  if (oldBindingType === 'camunda:outputParameter') {\n    return businessObject.get('camunda:name') !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:property') {\n    return businessObject.get('camunda:value') !== oldPropertyValue;\n  }\n\n  if (oldBindingType === 'camunda:errorEventDefinition') {\n    return businessObject.get('expression') !== oldPropertyValue;\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ChangeElementTemplateHandler = __webpack_require__(/*! ./ChangeElementTemplateHandler */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/ChangeElementTemplateHandler.js\");\n\nfunction registerHandlers(commandStack, elementTemplates, eventBus) {\n  commandStack.registerHandler(\n    'propertiesPanel.camunda.changeTemplate',\n    ChangeElementTemplateHandler\n  );\n\n  // apply default element templates on shape creation\n  eventBus.on([ 'commandStack.shape.create.postExecuted' ], function(context) {\n    applyDefaultTemplate(context.context.shape, elementTemplates, commandStack);\n  });\n\n  // apply default element templates on connection creation\n  eventBus.on([ 'commandStack.connection.create.postExecuted' ], function(context) {\n    applyDefaultTemplate(context.context.connection, elementTemplates, commandStack);\n  });\n}\n\nregisterHandlers.$inject = [ 'commandStack', 'elementTemplates', 'eventBus' ];\n\n\nmodule.exports = {\n  __init__: [ registerHandlers ]\n};\n\n\nfunction applyDefaultTemplate(element, elementTemplates, commandStack) {\n\n  if (!elementTemplates.get(element) && elementTemplates.getDefault(element)) {\n\n    var command = 'propertiesPanel.camunda.changeTemplate';\n    var commandContext = {\n      element: element,\n      newTemplate: elementTemplates.getDefault(element)\n    };\n\n    commandStack.execute(command, commandContext);\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js":
  /*!***********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js ***!
    \***********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("module.exports = {\n  __depends__: [\n    __webpack_require__(/*! ./cmd */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/cmd/index.js\"),\n    __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n  ],\n  __init__: [\n    'customElementsPropertiesActivator',\n    'elementTemplatesLoader',\n    'replaceBehavior'\n  ],\n  customElementsPropertiesActivator: [ 'type', __webpack_require__(/*! ./CustomElementsPropertiesActivator */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CustomElementsPropertiesActivator.js\") ],\n  elementTemplates: [ 'type', __webpack_require__(/*! ./ElementTemplates */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplates.js\") ],\n  elementTemplatesLoader: [ 'type', __webpack_require__(/*! ./ElementTemplatesLoader */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ElementTemplatesLoader.js\") ],\n  replaceBehavior: [ 'type', __webpack_require__(/*! ./ReplaceBehavior */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/ReplaceBehavior.js\") ],\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js":
  /*!************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js ***!
    \************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar getOption = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getOption,\n    getOptions = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getOptions,\n    getTemplateId = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId,\n    ELEMENT_TEMPLATE_OPTION_EMPTY = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").ELEMENT_TEMPLATE_OPTION_EMPTY;\n\nvar isNull = __webpack_require__(/*! lodash/isNull */ \"./node_modules/lodash/isNull.js\"),\n    isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\"),\n    pick = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n\nmodule.exports = function(group, element, elementTemplates, translate) {\n  if (!isUndefined(getTemplateId(element)) && !isNull(getTemplateId(element))) {\n    return;\n  }\n\n  var options = getOptions(element, elementTemplates, translate);\n\n  // Return if empty option is only option\n  if (options.length === 1) {\n    return;\n  }\n\n  var selectOptions = options.map(function(option) {\n    return pick(option, [ 'name', 'value' ]);\n  });\n\n  // select element template (via dropdown)\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: 'elementTemplate-chooser',\n    label: translate('Element Template'),\n    modelProperty: 'elementTemplateOption',\n    selectOptions: selectOptions,\n    get: function(element) {\n      return {\n        elementTemplateOption: ELEMENT_TEMPLATE_OPTION_EMPTY\n      };\n    },\n    set: function(element, properties) {\n      var optionId = properties['elementTemplateOption'];\n\n      var option = getOption(optionId, options);\n\n      var id = option.id,\n          version = option.version;\n\n      var newTemplate = elementTemplates.get(id, version);\n\n      return applyTemplate(element, newTemplate, elementTemplates);\n    }\n  }));\n\n};\n\n\n// helpers //////////\n\nfunction applyTemplate(element, newTemplate, elementTemplates) {\n  var oldTemplate = elementTemplates.get(element);\n\n  if (oldTemplate === newTemplate) {\n    return;\n  }\n\n  return {\n    cmd: 'propertiesPanel.camunda.changeTemplate',\n    context: {\n      element: element,\n      oldTemplate: oldTemplate,\n      newTemplate: newTemplate\n    }\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ChooserProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n    findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n    findInputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findInputParameter,\n    findOutputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findOutputParameter,\n    findCamundaProperty = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaProperty,\n    findCamundaInOut = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaInOut,\n    findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar createCamundaProperty = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaProperty,\n    createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter,\n    createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter,\n    createCamundaIn = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaIn,\n    createCamundaOut = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaOut,\n    createCamundaInWithBusinessKey = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaInWithBusinessKey,\n    createCamundaFieldInjection = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaFieldInjection,\n    createCamundaErrorEventDefinition = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createCamundaErrorEventDefinition,\n    createError = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createError;\n\nvar handleLegacyScopes = __webpack_require__(/*! ../util/handleLegacyScopes */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js\");\n\nvar getRoot = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").getRoot;\n\nvar PROPERTY_TYPE = 'property',\n    CAMUNDA_PROPERTY_TYPE = 'camunda:property',\n    CAMUNDA_INPUT_PARAMETER_TYPE = 'camunda:inputParameter',\n    CAMUNDA_OUTPUT_PARAMETER_TYPE = 'camunda:outputParameter',\n    CAMUNDA_IN_TYPE = 'camunda:in',\n    CAMUNDA_OUT_TYPE = 'camunda:out',\n    CAMUNDA_IN_BUSINESS_KEY_TYPE = 'camunda:in:businessKey',\n    CAMUNDA_EXECUTION_LISTENER_TYPE = 'camunda:executionListener',\n    CAMUNDA_FIELD = 'camunda:field',\n    CAMUNDA_ERROR_EVENT_DEFINITION = 'camunda:errorEventDefinition';\n\nvar BASIC_MODDLE_TYPES = [\n  'Boolean',\n  'Integer',\n  'String'\n];\n\nvar EXTENSION_BINDING_TYPES = [\n  CAMUNDA_PROPERTY_TYPE,\n  CAMUNDA_INPUT_PARAMETER_TYPE,\n  CAMUNDA_OUTPUT_PARAMETER_TYPE,\n  CAMUNDA_IN_TYPE,\n  CAMUNDA_OUT_TYPE,\n  CAMUNDA_IN_BUSINESS_KEY_TYPE,\n  CAMUNDA_FIELD,\n  CAMUNDA_ERROR_EVENT_DEFINITION\n];\n\nvar IO_BINDING_TYPES = [\n  CAMUNDA_INPUT_PARAMETER_TYPE,\n  CAMUNDA_OUTPUT_PARAMETER_TYPE\n];\n\nvar IN_OUT_BINDING_TYPES = [\n  CAMUNDA_IN_TYPE,\n  CAMUNDA_OUT_TYPE,\n  CAMUNDA_IN_BUSINESS_KEY_TYPE\n];\n\n/**\n * Injects custom properties into the given group.\n *\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(element, elementTemplates, bpmnFactory, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (!template) {\n    return [];\n  }\n\n  var renderCustomField = function(id, p, idx) {\n    var propertyType = p.type;\n\n    var entryOptions = {\n      id: id,\n      description: p.description,\n      label: p.label ? translate(p.label) : p.label,\n      modelProperty: id,\n      get: propertyGetter(id, p),\n      set: propertySetter(id, p, bpmnFactory),\n      validate: propertyValidator(id, p, translate)\n    };\n\n    var entry;\n\n    if (!propertyType) {\n      propertyType = getDefaultType(p);\n    }\n\n    if (propertyType === 'Boolean') {\n      entry = entryFactory.checkbox(translate, entryOptions);\n    }\n\n    if (propertyType === 'String') {\n      entry = entryFactory.textField(translate, entryOptions);\n    }\n\n    if (propertyType === 'Text') {\n      entry = entryFactory.textBox(translate, entryOptions);\n    }\n\n    if (propertyType === 'Dropdown') {\n      entryOptions.selectOptions = p.choices;\n\n      entry = entryFactory.selectBox(translate, entryOptions);\n    }\n\n    return entry;\n  };\n\n  var groups = [];\n  var id, entry;\n\n  var customFieldsGroup = {\n    id: 'customField',\n    label: translate('Custom Fields'),\n    entries: []\n  };\n  template.properties.forEach(function(p, idx) {\n\n    id = 'custom-' + template.id + '-' + idx;\n\n    entry = renderCustomField(id, p, idx);\n    if (entry) {\n      customFieldsGroup.entries.push(entry);\n    }\n  });\n  if (customFieldsGroup.entries.length > 0) {\n    groups.push(customFieldsGroup);\n  }\n\n  if (template.scopes) {\n\n    handleLegacyScopes(template.scopes).forEach(function(scope) {\n\n      var scopeType = scope.type;\n\n      var idScopeName = scopeType.replace(/:/g, '_');\n\n      var customScopeFieldsGroup = {\n        id: 'customField-' + idScopeName,\n        label: translate('Custom Fields for scope: ') + scopeType,\n        entries: []\n      };\n\n      scope.properties.forEach(function(p, idx) {\n\n        var propertyId = 'custom-' + template.id + '-' + idScopeName + '-' + idx;\n\n        var scopedProperty = propertyWithScope(p, scope);\n\n        entry = renderCustomField(propertyId, scopedProperty, idx);\n        if (entry) {\n          customScopeFieldsGroup.entries.push(entry);\n        }\n      });\n\n      if (customScopeFieldsGroup.entries.length > 0) {\n        groups.push(customScopeFieldsGroup);\n      }\n    });\n  }\n\n  return groups;\n};\n\n\n// getters, setters and validators ///////////////\n\n\n/**\n * Return a getter that retrieves the given property.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n *\n * @return {Function}\n */\nfunction propertyGetter(name, property) {\n\n  /* getter */\n  return function get(element) {\n    var value = getPropertyValue(element, property);\n\n    return objectWithKey(name, value);\n  };\n}\n\n/**\n * Return a setter that updates the given property.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {Function}\n */\nfunction propertySetter(name, property, bpmnFactory) {\n\n  /* setter */\n  return function set(element, values) {\n\n    var value = values[name];\n\n    return setPropertyValue(element, property, value, bpmnFactory);\n  };\n}\n\n/**\n * Return a validator that ensures the property is ok.\n *\n * @param {String} name\n * @param {PropertyDescriptor} property\n * @param {Function} translate\n *\n * @return {Function}\n */\nfunction propertyValidator(name, property, translate) {\n\n  /* validator */\n  return function validate(element, values) {\n    var value = values[name];\n\n    var error = validateValue(value, property, translate);\n\n    if (error) {\n      return objectWithKey(name, error);\n    }\n  };\n}\n\n\n// get, set and validate helpers ///////////////////\n\n/**\n * Return the value of the specified property descriptor,\n * on the passed diagram element.\n *\n * @param {djs.model.Base} element\n * @param {PropertyDescriptor} property\n *\n * @return {Any}\n */\nfunction getPropertyValue(element, property) {\n\n  var bo = getBusinessObject(element);\n\n  var binding = property.binding,\n      scope = property.scope;\n\n  var bindingType = binding.type,\n      bindingName = binding.name;\n\n  var propertyValue = property.value || '';\n\n  if (scope) {\n    bo = findScopeElement(bo, scope);\n    if (!bo) {\n      return propertyValue;\n    }\n  }\n\n  // property\n  if (bindingType === 'property') {\n\n    var value = bo.get(bindingName);\n\n    if (bindingName === 'conditionExpression') {\n      if (value) {\n        return value.body;\n      } else {\n\n        // return defined default\n        return propertyValue;\n      }\n    } else {\n\n      // return value; default to defined default\n      return typeof value !== 'undefined' ? value : propertyValue;\n    }\n  }\n\n  var camundaProperties,\n      camundaProperty;\n\n  if (bindingType === CAMUNDA_PROPERTY_TYPE) {\n    if (scope) {\n      camundaProperties = bo.get('properties');\n    } else {\n      camundaProperties = findExtension(bo, 'camunda:Properties');\n    }\n\n    if (camundaProperties) {\n      camundaProperty = findCamundaProperty(camundaProperties, binding);\n\n      if (camundaProperty) {\n        return camundaProperty.value;\n      }\n    }\n\n    return propertyValue;\n  }\n\n  var inputOutput,\n      ioParameter;\n\n  if (IO_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n    if (scope) {\n      inputOutput = bo.get('inputOutput');\n    } else {\n      inputOutput = findExtension(bo, 'camunda:InputOutput');\n    }\n\n    if (!inputOutput) {\n\n      // ioParameter cannot exist yet, return property value\n      return propertyValue;\n    }\n  }\n\n  // camunda input parameter\n  if (bindingType === CAMUNDA_INPUT_PARAMETER_TYPE) {\n    ioParameter = findInputParameter(inputOutput, binding);\n\n    if (ioParameter) {\n      if (binding.scriptFormat) {\n        if (ioParameter.definition) {\n          return ioParameter.definition.value;\n        }\n      } else {\n        return ioParameter.value || '';\n      }\n    }\n\n    return propertyValue;\n  }\n\n  // camunda output parameter\n  if (binding.type === CAMUNDA_OUTPUT_PARAMETER_TYPE) {\n    ioParameter = findOutputParameter(inputOutput, binding);\n\n    if (ioParameter) {\n      return ioParameter.name;\n    }\n\n    return propertyValue;\n  }\n\n\n  var ioElement;\n\n  if (IN_OUT_BINDING_TYPES.indexOf(bindingType) != -1) {\n    ioElement = findCamundaInOut(bo, binding);\n\n    if (ioElement) {\n      if (bindingType === CAMUNDA_IN_BUSINESS_KEY_TYPE) {\n        return ioElement.businessKey;\n      } else\n      if (bindingType === CAMUNDA_OUT_TYPE) {\n        return ioElement.target;\n      } else\n      if (bindingType === CAMUNDA_IN_TYPE) {\n        return ioElement[binding.expression ? 'sourceExpression' : 'source'];\n      }\n    }\n\n    return propertyValue;\n  }\n\n  if (bindingType === CAMUNDA_EXECUTION_LISTENER_TYPE) {\n    var executionListener;\n    if (scope) {\n      executionListener = bo.get('executionListener');\n    } else {\n      executionListener = findExtension(bo, 'camunda:ExecutionListener');\n    }\n\n    return executionListener.script.value;\n  }\n\n  var fieldInjection;\n  if (CAMUNDA_FIELD === bindingType) {\n    var fieldInjections = findExtensions(bo, [ 'camunda:Field' ]);\n    fieldInjections.forEach(function(item) {\n      if (item.name === binding.name) {\n        fieldInjection = item;\n      }\n    });\n    if (fieldInjection) {\n      return fieldInjection.string || fieldInjection.expression;\n    } else {\n      return '';\n    }\n  }\n\n  var errorEventDefinition;\n  if (CAMUNDA_ERROR_EVENT_DEFINITION === bindingType) {\n    errorEventDefinition = findCamundaErrorEventDefinition(bo, binding.errorRef);\n\n    if (errorEventDefinition) {\n      return errorEventDefinition.expression;\n    } else {\n      return '';\n    }\n  }\n\n  throw unknownPropertyBinding(property);\n}\n\nmodule.exports.getPropertyValue = getPropertyValue;\n\n\n/**\n * Return an update operation that changes the diagram\n * element's custom property to the given value.\n *\n * The response of this method will be processed via\n * {@link PropertiesPanel#applyChanges}.\n *\n * @param {djs.model.Base} element\n * @param {PropertyDescriptor} property\n * @param {String} value\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {Object|Array<Object>} results to be processed\n */\nfunction setPropertyValue(element, property, value, bpmnFactory) {\n  var bo = getBusinessObject(element);\n\n  var binding = property.binding,\n      scope = property.scope;\n\n  var bindingType = binding.type,\n      bindingName = binding.name;\n\n  var rootElement = getRoot(bo);\n\n  var propertyValue;\n\n  var updates = [];\n\n  var extensionElements;\n\n  if (EXTENSION_BINDING_TYPES.indexOf(bindingType) !== -1) {\n    extensionElements = bo.get('extensionElements');\n\n    // create extension elements, if they do not exist (yet)\n    if (!extensionElements) {\n      extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n      updates.push(cmdHelper.updateBusinessObject(\n        element, bo, objectWithKey('extensionElements', extensionElements)\n      ));\n    }\n  }\n\n  if (scope) {\n    bo = findScopeElement(bo, scope);\n    if (!bo) {\n\n      // bpmn:Error\n      if (scope.name === 'bpmn:Error') {\n        bo = createError(scope.id, rootElement, bpmnFactory);\n\n        updates.push(cmdHelper.addElementsTolist(\n          bo, rootElement, 'rootElements', [ bo ]\n        ));\n      } else {\n        bo = elementHelper.createElement(scope.name, null, element, bpmnFactory);\n\n        updates.push(cmdHelper.addElementsTolist(\n          bo, extensionElements, 'values', [ bo ]\n        ));\n      }\n    }\n  }\n\n  // property\n  if (bindingType === 'property') {\n\n    if (bindingName === 'conditionExpression') {\n\n      propertyValue = elementHelper.createElement('bpmn:FormalExpression', {\n        body: value,\n        language: binding.scriptFormat\n      }, bo, bpmnFactory);\n    } else {\n\n      var moddlePropertyDescriptor = bo.$descriptor.propertiesByName[bindingName];\n\n      var moddleType = moddlePropertyDescriptor.type;\n\n      // make sure we only update String, Integer, Real and\n      // Boolean properties (do not accidentally override complex objects...)\n      if (BASIC_MODDLE_TYPES.indexOf(moddleType) === -1) {\n        throw new Error('cannot set moddle type <' + moddleType + '>');\n      }\n\n      if (moddleType === 'Boolean') {\n        propertyValue = !!value;\n      } else\n      if (moddleType === 'Integer') {\n        propertyValue = parseInt(value, 10);\n\n        if (isNaN(propertyValue)) {\n\n          // do not write NaN value\n          propertyValue = undefined;\n        }\n      } else {\n        propertyValue = value;\n      }\n    }\n\n    if (propertyValue !== undefined) {\n      updates.push(cmdHelper.updateBusinessObject(\n        element, bo, objectWithKey(bindingName, propertyValue)\n      ));\n    }\n  }\n\n  // camunda:property\n  var camundaProperties,\n      existingCamundaProperty,\n      newCamundaProperty;\n\n  if (bindingType === CAMUNDA_PROPERTY_TYPE) {\n\n    if (scope) {\n      camundaProperties = bo.get('properties');\n    } else {\n      camundaProperties = findExtension(extensionElements, 'camunda:Properties');\n    }\n\n    if (!camundaProperties) {\n      camundaProperties = elementHelper.createElement('camunda:Properties', null, bo, bpmnFactory);\n\n      if (scope) {\n        updates.push(cmdHelper.updateBusinessObject(\n          element, bo, { properties: camundaProperties }\n        ));\n      }\n      else {\n        updates.push(cmdHelper.addElementsTolist(\n          element, extensionElements, 'values', [ camundaProperties ]\n        ));\n      }\n    }\n\n    existingCamundaProperty = findCamundaProperty(camundaProperties, binding);\n\n    newCamundaProperty = createCamundaProperty(binding, value, bpmnFactory);\n\n    updates.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      camundaProperties,\n      'values',\n      null,\n      [ newCamundaProperty ],\n      existingCamundaProperty ? [ existingCamundaProperty ] : []\n    ));\n  }\n\n  // camunda:inputParameter\n  // camunda:outputParameter\n  var inputOutput,\n      existingIoParameter,\n      newIoParameter;\n\n  if (IO_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n    if (scope) {\n      inputOutput = bo.get('inputOutput');\n    } else {\n      inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n    }\n\n    // create inputOutput element, if it do not exist (yet)\n    if (!inputOutput) {\n      inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n      if (scope) {\n        updates.push(cmdHelper.updateBusinessObject(\n          element, bo, { inputOutput: inputOutput }\n        ));\n      }\n      else {\n        updates.push(cmdHelper.addElementsTolist(\n          element, extensionElements, 'values', inputOutput\n        ));\n      }\n    }\n  }\n\n  if (bindingType === CAMUNDA_INPUT_PARAMETER_TYPE) {\n\n    existingIoParameter = findInputParameter(inputOutput, binding);\n\n    newIoParameter = createInputParameter(binding, value, bpmnFactory);\n\n    updates.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      inputOutput,\n      'inputParameters',\n      null,\n      [ newIoParameter ],\n      existingIoParameter ? [ existingIoParameter ] : []\n    ));\n  }\n\n  if (bindingType === CAMUNDA_OUTPUT_PARAMETER_TYPE) {\n\n    existingIoParameter = findOutputParameter(inputOutput, binding);\n\n    newIoParameter = createOutputParameter(binding, value, bpmnFactory);\n\n    updates.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      inputOutput,\n      'outputParameters',\n      null,\n      [ newIoParameter ],\n      existingIoParameter ? [ existingIoParameter ] : []\n    ));\n  }\n\n\n  // camunda:in\n  // camunda:out\n  // camunda:in:businessKey\n  var existingInOut,\n      newInOut;\n\n  if (IN_OUT_BINDING_TYPES.indexOf(bindingType) !== -1) {\n\n    existingInOut = findCamundaInOut(bo, binding);\n\n    if (bindingType === CAMUNDA_IN_TYPE) {\n      newInOut = createCamundaIn(binding, value, bpmnFactory);\n    } else\n    if (bindingType === CAMUNDA_OUT_TYPE) {\n      newInOut = createCamundaOut(binding, value, bpmnFactory);\n    } else {\n      newInOut = createCamundaInWithBusinessKey(binding, value, bpmnFactory);\n    }\n\n    updates.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      extensionElements,\n      'values',\n      null,\n      [ newInOut ],\n      existingInOut ? [ existingInOut ] : []\n    ));\n  }\n\n  if (bindingType === CAMUNDA_FIELD) {\n    var existingFieldInjections = findExtensions(bo, [ 'camunda:Field' ]);\n    var newFieldInjections = [];\n\n    if (existingFieldInjections.length > 0) {\n      existingFieldInjections.forEach(function(item) {\n        if (item.name === binding.name) {\n          newFieldInjections.push(createCamundaFieldInjection(binding, value, bpmnFactory));\n        } else {\n          newFieldInjections.push(item);\n        }\n      });\n    } else {\n      newFieldInjections.push(createCamundaFieldInjection(binding, value, bpmnFactory));\n    }\n\n    updates.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      extensionElements,\n      'values',\n      null,\n      newFieldInjections,\n      existingFieldInjections ? existingFieldInjections : []\n    ));\n  }\n\n  // camunda:errorEventDefinition\n  if (bindingType === CAMUNDA_ERROR_EVENT_DEFINITION) {\n    var existingErrorEventDefinition = findCamundaErrorEventDefinition(bo, binding.errorRef);\n\n    if (existingErrorEventDefinition) {\n      updates.push(cmdHelper.updateBusinessObject(\n        element, existingErrorEventDefinition, { expression: value }\n      ));\n    } else {\n\n      var newError = createError(binding.errorRef, rootElement, bpmnFactory),\n          newEventDefinition =\n            createCamundaErrorEventDefinition(binding, value, newError, extensionElements, bpmnFactory);\n\n      updates.push(cmdHelper.addAndRemoveElementsFromList(\n        element,\n        rootElement,\n        'rootElements',\n        null,\n        [ newError ],\n        []\n      ));\n\n      updates.push(cmdHelper.addAndRemoveElementsFromList(\n        element,\n        extensionElements,\n        'values',\n        null,\n        [ newEventDefinition ],\n        []\n      ));\n    }\n\n  }\n\n  if (updates.length) {\n    return updates;\n  }\n\n  // quick warning for better debugging\n  console.warn('no update', element, property, value);\n}\n\nmodule.exports.setPropertyValue = setPropertyValue;\n\n/**\n * Validate value of a given property.\n *\n * @param {String} value\n * @param {PropertyDescriptor} property\n * @param {Function} translate\n *\n * @return {Object} with validation errors\n */\nfunction validateValue(value, property, translate) {\n\n  var constraints = property.constraints || {};\n\n  if (constraints.notEmpty && isEmpty(value)) {\n    return translate('Must not be empty');\n  }\n\n  if (constraints.maxLength && value.length > constraints.maxLength) {\n    return translate('Must have max length {length}', { length: constraints.maxLength });\n  }\n\n  if (constraints.minLength && value.length < constraints.minLength) {\n    return translate('Must have min length {length}', { length: constraints.minLength });\n  }\n\n  var pattern = constraints.pattern,\n      message;\n\n  if (pattern) {\n\n    if (typeof pattern !== 'string') {\n      message = pattern.message;\n      pattern = pattern.value;\n    }\n\n    if (!matchesPattern(value, pattern)) {\n      return message || translate('Must match pattern {pattern}', { pattern: pattern });\n    }\n  }\n}\n\n\n// misc helpers ///////////////////////////////\n\nfunction propertyWithScope(property, scope) {\n  var scopeName = scope.type,\n      scopeId = scope.id;\n\n  if (!scopeName) {\n    return property;\n  }\n\n  return assign({}, property, {\n    scope: {\n      name: scopeName,\n      id: scopeId\n    }\n  });\n}\n\n/**\n * Return an object with a single key -> value association.\n *\n * @param {String} key\n * @param {Any} value\n *\n * @return {Object}\n */\nfunction objectWithKey(key, value) {\n  var obj = {};\n\n  obj[key] = value;\n\n  return obj;\n}\n\n/**\n * Does the given string match the specified pattern?\n *\n * @param {String} str\n * @param {String} pattern\n *\n * @return {Boolean}\n */\nfunction matchesPattern(str, pattern) {\n  var regexp = new RegExp(pattern);\n\n  return regexp.test(str);\n}\n\nfunction isEmpty(str) {\n  return !str || /^\\s*$/.test(str);\n}\n\n/**\n * Create a new {@link Error} indicating an unknown\n * property binding.\n *\n * @param {PropertyDescriptor} property\n *\n * @return {Error}\n */\nfunction unknownPropertyBinding(property) {\n  var binding = property.binding;\n\n  return new Error('unknown binding: <' + binding.type + '>');\n}\n\nfunction getDefaultType(property) {\n  var binding = property.binding,\n      bindingType = binding.type;\n\n  if (bindingType === PROPERTY_TYPE ||\n      bindingType === CAMUNDA_PROPERTY_TYPE ||\n      bindingType === CAMUNDA_IN_TYPE ||\n      bindingType === CAMUNDA_IN_BUSINESS_KEY_TYPE ||\n      bindingType === CAMUNDA_OUT_TYPE ||\n      bindingType === CAMUNDA_FIELD) {\n    return 'String';\n  }\n\n  if (bindingType === CAMUNDA_EXECUTION_LISTENER_TYPE) {\n    return 'Hidden';\n  }\n}\n\nfunction findScopeElement(businessObject, scope) {\n\n  var scopeName = scope.name,\n      scopeId = scope.id;\n\n  if (scopeName === 'bpmn:Error') {\n\n    // retrieve error over referenced error event definition\n    var errorEventDefinition = findCamundaErrorEventDefinition(businessObject, scopeId);\n\n    if (errorEventDefinition) {\n      return errorEventDefinition.errorRef;\n    }\n  }\n\n  return findExtension(businessObject, scopeName);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/CustomProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js":
  /*!****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js ***!
    \****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\r\n\r\nvar getTemplateId = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").getTemplateId;\r\n\r\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\r\n    domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\r\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\r\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\r\n\r\nvar isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\r\n\r\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\r\n\r\nvar getVersionOrDateFromTemplate = __webpack_require__(/*! ./Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js\").getVersionOrDateFromTemplate;\r\n\r\nvar MAX_DESCRIPTION_LENGTH = 200;\r\n\r\nmodule.exports = function(\r\n    element,\r\n    commandStack,\r\n    elementTemplates,\r\n    modeling,\r\n    replace,\r\n    selection,\r\n    translate) {\r\n  var currentElementTemplate = elementTemplates.get(element);\r\n\r\n  var entries = [];\r\n\r\n  var description,\r\n      newestElementTemplate;\r\n\r\n  if (currentElementTemplate) {\r\n    newestElementTemplate = findNewestElementTemplate(elementTemplates, currentElementTemplate);\r\n\r\n    if (newestElementTemplate) {\r\n      entries.push({\r\n        id: 'element-template-update',\r\n        cssClasses: [ 'bpp-entry--warning' ],\r\n        html: createUpdateTemplateEntry(element, currentElementTemplate, newestElementTemplate, commandStack, translate)\r\n      });\r\n    }\r\n\r\n    description = currentElementTemplate.description;\r\n\r\n    if (description) {\r\n      entries.push(createDescriptionEntry(description, translate));\r\n    }\r\n  } else {\r\n    entries.push({\r\n      id: 'element-template-not-found',\r\n      cssClasses: [ 'bpp-entry--warning' ],\r\n      html: createTemplateNotFoundEntry(element, modeling, translate)\r\n    });\r\n  }\r\n\r\n  if (currentElementTemplate && currentElementTemplate.version) {\r\n    entries.push({\r\n      id: 'element-template-version',\r\n      html: '<p>' + getVersionOrDateFromTemplate(currentElementTemplate) + '</p>'\r\n    });\r\n  }\r\n\r\n  return {\r\n    id: 'elementTemplateDescription',\r\n    label: currentElementTemplate ? currentElementTemplate.name : translate('Missing Template'),\r\n    dropdown: {\r\n      menu: [\r\n        {\r\n          id: 'element-template-unlink',\r\n          label: translate('Unlink'),\r\n          onClick: function() {\r\n            modeling.updateProperties(element, {\r\n              'camunda:modelerTemplate': null,\r\n              'camunda:modelerTemplateVersion': null\r\n            });\r\n          }\r\n        },\r\n        {\r\n          id: 'element-template-remove',\r\n          label: translate('Remove'),\r\n          onClick: function() {\r\n            var businessObject = getBusinessObject(element);\r\n\r\n            var type = businessObject.$type,\r\n                eventDefinitionType = getEventDefinitionType(businessObject);\r\n\r\n            var newElement = replace.replaceElement(element, {\r\n              type: type,\r\n              eventDefinitionType: eventDefinitionType\r\n            });\r\n\r\n            selection.select(newElement);\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    entries: entries\r\n  };\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction createDescriptionEntry(description, translate) {\r\n  description = escapeHTML(description);\r\n\r\n  var html = domify('<p class=\"description description--expanded\"></p>');\r\n\r\n  var descriptionText = domify('<span class=\"description__text\">' + description + '</span>');\r\n\r\n  html.appendChild(descriptionText);\r\n\r\n  function toggleExpanded(expanded) {\r\n    if (expanded) {\r\n      domClasses(html).add('description--expanded');\r\n\r\n      descriptionText.textContent = description + ' ';\r\n\r\n      expand.textContent = translate('Less');\r\n    } else {\r\n      domClasses(html).remove('description--expanded');\r\n\r\n      descriptionText.textContent = descriptionShortened + ' ... ';\r\n\r\n      expand.textContent = translate('More');\r\n    }\r\n  }\r\n\r\n  var descriptionShortened,\r\n      expand,\r\n      expanded = false;\r\n\r\n  if (description.length > MAX_DESCRIPTION_LENGTH) {\r\n    descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\r\n\r\n    expand = domify(\r\n      '<span class=\"bpp-entry-link description__expand\">' +\r\n        translate('More') +\r\n      '</span>'\r\n    );\r\n\r\n    domEvent.bind(expand, 'click', function() {\r\n      expanded = !expanded;\r\n\r\n      toggleExpanded(expanded);\r\n    });\r\n\r\n    html.appendChild(expand);\r\n\r\n    toggleExpanded(expanded);\r\n  }\r\n\r\n  return {\r\n    id: 'element-template-description',\r\n    html: html\r\n  };\r\n}\r\n\r\nfunction getEventDefinitionType(businessObject) {\r\n  if (!businessObject.eventDefinitions) {\r\n    return null;\r\n  }\r\n\r\n  var eventDefinition = businessObject.eventDefinitions[ 0 ];\r\n\r\n  if (!eventDefinition) {\r\n    return null;\r\n  }\r\n\r\n  return eventDefinition.$type;\r\n}\r\n\r\nfunction createTemplateNotFoundEntry(element, modeling, translate) {\r\n  var templateId = getTemplateId(element);\r\n\r\n  var html = domify(\r\n    '<p>' +\r\n    translate(\r\n      'The applied Template &lt;{templateId}&gt; was not found and therefore its data is not accessible.' +\r\n      '<br />' +\r\n      '<br />' +\r\n      'Unlink in order to access the data.', { templateId: templateId }\r\n    ) +\r\n    '</p>' +\r\n    '<p style=\"text-align: right;\">' +\r\n    '<a class=\"bpp-entry-link bpp-entry-link-button\">Unlink</a>' +\r\n    '</p>'\r\n  );\r\n\r\n  domQuery('.bpp-entry-link', html).addEventListener('click', function() {\r\n    modeling.updateProperties(element, {\r\n      'camunda:modelerTemplate': null\r\n    });\r\n  });\r\n\r\n  return html;\r\n}\r\n\r\nfunction createUpdateTemplateEntry(element, oldElementTemplate, newElementTemplate, commandStack, translate) {\r\n  var newElementTemplateVersion = getVersionOrDateFromTemplate(newElementTemplate);\r\n\r\n  var html = domify(\r\n    '<p>' +\r\n    translate(\r\n      'A new version of the Template ({newElementTemplateVersion}) is available.',\r\n      { newElementTemplateVersion: newElementTemplateVersion }\r\n    ) +\r\n    '</p>' +\r\n    '<p style=\"text-align: right;\">' +\r\n    '<a class=\"bpp-entry-link bpp-entry-link-button\">Update</a>' +\r\n    '</p>'\r\n  );\r\n\r\n  domQuery('.bpp-entry-link', html).addEventListener('click', function() {\r\n    commandStack.execute('propertiesPanel.camunda.changeTemplate', {\r\n      element: element,\r\n      newTemplate: newElementTemplate,\r\n      oldTemplate: oldElementTemplate\r\n    });\r\n  });\r\n\r\n  return html;\r\n}\r\n\r\nfunction findNewestElementTemplate(elementTemplates, currentElementTemplate) {\r\n  if (isUndefined(currentElementTemplate.version)) {\r\n    return null;\r\n  }\r\n\r\n  return elementTemplates\r\n    .getAll()\r\n    .filter(function(elementTemplate) {\r\n      return currentElementTemplate.id === elementTemplate.id && !isUndefined(elementTemplate.version);\r\n    })\r\n    .reduce(function(newestElementTemplate, elementTemplate) {\r\n      if (currentElementTemplate.version < elementTemplate.version) {\r\n        return elementTemplate;\r\n      }\r\n\r\n      if (newestElementTemplate && newestElementTemplate.version < elementTemplate.version) {\r\n        return elementTemplate;\r\n      }\r\n\r\n      return newestElementTemplate;\r\n    }, null);\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/DescriptionProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n    filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n    flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n    findIndex = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").findIndex;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar findExtensions = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtensions,\n    findCamundaErrorEventDefinition = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findCamundaErrorEventDefinition;\n\nvar ErrorEntries = __webpack_require__(/*! ../../parts/implementation/ErrorsEntries */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar CAMUNDA_ERROR_EVENT_DEFINITION_TYPE = 'camunda:errorEventDefinition';\n\nvar EMPTY_ERROR = {\n  get: function() {},\n  set: function() {},\n  errorRef: {}\n};\n\n/**\n * Injects element template errors into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n  var template = elementTemplates.get(element);\n\n  if (!template) {\n    return [];\n  }\n\n  var errorEntries = [];\n\n  function onToggle(value, entryNode) {\n    if (!value) {\n      return;\n    }\n\n    var currentEntryId = entryNode.dataset.entry;\n\n    // collapse all other items\n    errorEntries.forEach(function(entries) {\n      var collapsible = entries[0];\n\n      if (collapsible.id === currentEntryId) {\n        return;\n      }\n\n      var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n      collapsible.setOpen(false, entryNode);\n    });\n  }\n\n\n  function renderError(id, templateProperty) {\n    var binding = templateProperty.binding,\n        bindingErrorRef = binding.errorRef,\n        errorEntries = [],\n        collapsibleEntry;\n\n    // find error event definition first\n    var bo = getBusinessObject(element),\n        errorEventDefinitions = findExtensions(bo, [ 'camunda:ErrorEventDefinition' ]);\n\n    if (!errorEventDefinitions) {\n      return errorEntries;\n    }\n\n    var getError = function() {\n      var definition = findCamundaErrorEventDefinition(element, bindingErrorRef);\n\n      if (!definition) {\n        return EMPTY_ERROR;\n      }\n\n      return definition;\n    };\n\n    var error = getError();\n\n    var isOpen = function() {\n      return collapsibleEntry.isOpen();\n    };\n\n    var options = {\n      idPrefix: id + '-',\n      onToggle: onToggle,\n      getError: getError,\n      isOpen: function() {\n        return isOpen();\n      }\n    };\n\n    // (1) use errors implementation\n    var errorImplementation = ErrorEntries(error, bpmnFactory, element, options, translate);\n    errorEntries = errorImplementation.entries;\n\n    var errorReferenceIdx = findEntry(errorEntries, id + '-error-reference');\n\n    collapsibleEntry = errorEntries[findEntry(errorEntries, id + '-collapsible')];\n\n    // (2) replace validated expression entry by a simple, disabled entry\n    var expressionIdx = findEntry(errorEntries, id + '-error-expression');\n    removeEntry(errorEntries, expressionIdx);\n\n    var expressionEntry = entryFactory.textField(translate, {\n      id: id + '-error-expression',\n      label: translate('Throw Expression'),\n      modelProperty: 'expression',\n\n      get: function() {\n        return { expression: getError().expression };\n      },\n\n      buttonShow: {\n        method: function() {\n          return false;\n        }\n      },\n\n      hidden: function() {\n        return !isOpen();\n      },\n      disabled: function() {\n        return true;\n      }\n    });\n\n    errorEntries.splice(expressionIdx, 0, expressionEntry);\n\n    // (3) remove error selection\n    removeEntry(errorEntries, errorReferenceIdx);\n\n    return errorEntries;\n  }\n\n  // filter specific errors from template\n  var errors = filter(template.properties, function(p) {\n    return !p.type && p.binding.type === CAMUNDA_ERROR_EVENT_DEFINITION_TYPE;\n  });\n\n  forEach(errors, function(property, idx) {\n    var id = 'template-errors-' + template.id + '-' + idx;\n    errorEntries.push(renderError(id, property));\n  });\n\n  group.entries = group.entries.concat(flatten(errorEntries));\n};\n\n\n// helper //////////////////////////\n\nfunction findEntry(entries, id) {\n  return findIndex(entries, function(entry) {\n    return entry.id === id;\n  });\n}\n\nfunction removeEntry(entries, idx) {\n  entries.splice(idx, 1);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/ErrorsProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js":
  /*!******************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js ***!
    \******************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\r\n\r\nvar find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\r\n    isUndefined = __webpack_require__(/*! lodash/isUndefined */ \"./node_modules/lodash/isUndefined.js\");\r\n\r\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\r\n\r\nvar ELEMENT_TEMPLATE_OPTION_EMPTY = 'element-template-option-empty';\r\n\r\nmodule.exports.ELEMENT_TEMPLATE_OPTION_EMPTY = ELEMENT_TEMPLATE_OPTION_EMPTY;\r\n\r\nvar emptyOption = {\r\n  name: '',\r\n  value: ELEMENT_TEMPLATE_OPTION_EMPTY\r\n};\r\n\r\n/**\r\n * Get options for given element and templates.\r\n *\r\n * @param {dj.model.Base} element\r\n * @param {ElementTemplates} elementTemplates\r\n * @param {Translate} translate\r\n */\r\nfunction getOptions(element, elementTemplates, translate) {\r\n  var options = [ emptyOption ];\r\n\r\n  var defaultTemplate = elementTemplates.getDefault(element);\r\n\r\n  if (defaultTemplate) {\r\n    options.push(option('element-template-option-0', defaultTemplate, translate));\r\n\r\n    return options;\r\n  }\r\n\r\n  var index = 0;\r\n\r\n  elementTemplates.getAll().forEach(function(template) {\r\n    if (!isAny(element, template.appliesTo)) {\r\n      return;\r\n    }\r\n\r\n    options.push(option('element-template-option-' + index, template, translate));\r\n\r\n    index++;\r\n  });\r\n\r\n  return options;\r\n}\r\n\r\nmodule.exports.getOptions = getOptions;\r\n\r\nfunction getOption(optionId, options) {\r\n  return find(options, function(option) {\r\n    return optionId === option.value;\r\n  });\r\n}\r\n\r\nmodule.exports.getOption = getOption;\r\n\r\nfunction option(value, template, translate) {\r\n  var name = translate(template.name);\r\n\r\n  if (template.version) {\r\n    name += ' (v' + template.version + ')';\r\n  }\r\n\r\n  var option = {\r\n    id: template.id,\r\n    name: name,\r\n    value: value\r\n  };\r\n\r\n  if (template.version) {\r\n    option.version = template.version;\r\n  }\r\n\r\n  return option;\r\n}\r\n\r\nmodule.exports.getVersionOrDateFromTemplate = function(template) {\r\n  var metadata = template.metadata,\r\n      version = template.version;\r\n\r\n  if (metadata) {\r\n    if (!isUndefined(metadata.created)) {\r\n      return 'Version ' + toDateString(metadata.created);\r\n    } else if (!isUndefined(metadata.updated)) {\r\n      return 'Version ' + toDateString(metadata.updated);\r\n    }\r\n  }\r\n\r\n  if (isUndefined(version)) {\r\n    return null;\r\n  }\r\n\r\n  return 'Version ' + version;\r\n};\r\n\r\nfunction toDateString(timestamp) {\r\n  var date = new Date(timestamp);\r\n\r\n  var year = date.getFullYear();\r\n\r\n  var month = leftPad(String(date.getMonth() + 1), 2, '0');\r\n\r\n  var day = leftPad(String(date.getDate()), 2, '0');\r\n\r\n  return day + '.' + month + '.' + year;\r\n}\r\n\r\nfunction leftPad(string, length, character) {\r\n  while (string.length < length) {\r\n    string = character + string;\r\n  }\r\n\r\n  return string;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/Helper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js":
  /*!********************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js ***!
    \********************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n    flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n    filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n    findIndex = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").findIndex,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach;\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n    findInputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findInputParameter;\n\nvar createInputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createInputParameter;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar InputOutputParameter = __webpack_require__(/*! ../../parts/implementation/InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nvar CAMUNDA_INPUT_PARAMETER_TYPE = 'camunda:inputParameter';\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\nvar EMPTY_PARAMETER = {\n  get: function() {},\n  set: function() {}\n};\n\n\n/**\n * Injects element template input parameters into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (!template) {\n    return [];\n  }\n\n  var inputEntries = [];\n\n\n  function onToggle(value, entryNode) {\n    if (!value) {\n      return;\n    }\n\n    var currentEntryId = entryNode.dataset.entry;\n\n    // collapse all other items\n    inputEntries.forEach(function(entries) {\n      var collapsible = entries[0];\n\n      if (collapsible.id === currentEntryId) {\n        return;\n      }\n\n      var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n      collapsible.setOpen(false, entryNode);\n    });\n  }\n\n  function renderInputParameter(id, templateProperty) {\n\n    var parameterEntries = [],\n        collapsibleEntry;\n\n    var bo = getBusinessObject(element),\n        inputOutput = findExtension(bo, 'camunda:InputOutput');\n\n    if (!inputOutput) {\n      return parameterEntries;\n    }\n\n    var getParameter = function() {\n      return findInputParameter(inputOutput, templateProperty.binding) || EMPTY_PARAMETER;\n    };\n\n    var parameter = getParameter();\n\n    var isOpen = function() {\n      return collapsibleEntry.isOpen();\n    };\n\n    var assignmentIsOn = function() {\n      var inputOutput = findExtension(getBusinessObject(element), 'camunda:InputOutput'),\n          parameter = findInputParameter(inputOutput, templateProperty.binding);\n\n      return !!parameter;\n    };\n\n    var options = {\n      idPrefix: id + '-',\n      onToggle: onToggle,\n      getParameter: getParameter,\n      isOpen: function() {\n        return isOpen() && assignmentIsOn();\n      }\n    };\n\n\n    // (1) use input parameter implementation\n    var inputImplementation = InputOutputParameter(parameter, bpmnFactory, options, translate);\n    parameterEntries = inputImplementation.entries;\n\n    var nameIdx = findEntry(parameterEntries, id + '-parameterName');\n\n    collapsibleEntry = parameterEntries[findEntry(parameterEntries, id + '-collapsible')];\n\n    // (2) update title getter\n    var defaultGet = collapsibleEntry.get;\n    collapsibleEntry.get = function() {\n      return assign(defaultGet(), {\n        title: templateProperty.label ?\n          translate(templateProperty.label) :\n          templateProperty.binding.name\n      });\n    };\n\n    // (3) remove name property entry\n    removeEntry(parameterEntries, nameIdx);\n\n    // (4) add description entry\n    if (templateProperty.description) {\n      parameterEntries.splice(1, 0, createDescriptionEntry(\n        templateProperty.description,\n        id,\n        collapsibleEntry.isOpen,\n        translate\n      ));\n    }\n\n    // (5) add parameter toggle\n    parameterEntries.splice(templateProperty.description ? 2 : 1, 0, entryFactory.toggleSwitch(translate, {\n      id: id + '-assignment-toggle',\n      label: translate('Local Variable Assignment'),\n      modelProperty: 'isActive',\n      labelOn: translate('On'),\n      labelOff: translate('Off'),\n      descriptionOff: translate('The parameter won\\'t be created as local variable.'),\n      isOn: assignmentIsOn,\n      get: function(element, node) {\n        return { isActive: assignmentIsOn() };\n      },\n      set: function(element, values, node) {\n        var isActive = values.isActive || false;\n\n        if (isActive) {\n          return createNewInputParameter(element, templateProperty.binding, bpmnFactory);\n        } else {\n          return removeInputParameter(element, templateProperty.binding);\n        }\n\n      },\n      hidden: function(element, node) {\n        return !isOpen();\n      }\n    }));\n\n    return parameterEntries;\n  }\n\n\n  // filter specific input parameters from template\n  var inputParameters = filter(template.properties, function(p) {\n    return !p.type && p.binding.type === CAMUNDA_INPUT_PARAMETER_TYPE;\n  });\n\n  forEach(inputParameters, function(property, idx) {\n    var id = 'template-inputs-' + template.id + '-' + idx;\n    inputEntries.push(renderInputParameter(id, property));\n  });\n\n  group.entries = group.entries.concat(flatten(inputEntries));\n};\n\n\n// helper ///////////////////////\n\nfunction findEntry(entries, id) {\n  return findIndex(entries, function(entry) {\n    return entry.id === id;\n  });\n}\n\nfunction removeEntry(entries, idx) {\n  entries.splice(idx, 1);\n}\n\nfunction createDescriptionEntry(description, id, show, translate) {\n  description = escapeHTML(description);\n\n  var html = domify('<p class=\"description description--expanded\" data-show=\"show\"></p>');\n\n  var descriptionText = domify('<span class=\"description__text\">' + description + '</span>');\n\n  html.appendChild(descriptionText);\n\n  function toggleExpanded(expanded) {\n    if (expanded) {\n      domClasses(html).add('description--expanded');\n\n      descriptionText.textContent = description + ' ';\n\n      expand.textContent = translate('Less');\n    } else {\n      domClasses(html).remove('description--expanded');\n\n      descriptionText.textContent = descriptionShortened + ' ... ';\n\n      expand.textContent = translate('More');\n    }\n  }\n\n  var descriptionShortened,\n      expand,\n      expanded = false;\n\n  if (description.length > MAX_DESCRIPTION_LENGTH) {\n    descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n    expand = domify(\n      '<span class=\"bpp-entry-link description__expand\">' +\n        translate('More') +\n      '</span>'\n    );\n\n    domEvent.bind(expand, 'click', function() {\n      expanded = !expanded;\n\n      toggleExpanded(expanded);\n    });\n\n    html.appendChild(expand);\n\n    toggleExpanded(expanded);\n  }\n\n  return {\n    id: id + '-description',\n    html: html,\n    show: show\n  };\n}\n\nfunction removeInputParameter(element, binding) {\n  var bo = getBusinessObject(element),\n      updates = [],\n      extensionElements = bo.get('extensionElements');\n\n  if (!extensionElements) {\n    return updates;\n  }\n\n  var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n  if (!inputOutput) {\n    return updates;\n  }\n\n  var inputParameter = findInputParameter(inputOutput, binding);\n\n  if (!inputParameter) {\n    return updates;\n  }\n\n  updates.push(cmdHelper.removeElementsFromList(element, inputOutput, 'inputParameters', null, [inputParameter]));\n\n  return updates;\n}\n\nfunction createNewInputParameter(element, binding, bpmnFactory) {\n  var bo = getBusinessObject(element),\n      updates = [],\n      extensionElements = bo.get('extensionElements');\n\n  // (1) ensure extension elements\n  if (!extensionElements) {\n    extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n    updates.push(cmdHelper.updateBusinessObject(\n      element, bo, { extensionElements: extensionElements }\n    ));\n  }\n\n  var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n  // (2) ensure inputOutput element\n  if (!inputOutput) {\n    inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n    updates.push(cmdHelper.addElementsTolist(\n      element, extensionElements, 'values', inputOutput\n    ));\n  }\n\n  // (3) create input parameter\n  var inputParameter = createInputParameter(binding, null, bpmnFactory);\n\n  updates.push(cmdHelper.addAndRemoveElementsFromList(\n    element,\n    inputOutput,\n    'inputParameters',\n    null,\n    [ inputParameter ],\n    [ ]\n  ));\n\n  return updates;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/InputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js":
  /*!*********************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js ***!
    \*********************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n    filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar findExtension = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findExtension,\n    findOutputParameter = __webpack_require__(/*! ../Helper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/Helper.js\").findOutputParameter;\n\nvar createOutputParameter = __webpack_require__(/*! ../CreateHelper */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/CreateHelper.js\").createOutputParameter;\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes,\n    domEvent = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").event,\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar CAMUNDA_OUTPUT_PARAMETER_TYPE = 'camunda:outputParameter';\n\nvar MAX_DESCRIPTION_LENGTH = 200;\n\nvar EMPTY_PARAMETER = {\n  get: function() {},\n  set: function() {}\n};\n\n/**\n * Injects element template output parameters into the given group.\n *\n * @param {Object} group\n * @param {djs.model.Base} element\n * @param {ElementTemplates} elementTemplates\n * @param {BpmnFactory} bpmnFactory\n * @param {Function} translate\n */\nmodule.exports = function(group, element, elementTemplates, bpmnFactory, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (!template) {\n    return [];\n  }\n\n  var outputEntries = [];\n\n\n  function onToggle(value, entryNode) {\n    if (!value) {\n      return;\n    }\n\n    var currentEntryId = entryNode.dataset.entry;\n\n    // collapse all other items\n    outputEntries.forEach(function(entries) {\n      var collapsible = entries[0];\n\n      if (collapsible.id === currentEntryId) {\n        return;\n      }\n\n      var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n      collapsible.setOpen(false, entryNode);\n    });\n  }\n\n  function renderOutputParameter(id, templateProperty) {\n\n    var parameterEntries = [];\n\n    // find input parameter first\n    var bo = getBusinessObject(element),\n        inputOutput = findExtension(bo, 'camunda:InputOutput');\n\n    if (!inputOutput) {\n      return parameterEntries;\n    }\n\n    var getParameter = function() {\n      return findOutputParameter(inputOutput, templateProperty.binding) || EMPTY_PARAMETER;\n    };\n\n    // (1) add collapsible header\n    var collapsible = entryFactory.collapsible({\n      id: id + '-collapsible',\n      title: translate(templateProperty.label),\n      cssClasses: [\n        'bpp-collapsible--with-mapping',\n        'bpp-collapsible--with-template-out'\n      ],\n      onToggle: onToggle,\n      open: false,\n      get: function() {\n        return {\n          title: translate(templateProperty.label),\n          description: getParameter().name\n        };\n      }\n    });\n    parameterEntries.push(collapsible);\n\n    var isOpen = collapsible.isOpen;\n\n    var assignmentIsOn = function() {\n      var inputOutput = findExtension(getBusinessObject(element), 'camunda:InputOutput'),\n          parameter = findOutputParameter(inputOutput, templateProperty.binding);\n\n      return !!parameter;\n    };\n\n    // (2) add description\n    if (templateProperty.description) {\n      parameterEntries.push(createDescriptionEntry(\n        templateProperty.description,\n        id,\n        isOpen,\n        translate\n      ));\n    }\n\n    // (3) add parameter toggle\n    parameterEntries.splice(templateProperty.description ? 2 : 1, 0, entryFactory.toggleSwitch(translate, {\n      id: id + '-assignment-toggle',\n      label: translate('Process Variable Assignment'),\n      modelProperty: 'isActive',\n      labelOn: translate('On'),\n      labelOff: translate('Off'),\n      descriptionOff: translate('The parameter won\\'t be available in the process scope.'),\n      isOn: assignmentIsOn,\n      get: function(element, node) {\n        return { isActive: assignmentIsOn() };\n      },\n      set: function(element, values, node) {\n        var isActive = values.isActive || false;\n\n        if (isActive) {\n          return createNewOutputParameter(element, templateProperty.binding, bpmnFactory);\n        } else {\n          return removeOutputParameter(element, templateProperty.binding);\n        }\n\n      },\n      hidden: function(element, node) {\n        return !isOpen();\n      }\n    }));\n\n    // (4) add process variable name field\n    parameterEntries.push(entryFactory.validationAwareTextField(translate, {\n      id: id + '-variableName',\n      label: translate('Assign to Process Variable'),\n      modelProperty: 'variableName',\n      getProperty: function(element) {\n        return getParameter().name;\n      },\n      setProperty: function(element, values) {\n        return cmdHelper.updateBusinessObject(element, getParameter(), { name: values.variableName });\n      },\n      validate: function(element, values) {\n        var validation = {},\n            nameValue = values.variableName;\n\n        if (nameValue) {\n          if (utils.containsSpace(nameValue)) {\n            validation.variableName = translate('Process Variable Name must not contain spaces.');\n          }\n        } else {\n          validation.variableName = translate('Process Variable Name must not be empty.');\n        }\n\n        return validation;\n      },\n      hidden: function(element, node) {\n        return !isOpen() || !assignmentIsOn();\n      }\n    }));\n\n    return parameterEntries;\n  }\n\n  // filter specific output parameters from template\n  var outputParameters = filter(template.properties, function(p) {\n    return !p.type && p.binding.type === CAMUNDA_OUTPUT_PARAMETER_TYPE;\n  });\n\n  forEach(outputParameters, function(property, idx) {\n    var id = 'template-outputs-' + template.id + '-' + idx;\n    outputEntries.push(renderOutputParameter(id, property));\n  });\n\n  group.entries = group.entries.concat(flatten(outputEntries));\n};\n\n// helpers ///////////////\n\nfunction createDescriptionEntry(description, id, show, translate) {\n  description = escapeHTML(description);\n\n  var html = domify('<p class=\"description description--expanded\" data-show=\"show\"></p>');\n\n  var descriptionText = domify('<span class=\"description__text\">' + description + '</span>');\n\n  html.appendChild(descriptionText);\n\n  function toggleExpanded(expanded) {\n    if (expanded) {\n      domClasses(html).add('description--expanded');\n\n      descriptionText.textContent = description + ' ';\n\n      expand.textContent = translate('Less');\n    } else {\n      domClasses(html).remove('description--expanded');\n\n      descriptionText.textContent = descriptionShortened + ' ... ';\n\n      expand.textContent = translate('More');\n    }\n  }\n\n  var descriptionShortened,\n      expand,\n      expanded = false;\n\n  if (description.length > MAX_DESCRIPTION_LENGTH) {\n    descriptionShortened = description.slice(0, MAX_DESCRIPTION_LENGTH);\n\n    expand = domify(\n      '<span class=\"bpp-entry-link description__expand\">' +\n        translate('More') +\n      '</span>'\n    );\n\n    domEvent.bind(expand, 'click', function() {\n      expanded = !expanded;\n\n      toggleExpanded(expanded);\n    });\n\n    html.appendChild(expand);\n\n    toggleExpanded(expanded);\n  }\n\n  return {\n    id: id + '-description',\n    html: html,\n    show: show\n  };\n}\n\nfunction removeOutputParameter(element, binding) {\n  var bo = getBusinessObject(element),\n      updates = [],\n      extensionElements = bo.get('extensionElements');\n\n  if (!extensionElements) {\n    return updates;\n  }\n\n  var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n  if (!inputOutput) {\n    return updates;\n  }\n\n  var outputParameter = findOutputParameter(inputOutput, binding);\n\n  if (!outputParameter) {\n    return updates;\n  }\n\n  updates.push(cmdHelper.removeElementsFromList(element, inputOutput, 'outputParameters', null, [outputParameter]));\n\n  return updates;\n}\n\nfunction createNewOutputParameter(element, binding, bpmnFactory) {\n  var bo = getBusinessObject(element),\n      updates = [],\n      extensionElements = bo.get('extensionElements');\n\n  // (1) ensure extension elements\n  if (!extensionElements) {\n    extensionElements = elementHelper.createElement('bpmn:ExtensionElements', null, element, bpmnFactory);\n\n    updates.push(cmdHelper.updateBusinessObject(\n      element, bo, { extensionElements: extensionElements }\n    ));\n  }\n\n  var inputOutput = findExtension(extensionElements, 'camunda:InputOutput');\n\n  // (2) ensure inputOutput element\n  if (!inputOutput) {\n    inputOutput = elementHelper.createElement('camunda:InputOutput', null, bo, bpmnFactory);\n\n    updates.push(cmdHelper.addElementsTolist(\n      element, extensionElements, 'values', inputOutput\n    ));\n  }\n\n  // (3) create output parameter\n  var outputParameter = createOutputParameter(binding, null, bpmnFactory);\n\n  updates.push(cmdHelper.addAndRemoveElementsFromList(\n    element,\n    inputOutput,\n    'outputParameters',\n    null,\n    [ outputParameter ],\n    [ ]\n  ));\n\n  return updates;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/parts/OutputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js":
  /*!*****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js ***!
    \*****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").assign,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n    keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n    isObject = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").isObject;\n\n/**\n * Converts legacy scopes descriptor to newer supported array structure.\n *\n * For example, it transforms\n *\n * scopes: {\n *   'camunda:Connector':\n *     { properties: []\n *   }\n * }\n *\n * to\n *\n * scopes: [\n *   {\n *     type: 'camunda:Connector',\n *     properties: []\n *   }\n * ]\n *\n * @param {ScopesDescriptor} scopes\n *\n * @returns {Array}\n */\nmodule.exports = function handleLegacyScopes(scopes) {\n  var scopesAsArray = [];\n\n  if (!isObject(scopes)) {\n    return scopes;\n  }\n\n  forEach(keys(scopes), function(scopeName) {\n    scopesAsArray.push(assign({\n      type: scopeName\n    }, scopes[scopeName]));\n  });\n\n  return scopesAsArray;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/util/handleLegacyScopes.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js ***!
    \*****************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("module.exports = {\n  __depends__: [\n    __webpack_require__(/*! ./element-templates */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/element-templates/index.js\"),\n    __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\").default\n  ],\n  __init__: [ 'propertiesProvider' ],\n  propertiesProvider: [ 'type', __webpack_require__(/*! ./CamundaPropertiesProvider */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js\") ]\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    asyncContinuation = __webpack_require__(/*! ./implementation/AsyncContinuation */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  if (is(element, 'camunda:AsyncCapable')) {\n\n    group.entries = group.entries.concat(asyncContinuation(element, bpmnFactory, {\n      getBusinessObject: getBusinessObject\n    }, translate));\n\n  }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/AsynchronousContinuationProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js":
  /*!***********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js ***!
    \***********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar callable = __webpack_require__(/*! ./implementation/Callable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar flattenDeep = __webpack_require__(/*! lodash/flattenDeep */ \"./node_modules/lodash/flattenDeep.js\");\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nfunction getCallableType(element) {\n  var bo = getBusinessObject(element);\n\n  var boCalledElement = bo.get('calledElement'),\n      boCaseRef = bo.get('camunda:caseRef');\n\n  var callActivityType = '';\n  if (typeof boCalledElement !== 'undefined') {\n    callActivityType = 'bpmn';\n  } else\n\n  if (typeof boCaseRef !== 'undefined') {\n    callActivityType = 'cmmn';\n  }\n\n  return callActivityType;\n}\n\nvar DEFAULT_PROPS = {\n  calledElement: undefined,\n  'camunda:calledElementBinding': 'latest',\n  'camunda:calledElementVersion': undefined,\n  'camunda:calledElementTenantId': undefined,\n  'camunda:variableMappingClass' : undefined,\n  'camunda:variableMappingDelegateExpression' : undefined,\n  'camunda:caseRef': undefined,\n  'camunda:caseBinding': 'latest',\n  'camunda:caseVersion': undefined,\n  'camunda:caseTenantId': undefined\n};\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  if (!is(element, 'camunda:CallActivity')) {\n    return;\n  }\n\n  group.entries.push(entryFactory.selectBox(translate, {\n    id : 'callActivity',\n    label: translate('CallActivity Type'),\n    selectOptions: [\n      { name: 'BPMN', value: 'bpmn' },\n      { name: 'CMMN', value: 'cmmn' }\n    ],\n    emptyParameter: true,\n    modelProperty: 'callActivityType',\n\n    get: function(element, node) {\n      return {\n        callActivityType: getCallableType(element)\n      };\n    },\n\n    set: function(element, values, node) {\n      var type = values.callActivityType;\n\n      var props = assign({}, DEFAULT_PROPS);\n\n      if (type === 'bpmn') {\n        props.calledElement = '';\n      }\n      else if (type === 'cmmn') {\n        props['camunda:caseRef'] = '';\n      }\n\n      return cmdHelper.updateProperties(element, props);\n    }\n\n  }));\n\n  group.entries.push(callable(element, bpmnFactory, {\n    getCallableType: getCallableType\n  }, translate));\n\n  group.entries = flattenDeep(group.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CallActivityProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar candidateStarter = __webpack_require__(/*! ./implementation/CandidateStarter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n  var businessObject = getBusinessObject(element);\n\n  if (is(element, 'camunda:Process') ||\n      is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n    group.entries = group.entries.concat(candidateStarter(element, bpmnFactory, {\n      getBusinessObject: function(element) {\n        var bo = getBusinessObject(element);\n\n        if (!is(bo, 'bpmn:Participant')) {\n          return bo;\n        }\n\n        return bo.get('processRef');\n      }\n    }, translate));\n\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/CandidateStarterProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js":
  /*!**********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js ***!
    \**********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    escapeHTML = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML,\n    domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n  var bo = getBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n  if (!(is(element, 'bpmn:SequenceFlow') && isConditionalSource(element.source))\n    && !conditionalEventDefinition) {\n    return;\n  }\n\n  var script = scriptImplementation('language', 'body', true, translate);\n  group.entries.push({\n    id: 'condition',\n    label: translate('Condition'),\n    html: '<div class=\"bpp-row\">' +\n              '<label for=\"cam-condition-type\">'+ escapeHTML(translate('Condition Type')) + '</label>' +\n              '<div class=\"bpp-field-wrapper\">' +\n                '<select id=\"cam-condition-type\" name=\"conditionType\" data-value>' +\n                  '<option value=\"expression\">'+ escapeHTML(translate('Expression')) + '</option>' +\n                  '<option value=\"script\">'+ escapeHTML(translate('Script')) + '</option>' +\n                  '<option value=\"\" selected></option>' +\n                '</select>' +\n              '</div>' +\n            '</div>' +\n\n            // expression\n            '<div class=\"bpp-row\">' +\n              '<label for=\"cam-condition\" data-show=\"isExpression\">' + escapeHTML(translate('Expression')) + '</label>' +\n              '<div class=\"bpp-field-wrapper\" data-show=\"isExpression\">' +\n                '<input id=\"cam-condition\" type=\"text\" name=\"condition\" />' +\n                '<button class=\"action-button clear\" data-action=\"clear\" data-show=\"canClear\">' +\n                  '<span>X</span>' +\n                '</button>' +\n              '</div>' +\n              '<div data-show=\"isScript\">' +\n                script.template +\n              '</div>' +\n            '</div>',\n\n    get: function(element, propertyName) {\n      var conditionalEventDefinition = eventDefinitionHelper.getConditionalEventDefinition(element);\n\n      var conditionExpression = conditionalEventDefinition\n        ? conditionalEventDefinition.condition\n        : bo.conditionExpression;\n\n      var values = {},\n          conditionType = '';\n\n      if (conditionExpression) {\n        var conditionLanguage = conditionExpression.language;\n        if (typeof conditionLanguage !== 'undefined') {\n          conditionType = 'script';\n          values = script.get(element, conditionExpression);\n        } else {\n          conditionType = 'expression';\n          values.condition = conditionExpression.get('body');\n        }\n      }\n\n      values.conditionType = conditionType;\n\n      return values;\n\n    },\n\n    set: function(element, values, containerElement) {\n      var conditionType = values.conditionType;\n      var commands = [];\n\n      var conditionProps = {\n        body: undefined\n      };\n\n      if (conditionType === 'script') {\n        conditionProps = script.set(element, values, containerElement);\n      } else {\n        var condition = values.condition;\n\n        conditionProps.body = condition;\n      }\n\n      var conditionOrConditionExpression;\n\n      if (conditionType) {\n        conditionOrConditionExpression = elementHelper.createElement(\n          'bpmn:FormalExpression',\n          conditionProps,\n          conditionalEventDefinition || bo,\n          bpmnFactory\n        );\n\n        var source = element.source;\n\n        // if default-flow, remove default-property from source\n        if (source && source.businessObject.default === bo) {\n          commands.push(cmdHelper.updateProperties(source, { 'default': undefined }));\n        }\n      }\n\n      var update = conditionalEventDefinition\n        ? { condition: conditionOrConditionExpression }\n        : { conditionExpression: conditionOrConditionExpression };\n\n      commands.push(cmdHelper.updateBusinessObject(element, conditionalEventDefinition || bo, update));\n\n      return commands;\n    },\n\n    validate: function(element, values) {\n      var validationResult = {};\n\n      if (!values.condition && values.conditionType === 'expression') {\n        validationResult.condition = translate('Must provide a value');\n      }\n      else if (values.conditionType === 'script') {\n        validationResult = script.validate(element, values);\n      }\n\n      return validationResult;\n    },\n\n    isExpression: function(element, inputNode) {\n      var conditionType = domQuery('select[name=conditionType]', inputNode);\n      if (conditionType.selectedIndex >= 0) {\n        return conditionType.options[conditionType.selectedIndex].value === 'expression';\n      }\n    },\n\n    isScript: function(element, inputNode) {\n      var conditionType = domQuery('select[name=conditionType]', inputNode);\n      if (conditionType.selectedIndex >= 0) {\n        return conditionType.options[conditionType.selectedIndex].value === 'script';\n      }\n    },\n\n    clear: function(element, inputNode) {\n\n      // clear text input\n      domQuery('input[name=condition]', inputNode).value='';\n\n      return true;\n    },\n\n    canClear: function(element, inputNode) {\n      var input = domQuery('input[name=condition]', inputNode);\n\n      return input.value !== '';\n    },\n\n    script : script,\n\n    cssClasses: [ 'bpp-textfield' ]\n  });\n};\n\n\n// utilities //////////////////////////\n\nvar CONDITIONAL_SOURCES = [\n  'bpmn:Activity',\n  'bpmn:ExclusiveGateway',\n  'bpmn:InclusiveGateway',\n  'bpmn:ComplexGateway'\n];\n\nfunction isConditionalSource(element) {\n  return isAny(element, CONDITIONAL_SOURCES);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConditionalProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js":
  /*!**************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js ***!
    \**************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n    InputOutputHelper = __webpack_require__(/*! ../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction getImplementationType(element) {\n  return ImplementationTypeHelper.getImplementationType(element);\n}\n\nfunction getBusinessObject(element) {\n  return ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n}\n\nfunction getConnector(bo) {\n  return InputOutputHelper.getConnector(bo);\n}\n\nfunction isConnector(element) {\n  return getImplementationType(element) === 'connector';\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'connectorId',\n    label: translate('Connector Id'),\n    modelProperty: 'connectorId',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      var connector = bo && getConnector(bo);\n      var value = connector && connector.get('connectorId');\n      return { connectorId: value };\n    },\n\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element);\n      var connector = getConnector(bo);\n      return cmdHelper.updateBusinessObject(element, connector, {\n        connectorId: values.connectorId || undefined\n      });\n    },\n\n    validate: function(element, values, node) {\n      return isConnector(element) && !values.connectorId ? { connectorId: translate('Must provide a value') } : {};\n    },\n\n    hidden: function(element, node) {\n      return !isConnector(element);\n    }\n\n  }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorDetailProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar inputParameters = __webpack_require__(/*! ./implementation/InputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var inputParametersEntry = inputParameters(element, bpmnFactory, {\n    idPrefix: 'connector-',\n    insideConnector: true\n  }, translate);\n\n  group.entries = group.entries.concat(inputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorInputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js":
  /*!************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js ***!
    \************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar outputParameters = __webpack_require__(/*! ./implementation/OutputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var outputParametersEntry = outputParameters(element, bpmnFactory, {\n    idPrefix: 'connector-',\n    insideConnector: true\n  }, translate);\n\n  group.entries = group.entries.concat(outputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ConnectorOutputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js ***!
    \*********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    error = __webpack_require__(/*! ./implementation/ErrorEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js\");\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var errorEvents = [\n    'bpmn:StartEvent',\n    'bpmn:BoundaryEvent',\n    'bpmn:EndEvent'\n  ];\n\n  forEach(errorEvents, function(event) {\n    if (is(element, event)) {\n\n      var errorEventDefinition = eventDefinitionHelper.getErrorEventDefinition(element);\n\n      if (errorEventDefinition) {\n        var isCatchingErrorEvent = is(element, 'bpmn:StartEvent') || is (element, 'bpmn:BoundaryEvent');\n\n        var showErrorCodeVariable = isCatchingErrorEvent,\n            showErrorMessageVariable = isCatchingErrorEvent;\n\n        error(\n          group,\n          element,\n          bpmnFactory,\n          errorEventDefinition,\n          showErrorCodeVariable,\n          showErrorMessageVariable,\n          translate);\n      }\n    }\n  });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorEventProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js ***!
    \*****************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar errors = __webpack_require__(/*! ./implementation/Errors */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (template) {\n    return;\n  }\n\n  var errorsEntry = errors(element, bpmnFactory, {}, translate);\n\n  group.entries = group.entries.concat(errorsEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ErrorsProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js":
  /*!************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js ***!
    \************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar externalTaskPriority = __webpack_require__(/*! ./implementation/ExternalTaskPriority */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js\");\n\nfunction getServiceTaskLikeBusinessObject(element) {\n  var bo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n\n  // if the element is not a serviceTaskLike element, fetch the normal business object\n  // This avoids the loss of the process / participant business object\n  if (!bo) {\n    bo = getBusinessObject(element);\n  }\n\n  return bo;\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var bo = getServiceTaskLikeBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  if (is(bo, 'camunda:TaskPriorized') || (is(bo, 'bpmn:Participant')) && bo.get('processRef')) {\n    group.entries = group.entries.concat(externalTaskPriority(element, bpmnFactory, {\n      getBusinessObject: function(element) {\n        if (!is(bo, 'bpmn:Participant')) {\n          return bo;\n        }\n        return bo.get('processRef');\n      }\n    }, translate));\n  }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ExternalTaskConfigurationProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js":
  /*!*************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js ***!
    \*************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\nvar fieldInjection = __webpack_require__(/*! ./implementation/FieldInjection */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var bo = ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  var fieldInjectionEntry = fieldInjection(element, bpmnFactory, translate, { businessObject: bo });\n\n  if (fieldInjectionEntry && fieldInjectionEntry.length > 0) {\n    group.entries = group.entries.concat(fieldInjectionEntry);\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FieldInjectionProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js ***!
    \***************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    getExtensionElements = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").getExtensionElements,\n    removeEntry = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\").removeEntry,\n    extensionElements = __webpack_require__(/*! ./implementation/ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\"),\n    properties = __webpack_require__(/*! ./implementation/Properties */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js\"),\n    entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    formHelper = __webpack_require__(/*! ../../../helper/FormHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/FormHelper.js\"),\n    utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\"),\n    each = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nfunction generateValueId() {\n  return utils.nextId('Value_');\n}\n\n/**\n * Generate a form field specific textField using entryFactory.\n *\n * @param {Function} translate\n * @param {string} options.id\n * @param {string} options.label\n * @param {string} options.modelProperty\n * @param {Function} options.validate\n *\n * @return {Object} an entryFactory.textField object\n */\nfunction formFieldTextField(translate, options, getSelectedFormField) {\n\n  var id = options.id,\n      label = options.label,\n      modelProperty = options.modelProperty,\n      validate = options.validate;\n\n  return entryFactory.textField(translate, {\n    id: id,\n    label: label,\n    modelProperty: modelProperty,\n    get: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node) || {},\n          values = {};\n\n      values[modelProperty] = selectedFormField[modelProperty];\n\n      return values;\n    },\n\n    set: function(element, values, node) {\n      var commands = [];\n\n      if (typeof options.set === 'function') {\n        var cmd = options.set(element, values, node);\n\n        if (cmd) {\n          commands.push(cmd);\n        }\n      }\n\n      var formField = getSelectedFormField(element, node),\n          properties = {};\n\n      properties[modelProperty] = values[modelProperty] || undefined;\n\n      commands.push(cmdHelper.updateBusinessObject(element, formField, properties));\n\n      return commands;\n    },\n    hidden: function(element, node) {\n      return !getSelectedFormField(element, node);\n    },\n    validate: validate\n  });\n}\n\nfunction ensureFormKeyAndDataSupported(element) {\n  return (\n    is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess')\n  ) || is(element, 'bpmn:UserTask');\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  if (!ensureFormKeyAndDataSupported(element)) {\n    return;\n  }\n\n\n  /**\n   * Return the currently selected form field querying the form field select box\n   * from the DOM.\n   *\n   * @param  {djs.model.Base} element\n   * @param  {DOMElement} node - DOM element of any form field text input\n   *\n   * @return {ModdleElement} the currently selected form field\n   */\n  function getSelectedFormField(element, node) {\n    var selected = formFieldsEntry.getSelected(element, node.parentNode);\n\n    if (selected.idx === -1) {\n      return;\n    }\n\n    return formHelper.getFormField(element, selected.idx);\n  }\n\n  // [FormKey] form key text input field\n  group.entries.push(entryFactory.textField(translate, {\n    id : 'form-key',\n    label : translate('Form Key'),\n    modelProperty: 'formKey',\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n\n      return {\n        formKey: bo.get('camunda:formKey')\n      };\n    },\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element),\n          formKey = values.formKey || undefined;\n\n      return cmdHelper.updateBusinessObject(element, bo, { 'camunda:formKey': formKey });\n    }\n  }));\n\n  // [FormData] form field select box\n  var formFieldsEntry = extensionElements(element, bpmnFactory, {\n    id: 'form-fields',\n    label: translate('Form Fields'),\n    modelProperty: 'id',\n    prefix: 'FormField',\n    createExtensionElement: function(element, extensionElements, value) {\n      var bo = getBusinessObject(element), commands = [];\n\n      if (!extensionElements) {\n        extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n        commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));\n      }\n\n      var formData = formHelper.getFormData(element);\n\n      if (!formData) {\n        formData = elementHelper.createElement('camunda:FormData', { fields: [] }, extensionElements, bpmnFactory);\n        commands.push(cmdHelper.addAndRemoveElementsFromList(\n          element,\n          extensionElements,\n          'values',\n          'extensionElements',\n          [formData],\n          []\n        ));\n      }\n\n      var field = elementHelper.createElement('camunda:FormField', { id: value }, formData, bpmnFactory);\n      if (typeof formData.fields !== 'undefined') {\n        commands.push(cmdHelper.addElementsTolist(element, formData, 'fields', [ field ]));\n      } else {\n        commands.push(cmdHelper.updateBusinessObject(element, formData, {\n          fields: [ field ]\n        }));\n      }\n      return commands;\n    },\n    removeExtensionElement: function(element, extensionElements, value, idx) {\n      var formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0],\n          entry = formData.fields[idx],\n          commands = [];\n\n      if (formData.fields.length < 2) {\n        commands.push(removeEntry(getBusinessObject(element), element, formData));\n      } else {\n        commands.push(cmdHelper.removeElementsFromList(element, formData, 'fields', null, [entry]));\n\n        if (entry.id === formData.get('businessKey')) {\n          commands.push(cmdHelper.updateBusinessObject(element, formData, { 'businessKey': undefined }));\n        }\n      }\n\n      return commands;\n    },\n    getExtensionElements: function(element) {\n      return formHelper.getFormFields(element);\n    },\n    hideExtensionElements: function(element, node) {\n      return false;\n    }\n  });\n  group.entries.push(formFieldsEntry);\n\n  // [FormData] business key form field select box\n  var formBusinessKeyFormFieldEntry = entryFactory.selectBox(translate, {\n    id: 'form-business-key',\n    label: translate('Business Key'),\n    modelProperty: 'businessKey',\n    selectOptions: function(element, inputNode) {\n      var selectOptions = [{ name: '', value: '' }];\n      var formFields = formHelper.getFormFields(element);\n      each(formFields, function(field) {\n        if (field.type !== 'boolean') {\n          selectOptions.push({ name: field.id, value: field.id });\n        }\n      });\n      return selectOptions;\n    },\n    get: function(element, node) {\n      var result = { businessKey: '' };\n      var bo = getBusinessObject(element);\n      var formDataExtension = getExtensionElements(bo, 'camunda:FormData');\n      if (formDataExtension.length) {\n        var formData = formDataExtension[0];\n        var storedValue = formData.get('businessKey');\n        result = { businessKey: storedValue };\n      }\n      return result;\n    },\n    set: function(element, values, node) {\n      var formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0];\n      return cmdHelper.updateBusinessObject(element, formData, { 'businessKey': values.businessKey || undefined });\n    },\n    hidden: function(element, node) {\n      var isStartEvent = is(element,'bpmn:StartEvent');\n      return !(isStartEvent && formHelper.getFormFields(element).length > 0);\n    }\n  });\n  group.entries.push(formBusinessKeyFormFieldEntry);\n\n  // [FormData] Form Field label\n  group.entries.push(entryFactory.label({\n    id: 'form-field-header',\n    labelText: translate('Form Field'),\n    showLabel: function(element, node) {\n      return !!getSelectedFormField(element, node);\n    }\n  }));\n\n  // [FormData] form field id text input field\n  group.entries.push(entryFactory.validationAwareTextField(translate, {\n    id: 'form-field-id',\n    label: translate('ID (process variable name)'),\n    modelProperty: 'id',\n\n    getProperty: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node) || {};\n\n      return selectedFormField.id;\n    },\n\n    setProperty: function(element, properties, node) {\n      var formField = getSelectedFormField(element, node);\n\n      return cmdHelper.updateBusinessObject(element, formField, properties);\n    },\n\n    hidden: function(element, node) {\n      return !getSelectedFormField(element, node);\n    },\n\n    validate: function(element, values, node) {\n\n      var formField = getSelectedFormField(element, node);\n\n      if (formField) {\n\n        var idValue = values.id;\n\n        if (!idValue || idValue.trim() === '') {\n          return { id: 'Form field id must not be empty' };\n        }\n\n        var formFields = formHelper.getFormFields(element);\n\n        var existingFormField = find(formFields, function(f) {\n          return f !== formField && f.id === idValue;\n        });\n\n        if (existingFormField) {\n          return { id: 'Form field id already used in form data.' };\n        }\n      }\n    }\n  }));\n\n  // [FormData] form field type combo box\n  group.entries.push(entryFactory.comboBox(translate, {\n    id: 'form-field-type',\n    label: translate('Type'),\n    selectOptions: [\n      { name: 'string', value: 'string' },\n      { name: 'long', value: 'long' },\n      { name: 'boolean', value: 'boolean' },\n      { name: 'date', value: 'date' },\n      { name: 'enum', value: 'enum' }\n    ],\n    modelProperty: 'type',\n    emptyParameter: true,\n\n    get: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node);\n\n      if (selectedFormField) {\n        return { type: selectedFormField.type };\n      } else {\n        return {};\n      }\n    },\n    set: function(element, values, node) {\n      var selectedFormField = getSelectedFormField(element, node),\n          formData = getExtensionElements(getBusinessObject(element), 'camunda:FormData')[0],\n          commands = [];\n\n      if (selectedFormField.type === 'enum' && values.type !== 'enum') {\n\n        // delete camunda:value objects from formField.values when switching from type enum\n        commands.push(cmdHelper.updateBusinessObject(element, selectedFormField, { values: undefined }));\n      }\n      if (values.type === 'boolean' && selectedFormField.get('id') === formData.get('businessKey')) {\n        commands.push(cmdHelper.updateBusinessObject(element, formData, { 'businessKey': undefined }));\n      }\n      commands.push(cmdHelper.updateBusinessObject(element, selectedFormField, values));\n\n      return commands;\n    },\n    hidden: function(element, node) {\n      return !getSelectedFormField(element, node);\n    }\n  }));\n\n  // [FormData] form field label text input field\n  group.entries.push(formFieldTextField(translate, {\n    id: 'form-field-label',\n    label: translate('Label'),\n    modelProperty: 'label'\n  }, getSelectedFormField));\n\n  // [FormData] form field defaultValue text input field\n  group.entries.push(formFieldTextField(translate, {\n    id: 'form-field-defaultValue',\n    label: translate('Default Value'),\n    modelProperty: 'defaultValue'\n  }, getSelectedFormField));\n\n\n  // [FormData] form field enum values label\n  group.entries.push(entryFactory.label({\n    id: 'form-field-enum-values-header',\n    labelText: translate('Values'),\n    divider: true,\n    showLabel: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node);\n\n      return selectedFormField && selectedFormField.type === 'enum';\n    }\n  }));\n\n  // [FormData] form field enum values table\n  group.entries.push(entryFactory.table(translate, {\n    id: 'form-field-enum-values',\n    labels: [ translate('Id'), translate('Name') ],\n    modelProperties: [ 'id', 'name' ],\n    show: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node);\n\n      return selectedFormField && selectedFormField.type === 'enum';\n    },\n    getElements: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node);\n\n      return formHelper.getEnumValues(selectedFormField);\n    },\n    addElement: function(element, node) {\n      var selectedFormField = getSelectedFormField(element, node),\n          id = generateValueId();\n\n      var enumValue = elementHelper.createElement(\n        'camunda:Value',\n        { id: id, name: undefined },\n        getBusinessObject(element),\n        bpmnFactory\n      );\n\n      return cmdHelper.addElementsTolist(element, selectedFormField, 'values', [enumValue]);\n    },\n    removeElement: function(element, node, idx) {\n      var selectedFormField = getSelectedFormField(element, node),\n          enumValue = selectedFormField.values[idx];\n\n      return cmdHelper.removeElementsFromList(element, selectedFormField, 'values', null, [enumValue]);\n    },\n    updateElement: function(element, value, node, idx) {\n      var selectedFormField = getSelectedFormField(element, node),\n          enumValue = selectedFormField.values[idx];\n\n      value.name = value.name || undefined;\n      return cmdHelper.updateBusinessObject(element, enumValue, value);\n    },\n    validate: function(element, value, node, idx) {\n\n      var selectedFormField = getSelectedFormField(element, node),\n          enumValue = selectedFormField.values[idx];\n\n      if (enumValue) {\n\n        // check if id is valid\n        var validationError = utils.isIdValid(enumValue, value.id, translate);\n\n        if (validationError) {\n          return { id: validationError };\n        }\n      }\n    }\n  }));\n\n  // [FormData] Validation label\n  group.entries.push(entryFactory.label({\n    id: 'form-field-validation-header',\n    labelText: translate('Validation'),\n    divider: true,\n    showLabel: function(element, node) {\n      return !!getSelectedFormField(element, node);\n    }\n  }));\n\n  // [FormData] form field constraints table\n  group.entries.push(entryFactory.table(translate, {\n    id: 'constraints-list',\n    modelProperties: [ 'name', 'config' ],\n    labels: [ translate('Name'), translate('Config') ],\n    addLabel: translate('Add Constraint'),\n    getElements: function(element, node) {\n      var formField = getSelectedFormField(element, node);\n\n      return formHelper.getConstraints(formField);\n    },\n    addElement: function(element, node) {\n\n      var commands = [],\n          formField = getSelectedFormField(element, node),\n          validation = formField.validation;\n\n      if (!validation) {\n\n        // create validation business object and add it to form data, if it doesn't exist\n        validation = elementHelper.createElement('camunda:Validation', {}, getBusinessObject(element), bpmnFactory);\n\n        commands.push(cmdHelper.updateBusinessObject(element, formField, { 'validation': validation }));\n      }\n\n      var newConstraint = elementHelper.createElement(\n        'camunda:Constraint',\n        { name: undefined, config: undefined },\n        validation,\n        bpmnFactory\n      );\n\n      commands.push(cmdHelper.addElementsTolist(element, validation, 'constraints', [ newConstraint ]));\n\n      return commands;\n    },\n    updateElement: function(element, value, node, idx) {\n      var formField = getSelectedFormField(element, node),\n          constraint = formHelper.getConstraints(formField)[idx];\n\n      value.name = value.name || undefined;\n      value.config = value.config || undefined;\n\n      return cmdHelper.updateBusinessObject(element, constraint, value);\n    },\n    removeElement: function(element, node, idx) {\n      var commands = [],\n          formField = getSelectedFormField(element, node),\n          constraints = formHelper.getConstraints(formField),\n          currentConstraint = constraints[idx];\n\n      commands.push(cmdHelper.removeElementsFromList(\n        element,\n        formField.validation,\n        'constraints',\n        null,\n        [ currentConstraint ]\n      ));\n\n      if (constraints.length === 1) {\n\n        // remove camunda:validation if the last existing constraint has been removed\n        commands.push(cmdHelper.updateBusinessObject(element, formField, { validation: undefined }));\n      }\n\n      return commands;\n    },\n    show: function(element, node) {\n      return !!getSelectedFormField(element, node);\n    }\n  }));\n\n  // [FormData] Properties label\n  group.entries.push(entryFactory.label({\n    id: 'form-field-properties-header',\n    labelText: translate('Properties'),\n    divider: true,\n    showLabel: function(element, node) {\n      return !!getSelectedFormField(element, node);\n    }\n  }));\n\n  // [FormData] camunda:properties table\n  group.entries.push(properties(element, bpmnFactory, {\n    id: 'form-field-properties',\n    modelProperties: [ 'id', 'value' ],\n    labels: [ translate('Id'), translate('Value') ],\n    getParent: function(element, node) {\n      return getSelectedFormField(element, node);\n    },\n    show: function(element, node) {\n      return !!getSelectedFormField(element, node);\n    }\n  }, translate));\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/FormProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js":
  /*!****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js ***!
    \****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar historyTimeToLive = __webpack_require__(/*! ./implementation/HistoryTimeToLive */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n  var businessObject = getBusinessObject(element);\n\n  if (is(element, 'camunda:Process') ||\n      is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n    group.entries = group.entries.concat(historyTimeToLive(element, bpmnFactory, {\n      getBusinessObject: function(element) {\n        var bo = getBusinessObject(element);\n\n        if (!is(bo, 'bpmn:Participant')) {\n          return bo;\n        }\n\n        return bo.get('processRef');\n      }\n    }, translate));\n\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/HistoryTimeToLiveProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js":
  /*!**************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js ***!
    \**************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar inputParameters = __webpack_require__(/*! ./implementation/InputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (template) {\n    return;\n  }\n\n  var inputParametersEntry = inputParameters(element, bpmnFactory, {}, translate);\n\n  group.entries = group.entries.concat(inputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/InputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar jobPriority = __webpack_require__(/*! ./implementation/JobPriority */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js\"),\n    jobRetryTimeCycle = __webpack_require__(/*! ./implementation/JobRetryTimeCycle */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n  var businessObject = getBusinessObject(element);\n\n  if (is(element, 'camunda:JobPriorized') ||\n      is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\n\n    group.entries = group.entries.concat(jobPriority(element, bpmnFactory, {\n      getBusinessObject: function(element) {\n        var bo = getBusinessObject(element);\n\n        if (!is(bo, 'bpmn:Participant')) {\n          return bo;\n        }\n\n        return bo.get('processRef');\n      }\n    }, translate));\n  }\n\n  if (is(element, 'camunda:AsyncCapable')) {\n    group.entries = group.entries.concat(jobRetryTimeCycle(element, bpmnFactory, {\n      getBusinessObject: getBusinessObject\n    }, translate));\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/JobConfigurationProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js":
  /*!*************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js ***!
    \*************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar find = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").find;\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n    scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\"),\n    timerImplementation = __webpack_require__(/*! ../../bpmn/parts/implementation/TimerEventDefinition */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/TimerEventDefinition.js\");\n\nmodule.exports = function(group, element, bpmnFactory, options, translate) {\n\n  var LISTENER_TYPE_LABEL = {\n    class: translate('Java Class'),\n    expression: translate('Expression'),\n    delegateExpression: translate('Delegate Expression'),\n    script: translate('Script')\n  };\n\n  options = options || {};\n\n  var getSelectedListener = options.getSelectedListener;\n\n  var classProp = 'class',\n      expressionProp = 'expression',\n      delegateExpressionProp = 'delegateExpression',\n      scriptProp = 'script';\n\n  var executionListenerEventTypeOptions = ImplementationTypeHelper.isSequenceFlow(element) ? [\n    { name: translate('take'), value: 'take' }\n  ] : [\n    { name: translate('start'), value: 'start' },\n    { name: translate('end'), value: 'end' }\n  ];\n\n  var taskListenerEventTypeOptions = [\n    { name: translate('create'), value: 'create' },\n    { name: translate('assignment'), value: 'assignment' },\n    { name: translate('complete'), value: 'complete' },\n    { name: translate('delete'), value: 'delete' },\n    { name: translate('update'), value: 'update' },\n    { name: translate('timeout'), value: 'timeout' }\n  ];\n\n  var isSelected = function(element, node) {\n    return getSelectedListener(element, node);\n  };\n\n\n  // eventType ////////////////\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: 'listener-event-type',\n    label: translate('Event Type'),\n    modelProperty: 'eventType',\n    emptyParameter: false,\n\n    get: function(element, node) {\n\n      var listener = getSelectedListener(element, node);\n\n      var eventType = listener && listener.get('event');\n\n      return {\n        eventType: eventType\n      };\n    },\n\n    set: function(element, values, node) {\n      var eventType = values.eventType,\n          listener = getSelectedListener(element, node),\n          eventDefinitions = listener && listener.eventDefinitions;\n\n      // ensure only timeout events can have timer event definitions\n      if (eventDefinitions && eventType !== 'timeout') {\n        eventDefinitions = [];\n      }\n\n      return cmdHelper.updateBusinessObject(element, listener,\n        {\n          event: eventType,\n          eventDefinitions: eventDefinitions\n        }\n      );\n    },\n\n    selectOptions: function(element, node) {\n      var eventTypeOptions;\n\n      var selectedListener = getSelectedListener(element, node);\n      if (ImplementationTypeHelper.isTaskListener(selectedListener)) {\n        eventTypeOptions = taskListenerEventTypeOptions;\n      } else if (ImplementationTypeHelper.isExecutionListener(selectedListener)) {\n        eventTypeOptions = executionListenerEventTypeOptions;\n      }\n\n      return eventTypeOptions;\n\n    },\n\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n\n  }));\n\n\n  // listenerId ///////////////\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'listener-id',\n    label: translate('Listener Id'),\n    modelProperty: 'listenerId',\n\n    get: function(element, node) {\n      var value = {},\n          listener = getSelectedListener(element, node);\n\n      value.listenerId = (listener && listener.get('id')) || undefined;\n\n      return value;\n    },\n\n    set: function(element, values, node) {\n      var update = {},\n          listener = getSelectedListener(element, node);\n\n      update['id'] = values.listenerId || '';\n\n      return cmdHelper.updateBusinessObject(element, listener, update);\n    },\n\n    hidden: function(element, node) {\n      var listener = getSelectedListener(element, node);\n\n      return !ImplementationTypeHelper.isTaskListener(listener);\n    },\n\n    validate: function(element, values, node) {\n      var value = values.listenerId,\n          listener = getSelectedListener(element, node),\n          validate = {};\n\n      if (!value && isTimeoutTaskListener(listener)) {\n        validate.listenerId = translate('Must provide a value for timeout task listener');\n      }\n\n      return validate;\n    }\n\n  }));\n\n\n  // listenerType ///////////////\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: 'listener-type',\n    label: translate('Listener Type'),\n    selectOptions: [\n      { value: classProp, name: translate('Java Class') },\n      { value: expressionProp, name: translate('Expression') },\n      { value: delegateExpressionProp, name: translate('Delegate Expression') },\n      { value: scriptProp, name: translate('Script') }\n    ],\n    modelProperty: 'listenerType',\n    emptyParameter: false,\n\n    get: function(element, node) {\n      var listener = getSelectedListener(element, node);\n      return {\n        listenerType: ImplementationTypeHelper.getImplementationType(listener)\n      };\n    },\n\n    set: function(element, values, node) {\n      var listener = getSelectedListener(element, node),\n          listenerType = values.listenerType || undefined,\n          update = {};\n\n      update[classProp] = listenerType === classProp ? '' : undefined;\n      update[expressionProp] = listenerType === expressionProp ? '' : undefined;\n      update[delegateExpressionProp] = listenerType === delegateExpressionProp ? '' : undefined;\n      update[scriptProp] = listenerType === scriptProp ? bpmnFactory.create('camunda:Script') : undefined;\n\n      return cmdHelper.updateBusinessObject(element, listener, update);\n    },\n\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n\n  }));\n\n\n  // listenerValue //////////////\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'listener-value',\n    dataValueLabel: 'listenerValueLabel',\n    modelProperty: 'listenerValue',\n\n    get: function(element, node) {\n      var value = {},\n          listener = getSelectedListener(element, node),\n          listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n      value.listenerValueLabel = LISTENER_TYPE_LABEL[listenerType] || '';\n      value.listenerValue = (listener && listener.get(listenerType)) || undefined;\n\n      return value;\n    },\n\n    set: function(element, values, node) {\n      var update = {},\n          listener = getSelectedListener(element, node),\n          listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n      update[listenerType] = values.listenerValue || '';\n\n      return cmdHelper.updateBusinessObject(element, listener, update);\n    },\n\n    hidden: function(element, node) {\n      var listener = getSelectedListener(element, node);\n      return !listener || listener.script;\n    },\n\n    validate: function(element, values) {\n      var value = values.listenerValue,\n          validate = {};\n\n      if (!value) {\n        validate.listenerValue = translate('Must provide a value');\n      }\n\n      return validate;\n    }\n\n  }));\n\n\n  // script ////////////////////\n  var script = scriptImplementation('scriptFormat', 'value', true, translate);\n\n  group.entries.push({\n    id: 'listener-script-value',\n    html: '<div data-show=\"isScript\">' +\n            script.template +\n          '</div>',\n\n    get: function(element, node) {\n      var listener = getSelectedListener(element, node);\n      return listener && listener.script ? script.get(element, listener.script) : {};\n    },\n\n    set: function(element, values, node) {\n      var listener = getSelectedListener(element, node);\n      var update = script.set(element, values, listener);\n      return cmdHelper.updateBusinessObject(element, listener.script, update);\n    },\n\n    validate: function(element, values, node) {\n      var listener = getSelectedListener(element, node);\n      return listener && listener.script ? script.validate(element, values) : {};\n    },\n\n    isScript: function(element, node) {\n      var listener = getSelectedListener(element, node);\n      return listener && listener.script;\n    },\n\n    script: script\n\n  });\n\n\n  // timerEventDefinition //////\n  var timerEventDefinitionHandler = function(element, node) {\n    var listener = getSelectedListener(element, node);\n\n    if (!listener || !isTimeoutTaskListener(listener)) {\n      return;\n    }\n\n    var timerEventDefinition = getTimerEventDefinition(listener);\n\n    if (!timerEventDefinition) {\n      return false;\n    }\n\n    return timerEventDefinition;\n  };\n\n  function createTimerEventDefinition(element, node) {\n\n    var listener = getSelectedListener(element, node);\n\n    if (!listener || !isTimeoutTaskListener(listener)) {\n      return;\n    }\n\n    var eventDefinitions = listener.get('eventDefinitions') || [],\n        timerEventDefinition = bpmnFactory.create('bpmn:TimerEventDefinition');\n\n    eventDefinitions.push(timerEventDefinition);\n\n    listener.eventDefinitions = eventDefinitions;\n\n    return timerEventDefinition;\n  }\n\n  var timerOptions = {\n    idPrefix: 'listener-',\n    createTimerEventDefinition: createTimerEventDefinition\n  };\n\n  timerImplementation(group, element, bpmnFactory, timerEventDefinitionHandler, translate, timerOptions);\n\n};\n\n\n// helpers //////////////\n\nfunction isTimeoutTaskListener(listener) {\n  var eventType = listener && listener.event;\n  return eventType === 'timeout';\n}\n\nfunction getTimerEventDefinition(bo) {\n  var eventDefinitions = bo.eventDefinitions || [];\n\n  return find(eventDefinitions, function(event) {\n    return is(event, 'bpmn:TimerEventDefinition');\n  });\n\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerDetailProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js":
  /*!*********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js ***!
    \*********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar fieldInjection = __webpack_require__(/*! ./implementation/FieldInjection */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js\");\n\nmodule.exports = function(group, element, bpmnFactory, options, translate) {\n\n  options = assign({\n    idPrefix: 'listener-',\n    insideListener: true\n  }, options);\n\n  var fieldInjectionEntry = fieldInjection(element, bpmnFactory, translate, options);\n\n  if (fieldInjectionEntry && fieldInjectionEntry.length > 0) {\n    group.entries = group.entries.concat(fieldInjectionEntry);\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerFieldInjectionProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js":
  /*!*******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js ***!
    \*******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar listener = __webpack_require__(/*! ./implementation/Listener */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js\");\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var listenerEntry = listener(element, bpmnFactory, {}, translate);\n\n  group.entries = group.entries.concat(listenerEntry.entries);\n\n  return {\n    getSelectedListener: listenerEntry.getSelectedListener\n  };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ListenerProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js":
  /*!****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js ***!
    \****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar multiInstanceLoopCharacteristics = __webpack_require__(/*! ./implementation/MultiInstanceLoopCharacteristics */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js\");\n\nvar jobRetryTimeCycle = __webpack_require__(/*! ./implementation/JobRetryTimeCycle */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js\"),\n    asyncContinuation = __webpack_require__(/*! ./implementation/AsyncContinuation */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js\");\n\n\nfunction getLoopCharacteristics(element) {\n  var bo = getBusinessObject(element);\n  return bo.loopCharacteristics;\n}\n\n\nfunction ensureMultiInstanceSupported(element) {\n  var loopCharacteristics = getLoopCharacteristics(element);\n  return !!loopCharacteristics && is(loopCharacteristics, 'camunda:Collectable');\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  if (!ensureMultiInstanceSupported(element)) {\n    return;\n  }\n\n  // multi instance properties\n  group.entries = group.entries.concat(multiInstanceLoopCharacteristics(element, bpmnFactory, translate));\n\n  // async continuation ///////////////////////////////////////////////////////\n  group.entries = group.entries.concat(asyncContinuation(element, bpmnFactory, {\n    getBusinessObject: getLoopCharacteristics,\n    idPrefix: 'multiInstance-',\n    labelPrefix: translate('Multi Instance ')\n  }, translate));\n\n\n  // retry time cycle //////////////////////////////////////////////////////////\n  group.entries = group.entries.concat(jobRetryTimeCycle(element, bpmnFactory, {\n    getBusinessObject: getLoopCharacteristics,\n    idPrefix: 'multiInstance-',\n    labelPrefix: translate('Multi Instance ')\n  }, translate));\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/MultiInstanceLoopProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar outputParameters = __webpack_require__(/*! ./implementation/OutputParameters */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js\");\n\nmodule.exports = function(group, element, bpmnFactory, elementTemplates, translate) {\n\n  var template = elementTemplates.get(element);\n\n  if (template) {\n    return;\n  }\n\n  var outputParametersEntry = outputParameters(element, bpmnFactory, {}, translate);\n\n  group.entries = group.entries.concat(outputParametersEntry.entries);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/OutputParametersProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar processVariables = __webpack_require__(/*! ./implementation/ProcessVariables */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js\");\n\nmodule.exports = function(group, element, translate) {\n  if (canHaveOverview(element)) {\n    var processVariablesEntries = processVariables(element, translate);\n\n    group.entries = group.entries.concat(processVariablesEntries);\n  }\n};\n\n\n// helpers //////////\n\nfunction canHaveOverview(element) {\n  var businessObject = getBusinessObject(element);\n\n  return (\n    isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) ||\n    (is(element, 'bpmn:Participant') && businessObject.get('processRef'))\n  );\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ProcessVariablesProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js ***!
    \*********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar properties = __webpack_require__(/*! ./implementation/Properties */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js\"),\n    elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var propertiesEntry = properties(element, bpmnFactory, {\n    id: 'properties',\n    modelProperties: [ 'name', 'value' ],\n    labels: [ translate('Name'), translate('Value') ],\n\n    getParent: function(element, node, bo) {\n      return bo.extensionElements;\n    },\n\n    createParent: function(element, bo) {\n      var parent = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n      var cmd = cmdHelper.updateBusinessObject(element, bo, { extensionElements: parent });\n      return {\n        cmd: cmd,\n        parent: parent\n      };\n    }\n  }, translate);\n\n  if (propertiesEntry) {\n    group.entries.push(propertiesEntry);\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/PropertiesProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js ***!
    \*********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    scriptImplementation = __webpack_require__(/*! ./implementation/Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n  var bo;\n\n  if (is(element, 'bpmn:ScriptTask')) {\n    bo = getBusinessObject(element);\n  }\n\n  if (!bo) {\n    return;\n  }\n\n  var script = scriptImplementation('scriptFormat', 'script', false, translate);\n  group.entries.push({\n    id: 'script-implementation',\n    label: translate('Script'),\n    html: script.template,\n\n    get: function(element) {\n      return script.get(element, bo);\n    },\n\n    set: function(element, values, containerElement) {\n      var properties = script.set(element, values, containerElement);\n\n      return cmdHelper.updateProperties(element, properties);\n    },\n\n    validate: function(element, values) {\n      return script.validate(element, values);\n    },\n\n    script : script,\n\n    cssClasses: ['bpp-textfield']\n\n  });\n\n  group.entries.push(entryFactory.textField(translate, {\n    id : 'scriptResultVariable',\n    label : translate('Result Variable'),\n    modelProperty : 'scriptResultVariable',\n\n    get: function(element, propertyName) {\n      var boResultVariable = bo.get('camunda:resultVariable');\n\n      return { scriptResultVariable : boResultVariable };\n    },\n\n    set: function(element, values, containerElement) {\n      return cmdHelper.updateProperties(element, {\n        'camunda:resultVariable': values.scriptResultVariable.length\n          ? values.scriptResultVariable\n          : undefined\n      });\n    }\n\n  }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ScriptTaskProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js":
  /*!******************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js ***!
    \******************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar ImplementationTypeHelper = __webpack_require__(/*! ../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\"),\n    InputOutputHelper = __webpack_require__(/*! ../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\");\n\nvar utils = __webpack_require__(/*! ../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n    escapeHTML = utils.escapeHTML,\n    triggerClickEvent = utils.triggerClickEvent;\n\nvar implementationType = __webpack_require__(/*! ./implementation/ImplementationType */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js\"),\n    delegate = __webpack_require__(/*! ./implementation/Delegate */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js\"),\n    external = __webpack_require__(/*! ./implementation/External */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js\"),\n    callable = __webpack_require__(/*! ./implementation/Callable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js\"),\n    resultVariable = __webpack_require__(/*! ./implementation/ResultVariable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n    domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes;\n\nfunction getImplementationType(element) {\n  return ImplementationTypeHelper.getImplementationType(element);\n}\n\nfunction getBusinessObject(element) {\n  return ImplementationTypeHelper.getServiceTaskLikeBusinessObject(element);\n}\n\nfunction isDmnCapable(element) {\n  return ImplementationTypeHelper.isDmnCapable(element);\n}\n\nfunction isExternalCapable(element) {\n  return ImplementationTypeHelper.isExternalCapable(element);\n}\n\nfunction isServiceTaskLike(element) {\n  return ImplementationTypeHelper.isServiceTaskLike(element);\n}\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  if (!isServiceTaskLike(getBusinessObject(element))) {\n    return;\n  }\n\n  var hasDmnSupport = isDmnCapable(element);\n  var hasExternalSupport = isExternalCapable(getBusinessObject(element));\n\n  // implementation type ////////////////////////////////////\n\n  group.entries = group.entries.concat(implementationType(element, bpmnFactory, {\n    getBusinessObject: getBusinessObject,\n    getImplementationType: getImplementationType,\n    hasDmnSupport: hasDmnSupport,\n    hasExternalSupport: hasExternalSupport,\n    hasServiceTaskLikeSupport: true\n  }, translate));\n\n\n  // delegate (class, expression, delegateExpression) //////////\n\n  group.entries = group.entries.concat(delegate(element, bpmnFactory, {\n    getBusinessObject: getBusinessObject,\n    getImplementationType: getImplementationType\n  }, translate));\n\n\n  // result variable /////////////////////////////////////////\n\n  group.entries = group.entries.concat(resultVariable(element, bpmnFactory, {\n    getBusinessObject: getBusinessObject,\n    getImplementationType: getImplementationType,\n    hideResultVariable: function(element, node) {\n      return getImplementationType(element) !== 'expression';\n    }\n  }, translate));\n\n  // external //////////////////////////////////////////////////\n\n  if (hasExternalSupport) {\n    group.entries = group.entries.concat(external(element, bpmnFactory, {\n      getBusinessObject: getBusinessObject,\n      getImplementationType: getImplementationType\n    }, translate));\n  }\n\n\n  // dmn ////////////////////////////////////////////////////////\n\n  if (hasDmnSupport) {\n    group.entries = group.entries.concat(callable(element, bpmnFactory, {\n      getCallableType: getImplementationType\n    }, translate));\n  }\n\n\n  // connector ////////////////////////////////////////////////\n\n  var isConnector = function(element) {\n    return getImplementationType(element) === 'connector';\n  };\n\n  group.entries.push(entryFactory.link(translate, {\n    id: 'configureConnectorLink',\n    buttonLabel: translate('Configure Connector'),\n    handleClick: function(element, node, event) {\n\n      var connectorTabEl = getTabNode(node, 'connector');\n\n      if (connectorTabEl) {\n        triggerClickEvent(connectorTabEl);\n      }\n\n      // suppress actual link click\n      return false;\n    },\n    showLink: function(element, node) {\n      var link = domQuery('a', node);\n      link.textContent = '';\n\n      domClasses(link).remove('bpp-error-message');\n\n      if (isConnector(element)) {\n        var connectorId = InputOutputHelper.getConnector(element).get('connectorId');\n        if (connectorId) {\n          link.textContent = translate('Configure Connector');\n        } else {\n          link.innerHTML = '<span class=\"bpp-icon-warning\"></span> ' + escapeHTML(translate('Must configure Connector'));\n          domClasses(link).add('bpp-error-message');\n        }\n\n        return true;\n      }\n\n      return false;\n    }\n  }));\n\n};\n\n\n\n// helpers ///////////////////////////\n\nfunction getTabNode(el, id) {\n  var containerEl = domClosest(el, '.bpp-properties-panel');\n\n  return domQuery('a[data-tab-target=\"' + id + '\"]', containerEl);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/ServiceTaskDelegateProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js":
  /*!*************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js ***!
    \*************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nmodule.exports = function(group, element, translate) {\n\n  var bo = getBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  if (is(element, 'camunda:Initiator') && !is(element.parent, 'bpmn:SubProcess')) {\n    group.entries.push(entryFactory.textField(translate, {\n      id: 'initiator',\n      label: translate('Initiator'),\n      modelProperty: 'initiator'\n    }));\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/StartEventInitiator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js":
  /*!*******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js ***!
    \*******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\r\n\r\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\r\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\r\n\r\nvar tasklist = __webpack_require__(/*! ./implementation/Tasklist */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js\");\r\n\r\nmodule.exports = function(group, element, bpmnFactory, translate) {\r\n  var businessObject = getBusinessObject(element);\r\n\r\n  if (is(element, 'camunda:Process') ||\r\n      is(element, 'bpmn:Participant') && businessObject.get('processRef')) {\r\n\r\n    group.entries = group.entries.concat(tasklist(element, bpmnFactory, {\r\n      getBusinessObject: function(element) {\r\n        var bo = getBusinessObject(element);\r\n\r\n        if (!is(bo, 'bpmn:Participant')) {\r\n          return bo;\r\n        }\r\n\r\n        return bo.get('processRef');\r\n      }\r\n    }, translate));\r\n\r\n  }\r\n};\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/TasklistProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js":
  /*!*******************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js ***!
    \*******************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n\nmodule.exports = function(group, element, translate) {\n  if (is(element, 'camunda:Assignable')) {\n\n    // Assignee\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'assignee',\n      label : translate('Assignee'),\n      modelProperty : 'assignee'\n    }));\n\n    // Candidate Users\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'candidateUsers',\n      label : translate('Candidate Users'),\n      modelProperty : 'candidateUsers'\n    }));\n\n    // Candidate Groups\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'candidateGroups',\n      label : translate('Candidate Groups'),\n      modelProperty : 'candidateGroups'\n    }));\n\n    // Due Date\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'dueDate',\n      description : translate('The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)'),\n      label : translate('Due Date'),\n      modelProperty : 'dueDate'\n    }));\n\n    // FollowUp Date\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'followUpDate',\n      description : translate('The follow up date as an EL expression (e.g. ${someDate} or an ' +\n                    'ISO date (e.g. 2015-06-26T09:54:00)'),\n      label : translate('Follow Up Date'),\n      modelProperty : 'followUpDate'\n    }));\n\n    // priority\n    group.entries.push(entryFactory.textField(translate, {\n      id : 'priority',\n      label : translate('Priority'),\n      modelProperty : 'priority'\n    }));\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/UserTaskProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js":
  /*!**************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js ***!
    \**************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar filter = __webpack_require__(/*! lodash/filter */ \"./node_modules/lodash/filter.js\");\n\nvar extensionElementsHelper = __webpack_require__(/*! ../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    eventDefinitionHelper = __webpack_require__(/*! ../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\");\n\nvar extensionElementsEntry = __webpack_require__(/*! ./implementation/ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\n/**\n  * return depend on parameter 'type' camunda:in or camunda:out extension elements\n  */\nfunction getCamundaInOutMappings(element, type) {\n  var bo = getBusinessObject(element);\n\n  var signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(bo);\n\n  return extensionElementsHelper.getExtensionElements(signalEventDefinition || bo, type);\n}\n\n/**\n  * return depend on parameter 'type' camunda:in or camunda:out extension elements\n  * with source or sourceExpression attribute\n  */\nfunction getVariableMappings(element, type) {\n  var camundaMappings = getCamundaInOutMappings(element, type);\n\n  return filter(camundaMappings, function(mapping) {\n    return !mapping.businessKey;\n  });\n}\n\nfunction getInOutType(mapping) {\n  var inOutType = 'source';\n\n  if (mapping.variables === 'all') {\n    inOutType = 'variables';\n  }\n  else if (typeof mapping.source !== 'undefined') {\n    inOutType = 'source';\n  }\n  else if (typeof mapping.sourceExpression !== 'undefined') {\n    inOutType = 'sourceExpression';\n  }\n\n  return inOutType;\n}\n\nvar CAMUNDA_IN_EXTENSION_ELEMENT = 'camunda:In',\n    CAMUNDA_OUT_EXTENSION_ELEMENT = 'camunda:Out';\n\nvar WHITESPACE_REGEX = /\\s/;\n\n\nmodule.exports = function(group, element, bpmnFactory, translate) {\n\n  var inOutTypeOptions = [\n    {\n      name: translate('Source'),\n      value: 'source'\n    },\n    {\n      name: translate('Source Expression'),\n      value: 'sourceExpression'\n    },\n    {\n      name: translate('All'),\n      value: 'variables'\n    }\n  ];\n\n  var signalEventDefinition = eventDefinitionHelper.getSignalEventDefinition(element);\n\n  if (!is(element, 'camunda:CallActivity') && !signalEventDefinition) {\n    return;\n  }\n\n  if (signalEventDefinition && !(isAny(element, [\n    'bpmn:IntermediateThrowEvent',\n    'bpmn:EndEvent'\n  ]))) {\n    return;\n  }\n\n  var isSelected = function(element, node) {\n    return !!getSelected(element, node);\n  };\n\n  var getSelected = function(element, node) {\n    var parentNode = node.parentNode;\n    var selection = inEntry.getSelected(element, parentNode);\n\n    var parameter = getVariableMappings(element, CAMUNDA_IN_EXTENSION_ELEMENT)[selection.idx];\n\n    if (!parameter && outEntry) {\n      selection = outEntry.getSelected(element, parentNode);\n      parameter = getVariableMappings(element, CAMUNDA_OUT_EXTENSION_ELEMENT)[selection.idx];\n    }\n\n    return parameter;\n  };\n\n  var setOptionLabelValue = function(type) {\n    return function(element, node, option, property, value, idx) {\n      var variableMappings = getVariableMappings(element, type);\n      var mappingValue = variableMappings[idx];\n      var label = (mappingValue.target || '<undefined>') + ' := ';\n      var mappingType = getInOutType(mappingValue);\n\n      if (mappingType === 'variables') {\n        label = 'all';\n      }\n      else if (mappingType === 'source') {\n        label = label + (mappingValue.source || '<empty>');\n      }\n      else if (mappingType === 'sourceExpression') {\n        label = label + (mappingValue.sourceExpression || '<empty>');\n      } else {\n        label = label + '<empty>';\n      }\n\n      option.text = label;\n    };\n  };\n\n  var newElement = function(type) {\n    return function(element, extensionElements, value) {\n      var newElem = elementHelper.createElement(type, { source: '' }, extensionElements, bpmnFactory);\n\n      return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]);\n    };\n  };\n\n  var removeElement = function(type) {\n    return function(element, extensionElements, value, idx) {\n      var variablesMappings= getVariableMappings(element, type);\n      var mapping = variablesMappings[idx];\n\n      if (mapping) {\n        return extensionElementsHelper\n          .removeEntry(signalEventDefinition || getBusinessObject(element), element, mapping);\n      }\n    };\n  };\n\n  // in mapping for source and sourceExpression ///////////////////////////////////////////////////////////////\n\n  var inEntry = extensionElementsEntry(element, bpmnFactory, {\n    id: 'variableMapping-in',\n    label: translate('In Mapping'),\n    modelProperty: 'source',\n    prefix: 'In',\n    idGeneration: false,\n    resizable: true,\n    businessObject: signalEventDefinition || getBusinessObject(element),\n\n    createExtensionElement: newElement(CAMUNDA_IN_EXTENSION_ELEMENT),\n    removeExtensionElement: removeElement(CAMUNDA_IN_EXTENSION_ELEMENT),\n\n    getExtensionElements: function(element) {\n      return getVariableMappings(element, CAMUNDA_IN_EXTENSION_ELEMENT);\n    },\n\n    onSelectionChange: function(element, node, event, scope) {\n      outEntry && outEntry.deselect(element, node.parentNode);\n    },\n\n    setOptionLabelValue: setOptionLabelValue(CAMUNDA_IN_EXTENSION_ELEMENT)\n  });\n  group.entries.push(inEntry);\n\n  // out mapping for source and sourceExpression ///////////////////////////////////////////////////////\n\n  if (!signalEventDefinition) {\n    var outEntry = extensionElementsEntry(element, bpmnFactory, {\n      id: 'variableMapping-out',\n      label: translate('Out Mapping'),\n      modelProperty: 'source',\n      prefix: 'Out',\n      idGeneration: false,\n      resizable: true,\n\n      createExtensionElement: newElement(CAMUNDA_OUT_EXTENSION_ELEMENT),\n      removeExtensionElement: removeElement(CAMUNDA_OUT_EXTENSION_ELEMENT),\n\n      getExtensionElements: function(element) {\n        return getVariableMappings(element, CAMUNDA_OUT_EXTENSION_ELEMENT);\n      },\n\n      onSelectionChange: function(element, node, event, scope) {\n        inEntry.deselect(element, node.parentNode);\n      },\n\n      setOptionLabelValue: setOptionLabelValue(CAMUNDA_OUT_EXTENSION_ELEMENT)\n    });\n    group.entries.push(outEntry);\n  }\n\n  // label for selected mapping ///////////////////////////////////////////////////////\n\n  group.entries.push(entryFactory.label({\n    id: 'variableMapping-typeLabel',\n    get: function(element, node) {\n      var mapping = getSelected(element, node);\n\n      var value = '';\n      if (is(mapping, CAMUNDA_IN_EXTENSION_ELEMENT)) {\n        value = translate('In Mapping');\n      }\n      else if (is(mapping, CAMUNDA_OUT_EXTENSION_ELEMENT)) {\n        value = translate('Out Mapping');\n      }\n\n      return {\n        label: value\n      };\n    },\n\n    showLabel: function(element, node) {\n      return isSelected(element, node);\n    }\n  }));\n\n\n  group.entries.push(entryFactory.selectBox(translate, {\n    id: 'variableMapping-inOutType',\n    label: translate('Type'),\n    selectOptions: inOutTypeOptions,\n    modelProperty: 'inOutType',\n    get: function(element, node) {\n      var mapping = getSelected(element, node) || {};\n      return {\n        inOutType: getInOutType(mapping)\n      };\n    },\n    set: function(element, values, node) {\n      var inOutType = values.inOutType;\n\n      var props = {\n        'source' : undefined,\n        'sourceExpression' : undefined,\n        'variables' : undefined\n      };\n\n      if (inOutType === 'source') {\n        props.source = '';\n      }\n      else if (inOutType === 'sourceExpression') {\n        props.sourceExpression = '';\n      }\n      else if (inOutType === 'variables') {\n        props.variables = 'all';\n        props.target = undefined;\n      }\n\n      var mapping = getSelected(element, node);\n      return cmdHelper.updateBusinessObject(element, mapping, props);\n    },\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n\n  }));\n\n\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'variableMapping-source',\n    dataValueLabel: 'sourceLabel',\n    modelProperty: 'source',\n    get: function(element, node) {\n      var mapping = getSelected(element, node) || {};\n\n      var label = '';\n      var inOutType = getInOutType(mapping);\n      if (inOutType === 'source') {\n        label = translate('Source');\n      }\n      else if (inOutType === 'sourceExpression') {\n        label = translate('Source Expression');\n      }\n\n      return {\n        source: mapping[inOutType],\n        sourceLabel: label\n      };\n    },\n    set: function(element, values, node) {\n      values.source = values.source || undefined;\n\n      var mapping = getSelected(element, node);\n      var inOutType = getInOutType(mapping);\n\n      var props = {};\n      props[inOutType] = values.source || '';\n\n      return cmdHelper.updateBusinessObject(element, mapping, props);\n    },\n\n    // one of both (source or sourceExpression) must have a value to make\n    // the configuration easier and more understandable\n    // it is not engine conform\n    validate: function(element, values, node) {\n      var mapping = getSelected(element, node);\n\n      var validation = {};\n      if (mapping) {\n        if (!values.source) {\n          validation.source =\n          validation.source = values.sourceLabel ?\n            translate('Mapping must have a {value}', { value: values.sourceLabel.toLowerCase() }) :\n            translate('Mapping must have a value');\n        }\n\n        var inOutType = getInOutType(mapping);\n\n        if (WHITESPACE_REGEX.test(values.source) && inOutType !== 'sourceExpression') {\n          validation.source = translate('{label} must not contain whitespace', { label: values.sourceLabel });\n        }\n      }\n\n      return validation;\n    },\n    hidden: function(element, node) {\n      var selectedMapping = getSelected(element, node);\n      return !selectedMapping || (selectedMapping && selectedMapping.variables);\n    }\n  }));\n\n\n  group.entries.push(entryFactory.textField(translate, {\n    id: 'variableMapping-target',\n    label: translate('Target'),\n    modelProperty: 'target',\n    get: function(element, node) {\n      return {\n        target: (getSelected(element, node) || {}).target\n      };\n    },\n    set: function(element, values, node) {\n      values.target = values.target || undefined;\n      var mapping = getSelected(element, node);\n      return cmdHelper.updateBusinessObject(element, mapping, values);\n    },\n    validate: function(element, values, node) {\n      var mapping = getSelected(element, node);\n\n      var validation = {};\n      if (mapping) {\n        var mappingType = getInOutType(mapping);\n\n        if (!values.target && mappingType !== 'variables') {\n          validation.target = translate('Mapping must have a target');\n        }\n\n        if (values.target\n          && WHITESPACE_REGEX.test(values.target)\n          && mappingType !== 'variables') {\n          validation.target = translate('Target must not contain whitespace');\n        }\n      }\n\n      return validation;\n    },\n    hidden: function(element, node) {\n      var selectedMapping = getSelected(element, node);\n      return !selectedMapping || (selectedMapping && selectedMapping.variables);\n    }\n  }));\n\n\n  group.entries.push(entryFactory.checkbox(translate, {\n    id: 'variableMapping-local',\n    label: translate('Local'),\n    modelProperty: 'local',\n    get: function(element, node) {\n      return {\n        local: (getSelected(element, node) || {}).local\n      };\n    },\n    set: function(element, values, node) {\n      values.local = values.local || false;\n      var mapping = getSelected(element, node);\n      return cmdHelper.updateBusinessObject(element, mapping, values);\n    },\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n  }));\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VariableMappingProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js ***!
    \*********************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nmodule.exports = function(group, element, translate) {\n\n  var bo = getBusinessObject(element);\n\n  if (!bo) {\n    return;\n  }\n\n  if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && bo.get('processRef')) {\n    var versionTagEntry = entryFactory.textField(translate, {\n      id: 'versionTag',\n      label: translate('Version Tag'),\n      modelProperty: 'versionTag'\n    });\n\n    // in participants we have to change the default behavior of set and get\n    if (is(element, 'bpmn:Participant')) {\n      versionTagEntry.get = function(element) {\n        var processBo = bo.get('processRef');\n\n        return {\n          versionTag: processBo.get('camunda:versionTag')\n        };\n      };\n\n      versionTagEntry.set = function(element, values) {\n        var processBo = bo.get('processRef');\n\n        return cmdHelper.updateBusinessObject(element, processBo, {\n          'camunda:versionTag': values.versionTag || undefined\n        });\n      };\n    }\n\n    group.entries.push(versionTagEntry);\n\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/VersionTagProps.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\"),\n    eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction isAsyncBefore(bo) {\n  return asyncCapableHelper.isAsyncBefore(bo);\n}\n\nfunction isAsyncAfter(bo) {\n  return asyncCapableHelper.isAsyncAfter(bo);\n}\n\nfunction isExclusive(bo) {\n  return asyncCapableHelper.isExclusive(bo);\n}\n\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n  return asyncCapableHelper.removeFailedJobRetryTimeCycle(bo, element);\n}\n\nfunction canRemoveFailedJobRetryTimeCycle(element) {\n  return !eventDefinitionHelper.getTimerEventDefinition(element);\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var idPrefix = options.idPrefix || '',\n      labelPrefix = options.labelPrefix || '';\n\n\n  var asyncBeforeEntry = entryFactory.checkbox(translate, {\n    id: idPrefix + 'asyncBefore',\n    label: labelPrefix + translate('Asynchronous Before'),\n    modelProperty: 'asyncBefore',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return {\n        asyncBefore: isAsyncBefore(bo)\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      var asyncBefore = !!values.asyncBefore;\n\n      var props = {\n        'camunda:asyncBefore': asyncBefore,\n        'camunda:async': false\n      };\n\n      var commands = [];\n      if (!isAsyncAfter(bo) && !asyncBefore) {\n        props = assign({ 'camunda:exclusive' : true }, props);\n        if (canRemoveFailedJobRetryTimeCycle(element)) {\n          commands.push(removeFailedJobRetryTimeCycle(bo, element));\n        }\n      }\n\n      commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n      return commands;\n    }\n  });\n\n\n  var asyncAfterEntry = entryFactory.checkbox(translate, {\n    id: idPrefix + 'asyncAfter',\n    label: labelPrefix + translate('Asynchronous After'),\n    modelProperty: 'asyncAfter',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return {\n        asyncAfter: isAsyncAfter(bo)\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      var asyncAfter = !!values.asyncAfter;\n\n      var props = {\n        'camunda:asyncAfter': asyncAfter\n      };\n\n      var commands = [];\n      if (!isAsyncBefore(bo) && !asyncAfter) {\n        props = assign({ 'camunda:exclusive' : true }, props);\n        if (canRemoveFailedJobRetryTimeCycle(element)) {\n          commands.push(removeFailedJobRetryTimeCycle(bo, element));\n        }\n      }\n\n      commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n      return commands;\n    }\n  });\n\n\n  var exclusiveEntry = entryFactory.checkbox(translate, {\n    id: idPrefix + 'exclusive',\n    label: labelPrefix + translate('Exclusive'),\n    modelProperty: 'exclusive',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return { exclusive: isExclusive(bo) };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, { 'camunda:exclusive': !!values.exclusive });\n    },\n\n    hidden: function(element) {\n      var bo = getBusinessObject(element);\n      return bo && !isAsyncAfter(bo) && !isAsyncBefore(bo);\n    }\n  });\n\n  return [ asyncBeforeEntry, asyncAfterEntry, exclusiveEntry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/AsyncContinuation.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js":
  /*!*****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js ***!
    \*****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\");\n\n\nvar resultVariable = __webpack_require__(/*! ./ResultVariable */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js\");\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar attributeInfo = {\n  bpmn: {\n    element: 'calledElement',\n    binding: 'camunda:calledElementBinding',\n    version: 'camunda:calledElementVersion',\n    versionTag: 'camunda:calledElementVersionTag',\n    tenantId: 'camunda:calledElementTenantId'\n  },\n\n  cmmn: {\n    element: 'camunda:caseRef',\n    binding: 'camunda:caseBinding',\n    version: 'camunda:caseVersion',\n    tenantId: 'camunda:caseTenantId'\n  },\n\n  dmn: {\n    element: 'camunda:decisionRef',\n    binding: 'camunda:decisionRefBinding',\n    version: 'camunda:decisionRefVersion',\n    versionTag: 'camunda:decisionRefVersionTag',\n    tenantId: 'camunda:decisionRefTenantId'\n  }\n};\n\nvar mapDecisionResultOptions = [\n  {\n    name: 'singleEntry (TypedValue)',\n    value: 'singleEntry'\n  },\n  {\n    name:'singleResult (Map<String, Object>)',\n    value:'singleResult'\n  },\n  {\n    name:'collectEntries (List<Object>)',\n    value:'collectEntries'\n  },\n  {\n    name:'resultList (List<Map<String, Object>>)',\n    value:'resultList'\n  }\n];\n\nvar delegateVariableMappingOptions = [\n  {\n    name: 'variableMappingClass',\n    value: 'variableMappingClass'\n  },\n  {\n    name: 'variableMappingDelegateExpression',\n    value: 'variableMappingDelegateExpression'\n  }\n];\n\nfunction getCamundaInWithBusinessKey(element) {\n  var camundaIn = [],\n      bo = getBusinessObject(element);\n\n  var camundaInParams = extensionElementsHelper.getExtensionElements(bo, 'camunda:In');\n\n  forEach(camundaInParams, function(param) {\n    if (param.businessKey !== undefined) {\n      camundaIn.push(param);\n    }\n  });\n\n  return camundaIn;\n}\n\nfunction setBusinessKey(element, text, bpmnFactory) {\n  var commands = [];\n\n  var camundaInWithBusinessKey = getCamundaInWithBusinessKey(element);\n\n  if (camundaInWithBusinessKey.length) {\n    commands.push(cmdHelper.updateBusinessObject(element, camundaInWithBusinessKey[0], {\n      businessKey: text\n    }));\n  } else {\n    var bo = getBusinessObject(element),\n        extensionElements = bo.extensionElements;\n\n    if (!extensionElements) {\n      extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n      commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));\n    }\n\n    var camundaIn = elementHelper.createElement(\n      'camunda:In',\n      { 'businessKey': text },\n      extensionElements,\n      bpmnFactory\n    );\n\n    commands.push(cmdHelper.addAndRemoveElementsFromList(\n      element,\n      extensionElements,\n      'values',\n      'extensionElements',\n      [ camundaIn ],[]\n    ));\n  }\n\n  return commands;\n}\n\nfunction deleteBusinessKey(element) {\n  var camundaInExtensions = getCamundaInWithBusinessKey(element);\n  var commands = [];\n  forEach(camundaInExtensions, function(elem) {\n    commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, elem));\n  });\n  return commands;\n}\n\nfunction isSupportedCallableType(type) {\n  return [ 'bpmn', 'cmmn', 'dmn' ].indexOf(type) !== -1;\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var bindingOptions = [\n    {\n      name: translate('latest'),\n      value: 'latest'\n    },\n    {\n      name: translate('deployment'),\n      value: 'deployment'\n    },\n    {\n      name: translate('version'),\n      value: 'version'\n    },\n    {\n      name: translate('versionTag'),\n      value: 'versionTag'\n    }\n  ];\n\n  var getCallableType = options.getCallableType;\n\n  var entries = [];\n\n  function getAttribute(element, prop) {\n    var type = getCallableType(element);\n    return (attributeInfo[type] || {})[prop];\n  }\n\n  function getCallActivityBindingValue(element) {\n    var type = getCallableType(element);\n    var bo = getBusinessObject(element);\n    var attr = (attributeInfo[type] || {}).binding;\n    return bo.get(attr);\n  }\n\n  function getDelegateVariableMappingType(element) {\n    var bo = getBusinessObject(element);\n\n    var boVariableMappingClass = bo.get('camunda:variableMappingClass'),\n        boVariableMappingDelegateExpression = bo.get('camunda:variableMappingDelegateExpression');\n\n    var delegateVariableMappingType = '';\n    if (typeof boVariableMappingClass !== 'undefined') {\n      delegateVariableMappingType = 'variableMappingClass';\n    } else\n\n    if (typeof boVariableMappingDelegateExpression !== 'undefined') {\n      delegateVariableMappingType = 'variableMappingDelegateExpression';\n    }\n\n    return delegateVariableMappingType;\n  }\n\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'callable-element-ref',\n    dataValueLabel: 'callableElementLabel',\n    modelProperty: 'callableElementRef',\n\n    get: function(element, node) {\n      var callableElementRef;\n\n      var attr = getAttribute(element, 'element');\n      if (attr) {\n        var bo = getBusinessObject(element);\n        callableElementRef = bo.get(attr);\n      }\n\n      var label = '';\n      var type = getCallableType(element);\n      if (type === 'bpmn') {\n        label = translate('Called Element');\n      }\n      else if (type === 'cmmn') {\n        label = translate('Case Ref');\n      }\n      else if (type === 'dmn') {\n        label = translate('Decision Ref');\n      }\n\n      return {\n        callableElementRef: callableElementRef,\n        callableElementLabel: label\n      };\n    },\n\n    set: function(element, values, node) {\n      var newCallableElementRef = values.callableElementRef;\n      var attr = getAttribute(element, 'element');\n\n      var props = {};\n      props[attr] = newCallableElementRef || '';\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    validate: function(element, values, node) {\n      var elementRef = values.callableElementRef;\n      var type = getCallableType(element);\n      return isSupportedCallableType(type) && !elementRef ? { callableElementRef: translate('Must provide a value') } : {};\n    },\n\n    hidden: function(element, node) {\n      return !isSupportedCallableType(getCallableType(element));\n    }\n\n  }));\n\n  entries.push(entryFactory.selectBox(translate, {\n    id: 'callable-binding',\n    label: translate('Binding'),\n    selectOptions: function(element) {\n      var type = getCallableType(element);\n      var options;\n\n      if (type === 'cmmn') {\n        options = bindingOptions.filter(function(bindingOption) {\n          return bindingOption.value !== 'versionTag';\n        });\n      } else {\n        options = bindingOptions;\n      }\n      return options;\n    },\n    modelProperty: 'callableBinding',\n\n    get: function(element, node) {\n      var callableBinding;\n\n      var attr = getAttribute(element, 'binding');\n      if (attr) {\n        var bo = getBusinessObject(element);\n        callableBinding = bo.get(attr) || 'latest';\n      }\n\n      return {\n        callableBinding: callableBinding\n      };\n    },\n\n    set: function(element, values, node) {\n      var binding = values.callableBinding;\n      var attr = getAttribute(element, 'binding'),\n          attrVer = getAttribute(element, 'version'),\n          attrVerTag = getAttribute(element, 'versionTag');\n\n      var props = {};\n      props[attr] = binding;\n\n      // set version and versionTag values always to undefined to delete the existing value\n      props[attrVer] = undefined;\n      props[attrVerTag] = undefined;\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    hidden: function(element, node) {\n      return !isSupportedCallableType(getCallableType(element));\n    }\n\n  }));\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'callable-version',\n    label: translate('Version'),\n    modelProperty: 'callableVersion',\n\n    get: function(element, node) {\n      var callableVersion;\n\n      var attr = getAttribute(element, 'version');\n      if (attr) {\n        var bo = getBusinessObject(element);\n        callableVersion = bo.get(attr);\n      }\n\n      return {\n        callableVersion: callableVersion\n      };\n    },\n\n    set: function(element, values, node) {\n      var version = values.callableVersion;\n      var attr = getAttribute(element, 'version');\n\n      var props = {};\n      props[attr] = version || undefined;\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    validate: function(element, values, node) {\n      var version = values.callableVersion;\n\n      var type = getCallableType(element);\n      return (\n        isSupportedCallableType(type) &&\n        getCallActivityBindingValue(element) === 'version' && (\n          !version ? { callableVersion: translate('Must provide a value') } : {}\n        )\n      );\n    },\n\n    hidden: function(element, node) {\n      var type = getCallableType(element);\n      return !isSupportedCallableType(type) || getCallActivityBindingValue(element) !== 'version';\n    }\n\n  }));\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'callable-version-tag',\n    label: translate('Version Tag'),\n    modelProperty: 'versionTag',\n\n    get: function(element, node) {\n      var versionTag;\n\n      var attr = getAttribute(element, 'versionTag');\n\n      if (attr) {\n        var bo = getBusinessObject(element);\n\n        versionTag = bo.get(attr);\n      }\n\n      return {\n        versionTag: versionTag\n      };\n    },\n\n    set: function(element, values, node) {\n      var versionTag = values.versionTag;\n\n      var attr = getAttribute(element, 'versionTag');\n\n      var props = {};\n\n      props[attr] = versionTag || undefined;\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    validate: function(element, values, node) {\n      var versionTag = values.versionTag;\n\n      var type = getCallableType(element);\n\n      return (\n        isSupportedCallableType(type) &&\n        getCallActivityBindingValue(element) === 'versionTag' && (\n          !versionTag ? { versionTag: translate('Must provide a value') } : {}\n        )\n      );\n    },\n\n    hidden: function(element, node) {\n      var type = getCallableType(element);\n\n      return !isSupportedCallableType(type) || getCallActivityBindingValue(element) !== 'versionTag';\n    }\n\n  }));\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'tenant-id',\n    label: translate('Tenant Id'),\n    modelProperty: 'tenantId',\n\n    get: function(element, node) {\n      var tenantId;\n\n      var attr = getAttribute(element, 'tenantId');\n      if (attr) {\n        var bo = getBusinessObject(element);\n        tenantId = bo.get(attr);\n      }\n\n      return {\n        tenantId: tenantId\n      };\n    },\n\n    set: function(element, values, node) {\n      var tenantId = values.tenantId;\n      var attr = getAttribute(element, 'tenantId');\n\n      var props = {};\n      props[attr] = tenantId || undefined;\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    hidden: function(element, node) {\n      var type = getCallableType(element);\n      return !isSupportedCallableType(type);\n    }\n\n  }));\n\n  if (is(getBusinessObject(element), 'bpmn:CallActivity')) {\n    entries.push(entryFactory.checkbox(translate, {\n      id: 'callable-business-key',\n      label: translate('Business Key'),\n      modelProperty: 'callableBusinessKey',\n\n      get: function(element, node) {\n        var camundaIn = getCamundaInWithBusinessKey(element);\n\n        return {\n          callableBusinessKey: !!(camundaIn && camundaIn.length > 0)\n        };\n      },\n\n      set: function(element, values, node) {\n        if (values.callableBusinessKey) {\n          return setBusinessKey(element, '#{execution.processBusinessKey}', bpmnFactory);\n        } else {\n          return deleteBusinessKey(element);\n        }\n      }\n    }));\n  }\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'business-key-expression',\n    label: translate('Business Key Expression'),\n    modelProperty: 'businessKey',\n\n    get: function(element, node) {\n      var camundaInWithBusinessKey = getCamundaInWithBusinessKey(element);\n\n      return {\n        businessKey: (\n          camundaInWithBusinessKey.length ?\n            camundaInWithBusinessKey[0].get('camunda:businessKey') :\n            undefined\n        )\n      };\n    },\n\n    set: function(element, values, node) {\n      var businessKey = values.businessKey;\n\n      return setBusinessKey(element, businessKey, bpmnFactory);\n    },\n\n    validate: function(element, values, node) {\n      var businessKey = values.businessKey;\n\n      return businessKey === '' ? { businessKey: translate('Must provide a value') } : {};\n    },\n\n    hidden: function(element, node) {\n      return !getCamundaInWithBusinessKey(element).length;\n    }\n\n  }));\n\n  entries = entries.concat(resultVariable(element, bpmnFactory, {\n    id: 'dmn-resultVariable',\n    getBusinessObject: getBusinessObject,\n    getImplementationType: getCallableType,\n    hideResultVariable: function(element, node) {\n      return getCallableType(element) !== 'dmn';\n    }\n  }, translate));\n\n  entries.push(entryFactory.selectBox(translate, {\n    id: 'dmn-map-decision-result',\n    label: translate('Map Decision Result'),\n    selectOptions: mapDecisionResultOptions,\n    modelProperty: 'mapDecisionResult',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return {\n        mapDecisionResult: bo.get('camunda:mapDecisionResult') || 'resultList'\n      };\n    },\n\n    set: function(element, values, node) {\n      return cmdHelper.updateProperties(element, {\n        'camunda:mapDecisionResult': values.mapDecisionResult || 'resultList'\n      });\n    },\n\n    hidden: function(element, node) {\n      var bo = getBusinessObject(element);\n      var resultVariable = bo.get('camunda:resultVariable');\n      return !(getCallableType(element) === 'dmn' && typeof resultVariable !== 'undefined');\n    }\n\n  }));\n\n\n  entries.push(entryFactory.selectBox(translate, {\n    id: 'delegateVariableMappingType',\n    label: translate('Delegate Variable Mapping'),\n    selectOptions: delegateVariableMappingOptions,\n    emptyParameter: true,\n    modelProperty: 'delegateVariableMappingType',\n\n    get: function(element, node) {\n      return {\n        delegateVariableMappingType : getDelegateVariableMappingType(element)\n      };\n    },\n\n    set: function(element, values, node) {\n      var delegateVariableMappingType = values.delegateVariableMappingType;\n\n      var props = {\n        'camunda:variableMappingClass' : undefined,\n        'camunda:variableMappingDelegateExpression' : undefined\n      };\n\n      if (delegateVariableMappingType === 'variableMappingClass') {\n        props['camunda:variableMappingClass'] = '';\n      }\n      else if (delegateVariableMappingType === 'variableMappingDelegateExpression') {\n        props['camunda:variableMappingDelegateExpression'] = '';\n      }\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    hidden: function(element, node) {\n      return (getCallableType(element) !== 'bpmn');\n    }\n\n  }));\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'delegateVariableMapping',\n    dataValueLabel: 'delegateVariableMappingLabel',\n    modelProperty: 'delegateVariableMapping',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n\n      var label = '';\n      var delegateVariableMapping = undefined;\n      var type = getDelegateVariableMappingType(element);\n\n      if (type === 'variableMappingClass') {\n        label = translate('Class');\n        delegateVariableMapping = bo.get('camunda:variableMappingClass');\n      }\n      else if (type === 'variableMappingDelegateExpression') {\n        label = translate('Delegate Expression');\n        delegateVariableMapping = bo.get('camunda:variableMappingDelegateExpression');\n      }\n\n      return {\n        delegateVariableMapping: delegateVariableMapping,\n        delegateVariableMappingLabel: label\n      };\n    },\n\n    set: function(element, values, node) {\n      var delegateVariableMapping = values.delegateVariableMapping;\n\n      var attr = 'camunda:' + getDelegateVariableMappingType(element);\n\n      var props = {};\n      props[attr] = delegateVariableMapping || undefined;\n\n      return cmdHelper.updateProperties(element, props);\n    },\n\n    validate: function(element, values, node) {\n      var delegateVariableMapping = values.delegateVariableMapping;\n      return (\n        getCallableType(element) === 'bpmn' && (\n          !delegateVariableMapping ? { delegateVariableMapping: translate('Must provide a value') } : {}\n        )\n      );\n    },\n\n    hidden: function(element, node) {\n      return !(getCallableType(element) === 'bpmn' && getDelegateVariableMappingType(element) !== '');\n    }\n\n  }));\n\n  return entries;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Callable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js":
  /*!*************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js ***!
    \*************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var candidateStarterGroupsEntry = entryFactory.textField(translate, {\n    id: 'candidateStarterGroups',\n    label: translate('Candidate Starter Groups'),\n    modelProperty: 'candidateStarterGroups',\n    description: translate('Specify more than one group as a comma separated list.'),\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      var candidateStarterGroups = bo.get('camunda:candidateStarterGroups');\n\n      return {\n        candidateStarterGroups: candidateStarterGroups ? candidateStarterGroups : ''\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:candidateStarterGroups': values.candidateStarterGroups || undefined\n      });\n    }\n\n  });\n\n  var candidateStarterUsersEntry = entryFactory.textField(translate, {\n    id: 'candidateStarterUsers',\n    label: translate('Candidate Starter Users'),\n    modelProperty: 'candidateStarterUsers',\n    description: translate('Specify more than one user as a comma separated list.'),\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      var candidateStarterUsers = bo.get('camunda:candidateStarterUsers');\n\n      return {\n        candidateStarterUsers: candidateStarterUsers ? candidateStarterUsers : ''\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:candidateStarterUsers': values.candidateStarterUsers || undefined\n      });\n    }\n\n  });\n\n  return [\n    candidateStarterGroupsEntry,\n    candidateStarterUsersEntry\n  ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/CandidateStarter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js":
  /*!*****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js ***!
    \*****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar DELEGATE_TYPES = [\n  'class',\n  'expression',\n  'delegateExpression'\n];\n\nvar PROPERTIES = {\n  class: 'camunda:class',\n  expression: 'camunda:expression',\n  delegateExpression: 'camunda:delegateExpression'\n};\n\nfunction isDelegate(type) {\n  return DELEGATE_TYPES.indexOf(type) !== -1;\n}\n\nfunction getAttribute(type) {\n  return PROPERTIES[type];\n}\n\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getImplementationType = options.getImplementationType,\n      getBusinessObject = options.getBusinessObject;\n\n  function getDelegationLabel(type) {\n    switch (type) {\n    case 'class':\n      return translate('Java Class');\n    case 'expression':\n      return translate('Expression');\n    case 'delegateExpression':\n      return translate('Delegate Expression');\n    default:\n      return '';\n    }\n  }\n\n  var delegateEntry = entryFactory.textField(translate, {\n    id: 'delegate',\n    label: translate('Value'),\n    dataValueLabel: 'delegationLabel',\n    modelProperty: 'delegate',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      var type = getImplementationType(element);\n      var attr = getAttribute(type);\n      var label = getDelegationLabel(type);\n      return {\n        delegate: bo.get(attr),\n        delegationLabel: label\n      };\n    },\n\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element);\n      var type = getImplementationType(element);\n      var attr = getAttribute(type);\n      var prop = {};\n      prop[attr] = values.delegate || '';\n      return cmdHelper.updateBusinessObject(element, bo, prop);\n    },\n\n    validate: function(element, values, node) {\n      return isDelegate(getImplementationType(element)) && !values.delegate ? { delegate: translate('Must provide a value') } : {};\n    },\n\n    hidden: function(element, node) {\n      return !isDelegate(getImplementationType(element));\n    }\n\n  });\n\n  return [ delegateEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Delegate.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js":
  /*!*****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js ***!
    \*****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ../../../bpmn/parts/implementation/ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nmodule.exports = function(\n    group, element, bpmnFactory, errorEventDefinition,\n    showErrorCodeVariable, showErrorMessageVariable, translate\n) {\n\n\n  var getValue = function(modelProperty) {\n    return function(element) {\n      var modelPropertyValue = errorEventDefinition.get('camunda:' + modelProperty);\n\n      return modelPropertyValue;\n    };\n  };\n\n  var setValue = function(modelProperty) {\n    return function(element, values) {\n      if (values[modelProperty] === '')\n        values[modelProperty] = undefined;\n\n      return cmdHelper.updateBusinessObject(element, errorEventDefinition, values);\n    };\n  };\n\n\n  group.entries = group.entries.concat(\n    elementReferenceProperty(element, errorEventDefinition, bpmnFactory, translate, {\n      id: 'error-element-message',\n      label: translate('Message'),\n      referenceProperty: 'errorRef',\n      modelProperty: 'errorMessage'\n    })\n  );\n\n  if (showErrorCodeVariable) {\n    group.entries.push(entryFactory.validationAwareTextField(translate, {\n      id: 'errorCodeVariable',\n      label: translate('Code Variable'),\n      modelProperty : 'errorCodeVariable',\n      description: translate('Define the name of the variable that will contain the error code'),\n\n      getProperty: getValue('errorCodeVariable'),\n      setProperty: setValue('errorCodeVariable'),\n\n      validate: function(element, values) {\n        var validation = {},\n            targetValue = values.errorCodeVariable;\n\n        if (utils.containsSpace(targetValue)) {\n          validation.errorCodeVariable = translate('Error code variable must not contain spaces.');\n        }\n\n        return validation;\n      }\n    }));\n  }\n\n  if (showErrorMessageVariable) {\n    group.entries.push(entryFactory.validationAwareTextField(translate, {\n      id: 'errorMessageVariable',\n      label: translate('Message Variable'),\n      modelProperty: 'errorMessageVariable',\n\n      getProperty: getValue('errorMessageVariable'),\n      setProperty: setValue('errorMessageVariable'),\n      description: translate('Define the name of the variable that will contain the error message'),\n\n      validate: function(element, values) {\n        var validation = {},\n            targetValue = values.errorMessageVariable;\n\n        if (utils.containsSpace(targetValue)) {\n          validation.errorMessageVariable = translate('Error message variable must not contain spaces.');\n        }\n\n        return validation;\n      }\n    }));\n  }\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorEventDefinition.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar ErrorsEntries = __webpack_require__(/*! ./ErrorsEntries */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  options = options || {};\n\n  var result = {};\n\n  var entries = result.entries = [];\n\n  entries.push(\n    getErrorsHeading(element, bpmnFactory, {\n      type: 'camunda:ErrorEventDefinition',\n      prop: 'errorEventDefinition',\n      prefix: 'Error'\n    }));\n\n  append(entries,\n    getErrorsEntries(element, bpmnFactory, {}, translate)\n  );\n\n  return result;\n};\n\nfunction getErrorsHeading(element, bpmnFactory, options) {\n  var prefix = options.prefix;\n\n  var entry = {\n    id: prefix + '-heading',\n    cssClasses: [ 'bpp-error' ],\n    html: '<div class=\"bpp-field-wrapper\">' +\n            '<button type=\"button\" class=\"bpp-error__add add action-button\" ' + 'data-action=\"createElement\">' +\n            '</button><input name=\"hidden\" type=\"hidden\">' +\n          '</div>'\n  };\n\n  entry.createElement = function(_, entryNode) {\n    var commands = createElement();\n\n    if (commands) {\n      scheduleCommands(commands, entryNode);\n      return true;\n    }\n  };\n\n  entry.set = function() {\n    var commands = entry._commands;\n\n    if (commands) {\n      delete entry._commands;\n      return commands;\n    }\n  };\n\n  function createElement() {\n    var commands = [];\n    var bo = getBusinessObject(element);\n    var extensionElements = bo.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n      commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n    }\n    var newElem = elementHelper.createElement('camunda:ErrorEventDefinition', {}, extensionElements, bpmnFactory);\n    commands.push(cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]));\n\n    return commands;\n  }\n\n  /**\n   * Schedule commands to be run with next `set` method call.\n   *\n   * @param {Array<any>} commands\n   * @param {HTMLElement} entryNode\n   */\n  function scheduleCommands(commands, entryNode) {\n    entry._commands = commands;\n\n    // @barmac: hack to make properties panel call `set`\n    var input = domQuery('input[type=\"hidden\"]', entryNode);\n    input.value = 1;\n  }\n\n  return entry;\n}\n\nfunction getErrors(bo) {\n  return extensionElementsHelper.getExtensionElements(bo, 'camunda:ErrorEventDefinition') || [];\n}\n\n\nfunction getErrorsEntries(element, bpmnFactory, options, translate) {\n  var idPrefix = options.idPrefix || '',\n      bo = getBusinessObject(element),\n      errorEventDefinitions = getErrors(bo),\n      extensionElements = bo.get('extensionElements'),\n      entries;\n\n  if (errorEventDefinitions && !errorEventDefinitions.length) {\n    var description = entryFieldDescription(translate, translate('No errors defined.'));\n\n    return [{\n      id: idPrefix + 'error-placeholder',\n      cssClasses: [ 'bpp-error-placeholder' ],\n      html: description\n    }];\n  }\n\n  var errorsEntries = errorEventDefinitions.map(function(definition, index) {\n\n    function onRemove() {\n      var commands = [];\n\n      commands.push(cmdHelper.removeElementsFromList(element, extensionElements, 'values', 'extensionElements', [definition]));\n      return commands;\n    }\n\n    return ErrorsEntries(definition, bpmnFactory, element,\n      {\n        idPrefix: idPrefix + 'error-' + index,\n        onRemove: onRemove,\n        onToggle: onToggle\n      }, translate);\n\n    /**\n     * Close remaining collapsible entries within group.\n     *\n     * @param {boolean} value\n     * @param {HTMLElement} entryNode\n     */\n    function onToggle(value, entryNode) {\n      if (!value) {\n        return;\n      }\n\n      var currentEntryId = entryNode.dataset.entry;\n\n      errorsEntries.forEach(function(entry) {\n        if (entry.entries[0].id === currentEntryId) {\n          return;\n        }\n\n        entry.setOpen(false);\n      });\n\n    }\n  });\n\n  entries = errorsEntries.map(function(input) {\n    return input.entries;\n  });\n\n  return flatten(entries);\n}\n\nfunction flatten(arrays) {\n  return Array.prototype.concat.apply([], arrays);\n}\n\nfunction append(array, items) {\n  Array.prototype.push.apply(array, items);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Errors.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js":
  /*!**********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js ***!
    \**********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar eventDefinitionReference = __webpack_require__(/*! ../../../bpmn/parts/implementation/EventDefinitionReference */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/EventDefinitionReference.js\"),\n    elementReferenceProperty = __webpack_require__(/*! ../../../bpmn/parts/implementation/ElementReferenceProperty */ \"./node_modules/bpmn-js-properties-panel/lib/provider/bpmn/parts/implementation/ElementReferenceProperty.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(error, bpmnFactory, element, options, translate) {\n\n  options = options || {};\n\n  var idPrefix = options.idPrefix || '';\n\n  var getError =\n    (options.getError && typeof options.getError === 'function') ?\n      function() {\n        return options.getError();\n      } :\n      function() {\n        return error;\n      };\n\n  var result = {},\n      entries = [];\n\n  result.entries = entries;\n\n  var getCollapsibleTitle = function() {\n    var error = getError();\n    var title = 'No Error referenced';\n\n    if (error.errorRef) {\n      title = error.errorRef.name;\n      if (error.errorRef.errorCode) {\n        title += ' (code = ' + error.errorRef.errorCode + ')';\n      }\n    }\n    return title;\n  };\n\n  // heading ////////////////////////////////////////////////////////\n  var collapsible = entryFactory.collapsible({\n    id: idPrefix + 'collapsible',\n    title: getCollapsibleTitle(),\n    description: getError().expression || '',\n    cssClasses: [ 'bpp-collapsible-error' ],\n    open: false,\n    onRemove: options.onRemove,\n    onToggle: options.onToggle,\n    get: function() {\n      return {\n        title: getCollapsibleTitle(),\n        description: getError().expression || '',\n      };\n    }\n  });\n\n  var isOpen = options.isOpen || collapsible.isOpen;\n\n  result.setOpen = function(value) {\n    var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n    collapsible.setOpen(value, entryNode);\n  };\n\n  entries.push(collapsible);\n\n  entries.push(entryFactory.validationAwareTextField(translate, {\n    id: idPrefix + 'error-expression',\n    label: translate('Throw Expression'),\n    modelProperty: 'expression',\n\n    getProperty: function(element, node) {\n      return error.expression;\n    },\n\n    setProperty: function(element, values, node) {\n      return cmdHelper.updateBusinessObject(element, error, values);\n    },\n\n    validate: function(element, values, node) {\n      var validation = {};\n      var expressionValue = values.expression;\n\n      if (!expressionValue) {\n        validation.expression = translate('Error must have an expression');\n      }\n\n      return validation;\n    },\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n\n  entries.push.apply(entries, eventDefinitionReference(element, error, bpmnFactory, {\n    id: idPrefix + 'error-reference',\n    label: translate('Global Error referenced'),\n    elementName: 'error',\n    elementType: 'bpmn:Error',\n    referenceProperty: 'errorRef',\n    newElementIdPrefix: 'Error_',\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n\n  entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n    id: idPrefix + 'error-element-name',\n    label: translate('Name'),\n    referenceProperty: 'errorRef',\n    modelProperty: 'name',\n    shouldValidate: true,\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n\n  entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n    id: idPrefix + 'error-element-code',\n    label: translate('Code'),\n    referenceProperty: 'errorRef',\n    modelProperty: 'errorCode',\n    shouldValidate: true,\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n\n  entries.push.apply(entries, elementReferenceProperty(element, error, bpmnFactory, translate, {\n    id: idPrefix + 'error-element-message',\n    label: translate('Message'),\n    referenceProperty: 'errorRef',\n    modelProperty: 'errorMessage',\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n  return result;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ErrorsEntries.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    domClosest = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").closest,\n    domify = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").domify,\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\"),\n    escapeHTML = utils.escapeHTML;\n\nfunction getSelectBox(node, id) {\n  var currentTab = domClosest(node, 'div.bpp-properties-tab');\n  var query = 'select[name=selectedExtensionElement]' + (id ? '[id=cam-extensionElements-' + id + ']' : '');\n  return domQuery(query, currentTab);\n}\n\nfunction getSelected(node, id) {\n  var selectBox = getSelectBox(node, id);\n  return {\n    value: (selectBox || {}).value,\n    idx: (selectBox || {}).selectedIndex\n  };\n}\n\nfunction generateElementId(prefix) {\n  prefix = prefix + '_';\n  return utils.nextId(prefix);\n}\n\nvar CREATE_EXTENSION_ELEMENT_ACTION = 'create-extension-element',\n    REMOVE_EXTENSION_ELEMENT_ACTION = 'remove-extension-element';\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var id = options.id,\n      prefix = options.prefix || 'elem',\n      label = options.label || id,\n      idGeneration = (options.idGeneration === false) ? options.idGeneration : true,\n      businessObject = options.businessObject || getBusinessObject(element);\n\n  var modelProperty = options.modelProperty || 'id';\n\n  var getElements = options.getExtensionElements;\n\n  var createElement = options.createExtensionElement,\n      canCreate = typeof createElement === 'function';\n\n  var removeElement = options.removeExtensionElement,\n      canRemove = typeof removeElement === 'function';\n\n  var onSelectionChange = options.onSelectionChange;\n\n  var hideElements = options.hideExtensionElements,\n      canBeHidden = typeof hideElements === 'function';\n\n  var setOptionLabelValue = options.setOptionLabelValue;\n\n  var defaultSize = options.size || 5,\n      resizable = options.resizable;\n\n  var reference = options.reference || undefined;\n\n  var selectionChanged = function(element, node, event, scope) {\n    if (typeof onSelectionChange === 'function') {\n      return onSelectionChange(element, node, event, scope);\n    }\n  };\n\n  var createOption = function(value) {\n    return '<option value=\"' + escapeHTML(value) + '\" data-value data-name=\"extensionElementValue\">' + escapeHTML(value) + '</option>';\n  };\n\n  var initSelectionSize = function(selectBox, optionsLength) {\n    if (resizable) {\n      selectBox.size = optionsLength > defaultSize ? optionsLength : defaultSize;\n    }\n  };\n\n  return {\n    id: id,\n    html: '<div class=\"bpp-row bpp-element-list\" ' +\n            (canBeHidden ? 'data-show=\"hideElements\"' : '') + '>' +\n            '<label for=\"cam-extensionElements-' + escapeHTML(id) + '\">' + escapeHTML(label) + '</label>' +\n            '<div class=\"bpp-field-wrapper\">' +\n              '<select id=\"cam-extensionElements-' + escapeHTML(id) + '\"' +\n                      'name=\"selectedExtensionElement\" ' +\n                      'size=\"' + escapeHTML(defaultSize) + '\" ' +\n                      'data-list-entry-container ' +\n                      'data-on-change=\"selectElement\">' +\n              '</select>' +\n              (canCreate ? '<button class=\"action-button add\" ' +\n                                   'id=\"cam-extensionElements-create-' + escapeHTML(id) + '\" ' +\n                                   'data-action=\"createElement\">' +\n                             '<span>+</span>' +\n                           '</button>' : '') +\n              (canRemove ? '<button class=\"action-button clear\" ' +\n                                   'id=\"cam-extensionElements-remove-' + escapeHTML(id) + '\" ' +\n                                   'data-action=\"removeElement\" ' +\n                                   'data-disable=\"disableRemove\">' +\n                             '<span>-</span>' +\n                           '</button>' : '') +\n            '</div>' +\n          '</div>',\n\n    get: function(element, node) {\n      var elements = getElements(element, node);\n\n      var result = [];\n      forEach(elements, function(elem) {\n        result.push({\n          extensionElementValue: elem.get(modelProperty)\n        });\n      });\n\n      var selectBox = getSelectBox(node.parentNode, id);\n      initSelectionSize(selectBox, result.length);\n\n      return result;\n    },\n\n    set: function(element, values, node) {\n      var action = this.__action;\n      delete this.__action;\n\n      businessObject = businessObject || getBusinessObject(element);\n\n      var bo =\n        (reference && businessObject.get(reference))\n          ? businessObject.get(reference)\n          : businessObject;\n\n      var extensionElements = bo.get('extensionElements');\n\n      if (action.id === CREATE_EXTENSION_ELEMENT_ACTION) {\n        var commands = [];\n        if (!extensionElements) {\n          extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n          commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n        }\n        commands.push(createElement(element, extensionElements, action.value, node));\n        return commands;\n\n      }\n      else if (action.id === REMOVE_EXTENSION_ELEMENT_ACTION) {\n        return removeElement(element, extensionElements, action.value, action.idx, node);\n      }\n\n    },\n\n    createListEntryTemplate: function(value, index, selectBox) {\n      initSelectionSize(selectBox, selectBox.options.length + 1);\n      return createOption(value.extensionElementValue);\n    },\n\n    deselect: function(element, node) {\n      var selectBox = getSelectBox(node, id);\n      selectBox.selectedIndex = -1;\n    },\n\n    getSelected: function(element, node) {\n      return getSelected(node, id);\n    },\n\n    setControlValue: function(element, node, option, property, value, idx) {\n      node.value = value;\n\n      if (!setOptionLabelValue) {\n        node.text = value;\n      } else {\n        setOptionLabelValue(element, node, option, property, value, idx);\n      }\n    },\n\n    createElement: function(element, node) {\n\n      // create option template\n      var generatedId;\n      if (idGeneration) {\n        generatedId = generateElementId(prefix);\n      }\n\n      var selectBox = getSelectBox(node, id);\n      var template = domify(createOption(generatedId));\n\n      // add new empty option as last child element\n      selectBox.appendChild(template);\n\n      // select last child element\n      selectBox.lastChild.selected = 'selected';\n      selectionChanged(element, node);\n\n      // update select box size\n      initSelectionSize(selectBox, selectBox.options.length);\n\n      this.__action = {\n        id: CREATE_EXTENSION_ELEMENT_ACTION,\n        value: generatedId\n      };\n\n      return true;\n    },\n\n    removeElement: function(element, node) {\n      var selection = getSelected(node, id);\n\n      var selectBox = getSelectBox(node, id);\n      selectBox.removeChild(selectBox.options[selection.idx]);\n\n      // update select box size\n      initSelectionSize(selectBox, selectBox.options.length);\n\n      this.__action = {\n        id: REMOVE_EXTENSION_ELEMENT_ACTION,\n        value: selection.value,\n        idx: selection.idx\n      };\n\n      return true;\n    },\n\n    hideElements: function(element, entryNode, node, scopeNode) {\n      return !hideElements(element, entryNode, node, scopeNode);\n    },\n\n    disableRemove: function(element, entryNode, node, scopeNode) {\n      return (getSelected(entryNode, id) || {}).idx < 0;\n    },\n\n    selectElement: selectionChanged\n  };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js":
  /*!*****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js ***!
    \*****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getImplementationType = options.getImplementationType,\n      getBusinessObject = options.getBusinessObject;\n\n  function isExternal(element) {\n    return getImplementationType(element) === 'external';\n  }\n\n  var topicEntry = entryFactory.textField(translate, {\n    id: 'externalTopic',\n    label: translate('Topic'),\n    modelProperty: 'externalTopic',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return { externalTopic: bo.get('camunda:topic') };\n    },\n\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:topic': values.externalTopic\n      });\n    },\n\n    validate: function(element, values, node) {\n      return isExternal(element) && !values.externalTopic ? { externalTopic: translate('Must provide a value') } : {};\n    },\n\n    hidden: function(element, node) {\n      return !isExternal(element);\n    }\n\n  });\n\n  return [ topicEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/External.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js":
  /*!*****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js ***!
    \*****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var externalTaskPriorityEntry = entryFactory.textField(translate, {\n    id: 'externalTaskPriority',\n    label: translate('Task Priority'),\n    modelProperty: 'taskPriority',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return {\n        taskPriority: bo.get('camunda:taskPriority')\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:taskPriority': values.taskPriority || undefined\n      });\n    }\n\n  });\n\n  return [ externalTaskPriorityEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExternalTaskPriority.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar extensionElementsEntry = __webpack_require__(/*! ./ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\");\n\nvar ModelUtil = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\"),\n    getBusinessObject = ModelUtil.getBusinessObject;\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\n\nvar DEFAULT_PROPS = {\n  'stringValue': undefined,\n  'string': undefined,\n  'expression': undefined\n};\n\nvar CAMUNDA_FIELD_EXTENSION_ELEMENT = 'camunda:Field';\n\nmodule.exports = function(element, bpmnFactory, translate, options) {\n\n  options = options || {};\n\n  var insideListener = !!options.insideListener,\n      idPrefix = options.idPrefix || '',\n      getSelectedListener = options.getSelectedListener,\n      businessObject = options.businessObject || getBusinessObject(element);\n\n  var entries = [];\n\n  var isSelected = function(element, node) {\n    return getSelectedField(element, node);\n  };\n\n  function getSelectedField(element, node) {\n    var selected = fieldEntry.getSelected(element, node.parentNode);\n\n    if (selected.idx === -1) {\n      return;\n    }\n\n    var fields = getCamundaFields(element, node);\n\n    return fields[selected.idx];\n  }\n\n  function getCamundaFields(element, node) {\n    if (!insideListener) {\n      return (\n        businessObject &&\n        extensionElementsHelper.getExtensionElements(businessObject, CAMUNDA_FIELD_EXTENSION_ELEMENT)\n      );\n    }\n    return getCamundaListenerFields(element, node);\n  }\n\n  function getCamundaListenerFields(element, node) {\n    var selectedListener = getSelectedListener(element, node);\n    return selectedListener && selectedListener.fields || [];\n  }\n\n  function getFieldType(bo) {\n    var fieldType = 'string';\n\n    var expressionValue = bo && bo.expression;\n    var stringValue = bo && (bo.string || bo.stringValue);\n\n    if (typeof stringValue !== 'undefined') {\n      fieldType = 'string';\n    } else if (typeof expressionValue !== 'undefined') {\n      fieldType = 'expression';\n    }\n\n    return fieldType;\n  }\n\n  var setOptionLabelValue = function() {\n    return function(element, node, option, property, value, idx) {\n      var camundaFields = getCamundaFields(element, node);\n      var field = camundaFields[idx];\n\n      value = (field.name) ? field.name : '<empty>';\n\n      var label = idx + ' : ' + value;\n\n      option.text = label;\n    };\n  };\n\n  var newElement = function() {\n    return function(element, extensionElements, value, node) {\n\n      var props = {\n        name: '',\n        string: ''\n      };\n\n      var newFieldElem;\n\n      if (!insideListener) {\n\n        newFieldElem = elementHelper.createElement(CAMUNDA_FIELD_EXTENSION_ELEMENT, props, extensionElements, bpmnFactory);\n        return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newFieldElem ]);\n\n      } else {\n\n        var selectedListener = getSelectedListener(element, node);\n        newFieldElem = elementHelper.createElement(CAMUNDA_FIELD_EXTENSION_ELEMENT, props, selectedListener, bpmnFactory);\n        return cmdHelper.addElementsTolist(element, selectedListener, 'fields', [ newFieldElem ]);\n\n      }\n\n    };\n  };\n\n  var removeElement = function() {\n    return function(element, extensionElements, value, idx, node) {\n      var camundaFields= getCamundaFields(element, node);\n      var field = camundaFields[idx];\n      if (field) {\n        if (!insideListener) {\n          return extensionElementsHelper.removeEntry(businessObject, element, field);\n        }\n        var selectedListener = getSelectedListener(element, node);\n        return cmdHelper.removeElementsFromList(element, selectedListener, 'fields', null, [ field ]);\n      }\n    };\n  };\n\n\n  var fieldEntry = extensionElementsEntry(element, bpmnFactory, {\n    id : idPrefix + 'fields',\n    label : translate('Fields'),\n    modelProperty: 'fieldName',\n    idGeneration: 'false',\n\n    businessObject: businessObject,\n\n    createExtensionElement: newElement(),\n    removeExtensionElement: removeElement(),\n\n    getExtensionElements: function(element, node) {\n      return getCamundaFields(element, node);\n    },\n\n    setOptionLabelValue: setOptionLabelValue()\n\n  });\n  entries.push(fieldEntry);\n\n\n  entries.push(entryFactory.validationAwareTextField(translate, {\n    id: idPrefix + 'field-name',\n    label: translate('Name'),\n    modelProperty: 'fieldName',\n\n    getProperty: function(element, node) {\n      return (getSelectedField(element, node) || {}).name;\n    },\n\n    setProperty: function(element, values, node) {\n      var selectedField = getSelectedField(element, node);\n      return cmdHelper.updateBusinessObject(element, selectedField, { name : values.fieldName });\n    },\n\n    validate: function(element, values, node) {\n      var bo = getSelectedField(element, node);\n\n      var validation = {};\n      if (bo) {\n        var nameValue = values.fieldName;\n\n        if (nameValue) {\n          if (utils.containsSpace(nameValue)) {\n            validation.fieldName = translate('Name must not contain spaces');\n          }\n        } else {\n          validation.fieldName = translate('Parameter must have a name');\n        }\n      }\n\n      return validation;\n    },\n\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n\n  }));\n\n  var fieldTypeOptions = [\n    {\n      name: translate('String'),\n      value: 'string'\n    },\n    {\n      name: translate('Expression'),\n      value: 'expression'\n    }\n  ];\n\n  entries.push(entryFactory.selectBox(translate, {\n    id: idPrefix + 'field-type',\n    label: translate('Type'),\n    selectOptions: fieldTypeOptions,\n    modelProperty: 'fieldType',\n\n    get: function(element, node) {\n      var bo = getSelectedField(element, node);\n\n      var fieldType = getFieldType(bo);\n\n      return {\n        fieldType: fieldType\n      };\n    },\n\n    set: function(element, values, node) {\n      var props = assign({}, DEFAULT_PROPS);\n\n      var fieldType = values.fieldType;\n\n      if (fieldType === 'string') {\n        props.string = '';\n      }\n      else if (fieldType === 'expression') {\n        props.expression = '';\n      }\n\n      return cmdHelper.updateBusinessObject(element, getSelectedField(element, node), props);\n    },\n\n    hidden: function(element, node) {\n      return !isSelected(element, node);\n    }\n\n  }));\n\n\n  entries.push(entryFactory.textBox(translate, {\n    id: idPrefix + 'field-value',\n    label: translate('Value'),\n    modelProperty: 'fieldValue',\n\n    get: function(element, node) {\n      var bo = getSelectedField(element, node);\n      var fieldType = getFieldType(bo);\n\n      var fieldValue;\n\n      if (fieldType === 'string') {\n        fieldValue = bo && (bo.string || bo.stringValue);\n      }\n      else if (fieldType === 'expression') {\n        fieldValue = bo && bo.expression;\n      }\n\n      return {\n        fieldValue: fieldValue\n      };\n    },\n\n    set: function(element, values, node) {\n      var bo = getSelectedField(element, node);\n      var fieldType = getFieldType(bo);\n\n      var props = assign({}, DEFAULT_PROPS);\n\n      var fieldValue = values.fieldValue || undefined;\n\n      if (fieldType === 'string') {\n        props.string = fieldValue;\n      }\n      else if (fieldType === 'expression') {\n        props.expression = fieldValue;\n      }\n\n      return cmdHelper.updateBusinessObject(element, bo, props);\n\n    },\n\n    validate: function(element, values, node) {\n      var bo = getSelectedField(element, node);\n\n      var validation = {};\n      if (bo) {\n        if (!values.fieldValue) {\n          validation.fieldValue = translate('Must provide a value');\n        }\n      }\n\n      return validation;\n    },\n\n    show: function(element, node) {\n      return isSelected(element, node);\n    }\n\n  }));\n\n  return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/FieldInjection.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var historyTimeToLiveEntry = entryFactory.textField(translate, {\n    id: 'historyTimeToLive',\n    label: translate('History Time To Live'),\n    modelProperty: 'historyTimeToLive',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      var historyTimeToLive = bo.get('camunda:historyTimeToLive');\n\n      return {\n        historyTimeToLive: historyTimeToLive ? historyTimeToLive : ''\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:historyTimeToLive': values.historyTimeToLive || undefined\n      });\n    }\n\n  });\n\n  return [ historyTimeToLiveEntry ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/HistoryTimeToLive.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js":
  /*!***************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js ***!
    \***************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\");\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\nvar map = __webpack_require__(/*! lodash/map */ \"./node_modules/lodash/map.js\");\n\nvar DEFAULT_DELEGATE_PROPS = [ 'class', 'expression', 'delegateExpression' ];\n\nvar DELEGATE_PROPS = {\n  'camunda:class': undefined,\n  'camunda:expression': undefined,\n  'camunda:delegateExpression': undefined,\n  'camunda:resultVariable': undefined\n};\n\nvar DMN_CAPABLE_PROPS = {\n  'camunda:decisionRef': undefined,\n  'camunda:decisionRefBinding': 'latest',\n  'camunda:decisionRefVersion': undefined,\n  'camunda:mapDecisionResult': 'resultList',\n  'camunda:decisionRefTenantId': undefined\n};\n\n\nvar EXTERNAL_CAPABLE_PROPS = {\n  'camunda:type': undefined,\n  'camunda:topic': undefined\n};\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var DEFAULT_OPTIONS = [\n    { value: 'class', name: translate('Java Class') },\n    { value: 'expression', name: translate('Expression') },\n    { value: 'delegateExpression', name: translate('Delegate Expression') }\n  ];\n\n  var DMN_OPTION = [\n    { value: 'dmn', name: translate('DMN') }\n  ];\n\n  var EXTERNAL_OPTION = [\n    { value: 'external', name: translate('External') }\n  ];\n\n  var CONNECTOR_OPTION = [\n    { value: 'connector', name: translate('Connector') }\n  ];\n\n  var SCRIPT_OPTION = [\n    { value: 'script', name: translate('Script') }\n  ];\n\n  var getType = options.getImplementationType,\n      getBusinessObject = options.getBusinessObject;\n\n  var hasDmnSupport = options.hasDmnSupport,\n      hasExternalSupport = options.hasExternalSupport,\n      hasServiceTaskLikeSupport = options.hasServiceTaskLikeSupport,\n      hasScriptSupport = options.hasScriptSupport;\n\n  var entries = [];\n\n  var selectOptions = DEFAULT_OPTIONS.concat([]);\n\n  if (hasDmnSupport) {\n    selectOptions = selectOptions.concat(DMN_OPTION);\n  }\n\n  if (hasExternalSupport) {\n    selectOptions = selectOptions.concat(EXTERNAL_OPTION);\n  }\n\n  if (hasServiceTaskLikeSupport) {\n    selectOptions = selectOptions.concat(CONNECTOR_OPTION);\n  }\n\n  if (hasScriptSupport) {\n    selectOptions = selectOptions.concat(SCRIPT_OPTION);\n  }\n\n  selectOptions.push({ value: '' });\n\n  entries.push(entryFactory.selectBox(translate, {\n    id : 'implementation',\n    label: translate('Implementation'),\n    selectOptions: selectOptions,\n    modelProperty: 'implType',\n\n    get: function(element, node) {\n      return {\n        implType: getType(element) || ''\n      };\n    },\n\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element);\n      var oldType = getType(element);\n      var newType = values.implType;\n\n      var props = assign({}, DELEGATE_PROPS);\n\n      if (DEFAULT_DELEGATE_PROPS.indexOf(newType) !== -1) {\n\n        var newValue = '';\n        if (DEFAULT_DELEGATE_PROPS.indexOf(oldType) !== -1) {\n          newValue = bo.get('camunda:' + oldType);\n        }\n        props['camunda:' + newType] = newValue;\n      }\n\n      if (hasDmnSupport) {\n        props = assign(props, DMN_CAPABLE_PROPS);\n        if (newType === 'dmn') {\n          props['camunda:decisionRef'] = '';\n        }\n      }\n\n      if (hasExternalSupport) {\n        props = assign(props, EXTERNAL_CAPABLE_PROPS);\n        if (newType === 'external') {\n          props['camunda:type'] = 'external';\n          props['camunda:topic'] = '';\n        }\n      }\n\n      if (hasScriptSupport) {\n        props['camunda:script'] = undefined;\n\n        if (newType === 'script') {\n          props['camunda:script'] = elementHelper.createElement('camunda:Script', {}, bo, bpmnFactory);\n        }\n      }\n\n      var commands = [];\n      commands.push(cmdHelper.updateBusinessObject(element, bo, props));\n\n      if (oldType === 'external' && newType !== 'external') {\n        var errorEventDefinitions = extensionElementsHelper.getExtensionElements(bo, 'camunda:ErrorEventDefinition');\n        commands.push(map(errorEventDefinitions, function(errorEventDefinition) {\n          return extensionElementsHelper.removeEntry(bo, element, errorEventDefinition);\n        }));\n      }\n\n      if (hasServiceTaskLikeSupport) {\n        var connectors = extensionElementsHelper.getExtensionElements(bo, 'camunda:Connector');\n        commands.push(map(connectors, function(connector) {\n          return extensionElementsHelper.removeEntry(bo, element, connector);\n        }));\n\n        if (newType === 'connector') {\n          var extensionElements = bo.get('extensionElements');\n          if (!extensionElements) {\n            extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n            commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n          }\n          var connector = elementHelper.createElement('camunda:Connector', {}, extensionElements, bpmnFactory);\n          commands.push(cmdHelper.addAndRemoveElementsFromList(\n            element,\n            extensionElements,\n            'values',\n            'extensionElements',\n            [ connector ],\n            []\n          ));\n        }\n      }\n\n      return commands;\n\n    }\n  }));\n\n  return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ImplementationType.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js":
  /*!*****************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js ***!
    \*****************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar getVariablesForScope = __webpack_require__(/*! @bpmn-io/extract-process-variables */ \"./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js\").getVariablesForScope;\n\nvar filter = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").filter,\n    map = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").map,\n    sortBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").sortBy;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    scriptImplementation = __webpack_require__(/*! ./Script */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nmodule.exports = function(parameter, bpmnFactory, options, translate) {\n\n  var typeInfo = {\n    'camunda:Map': {\n      value: 'map',\n      label: translate('Map')\n    },\n    'camunda:List': {\n      value: 'list',\n      label: translate('List')\n    },\n    'camunda:Script': {\n      value: 'script',\n      label: translate('Script')\n    }\n  };\n\n  options = options || {};\n\n  var idPrefix = options.idPrefix || '';\n\n  var getParameter =\n    (options.getParameter && typeof options.getParameter === 'function') ?\n      function() {\n        return options.getParameter();\n      } :\n      function() {\n        return parameter;\n      };\n\n  var result = {},\n      entries = [];\n\n  result.entries = entries;\n\n  // heading ////////////////////////////////////////////////////////\n  var collapsible = entryFactory.collapsible({\n    id: idPrefix + 'collapsible',\n    title: parameter.name,\n    description: getDescription(parameter),\n    cssClasses: [ 'bpp-collapsible--with-mapping' ],\n    open: false,\n    onRemove: options.onRemove,\n    onToggle: options.onToggle,\n    get: function() {\n      return {\n        title: getParameter().name,\n        description: getDescription(getParameter())\n      };\n    }\n  });\n\n  var isOpen = options.isOpen || collapsible.isOpen;\n\n  result.setOpen = function(value) {\n    var entryNode = domQuery('[data-entry=\"' + collapsible.id + '\"]');\n    collapsible.setOpen(value, entryNode);\n  };\n\n  entries.push(collapsible);\n\n  // parameter name ////////////////////////////////////////////////////////\n  entries.push(entryFactory.validationAwareTextField(translate, {\n    id: idPrefix + 'parameterName',\n    label: is(parameter, 'camunda:InputParameter') ?\n      translate('Local Variable Name') : translate('Process Variable Name'),\n    modelProperty: 'name',\n\n    getProperty: function(element, node) {\n      return parameter.name;\n    },\n\n    setProperty: function(element, values, node) {\n      return cmdHelper.updateBusinessObject(element, parameter, values);\n    },\n\n    validate: function(element, values, node) {\n      var validation = {};\n      var nameValue = values.name;\n\n      if (nameValue) {\n        if (utils.containsSpace(nameValue)) {\n          validation.name = translate('Name must not contain spaces');\n        }\n      } else {\n        validation.name = translate('Parameter must have a name');\n      }\n\n      return validation;\n    },\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n  }));\n\n\n  // parameter type //////////////////////////////////////////////////////\n\n  var selectOptions = [\n    { value: 'text', name: translate('String or Expression') },\n    { value: 'script', name: translate('Script') },\n    { value: 'list', name: translate('List') },\n    { value: 'map', name: translate('Map') }\n  ];\n\n  entries.push(entryFactory.selectBox(translate, {\n    id : idPrefix + 'parameterType',\n    label: translate('Variable Assignment Type'),\n    selectOptions: selectOptions,\n    modelProperty: 'parameterType',\n\n    get: function(element, node) {\n      var parameterType = 'text';\n\n      var definition = getParameter().get('definition');\n      if (typeof definition !== 'undefined') {\n        var type = definition.$type;\n        parameterType = typeInfo[type].value;\n      }\n\n      return {\n        parameterType: parameterType\n      };\n    },\n\n    set: function(element, values, node) {\n      var properties = {\n        value: undefined,\n        definition: undefined\n      };\n\n      var createParameterTypeElem = function(type) {\n        return createElement(type, getParameter(), bpmnFactory);\n      };\n\n      var parameterType = values.parameterType;\n\n      if (parameterType === 'script') {\n        properties.definition = createParameterTypeElem('camunda:Script');\n      }\n      else if (parameterType === 'list') {\n        properties.definition = createParameterTypeElem('camunda:List');\n      }\n      else if (parameterType === 'map') {\n        properties.definition = createParameterTypeElem('camunda:Map');\n      }\n\n      return cmdHelper.updateBusinessObject(element, getParameter(), properties);\n    },\n\n    hidden: function(element, node) {\n      return !isOpen();\n    }\n\n  }));\n\n\n  // parameter value (type = text) ///////////////////////////////////////////////////////\n\n  entries.push(entryFactory.autoSuggest(translate, {\n    id : idPrefix + 'parameterType-text',\n    label : translate('Variable Assignment Value'),\n    description: translate('Start typing \"${}\" to create an expression.'),\n    modelProperty: 'value',\n    get: function(element, node) {\n      return {\n        value: getParameter().value\n      };\n    },\n\n    set: function(element, values, node) {\n      values.value = values.value || undefined;\n      return cmdHelper.updateBusinessObject(element, getParameter(), values);\n    },\n\n    show: function(element, node) {\n      return isOpen() && !getParameter().definition;\n    },\n\n    getItems: function(element) {\n      var scope = getScope(element),\n          rootElement = getRootElement(element);\n\n      // (1) get all available variables for the current scope\n      var variables = getVariablesForScope(scope, rootElement);\n\n      // (2) ignore all variables which are (only) written in the current element\n      variables = filter(variables, function(variable) {\n        var origin = variable.origin,\n            withOutCurrent = filter(origin, function(o) {\n              return o.id !== element.id;\n            });\n\n        return !!withOutCurrent.length;\n      });\n\n      // (3) sort by name\n      var sorted = sortByName(variables);\n\n      // (4) retrieve names as suggestion items\n      return map(sorted, function(variable) {\n        return variable.name;\n      });\n    },\n\n    canSuggest: function(word, editorNode, focusNode) {\n      var globalIndex = findWordInContentEditable(word, editorNode, focusNode);\n\n      if (isInsideExpression(editorNode.innerText, globalIndex)) {\n        return true;\n      }\n\n      if (isInsideUnclosedExpression(editorNode.innerText, globalIndex)) {\n        return true;\n      }\n\n      return false;\n    }\n\n  }));\n\n\n  // parameter value (type = script) ///////////////////////////////////////////////////////\n  var script = scriptImplementation('scriptFormat', 'value', true, translate, { idPrefix: idPrefix });\n  entries.push({\n    id: idPrefix + 'parameterType-script',\n    html: '<div data-show=\"show\">' +\n            script.template +\n          '</div>',\n    get: function(element, node) {\n      return isScript(getParameter().definition) ? script.get(element, getParameter().definition) : {};\n    },\n\n    set: function(element, values, node) {\n      var update = script.set(element, values);\n      return cmdHelper.updateBusinessObject(element, getParameter().definition, update);\n    },\n\n    validate: function(element, values, node) {\n      return isScript(getParameter().definition) ? script.validate(element, getParameter().definition) : {};\n    },\n\n    script: script,\n    show: function(element, node) {\n      return isOpen() && getParameter().definition && isScript(getParameter().definition);\n    }\n  });\n\n\n  // parameter value (type = list) ///////////////////////////////////////////////////////\n\n  entries.push(entryFactory.table(translate, {\n    id: idPrefix + 'parameterType-list',\n    modelProperties: [ 'value' ],\n    labels: [ translate('Value') ],\n    addLabel: translate('Add Value'),\n\n    getElements: function(element, node) {\n\n      if (isList(getParameter().definition)) {\n        return getParameter().definition.items;\n      }\n\n      return [];\n    },\n\n    updateElement: function(element, values, node, idx) {\n      var item = getParameter().definition.items[idx];\n      return cmdHelper.updateBusinessObject(element, item, values);\n    },\n\n    addElement: function(element, node) {\n      var newValue = createElement('camunda:Value', getParameter().definition, bpmnFactory, { value: undefined });\n      return cmdHelper.addElementsTolist(element, getParameter().definition, 'items', [ newValue ]);\n    },\n\n    removeElement: function(element, node, idx) {\n      return cmdHelper.removeElementsFromList(element, getParameter().definition, 'items', null, [ getParameter().definition.items[idx] ]);\n    },\n\n    editable: function(element, node, prop, idx) {\n      var item = getParameter().definition.items[idx];\n      return !isMap(item) && !isList(item) && !isScript(item);\n    },\n\n    setControlValue: function(element, node, input, prop, value, idx) {\n      var item = getParameter().definition.items[idx];\n\n      if (!isMap(item) && !isList(item) && !isScript(item)) {\n        input.value = value;\n      } else {\n        input.value = typeInfo[item.$type].label;\n      }\n    },\n\n    show: function(element, node) {\n      return isOpen() && getParameter().definition && isList(getParameter().definition);\n    }\n\n  }));\n\n\n  // parameter value (type = map) ///////////////////////////////////////////////////////\n\n  entries.push(entryFactory.table(translate, {\n    id: idPrefix + 'parameterType-map',\n    modelProperties: [ 'key', 'value' ],\n    labels: [ translate('Key'), translate('Value') ],\n    addLabel: translate('Add Entry'),\n\n    getElements: function(element, node) {\n\n      if (getParameter() && isMap(getParameter().definition)) {\n        return getParameter().definition.entries;\n      }\n\n      return [];\n    },\n\n    updateElement: function(element, values, node, idx) {\n      var entry = getParameter().definition.entries[idx];\n\n      if (isMap(entry.definition) || isList(entry.definition) || isScript(entry.definition)) {\n        values = {\n          key: values.key\n        };\n      }\n\n      return cmdHelper.updateBusinessObject(element, entry, values);\n    },\n\n    addElement: function(element, node) {\n      var newEntry = createElement('camunda:Entry', getParameter().definition, bpmnFactory, { key: undefined, value: undefined });\n      return cmdHelper.addElementsTolist(element, getParameter().definition, 'entries', [ newEntry ]);\n    },\n\n    removeElement: function(element, node, idx) {\n      return cmdHelper.removeElementsFromList(element, getParameter().definition, 'entries', null, [ getParameter().definition.entries[idx] ]);\n    },\n\n    editable: function(element, node, prop, idx) {\n      var entry = getParameter().definition.entries[idx];\n      return prop === 'key' || (!isMap(entry.definition) && !isList(entry.definition) && !isScript(entry.definition));\n    },\n\n    setControlValue: function(element, node, input, prop, value, idx) {\n      var entry = getParameter().definition.entries[idx];\n\n      if (prop === 'key' || (!isMap(entry.definition) && !isList(entry.definition) && !isScript(entry.definition))) {\n        input.value = value;\n      } else {\n        input.value = typeInfo[entry.definition.$type].label;\n      }\n    },\n\n    show: function(element, node) {\n      return isOpen() && getParameter().definition && isMap(getParameter().definition);\n    }\n\n  }));\n\n  return result;\n};\n\n\n\n// helper /////////////////////\n\nfunction createElement(type, parent, factory, properties) {\n  return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction isScript(elem) {\n  return is(elem, 'camunda:Script');\n}\n\nfunction isList(elem) {\n  return is(elem, 'camunda:List');\n}\n\nfunction isMap(elem) {\n  return is(elem, 'camunda:Map');\n}\n\nfunction sortByName(variables) {\n  return sortBy(variables, function(variable) {\n    return variable.name;\n  });\n}\n\nfunction getScope(element) {\n  var businessObject = getBusinessObject(element);\n\n  if (isAny(businessObject, [ 'bpmn:Process', 'bpmn:SubProcess' ])) {\n    return businessObject.id;\n  }\n\n  // look for processes or sub process in parents\n  var parent = businessObject;\n\n  while (parent.$parent && !isAny(parent, [ 'bpmn:Process', 'bpmn:SubProcess' ])) {\n    parent = parent.$parent;\n  }\n\n  return parent.id;\n}\n\nfunction getRootElement(element) {\n  var businessObject = getBusinessObject(element),\n      parent = businessObject;\n\n  while (parent.$parent && !is(parent, 'bpmn:Process')) {\n    parent = parent.$parent;\n  }\n\n  return parent;\n}\n\nfunction isInsideExpression(value, index) {\n  var openIndex = value.indexOf('${'),\n      closeIndex = value.indexOf('}');\n\n  return (\n    openIndex > -1 && openIndex <= index &&\n    closeIndex > -1 && index < closeIndex\n  );\n}\n\nfunction isInsideUnclosedExpression(value, index) {\n  var closeIndex = value.lastIndexOf('}', index),\n      openIndex = value.indexOf('${', closeIndex + 1);\n\n  return (\n    openIndex > -1 && openIndex <= index\n  );\n}\n\nfunction findWordInContentEditable(word, editorNode, focusNode) {\n\n  // retrieve value before focusNode (row)\n  var children = editorNode.childNodes,\n      textBefore = '';\n\n  for (var i = 0; i <= children.length - 1; i++) {\n    var child = children[i];\n\n    if (child.contains(focusNode)) {\n      break;\n    }\n\n    textBefore += (child.innerText || child.wholeText) + '\\n';\n  }\n\n  return textBefore.length + (word.index || 0);\n}\n\nfunction getDescription(parameter) {\n  var definition = parameter.get('definition');\n\n  if (!definition) {\n    return parameter.value;\n  }\n\n  if (isScript(definition)) {\n    return definition.value;\n  } else if (isList(definition)) {\n    return 'List';\n  } else if (isMap(definition)) {\n    return 'Map';\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js":
  /*!************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js ***!
    \************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    inputOutputHelper = __webpack_require__(/*! ../../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar InputOutputParameter = __webpack_require__(/*! ./InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  options = options || {};\n\n  var insideConnector = !!options.insideConnector,\n      idPrefix = options.idPrefix || '';\n\n  var result = {};\n\n  var entries = result.entries = [];\n\n  if (!inputOutputHelper.isInputOutputSupported(element, insideConnector)) {\n    return result;\n  }\n\n  var parametersOptions = {\n    insideConnector: insideConnector,\n    idPrefix: idPrefix\n  };\n\n  // input parameters ///////////////////////////////////////////////////////////////\n  entries.push(\n    getParametersHeading(element, bpmnFactory, {\n      idPrefix: idPrefix,\n      insideConnector: insideConnector,\n      type: 'camunda:InputParameter',\n      prop: 'inputParameters',\n      prefix: 'Input'\n    }));\n\n  append(entries,\n    getInputParameterEntries(element, bpmnFactory, parametersOptions, translate)\n  );\n\n  return result;\n};\n\nfunction getParametersHeading(element, bpmnFactory, options) {\n  var idPrefix = options.idPrefix || '',\n      prefix = options.prefix,\n      type = options.type,\n      prop = options.prop,\n      insideConnector = options.insideConnector;\n\n  var entry = {\n    id: idPrefix + prefix + '-heading',\n    cssClasses: [ 'bpp-input-output' ],\n    html: '<div class=\"bpp-field-wrapper\">' +\n      '<button type=\"button\" class=\"bpp-input-output__add add action-button\" ' + 'data-action=\"createElement\">' +\n      '</button><input name=\"hidden\" type=\"hidden\">' +\n      '</div>'\n  };\n\n  entry.createElement = function(_, entryNode) {\n    var commands = createElement();\n\n    if (commands) {\n      scheduleCommands(commands, entryNode);\n      return true;\n    }\n  };\n\n  entry.set = function() {\n    var commands = entry._commands;\n\n    if (commands) {\n      delete entry._commands;\n      return commands;\n    }\n  };\n\n  function createElement() {\n    var commands = [];\n    var bo = getBusinessObject(element);\n    var extensionElements = bo.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n      commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n    }\n\n    var inputOutput = getInputOutput(element, insideConnector);\n    if (!inputOutput) {\n      var parent = !insideConnector ? extensionElements : getConnector(element);\n      inputOutput = createInputOutput(parent, bpmnFactory, {\n        inputParameters: [],\n        outputParameters: []\n      });\n\n      if (!insideConnector) {\n        commands.push(cmdHelper.addAndRemoveElementsFromList(\n          element,\n          extensionElements,\n          'values',\n          'extensionElements',\n          [ inputOutput ],\n          []\n        ));\n      } else {\n        commands.push(cmdHelper.updateBusinessObject(element, parent, { inputOutput: inputOutput }));\n      }\n    }\n\n    var newElem = createParameter(type, inputOutput, bpmnFactory, { name: generateElementId(prefix) });\n    commands.push(cmdHelper.addElementsTolist(element, inputOutput, prop, [], [ newElem ]));\n\n    return commands;\n  }\n\n  /**\n   * Schedule commands to be run with next `set` method call.\n   *\n   * @param {Array<any>} commands\n   * @param {HTMLElement} entryNode\n   */\n  function scheduleCommands(commands, entryNode) {\n    entry._commands = commands;\n\n    // @barmac: hack to make properties panel call `set`\n    var input = domQuery('input[type=\"hidden\"]', entryNode);\n    input.value = 1;\n  }\n\n  return entry;\n}\n\nfunction getInputParameterEntries(element, bpmnFactory, options, translate) {\n  var idPrefix = options.idPrefix,\n      insideConnector = options.insideConnector,\n      inputOutput = getInputOutput(element, insideConnector),\n      params = getInputParameters(element, insideConnector),\n      entries;\n\n  if (!params.length) {\n    var description = entryFieldDescription(translate, translate('No variables defined.'));\n\n    return [{\n      id: idPrefix + 'input-parameter' + '-placeholder',\n      cssClasses: [ 'bpp-input-output-placeholder' ],\n      html: description\n    }];\n  }\n\n  var inputParameters = params.map(function(param, index) {\n    function onRemove() {\n      var commands = [];\n      commands.push(cmdHelper.removeElementsFromList(element, inputOutput, 'inputParameters', null, [param]));\n\n      // remove inputOutput if there are no input/output parameters anymore\n      if (inputOutput.get('inputParameters').length === 1 && (inputOutput.get('outputParameters') || []).length === 0) {\n\n        if (!insideConnector) {\n          commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, inputOutput));\n        }\n        else {\n          var connector = getConnector(element);\n          commands.push(cmdHelper.updateBusinessObject(element, connector, { inputOutput: undefined }));\n        }\n      }\n\n      return commands;\n    }\n\n    return InputOutputParameter(param, bpmnFactory,\n      {\n        idPrefix: idPrefix + 'input-parameter-' + index,\n        onRemove: onRemove,\n        onToggle: onToggle\n      }, translate);\n  });\n\n  /**\n   * Close remaining collapsible entries within group.\n   *\n   * @param {boolean} value\n   * @param {HTMLElement} entryNode\n   */\n  function onToggle(value, entryNode) {\n    if (!value) {\n      return;\n    }\n\n    var currentEntryId = entryNode.dataset.entry;\n\n    inputParameters.forEach(function(inputParameter) {\n      if (inputParameter.entries[0].id === currentEntryId) {\n        return;\n      }\n\n      inputParameter.setOpen(false);\n    });\n  }\n\n  entries = inputParameters.map(function(input) {\n    return input.entries;\n  });\n\n  return flatten(entries);\n}\n\n\nfunction append(array, items) {\n  Array.prototype.push.apply(array, items);\n}\n\nfunction flatten(arrays) {\n  return Array.prototype.concat.apply([], arrays);\n}\n\nfunction generateElementId(prefix) {\n  prefix = prefix + '_';\n  return utils.nextId(prefix);\n}\n\nfunction getInputOutput(element, insideConnector) {\n  return inputOutputHelper.getInputOutput(element, insideConnector);\n}\n\nfunction getConnector(element) {\n  return inputOutputHelper.getConnector(element);\n}\n\nfunction getInputParameters(element, insideConnector) {\n  return inputOutputHelper.getInputParameters(element, insideConnector);\n}\n\nfunction createElement(type, parent, factory, properties) {\n  return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction createInputOutput(parent, bpmnFactory, properties) {\n  return createElement('camunda:InputOutput', parent, bpmnFactory, properties);\n}\n\nfunction createParameter(type, parent, bpmnFactory, properties) {\n  return createElement(type, parent, bpmnFactory, properties);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputParameters.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js":
  /*!********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js ***!
    \********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var jobPriorityEntry = entryFactory.textField(translate, {\n    id: 'jobPriority',\n    label: translate('Job Priority'),\n    modelProperty: 'jobPriority',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return {\n        jobPriority: bo.get('camunda:jobPriority')\n      };\n    },\n\n    set: function(element, values) {\n      var bo = getBusinessObject(element);\n      return cmdHelper.updateBusinessObject(element, bo, {\n        'camunda:jobPriority': values.jobPriority || undefined\n      });\n    }\n\n  });\n\n  return [ jobPriorityEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobPriority.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js":
  /*!**************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js ***!
    \**************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar asyncCapableHelper = __webpack_require__(/*! ../../../../helper/AsyncCapableHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/AsyncCapableHelper.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    eventDefinitionHelper = __webpack_require__(/*! ../../../../helper/EventDefinitionHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/EventDefinitionHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nfunction isAsyncBefore(bo) {\n  return asyncCapableHelper.isAsyncBefore(bo);\n}\n\nfunction isAsyncAfter(bo) {\n  return asyncCapableHelper.isAsyncAfter(bo);\n}\n\nfunction getFailedJobRetryTimeCycle(bo) {\n  return asyncCapableHelper.getFailedJobRetryTimeCycle(bo);\n}\n\nfunction removeFailedJobRetryTimeCycle(bo, element) {\n  return asyncCapableHelper.removeFailedJobRetryTimeCycle(bo, element);\n}\n\nfunction createExtensionElements(parent, bpmnFactory) {\n  return elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, parent, bpmnFactory);\n}\n\nfunction createFailedJobRetryTimeCycle(parent, bpmnFactory, cycle) {\n  return elementHelper.createElement('camunda:FailedJobRetryTimeCycle', { body: cycle }, parent, bpmnFactory);\n}\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject;\n\n  var idPrefix = options.idPrefix || '',\n      labelPrefix = options.labelPrefix || '';\n\n  var retryTimeCycleEntry = entryFactory.textField(translate, {\n    id: idPrefix + 'retryTimeCycle',\n    label: labelPrefix + translate('Retry Time Cycle'),\n    modelProperty: 'cycle',\n\n    get: function(element, node) {\n      var retryTimeCycle = getFailedJobRetryTimeCycle(getBusinessObject(element));\n      var value = retryTimeCycle && retryTimeCycle.get('body');\n      return {\n        cycle: value\n      };\n    },\n\n    set: function(element, values, node) {\n      var newCycle = values.cycle;\n      var bo = getBusinessObject(element);\n\n      if (newCycle === '' || typeof newCycle === 'undefined') {\n\n        // remove retry time cycle element(s)\n        return removeFailedJobRetryTimeCycle(bo, element);\n      }\n\n      var retryTimeCycle = getFailedJobRetryTimeCycle(bo);\n\n      if (!retryTimeCycle) {\n\n        // add new retry time cycle element\n        var commands = [];\n\n        var extensionElements = bo.get('extensionElements');\n        if (!extensionElements) {\n          extensionElements = createExtensionElements(bo, bpmnFactory);\n          commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n        }\n\n        retryTimeCycle = createFailedJobRetryTimeCycle(extensionElements, bpmnFactory, newCycle);\n        commands.push(cmdHelper.addAndRemoveElementsFromList(\n          element,\n          extensionElements,\n          'values',\n          'extensionElements',\n          [ retryTimeCycle ],\n          []\n        ));\n\n        return commands;\n      }\n\n      // update existing retry time cycle element\n      return cmdHelper.updateBusinessObject(element, retryTimeCycle, { body: newCycle });\n    },\n\n    hidden: function(element) {\n      var bo = getBusinessObject(element);\n\n      if (bo && (isAsyncBefore(bo) || isAsyncAfter(bo))) {\n        return false;\n      }\n\n      if (is(element, 'bpmn:Event')) {\n        return !eventDefinitionHelper.getTimerEventDefinition(element);\n      }\n\n      return true;\n    }\n\n  });\n\n  return [ retryTimeCycleEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/JobRetryTimeCycle.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js":
  /*!*****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js ***!
    \*****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar extensionElementsEntry = __webpack_require__(/*! ./ExtensionElements */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ExtensionElements.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    ImplementationTypeHelper = __webpack_require__(/*! ../../../../helper/ImplementationTypeHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ImplementationTypeHelper.js\");\n\n\nfunction getListeners(bo, type) {\n  return bo && extensionElementsHelper.getExtensionElements(bo, type) || [];\n}\n\nvar CAMUNDA_EXECUTION_LISTENER_ELEMENT = 'camunda:ExecutionListener';\nvar CAMUNDA_TASK_LISTENER_ELEMENT = 'camunda:TaskListener';\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var LISTENER_TYPE_LABEL = {\n    class: translate('Java Class'),\n    expression: translate('Expression'),\n    delegateExpression: translate('Delegate Expression'),\n    script: translate('Script')\n  };\n\n  var bo;\n\n  var result = {\n    getSelectedListener: getSelectedListener\n  };\n\n  var entries = result.entries = [];\n\n  var isSequenceFlow = ImplementationTypeHelper.isSequenceFlow(element);\n\n  function getSelectedListener(element, node) {\n    var selection = (executionListenerEntry && executionListenerEntry.getSelected(element, node)) || { idx: -1 };\n\n    var listener = getListeners(bo, CAMUNDA_EXECUTION_LISTENER_ELEMENT)[selection.idx];\n    if (!listener && taskListenerEntry) {\n      selection = taskListenerEntry.getSelected(element, node);\n      listener = getListeners(bo, CAMUNDA_TASK_LISTENER_ELEMENT)[selection.idx];\n    }\n    return listener;\n  }\n\n  var setOptionLabelValue = function(type) {\n    return function(element, node, option, property, value, idx) {\n      var listeners = getListeners(bo, type);\n      var listener = listeners[idx];\n      var listenerType = ImplementationTypeHelper.getImplementationType(listener);\n\n      var event = (listener.get('event')) ? listener.get('event') : '<empty>';\n\n      var label = (event || '*') + ' : ' + (LISTENER_TYPE_LABEL[listenerType] || '');\n\n      option.text = label;\n    };\n  };\n\n  var newElement = function(element, type, initialEvent) {\n    return function(element, extensionElements, value) {\n      var props = {\n        event: initialEvent,\n        class: ''\n      };\n\n      var newElem = elementHelper.createElement(type, props, extensionElements, bpmnFactory);\n\n      return cmdHelper.addElementsTolist(element, extensionElements, 'values', [ newElem ]);\n    };\n  };\n\n  var removeElement = function(element, type) {\n    return function(element, extensionElements, value, idx) {\n      var listeners = getListeners(bo, type);\n      var listener = listeners[idx];\n      if (listener) {\n        return extensionElementsHelper.removeEntry(bo, element, listener);\n      }\n    };\n  };\n\n\n  // Execution Listener\n\n  if (is(element, 'bpmn:FlowElement') || is(element, 'bpmn:Process') || is(element, 'bpmn:Participant')) {\n    bo = getBusinessObject(element);\n    if (is(element, 'bpmn:Participant')) {\n      element = element.processRef;\n      bo = bo.get('processRef');\n    }\n\n    if (bo) {\n\n      var executionListenerEntry = extensionElementsEntry(element, bpmnFactory, {\n        id : 'executionListeners',\n        label : translate('Execution Listener'),\n        modelProperty: 'name',\n        idGeneration: 'false',\n        reference: 'processRef',\n\n        createExtensionElement: newElement(element, CAMUNDA_EXECUTION_LISTENER_ELEMENT, (isSequenceFlow) ? 'take' : 'start'),\n        removeExtensionElement: removeElement(element, CAMUNDA_EXECUTION_LISTENER_ELEMENT),\n\n        getExtensionElements: function(element) {\n          return getListeners(bo, CAMUNDA_EXECUTION_LISTENER_ELEMENT);\n        },\n\n        onSelectionChange: function(element, node, event, scope) {\n          taskListenerEntry && taskListenerEntry.deselect(element, node);\n        },\n\n        setOptionLabelValue: setOptionLabelValue(CAMUNDA_EXECUTION_LISTENER_ELEMENT)\n\n      });\n      entries.push(executionListenerEntry);\n\n    }\n  }\n\n\n  // Task Listener\n\n  if (is(element, 'bpmn:UserTask')) {\n    bo = getBusinessObject(element);\n\n    var taskListenerEntry = extensionElementsEntry(element, bpmnFactory, {\n      id : 'taskListeners',\n      label : translate('Task Listener'),\n      modelProperty: 'name',\n      idGeneration: 'false',\n\n      createExtensionElement: newElement(element, CAMUNDA_TASK_LISTENER_ELEMENT, 'create'),\n      removeExtensionElement: removeElement(element, CAMUNDA_TASK_LISTENER_ELEMENT),\n\n      getExtensionElements: function(element) {\n        return getListeners(bo, CAMUNDA_TASK_LISTENER_ELEMENT);\n      },\n\n      onSelectionChange: function(element, node, event, scope) {\n        executionListenerEntry.deselect(element, node);\n      },\n\n      setOptionLabelValue: setOptionLabelValue(CAMUNDA_TASK_LISTENER_ELEMENT)\n\n    });\n    entries.push(taskListenerEntry);\n  }\n\n  return result;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Listener.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js":
  /*!*****************************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js ***!
    \*****************************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nvar domClasses = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").classes;\n\n/**\n * Get a property value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n *\n * @return {any} the property value\n */\nfunction getProperty(element, propertyName) {\n  var loopCharacteristics = getLoopCharacteristics(element);\n  return loopCharacteristics && loopCharacteristics.get(propertyName);\n}\n\n/**\n * Get the body of a given expression.\n *\n * @param {ModdleElement<bpmn:FormalExpression>} expression\n *\n * @return {string} the body (value) of the expression\n */\nfunction getBody(expression) {\n  return expression && expression.get('body');\n}\n\n\n/**\n * Get the loop characteristics of an element.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics>} the loop characteristics\n */\nfunction getLoopCharacteristics(element) {\n  var bo = getBusinessObject(element);\n  return bo.loopCharacteristics;\n}\n\n/**\n * Get the loop cardinality of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the loop cardinality\n */\nfunction getLoopCardinality(element) {\n  return getProperty(element, 'loopCardinality');\n}\n\n/**\n * Get the loop cardinality value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the loop cardinality value\n */\nfunction getLoopCardinalityValue(element) {\n  var loopCardinality = getLoopCardinality(element);\n  return getBody(loopCardinality);\n}\n\n/**\n * Get the completion condition of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the completion condition\n */\nfunction getCompletionCondition(element) {\n  return getProperty(element, 'completionCondition');\n}\n\n/**\n * Get the completion condition value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the completion condition value\n */\nfunction getCompletionConditionValue(element) {\n  var completionCondition = getCompletionCondition(element);\n  return getBody(completionCondition);\n}\n\n/**\n * Get the 'camunda:collection' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:collection' value\n */\nfunction getCollection(element) {\n  return getProperty(element, 'camunda:collection');\n}\n\n/**\n * Get the 'camunda:elementVariable' attribute value of the loop characteristics.\n *\n * @param {djs.model.Base} element\n *\n * @return {string} the 'camunda:elementVariable' value\n */\nfunction getElementVariable(element) {\n  return getProperty(element, 'camunda:elementVariable');\n}\n\n\n/**\n * Creates 'bpmn:FormalExpression' element.\n *\n * @param {ModdleElement} parent\n * @param {string} body\n * @param {BpmnFactory} bpmnFactory\n *\n * @result {ModdleElement<bpmn:FormalExpression>} a formal expression\n */\nfunction createFormalExpression(parent, body, bpmnFactory) {\n  return elementHelper.createElement('bpmn:FormalExpression', { body: body }, parent, bpmnFactory);\n}\n\n/**\n * Updates a specific formal expression of the loop characteristics.\n *\n * @param {djs.model.Base} element\n * @param {string} propertyName\n * @param {string} newValue\n * @param {BpmnFactory} bpmnFactory\n */\nfunction updateFormalExpression(element, propertyName, newValue, bpmnFactory) {\n  var loopCharacteristics = getLoopCharacteristics(element);\n\n  var expressionProps = {};\n\n  if (!newValue) {\n\n    // remove formal expression\n    expressionProps[propertyName] = undefined;\n    return cmdHelper.updateBusinessObject(element, loopCharacteristics, expressionProps);\n  }\n\n  var existingExpression = loopCharacteristics.get(propertyName);\n\n  if (!existingExpression) {\n\n    // add formal expression\n    expressionProps[propertyName] = createFormalExpression(loopCharacteristics, newValue, bpmnFactory);\n    return cmdHelper.updateBusinessObject(element, loopCharacteristics, expressionProps);\n  }\n\n  // edit existing formal expression\n  return cmdHelper.updateBusinessObject(element, existingExpression, {\n    body: newValue\n  });\n}\n\n\nmodule.exports = function(element, bpmnFactory, translate) {\n\n  var entries = [];\n\n  // error message /////////////////////////////////////////////////////////////////\n\n  entries.push({\n    id: 'multiInstance-errorMessage',\n    html: '<div data-show=\"isValid\">' +\n             '<span class=\"bpp-icon-warning\"></span> ' +\n             escapeHTML(translate('Must provide either loop cardinality or collection')) +\n          '</div>',\n\n    isValid: function(element, node, notification, scope) {\n      var loopCharacteristics = getLoopCharacteristics(element);\n\n      var isValid = true;\n      if (loopCharacteristics) {\n        var loopCardinality = getLoopCardinalityValue(element);\n        var collection = getCollection(element);\n\n        isValid = !loopCardinality && !collection;\n      }\n\n      domClasses(node).toggle('bpp-hidden', !isValid);\n      domClasses(notification).toggle('bpp-error-message', isValid);\n\n      return isValid;\n    }\n  });\n\n  // loop cardinality //////////////////////////////////////////////////////////////\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'multiInstance-loopCardinality',\n    label: translate('Loop Cardinality'),\n    modelProperty: 'loopCardinality',\n\n    get: function(element, node) {\n      return {\n        loopCardinality: getLoopCardinalityValue(element)\n      };\n    },\n\n    set: function(element, values) {\n      return updateFormalExpression(element, 'loopCardinality', values.loopCardinality, bpmnFactory);\n    }\n  }));\n\n\n  // collection //////////////////////////////////////////////////////////////////\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'multiInstance-collection',\n    label: translate('Collection'),\n    modelProperty: 'collection',\n\n    get: function(element, node) {\n      return {\n        collection: getCollection(element)\n      };\n    },\n\n    set: function(element, values) {\n      var loopCharacteristics = getLoopCharacteristics(element);\n      return cmdHelper.updateBusinessObject(element, loopCharacteristics, {\n        'camunda:collection': values.collection || undefined\n      });\n    },\n\n    validate: function(element, values, node) {\n      var collection = getCollection(element);\n      var elementVariable = getElementVariable(element);\n\n      if (!collection && elementVariable) {\n        return { collection : 'Must provide a value' };\n      }\n    }\n  }));\n\n\n  // element variable ////////////////////////////////////////////////////////////\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'multiInstance-elementVariable',\n    label: translate('Element Variable'),\n    modelProperty: 'elementVariable',\n\n    get: function(element, node) {\n      return {\n        elementVariable: getElementVariable(element)\n      };\n    },\n\n    set: function(element, values) {\n      var loopCharacteristics = getLoopCharacteristics(element);\n      return cmdHelper.updateBusinessObject(element, loopCharacteristics, {\n        'camunda:elementVariable': values.elementVariable || undefined\n      });\n    }\n  }));\n\n\n  // Completion Condition //////////////////////////////////////////////////////\n\n  entries.push(entryFactory.textField(translate, {\n    id: 'multiInstance-completionCondition',\n    label: translate('Completion Condition'),\n    modelProperty: 'completionCondition',\n\n    get: function(element) {\n      return {\n        completionCondition: getCompletionConditionValue(element)\n      };\n    },\n\n    set: function(element, values) {\n      return updateFormalExpression(element, 'completionCondition', values.completionCondition, bpmnFactory);\n    }\n  }));\n\n  return entries;\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/MultiInstanceLoopCharacteristics.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js":
  /*!*************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js ***!
    \*************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    inputOutputHelper = __webpack_require__(/*! ../../../../helper/InputOutputHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/InputOutputHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query;\n\nvar InputOutputParameter = __webpack_require__(/*! ./InputOutputParameter */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/InputOutputParameter.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  options = options || {};\n\n  var insideConnector = !!options.insideConnector,\n      idPrefix = options.idPrefix || '';\n\n  var result = {};\n\n  var entries = result.entries = [];\n\n  if (!inputOutputHelper.isInputOutputSupported(element, insideConnector) ||\n    !inputOutputHelper.areOutputParametersSupported(element, insideConnector)) {\n    return result;\n  }\n\n  var parametersOptions = {\n    insideConnector: insideConnector,\n    idPrefix: idPrefix\n  };\n\n  // output parameters ///////////////////////////////////////////////////////\n  entries.push(\n    getParametersHeading(element, bpmnFactory, {\n      idPrefix: idPrefix,\n      insideConnector: insideConnector,\n      type: 'camunda:OutputParameter',\n      prop: 'outputParameters',\n      prefix: 'Output'\n    }));\n\n  append(entries,\n    getOutputParameterEntries(element, bpmnFactory, parametersOptions, translate)\n  );\n\n  return result;\n};\n\nfunction getParametersHeading(element, bpmnFactory, options) {\n  var idPrefix = options.idPrefix || '',\n      prefix = options.prefix,\n      type = options.type,\n      prop = options.prop,\n      insideConnector = options.insideConnector;\n\n  var entry = {\n    id: idPrefix + prefix + '-heading',\n    cssClasses: [ 'bpp-input-output' ],\n    html: '<div class=\"bpp-field-wrapper\">' +\n      '<button type=\"button\" class=\"bpp-input-output__add add action-button\" ' + 'data-action=\"createElement\">' +\n      '</button><input name=\"hidden\" type=\"hidden\">' +\n      '</div>'\n  };\n\n  entry.createElement = function(_, entryNode) {\n    var commands = createElement();\n\n    if (commands) {\n      scheduleCommands(commands, entryNode);\n      return true;\n    }\n  };\n\n  entry.set = function() {\n    var commands = entry._commands;\n\n    if (commands) {\n      delete entry._commands;\n      return commands;\n    }\n  };\n\n  function createElement() {\n    var commands = [];\n    var bo = getBusinessObject(element);\n    var extensionElements = bo.get('extensionElements');\n\n    if (!extensionElements) {\n      extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);\n      commands.push(cmdHelper.updateBusinessObject(element, bo, { extensionElements: extensionElements }));\n    }\n\n    var inputOutput = getInputOutput(element, insideConnector);\n    if (!inputOutput) {\n      var parent = !insideConnector ? extensionElements : getConnector(element);\n      inputOutput = createInputOutput(parent, bpmnFactory, {\n        inputParameters: [],\n        outputParameters: []\n      });\n\n      if (!insideConnector) {\n        commands.push(cmdHelper.addAndRemoveElementsFromList(\n          element,\n          extensionElements,\n          'values',\n          'extensionElements',\n          [ inputOutput ],\n          []\n        ));\n      } else {\n        commands.push(cmdHelper.updateBusinessObject(element, parent, { inputOutput: inputOutput }));\n      }\n    }\n\n    var newElem = createParameter(type, inputOutput, bpmnFactory, { name: generateElementId(prefix) });\n    commands.push(cmdHelper.addElementsTolist(element, inputOutput, prop, [], [ newElem ]));\n\n    return commands;\n  }\n\n  /**\n   * Schedule commands to be run with next `set` method call.\n   *\n   * @param {Array<any>} commands\n   * @param {HTMLElement} entryNode\n   */\n  function scheduleCommands(commands, entryNode) {\n    entry._commands = commands;\n\n    // @barmac: hack to make properties panel call `set`\n    var input = domQuery('input[type=\"hidden\"]', entryNode);\n    input.value = 1;\n  }\n\n  return entry;\n}\n\nfunction getOutputParameterEntries(element, bpmnFactory, options, translate) {\n  var idPrefix = options.idPrefix,\n      insideConnector = options.insideConnector,\n      inputOutput = getInputOutput(element, insideConnector),\n      params = getOutputParameters(element, insideConnector),\n      entries;\n\n  if (!params.length) {\n    var description = entryFieldDescription(translate, translate('No variables defined.'));\n\n    return [{\n      id: idPrefix + 'output-parameter' + '-placeholder',\n      cssClasses: [ 'bpp-input-output-placeholder' ],\n      html: description\n    }];\n  }\n\n  var outputParameters = params.map(function(param, index) {\n    function onRemove() {\n      var commands = [];\n      commands.push(cmdHelper.removeElementsFromList(element, inputOutput, 'outputParameters', null, [param]));\n\n      // remove inputOutput if there are no input/output parameters anymore\n      if (inputOutput.get('outputParameters').length === 1 && (inputOutput.get('inputParameters') || []).length === 0) {\n\n        if (!insideConnector) {\n          commands.push(extensionElementsHelper.removeEntry(getBusinessObject(element), element, inputOutput));\n        }\n        else {\n          var connector = getConnector(element);\n          commands.push(cmdHelper.updateBusinessObject(element, connector, { inputOutput: undefined }));\n        }\n      }\n\n      return commands;\n    }\n\n    return InputOutputParameter(param, bpmnFactory,\n      {\n        idPrefix: idPrefix + 'output-parameter-' + index,\n        onRemove: onRemove,\n        onToggle: onToggle\n      }, translate);\n  });\n\n  /**\n   * Close remaining collapsible entries within group.\n   *\n   * @param {boolean} value\n   * @param {HTMLElement} entryNode\n   */\n  function onToggle(value, entryNode) {\n    if (!value) {\n      return;\n    }\n\n    var currentEntryId = entryNode.dataset.entry;\n\n    outputParameters.forEach(function(outputParameter) {\n      if (outputParameter.entries[0].id === currentEntryId) {\n        return;\n      }\n\n      outputParameter.setOpen(false);\n    });\n  }\n\n  entries = outputParameters.map(function(input) {\n    return input.entries;\n  });\n\n  return flatten(entries);\n}\n\nfunction append(array, items) {\n  Array.prototype.push.apply(array, items);\n}\n\nfunction flatten(arrays) {\n  return Array.prototype.concat.apply([], arrays);\n}\n\nfunction generateElementId(prefix) {\n  prefix = prefix + '_';\n  return utils.nextId(prefix);\n}\n\nfunction getInputOutput(element, insideConnector) {\n  return inputOutputHelper.getInputOutput(element, insideConnector);\n}\n\nfunction getConnector(element) {\n  return inputOutputHelper.getConnector(element);\n}\n\nfunction getOutputParameters(element, insideConnector) {\n  return inputOutputHelper.getOutputParameters(element, insideConnector);\n}\n\nfunction createElement(type, parent, factory, properties) {\n  return elementHelper.createElement(type, properties, parent, factory);\n}\n\nfunction createInputOutput(parent, bpmnFactory, properties) {\n  return createElement('camunda:InputOutput', parent, bpmnFactory, properties);\n}\n\nfunction createParameter(type, parent, bpmnFactory, properties) {\n  return createElement(type, parent, bpmnFactory, properties);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/OutputParameters.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js":
  /*!*************************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js ***!
    \*************************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getVariablesForScope = __webpack_require__(/*! @bpmn-io/extract-process-variables */ \"./node_modules/@bpmn-io/extract-process-variables/dist/index.esm.js\").getVariablesForScope;\n\nvar groupBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").groupBy,\n    flatten = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").flatten,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n    keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n    map = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").map,\n    sortBy = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").sortBy;\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    isAny = __webpack_require__(/*! bpmn-js/lib/features/modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\").isAny;\n\nvar escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML;\n\nvar factory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar entryFieldDescription = __webpack_require__(/*! ../../../../factory/EntryFieldDescription */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFieldDescription.js\");\n\n\nmodule.exports = function(element, translate) {\n\n  var entries = [];\n\n  function createVariablesList(variables, scope) {\n    var scopePrefix = scope ? scope + '-' : '';\n\n    return flatten(map(variables, function(variable, idx) {\n\n      var name = variable.name,\n          origin = variable.origin,\n          variableEntries = [];\n\n      // title ///////////////////\n\n      var collapsible = factory.collapsible({\n        id: scopePrefix + 'variable- ' + idx + '-collapsible',\n        title: escapeHTML(name),\n        description: origin.toString(),\n        open: false,\n        get: function() {\n          return {\n            title: escapeHTML(name),\n            description: origin.toString()\n          };\n        }\n      });\n\n      var isOpen = collapsible.isOpen;\n\n      variableEntries.push(collapsible);\n\n      // created in //////////////////\n\n      var createdInHtml = '<div data-show=\"show\">' +\n        '<b>' + escapeHTML(translate('Created in')) + '</b>' +\n        createdInList(origin) +\n      '</div>';\n\n      variableEntries.push({\n        id: scopePrefix + 'variable- ' + idx + '-created-in',\n        html: createdInHtml,\n        cssClasses: [\n          'bpp-process-variables',\n          'bpp-process-variables__created-in'\n        ],\n        show: function() {\n          return isOpen();\n        }\n      });\n\n      return variableEntries;\n    }));\n  }\n\n\n  if (!canHaveProcessVariables(element)) {\n    return entries;\n  }\n\n  var businessObject = getBusinessObject(element),\n      rootElement = getRootElement(businessObject),\n      scope = getScope(element);\n\n  var variables = getVariablesForScope(scope, rootElement),\n      sorted = sortByName(variables),\n      withNames = populateElementNames(sorted),\n      byScope = groupByScope(withNames);\n\n  // (1) tab description entry\n  var description = entryFieldDescription(translate, translate('Available process variables, identified in the diagram.'));\n\n  entries.push({\n    id: 'process-variables-description',\n    html: description,\n    cssClasses: [\n      'bpp-process-variables',\n      'bpp-process-variables__description'\n    ]\n  });\n\n  // (2) empty list placeholder\n  if (!withNames.length) {\n    var placeholder = entryFieldDescription(translate, translate('No variables found.'));\n\n    entries.push({\n      id: 'process-variables-placeholder',\n      html: placeholder\n    });\n\n    return entries;\n  }\n\n  if (keys(byScope).length > 1) {\n\n    // (3a) multiple scopes variables lists\n\n    // assumption: variables extractor fetches parent variables first\n    forEach(reverse(keys(byScope)), function(scope) {\n      var variables = byScope[scope];\n\n      entries.push({\n        id: scope + '-scope-title',\n        html: '<div>' + escapeHTML(translate('Scope: ')) + scope + '</div>',\n        cssClasses: [\n          'bpp-process-variables',\n          'bpp-process-variables__scope-title',\n          'bpp-collapsible-break'\n        ]\n      });\n\n      entries = entries.concat(createVariablesList(variables, scope));\n    });\n  } else {\n\n    // (3b) single scope variables list\n    entries = entries.concat(createVariablesList(withNames));\n  }\n\n\n  return entries;\n};\n\n\n// helpers //////////\n\nfunction getRootElement(element) {\n  var businessObject = getBusinessObject(element);\n\n  if (is(businessObject, 'bpmn:Participant')) {\n    return businessObject.processRef;\n  }\n\n  if (is(businessObject, 'bpmn:Process')) {\n    return businessObject;\n  }\n\n  var parent = businessObject;\n\n  while (parent.$parent && !is(parent, 'bpmn:Process')) {\n    parent = parent.$parent;\n  }\n\n  return parent;\n}\n\nfunction getScope(element) {\n  if (is(element, 'bpmn:Participant')) {\n    return getBusinessObject(element).processRef.id;\n  }\n\n  return element.id;\n}\n\nfunction sortByName(variables) {\n  return sortBy(variables, function(variable) {\n    return variable.name;\n  });\n}\n\nfunction populateElementNames(variables) {\n  forEach(variables, function(variable) {\n    var names = map(variable.origin, function(element) {\n      return element.name || element.id;\n    });\n\n    variable.origin = names;\n    variable.scope = variable.scope.name || variable.scope.id;\n  });\n\n  return variables;\n}\n\nfunction canHaveProcessVariables(element) {\n  var businessObject = getBusinessObject(element);\n\n  return (\n    isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) ||\n      (is(element, 'bpmn:Participant') && businessObject.get('processRef'))\n  );\n}\n\nfunction groupByScope(variables) {\n  return groupBy(variables, 'scope');\n}\n\nfunction createdInList(origin) {\n  var html = '';\n\n  forEach(origin, function(o) {\n    html += '<p class=\"bpp-process-variables__created-in-item\">' + o + '</p>';\n  });\n  return html;\n}\n\nfunction reverse(array) {\n  return map(array, function(a, i) {\n    return array[array.length - 1 - i];\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ProcessVariables.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js":
  /*!*******************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js ***!
    \*******************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar getBusinessObject = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject,\n    is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar factory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\n\nvar elementHelper = __webpack_require__(/*! ../../../../helper/ElementHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ElementHelper.js\"),\n    extensionElementsHelper = __webpack_require__(/*! ../../../../helper/ExtensionElementsHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\"),\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\"),\n    forEach = __webpack_require__(/*! lodash/forEach */ \"./node_modules/lodash/forEach.js\"),\n    find = __webpack_require__(/*! lodash/find */ \"./node_modules/lodash/find.js\");\n\nfunction generatePropertyId() {\n  return utils.nextId('Property_');\n}\n\n/**\n * Get all camunda:property objects for a specific business object\n *\n * @param  {ModdleElement} parent\n *\n * @return {Array<ModdleElement>} a list of camunda:property objects\n */\nfunction getPropertyValues(parent) {\n  var properties = parent && getPropertiesElement(parent);\n  if (properties && properties.values) {\n    return properties.values;\n  }\n  return [];\n}\n\n/**\n * Get all camunda:Properties object for a specific business object\n *\n * @param  {ModdleElement} parent\n *\n * @return {ModdleElement} a camunda:Properties object\n */\nfunction getPropertiesElement(element) {\n  if (!isExtensionElements(element)) {\n    return element.properties;\n  } else {\n    return getPropertiesElementInsideExtensionElements(element);\n  }\n}\n\n/**\n * Get first camunda:Properties object for a specific bpmn:ExtensionElements\n * business object.\n *\n * @param {ModdleElement} extensionElements\n *\n * @return {ModdleElement} a camunda:Properties object\n */\nfunction getPropertiesElementInsideExtensionElements(extensionElements) {\n  return find(extensionElements.values, function(elem) {\n    return is(elem, 'camunda:Properties');\n  });\n}\n\n/**\n * Returns true, if the given business object is a bpmn:ExtensionElements.\n *\n * @param {ModdleElement} element\n *\n * @return {boolean} a boolean value\n */\nfunction isExtensionElements(element) {\n  return is(element, 'bpmn:ExtensionElements');\n}\n\n/**\n * Create a camunda:property entry using tableEntryFactory\n *\n * @param  {djs.model.Base} element\n * @param  {BpmnFactory} bpmnFactory\n * @param  {Object} options\n * @param  {string} options.id\n * @param  {Array<string>} options.modelProperties\n * @param  {Array<string>} options.labels\n * @param  {function} options.getParent Gets the parent business object\n * @param  {function} options.show Indicate when the entry will be shown, should return boolean\n */\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getParent = options.getParent;\n\n  var modelProperties = options.modelProperties,\n      createParent = options.createParent;\n\n  var bo = getBusinessObject(element);\n  if (is(element, 'bpmn:Participant')) {\n    bo = bo.get('processRef');\n  }\n\n  // build properties group only when the participant have a processRef\n  if (!bo) {\n    return;\n  }\n\n  assign(options, {\n    addLabel: translate('Add Property'),\n    getElements: function(element, node) {\n      var parent = getParent(element, node, bo);\n      return getPropertyValues(parent);\n    },\n    addElement: function(element, node) {\n      var commands = [],\n          parent = getParent(element, node, bo);\n\n      if (!parent && typeof createParent === 'function') {\n        var result = createParent(element, bo);\n        parent = result.parent;\n        commands.push(result.cmd);\n      }\n\n      var properties = getPropertiesElement(parent);\n      if (!properties) {\n        properties = elementHelper.createElement('camunda:Properties', {}, parent, bpmnFactory);\n\n        if (!isExtensionElements(parent)) {\n          commands.push(cmdHelper.updateBusinessObject(element, parent, { 'properties': properties }));\n        } else {\n          commands.push(cmdHelper.addAndRemoveElementsFromList(\n            element,\n            parent,\n            'values',\n            'extensionElements',\n            [ properties ],\n            []\n          ));\n        }\n      }\n\n      var propertyProps = {};\n      forEach(modelProperties, function(prop) {\n        propertyProps[prop] = undefined;\n      });\n\n      // create id if necessary\n      if (modelProperties.indexOf('id') >= 0) {\n        propertyProps.id = generatePropertyId();\n      }\n\n      var property = elementHelper.createElement('camunda:Property', propertyProps, properties, bpmnFactory);\n      commands.push(cmdHelper.addElementsTolist(element, properties, 'values', [ property ]));\n\n      return commands;\n    },\n    updateElement: function(element, value, node, idx) {\n      var parent = getParent(element, node, bo),\n          property = getPropertyValues(parent)[idx];\n\n      forEach(modelProperties, function(prop) {\n        value[prop] = value[prop] || undefined;\n      });\n\n      return cmdHelper.updateBusinessObject(element, property, value);\n    },\n    validate: function(element, value, node, idx) {\n\n      // validate id if necessary\n      if (modelProperties.indexOf('id') >= 0) {\n\n        var parent = getParent(element, node, bo),\n            properties = getPropertyValues(parent),\n            property = properties[idx];\n\n        if (property) {\n\n          // check if id is valid\n          var validationError = utils.isIdValid(property, value.id, translate);\n\n          if (validationError) {\n            return { id: validationError };\n          }\n        }\n      }\n    },\n    removeElement: function(element, node, idx) {\n      var commands = [],\n          parent = getParent(element, node, bo),\n          properties = getPropertiesElement(parent),\n          propertyValues = getPropertyValues(parent),\n          currentProperty = propertyValues[idx];\n\n      commands.push(cmdHelper.removeElementsFromList(element, properties, 'values', null, [ currentProperty ]));\n\n      if (propertyValues.length === 1) {\n\n        // remove camunda:properties if the last existing property has been removed\n        if (!isExtensionElements(parent)) {\n          commands.push(cmdHelper.updateBusinessObject(element, parent, { properties: undefined }));\n        } else {\n          forEach(parent.values, function(value) {\n            if (is(value, 'camunda:Properties')) {\n              commands.push(extensionElementsHelper.removeEntry(bo, element, value));\n            }\n          });\n        }\n      }\n\n      return commands;\n    }\n  });\n\n  return factory.table(translate, options);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Properties.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js":
  /*!***********************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js ***!
    \***********************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar is = __webpack_require__(/*! bpmn-js/lib/util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is;\n\nvar assign = __webpack_require__(/*! lodash/assign */ \"./node_modules/lodash/assign.js\");\n\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\"),\n    cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\n\nmodule.exports = function(element, bpmnFactory, options, translate) {\n\n  var getBusinessObject = options.getBusinessObject,\n      hideResultVariable = options.hideResultVariable,\n      id = options.id || 'resultVariable';\n\n\n  var resultVariableEntry = entryFactory.textField(translate, {\n    id: id,\n    label: translate('Result Variable'),\n    modelProperty: 'resultVariable',\n\n    get: function(element, node) {\n      var bo = getBusinessObject(element);\n      return { resultVariable: bo.get('camunda:resultVariable') };\n    },\n\n    set: function(element, values, node) {\n      var bo = getBusinessObject(element);\n\n      var resultVariable = values.resultVariable || undefined;\n\n      var props = {\n        'camunda:resultVariable': resultVariable\n      };\n\n      if (is(bo, 'camunda:DmnCapable') && !resultVariable) {\n        props = assign({ 'camunda:mapDecisionResult': 'resultList' }, props);\n      }\n\n      return cmdHelper.updateBusinessObject(element, bo, props);\n    },\n\n    hidden: function(element, node) {\n      if (typeof hideResultVariable === 'function') {\n        return hideResultVariable.apply(resultVariableEntry, arguments);\n      }\n    }\n\n  });\n\n  return [ resultVariableEntry ];\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/ResultVariable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js ***!
    \***************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar domQuery = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\").query,\n    escapeHTML = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\").escapeHTML,\n    utils = __webpack_require__(/*! ../../../../Utils */ \"./node_modules/bpmn-js-properties-panel/lib/Utils.js\");\n\n\nfunction getScriptType(node, idPrefix) {\n\n  // if we have an idPrefix, work with specific selector\n  var selector;\n\n  if (idPrefix && idPrefix != '') {\n    selector = 'select[id=\"' + idPrefix + 'cam-script-type\"]';\n  } else {\n    selector = 'select[name=\"scriptType\"]';\n  }\n\n  return utils.selectedType(selector, node.parentElement);\n}\n\n\nmodule.exports = function(scriptLanguagePropName, scriptValuePropName, isFormatRequired, translate, options) {\n  var idPrefix = options && options.idPrefix || '';\n\n  return {\n    template:\n    '<div class=\"bpp-row bpp-textfield\">' +\n      '<label for=\"' + idPrefix + 'cam-script-format\">' + escapeHTML(translate('Script Format')) + '</label>' +\n      '<div class=\"bpp-field-wrapper\">' +\n        '<input id=\"' + idPrefix + 'cam-script-format\" type=\"text\" name=\"scriptFormat\" />' +\n        '<button class=\"action-button clear\" data-action=\"script.clearScriptFormat\" data-show=\"script.canClearScriptFormat\">' +\n          '<span>X</span>' +\n        '</button>' +\n      '</div>' +\n    '</div>' +\n\n    '<div class=\"bpp-row\">' +\n      '<label for=\"' + idPrefix + 'cam-script-type\">' + escapeHTML(translate('Script Type')) + '</label>' +\n      '<div class=\"bpp-field-wrapper\">' +\n        '<select id=\"' + idPrefix + 'cam-script-type\" name=\"scriptType\" data-value>' +\n          '<option value=\"script\" selected>' + escapeHTML(translate('Inline Script')) + '</option>' +\n          '<option value=\"scriptResource\">' + escapeHTML(translate('External Resource')) + '</option>' +\n        '</select>' +\n      '</div>' +\n    '</div>' +\n\n    '<div class=\"bpp-row bpp-textfield\">' +\n      '<label for=\"' + idPrefix + 'cam-script-resource-val\" data-show=\"script.isScriptResource\">' + escapeHTML(translate('Resource')) + '</label>' +\n      '<div class=\"bpp-field-wrapper\" data-show=\"script.isScriptResource\">' +\n        '<input id=\"' + idPrefix + 'cam-script-resource-val\" type=\"text\" name=\"scriptResourceValue\" />' +\n        '<button class=\"action-button clear\" data-action=\"script.clearScriptResource\" data-show=\"script.canClearScriptResource\">' +\n          '<span>X</span>' +\n        '</button>' +\n      '</div>' +\n    '</div>' +\n\n    '<div class=\"bpp-row\">' +\n      '<label for=\"' + idPrefix + 'cam-script-val\" data-show=\"script.isScript\">' + escapeHTML(translate('Script')) + '</label>' +\n      '<div class=\"bpp-field-wrapper\" data-show=\"script.isScript\">' +\n        '<textarea id=\"' + idPrefix + 'cam-script-val\" type=\"text\" name=\"scriptValue\"></textarea>' +\n      '</div>'+\n    '</div>',\n\n    get: function(element, bo) {\n      var values = {};\n\n      // read values from xml:\n      var boScriptResource = bo.get('camunda:resource'),\n          boScript = bo.get(scriptValuePropName),\n          boScriptFormat = bo.get(scriptLanguagePropName);\n\n      if (typeof boScriptResource !== 'undefined') {\n        values.scriptResourceValue = boScriptResource;\n        values.scriptType = 'scriptResource';\n      } else {\n        values.scriptValue = boScript;\n        values.scriptType = 'script';\n      }\n\n      values.scriptFormat = boScriptFormat;\n\n      return values;\n    },\n\n    set: function(element, values, containerElement) {\n      var scriptFormat = values.scriptFormat,\n          scriptType = values.scriptType,\n          scriptResourceValue = values.scriptResourceValue,\n          scriptValue = values.scriptValue;\n\n      // init update\n      var update = {\n        'camunda:resource': undefined\n      };\n      update[scriptValuePropName] = undefined;\n      update[scriptLanguagePropName] = undefined;\n\n      if (isFormatRequired) {\n\n        // always set language\n        update[scriptLanguagePropName] = scriptFormat || '';\n      } else\n\n      // set language only when scriptFormat has a value\n      if (scriptFormat !== '') {\n        update[scriptLanguagePropName] = scriptFormat;\n      }\n\n      // set either inline script or resource\n      if ('scriptResource' === scriptType) {\n        update['camunda:resource'] = scriptResourceValue || '';\n      } else {\n        update[scriptValuePropName] = scriptValue || '';\n      }\n\n      return update;\n    },\n\n    validate: function(element, values) {\n      var validationResult = {};\n\n      if (values.scriptType === 'script' && !values.scriptValue) {\n        validationResult.scriptValue = translate('Must provide a value');\n      }\n\n      if (values.scriptType === 'scriptResource' && !values.scriptResourceValue) {\n        validationResult.scriptResourceValue = translate('Must provide a value');\n      }\n\n      if (isFormatRequired && (!values.scriptFormat || values.scriptFormat.length === 0)) {\n        validationResult.scriptFormat = translate('Must provide a value');\n      }\n\n      return validationResult;\n    },\n\n    clearScriptFormat: function(element, inputNode, btnNode, scopeNode) {\n      domQuery('input[name=scriptFormat]', scopeNode).value='';\n\n      return true;\n    },\n\n    canClearScriptFormat: function(element, inputNode, btnNode, scopeNode) {\n      var input = domQuery('input[name=scriptFormat]', scopeNode);\n\n      return input.value !== '';\n    },\n\n    clearScriptResource: function(element, inputNode, btnNode, scopeNode) {\n      domQuery('input[name=scriptResourceValue]', scopeNode).value='';\n\n      return true;\n    },\n\n    canClearScriptResource: function(element, inputNode, btnNode, scopeNode) {\n      var input = domQuery('input[name=scriptResourceValue]', scopeNode);\n\n      return input.value !== '';\n    },\n\n    clearScript: function(element, inputNode, btnNode, scopeNode) {\n      domQuery('textarea[name=scriptValue]', scopeNode).value='';\n\n      return true;\n    },\n\n    canClearScript: function(element, inputNode, btnNode, scopeNode) {\n      var input = domQuery('textarea[name=scriptValue]', scopeNode);\n\n      return input.value !== '';\n    },\n\n    isScriptResource: function(element, inputNode, btnNode, scopeNode) {\n      var scriptType = getScriptType(scopeNode, idPrefix);\n      return scriptType === 'scriptResource';\n    },\n\n    isScript: function(element, inputNode, btnNode, scopeNode) {\n      var scriptType = getScriptType(scopeNode, idPrefix);\n      return scriptType === 'script';\n    }\n\n  };\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Script.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js":
  /*!*****************************************************************************************************!*\
    !*** ./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js ***!
    \*****************************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\r\n\r\nvar entryFactory = __webpack_require__(/*! ../../../../factory/EntryFactory */ \"./node_modules/bpmn-js-properties-panel/lib/factory/EntryFactory.js\");\r\n\r\nvar cmdHelper = __webpack_require__(/*! ../../../../helper/CmdHelper */ \"./node_modules/bpmn-js-properties-panel/lib/helper/CmdHelper.js\");\r\n\r\nmodule.exports = function(element, bpmnFactory, options, translate) {\r\n\r\n  var getBusinessObject = options.getBusinessObject;\r\n\r\n  var isStartableInTasklistEntry = entryFactory.checkbox(translate, {\r\n    id: 'isStartableInTasklist',\r\n    label: translate('Startable'),\r\n    modelProperty: 'isStartableInTasklist',\r\n\r\n    get: function(element, node) {\r\n      var bo = getBusinessObject(element);\r\n      var isStartableInTasklist = bo.get('camunda:isStartableInTasklist');\r\n\r\n      return {\r\n        isStartableInTasklist: isStartableInTasklist ? isStartableInTasklist : ''\r\n      };\r\n    },\r\n\r\n    set: function(element, values) {\r\n      var bo = getBusinessObject(element);\r\n      return cmdHelper.updateBusinessObject(element, bo, {\r\n        'camunda:isStartableInTasklist': !!values.isStartableInTasklist\r\n      });\r\n    }\r\n\r\n  });\r\n\r\n  return [\r\n    isStartableInTasklistEntry\r\n  ];\r\n};\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js-properties-panel/lib/provider/camunda/parts/implementation/Tasklist.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/BaseModeler.js":
  /*!*************************************************!*\
    !*** ./node_modules/bpmn-js/lib/BaseModeler.js ***!
    \*************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BaseModeler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ids__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\");\n/* harmony import */ var _BaseViewer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseViewer */ \"./node_modules/bpmn-js/lib/BaseViewer.js\");\n\n\n\n\n\n\n\n/**\n * A base modeler for BPMN 2.0 diagrams.\n *\n * Have a look at {@link Modeler} for a bundle that includes actual features.\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules\n * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction BaseModeler(options) {\n  _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default.call(this, options);\n\n  // hook ID collection into the modeler\n  this.on('import.parse.complete', function(event) {\n    if (!event.error) {\n      this._collectIds(event.definitions, event.elementsById);\n    }\n  }, this);\n\n  this.on('diagram.destroy', function() {\n    this.get('moddle').ids.clear();\n  }, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BaseModeler, _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default);\n\n\n/**\n * Create a moddle instance, attaching ids to it.\n *\n * @param {Object} options\n */\nBaseModeler.prototype._createModdle = function(options) {\n  var moddle = _BaseViewer__WEBPACK_IMPORTED_MODULE_2__.default.prototype._createModdle.call(this, options);\n\n  // attach ids to moddle to be able to track\n  // and validated ids in the BPMN 2.0 XML document\n  // tree\n  moddle.ids = new ids__WEBPACK_IMPORTED_MODULE_1__.default([ 32, 36, 1 ]);\n\n  return moddle;\n};\n\n/**\n * Collect ids processed during parsing of the\n * definitions object.\n *\n * @param {ModdleElement} definitions\n * @param {Context} context\n */\nBaseModeler.prototype._collectIds = function(definitions, elementsById) {\n\n  var moddle = definitions.$model,\n      ids = moddle.ids,\n      id;\n\n  // remove references from previous import\n  ids.clear();\n\n  for (id in elementsById) {\n    ids.claim(id, elementsById[id]);\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/BaseModeler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/BaseViewer.js":
  /*!************************************************!*\
    !*** ./node_modules/bpmn-js/lib/BaseViewer.js ***!
    \************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BaseViewer)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var diagram_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js */ \"./node_modules/diagram-js/lib/Diagram.js\");\n/* harmony import */ var bpmn_moddle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! bpmn-moddle */ \"./node_modules/bpmn-moddle/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _import_Importer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./import/Importer */ \"./node_modules/bpmn-js/lib/import/Importer.js\");\n/* harmony import */ var _util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/CompatibilityUtil */ \"./node_modules/bpmn-js/lib/util/CompatibilityUtil.js\");\n/* harmony import */ var _util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./util/PoweredByUtil */ \"./node_modules/bpmn-js/lib/util/PoweredByUtil.js\");\n/**\n * The code in the <project-logo></project-logo> area\n * must not be changed.\n *\n * @see http://bpmn.io/license for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A base viewer for BPMN 2.0 diagrams.\n *\n * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for\n * bundles that include actual features.\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules\n * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction BaseViewer(options) {\n\n  options = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, DEFAULT_OPTIONS, options);\n\n  this._moddle = this._createModdle(options);\n\n  this._container = this._createContainer(options);\n\n  /* <project-logo> */\n\n  addProjectLogo(this._container);\n\n  /* </project-logo> */\n\n  this._init(this._container, this._moddle, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BaseViewer, diagram_js__WEBPACK_IMPORTED_MODULE_2__.default);\n\n/**\n* The importXML result.\n*\n* @typedef {Object} ImportXMLResult\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n* The importXML error.\n*\n* @typedef {Error} ImportXMLError\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n * Parse and render a BPMN 2.0 diagram.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During import the viewer will fire life-cycle events:\n *\n *   * import.parse.start (about to read model from xml)\n *   * import.parse.complete (model read; may have worked or not)\n *   * import.render.start (graphical import start)\n *   * import.render.complete (graphical import finished)\n *   * import.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {string} xml the BPMN 2.0 xml\n * @param {ModdleElement<BPMNDiagram>|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered)\n *\n * Returns {Promise<ImportXMLResult, ImportXMLError>}\n */\nBaseViewer.prototype.importXML = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function importXML(xml, bpmnDiagram) {\n\n  var self = this;\n\n  function ParseCompleteEvent(data) {\n\n    var event = self.get('eventBus').createEvent(data);\n\n    // TODO(nikku): remove with future bpmn-js version\n    Object.defineProperty(event, 'context', {\n      enumerable: true,\n      get: function() {\n\n        console.warn(new Error(\n          'import.parse.complete <context> is deprecated ' +\n          'and will be removed in future library versions'\n        ));\n\n        return {\n          warnings: data.warnings,\n          references: data.references,\n          elementsById: data.elementsById\n        };\n      }\n    });\n\n    return event;\n  }\n\n  return new Promise(function(resolve, reject) {\n\n    // hook in pre-parse listeners +\n    // allow xml manipulation\n    xml = self._emit('import.parse.start', { xml: xml }) || xml;\n\n    self._moddle.fromXML(xml, 'bpmn:Definitions').then(function(result) {\n      var definitions = result.rootElement;\n      var references = result.references;\n      var parseWarnings = result.warnings;\n      var elementsById = result.elementsById;\n\n      // hook in post parse listeners +\n      // allow definitions manipulation\n      definitions = self._emit('import.parse.complete', ParseCompleteEvent({\n        error: null,\n        definitions: definitions,\n        elementsById: elementsById,\n        references: references,\n        warnings: parseWarnings\n      })) || definitions;\n\n      self.importDefinitions(definitions, bpmnDiagram).then(function(result) {\n        var allWarnings = [].concat(parseWarnings, result.warnings || []);\n\n        self._emit('import.done', { error: null, warnings: allWarnings });\n\n        return resolve({ warnings: allWarnings });\n      }).catch(function(err) {\n        var allWarnings = [].concat(parseWarnings, err.warnings || []);\n\n        self._emit('import.done', { error: err, warnings: allWarnings });\n\n        return reject(addWarningsToError(err, allWarnings));\n      });\n    }).catch(function(err) {\n\n      self._emit('import.parse.complete', {\n        error: err\n      });\n\n      err = checkValidationError(err);\n\n      self._emit('import.done', { error: err, warnings: err.warnings });\n\n      return reject(err);\n    });\n  });\n});\n\n/**\n* The importDefinitions result.\n*\n* @typedef {Object} ImportDefinitionsResult\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n* The importDefinitions error.\n*\n* @typedef {Error} ImportDefinitionsError\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n * Import parsed definitions and render a BPMN 2.0 diagram.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During import the viewer will fire life-cycle events:\n *\n *   * import.render.start (graphical import start)\n *   * import.render.complete (graphical import finished)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {ModdleElement<Definitions>} definitions parsed BPMN 2.0 definitions\n * @param {ModdleElement<BPMNDiagram>|string} [bpmnDiagram] BPMN diagram or id of diagram to render (if not provided, the first one will be rendered)\n *\n * Returns {Promise<ImportDefinitionsResult, ImportDefinitionsError>}\n */\nBaseViewer.prototype.importDefinitions = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function importDefinitions(definitions, bpmnDiagram) {\n\n  var self = this;\n\n  return new Promise(function(resolve, reject) {\n\n    self._setDefinitions(definitions);\n\n    self.open(bpmnDiagram).then(function(result) {\n\n      var warnings = result.warnings;\n\n      return resolve({ warnings: warnings });\n    }).catch(function(err) {\n\n      return reject(err);\n    });\n  });\n});\n\n/**\n * The open result.\n *\n * @typedef {Object} OpenResult\n *\n * @property {Array<string>} warnings\n */\n\n/**\n* The open error.\n*\n* @typedef {Error} OpenError\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n * Open diagram of previously imported XML.\n *\n * Once finished the viewer reports back the result to the\n * provided callback function with (err, warnings).\n *\n * ## Life-Cycle Events\n *\n * During switch the viewer will fire life-cycle events:\n *\n *   * import.render.start (graphical import start)\n *   * import.render.complete (graphical import finished)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {string|ModdleElement<BPMNDiagram>} [bpmnDiagramOrId] id or the diagram to open\n *\n * Returns {Promise<OpenResult, OpenError>}\n */\nBaseViewer.prototype.open = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function open(bpmnDiagramOrId) {\n\n  var definitions = this._definitions;\n  var bpmnDiagram = bpmnDiagramOrId;\n\n  var self = this;\n\n  return new Promise(function(resolve, reject) {\n    if (!definitions) {\n      var err1 = new Error('no XML imported');\n\n      return reject(addWarningsToError(err1, []));\n    }\n\n    if (typeof bpmnDiagramOrId === 'string') {\n      bpmnDiagram = findBPMNDiagram(definitions, bpmnDiagramOrId);\n\n      if (!bpmnDiagram) {\n        var err2 = new Error('BPMNDiagram <' + bpmnDiagramOrId + '> not found');\n\n        return reject(addWarningsToError(err2, []));\n      }\n    }\n\n    // clear existing rendered diagram\n    // catch synchronous exceptions during #clear()\n    try {\n      self.clear();\n    } catch (error) {\n\n      return reject(addWarningsToError(error, []));\n    }\n\n    // perform graphical import\n    (0,_import_Importer__WEBPACK_IMPORTED_MODULE_4__.importBpmnDiagram)(self, definitions, bpmnDiagram).then(function(result) {\n\n      var warnings = result.warnings;\n\n      return resolve({ warnings: warnings });\n    }).catch(function(err) {\n\n      return reject(err);\n    });\n  });\n});\n\n/**\n * The saveXML result.\n *\n * @typedef {Object} SaveXMLResult\n *\n * @property {string} xml\n */\n\n/**\n * Export the currently displayed BPMN 2.0 diagram as\n * a BPMN 2.0 XML document.\n *\n * ## Life-Cycle Events\n *\n * During XML saving the viewer will fire life-cycle events:\n *\n *   * saveXML.start (before serialization)\n *   * saveXML.serialized (after xml generation)\n *   * saveXML.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {Object} [options] export options\n * @param {boolean} [options.format=false] output formatted XML\n * @param {boolean} [options.preamble=true] output preamble\n *\n * Returns {Promise<SaveXMLResult, Error>}\n */\nBaseViewer.prototype.saveXML = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function saveXML(options) {\n\n  options = options || {};\n\n  var self = this;\n\n  var definitions = this._definitions;\n\n  return new Promise(function(resolve) {\n\n    if (!definitions) {\n      return resolve({\n        error: new Error('no definitions loaded')\n      });\n    }\n\n    // allow to fiddle around with definitions\n    definitions = self._emit('saveXML.start', {\n      definitions: definitions\n    }) || definitions;\n\n    self._moddle.toXML(definitions, options).then(function(result) {\n\n      var xml = result.xml;\n\n      xml = self._emit('saveXML.serialized', {\n        xml: xml\n      }) || xml;\n\n      return resolve({\n        xml: xml\n      });\n    });\n  }).catch(function(error) {\n    return { error: error };\n  }).then(function(result) {\n\n    self._emit('saveXML.done', result);\n\n    var error = result.error;\n\n    if (error) {\n      return Promise.reject(error);\n    }\n\n    return result;\n  });\n});\n\n/**\n * The saveSVG result.\n *\n * @typedef {Object} SaveSVGResult\n *\n * @property {string} svg\n */\n\n/**\n * Export the currently displayed BPMN 2.0 diagram as\n * an SVG image.\n *\n * ## Life-Cycle Events\n *\n * During SVG saving the viewer will fire life-cycle events:\n *\n *   * saveSVG.start (before serialization)\n *   * saveSVG.done (everything done)\n *\n * You can use these events to hook into the life-cycle.\n *\n * @param {Object} [options]\n *\n * Returns {Promise<SaveSVGResult, Error>}\n */\nBaseViewer.prototype.saveSVG = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_3__.wrapForCompatibility)(function saveSVG(options) {\n\n  options = options || {};\n\n  var self = this;\n\n  return new Promise(function(resolve, reject) {\n\n    self._emit('saveSVG.start');\n\n    var svg, err;\n\n    try {\n      var canvas = self.get('canvas');\n\n      var contentNode = canvas.getDefaultLayer(),\n          defsNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)('defs', canvas._svg);\n\n      var contents = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_6__.innerSVG)(contentNode),\n          defs = defsNode ? '<defs>' + (0,tiny_svg__WEBPACK_IMPORTED_MODULE_6__.innerSVG)(defsNode) + '</defs>' : '';\n\n      var bbox = contentNode.getBBox();\n\n      svg =\n        '<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n' +\n        '<!-- created with bpmn-js / http://bpmn.io -->\\n' +\n        '<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\\n' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" ' +\n             'width=\"' + bbox.width + '\" height=\"' + bbox.height + '\" ' +\n             'viewBox=\"' + bbox.x + ' ' + bbox.y + ' ' + bbox.width + ' ' + bbox.height + '\" version=\"1.1\">' +\n          defs + contents +\n        '</svg>';\n    } catch (e) {\n      err = e;\n    }\n\n    self._emit('saveSVG.done', {\n      error: err,\n      svg: svg\n    });\n\n    if (!err) {\n      return resolve({ svg: svg });\n    }\n\n    return reject(err);\n  });\n});\n\n/**\n * Get a named diagram service.\n *\n * @example\n *\n * var elementRegistry = viewer.get('elementRegistry');\n * var startEventShape = elementRegistry.get('StartEvent_1');\n *\n * @param {string} name\n *\n * @return {Object} diagram service instance\n *\n * @method BaseViewer#get\n */\n\n/**\n * Invoke a function in the context of this viewer.\n *\n * @example\n *\n * viewer.invoke(function(elementRegistry) {\n *   var startEventShape = elementRegistry.get('StartEvent_1');\n * });\n *\n * @param {Function} fn to be invoked\n *\n * @return {Object} the functions return value\n *\n * @method BaseViewer#invoke\n */\n\n\nBaseViewer.prototype._setDefinitions = function(definitions) {\n  this._definitions = definitions;\n};\n\nBaseViewer.prototype.getModules = function() {\n  return this._modules;\n};\n\n/**\n * Remove all drawn elements from the viewer.\n *\n * After calling this method the viewer can still\n * be reused for opening another diagram.\n *\n * @method BaseViewer#clear\n */\nBaseViewer.prototype.clear = function() {\n  if (!this.getDefinitions()) {\n\n    // no diagram to clear\n    return;\n  }\n\n  // remove businessObject#di binding\n  //\n  // this is necessary, as we establish the bindings\n  // in the BpmnTreeWalker (and assume none are given\n  // on reimport)\n  this.get('elementRegistry').forEach(function(element) {\n    var bo = element.businessObject;\n\n    if (bo && bo.di) {\n      delete bo.di;\n    }\n  });\n\n  // remove drawn elements\n  diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.clear.call(this);\n};\n\n/**\n * Destroy the viewer instance and remove all its\n * remainders from the document tree.\n */\nBaseViewer.prototype.destroy = function() {\n\n  // diagram destroy\n  diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.destroy.call(this);\n\n  // dom detach\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.remove)(this._container);\n};\n\n/**\n * Register an event listener\n *\n * Remove a previously added listener via {@link #off(event, callback)}.\n *\n * @param {string} event\n * @param {number} [priority]\n * @param {Function} callback\n * @param {Object} [that]\n */\nBaseViewer.prototype.on = function(event, priority, callback, target) {\n  return this.get('eventBus').on(event, priority, callback, target);\n};\n\n/**\n * De-register an event listener\n *\n * @param {string} event\n * @param {Function} callback\n */\nBaseViewer.prototype.off = function(event, callback) {\n  this.get('eventBus').off(event, callback);\n};\n\nBaseViewer.prototype.attachTo = function(parentNode) {\n\n  if (!parentNode) {\n    throw new Error('parentNode required');\n  }\n\n  // ensure we detach from the\n  // previous, old parent\n  this.detach();\n\n  // unwrap jQuery if provided\n  if (parentNode.get && parentNode.constructor.prototype.jquery) {\n    parentNode = parentNode.get(0);\n  }\n\n  if (typeof parentNode === 'string') {\n    parentNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)(parentNode);\n  }\n\n  parentNode.appendChild(this._container);\n\n  this._emit('attach', {});\n\n  this.get('canvas').resized();\n};\n\nBaseViewer.prototype.getDefinitions = function() {\n  return this._definitions;\n};\n\nBaseViewer.prototype.detach = function() {\n\n  var container = this._container,\n      parentNode = container.parentNode;\n\n  if (!parentNode) {\n    return;\n  }\n\n  this._emit('detach', {});\n\n  parentNode.removeChild(container);\n};\n\nBaseViewer.prototype._init = function(container, moddle, options) {\n\n  var baseModules = options.modules || this.getModules(),\n      additionalModules = options.additionalModules || [],\n      staticModules = [\n        {\n          bpmnjs: [ 'value', this ],\n          moddle: [ 'value', moddle ]\n        }\n      ];\n\n  var diagramModules = [].concat(staticModules, baseModules, additionalModules);\n\n  var diagramOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.omit)(options, [ 'additionalModules' ]), {\n    canvas: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, options.canvas, { container: container }),\n    modules: diagramModules\n  });\n\n  // invoke diagram constructor\n  diagram_js__WEBPACK_IMPORTED_MODULE_2__.default.call(this, diagramOptions);\n\n  if (options && options.container) {\n    this.attachTo(options.container);\n  }\n};\n\n/**\n * Emit an event on the underlying {@link EventBus}\n *\n * @param  {string} type\n * @param  {Object} event\n *\n * @return {Object} event processing result (if any)\n */\nBaseViewer.prototype._emit = function(type, event) {\n  return this.get('eventBus').fire(type, event);\n};\n\nBaseViewer.prototype._createContainer = function(options) {\n\n  var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.domify)('<div class=\"bjs-container\"></div>');\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(container.style, {\n    width: ensureUnit(options.width),\n    height: ensureUnit(options.height),\n    position: options.position\n  });\n\n  return container;\n};\n\nBaseViewer.prototype._createModdle = function(options) {\n  var moddleOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, this._moddleExtensions, options.moddleExtensions);\n\n  return new bpmn_moddle__WEBPACK_IMPORTED_MODULE_7__.default(moddleOptions);\n};\n\nBaseViewer.prototype._modules = [];\n\n// helpers ///////////////\n\nfunction addWarningsToError(err, warningsAry) {\n  err.warnings = warningsAry;\n  return err;\n}\n\nfunction checkValidationError(err) {\n\n  // check if we can help the user by indicating wrong BPMN 2.0 xml\n  // (in case he or the exporting tool did not get that right)\n\n  var pattern = /unparsable content <([^>]+)> detected([\\s\\S]*)$/;\n  var match = pattern.exec(err.message);\n\n  if (match) {\n    err.message =\n      'unparsable content <' + match[1] + '> detected; ' +\n      'this may indicate an invalid BPMN 2.0 diagram file' + match[2];\n  }\n\n  return err;\n}\n\nvar DEFAULT_OPTIONS = {\n  width: '100%',\n  height: '100%',\n  position: 'relative'\n};\n\n\n/**\n * Ensure the passed argument is a proper unit (defaulting to px)\n */\nfunction ensureUnit(val) {\n  return val + ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(val) ? 'px' : '');\n}\n\n\n/**\n * Find BPMNDiagram in definitions by ID\n *\n * @param {ModdleElement<Definitions>} definitions\n * @param {string} diagramId\n *\n * @return {ModdleElement<BPMNDiagram>|null}\n */\nfunction findBPMNDiagram(definitions, diagramId) {\n  if (!diagramId) {\n    return null;\n  }\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(definitions.diagrams, function(element) {\n    return element.id === diagramId;\n  }) || null;\n}\n\n\n/* <project-logo> */\n\n\n\n\n\n/**\n * Adds the project logo to the diagram container as\n * required by the bpmn.io license.\n *\n * @see http://bpmn.io/license\n *\n * @param {Element} container\n */\nfunction addProjectLogo(container) {\n  var img = _util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__.BPMNIO_IMG;\n\n  var linkMarkup =\n    '<a href=\"http://bpmn.io\" ' +\n       'target=\"_blank\" ' +\n       'class=\"bjs-powered-by\" ' +\n       'title=\"Powered by bpmn.io\" ' +\n       'style=\"position: absolute; bottom: 15px; right: 15px; z-index: 100; ' + _util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__.LINK_STYLES + '\">' +\n      img +\n    '</a>';\n\n  var linkElement = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.domify)(linkMarkup);\n\n  container.appendChild(linkElement);\n\n  min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(linkElement, 'click', function(event) {\n    (0,_util_PoweredByUtil__WEBPACK_IMPORTED_MODULE_8__.open)();\n\n    event.preventDefault();\n  });\n}\n\n/* </project-logo> */\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/BaseViewer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/Modeler.js":
  /*!*********************************************!*\
    !*** ./node_modules/bpmn-js/lib/Modeler.js ***!
    \*********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Modeler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _BaseModeler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseModeler */ \"./node_modules/bpmn-js/lib/BaseModeler.js\");\n/* harmony import */ var _Viewer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Viewer */ \"./node_modules/bpmn-js/lib/Viewer.js\");\n/* harmony import */ var _NavigatedViewer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./NavigatedViewer */ \"./node_modules/bpmn-js/lib/NavigatedViewer.js\");\n/* harmony import */ var diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/navigation/keyboard-move */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/navigation/movecanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_touch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/navigation/touch */ \"./node_modules/diagram-js/lib/navigation/touch/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/navigation/zoomscroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/index.js\");\n/* harmony import */ var diagram_js_lib_features_align_elements__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/features/align-elements */ \"./node_modules/diagram-js/lib/features/align-elements/index.js\");\n/* harmony import */ var _features_auto_place__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./features/auto-place */ \"./node_modules/bpmn-js/lib/features/auto-place/index.js\");\n/* harmony import */ var _features_auto_resize__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./features/auto-resize */ \"./node_modules/bpmn-js/lib/features/auto-resize/index.js\");\n/* harmony import */ var diagram_js_lib_features_auto_scroll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! diagram-js/lib/features/auto-scroll */ \"./node_modules/diagram-js/lib/features/auto-scroll/index.js\");\n/* harmony import */ var diagram_js_lib_features_bendpoints__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! diagram-js/lib/features/bendpoints */ \"./node_modules/diagram-js/lib/features/bendpoints/index.js\");\n/* harmony import */ var diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! diagram-js/lib/features/connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var diagram_js_lib_features_connection_preview__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! diagram-js/lib/features/connection-preview */ \"./node_modules/diagram-js/lib/features/connection-preview/index.js\");\n/* harmony import */ var _features_context_pad__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./features/context-pad */ \"./node_modules/bpmn-js/lib/features/context-pad/index.js\");\n/* harmony import */ var _features_copy_paste__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/copy-paste */ \"./node_modules/bpmn-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _features_distribute_elements__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./features/distribute-elements */ \"./node_modules/bpmn-js/lib/features/distribute-elements/index.js\");\n/* harmony import */ var _features_editor_actions__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./features/editor-actions */ \"./node_modules/bpmn-js/lib/features/editor-actions/index.js\");\n/* harmony import */ var _features_grid_snapping__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./features/grid-snapping */ \"./node_modules/bpmn-js/lib/features/grid-snapping/index.js\");\n/* harmony import */ var _features_interaction_events__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./features/interaction-events */ \"./node_modules/bpmn-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _features_keyboard__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./features/keyboard */ \"./node_modules/bpmn-js/lib/features/keyboard/index.js\");\n/* harmony import */ var diagram_js_lib_features_keyboard_move_selection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! diagram-js/lib/features/keyboard-move-selection */ \"./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js\");\n/* harmony import */ var _features_label_editing__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./features/label-editing */ \"./node_modules/bpmn-js/lib/features/label-editing/index.js\");\n/* harmony import */ var _features_modeling__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./features/modeling */ \"./node_modules/bpmn-js/lib/features/modeling/index.js\");\n/* harmony import */ var diagram_js_lib_features_move__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! diagram-js/lib/features/move */ \"./node_modules/diagram-js/lib/features/move/index.js\");\n/* harmony import */ var _features_palette__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./features/palette */ \"./node_modules/bpmn-js/lib/features/palette/index.js\");\n/* harmony import */ var _features_replace_preview__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./features/replace-preview */ \"./node_modules/bpmn-js/lib/features/replace-preview/index.js\");\n/* harmony import */ var diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! diagram-js/lib/features/resize */ \"./node_modules/diagram-js/lib/features/resize/index.js\");\n/* harmony import */ var _features_snapping__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./features/snapping */ \"./node_modules/bpmn-js/lib/features/snapping/index.js\");\n/* harmony import */ var _features_search__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./features/search */ \"./node_modules/bpmn-js/lib/features/search/index.js\");\n/* harmony import */ var _util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/CompatibilityUtil */ \"./node_modules/bpmn-js/lib/util/CompatibilityUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar initialDiagram =\n  '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' +\n  '<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ' +\n                    'xmlns:bpmn=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" ' +\n                    'xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" ' +\n                    'xmlns:dc=\"http://www.omg.org/spec/DD/20100524/DC\" ' +\n                    'targetNamespace=\"http://bpmn.io/schema/bpmn\" ' +\n                    'id=\"Definitions_1\">' +\n    '<bpmn:process id=\"Process_1\" isExecutable=\"false\">' +\n      '<bpmn:startEvent id=\"StartEvent_1\"/>' +\n    '</bpmn:process>' +\n    '<bpmndi:BPMNDiagram id=\"BPMNDiagram_1\">' +\n      '<bpmndi:BPMNPlane id=\"BPMNPlane_1\" bpmnElement=\"Process_1\">' +\n        '<bpmndi:BPMNShape id=\"_BPMNShape_StartEvent_2\" bpmnElement=\"StartEvent_1\">' +\n          '<dc:Bounds height=\"36.0\" width=\"36.0\" x=\"173.0\" y=\"102.0\"/>' +\n        '</bpmndi:BPMNShape>' +\n      '</bpmndi:BPMNPlane>' +\n    '</bpmndi:BPMNDiagram>' +\n  '</bpmn:definitions>';\n\n\n/**\n * A modeler for BPMN 2.0 diagrams.\n *\n *\n * ## Extending the Modeler\n *\n * In order to extend the viewer pass extension modules to bootstrap via the\n * `additionalModules` option. An extension module is an object that exposes\n * named services.\n *\n * The following example depicts the integration of a simple\n * logging component that integrates with interaction events:\n *\n *\n * ```javascript\n *\n * // logging component\n * function InteractionLogger(eventBus) {\n *   eventBus.on('element.hover', function(event) {\n *     console.log()\n *   })\n * }\n *\n * InteractionLogger.$inject = [ 'eventBus' ]; // minification save\n *\n * // extension module\n * var extensionModule = {\n *   __init__: [ 'interactionLogger' ],\n *   interactionLogger: [ 'type', InteractionLogger ]\n * };\n *\n * // extend the viewer\n * var bpmnModeler = new Modeler({ additionalModules: [ extensionModule ] });\n * bpmnModeler.importXML(...);\n * ```\n *\n *\n * ## Customizing / Replacing Components\n *\n * You can replace individual diagram components by redefining them in override modules.\n * This works for all components, including those defined in the core.\n *\n * Pass in override modules via the `options.additionalModules` flag like this:\n *\n * ```javascript\n * function CustomContextPadProvider(contextPad) {\n *\n *   contextPad.registerProvider(this);\n *\n *   this.getContextPadEntries = function(element) {\n *     // no entries, effectively disable the context pad\n *     return {};\n *   };\n * }\n *\n * CustomContextPadProvider.$inject = [ 'contextPad' ];\n *\n * var overrideModule = {\n *   contextPadProvider: [ 'type', CustomContextPadProvider ]\n * };\n *\n * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});\n * ```\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules\n * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction Modeler(options) {\n  _BaseModeler__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Modeler, _BaseModeler__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nModeler.Viewer = _Viewer__WEBPACK_IMPORTED_MODULE_2__.default;\nModeler.NavigatedViewer = _NavigatedViewer__WEBPACK_IMPORTED_MODULE_3__.default;\n\n/**\n* The createDiagram result.\n*\n* @typedef {Object} CreateDiagramResult\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n* The createDiagram error.\n*\n* @typedef {Error} CreateDiagramError\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n * Create a new diagram to start modeling.\n *\n * Returns {Promise<CreateDiagramResult, CreateDiagramError>}\n */\nModeler.prototype.createDiagram = (0,_util_CompatibilityUtil__WEBPACK_IMPORTED_MODULE_4__.wrapForCompatibility)(function createDiagram() {\n  return this.importXML(initialDiagram);\n});\n\n\nModeler.prototype._interactionModules = [\n\n  // non-modeling components\n  diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_5__.default,\n  diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_6__.default,\n  diagram_js_lib_navigation_touch__WEBPACK_IMPORTED_MODULE_7__.default,\n  diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_8__.default\n];\n\nModeler.prototype._modelingModules = [\n\n  // modeling components\n  diagram_js_lib_features_align_elements__WEBPACK_IMPORTED_MODULE_9__.default,\n  _features_auto_place__WEBPACK_IMPORTED_MODULE_10__.default,\n  diagram_js_lib_features_auto_scroll__WEBPACK_IMPORTED_MODULE_11__.default,\n  _features_auto_resize__WEBPACK_IMPORTED_MODULE_12__.default,\n  diagram_js_lib_features_bendpoints__WEBPACK_IMPORTED_MODULE_13__.default,\n  diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_14__.default,\n  diagram_js_lib_features_connection_preview__WEBPACK_IMPORTED_MODULE_15__.default,\n  _features_context_pad__WEBPACK_IMPORTED_MODULE_16__.default,\n  _features_copy_paste__WEBPACK_IMPORTED_MODULE_17__.default,\n  diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_18__.default,\n  _features_distribute_elements__WEBPACK_IMPORTED_MODULE_19__.default,\n  _features_editor_actions__WEBPACK_IMPORTED_MODULE_20__.default,\n  _features_grid_snapping__WEBPACK_IMPORTED_MODULE_21__.default,\n  _features_interaction_events__WEBPACK_IMPORTED_MODULE_22__.default,\n  _features_keyboard__WEBPACK_IMPORTED_MODULE_23__.default,\n  diagram_js_lib_features_keyboard_move_selection__WEBPACK_IMPORTED_MODULE_24__.default,\n  _features_label_editing__WEBPACK_IMPORTED_MODULE_25__.default,\n  _features_modeling__WEBPACK_IMPORTED_MODULE_26__.default,\n  diagram_js_lib_features_move__WEBPACK_IMPORTED_MODULE_27__.default,\n  _features_palette__WEBPACK_IMPORTED_MODULE_28__.default,\n  _features_replace_preview__WEBPACK_IMPORTED_MODULE_29__.default,\n  diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_30__.default,\n  _features_snapping__WEBPACK_IMPORTED_MODULE_31__.default,\n  _features_search__WEBPACK_IMPORTED_MODULE_32__.default\n];\n\n\n// modules the modeler is composed of\n//\n// - viewer modules\n// - interaction modules\n// - modeling modules\n\nModeler.prototype._modules = [].concat(\n  _Viewer__WEBPACK_IMPORTED_MODULE_2__.default.prototype._modules,\n  Modeler.prototype._interactionModules,\n  Modeler.prototype._modelingModules\n);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/Modeler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/NavigatedViewer.js":
  /*!*****************************************************!*\
    !*** ./node_modules/bpmn-js/lib/NavigatedViewer.js ***!
    \*****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ NavigatedViewer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Viewer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Viewer */ \"./node_modules/bpmn-js/lib/Viewer.js\");\n/* harmony import */ var diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/navigation/keyboard-move */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/navigation/movecanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/index.js\");\n/* harmony import */ var diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/navigation/zoomscroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/index.js\");\n\n\n\n\n\n\n\n\n\n/**\n * A viewer that includes mouse navigation facilities\n *\n * @param {Object} options\n */\nfunction NavigatedViewer(options) {\n  _Viewer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(NavigatedViewer, _Viewer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nNavigatedViewer.prototype._navigationModules = [\n  diagram_js_lib_navigation_keyboard_move__WEBPACK_IMPORTED_MODULE_2__.default,\n  diagram_js_lib_navigation_movecanvas__WEBPACK_IMPORTED_MODULE_3__.default,\n  diagram_js_lib_navigation_zoomscroll__WEBPACK_IMPORTED_MODULE_4__.default\n];\n\nNavigatedViewer.prototype._modules = [].concat(\n  _Viewer__WEBPACK_IMPORTED_MODULE_1__.default.prototype._modules,\n  NavigatedViewer.prototype._navigationModules\n);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/NavigatedViewer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/Viewer.js":
  /*!********************************************!*\
    !*** ./node_modules/bpmn-js/lib/Viewer.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Viewer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core */ \"./node_modules/bpmn-js/lib/core/index.js\");\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_overlays__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/features/overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _BaseViewer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseViewer */ \"./node_modules/bpmn-js/lib/BaseViewer.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * A viewer for BPMN 2.0 diagrams.\n *\n * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include\n * additional features.\n *\n *\n * ## Extending the Viewer\n *\n * In order to extend the viewer pass extension modules to bootstrap via the\n * `additionalModules` option. An extension module is an object that exposes\n * named services.\n *\n * The following example depicts the integration of a simple\n * logging component that integrates with interaction events:\n *\n *\n * ```javascript\n *\n * // logging component\n * function InteractionLogger(eventBus) {\n *   eventBus.on('element.hover', function(event) {\n *     console.log()\n *   })\n * }\n *\n * InteractionLogger.$inject = [ 'eventBus' ]; // minification save\n *\n * // extension module\n * var extensionModule = {\n *   __init__: [ 'interactionLogger' ],\n *   interactionLogger: [ 'type', InteractionLogger ]\n * };\n *\n * // extend the viewer\n * var bpmnViewer = new Viewer({ additionalModules: [ extensionModule ] });\n * bpmnViewer.importXML(...);\n * ```\n *\n * @param {Object} [options] configuration options to pass to the viewer\n * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.\n * @param {string|number} [options.width] the width of the viewer\n * @param {string|number} [options.height] the height of the viewer\n * @param {Object} [options.moddleExtensions] extension packages to provide\n * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules\n * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules\n */\nfunction Viewer(options) {\n  _BaseViewer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, options);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Viewer, _BaseViewer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// modules the viewer is composed of\nViewer.prototype._modules = [\n  _core__WEBPACK_IMPORTED_MODULE_2__.default,\n  diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_3__.default,\n  diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_4__.default,\n  diagram_js_lib_features_overlays__WEBPACK_IMPORTED_MODULE_5__.default\n];\n\n// default moddle extensions the viewer is composed of\nViewer.prototype._moddleExtensions = {};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/Viewer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/core/index.js":
  /*!************************************************!*\
    !*** ./node_modules/bpmn-js/lib/core/index.js ***!
    \************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _draw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../draw */ \"./node_modules/bpmn-js/lib/draw/index.js\");\n/* harmony import */ var _import__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../import */ \"./node_modules/bpmn-js/lib/import/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _draw__WEBPACK_IMPORTED_MODULE_0__.default,\n    _import__WEBPACK_IMPORTED_MODULE_1__.default\n  ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/core/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js":
  /*!*********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isTypedEvent\": () => (/* binding */ isTypedEvent),\n/* harmony export */   \"isThrowEvent\": () => (/* binding */ isThrowEvent),\n/* harmony export */   \"isCollection\": () => (/* binding */ isCollection),\n/* harmony export */   \"getDi\": () => (/* binding */ getDi),\n/* harmony export */   \"getSemantic\": () => (/* binding */ getSemantic),\n/* harmony export */   \"getFillColor\": () => (/* binding */ getFillColor),\n/* harmony export */   \"getStrokeColor\": () => (/* binding */ getStrokeColor),\n/* harmony export */   \"getLabelColor\": () => (/* binding */ getLabelColor),\n/* harmony export */   \"getCirclePath\": () => (/* binding */ getCirclePath),\n/* harmony export */   \"getRoundRectPath\": () => (/* binding */ getRoundRectPath),\n/* harmony export */   \"getDiamondPath\": () => (/* binding */ getDiamondPath),\n/* harmony export */   \"getRectPath\": () => (/* binding */ getRectPath)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n\n\n\n\n\n// element utils //////////////////////\n\n/**\n * Checks if eventDefinition of the given element matches with semantic type.\n *\n * @return {boolean} true if element is of the given semantic type\n */\nfunction isTypedEvent(event, eventDefinitionType, filter) {\n\n  function matches(definition, filter) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(filter, function(val, key) {\n\n      // we want a == conversion here, to be able to catch\n      // undefined == false and friends\n      /* jshint -W116 */\n      return definition[key] == val;\n    });\n  }\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(event.eventDefinitions, function(definition) {\n    return definition.$type === eventDefinitionType && matches(event, filter);\n  });\n}\n\nfunction isThrowEvent(event) {\n  return (event.$type === 'bpmn:IntermediateThrowEvent') || (event.$type === 'bpmn:EndEvent');\n}\n\nfunction isCollection(element) {\n  var dataObject = element.dataObjectRef;\n\n  return element.isCollection || (dataObject && dataObject.isCollection);\n}\n\nfunction getDi(element) {\n  return element.businessObject.di;\n}\n\nfunction getSemantic(element) {\n  return element.businessObject;\n}\n\n\n// color access //////////////////////\n\nfunction getFillColor(element, defaultColor) {\n  var di = getDi(element);\n\n  return di.get('color:background-color') || di.get('bioc:fill') || defaultColor || 'white';\n}\n\nfunction getStrokeColor(element, defaultColor) {\n  var di = getDi(element);\n\n  return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || 'black';\n}\n\nfunction getLabelColor(element, defaultColor, defaultStrokeColor) {\n  var di = getDi(element),\n      label = di.get('label');\n\n  return label && label.get('color:color') || defaultColor ||\n    getStrokeColor(element, defaultStrokeColor);\n}\n\n// cropping path customizations //////////////////////\n\nfunction getCirclePath(shape) {\n\n  var cx = shape.x + shape.width / 2,\n      cy = shape.y + shape.height / 2,\n      radius = shape.width / 2;\n\n  var circlePath = [\n    ['M', cx, cy],\n    ['m', 0, -radius],\n    ['a', radius, radius, 0, 1, 1, 0, 2 * radius],\n    ['a', radius, radius, 0, 1, 1, 0, -2 * radius],\n    ['z']\n  ];\n\n  return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(circlePath);\n}\n\nfunction getRoundRectPath(shape, borderRadius) {\n\n  var x = shape.x,\n      y = shape.y,\n      width = shape.width,\n      height = shape.height;\n\n  var roundRectPath = [\n    ['M', x + borderRadius, y],\n    ['l', width - borderRadius * 2, 0],\n    ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius],\n    ['l', 0, height - borderRadius * 2],\n    ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius],\n    ['l', borderRadius * 2 - width, 0],\n    ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius],\n    ['l', 0, borderRadius * 2 - height],\n    ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius],\n    ['z']\n  ];\n\n  return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(roundRectPath);\n}\n\nfunction getDiamondPath(shape) {\n\n  var width = shape.width,\n      height = shape.height,\n      x = shape.x,\n      y = shape.y,\n      halfWidth = width / 2,\n      halfHeight = height / 2;\n\n  var diamondPath = [\n    ['M', x + halfWidth, y],\n    ['l', halfWidth, halfHeight],\n    ['l', -halfWidth, halfHeight],\n    ['l', -halfWidth, -halfHeight],\n    ['z']\n  ];\n\n  return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(diamondPath);\n}\n\nfunction getRectPath(shape) {\n  var x = shape.x,\n      y = shape.y,\n      width = shape.width,\n      height = shape.height;\n\n  var rectPath = [\n    ['M', x, y],\n    ['l', width, 0],\n    ['l', 0, height],\n    ['l', -width, 0],\n    ['z']\n  ];\n\n  return (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_1__.componentsToPath)(rectPath);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/draw/BpmnRenderer.js":
  /*!*******************************************************!*\
    !*** ./node_modules/bpmn-js/lib/draw/BpmnRenderer.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnRenderer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/draw/BaseRenderer */ \"./node_modules/diagram-js/lib/draw/BaseRenderer.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../features/label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n/* harmony import */ var _BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./BpmnRenderUtil */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var ids__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ids */ \"./node_modules/ids/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar RENDERER_IDS = new ids__WEBPACK_IMPORTED_MODULE_1__.default();\n\nvar TASK_BORDER_RADIUS = 10;\nvar INNER_OUTER_DIST = 3;\n\nvar DEFAULT_FILL_OPACITY = .95,\n    HIGH_FILL_OPACITY = .35;\n\nvar ELEMENT_LABEL_DISTANCE = 10;\n\nfunction BpmnRenderer(\n    config, eventBus, styles, pathMap,\n    canvas, textRenderer, priority) {\n\n  diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__.default.call(this, eventBus, priority);\n\n  var defaultFillColor = config && config.defaultFillColor,\n      defaultStrokeColor = config && config.defaultStrokeColor,\n      defaultLabelColor = config && config.defaultLabelColor;\n\n  var rendererId = RENDERER_IDS.next();\n\n  var markers = {};\n\n  var computeStyle = styles.computeStyle;\n\n  function addMarker(id, options) {\n    var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n      fill: 'black',\n      strokeWidth: 1,\n      strokeLinecap: 'round',\n      strokeDasharray: 'none'\n    }, options.attrs);\n\n    var ref = options.ref || { x: 0, y: 0 };\n\n    var scale = options.scale || 1;\n\n    // fix for safari / chrome / firefox bug not correctly\n    // resetting stroke dash array\n    if (attrs.strokeDasharray === 'none') {\n      attrs.strokeDasharray = [10000, 1];\n    }\n\n    var marker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('marker');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(options.element, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(marker, options.element);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(marker, {\n      id: id,\n      viewBox: '0 0 20 20',\n      refX: ref.x,\n      refY: ref.y,\n      markerWidth: 20 * scale,\n      markerHeight: 20 * scale,\n      orient: 'auto'\n    });\n\n    var defs = (0,min_dom__WEBPACK_IMPORTED_MODULE_5__.query)('defs', canvas._svg);\n\n    if (!defs) {\n      defs = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('defs');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(canvas._svg, defs);\n    }\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(defs, marker);\n\n    markers[id] = marker;\n  }\n\n  function colorEscape(str) {\n\n    // only allow characters and numbers\n    return str.replace(/[^0-9a-zA-z]+/g, '_');\n  }\n\n  function marker(type, fill, stroke) {\n    var id = type + '-' + colorEscape(fill) + '-' + colorEscape(stroke) + '-' + rendererId;\n\n    if (!markers[id]) {\n      createMarker(id, type, fill, stroke);\n    }\n\n    return 'url(#' + id + ')';\n  }\n\n  function createMarker(id, type, fill, stroke) {\n\n    if (type === 'sequenceflow-end') {\n      var sequenceflowEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });\n\n      addMarker(id, {\n        element: sequenceflowEnd,\n        ref: { x: 11, y: 10 },\n        scale: 0.5,\n        attrs: {\n          fill: stroke,\n          stroke: stroke\n        }\n      });\n    }\n\n    if (type === 'messageflow-start') {\n      var messageflowStart = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('circle');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(messageflowStart, { cx: 6, cy: 6, r: 3.5 });\n\n      addMarker(id, {\n        element: messageflowStart,\n        attrs: {\n          fill: fill,\n          stroke: stroke\n        },\n        ref: { x: 6, y: 6 }\n      });\n    }\n\n    if (type === 'messageflow-end') {\n      var messageflowEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });\n\n      addMarker(id, {\n        element: messageflowEnd,\n        attrs: {\n          fill: fill,\n          stroke: stroke,\n          strokeLinecap: 'butt'\n        },\n        ref: { x: 8.5, y: 5 }\n      });\n    }\n\n    if (type === 'association-start') {\n      var associationStart = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });\n\n      addMarker(id, {\n        element: associationStart,\n        attrs: {\n          fill: 'none',\n          stroke: stroke,\n          strokeWidth: 1.5\n        },\n        ref: { x: 1, y: 10 },\n        scale: 0.5\n      });\n    }\n\n    if (type === 'association-end') {\n      var associationEnd = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });\n\n      addMarker(id, {\n        element: associationEnd,\n        attrs: {\n          fill: 'none',\n          stroke: stroke,\n          strokeWidth: 1.5\n        },\n        ref: { x: 12, y: 10 },\n        scale: 0.5\n      });\n    }\n\n    if (type === 'conditional-flow-marker') {\n      var conditionalflowMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });\n\n      addMarker(id, {\n        element: conditionalflowMarker,\n        attrs: {\n          fill: fill,\n          stroke: stroke\n        },\n        ref: { x: -1, y: 10 },\n        scale: 0.5\n      });\n    }\n\n    if (type === 'conditional-default-flow-marker') {\n      var conditionaldefaultflowMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });\n\n      addMarker(id, {\n        element: conditionaldefaultflowMarker,\n        attrs: {\n          stroke: stroke\n        },\n        ref: { x: 0, y: 10 },\n        scale: 0.5\n      });\n    }\n  }\n\n  function drawCircle(parentGfx, width, height, offset, attrs) {\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isObject)(offset)) {\n      attrs = offset;\n      offset = 0;\n    }\n\n    offset = offset || 0;\n\n    attrs = computeStyle(attrs, {\n      stroke: 'black',\n      strokeWidth: 2,\n      fill: 'white'\n    });\n\n    if (attrs.fill === 'none') {\n      delete attrs.fillOpacity;\n    }\n\n    var cx = width / 2,\n        cy = height / 2;\n\n    var circle = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('circle');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(circle, {\n      cx: cx,\n      cy: cy,\n      r: Math.round((width + height) / 4 - offset)\n    });\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(circle, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, circle);\n\n    return circle;\n  }\n\n  function drawRect(parentGfx, width, height, r, offset, attrs) {\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isObject)(offset)) {\n      attrs = offset;\n      offset = 0;\n    }\n\n    offset = offset || 0;\n\n    attrs = computeStyle(attrs, {\n      stroke: 'black',\n      strokeWidth: 2,\n      fill: 'white'\n    });\n\n    var rect = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('rect');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, {\n      x: offset,\n      y: offset,\n      width: width - offset * 2,\n      height: height - offset * 2,\n      rx: r,\n      ry: r\n    });\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, rect);\n\n    return rect;\n  }\n\n  function drawDiamond(parentGfx, width, height, attrs) {\n\n    var x_2 = width / 2;\n    var y_2 = height / 2;\n\n    var points = [{ x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 }];\n\n    var pointsString = points.map(function(point) {\n      return point.x + ',' + point.y;\n    }).join(' ');\n\n    attrs = computeStyle(attrs, {\n      stroke: 'black',\n      strokeWidth: 2,\n      fill: 'white'\n    });\n\n    var polygon = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('polygon');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(polygon, {\n      points: pointsString\n    });\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(polygon, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, polygon);\n\n    return polygon;\n  }\n\n  function drawLine(parentGfx, waypoints, attrs) {\n    attrs = computeStyle(attrs, [ 'no-fill' ], {\n      stroke: 'black',\n      strokeWidth: 2,\n      fill: 'none'\n    });\n\n    var line = (0,diagram_js_lib_util_RenderUtil__WEBPACK_IMPORTED_MODULE_6__.createLine)(waypoints, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, line);\n\n    return line;\n  }\n\n  function drawPath(parentGfx, d, attrs) {\n\n    attrs = computeStyle(attrs, [ 'no-fill' ], {\n      strokeWidth: 2,\n      stroke: 'black'\n    });\n\n    var path = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('path');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, { d: d });\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, attrs);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, path);\n\n    return path;\n  }\n\n  function drawMarker(type, parentGfx, path, attrs) {\n    return drawPath(parentGfx, path, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({ 'data-marker': type }, attrs));\n  }\n\n  function as(type) {\n    return function(parentGfx, element) {\n      return handlers[type](parentGfx, element);\n    };\n  }\n\n  function renderer(type) {\n    return handlers[type];\n  }\n\n  function renderEventContent(element, parentGfx) {\n\n    var event = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n    var isThrowing = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isThrowEvent)(event);\n\n    if (event.eventDefinitions && event.eventDefinitions.length>1) {\n      if (event.parallelMultiple) {\n        return renderer('bpmn:ParallelMultipleEventDefinition')(parentGfx, element, isThrowing);\n      }\n      else {\n        return renderer('bpmn:MultipleEventDefinition')(parentGfx, element, isThrowing);\n      }\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:MessageEventDefinition')) {\n      return renderer('bpmn:MessageEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:TimerEventDefinition')) {\n      return renderer('bpmn:TimerEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:ConditionalEventDefinition')) {\n      return renderer('bpmn:ConditionalEventDefinition')(parentGfx, element);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:SignalEventDefinition')) {\n      return renderer('bpmn:SignalEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:EscalationEventDefinition')) {\n      return renderer('bpmn:EscalationEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:LinkEventDefinition')) {\n      return renderer('bpmn:LinkEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:ErrorEventDefinition')) {\n      return renderer('bpmn:ErrorEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:CancelEventDefinition')) {\n      return renderer('bpmn:CancelEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:CompensateEventDefinition')) {\n      return renderer('bpmn:CompensateEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isTypedEvent)(event, 'bpmn:TerminateEventDefinition')) {\n      return renderer('bpmn:TerminateEventDefinition')(parentGfx, element, isThrowing);\n    }\n\n    return null;\n  }\n\n  function renderLabel(parentGfx, label, options) {\n\n    options = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n      size: {\n        width: 100\n      }\n    }, options);\n\n    var text = textRenderer.createText(label || '', options);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(text).add('djs-label');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(parentGfx, text);\n\n    return text;\n  }\n\n  function renderEmbeddedLabel(parentGfx, element, align) {\n    var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n    return renderLabel(parentGfx, semantic.name, {\n      box: element,\n      align: align,\n      padding: 5,\n      style: {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n      }\n    });\n  }\n\n  function renderExternalLabel(parentGfx, element) {\n\n    var box = {\n      width: 90,\n      height: 30,\n      x: element.width / 2 + element.x,\n      y: element.height / 2 + element.y\n    };\n\n    return renderLabel(parentGfx, (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_8__.getLabel)(element), {\n      box: box,\n      fitBox: true,\n      style: (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(\n        {},\n        textRenderer.getExternalStyle(),\n        {\n          fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n        }\n      )\n    });\n  }\n\n  function renderLaneLabel(parentGfx, text, element) {\n    var textBox = renderLabel(parentGfx, text, {\n      box: {\n        height: 30,\n        width: element.height\n      },\n      align: 'center-middle',\n      style: {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n      }\n    });\n\n    var top = -1 * element.height;\n\n    (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.transform)(textBox, 0, -top, 270);\n  }\n\n  function createPathFromConnection(connection) {\n    var waypoints = connection.waypoints;\n\n    var pathData = 'm  ' + waypoints[0].x + ',' + waypoints[0].y;\n    for (var i = 1; i < waypoints.length; i++) {\n      pathData += 'L' + waypoints[i].x + ',' + waypoints[i].y + ' ';\n    }\n    return pathData;\n  }\n\n  var handlers = this.handlers = {\n    'bpmn:Event': function(parentGfx, element, attrs) {\n\n      if (!('fillOpacity' in attrs)) {\n        attrs.fillOpacity = DEFAULT_FILL_OPACITY;\n      }\n\n      return drawCircle(parentGfx, element.width, element.height, attrs);\n    },\n    'bpmn:StartEvent': function(parentGfx, element) {\n      var attrs = {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      if (!semantic.isInterrupting) {\n        attrs = {\n          strokeDasharray: '6',\n          strokeLinecap: 'round',\n          fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n        };\n      }\n\n      var circle = renderer('bpmn:Event')(parentGfx, element, attrs);\n\n      renderEventContent(element, parentGfx);\n\n      return circle;\n    },\n    'bpmn:MessageEventDefinition': function(parentGfx, element, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_MESSAGE', {\n        xScaleFactor: 0.9,\n        yScaleFactor: 0.9,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.235,\n          my: 0.315\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor) : (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor);\n      var stroke = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor) : (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      var messagePath = drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: stroke\n      });\n\n      return messagePath;\n    },\n    'bpmn:TimerEventDefinition': function(parentGfx, element) {\n      var circle = drawCircle(parentGfx, element.width, element.height, 0.2 * element.height, {\n        strokeWidth: 2,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var pathData = pathMap.getScaledPath('EVENT_TIMER_WH', {\n        xScaleFactor: 0.75,\n        yScaleFactor: 0.75,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.5,\n          my: 0.5\n        }\n      });\n\n      drawPath(parentGfx, pathData, {\n        strokeWidth: 2,\n        strokeLinecap: 'square',\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      for (var i = 0;i < 12; i++) {\n\n        var linePathData = pathMap.getScaledPath('EVENT_TIMER_LINE', {\n          xScaleFactor: 0.75,\n          yScaleFactor: 0.75,\n          containerWidth: element.width,\n          containerHeight: element.height,\n          position: {\n            mx: 0.5,\n            my: 0.5\n          }\n        });\n\n        var width = element.width / 2;\n        var height = element.height / 2;\n\n        drawPath(parentGfx, linePathData, {\n          strokeWidth: 1,\n          strokeLinecap: 'square',\n          transform: 'rotate(' + (i * 30) + ',' + height + ',' + width + ')',\n          stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n        });\n      }\n\n      return circle;\n    },\n    'bpmn:EscalationEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_ESCALATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.5,\n          my: 0.2\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:ConditionalEventDefinition': function(parentGfx, event) {\n      var pathData = pathMap.getScaledPath('EVENT_CONDITIONAL', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.5,\n          my: 0.222\n        }\n      });\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:LinkEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_LINK', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.57,\n          my: 0.263\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:ErrorEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_ERROR', {\n        xScaleFactor: 1.1,\n        yScaleFactor: 1.1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.2,\n          my: 0.722\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:CancelEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_CANCEL_45', {\n        xScaleFactor: 1.0,\n        yScaleFactor: 1.0,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.638,\n          my: -0.055\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      var path = drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n\n      (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.rotate)(path, 45);\n\n      return path;\n    },\n    'bpmn:CompensateEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_COMPENSATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.22,\n          my: 0.5\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:SignalEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_SIGNAL', {\n        xScaleFactor: 0.9,\n        yScaleFactor: 0.9,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.5,\n          my: 0.2\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:MultipleEventDefinition': function(parentGfx, event, isThrowing) {\n      var pathData = pathMap.getScaledPath('EVENT_MULTIPLE', {\n        xScaleFactor: 1.1,\n        yScaleFactor: 1.1,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.222,\n          my: 0.36\n        }\n      });\n\n      var fill = isThrowing ? (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor) : 'none';\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: fill\n      });\n    },\n    'bpmn:ParallelMultipleEventDefinition': function(parentGfx, event) {\n      var pathData = pathMap.getScaledPath('EVENT_PARALLEL_MULTIPLE', {\n        xScaleFactor: 1.2,\n        yScaleFactor: 1.2,\n        containerWidth: event.width,\n        containerHeight: event.height,\n        position: {\n          mx: 0.458,\n          my: 0.194\n        }\n      });\n\n      return drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(event, defaultStrokeColor)\n      });\n    },\n    'bpmn:EndEvent': function(parentGfx, element) {\n      var circle = renderer('bpmn:Event')(parentGfx, element, {\n        strokeWidth: 4,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      renderEventContent(element, parentGfx, true);\n\n      return circle;\n    },\n    'bpmn:TerminateEventDefinition': function(parentGfx, element) {\n      var circle = drawCircle(parentGfx, element.width, element.height, 8, {\n        strokeWidth: 4,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return circle;\n    },\n    'bpmn:IntermediateEvent': function(parentGfx, element) {\n      var outer = renderer('bpmn:Event')(parentGfx, element, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      /* inner */\n      drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, 'none'),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      renderEventContent(element, parentGfx);\n\n      return outer;\n    },\n    'bpmn:IntermediateCatchEvent': as('bpmn:IntermediateEvent'),\n    'bpmn:IntermediateThrowEvent': as('bpmn:IntermediateEvent'),\n\n    'bpmn:Activity': function(parentGfx, element, attrs) {\n\n      attrs = attrs || {};\n\n      if (!('fillOpacity' in attrs)) {\n        attrs.fillOpacity = DEFAULT_FILL_OPACITY;\n      }\n\n      return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, attrs);\n    },\n\n    'bpmn:Task': function(parentGfx, element) {\n      var attrs = {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      var rect = renderer('bpmn:Activity')(parentGfx, element, attrs);\n\n      renderEmbeddedLabel(parentGfx, element, 'center-middle');\n      attachTaskMarkers(parentGfx, element);\n\n      return rect;\n    },\n    'bpmn:ServiceTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var pathDataBG = pathMap.getScaledPath('TASK_TYPE_SERVICE', {\n        abspos: {\n          x: 12,\n          y: 18\n        }\n      });\n\n      /* service bg */ drawPath(parentGfx, pathDataBG, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var fillPathData = pathMap.getScaledPath('TASK_TYPE_SERVICE_FILL', {\n        abspos: {\n          x: 17.2,\n          y: 18\n        }\n      });\n\n      /* service fill */ drawPath(parentGfx, fillPathData, {\n        strokeWidth: 0,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor)\n      });\n\n      var pathData = pathMap.getScaledPath('TASK_TYPE_SERVICE', {\n        abspos: {\n          x: 17,\n          y: 22\n        }\n      });\n\n      /* service */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:UserTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var x = 15;\n      var y = 12;\n\n      var pathData = pathMap.getScaledPath('TASK_TYPE_USER_1', {\n        abspos: {\n          x: x,\n          y: y\n        }\n      });\n\n      /* user path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 0.5,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var pathData2 = pathMap.getScaledPath('TASK_TYPE_USER_2', {\n        abspos: {\n          x: x,\n          y: y\n        }\n      });\n\n      /* user2 path */ drawPath(parentGfx, pathData2, {\n        strokeWidth: 0.5,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var pathData3 = pathMap.getScaledPath('TASK_TYPE_USER_3', {\n        abspos: {\n          x: x,\n          y: y\n        }\n      });\n\n      /* user3 path */ drawPath(parentGfx, pathData3, {\n        strokeWidth: 0.5,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:ManualTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('TASK_TYPE_MANUAL', {\n        abspos: {\n          x: 17,\n          y: 15\n        }\n      });\n\n      /* manual path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 0.5, // 0.25,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:SendTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: 21,\n        containerHeight: 14,\n        position: {\n          mx: 0.285,\n          my: 0.357\n        }\n      });\n\n      /* send path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor)\n      });\n\n      return task;\n    },\n    'bpmn:ReceiveTask' : function(parentGfx, element) {\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      var task = renderer('bpmn:Task')(parentGfx, element);\n      var pathData;\n\n      if (semantic.instantiate) {\n        drawCircle(parentGfx, 28, 28, 20 * 0.22, { strokeWidth: 1 });\n\n        pathData = pathMap.getScaledPath('TASK_TYPE_INSTANTIATING_SEND', {\n          abspos: {\n            x: 7.77,\n            y: 9.52\n          }\n        });\n      } else {\n\n        pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {\n          xScaleFactor: 0.9,\n          yScaleFactor: 0.9,\n          containerWidth: 21,\n          containerHeight: 14,\n          position: {\n            mx: 0.3,\n            my: 0.4\n          }\n        });\n      }\n\n      /* receive path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:ScriptTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('TASK_TYPE_SCRIPT', {\n        abspos: {\n          x: 15,\n          y: 20\n        }\n      });\n\n      /* script path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:BusinessRuleTask': function(parentGfx, element) {\n      var task = renderer('bpmn:Task')(parentGfx, element);\n\n      var headerPathData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_HEADER', {\n        abspos: {\n          x: 8,\n          y: 8\n        }\n      });\n\n      var businessHeaderPath = drawPath(parentGfx, headerPathData);\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(businessHeaderPath, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, '#aaaaaa'),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var headerData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_MAIN', {\n        abspos: {\n          x: 8,\n          y: 8\n        }\n      });\n\n      var businessPath = drawPath(parentGfx, headerData);\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(businessPath, {\n        strokeWidth: 1,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return task;\n    },\n    'bpmn:SubProcess': function(parentGfx, element, attrs) {\n      attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      }, attrs);\n\n      var rect = renderer('bpmn:Activity')(parentGfx, element, attrs);\n\n      var expanded = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isExpanded)(element);\n\n      if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isEventSubProcess)(element)) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(rect, {\n          strokeDasharray: '1,2'\n        });\n      }\n\n      renderEmbeddedLabel(parentGfx, element, expanded ? 'center-top' : 'center-middle');\n\n      if (expanded) {\n        attachTaskMarkers(parentGfx, element);\n      } else {\n        attachTaskMarkers(parentGfx, element, ['SubProcessMarker']);\n      }\n\n      return rect;\n    },\n    'bpmn:AdHocSubProcess': function(parentGfx, element) {\n      return renderer('bpmn:SubProcess')(parentGfx, element);\n    },\n    'bpmn:Transaction': function(parentGfx, element) {\n      var outer = renderer('bpmn:SubProcess')(parentGfx, element);\n\n      var innerAttrs = styles.style([ 'no-fill', 'no-events' ], {\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 2, INNER_OUTER_DIST, innerAttrs);\n\n      return outer;\n    },\n    'bpmn:CallActivity': function(parentGfx, element) {\n      return renderer('bpmn:SubProcess')(parentGfx, element, {\n        strokeWidth: 5\n      });\n    },\n    'bpmn:Participant': function(parentGfx, element) {\n\n      var attrs = {\n        fillOpacity: DEFAULT_FILL_OPACITY,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      var lane = renderer('bpmn:Lane')(parentGfx, element, attrs);\n\n      var expandedPool = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_10__.isExpanded)(element);\n\n      if (expandedPool) {\n        drawLine(parentGfx, [\n          { x: 30, y: 0 },\n          { x: 30, y: element.height }\n        ], {\n          stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n        });\n        var text = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).name;\n        renderLaneLabel(parentGfx, text, element);\n      } else {\n\n        // Collapsed pool draw text inline\n        var text2 = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).name;\n        renderLabel(parentGfx, text2, {\n          box: element, align: 'center-middle',\n          style: {\n            fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n          }\n        });\n      }\n\n      var participantMultiplicity = !!((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).participantMultiplicity);\n\n      if (participantMultiplicity) {\n        renderer('ParticipantMultiplicityMarker')(parentGfx, element);\n      }\n\n      return lane;\n    },\n    'bpmn:Lane': function(parentGfx, element, attrs) {\n      var rect = drawRect(parentGfx, element.width, element.height, 0, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        fillOpacity: HIGH_FILL_OPACITY,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      }, attrs));\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      if (semantic.$type === 'bpmn:Lane') {\n        var text = semantic.name;\n        renderLaneLabel(parentGfx, text, element);\n      }\n\n      return rect;\n    },\n    'bpmn:InclusiveGateway': function(parentGfx, element) {\n      var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n      /* circle path */\n      drawCircle(parentGfx, element.width, element.height, element.height * 0.24, {\n        strokeWidth: 2.5,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return diamond;\n    },\n    'bpmn:ExclusiveGateway': function(parentGfx, element) {\n      var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('GATEWAY_EXCLUSIVE', {\n        xScaleFactor: 0.4,\n        yScaleFactor: 0.4,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.32,\n          my: 0.3\n        }\n      });\n\n      if (((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDi)(element).isMarkerVisible)) {\n        drawPath(parentGfx, pathData, {\n          strokeWidth: 1,\n          fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n          stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n        });\n      }\n\n      return diamond;\n    },\n    'bpmn:ComplexGateway': function(parentGfx, element) {\n      var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('GATEWAY_COMPLEX', {\n        xScaleFactor: 0.5,\n        yScaleFactor:0.5,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.46,\n          my: 0.26\n        }\n      });\n\n      /* complex path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return diamond;\n    },\n    'bpmn:ParallelGateway': function(parentGfx, element) {\n      var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n      var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {\n        xScaleFactor: 0.6,\n        yScaleFactor:0.6,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.46,\n          my: 0.2\n        }\n      });\n\n      /* parallel path */ drawPath(parentGfx, pathData, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return diamond;\n    },\n    'bpmn:EventBasedGateway': function(parentGfx, element) {\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      var diamond = renderer('bpmn:Gateway')(parentGfx, element);\n\n      /* outer circle path */ drawCircle(parentGfx, element.width, element.height, element.height * 0.20, {\n        strokeWidth: 1,\n        fill: 'none',\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var type = semantic.eventGatewayType;\n      var instantiate = !!semantic.instantiate;\n\n      function drawEvent() {\n\n        var pathData = pathMap.getScaledPath('GATEWAY_EVENT_BASED', {\n          xScaleFactor: 0.18,\n          yScaleFactor: 0.18,\n          containerWidth: element.width,\n          containerHeight: element.height,\n          position: {\n            mx: 0.36,\n            my: 0.44\n          }\n        });\n\n        var attrs = {\n          strokeWidth: 2,\n          fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, 'none'),\n          stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n        };\n\n        /* event path */ drawPath(parentGfx, pathData, attrs);\n      }\n\n      if (type === 'Parallel') {\n\n        var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {\n          xScaleFactor: 0.4,\n          yScaleFactor:0.4,\n          containerWidth: element.width,\n          containerHeight: element.height,\n          position: {\n            mx: 0.474,\n            my: 0.296\n          }\n        });\n\n        var parallelPath = drawPath(parentGfx, pathData);\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(parallelPath, {\n          strokeWidth: 1,\n          fill: 'none'\n        });\n      } else if (type === 'Exclusive') {\n\n        if (!instantiate) {\n          var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26);\n          (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(innerCircle, {\n            strokeWidth: 1,\n            fill: 'none',\n            stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n          });\n        }\n\n        drawEvent();\n      }\n\n\n      return diamond;\n    },\n    'bpmn:Gateway': function(parentGfx, element) {\n      var attrs = {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        fillOpacity: DEFAULT_FILL_OPACITY,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      return drawDiamond(parentGfx, element.width, element.height, attrs);\n    },\n    'bpmn:SequenceFlow': function(parentGfx, element) {\n      var pathData = createPathFromConnection(element);\n\n      var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      var attrs = {\n        strokeLinejoin: 'round',\n        markerEnd: marker('sequenceflow-end', fill, stroke),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      var path = drawPath(parentGfx, pathData, attrs);\n\n      var sequenceFlow = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      var source;\n\n      if (element.source) {\n        source = element.source.businessObject;\n\n        // conditional flow marker\n        if (sequenceFlow.conditionExpression && source.$instanceOf('bpmn:Activity')) {\n          (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, {\n            markerStart: marker('conditional-flow-marker', fill, stroke)\n          });\n        }\n\n        // default marker\n        if (source.default && (source.$instanceOf('bpmn:Gateway') || source.$instanceOf('bpmn:Activity')) &&\n            source.default === sequenceFlow) {\n          (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(path, {\n            markerStart: marker('conditional-default-flow-marker', fill, stroke)\n          });\n        }\n      }\n\n      return path;\n    },\n    'bpmn:Association': function(parentGfx, element, attrs) {\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({\n        strokeDasharray: '0.5, 5',\n        strokeLinecap: 'round',\n        strokeLinejoin: 'round',\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      }, attrs || {});\n\n      if (semantic.associationDirection === 'One' ||\n          semantic.associationDirection === 'Both') {\n        attrs.markerEnd = marker('association-end', fill, stroke);\n      }\n\n      if (semantic.associationDirection === 'Both') {\n        attrs.markerStart = marker('association-start', fill, stroke);\n      }\n\n      return drawLine(parentGfx, element.waypoints, attrs);\n    },\n    'bpmn:DataInputAssociation': function(parentGfx, element) {\n      var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      return renderer('bpmn:Association')(parentGfx, element, {\n        markerEnd: marker('association-end', fill, stroke)\n      });\n    },\n    'bpmn:DataOutputAssociation': function(parentGfx, element) {\n      var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      return renderer('bpmn:Association')(parentGfx, element, {\n        markerEnd: marker('association-end', fill, stroke)\n      });\n    },\n    'bpmn:MessageFlow': function(parentGfx, element) {\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element),\n          di = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDi)(element);\n\n      var fill = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n          stroke = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor);\n\n      var pathData = createPathFromConnection(element);\n\n      var attrs = {\n        markerEnd: marker('messageflow-end', fill, stroke),\n        markerStart: marker('messageflow-start', fill, stroke),\n        strokeDasharray: '10, 12',\n        strokeLinecap: 'round',\n        strokeLinejoin: 'round',\n        strokeWidth: '1.5px',\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      var path = drawPath(parentGfx, pathData, attrs);\n\n      if (semantic.messageRef) {\n        var midPoint = path.getPointAtLength(path.getTotalLength() / 2);\n\n        var markerPathData = pathMap.getScaledPath('MESSAGE_FLOW_MARKER', {\n          abspos: {\n            x: midPoint.x,\n            y: midPoint.y\n          }\n        });\n\n        var messageAttrs = { strokeWidth: 1 };\n\n        if (di.messageVisibleKind === 'initiating') {\n          messageAttrs.fill = 'white';\n          messageAttrs.stroke = 'black';\n        } else {\n          messageAttrs.fill = '#888';\n          messageAttrs.stroke = 'white';\n        }\n\n        var message = drawPath(parentGfx, markerPathData, messageAttrs);\n\n        var labelText = semantic.messageRef.name;\n        var label = renderLabel(parentGfx, labelText, {\n          align: 'center-top',\n          fitBox: true,\n          style: {\n            fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultLabelColor, defaultStrokeColor)\n          }\n        });\n\n        var messageBounds = message.getBBox(),\n            labelBounds = label.getBBox();\n\n        var translateX = midPoint.x - labelBounds.width / 2,\n            translateY = midPoint.y + messageBounds.height / 2 + ELEMENT_LABEL_DISTANCE;\n\n        (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.transform)(label, translateX, translateY, 0);\n\n      }\n\n      return path;\n    },\n    'bpmn:DataObject': function(parentGfx, element) {\n      var pathData = pathMap.getScaledPath('DATA_OBJECT_PATH', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.474,\n          my: 0.296\n        }\n      });\n\n      var elementObject = drawPath(parentGfx, pathData, {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        fillOpacity: DEFAULT_FILL_OPACITY,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n      if ((0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.isCollection)(semantic)) {\n        renderDataItemCollection(parentGfx, element);\n      }\n\n      return elementObject;\n    },\n    'bpmn:DataObjectReference': as('bpmn:DataObject'),\n    'bpmn:DataInput': function(parentGfx, element) {\n\n      var arrowPathData = pathMap.getRawPath('DATA_ARROW');\n\n      // page\n      var elementObject = renderer('bpmn:DataObject')(parentGfx, element);\n\n      /* input arrow path */ drawPath(parentGfx, arrowPathData, { strokeWidth: 1 });\n\n      return elementObject;\n    },\n    'bpmn:DataOutput': function(parentGfx, element) {\n      var arrowPathData = pathMap.getRawPath('DATA_ARROW');\n\n      // page\n      var elementObject = renderer('bpmn:DataObject')(parentGfx, element);\n\n      /* output arrow path */ drawPath(parentGfx, arrowPathData, {\n        strokeWidth: 1,\n        fill: 'black'\n      });\n\n      return elementObject;\n    },\n    'bpmn:DataStoreReference': function(parentGfx, element) {\n      var DATA_STORE_PATH = pathMap.getScaledPath('DATA_STORE', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0,\n          my: 0.133\n        }\n      });\n\n      var elementStore = drawPath(parentGfx, DATA_STORE_PATH, {\n        strokeWidth: 2,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        fillOpacity: DEFAULT_FILL_OPACITY,\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      return elementStore;\n    },\n    'bpmn:BoundaryEvent': function(parentGfx, element) {\n\n      var semantic = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element),\n          cancel = semantic.cancelActivity;\n\n      var attrs = {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      };\n\n      if (!cancel) {\n        attrs.strokeDasharray = '6';\n        attrs.strokeLinecap = 'round';\n      }\n\n      // apply fillOpacity\n      var outerAttrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, attrs, {\n        fillOpacity: 1\n      });\n\n      // apply no-fill\n      var innerAttrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, attrs, {\n        fill: 'none'\n      });\n\n      var outer = renderer('bpmn:Event')(parentGfx, element, outerAttrs);\n\n      /* inner path */ drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, innerAttrs);\n\n      renderEventContent(element, parentGfx);\n\n      return outer;\n    },\n    'bpmn:Group': function(parentGfx, element) {\n\n      var group = drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        strokeWidth: 1,\n        strokeDasharray: '8,3,1,3',\n        fill: 'none',\n        pointerEvents: 'none'\n      });\n\n      return group;\n    },\n    'label': function(parentGfx, element) {\n      return renderExternalLabel(parentGfx, element);\n    },\n    'bpmn:TextAnnotation': function(parentGfx, element) {\n      var style = {\n        'fill': 'none',\n        'stroke': 'none'\n      };\n\n      var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, style);\n\n      var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.0,\n          my: 0.0\n        }\n      });\n\n      drawPath(parentGfx, textPathData, {\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      var text = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element).text || '';\n      renderLabel(parentGfx, text, {\n        box: element,\n        align: 'left-top',\n        padding: 5,\n        style: {\n          fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getLabelColor)(element, defaultLabelColor, defaultStrokeColor)\n        }\n      });\n\n      return textElement;\n    },\n    'ParticipantMultiplicityMarker': function(parentGfx, element) {\n      var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2) / element.width),\n          my: (element.height - 15) / element.height\n        }\n      });\n\n      drawMarker('participant-multiplicity', parentGfx, markerPath, {\n        strokeWidth: 2,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    },\n    'SubProcessMarker': function(parentGfx, element) {\n      var markerRect = drawRect(parentGfx, 14, 14, 0, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n\n      // Process marker is placed in the middle of the box\n      // therefore fixed values can be used here\n      (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_9__.translate)(markerRect, element.width / 2 - 7.5, element.height - 20);\n\n      var markerPath = pathMap.getScaledPath('MARKER_SUB_PROCESS', {\n        xScaleFactor: 1.5,\n        yScaleFactor: 1.5,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: (element.width / 2 - 7.5) / element.width,\n          my: (element.height - 20) / element.height\n        }\n      });\n\n      drawMarker('sub-process', parentGfx, markerPath, {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    },\n    'ParallelMarker': function(parentGfx, element, position) {\n      var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2 + position.parallel) / element.width),\n          my: (element.height - 20) / element.height\n        }\n      });\n\n      drawMarker('parallel', parentGfx, markerPath, {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    },\n    'SequentialMarker': function(parentGfx, element, position) {\n      var markerPath = pathMap.getScaledPath('MARKER_SEQUENTIAL', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2 + position.seq) / element.width),\n          my: (element.height - 19) / element.height\n        }\n      });\n\n      drawMarker('sequential', parentGfx, markerPath, {\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    },\n    'CompensationMarker': function(parentGfx, element, position) {\n      var markerMath = pathMap.getScaledPath('MARKER_COMPENSATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2 + position.compensation) / element.width),\n          my: (element.height - 13) / element.height\n        }\n      });\n\n      drawMarker('compensation', parentGfx, markerMath, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    },\n    'LoopMarker': function(parentGfx, element, position) {\n      var markerPath = pathMap.getScaledPath('MARKER_LOOP', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2 + position.loop) / element.width),\n          my: (element.height - 7) / element.height\n        }\n      });\n\n      drawMarker('loop', parentGfx, markerPath, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getFillColor)(element, defaultFillColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        strokeLinecap: 'round',\n        strokeMiterlimit: 0.5\n      });\n    },\n    'AdhocMarker': function(parentGfx, element, position) {\n      var markerPath = pathMap.getScaledPath('MARKER_ADHOC', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: ((element.width / 2 + position.adhoc) / element.width),\n          my: (element.height - 15) / element.height\n        }\n      });\n\n      drawMarker('adhoc', parentGfx, markerPath, {\n        strokeWidth: 1,\n        fill: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor),\n        stroke: (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getStrokeColor)(element, defaultStrokeColor)\n      });\n    }\n  };\n\n  function attachTaskMarkers(parentGfx, element, taskMarkers) {\n    var obj = (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getSemantic)(element);\n\n    var subprocess = taskMarkers && taskMarkers.indexOf('SubProcessMarker') !== -1;\n    var position;\n\n    if (subprocess) {\n      position = {\n        seq: -21,\n        parallel: -22,\n        compensation: -42,\n        loop: -18,\n        adhoc: 10\n      };\n    } else {\n      position = {\n        seq: -3,\n        parallel: -6,\n        compensation: -27,\n        loop: 0,\n        adhoc: 10\n      };\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(taskMarkers, function(marker) {\n      renderer(marker)(parentGfx, element, position);\n    });\n\n    if (obj.isForCompensation) {\n      renderer('CompensationMarker')(parentGfx, element, position);\n    }\n\n    if (obj.$type === 'bpmn:AdHocSubProcess') {\n      renderer('AdhocMarker')(parentGfx, element, position);\n    }\n\n    var loopCharacteristics = obj.loopCharacteristics,\n        isSequential = loopCharacteristics && loopCharacteristics.isSequential;\n\n    if (loopCharacteristics) {\n\n      if (isSequential === undefined) {\n        renderer('LoopMarker')(parentGfx, element, position);\n      }\n\n      if (isSequential === false) {\n        renderer('ParallelMarker')(parentGfx, element, position);\n      }\n\n      if (isSequential === true) {\n        renderer('SequentialMarker')(parentGfx, element, position);\n      }\n    }\n  }\n\n  function renderDataItemCollection(parentGfx, element) {\n\n    var yPosition = (element.height - 18) / element.height;\n\n    var pathData = pathMap.getScaledPath('DATA_OBJECT_COLLECTION_PATH', {\n      xScaleFactor: 1,\n      yScaleFactor: 1,\n      containerWidth: element.width,\n      containerHeight: element.height,\n      position: {\n        mx: 0.33,\n        my: yPosition\n      }\n    });\n\n    /* collection path */ drawPath(parentGfx, pathData, {\n      strokeWidth: 2\n    });\n  }\n\n\n  // extension API, use at your own risk\n  this._drawPath = drawPath;\n\n}\n\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnRenderer, diagram_js_lib_draw_BaseRenderer__WEBPACK_IMPORTED_MODULE_2__.default);\n\nBpmnRenderer.$inject = [\n  'config.bpmnRenderer',\n  'eventBus',\n  'styles',\n  'pathMap',\n  'canvas',\n  'textRenderer'\n];\n\n\nBpmnRenderer.prototype.canRender = function(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:BaseElement');\n};\n\nBpmnRenderer.prototype.drawShape = function(parentGfx, element) {\n  var type = element.type;\n  var h = this.handlers[type];\n\n  /* jshint -W040 */\n  return h(parentGfx, element);\n};\n\nBpmnRenderer.prototype.drawConnection = function(parentGfx, element) {\n  var type = element.type;\n  var h = this.handlers[type];\n\n  /* jshint -W040 */\n  return h(parentGfx, element);\n};\n\nBpmnRenderer.prototype.getShapePath = function(element) {\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Event')) {\n    return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getCirclePath)(element);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Activity')) {\n    return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getRoundRectPath)(element, TASK_BORDER_RADIUS);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_11__.is)(element, 'bpmn:Gateway')) {\n    return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getDiamondPath)(element);\n  }\n\n  return (0,_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_7__.getRectPath)(element);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/BpmnRenderer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/draw/PathMap.js":
  /*!**************************************************!*\
    !*** ./node_modules/bpmn-js/lib/draw/PathMap.js ***!
    \**************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ PathMap)\n/* harmony export */ });\n/**\n * Map containing SVG paths needed by BpmnRenderer.\n */\n\nfunction PathMap() {\n\n  /**\n   * Contains a map of path elements\n   *\n   * <h1>Path definition</h1>\n   * A parameterized path is defined like this:\n   * <pre>\n   * 'GATEWAY_PARALLEL': {\n   *   d: 'm {mx},{my} {e.x0},0 0,{e.x1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' +\n          '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z',\n   *   height: 17.5,\n   *   width:  17.5,\n   *   heightElements: [2.5, 7.5],\n   *   widthElements: [2.5, 7.5]\n   * }\n   * </pre>\n   * <p>It's important to specify a correct <b>height and width</b> for the path as the scaling\n   * is based on the ratio between the specified height and width in this object and the\n   * height and width that is set as scale target (Note x,y coordinates will be scaled with\n   * individual ratios).</p>\n   * <p>The '<b>heightElements</b>' and '<b>widthElements</b>' array must contain the values that will be scaled.\n   * The scaling is based on the computed ratios.\n   * Coordinates on the y axis should be in the <b>heightElement</b>'s array, they will be scaled using\n   * the computed ratio coefficient.\n   * In the parameterized path the scaled values can be accessed through the 'e' object in {} brackets.\n   *   <ul>\n   *    <li>The values for the y axis can be accessed in the path string using {e.y0}, {e.y1}, ....</li>\n   *    <li>The values for the x axis can be accessed in the path string using {e.x0}, {e.x1}, ....</li>\n   *   </ul>\n   *   The numbers x0, x1 respectively y0, y1, ... map to the corresponding array index.\n   * </p>\n   */\n  this.pathMap = {\n    'EVENT_MESSAGE': {\n      d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',\n      height: 36,\n      width:  36,\n      heightElements: [6, 14],\n      widthElements: [10.5, 21]\n    },\n    'EVENT_SIGNAL': {\n      d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z',\n      height: 36,\n      width: 36,\n      heightElements: [18],\n      widthElements: [10, 20]\n    },\n    'EVENT_ESCALATION': {\n      d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z',\n      height: 36,\n      width: 36,\n      heightElements: [20, 7],\n      widthElements: [8]\n    },\n    'EVENT_CONDITIONAL': {\n      d: 'M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z ' +\n         'M {e.x2},{e.y3} l {e.x0},0 ' +\n         'M {e.x2},{e.y4} l {e.x0},0 ' +\n         'M {e.x2},{e.y5} l {e.x0},0 ' +\n         'M {e.x2},{e.y6} l {e.x0},0 ' +\n         'M {e.x2},{e.y7} l {e.x0},0 ' +\n         'M {e.x2},{e.y8} l {e.x0},0 ',\n      height: 36,\n      width:  36,\n      heightElements: [8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5],\n      widthElements:  [10.5, 14.5, 12.5]\n    },\n    'EVENT_LINK': {\n      d: 'm {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z',\n      height: 36,\n      width: 36,\n      heightElements: [4.4375, 6.75, 7.8125],\n      widthElements: [9.84375, 13.5]\n    },\n    'EVENT_ERROR': {\n      d: 'm {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z',\n      height: 36,\n      width: 36,\n      heightElements: [0.023, 8.737, 8.151, 16.564, 10.591, 8.714],\n      widthElements: [0.085, 6.672, 6.97, 4.273, 5.337, 6.636]\n    },\n    'EVENT_CANCEL_45': {\n      d: 'm {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 ' +\n        '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',\n      height: 36,\n      width: 36,\n      heightElements: [4.75, 8.5],\n      widthElements: [4.75, 8.5]\n    },\n    'EVENT_COMPENSATION': {\n      d: 'm {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z',\n      height: 36,\n      width: 36,\n      heightElements: [6.5, 13, 0.4, 6.1],\n      widthElements: [9, 9.3, 8.7]\n    },\n    'EVENT_TIMER_WH': {\n      d: 'M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ',\n      height: 36,\n      width:  36,\n      heightElements: [10, 2],\n      widthElements: [3, 7]\n    },\n    'EVENT_TIMER_LINE': {\n      d:  'M {mx},{my} ' +\n          'm {e.x0},{e.y0} l -{e.x1},{e.y1} ',\n      height: 36,\n      width:  36,\n      heightElements: [10, 3],\n      widthElements: [0, 0]\n    },\n    'EVENT_MULTIPLE': {\n      d:'m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z',\n      height: 36,\n      width:  36,\n      heightElements: [6.28099, 12.56199],\n      widthElements: [3.1405, 9.42149, 12.56198]\n    },\n    'EVENT_PARALLEL_MULTIPLE': {\n      d:'m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' +\n        '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z',\n      height: 36,\n      width:  36,\n      heightElements: [2.56228, 7.68683],\n      widthElements: [2.56228, 7.68683]\n    },\n    'GATEWAY_EXCLUSIVE': {\n      d:'m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} ' +\n                    '{e.x4},{e.y1} {e.x2},0 {e.x1},{e.y3} {e.x0},{e.y3} ' +\n                    '{e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z',\n      height: 17.5,\n      width:  17.5,\n      heightElements: [8.5, 6.5312, -6.5312, -8.5],\n      widthElements:  [6.5, -6.5, 3, -3, 5, -5]\n    },\n    'GATEWAY_PARALLEL': {\n      d:'m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 ' +\n        '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',\n      height: 30,\n      width:  30,\n      heightElements: [5, 12.5],\n      widthElements: [5, 12.5]\n    },\n    'GATEWAY_EVENT_BASED': {\n      d:'m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z',\n      height: 11,\n      width:  11,\n      heightElements: [-6, 6, 12, -12],\n      widthElements: [9, -3, -12]\n    },\n    'GATEWAY_COMPLEX': {\n      d:'m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} ' +\n        '{e.x2},0  -{e.x0},{e.y1} l {e.x1},{e.y2} {e.x0},-{e.y1} 0,{e.y0} {e.x3},0 0,-{e.y0} {e.x0},{e.y1} ' +\n        '{e.x1},-{e.y2} -{e.x0},-{e.y1} {e.x2},0 0,-{e.y3} -{e.x2},0 {e.x0},-{e.y1} -{e.x1},-{e.y2} ' +\n        '-{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z',\n      height: 17.125,\n      width:  17.125,\n      heightElements: [4.875, 3.4375, 2.125, 3],\n      widthElements: [3.4375, 2.125, 4.875, 3]\n    },\n    'DATA_OBJECT_PATH': {\n      d:'m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0',\n      height: 61,\n      width:  51,\n      heightElements: [10, 50, 60],\n      widthElements: [10, 40, 50, 60]\n    },\n    'DATA_OBJECT_COLLECTION_PATH': {\n      d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10',\n      height: 10,\n      width: 10,\n      heightElements: [],\n      widthElements: []\n    },\n    'DATA_ARROW': {\n      d:'m 5,9 9,0 0,-3 5,5 -5,5 0,-3 -9,0 z',\n      height: 61,\n      width:  51,\n      heightElements: [],\n      widthElements: []\n    },\n    'DATA_STORE': {\n      d:'m  {mx},{my} ' +\n        'l  0,{e.y2} ' +\n        'c  {e.x0},{e.y1} {e.x1},{e.y1}  {e.x2},0 ' +\n        'l  0,-{e.y2} ' +\n        'c -{e.x0},-{e.y1} -{e.x1},-{e.y1} -{e.x2},0' +\n        'c  {e.x0},{e.y1} {e.x1},{e.y1}  {e.x2},0 ' +\n        'm  -{e.x2},{e.y0}' +\n        'c  {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0' +\n        'm  -{e.x2},{e.y0}' +\n        'c  {e.x0},{e.y1} {e.x1},{e.y1}  {e.x2},0',\n      height: 61,\n      width:  61,\n      heightElements: [7, 10, 45],\n      widthElements:  [2, 58, 60]\n    },\n    'TEXT_ANNOTATION': {\n      d: 'm {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0',\n      height: 30,\n      width: 10,\n      heightElements: [30],\n      widthElements: [10]\n    },\n    'MARKER_SUB_PROCESS': {\n      d: 'm{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0',\n      height: 10,\n      width: 10,\n      heightElements: [],\n      widthElements: []\n    },\n    'MARKER_PARALLEL': {\n      d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10',\n      height: 10,\n      width: 10,\n      heightElements: [],\n      widthElements: []\n    },\n    'MARKER_SEQUENTIAL': {\n      d: 'm{mx},{my} m 0,3 l 10,0 m -10,3 l 10,0 m -10,3 l 10,0',\n      height: 10,\n      width: 10,\n      heightElements: [],\n      widthElements: []\n    },\n    'MARKER_COMPENSATION': {\n      d: 'm {mx},{my} 7,-5 0,10 z m 7.1,-0.3 6.9,-4.7 0,10 -6.9,-4.7 z',\n      height: 10,\n      width: 21,\n      heightElements: [],\n      widthElements: []\n    },\n    'MARKER_LOOP': {\n      d: 'm {mx},{my} c 3.526979,0 6.386161,-2.829858 6.386161,-6.320661 0,-3.490806 -2.859182,-6.320661 ' +\n        '-6.386161,-6.320661 -3.526978,0 -6.38616,2.829855 -6.38616,6.320661 0,1.745402 ' +\n        '0.714797,3.325567 1.870463,4.469381 0.577834,0.571908 1.265885,1.034728 2.029916,1.35457 ' +\n        'l -0.718163,-3.909793 m 0.718163,3.909793 -3.885211,0.802902',\n      height: 13.9,\n      width: 13.7,\n      heightElements: [],\n      widthElements: []\n    },\n    'MARKER_ADHOC': {\n      d: 'm {mx},{my} m 0.84461,2.64411 c 1.05533,-1.23780996 2.64337,-2.07882 4.29653,-1.97997996 2.05163,0.0805 ' +\n        '3.85579,1.15803 5.76082,1.79107 1.06385,0.34139996 2.24454,0.1438 3.18759,-0.43767 0.61743,-0.33642 ' +\n        '1.2775,-0.64078 1.7542,-1.17511 0,0.56023 0,1.12046 0,1.6807 -0.98706,0.96237996 -2.29792,1.62393996 ' +\n        '-3.6918,1.66181996 -1.24459,0.0927 -2.46671,-0.2491 -3.59505,-0.74812 -1.35789,-0.55965 ' +\n        '-2.75133,-1.33436996 -4.27027,-1.18121996 -1.37741,0.14601 -2.41842,1.13685996 -3.44288,1.96782996 z',\n      height: 4,\n      width: 15,\n      heightElements: [],\n      widthElements: []\n    },\n    'TASK_TYPE_SEND': {\n      d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',\n      height: 14,\n      width:  21,\n      heightElements: [6, 14],\n      widthElements: [10.5, 21]\n    },\n    'TASK_TYPE_SCRIPT': {\n      d: 'm {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 ' +\n        'c -10.969894,7.01868 6.997585,8.66524 -2.968967,14.938 z ' +\n        'm -7,-12 l 5,0 ' +\n        'm -4.5,3 l 4.5,0 ' +\n        'm -3,3 l 5,0' +\n        'm -4,3 l 5,0',\n      height: 15,\n      width:  12.6,\n      heightElements: [6, 14],\n      widthElements: [10.5, 21]\n    },\n    'TASK_TYPE_USER_1': {\n      d: 'm {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 ' +\n        '-4.357,-4.62199999 -2.55199998,0 -4.28799998,2.06799999 -4.28799998,4.62199999 0,1.348 ' +\n        '0.974,2.562 1.89599998,3.405 -0.52899998,0.187 -5.669,2.097 -5.794,4.7560005 v 6.718 ' +\n        'h 17 v -6.718 c 0,-2.2980005 -5.5279996,-4.5950005 -6.0509996,-4.7760005 z' +\n        'm -8,6 l 0,5.5 m 11,0 l 0,-5'\n    },\n    'TASK_TYPE_USER_2': {\n      d: 'm {mx},{my} m 2.162,1.009 c 0,2.4470005 -2.158,4.4310005 -4.821,4.4310005 ' +\n        '-2.66499998,0 -4.822,-1.981 -4.822,-4.4310005 '\n    },\n    'TASK_TYPE_USER_3': {\n      d: 'm {mx},{my} m -6.9,-3.80 c 0,0 2.25099998,-2.358 4.27399998,-1.177 2.024,1.181 4.221,1.537 ' +\n        '4.124,0.965 -0.098,-0.57 -0.117,-3.79099999 -4.191,-4.13599999 -3.57499998,0.001 ' +\n        '-4.20799998,3.36699999 -4.20699998,4.34799999 z'\n    },\n    'TASK_TYPE_MANUAL': {\n      d: 'm {mx},{my} c 0.234,-0.01 5.604,0.008 8.029,0.004 0.808,0 1.271,-0.172 1.417,-0.752 0.227,-0.898 ' +\n        '-0.334,-1.314 -1.338,-1.316 -2.467,-0.01 -7.886,-0.004 -8.108,-0.004 -0.014,-0.079 0.016,-0.533 0,-0.61 ' +\n        '0.195,-0.042 8.507,0.006 9.616,0.002 0.877,-0.007 1.35,-0.438 1.353,-1.208 0.003,-0.768 -0.479,-1.09 ' +\n        '-1.35,-1.091 -2.968,-0.002 -9.619,-0.013 -9.619,-0.013 v -0.591 c 0,0 5.052,-0.016 7.225,-0.016 ' +\n        '0.888,-0.002 1.354,-0.416 1.351,-1.193 -0.006,-0.761 -0.492,-1.196 -1.361,-1.196 -3.473,-0.005 ' +\n        '-10.86,-0.003 -11.0829995,-0.003 -0.022,-0.047 -0.045,-0.094 -0.069,-0.139 0.3939995,-0.319 ' +\n        '2.0409995,-1.626 2.4149995,-2.017 0.469,-0.4870005 0.519,-1.1650005 0.162,-1.6040005 -0.414,-0.511 ' +\n        '-0.973,-0.5 -1.48,-0.236 -1.4609995,0.764 -6.5999995,3.6430005 -7.7329995,4.2710005 -0.9,0.499 ' +\n        '-1.516,1.253 -1.882,2.19 -0.37000002,0.95 -0.17,2.01 -0.166,2.979 0.004,0.718 -0.27300002,1.345 ' +\n        '-0.055,2.063 0.629,2.087 2.425,3.312 4.859,3.318 4.6179995,0.014 9.2379995,-0.139 13.8569995,-0.158 ' +\n        '0.755,-0.004 1.171,-0.301 1.182,-1.033 0.012,-0.754 -0.423,-0.969 -1.183,-0.973 -1.778,-0.01 ' +\n        '-5.824,-0.004 -6.04,-0.004 10e-4,-0.084 0.003,-0.586 10e-4,-0.67 z'\n    },\n    'TASK_TYPE_INSTANTIATING_SEND': {\n      d: 'm {mx},{my} l 0,8.4 l 12.6,0 l 0,-8.4 z l 6.3,3.6 l 6.3,-3.6'\n    },\n    'TASK_TYPE_SERVICE': {\n      d: 'm {mx},{my} v -1.71335 c 0.352326,-0.0705 0.703932,-0.17838 1.047628,-0.32133 ' +\n        '0.344416,-0.14465 0.665822,-0.32133 0.966377,-0.52145 l 1.19431,1.18005 1.567487,-1.57688 ' +\n        '-1.195028,-1.18014 c 0.403376,-0.61394 0.683079,-1.29908 0.825447,-2.01824 l 1.622133,-0.01 ' +\n        'v -2.2196 l -1.636514,0.01 c -0.07333,-0.35153 -0.178319,-0.70024 -0.323564,-1.04372 ' +\n        '-0.145244,-0.34406 -0.321407,-0.6644 -0.522735,-0.96217 l 1.131035,-1.13631 -1.583305,-1.56293 ' +\n        '-1.129598,1.13589 c -0.614052,-0.40108 -1.302883,-0.68093 -2.022633,-0.82247 l 0.0093,-1.61852 ' +\n        'h -2.241173 l 0.0042,1.63124 c -0.353763,0.0736 -0.705369,0.17977 -1.049785,0.32371 -0.344415,0.14437 ' +\n        '-0.665102,0.32092 -0.9635006,0.52046 l -1.1698628,-1.15823 -1.5667691,1.5792 1.1684265,1.15669 ' +\n        'c -0.4026573,0.61283 -0.68308,1.29797 -0.8247287,2.01713 l -1.6588041,0.003 v 2.22174 ' +\n        'l 1.6724648,-0.006 c 0.073327,0.35077 0.1797598,0.70243 0.3242851,1.04472 0.1452428,0.34448 ' +\n        '0.3214064,0.6644 0.5227339,0.96066 l -1.1993431,1.19723 1.5840256,1.56011 1.1964668,-1.19348 ' +\n        'c 0.6140517,0.40346 1.3028827,0.68232 2.0233517,0.82331 l 7.19e-4,1.69892 h 2.226848 z ' +\n        'm 0.221462,-3.9957 c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 ' +\n        '0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 ' +\n        '0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z'\n    },\n    'TASK_TYPE_SERVICE_FILL': {\n      d: 'm {mx},{my} c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 ' +\n        '0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 ' +\n        '0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z'\n    },\n    'TASK_TYPE_BUSINESS_RULE_HEADER': {\n      d: 'm {mx},{my} 0,4 20,0 0,-4 z'\n    },\n    'TASK_TYPE_BUSINESS_RULE_MAIN': {\n      d: 'm {mx},{my} 0,12 20,0 0,-12 z' +\n        'm 0,8 l 20,0 ' +\n        'm -13,-4 l 0,8'\n    },\n    'MESSAGE_FLOW_MARKER': {\n      d: 'm {mx},{my} m -10.5 ,-7 l 0,14 l 21,0 l 0,-14 z l 10.5,6 l 10.5,-6'\n    }\n  };\n\n  this.getRawPath = function getRawPath(pathId) {\n    return this.pathMap[pathId].d;\n  };\n\n  /**\n   * Scales the path to the given height and width.\n   * <h1>Use case</h1>\n   * <p>Use case is to scale the content of elements (event, gateways) based\n   * on the element bounding box's size.\n   * </p>\n   * <h1>Why not transform</h1>\n   * <p>Scaling a path with transform() will also scale the stroke and IE does not support\n   * the option 'non-scaling-stroke' to prevent this.\n   * Also there are use cases where only some parts of a path should be\n   * scaled.</p>\n   *\n   * @param {string} pathId The ID of the path.\n   * @param {Object} param <p>\n   *   Example param object scales the path to 60% size of the container (data.width, data.height).\n   *   <pre>\n   *   {\n   *     xScaleFactor: 0.6,\n   *     yScaleFactor:0.6,\n   *     containerWidth: data.width,\n   *     containerHeight: data.height,\n   *     position: {\n   *       mx: 0.46,\n   *       my: 0.2,\n   *     }\n   *   }\n   *   </pre>\n   *   <ul>\n   *    <li>targetpathwidth = xScaleFactor * containerWidth</li>\n   *    <li>targetpathheight = yScaleFactor * containerHeight</li>\n   *    <li>Position is used to set the starting coordinate of the path. M is computed:\n    *    <ul>\n    *      <li>position.x * containerWidth</li>\n    *      <li>position.y * containerHeight</li>\n    *    </ul>\n    *    Center of the container <pre> position: {\n   *       mx: 0.5,\n   *       my: 0.5,\n   *     }</pre>\n   *     Upper left corner of the container\n   *     <pre> position: {\n   *       mx: 0.0,\n   *       my: 0.0,\n   *     }</pre>\n   *    </li>\n   *   </ul>\n   * </p>\n   *\n   */\n  this.getScaledPath = function getScaledPath(pathId, param) {\n    var rawPath = this.pathMap[pathId];\n\n    // positioning\n    // compute the start point of the path\n    var mx, my;\n\n    if (param.abspos) {\n      mx = param.abspos.x;\n      my = param.abspos.y;\n    } else {\n      mx = param.containerWidth * param.position.mx;\n      my = param.containerHeight * param.position.my;\n    }\n\n    var coordinates = {}; // map for the scaled coordinates\n    if (param.position) {\n\n      // path\n      var heightRatio = (param.containerHeight / rawPath.height) * param.yScaleFactor;\n      var widthRatio = (param.containerWidth / rawPath.width) * param.xScaleFactor;\n\n\n      // Apply height ratio\n      for (var heightIndex = 0; heightIndex < rawPath.heightElements.length; heightIndex++) {\n        coordinates['y' + heightIndex] = rawPath.heightElements[heightIndex] * heightRatio;\n      }\n\n      // Apply width ratio\n      for (var widthIndex = 0; widthIndex < rawPath.widthElements.length; widthIndex++) {\n        coordinates['x' + widthIndex] = rawPath.widthElements[widthIndex] * widthRatio;\n      }\n    }\n\n    // Apply value to raw path\n    var path = format(\n      rawPath.d, {\n        mx: mx,\n        my: my,\n        e: coordinates\n      }\n    );\n    return path;\n  };\n}\n\n// helpers //////////////////////\n\n// copied from https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js\nvar tokenRegex = /\\{([^}]+)\\}/g,\n    objNotationRegex = /(?:(?:^|\\.)(.+?)(?=\\[|\\.|$|\\()|\\[('|\")(.+?)\\2\\])(\\(\\))?/g; // matches .xxxxx or [\"xxxxx\"] to run over object properties\n\nfunction replacer(all, key, obj) {\n  var res = obj;\n  key.replace(objNotationRegex, function(all, name, quote, quotedName, isFunc) {\n    name = name || quotedName;\n    if (res) {\n      if (name in res) {\n        res = res[name];\n      }\n      typeof res == 'function' && isFunc && (res = res());\n    }\n  });\n  res = (res == null || res == obj ? all : res) + '';\n\n  return res;\n}\n\nfunction format(str, obj) {\n  return String(str).replace(tokenRegex, function(all, key) {\n    return replacer(all, key, obj);\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/PathMap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/draw/TextRenderer.js":
  /*!*******************************************************!*\
    !*** ./node_modules/bpmn-js/lib/draw/TextRenderer.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ TextRenderer)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Text */ \"./node_modules/diagram-js/lib/util/Text.js\");\n\n\n\n\nvar DEFAULT_FONT_SIZE = 12;\nvar LINE_HEIGHT_RATIO = 1.2;\n\nvar MIN_TEXT_ANNOTATION_HEIGHT = 30;\n\n\nfunction TextRenderer(config) {\n\n  var defaultStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n    fontFamily: 'Arial, sans-serif',\n    fontSize: DEFAULT_FONT_SIZE,\n    fontWeight: 'normal',\n    lineHeight: LINE_HEIGHT_RATIO\n  }, config && config.defaultStyle || {});\n\n  var fontSize = parseInt(defaultStyle.fontSize, 10) - 1;\n\n  var externalStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultStyle, {\n    fontSize: fontSize\n  }, config && config.externalStyle || {});\n\n  var textUtil = new diagram_js_lib_util_Text__WEBPACK_IMPORTED_MODULE_1__.default({\n    style: defaultStyle\n  });\n\n  /**\n   * Get the new bounds of an externally rendered,\n   * layouted label.\n   *\n   * @param  {Bounds} bounds\n   * @param  {string} text\n   *\n   * @return {Bounds}\n   */\n  this.getExternalLabelBounds = function(bounds, text) {\n\n    var layoutedDimensions = textUtil.getDimensions(text, {\n      box: {\n        width: 90,\n        height: 30,\n        x: bounds.width / 2 + bounds.x,\n        y: bounds.height / 2 + bounds.y\n      },\n      style: externalStyle\n    });\n\n    // resize label shape to fit label text\n    return {\n      x: Math.round(bounds.x + bounds.width / 2 - layoutedDimensions.width / 2),\n      y: Math.round(bounds.y),\n      width: Math.ceil(layoutedDimensions.width),\n      height: Math.ceil(layoutedDimensions.height)\n    };\n\n  };\n\n  /**\n   * Get the new bounds of text annotation.\n   *\n   * @param  {Bounds} bounds\n   * @param  {string} text\n   *\n   * @return {Bounds}\n   */\n  this.getTextAnnotationBounds = function(bounds, text) {\n\n    var layoutedDimensions = textUtil.getDimensions(text, {\n      box: bounds,\n      style: defaultStyle,\n      align: 'left-top',\n      padding: 5\n    });\n\n    return {\n      x: bounds.x,\n      y: bounds.y,\n      width: bounds.width,\n      height: Math.max(MIN_TEXT_ANNOTATION_HEIGHT, Math.round(layoutedDimensions.height))\n    };\n  };\n\n  /**\n   * Create a layouted text element.\n   *\n   * @param {string} text\n   * @param {Object} [options]\n   *\n   * @return {SVGElement} rendered text\n   */\n  this.createText = function(text, options) {\n    return textUtil.createText(text, options || {});\n  };\n\n  /**\n   * Get default text style.\n   */\n  this.getDefaultStyle = function() {\n    return defaultStyle;\n  };\n\n  /**\n   * Get the external text style.\n   */\n  this.getExternalStyle = function() {\n    return externalStyle;\n  };\n\n}\n\nTextRenderer.$inject = [\n  'config.textRenderer'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/TextRenderer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/draw/index.js":
  /*!************************************************!*\
    !*** ./node_modules/bpmn-js/lib/draw/index.js ***!
    \************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnRenderer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnRenderer */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderer.js\");\n/* harmony import */ var _TextRenderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TextRenderer */ \"./node_modules/bpmn-js/lib/draw/TextRenderer.js\");\n/* harmony import */ var _PathMap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PathMap */ \"./node_modules/bpmn-js/lib/draw/PathMap.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'bpmnRenderer' ],\n  bpmnRenderer: [ 'type', _BpmnRenderer__WEBPACK_IMPORTED_MODULE_0__.default ],\n  textRenderer: [ 'type', _TextRenderer__WEBPACK_IMPORTED_MODULE_1__.default ],\n  pathMap: [ 'type', _PathMap__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/draw/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoPlace)\n/* harmony export */ });\n/* harmony import */ var _BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnAutoPlaceUtil */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js\");\n\n\n\n/**\n * BPMN auto-place behavior.\n *\n * @param {EventBus} eventBus\n */\nfunction AutoPlace(eventBus) {\n  eventBus.on('autoPlace', function(context) {\n    var shape = context.shape,\n        source = context.source;\n\n    return (0,_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__.getNewShapePosition)(source, shape);\n  });\n}\n\nAutoPlace.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getNewShapePosition\": () => (/* binding */ getNewShapePosition),\n/* harmony export */   \"getFlowNodePosition\": () => (/* binding */ getFlowNodePosition),\n/* harmony export */   \"getTextAnnotationPosition\": () => (/* binding */ getTextAnnotationPosition),\n/* harmony export */   \"getDataElementPosition\": () => (/* binding */ getDataElementPosition)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/auto-place/AutoPlaceUtil */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js\");\n\n\n\n\n\n\n\n\n/**\n * Find the new position for the target element to\n * connect to source.\n *\n * @param  {djs.model.Shape} source\n * @param  {djs.model.Shape} element\n *\n * @return {Point}\n */\nfunction getNewShapePosition(source, element) {\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n    return getTextAnnotationPosition(source, element);\n  }\n\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(element, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ])) {\n    return getDataElementPosition(source, element);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:FlowNode')) {\n    return getFlowNodePosition(source, element);\n  }\n}\n\n/**\n * Always try to place element right of source;\n * compute actual distance from previous nodes in flow.\n */\nfunction getFlowNodePosition(source, element) {\n\n  var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n  var sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getMid)(source);\n\n  var horizontalDistance = (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.getConnectedDistance)(source, {\n    filter: function(connection) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(connection, 'bpmn:SequenceFlow');\n    }\n  });\n\n  var margin = 30,\n      minDistance = 80,\n      orientation = 'left';\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(source, 'bpmn:BoundaryEvent')) {\n    orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getOrientation)(source, source.host, -25);\n\n    if (orientation.indexOf('top') !== -1) {\n      margin *= -1;\n    }\n  }\n\n  var position = {\n    x: sourceTrbl.right + horizontalDistance + element.width / 2,\n    y: sourceMid.y + getVerticalDistance(orientation, minDistance)\n  };\n\n  var nextPositionDirection = {\n    y: {\n      margin: margin,\n      minDistance: minDistance\n    }\n  };\n\n  return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n\nfunction getVerticalDistance(orientation, minDistance) {\n  if (orientation.indexOf('top') != -1) {\n    return -1 * minDistance;\n  } else if (orientation.indexOf('bottom') != -1) {\n    return minDistance;\n  } else {\n    return 0;\n  }\n}\n\n\n/**\n * Always try to place text annotations top right of source.\n */\nfunction getTextAnnotationPosition(source, element) {\n\n  var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n\n  var position = {\n    x: sourceTrbl.right + element.width / 2,\n    y: sourceTrbl.top - 50 - element.height / 2\n  };\n\n  var nextPositionDirection = {\n    y: {\n      margin: -30,\n      minDistance: 20\n    }\n  };\n\n  return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n\n/**\n * Always put element bottom right of source.\n */\nfunction getDataElementPosition(source, element) {\n\n  var sourceTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.asTRBL)(source);\n\n  var position = {\n    x: sourceTrbl.right - 10 + element.width / 2,\n    y: sourceTrbl.bottom + 40 + element.width / 2\n  };\n\n  var nextPositionDirection = {\n    x: {\n      margin: 30,\n      minDistance: 30\n    }\n  };\n\n  return (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.findFreePosition)(source, element, position, (0,diagram_js_lib_features_auto_place_AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_3__.generateGetNextPosition)(nextPositionDirection));\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-place/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-place/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_auto_place__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/auto-place */ \"./node_modules/diagram-js/lib/features/auto-place/index.js\");\n/* harmony import */ var _BpmnAutoPlace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnAutoPlace */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [ diagram_js_lib_features_auto_place__WEBPACK_IMPORTED_MODULE_0__.default ],\n  __init__: [ 'bpmnAutoPlace' ],\n  bpmnAutoPlace: [ 'type', _BpmnAutoPlace__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-place/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnAutoResize)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/auto-resize/AutoResize */ \"./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * Sub class of the AutoResize module which implements a BPMN\n * specific resize function.\n */\nfunction BpmnAutoResize(injector) {\n\n  injector.invoke(diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\nBpmnAutoResize.$inject = [\n  'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnAutoResize, diagram_js_lib_features_auto_resize_AutoResize__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Resize shapes and lanes.\n *\n * @param {djs.model.Shape} target\n * @param {Bounds} newBounds\n * @param {Object} hints\n */\nBpmnAutoResize.prototype.resize = function(target, newBounds, hints) {\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant')) {\n    this._modeling.resizeLane(target, newBounds, null, hints);\n  } else {\n    this._modeling.resizeShape(target, newBounds, null, hints);\n  }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnAutoResizeProvider)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/auto-resize/AutoResizeProvider */ \"./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js\");\n\n\n\n\n\n\n\n\n\n/**\n * This module is a provider for automatically resizing parent BPMN elements\n */\nfunction BpmnAutoResizeProvider(eventBus, modeling) {\n  diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this._modeling = modeling;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnAutoResizeProvider, diagram_js_lib_features_auto_resize_AutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnAutoResizeProvider.$inject = [\n  'eventBus',\n  'modeling'\n];\n\n\n/**\n * Check if the given target can be expanded\n *\n * @param  {djs.model.Shape} target\n *\n * @return {boolean}\n */\nBpmnAutoResizeProvider.prototype.canResize = function(elements, target) {\n\n  if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Lane') && !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:SubProcess'))) {\n    return false;\n  }\n\n  var canResize = true;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(elements, function(element) {\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Lane') || element.labelTarget) {\n      canResize = false;\n      return;\n    }\n  });\n\n  return canResize;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/auto-resize/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/auto-resize/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnAutoResize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnAutoResize */ \"./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js\");\n/* harmony import */ var _BpmnAutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnAutoResizeProvider */ \"./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'bpmnAutoResize',\n    'bpmnAutoResizeProvider'\n  ],\n  bpmnAutoResize: [ 'type', _BpmnAutoResize__WEBPACK_IMPORTED_MODULE_0__.default ],\n  bpmnAutoResizeProvider: [ 'type', _BpmnAutoResizeProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/auto-resize/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ContextPadProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../modeling/util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A provider for BPMN 2.0 elements context pad\n */\nfunction ContextPadProvider(\n    config, injector, eventBus,\n    contextPad, modeling, elementFactory,\n    connect, create, popupMenu,\n    canvas, rules, translate) {\n\n  config = config || {};\n\n  contextPad.registerProvider(this);\n\n  this._contextPad = contextPad;\n\n  this._modeling = modeling;\n\n  this._elementFactory = elementFactory;\n  this._connect = connect;\n  this._create = create;\n  this._popupMenu = popupMenu;\n  this._canvas = canvas;\n  this._rules = rules;\n  this._translate = translate;\n\n  if (config.autoPlace !== false) {\n    this._autoPlace = injector.get('autoPlace', false);\n  }\n\n  eventBus.on('create.end', 250, function(event) {\n    var context = event.context,\n        shape = context.shape;\n\n    if (!(0,diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event) || !contextPad.isOpen(shape)) {\n      return;\n    }\n\n    var entries = contextPad.getEntries(shape);\n\n    if (entries.replace) {\n      entries.replace.action.click(event, shape);\n    }\n  });\n}\n\nContextPadProvider.$inject = [\n  'config.contextPad',\n  'injector',\n  'eventBus',\n  'contextPad',\n  'modeling',\n  'elementFactory',\n  'connect',\n  'create',\n  'popupMenu',\n  'canvas',\n  'rules',\n  'translate'\n];\n\n\nContextPadProvider.prototype.getContextPadEntries = function(element) {\n\n  var contextPad = this._contextPad,\n      modeling = this._modeling,\n\n      elementFactory = this._elementFactory,\n      connect = this._connect,\n      create = this._create,\n      popupMenu = this._popupMenu,\n      canvas = this._canvas,\n      rules = this._rules,\n      autoPlace = this._autoPlace,\n      translate = this._translate;\n\n  var actions = {};\n\n  if (element.type === 'label') {\n    return actions;\n  }\n\n  var businessObject = element.businessObject;\n\n  function startConnect(event, element) {\n    connect.start(event, element);\n  }\n\n  function removeElement(e) {\n    modeling.removeElements([ element ]);\n  }\n\n  function getReplaceMenuPosition(element) {\n\n    var Y_OFFSET = 5;\n\n    var diagramContainer = canvas.getContainer(),\n        pad = contextPad.getPad(element).html;\n\n    var diagramRect = diagramContainer.getBoundingClientRect(),\n        padRect = pad.getBoundingClientRect();\n\n    var top = padRect.top - diagramRect.top;\n    var left = padRect.left - diagramRect.left;\n\n    var pos = {\n      x: left,\n      y: top + padRect.height + Y_OFFSET\n    };\n\n    return pos;\n  }\n\n\n  /**\n   * Create an append action\n   *\n   * @param {string} type\n   * @param {string} className\n   * @param {string} [title]\n   * @param {Object} [options]\n   *\n   * @return {Object} descriptor\n   */\n  function appendAction(type, className, title, options) {\n\n    if (typeof title !== 'string') {\n      options = title;\n      title = translate('Append {type}', { type: type.replace(/^bpmn:/, '') });\n    }\n\n    function appendStart(event, element) {\n\n      var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ type: type }, options));\n      create.start(event, shape, {\n        source: element\n      });\n    }\n\n\n    var append = autoPlace ? function(event, element) {\n      var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ type: type }, options));\n\n      autoPlace.append(element, shape);\n    } : appendStart;\n\n\n    return {\n      group: 'model',\n      className: className,\n      title: title,\n      action: {\n        dragstart: appendStart,\n        click: append\n      }\n    };\n  }\n\n  function splitLaneHandler(count) {\n\n    return function(event, element) {\n\n      // actual split\n      modeling.splitLane(element, count);\n\n      // refresh context pad after split to\n      // get rid of split icons\n      contextPad.open(element, true);\n    };\n  }\n\n\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:Lane', 'bpmn:Participant' ]) && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(businessObject)) {\n\n    var childLanes = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(element);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'lane-insert-above': {\n        group: 'lane-insert-above',\n        className: 'bpmn-icon-lane-insert-above',\n        title: translate('Add Lane above'),\n        action: {\n          click: function(event, element) {\n            modeling.addLane(element, 'top');\n          }\n        }\n      }\n    });\n\n    if (childLanes.length < 2) {\n\n      if (element.height >= 120) {\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n          'lane-divide-two': {\n            group: 'lane-divide',\n            className: 'bpmn-icon-lane-divide-two',\n            title: translate('Divide into two Lanes'),\n            action: {\n              click: splitLaneHandler(2)\n            }\n          }\n        });\n      }\n\n      if (element.height >= 180) {\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n          'lane-divide-three': {\n            group: 'lane-divide',\n            className: 'bpmn-icon-lane-divide-three',\n            title: translate('Divide into three Lanes'),\n            action: {\n              click: splitLaneHandler(3)\n            }\n          }\n        });\n      }\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'lane-insert-below': {\n        group: 'lane-insert-below',\n        className: 'bpmn-icon-lane-insert-below',\n        title: translate('Add Lane below'),\n        action: {\n          click: function(event, element) {\n            modeling.addLane(element, 'bottom');\n          }\n        }\n      }\n    });\n\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:FlowNode')) {\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:EventBasedGateway')) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n        'append.receive-task': appendAction(\n          'bpmn:ReceiveTask',\n          'bpmn-icon-receive-task',\n          translate('Append ReceiveTask')\n        ),\n        'append.message-intermediate-event': appendAction(\n          'bpmn:IntermediateCatchEvent',\n          'bpmn-icon-intermediate-event-catch-message',\n          translate('Append MessageIntermediateCatchEvent'),\n          { eventDefinitionType: 'bpmn:MessageEventDefinition' }\n        ),\n        'append.timer-intermediate-event': appendAction(\n          'bpmn:IntermediateCatchEvent',\n          'bpmn-icon-intermediate-event-catch-timer',\n          translate('Append TimerIntermediateCatchEvent'),\n          { eventDefinitionType: 'bpmn:TimerEventDefinition' }\n        ),\n        'append.condition-intermediate-event': appendAction(\n          'bpmn:IntermediateCatchEvent',\n          'bpmn-icon-intermediate-event-catch-condition',\n          translate('Append ConditionIntermediateCatchEvent'),\n          { eventDefinitionType: 'bpmn:ConditionalEventDefinition' }\n        ),\n        'append.signal-intermediate-event': appendAction(\n          'bpmn:IntermediateCatchEvent',\n          'bpmn-icon-intermediate-event-catch-signal',\n          translate('Append SignalIntermediateCatchEvent'),\n          { eventDefinitionType: 'bpmn:SignalEventDefinition' }\n        )\n      });\n    } else\n\n    if (isEventType(businessObject, 'bpmn:BoundaryEvent', 'bpmn:CompensateEventDefinition')) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n        'append.compensation-activity':\n            appendAction(\n              'bpmn:Task',\n              'bpmn-icon-task',\n              translate('Append compensation activity'),\n              {\n                isForCompensation: true\n              }\n            )\n      });\n    } else\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:EndEvent') &&\n        !businessObject.isForCompensation &&\n        !isEventType(businessObject, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') &&\n        !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isEventSubProcess)(businessObject)) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n        'append.end-event': appendAction(\n          'bpmn:EndEvent',\n          'bpmn-icon-end-event-none',\n          translate('Append EndEvent')\n        ),\n        'append.gateway': appendAction(\n          'bpmn:ExclusiveGateway',\n          'bpmn-icon-gateway-none',\n          translate('Append Gateway')\n        ),\n        'append.append-task': appendAction(\n          'bpmn:Task',\n          'bpmn-icon-task',\n          translate('Append Task')\n        ),\n        'append.intermediate-event': appendAction(\n          'bpmn:IntermediateThrowEvent',\n          'bpmn-icon-intermediate-event-none',\n          translate('Append Intermediate/Boundary Event')\n        )\n      });\n    }\n  }\n\n  if (!popupMenu.isEmpty(element, 'bpmn-replace')) {\n\n    // Replace menu entry\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'replace': {\n        group: 'edit',\n        className: 'bpmn-icon-screw-wrench',\n        title: translate('Change type'),\n        action: {\n          click: function(event, element) {\n\n            var position = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(getReplaceMenuPosition(element), {\n              cursor: { x: event.x, y: event.y }\n            });\n\n            popupMenu.open(element, 'bpmn-replace', position);\n          }\n        }\n      }\n    });\n  }\n\n  if (\n    (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [\n      'bpmn:FlowNode',\n      'bpmn:InteractionNode',\n      'bpmn:DataObjectReference',\n      'bpmn:DataStoreReference',\n    ])\n  ) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'append.text-annotation': appendAction(\n        'bpmn:TextAnnotation',\n        'bpmn-icon-text-annotation'\n      ),\n\n      'connect': {\n        group: 'connect',\n        className: 'bpmn-icon-connection-multi',\n        title: translate(\n          'Connect using ' +\n            (businessObject.isForCompensation\n              ? ''\n              : 'Sequence/MessageFlow or ') +\n            'Association'\n        ),\n        action: {\n          click: startConnect,\n          dragstart: startConnect,\n        },\n      },\n    });\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:TextAnnotation')) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'connect': {\n        group: 'connect',\n        className: 'bpmn-icon-connection-multi',\n        title: translate('Connect using Association'),\n        action: {\n          click: startConnect,\n          dragstart: startConnect,\n        },\n      },\n    });\n  }\n\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ])) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'connect': {\n        group: 'connect',\n        className: 'bpmn-icon-connection-multi',\n        title: translate('Connect using DataInputAssociation'),\n        action: {\n          click: startConnect,\n          dragstart: startConnect\n        }\n      }\n    });\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(businessObject, 'bpmn:Group')) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation')\n    });\n  }\n\n  // delete element entry, only show if allowed by rules\n  var deleteAllowed = rules.allowed('elements.delete', { elements: [ element ] });\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(deleteAllowed)) {\n\n    // was the element returned as a deletion candidate?\n    deleteAllowed = deleteAllowed[0] === element;\n  }\n\n  if (deleteAllowed) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(actions, {\n      'delete': {\n        group: 'edit',\n        className: 'bpmn-icon-trash',\n        title: translate('Remove'),\n        action: {\n          click: removeElement\n        }\n      }\n    });\n  }\n\n  return actions;\n};\n\n\n// helpers /////////\n\nfunction isEventType(eventBo, type, definition) {\n\n  var isType = eventBo.$instanceOf(type);\n  var isDefinition = false;\n\n  var definitions = eventBo.eventDefinitions || [];\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(definitions, function(def) {\n    if (def.$type === definition) {\n      isDefinition = true;\n    }\n  });\n\n  return isType && isDefinition;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/context-pad/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/context-pad/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js-direct-editing */ \"./node_modules/diagram-js-direct-editing/index.js\");\n/* harmony import */ var diagram_js_lib_features_context_pad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/context-pad */ \"./node_modules/diagram-js/lib/features/context-pad/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _popup_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../popup-menu */ \"./node_modules/bpmn-js/lib/features/popup-menu/index.js\");\n/* harmony import */ var _ContextPadProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ContextPadProvider */ \"./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__.default,\n    diagram_js_lib_features_context_pad__WEBPACK_IMPORTED_MODULE_1__.default,\n    diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__.default,\n    diagram_js_lib_features_connect__WEBPACK_IMPORTED_MODULE_3__.default,\n    diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_4__.default,\n    _popup_menu__WEBPACK_IMPORTED_MODULE_5__.default\n  ],\n  __init__: [ 'contextPadProvider' ],\n  contextPadProvider: [ 'type', _ContextPadProvider__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/context-pad/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnCopyPaste)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\nfunction copyProperties(source, target, properties) {\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n    properties = [ properties ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(source[property])) {\n      target[property] = source[property];\n    }\n  });\n}\n\nfunction removeProperties(element, properties) {\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n    properties = [ properties ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n    if (element[property]) {\n      delete element[property];\n    }\n  });\n}\n\nvar LOW_PRIORITY = 750;\n\n\nfunction BpmnCopyPaste(bpmnFactory, eventBus, moddleCopy) {\n\n  eventBus.on('copyPaste.copyElement', LOW_PRIORITY, function(context) {\n    var descriptor = context.descriptor,\n        element = context.element;\n\n    var businessObject = descriptor.oldBusinessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n    descriptor.type = element.type;\n\n    copyProperties(businessObject, descriptor, 'name');\n\n    descriptor.di = {};\n\n    // colors will be set to DI\n    copyProperties(businessObject.di, descriptor.di, [\n      'fill',\n      'stroke',\n      'background-color',\n      'border-color',\n      'color'\n    ]);\n\n    copyProperties(businessObject.di, descriptor, 'isExpanded');\n\n    if (isLabel(descriptor)) {\n      return descriptor;\n    }\n\n    // default sequence flow\n    if (businessObject.default) {\n      descriptor.default = businessObject.default.id;\n    }\n  });\n\n  eventBus.on('moddleCopy.canCopyProperty', function(context) {\n    var parent = context.parent,\n        property = context.property,\n        propertyName = context.propertyName,\n        bpmnProcess;\n\n    if (\n      propertyName === 'processRef' &&\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(parent, 'bpmn:Participant') &&\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(property, 'bpmn:Process')\n    ) {\n      bpmnProcess = bpmnFactory.create('bpmn:Process');\n\n      // return copy of process\n      return moddleCopy.copyElement(property, bpmnProcess);\n    }\n  });\n\n  var references;\n\n  function resolveReferences(descriptor, cache) {\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(descriptor);\n\n    // default sequence flows\n    if (descriptor.default) {\n\n      // relationship cannot be resolved immediately\n      references[ descriptor.default ] = {\n        element: businessObject,\n        property: 'default'\n      };\n    }\n\n    // boundary events\n    if (descriptor.host) {\n\n      // relationship can be resolved immediately\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(descriptor).attachedToRef = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(cache[ descriptor.host ]);\n    }\n\n    references = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(references, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(references, function(array, reference, key) {\n      var element = reference.element,\n          property = reference.property;\n\n      if (key === descriptor.id) {\n        element[ property ] = businessObject;\n\n        array.push(descriptor.id);\n      }\n\n      return array;\n    }, []));\n  }\n\n  eventBus.on('copyPaste.pasteElements', function() {\n    references = {};\n  });\n\n  eventBus.on('copyPaste.pasteElement', function(context) {\n    var cache = context.cache,\n        descriptor = context.descriptor,\n        oldBusinessObject = descriptor.oldBusinessObject,\n        newBusinessObject;\n\n    // do NOT copy business object if external label\n    if (isLabel(descriptor)) {\n      descriptor.businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(cache[ descriptor.labelTarget ]);\n\n      return;\n    }\n\n    newBusinessObject = bpmnFactory.create(oldBusinessObject.$type);\n\n    descriptor.businessObject = moddleCopy.copyElement(\n      oldBusinessObject,\n      newBusinessObject\n    );\n\n    // resolve references e.g. default sequence flow\n    resolveReferences(descriptor, cache);\n\n    copyProperties(descriptor, newBusinessObject, [\n      'isExpanded',\n      'name'\n    ]);\n\n    removeProperties(descriptor, 'oldBusinessObject');\n  });\n\n}\n\n\nBpmnCopyPaste.$inject = [\n  'bpmnFactory',\n  'eventBus',\n  'moddleCopy'\n];\n\n// helpers //////////\n\nfunction isLabel(element) {\n  return !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js":
  /*!********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ModdleCopy),\n/* harmony export */   \"getPropertyNames\": () => (/* binding */ getPropertyNames)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar DISALLOWED_PROPERTIES = [\n  'artifacts',\n  'dataInputAssociations',\n  'dataOutputAssociations',\n  'default',\n  'flowElements',\n  'lanes',\n  'incoming',\n  'outgoing'\n];\n\n/**\n * @typedef {Function} <moddleCopy.canCopyProperties> listener\n *\n * @param {Object} context\n * @param {Array<string>} context.propertyNames\n * @param {ModdleElement} context.sourceElement\n * @param {ModdleElement} context.targetElement\n *\n * @returns {Array<string>|boolean} - Return properties to be copied or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} <moddleCopy.canCopyProperty> listener\n *\n * @param {Object} context\n * @param {ModdleElement} context.parent\n * @param {*} context.property\n * @param {string} context.propertyName\n *\n * @returns {*|boolean} - Return copied property or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} <moddleCopy.canSetCopiedProperty> listener\n *\n * @param {Object} context\n * @param {ModdleElement} context.parent\n * @param {*} context.property\n * @param {string} context.propertyName\n *\n * @returns {boolean} - Return false to disallow\n * setting copied property.\n */\n\n/**\n * Utility for copying model properties from source element to target element.\n *\n * @param {EventBus} eventBus\n * @param {BpmnFactory} bpmnFactory\n * @param {BpmnModdle} moddle\n */\nfunction ModdleCopy(eventBus, bpmnFactory, moddle) {\n  this._bpmnFactory = bpmnFactory;\n  this._eventBus = eventBus;\n  this._moddle = moddle;\n\n  // copy extension elements last\n  eventBus.on('moddleCopy.canCopyProperties', function(context) {\n    var propertyNames = context.propertyNames;\n\n    if (!propertyNames || !propertyNames.length) {\n      return;\n    }\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(propertyNames, function(propertyName) {\n      return propertyName === 'extensionElements';\n    });\n  });\n\n  // default check whether property can be copied\n  eventBus.on('moddleCopy.canCopyProperty', function(context) {\n    var parent = context.parent,\n        parentDescriptor = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(parent) && parent.$descriptor,\n        propertyName = context.propertyName;\n\n    if (propertyName && DISALLOWED_PROPERTIES.indexOf(propertyName) !== -1) {\n\n      // disallow copying property\n      return false;\n    }\n\n    if (propertyName &&\n      parentDescriptor &&\n      !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(parentDescriptor.properties, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ name: propertyName }))) {\n\n      // disallow copying property\n      return false;\n    }\n  });\n\n  // do NOT allow to copy empty extension elements\n  eventBus.on('moddleCopy.canSetCopiedProperty', function(context) {\n    var property = context.property;\n\n    if (is(property, 'bpmn:ExtensionElements') && (!property.values || !property.values.length)) {\n\n      // disallow setting copied property\n      return false;\n    }\n  });\n}\n\nModdleCopy.$inject = [\n  'eventBus',\n  'bpmnFactory',\n  'moddle'\n];\n\n/**\n * Copy model properties of source element to target element.\n *\n * @param {ModdleElement} sourceElement\n * @param {ModdleElement} targetElement\n * @param {Array<string>} [propertyNames]\n *\n * @param {ModdleElement}\n */\nModdleCopy.prototype.copyElement = function(sourceElement, targetElement, propertyNames) {\n  var self = this;\n\n  if (propertyNames && !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(propertyNames)) {\n    propertyNames = [ propertyNames ];\n  }\n\n  propertyNames = propertyNames || getPropertyNames(sourceElement.$descriptor);\n\n  var canCopyProperties = this._eventBus.fire('moddleCopy.canCopyProperties', {\n    propertyNames: propertyNames,\n    sourceElement: sourceElement,\n    targetElement: targetElement\n  });\n\n  if (canCopyProperties === false) {\n    return targetElement;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(canCopyProperties)) {\n    propertyNames = canCopyProperties;\n  }\n\n  // copy properties\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(propertyNames, function(propertyName) {\n    var sourceProperty;\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(sourceElement, propertyName)) {\n      sourceProperty = sourceElement.get(propertyName);\n    }\n\n    var copiedProperty = self.copyProperty(sourceProperty, targetElement, propertyName);\n\n    var canSetProperty = self._eventBus.fire('moddleCopy.canSetCopiedProperty', {\n      parent: targetElement,\n      property: copiedProperty,\n      propertyName: propertyName\n    });\n\n    if (canSetProperty === false) {\n      return;\n    }\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(copiedProperty)) {\n      targetElement.set(propertyName, copiedProperty);\n    }\n  });\n\n  return targetElement;\n};\n\n/**\n * Copy model property.\n *\n * @param {*} property\n * @param {ModdleElement} parent\n * @param {string} propertyName\n *\n * @returns {*}\n */\nModdleCopy.prototype.copyProperty = function(property, parent, propertyName) {\n  var self = this;\n\n  // allow others to copy property\n  var copiedProperty = this._eventBus.fire('moddleCopy.canCopyProperty', {\n    parent: parent,\n    property: property,\n    propertyName: propertyName\n  });\n\n  // return if copying is NOT allowed\n  if (copiedProperty === false) {\n    return;\n  }\n\n  if (copiedProperty) {\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(copiedProperty) && copiedProperty.$type && !copiedProperty.$parent) {\n      copiedProperty.$parent = parent;\n    }\n\n    return copiedProperty;\n  }\n\n  var propertyDescriptor = this._moddle.getPropertyDescriptor(parent, propertyName);\n\n  // do NOT copy Ids and references\n  if (propertyDescriptor.isId || propertyDescriptor.isReference) {\n    return;\n  }\n\n  // copy arrays\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(property)) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(property, function(childProperties, childProperty) {\n\n      // recursion\n      copiedProperty = self.copyProperty(childProperty, parent, propertyName);\n\n      // copying might NOT be allowed\n      if (copiedProperty) {\n        copiedProperty.$parent = parent;\n\n        return childProperties.concat(copiedProperty);\n      }\n\n      return childProperties;\n    }, []);\n  }\n\n  // copy model elements\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(property) && property.$type) {\n    if (this._moddle.getElementDescriptor(property).isGeneric) {\n      return;\n    }\n\n    copiedProperty = self._bpmnFactory.create(property.$type);\n\n    copiedProperty.$parent = parent;\n\n    // recursion\n    copiedProperty = self.copyElement(property, copiedProperty);\n\n    return copiedProperty;\n  }\n\n  // copy primitive properties\n  return property;\n};\n\n// helpers //////////\n\nfunction getPropertyNames(descriptor, keepDefaultProperties) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(descriptor.properties, function(properties, property) {\n\n    if (keepDefaultProperties && property.default) {\n      return properties;\n    }\n\n    return properties.concat(property.name);\n  }, []);\n}\n\nfunction is(element, type) {\n  return element && (typeof element.$instanceOf === 'function') && element.$instanceOf(type);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/copy-paste/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/copy-paste/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_copy_paste__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/copy-paste */ \"./node_modules/diagram-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var _BpmnCopyPaste__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnCopyPaste */ \"./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js\");\n/* harmony import */ var _ModdleCopy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ModdleCopy */ \"./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_copy_paste__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnCopyPaste', 'moddleCopy' ],\n  bpmnCopyPaste: [ 'type', _BpmnCopyPaste__WEBPACK_IMPORTED_MODULE_1__.default ],\n  moddleCopy: [ 'type', _ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/copy-paste/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnDiOrdering)\n/* harmony export */ });\n/* harmony import */ var _draw_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../draw/BpmnRenderUtil */ \"./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\nfunction BpmnDiOrdering(eventBus, canvas) {\n\n  eventBus.on('saveXML.start', HIGH_PRIORITY, orderDi);\n\n  function orderDi() {\n    var root = canvas.getRootElement(),\n        rootDi = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(root).di,\n        elements,\n        diElements;\n\n    elements = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__.selfAndAllChildren)([ root ], false);\n\n    // only bpmndi:Shape and bpmndi:Edge can be direct children of bpmndi:Plane\n    elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n      return element !== root && !element.labelTarget;\n    });\n\n    diElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(elements, _draw_BpmnRenderUtil__WEBPACK_IMPORTED_MODULE_3__.getDi);\n\n    rootDi.set('planeElement', diElements);\n  }\n}\n\nBpmnDiOrdering.$inject = [ 'eventBus', 'canvas' ];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/di-ordering/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/di-ordering/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _di_ordering_BpmnDiOrdering__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../di-ordering/BpmnDiOrdering */ \"./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'bpmnDiOrdering'\n  ],\n  bpmnDiOrdering: [ 'type', _di_ordering_BpmnDiOrdering__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/di-ordering/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js ***!
    \*****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnDistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n/**\n * Registers element exclude filters for elements that\n * currently do not support distribution.\n */\nfunction BpmnDistributeElements(distributeElements) {\n\n  distributeElements.registerFilter(function(elements) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n      var cannotDistribute = (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(element, [\n        'bpmn:Association',\n        'bpmn:BoundaryEvent',\n        'bpmn:DataInputAssociation',\n        'bpmn:DataOutputAssociation',\n        'bpmn:Lane',\n        'bpmn:MessageFlow',\n        'bpmn:Participant',\n        'bpmn:SequenceFlow',\n        'bpmn:TextAnnotation'\n      ]);\n\n      return !(element.labelTarget || cannotDistribute);\n    });\n  });\n}\n\nBpmnDistributeElements.$inject = [ 'distributeElements' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/distribute-elements/index.js":
  /*!************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/distribute-elements/index.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_distribute_elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/distribute-elements */ \"./node_modules/diagram-js/lib/features/distribute-elements/index.js\");\n/* harmony import */ var _BpmnDistributeElements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnDistributeElements */ \"./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_distribute_elements__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnDistributeElements' ],\n  bpmnDistributeElements: [ 'type', _BpmnDistributeElements__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/distribute-elements/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnEditorActions)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/editor-actions/EditorActions */ \"./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Registers and executes BPMN specific editor actions.\n *\n * @param {Injector} injector\n */\nfunction BpmnEditorActions(injector) {\n  injector.invoke(diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnEditorActions, diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnEditorActions.$inject = [\n  'injector'\n];\n\n/**\n * Register default actions.\n *\n * @param {Injector} injector\n */\nBpmnEditorActions.prototype._registerDefaultActions = function(injector) {\n\n  // (0) invoke super method\n\n  diagram_js_lib_features_editor_actions_EditorActions__WEBPACK_IMPORTED_MODULE_1__.default.prototype._registerDefaultActions.call(this, injector);\n\n  // (1) retrieve optional components to integrate with\n\n  var canvas = injector.get('canvas', false);\n  var elementRegistry = injector.get('elementRegistry', false);\n  var selection = injector.get('selection', false);\n  var spaceTool = injector.get('spaceTool', false);\n  var lassoTool = injector.get('lassoTool', false);\n  var handTool = injector.get('handTool', false);\n  var globalConnect = injector.get('globalConnect', false);\n  var distributeElements = injector.get('distributeElements', false);\n  var alignElements = injector.get('alignElements', false);\n  var directEditing = injector.get('directEditing', false);\n  var searchPad = injector.get('searchPad', false);\n  var modeling = injector.get('modeling', false);\n\n  // (2) check components and register actions\n\n  if (canvas && elementRegistry && selection) {\n    this._registerAction('selectElements', function() {\n\n      // select all elements except for the invisible\n      // root element\n      var rootElement = canvas.getRootElement();\n\n      var elements = elementRegistry.filter(function(element) {\n        return element !== rootElement;\n      });\n\n      selection.select(elements);\n\n      return elements;\n    });\n  }\n\n  if (spaceTool) {\n    this._registerAction('spaceTool', function() {\n      spaceTool.toggle();\n    });\n  }\n\n  if (lassoTool) {\n    this._registerAction('lassoTool', function() {\n      lassoTool.toggle();\n    });\n  }\n\n  if (handTool) {\n    this._registerAction('handTool', function() {\n      handTool.toggle();\n    });\n  }\n\n  if (globalConnect) {\n    this._registerAction('globalConnectTool', function() {\n      globalConnect.toggle();\n    });\n  }\n\n  if (selection && distributeElements) {\n    this._registerAction('distributeElements', function(opts) {\n      var currentSelection = selection.get(),\n          type = opts.type;\n\n      if (currentSelection.length) {\n        distributeElements.trigger(currentSelection, type);\n      }\n    });\n  }\n\n  if (selection && alignElements) {\n    this._registerAction('alignElements', function(opts) {\n      var currentSelection = selection.get(),\n          aligneableElements = [],\n          type = opts.type;\n\n      if (currentSelection.length) {\n        aligneableElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(currentSelection, function(element) {\n          return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Lane');\n        });\n\n        alignElements.trigger(aligneableElements, type);\n      }\n    });\n  }\n\n  if (selection && modeling) {\n    this._registerAction('setColor', function(opts) {\n      var currentSelection = selection.get();\n\n      if (currentSelection.length) {\n        modeling.setColor(currentSelection, opts);\n      }\n    });\n  }\n\n  if (selection && directEditing) {\n    this._registerAction('directEditing', function() {\n      var currentSelection = selection.get();\n\n      if (currentSelection.length) {\n        directEditing.activate(currentSelection[0]);\n      }\n    });\n  }\n\n  if (searchPad) {\n    this._registerAction('find', function() {\n      searchPad.toggle();\n    });\n  }\n\n  if (canvas && modeling) {\n    this._registerAction('moveToOrigin', function() {\n      var rootElement = canvas.getRootElement(),\n          boundingBox,\n          elements;\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(rootElement, 'bpmn:Collaboration')) {\n        elements = elementRegistry.filter(function(element) {\n          return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:Collaboration');\n        });\n      } else {\n        elements = elementRegistry.filter(function(element) {\n          return element !== rootElement && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:SubProcess');\n        });\n      }\n\n      boundingBox = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(elements);\n\n      modeling.moveElements(\n        elements,\n        { x: -boundingBox.x, y: -boundingBox.y },\n        rootElement\n      );\n    });\n  }\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/editor-actions/index.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/editor-actions/index.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_editor_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/editor-actions */ \"./node_modules/diagram-js/lib/features/editor-actions/index.js\");\n/* harmony import */ var _BpmnEditorActions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnEditorActions */ \"./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_editor_actions__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  editorActions: [ 'type', _BpmnEditorActions__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/editor-actions/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnGridSnapping)\n/* harmony export */ });\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\r\n\r\nfunction BpmnGridSnapping(eventBus) {\r\n  eventBus.on([\r\n    'create.init',\r\n    'shape.move.init'\r\n  ], function(event) {\r\n    var context = event.context,\r\n        shape = event.shape;\r\n\r\n    if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(shape, [\r\n      'bpmn:Participant',\r\n      'bpmn:SubProcess',\r\n      'bpmn:TextAnnotation'\r\n    ])) {\r\n      if (!context.gridSnappingContext) {\r\n        context.gridSnappingContext = {};\r\n      }\r\n\r\n      context.gridSnappingContext.snapLocation = 'top-left';\r\n    }\r\n  });\r\n}\r\n\r\nBpmnGridSnapping.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js ***!
    \***************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoPlaceBehavior)\n/* harmony export */ });\n/* harmony import */ var _auto_place_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../auto-place/BpmnAutoPlaceUtil */ \"./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 2000;\r\n\r\n\r\nfunction AutoPlaceBehavior(eventBus, gridSnapping) {\r\n  eventBus.on('autoPlace', HIGH_PRIORITY, function(context) {\r\n    var source = context.source,\r\n        sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source),\r\n        shape = context.shape;\r\n\r\n    var position = (0,_auto_place_BpmnAutoPlaceUtil__WEBPACK_IMPORTED_MODULE_1__.getNewShapePosition)(source, shape);\r\n\r\n    [ 'x', 'y' ].forEach(function(axis) {\r\n      var options = {};\r\n\r\n      // do not snap if x/y equal\r\n      if (position[ axis ] === sourceMid[ axis ]) {\r\n        return;\r\n      }\r\n\r\n      if (position[ axis ] > sourceMid[ axis ]) {\r\n        options.min = position[ axis ];\r\n      } else {\r\n        options.max = position[ axis ];\r\n      }\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:TextAnnotation')) {\r\n\r\n        if (isHorizontal(axis)) {\r\n          options.offset = -shape.width / 2;\r\n        } else {\r\n          options.offset = -shape.height / 2;\r\n        }\r\n\r\n      }\r\n\r\n      position[ axis ] = gridSnapping.snapValue(position[ axis ], options);\r\n\r\n    });\r\n\r\n    // must be returned to be considered by auto place\r\n    return position;\r\n  });\r\n}\r\n\r\nAutoPlaceBehavior.$inject = [\r\n  'eventBus',\r\n  'gridSnapping'\r\n];\r\n\r\n// helpers //////////\r\n\r\nfunction isHorizontal(axis) {\r\n  return axis === 'x';\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js":
  /*!***********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js ***!
    \***********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\r\n\r\nvar HIGHER_PRIORITY = 1750;\r\n\r\n\r\nfunction CreateParticipantBehavior(canvas, eventBus, gridSnapping) {\r\n  eventBus.on([\r\n    'create.start',\r\n    'shape.move.start'\r\n  ], HIGHER_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        rootElement = canvas.getRootElement();\r\n\r\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant') ||\r\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(rootElement, 'bpmn:Process') ||\r\n      !rootElement.children.length) {\r\n      return;\r\n    }\r\n\r\n    var createConstraints = context.createConstraints;\r\n\r\n    if (!createConstraints) {\r\n      return;\r\n    }\r\n\r\n    shape.width = gridSnapping.snapValue(shape.width, { min: shape.width });\r\n    shape.height = gridSnapping.snapValue(shape.height, { min: shape.height });\r\n  });\r\n}\r\n\r\nCreateParticipantBehavior.$inject = [\r\n  'canvas',\r\n  'eventBus',\r\n  'gridSnapping'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js":
  /*!**********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js ***!
    \**********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LayoutConnectionBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 3000;\n\n\n/**\n * Snaps connections with Manhattan layout.\n */\nfunction LayoutConnectionBehavior(eventBus, gridSnapping, modeling) {\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this._gridSnapping = gridSnapping;\n\n  var self = this;\n\n  this.postExecuted([\n    'connection.create',\n    'connection.layout'\n  ], HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        connection = context.connection,\n        hints = context.hints || {},\n        waypoints = connection.waypoints;\n\n    if (hints.connectionStart || hints.connectionEnd || hints.createElementsBehavior === false) {\n      return;\n    }\n\n    if (!hasMiddleSegments(waypoints)) {\n      return;\n    }\n\n    modeling.updateWaypoints(connection, self.snapMiddleSegments(waypoints));\n  });\n}\n\nLayoutConnectionBehavior.$inject = [\n  'eventBus',\n  'gridSnapping',\n  'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LayoutConnectionBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n/**\n * Snap middle segments of a given connection.\n *\n * @param {Array<Point>} waypoints\n *\n * @returns {Array<Point>}\n */\nLayoutConnectionBehavior.prototype.snapMiddleSegments = function(waypoints) {\n  var gridSnapping = this._gridSnapping,\n      snapped;\n\n  waypoints = waypoints.slice();\n\n  for (var i = 1; i < waypoints.length - 2; i++) {\n\n    snapped = snapSegment(gridSnapping, waypoints[i], waypoints[i + 1]);\n\n    waypoints[i] = snapped[0];\n    waypoints[i + 1] = snapped[1];\n  }\n\n  return waypoints;\n};\n\n\n// helpers //////////\n\n/**\n * Check whether a connection has a middle segments.\n *\n * @param {Array} waypoints\n *\n * @returns {boolean}\n */\nfunction hasMiddleSegments(waypoints) {\n  return waypoints.length > 3;\n}\n\n/**\n * Check whether an alignment is horizontal.\n *\n * @param {string} aligned\n *\n * @returns {boolean}\n */\nfunction horizontallyAligned(aligned) {\n  return aligned === 'h';\n}\n\n/**\n * Check whether an alignment is vertical.\n *\n * @param {string} aligned\n *\n * @returns {boolean}\n */\nfunction verticallyAligned(aligned) {\n  return aligned === 'v';\n}\n\n/**\n * Get middle segments from a given connection.\n *\n * @param {Array} waypoints\n *\n * @returns {Array}\n */\nfunction snapSegment(gridSnapping, segmentStart, segmentEnd) {\n\n  var aligned = (0,diagram_js_lib_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(segmentStart, segmentEnd);\n\n  var snapped = {};\n\n  if (horizontallyAligned(aligned)) {\n\n    // snap horizontally\n    snapped.y = gridSnapping.snapValue(segmentStart.y);\n  }\n\n  if (verticallyAligned(aligned)) {\n\n    // snap vertically\n    snapped.x = gridSnapping.snapValue(segmentStart.x);\n  }\n\n  if ('x' in snapped || 'y' in snapped) {\n    segmentStart = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, segmentStart, snapped);\n    segmentEnd = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)({}, segmentEnd, snapped);\n  }\n\n  return [ segmentStart, segmentEnd ];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AutoPlaceBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlaceBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/AutoPlaceBehavior.js\");\n/* harmony import */ var _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/CreateParticipantBehavior.js\");\n/* harmony import */ var _LayoutConnectionBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LayoutConnectionBehavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/LayoutConnectionBehavior.js\");\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n  __init__: [\r\n    'gridSnappingAutoPlaceBehavior',\r\n    'gridSnappingCreateParticipantBehavior',\r\n    'gridSnappingLayoutConnectionBehavior',\r\n  ],\r\n  gridSnappingAutoPlaceBehavior: [ 'type', _AutoPlaceBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n  gridSnappingCreateParticipantBehavior: [ 'type', _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_1__.default ],\r\n  gridSnappingLayoutConnectionBehavior: [ 'type', _LayoutConnectionBehavior__WEBPACK_IMPORTED_MODULE_2__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/grid-snapping/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/grid-snapping/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnGridSnapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BpmnGridSnapping */ \"./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_grid_snapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/grid-snapping */ \"./node_modules/diagram-js/lib/features/grid-snapping/index.js\");\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./behavior */ \"./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js\");\n\r\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n  __depends__: [\r\n    diagram_js_lib_features_grid_snapping__WEBPACK_IMPORTED_MODULE_0__.default,\r\n    _behavior__WEBPACK_IMPORTED_MODULE_1__.default\r\n  ],\r\n  __init__: [ 'bpmnGridSnapping' ],\r\n  bpmnGridSnapping: [ 'type', _BpmnGridSnapping__WEBPACK_IMPORTED_MODULE_2__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/grid-snapping/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js ***!
    \***************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnInteractionEvents)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\nvar LABEL_WIDTH = 30,\n    LABEL_HEIGHT = 30;\n\n\n/**\n * BPMN-specific hit zones and interaction fixes.\n *\n * @param {EventBus} eventBus\n * @param {InteractionEvents} interactionEvents\n */\nfunction BpmnInteractionEvents(eventBus, interactionEvents) {\n\n  this._interactionEvents = interactionEvents;\n\n  var self = this;\n\n  eventBus.on([\n    'interactionEvents.createHit',\n    'interactionEvents.updateHit'\n  ], function(context) {\n    var element = context.element,\n        gfx = context.gfx;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Lane')) {\n      return self.createParticipantHit(element, gfx);\n    } else\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n      if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)) {\n        return self.createParticipantHit(element, gfx);\n      } else {\n        return self.createDefaultHit(element, gfx);\n      }\n    } else\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess')) {\n      if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)) {\n        return self.createSubProcessHit(element, gfx);\n      } else {\n        return self.createDefaultHit(element, gfx);\n      }\n    }\n  });\n\n}\n\nBpmnInteractionEvents.$inject = [\n  'eventBus',\n  'interactionEvents'\n];\n\n\nBpmnInteractionEvents.prototype.createDefaultHit = function(element, gfx) {\n  this._interactionEvents.removeHits(gfx);\n\n  this._interactionEvents.createDefaultHit(element, gfx);\n\n  // indicate that we created a hit\n  return true;\n};\n\nBpmnInteractionEvents.prototype.createParticipantHit = function(element, gfx) {\n\n  // remove existing hits\n  this._interactionEvents.removeHits(gfx);\n\n  // add outline hit\n  this._interactionEvents.createBoxHit(gfx, 'click-stroke', {\n    width: element.width,\n    height: element.height\n  });\n\n  // add label hit\n  this._interactionEvents.createBoxHit(gfx, 'all', {\n    width: LABEL_WIDTH,\n    height: element.height\n  });\n\n  // indicate that we created a hit\n  return true;\n};\n\nBpmnInteractionEvents.prototype.createSubProcessHit = function(element, gfx) {\n\n  // remove existing hits\n  this._interactionEvents.removeHits(gfx);\n\n  // add outline hit\n  this._interactionEvents.createBoxHit(gfx, 'click-stroke', {\n    width: element.width,\n    height: element.height\n  });\n\n  // add label hit\n  this._interactionEvents.createBoxHit(gfx, 'all', {\n    width: element.width,\n    height: LABEL_HEIGHT\n  });\n\n  // indicate that we created a hit\n  return true;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/interaction-events/index.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/interaction-events/index.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnInteractionEvents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnInteractionEvents */ \"./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'bpmnInteractionEvents' ],\n  bpmnInteractionEvents: [ 'type', _BpmnInteractionEvents__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/interaction-events/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnKeyboardBindings)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/keyboard/KeyboardBindings */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js\");\n\n\n\n\n\n/**\n * BPMN 2.0 specific keyboard bindings.\n *\n * @param {Injector} injector\n */\nfunction BpmnKeyboardBindings(injector) {\n  injector.invoke(diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default, this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnKeyboardBindings, diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnKeyboardBindings.$inject = [\n  'injector'\n];\n\n\n/**\n * Register available keyboard bindings.\n *\n * @param {Keyboard} keyboard\n * @param {EditorActions} editorActions\n */\nBpmnKeyboardBindings.prototype.registerBindings = function(keyboard, editorActions) {\n\n  // inherit default bindings\n  diagram_js_lib_features_keyboard_KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default.prototype.registerBindings.call(this, keyboard, editorActions);\n\n  /**\n   * Add keyboard binding if respective editor action\n   * is registered.\n   *\n   * @param {string} action name\n   * @param {Function} fn that implements the key binding\n   */\n  function addListener(action, fn) {\n\n    if (editorActions.isRegistered(action)) {\n      keyboard.addListener(fn);\n    }\n  }\n\n  // select all elements\n  // CTRL + A\n  addListener('selectElements', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.isKey(['a', 'A'], event) && keyboard.isCmd(event)) {\n      editorActions.trigger('selectElements');\n\n      return true;\n    }\n  });\n\n  // search labels\n  // CTRL + F\n  addListener('find', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.isKey(['f', 'F'], event) && keyboard.isCmd(event)) {\n      editorActions.trigger('find');\n\n      return true;\n    }\n  });\n\n  // activate space tool\n  // S\n  addListener('spaceTool', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.hasModifier(event)) {\n      return;\n    }\n\n    if (keyboard.isKey(['s', 'S'], event)) {\n      editorActions.trigger('spaceTool');\n\n      return true;\n    }\n  });\n\n  // activate lasso tool\n  // L\n  addListener('lassoTool', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.hasModifier(event)) {\n      return;\n    }\n\n    if (keyboard.isKey(['l', 'L'], event)) {\n      editorActions.trigger('lassoTool');\n\n      return true;\n    }\n  });\n\n  // activate hand tool\n  // H\n  addListener('handTool', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.hasModifier(event)) {\n      return;\n    }\n\n    if (keyboard.isKey(['h', 'H'], event)) {\n      editorActions.trigger('handTool');\n\n      return true;\n    }\n  });\n\n  // activate global connect tool\n  // C\n  addListener('globalConnectTool', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.hasModifier(event)) {\n      return;\n    }\n\n    if (keyboard.isKey(['c', 'C'], event)) {\n      editorActions.trigger('globalConnectTool');\n\n      return true;\n    }\n  });\n\n  // activate direct editing\n  // E\n  addListener('directEditing', function(context) {\n\n    var event = context.keyEvent;\n\n    if (keyboard.hasModifier(event)) {\n      return;\n    }\n\n    if (keyboard.isKey(['e', 'E'], event)) {\n      editorActions.trigger('directEditing');\n\n      return true;\n    }\n  });\n\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/keyboard/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/keyboard/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _BpmnKeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnKeyboardBindings */ \"./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_keyboard__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'keyboardBindings' ],\n  keyboardBindings: [ 'type', _BpmnKeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/keyboard/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LabelEditingPreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\nvar MARKER_HIDDEN = 'djs-element-hidden',\n    MARKER_LABEL_HIDDEN = 'djs-label-hidden';\n\n\nfunction LabelEditingPreview(\n    eventBus, canvas, elementRegistry,\n    pathMap) {\n\n  var self = this;\n\n  var defaultLayer = canvas.getDefaultLayer();\n\n  var element, absoluteElementBBox, gfx;\n\n  eventBus.on('directEditing.activate', function(context) {\n    var activeProvider = context.active;\n\n    element = activeProvider.element.label || activeProvider.element;\n\n    // text annotation\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n      absoluteElementBBox = canvas.getAbsoluteBBox(element);\n\n      gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n\n      var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: element.height,\n        position: {\n          mx: 0.0,\n          my: 0.0\n        }\n      });\n\n      var path = self.path = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(path, {\n        d: textPathData,\n        strokeWidth: 2,\n        stroke: getStrokeColor(element)\n      });\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx, path);\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(defaultLayer, gfx);\n\n      (0,diagram_js_lib_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(gfx, element.x, element.y);\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation') ||\n        element.labelTarget) {\n      canvas.addMarker(element, MARKER_HIDDEN);\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Task') ||\n               (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:CallActivity') ||\n               (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess') ||\n               (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n      canvas.addMarker(element, MARKER_LABEL_HIDDEN);\n    }\n  });\n\n  eventBus.on('directEditing.resize', function(context) {\n\n    // text annotation\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:TextAnnotation')) {\n      var height = context.height,\n          dy = context.dy;\n\n      var newElementHeight = Math.max(element.height / absoluteElementBBox.height * (height + dy), 0);\n\n      var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {\n        xScaleFactor: 1,\n        yScaleFactor: 1,\n        containerWidth: element.width,\n        containerHeight: newElementHeight,\n        position: {\n          mx: 0.0,\n          my: 0.0\n        }\n      });\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(self.path, {\n        d: textPathData\n      });\n    }\n  });\n\n  eventBus.on([ 'directEditing.complete', 'directEditing.cancel' ], function(context) {\n    var activeProvider = context.active;\n\n    if (activeProvider) {\n      canvas.removeMarker(activeProvider.element.label || activeProvider.element, MARKER_HIDDEN);\n      canvas.removeMarker(element, MARKER_LABEL_HIDDEN);\n    }\n\n    element = undefined;\n    absoluteElementBBox = undefined;\n\n    if (gfx) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(gfx);\n\n      gfx = undefined;\n    }\n  });\n}\n\nLabelEditingPreview.$inject = [\n  'eventBus',\n  'canvas',\n  'elementRegistry',\n  'pathMap'\n];\n\n\n// helpers ///////////////////\n\nfunction getStrokeColor(element, defaultColor) {\n  var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element);\n\n  return bo.di.get('stroke') || defaultColor || 'black';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LabelEditingProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_behavior_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../modeling/behavior/util/CategoryUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction LabelEditingProvider(\n    eventBus, bpmnFactory, canvas, directEditing,\n    modeling, resizeHandles, textRenderer) {\n\n  this._bpmnFactory = bpmnFactory;\n  this._canvas = canvas;\n  this._modeling = modeling;\n  this._textRenderer = textRenderer;\n\n  directEditing.registerProvider(this);\n\n  // listen to dblclick on non-root elements\n  eventBus.on('element.dblclick', function(event) {\n    activateDirectEdit(event.element, true);\n  });\n\n  // complete on followup canvas operation\n  eventBus.on([\n    'autoPlace.start',\n    'canvas.viewbox.changing',\n    'drag.init',\n    'element.mousedown',\n    'popupMenu.open'\n  ], function(event) {\n\n    if (directEditing.isActive()) {\n      directEditing.complete();\n    }\n  });\n\n  // cancel on command stack changes\n  eventBus.on([ 'commandStack.changed' ], function(e) {\n    if (directEditing.isActive()) {\n      directEditing.cancel();\n    }\n  });\n\n\n  eventBus.on('directEditing.activate', function(event) {\n    resizeHandles.removeResizers();\n  });\n\n  eventBus.on('create.end', 500, function(event) {\n\n    var context = event.context,\n        element = context.shape,\n        canExecute = event.context.canExecute,\n        isTouch = event.isTouch;\n\n    // TODO(nikku): we need to find a way to support the\n    // direct editing on mobile devices; right now this will\n    // break for desworkflowediting on mobile devices\n    // as it breaks the user interaction workflow\n\n    // TODO(nre): we should temporarily focus the edited element\n    // here and release the focused viewport after the direct edit\n    // operation is finished\n    if (isTouch) {\n      return;\n    }\n\n    if (!canExecute) {\n      return;\n    }\n\n    if (context.hints && context.hints.createElementsBehavior === false) {\n      return;\n    }\n\n    activateDirectEdit(element);\n  });\n\n  eventBus.on('autoPlace.end', 500, function(event) {\n    activateDirectEdit(event.shape);\n  });\n\n\n  function activateDirectEdit(element, force) {\n    if (force ||\n        (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:Task', 'bpmn:TextAnnotation', 'bpmn:Group' ]) ||\n        isCollapsedSubProcess(element)) {\n\n      directEditing.activate(element);\n    }\n  }\n\n}\n\nLabelEditingProvider.$inject = [\n  'eventBus',\n  'bpmnFactory',\n  'canvas',\n  'directEditing',\n  'modeling',\n  'resizeHandles',\n  'textRenderer'\n];\n\n\n/**\n * Activate direct editing for activities and text annotations.\n *\n * @param  {djs.model.Base} element\n *\n * @return {Object} an object with properties bounds (position and size), text and options\n */\nLabelEditingProvider.prototype.activate = function(element) {\n\n  // text\n  var text = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element);\n\n  if (text === undefined) {\n    return;\n  }\n\n  var context = {\n    text: text\n  };\n\n  // bounds\n  var bounds = this.getEditingBBox(element);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(context, bounds);\n\n  var options = {};\n\n  // tasks\n  if (\n    (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [\n      'bpmn:Task',\n      'bpmn:Participant',\n      'bpmn:Lane',\n      'bpmn:CallActivity'\n    ]) ||\n    isCollapsedSubProcess(element)\n  ) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n      centerVertically: true\n    });\n  }\n\n  // external labels\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(element)) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n      autoResize: true\n    });\n  }\n\n  // text annotations\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(options, {\n      resizable: true,\n      autoResize: true\n    });\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(context, {\n    options: options\n  });\n\n  return context;\n};\n\n\n/**\n * Get the editing bounding box based on the element's size and position\n *\n * @param  {djs.model.Base} element\n *\n * @return {Object} an object containing information about position\n *                  and size (fixed or minimum and/or maximum)\n */\nLabelEditingProvider.prototype.getEditingBBox = function(element) {\n  var canvas = this._canvas;\n\n  var target = element.label || element;\n\n  var bbox = canvas.getAbsoluteBBox(target);\n\n  var mid = {\n    x: bbox.x + bbox.width / 2,\n    y: bbox.y + bbox.height / 2\n  };\n\n  // default position\n  var bounds = { x: bbox.x, y: bbox.y };\n\n  var zoom = canvas.zoom();\n\n  var defaultStyle = this._textRenderer.getDefaultStyle(),\n      externalStyle = this._textRenderer.getExternalStyle();\n\n  // take zoom into account\n  var externalFontSize = externalStyle.fontSize * zoom,\n      externalLineHeight = externalStyle.lineHeight,\n      defaultFontSize = defaultStyle.fontSize * zoom,\n      defaultLineHeight = defaultStyle.lineHeight;\n\n  var style = {\n    fontFamily: this._textRenderer.getDefaultStyle().fontFamily,\n    fontWeight: this._textRenderer.getDefaultStyle().fontWeight\n  };\n\n  // adjust for expanded pools AND lanes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Lane') || isExpandedPool(element)) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: bbox.height,\n      height: 30 * zoom,\n      x: bbox.x - bbox.height / 2 + (15 * zoom),\n      y: mid.y - (30 * zoom) / 2\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      fontSize: defaultFontSize + 'px',\n      lineHeight: defaultLineHeight,\n      paddingTop: (7 * zoom) + 'px',\n      paddingBottom: (7 * zoom) + 'px',\n      paddingLeft: (5 * zoom) + 'px',\n      paddingRight: (5 * zoom) + 'px',\n      transform: 'rotate(-90deg)'\n    });\n  }\n\n\n  // internal labels for tasks and collapsed call activities,\n  // sub processes and participants\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:Task', 'bpmn:CallActivity']) ||\n      isCollapsedPool(element) ||\n      isCollapsedSubProcess(element)) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: bbox.width,\n      height: bbox.height\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      fontSize: defaultFontSize + 'px',\n      lineHeight: defaultLineHeight,\n      paddingTop: (7 * zoom) + 'px',\n      paddingBottom: (7 * zoom) + 'px',\n      paddingLeft: (5 * zoom) + 'px',\n      paddingRight: (5 * zoom) + 'px'\n    });\n  }\n\n\n  // internal labels for expanded sub processes\n  if (isExpandedSubProcess(element)) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: bbox.width,\n      x: bbox.x\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      fontSize: defaultFontSize + 'px',\n      lineHeight: defaultLineHeight,\n      paddingTop: (7 * zoom) + 'px',\n      paddingBottom: (7 * zoom) + 'px',\n      paddingLeft: (5 * zoom) + 'px',\n      paddingRight: (5 * zoom) + 'px'\n    });\n  }\n\n  var width = 90 * zoom,\n      paddingTop = 7 * zoom,\n      paddingBottom = 4 * zoom;\n\n  // external labels for events, data elements, gateways, groups and connections\n  if (target.labelTarget) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: width,\n      height: bbox.height + paddingTop + paddingBottom,\n      x: mid.x - width / 2,\n      y: bbox.y - paddingTop\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      fontSize: externalFontSize + 'px',\n      lineHeight: externalLineHeight,\n      paddingTop: paddingTop + 'px',\n      paddingBottom: paddingBottom + 'px'\n    });\n  }\n\n  // external label not yet created\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(target)\n      && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.hasExternalLabel)(target)\n      && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(target)) {\n\n    var externalLabelMid = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.getExternalLabelMid)(element);\n\n    var absoluteBBox = canvas.getAbsoluteBBox({\n      x: externalLabelMid.x,\n      y: externalLabelMid.y,\n      width: 0,\n      height: 0\n    });\n\n    var height = externalFontSize + paddingTop + paddingBottom;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: width,\n      height: height,\n      x: absoluteBBox.x - width / 2,\n      y: absoluteBBox.y - height / 2\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      fontSize: externalFontSize + 'px',\n      lineHeight: externalLineHeight,\n      paddingTop: paddingTop + 'px',\n      paddingBottom: paddingBottom + 'px'\n    });\n  }\n\n  // text annotations\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n      width: bbox.width,\n      height: bbox.height,\n      minWidth: 30 * zoom,\n      minHeight: 10 * zoom\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(style, {\n      textAlign: 'left',\n      paddingTop: (5 * zoom) + 'px',\n      paddingBottom: (7 * zoom) + 'px',\n      paddingLeft: (7 * zoom) + 'px',\n      paddingRight: (5 * zoom) + 'px',\n      fontSize: defaultFontSize + 'px',\n      lineHeight: defaultLineHeight\n    });\n  }\n\n  return { bounds: bounds, style: style };\n};\n\n\nLabelEditingProvider.prototype.update = function(\n    element, newLabel,\n    activeContextText, bounds) {\n\n  var newBounds,\n      bbox;\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:TextAnnotation')) {\n\n    bbox = this._canvas.getAbsoluteBBox(element);\n\n    newBounds = {\n      x: element.x,\n      y: element.y,\n      width: element.width / bbox.width * bounds.width,\n      height: element.height / bbox.height * bounds.height\n    };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Group')) {\n\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element);\n\n    // initialize categoryValue if not existing\n    if (!businessObject.categoryValueRef) {\n\n      var rootElement = this._canvas.getRootElement(),\n          definitions = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(rootElement).$parent;\n\n      var categoryValue = (0,_modeling_behavior_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_5__.createCategoryValue)(definitions, this._bpmnFactory);\n\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element).categoryValueRef = categoryValue;\n    }\n\n  }\n\n  if (isEmptyText(newLabel)) {\n    newLabel = null;\n  }\n\n  this._modeling.updateLabel(element, newLabel, newBounds);\n};\n\n\n\n// helpers //////////////////////\n\nfunction isCollapsedSubProcess(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isExpandedSubProcess(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isCollapsedPool(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isExpandedPool(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isEmptyText(label) {\n  return !label || !label.trim();\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getLabel\": () => (/* binding */ getLabel),\n/* harmony export */   \"setLabel\": () => (/* binding */ setLabel)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\nfunction getLabelAttr(semantic) {\n  if (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:FlowElement') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Participant') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Lane') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:SequenceFlow') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:MessageFlow') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataInput') ||\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataOutput')\n  ) {\n    return 'name';\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:TextAnnotation')) {\n    return 'text';\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Group')) {\n    return 'categoryValueRef';\n  }\n}\n\nfunction getCategoryValue(semantic) {\n  var categoryValueRef = semantic['categoryValueRef'];\n\n  if (!categoryValueRef) {\n    return '';\n  }\n\n\n  return categoryValueRef.value || '';\n}\n\nfunction getLabel(element) {\n  var semantic = element.businessObject,\n      attr = getLabelAttr(semantic);\n\n  if (attr) {\n\n    if (attr === 'categoryValueRef') {\n\n      return getCategoryValue(semantic);\n    }\n\n    return semantic[attr] || '';\n  }\n}\n\n\nfunction setLabel(element, text, isExternal) {\n  var semantic = element.businessObject,\n      attr = getLabelAttr(semantic);\n\n  if (attr) {\n\n    if (attr === 'categoryValueRef') {\n      semantic['categoryValueRef'].value = text;\n    } else {\n      semantic[attr] = text;\n    }\n\n  }\n\n  return element;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateLabelHandler)\n/* harmony export */ });\n/* harmony import */ var _LabelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nvar NULL_DIMENSIONS = {\n  width: 0,\n  height: 0\n};\n\n\n/**\n * A handler that updates the text of a BPMN element.\n */\nfunction UpdateLabelHandler(modeling, textRenderer) {\n\n  /**\n   * Set the label and return the changed elements.\n   *\n   * Element parameter can be label itself or connection (i.e. sequence flow).\n   *\n   * @param {djs.model.Base} element\n   * @param {string} text\n   */\n  function setText(element, text) {\n\n    // external label if present\n    var label = element.label || element;\n\n    var labelTarget = element.labelTarget || element;\n\n    (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.setLabel)(label, text, labelTarget !== label);\n\n    return [ label, labelTarget ];\n  }\n\n  function preExecute(ctx) {\n    var element = ctx.element,\n        businessObject = element.businessObject,\n        newLabel = ctx.newLabel;\n\n    if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(element)\n        && (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabelExternal)(element)\n        && !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.hasExternalLabel)(element)\n        && !isEmptyText(newLabel)) {\n\n      // create label\n      var paddingTop = 7;\n\n      var labelCenter = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getExternalLabelMid)(element);\n\n      labelCenter = {\n        x: labelCenter.x,\n        y: labelCenter.y + paddingTop\n      };\n\n      modeling.createLabel(element, labelCenter, {\n        id: businessObject.id + '_label',\n        businessObject: businessObject\n      });\n    }\n  }\n\n  function execute(ctx) {\n    ctx.oldLabel = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.getLabel)(ctx.element);\n    return setText(ctx.element, ctx.newLabel);\n  }\n\n  function revert(ctx) {\n    return setText(ctx.element, ctx.oldLabel);\n  }\n\n  function postExecute(ctx) {\n    var element = ctx.element,\n        label = element.label || element,\n        newLabel = ctx.newLabel,\n        newBounds = ctx.newBounds,\n        hints = ctx.hints || {};\n\n    // ignore internal labels for elements except text annotations\n    if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(label) && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(label, 'bpmn:TextAnnotation')) {\n      return;\n    }\n\n    if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.isLabel)(label) && isEmptyText(newLabel)) {\n\n      if (hints.removeShape !== false) {\n        modeling.removeShape(label, { unsetLabel: false });\n      }\n\n      return;\n    }\n\n    var text = (0,_LabelUtil__WEBPACK_IMPORTED_MODULE_0__.getLabel)(label);\n\n    // resize element based on label _or_ pre-defined bounds\n    if (typeof newBounds === 'undefined') {\n      newBounds = textRenderer.getExternalLabelBounds(label, text);\n    }\n\n    // setting newBounds to false or _null_ will\n    // disable the postExecute resize operation\n    if (newBounds) {\n      modeling.resizeShape(label, newBounds, NULL_DIMENSIONS);\n    }\n  }\n\n  // API\n\n  this.preExecute = preExecute;\n  this.execute = execute;\n  this.revert = revert;\n  this.postExecute = postExecute;\n}\n\nUpdateLabelHandler.$inject = [\n  'modeling',\n  'textRenderer'\n];\n\n\n// helpers ///////////////////////\n\nfunction isEmptyText(label) {\n  return !label || !label.trim();\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/label-editing/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/label-editing/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/change-support */ \"./node_modules/diagram-js/lib/features/change-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize */ \"./node_modules/diagram-js/lib/features/resize/index.js\");\n/* harmony import */ var diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js-direct-editing */ \"./node_modules/diagram-js-direct-editing/index.js\");\n/* harmony import */ var _LabelEditingProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LabelEditingProvider */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js\");\n/* harmony import */ var _LabelEditingPreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LabelEditingPreview */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_1__.default,\n    diagram_js_lib_features_resize__WEBPACK_IMPORTED_MODULE_2__.default,\n    diagram_js_direct_editing__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [\n    'labelEditingProvider',\n    'labelEditingPreview'\n  ],\n  labelEditingProvider: [ 'type', _LabelEditingProvider__WEBPACK_IMPORTED_MODULE_3__.default ],\n  labelEditingPreview: [ 'type', _LabelEditingPreview__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/label-editing/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\nfunction BpmnFactory(moddle) {\n  this._model = moddle;\n}\n\nBpmnFactory.$inject = [ 'moddle' ];\n\n\nBpmnFactory.prototype._needsId = function(element) {\n  return (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [\n    'bpmn:RootElement',\n    'bpmn:FlowElement',\n    'bpmn:MessageFlow',\n    'bpmn:DataAssociation',\n    'bpmn:Artifact',\n    'bpmn:Participant',\n    'bpmn:Lane',\n    'bpmn:LaneSet',\n    'bpmn:Process',\n    'bpmn:Collaboration',\n    'bpmndi:BPMNShape',\n    'bpmndi:BPMNEdge',\n    'bpmndi:BPMNDiagram',\n    'bpmndi:BPMNPlane',\n    'bpmn:Property',\n    'bpmn:CategoryValue'\n  ]);\n};\n\nBpmnFactory.prototype._ensureId = function(element) {\n\n  // generate semantic ids for elements\n  // bpmn:SequenceFlow -> SequenceFlow_ID\n  var prefix;\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Activity')) {\n    prefix = 'Activity';\n  } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Event')) {\n    prefix = 'Event';\n  } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Gateway')) {\n    prefix = 'Gateway';\n  } else if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_0__.isAny)(element, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ])) {\n    prefix = 'Flow';\n  } else {\n    prefix = (element.$type || '').replace(/^[^:]*:/g, '');\n  }\n\n  prefix += '_';\n\n  if (!element.id && this._needsId(element)) {\n    element.id = this._model.ids.nextPrefixed(prefix, element);\n  }\n};\n\n\nBpmnFactory.prototype.create = function(type, attrs) {\n  var element = this._model.create(type, attrs || {});\n\n  this._ensureId(element);\n\n  return element;\n};\n\n\nBpmnFactory.prototype.createDiLabel = function() {\n  return this.create('bpmndi:BPMNLabel', {\n    bounds: this.createDiBounds()\n  });\n};\n\n\nBpmnFactory.prototype.createDiShape = function(semantic, bounds, attrs) {\n\n  return this.create('bpmndi:BPMNShape', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n    bpmnElement: semantic,\n    bounds: this.createDiBounds(bounds)\n  }, attrs));\n};\n\n\nBpmnFactory.prototype.createDiBounds = function(bounds) {\n  return this.create('dc:Bounds', bounds);\n};\n\n\nBpmnFactory.prototype.createDiWaypoints = function(waypoints) {\n  var self = this;\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(waypoints, function(pos) {\n    return self.createDiWaypoint(pos);\n  });\n};\n\nBpmnFactory.prototype.createDiWaypoint = function(point) {\n  return this.create('dc:Point', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(point, [ 'x', 'y' ]));\n};\n\n\nBpmnFactory.prototype.createDiEdge = function(semantic, waypoints, attrs) {\n  return this.create('bpmndi:BPMNEdge', (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n    bpmnElement: semantic\n  }, attrs));\n};\n\nBpmnFactory.prototype.createDiPlane = function(semantic) {\n  return this.create('bpmndi:BPMNPlane', {\n    bpmnElement: semantic\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js":
  /*!********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnLayouter)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_BaseLayouter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/BaseLayouter */ \"./node_modules/diagram-js/lib/layout/BaseLayouter.js\");\n/* harmony import */ var diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/layout/ManhattanLayout */ \"./node_modules/diagram-js/lib/layout/ManhattanLayout.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ATTACH_ORIENTATION_PADDING = -10,\n    BOUNDARY_TO_HOST_THRESHOLD = 40;\n\nvar oppositeOrientationMapping = {\n  'top': 'bottom',\n  'top-right': 'bottom-left',\n  'top-left': 'bottom-right',\n  'right': 'left',\n  'bottom': 'top',\n  'bottom-right': 'top-left',\n  'bottom-left': 'top-right',\n  'left': 'right'\n};\n\nvar orientationDirectionMapping = {\n  top: 't',\n  right: 'r',\n  bottom: 'b',\n  left: 'l'\n};\n\n\nfunction BpmnLayouter() {}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnLayouter, diagram_js_lib_layout_BaseLayouter__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nBpmnLayouter.prototype.layoutConnection = function(connection, hints) {\n  if (!hints) {\n    hints = {};\n  }\n\n  var source = hints.source || connection.source,\n      target = hints.target || connection.target,\n      waypoints = hints.waypoints || connection.waypoints,\n      connectionStart = hints.connectionStart,\n      connectionEnd = hints.connectionEnd;\n\n  var manhattanOptions,\n      updatedWaypoints;\n\n  if (!connectionStart) {\n    connectionStart = getConnectionDocking(waypoints && waypoints[ 0 ], source);\n  }\n\n  if (!connectionEnd) {\n    connectionEnd = getConnectionDocking(waypoints && waypoints[ waypoints.length - 1 ], target);\n  }\n\n  // TODO(nikku): support vertical modeling\n  // and invert preferredLayouts accordingly\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:Association') ||\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:DataAssociation')) {\n\n    if (waypoints && !isCompensationAssociation(source, target)) {\n      return [].concat([ connectionStart ], waypoints.slice(1, -1), [ connectionEnd ]);\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:MessageFlow')) {\n    manhattanOptions = getMessageFlowManhattanOptions(source, target);\n  } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow') || isCompensationAssociation(source, target)) {\n\n    // layout all connection between flow elements h:h, except for\n    // (1) outgoing of boundary events -> layout based on attach orientation and target orientation\n    // (2) incoming/outgoing of gateways -> v:h for outgoing, h:v for incoming\n    // (3) loops\n    if (source === target) {\n      manhattanOptions = {\n        preferredLayouts: getLoopPreferredLayout(source, connection)\n      };\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:BoundaryEvent')) {\n      manhattanOptions = {\n        preferredLayouts: getBoundaryEventPreferredLayouts(source, target, connectionEnd)\n      };\n    } else if (isExpandedSubProcess(source) || isExpandedSubProcess(target)) {\n      manhattanOptions = getSubProcessManhattanOptions(source);\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Gateway')) {\n      manhattanOptions = {\n        preferredLayouts: [ 'v:h' ]\n      };\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Gateway')) {\n      manhattanOptions = {\n        preferredLayouts: [ 'h:v' ]\n      };\n    } else {\n      manhattanOptions = {\n        preferredLayouts: [ 'h:h' ]\n      };\n    }\n  }\n\n  if (manhattanOptions) {\n    manhattanOptions = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(manhattanOptions, hints);\n\n    updatedWaypoints = (0,diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__.withoutRedundantPoints)((0,diagram_js_lib_layout_ManhattanLayout__WEBPACK_IMPORTED_MODULE_4__.repairConnection)(\n      source,\n      target,\n      connectionStart,\n      connectionEnd,\n      waypoints,\n      manhattanOptions\n    ));\n  }\n\n  return updatedWaypoints || [ connectionStart, connectionEnd ];\n};\n\n\n// helpers //////////\n\nfunction getAttachOrientation(attachedElement) {\n  var hostElement = attachedElement.host;\n\n  return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)((0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(attachedElement), hostElement, ATTACH_ORIENTATION_PADDING);\n}\n\nfunction getMessageFlowManhattanOptions(source, target) {\n  return {\n    preferredLayouts: [ 'straight', 'v:v' ],\n    preserveDocking: getMessageFlowPreserveDocking(source, target)\n  };\n}\n\nfunction getMessageFlowPreserveDocking(source, target) {\n\n  // (1) docking element connected to participant has precedence\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Participant')) {\n    return 'source';\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Participant')) {\n    return 'target';\n  }\n\n  // (2) docking element connected to expanded sub-process has precedence\n  if (isExpandedSubProcess(target)) {\n    return 'source';\n  }\n\n  if (isExpandedSubProcess(source)) {\n    return 'target';\n  }\n\n  // (3) docking event has precedence\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Event')) {\n    return 'target';\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:Event')) {\n    return 'source';\n  }\n\n  return null;\n}\n\nfunction getSubProcessManhattanOptions(source) {\n  return {\n    preferredLayouts: [ 'straight', 'h:h' ],\n    preserveDocking: getSubProcessPreserveDocking(source)\n  };\n}\n\nfunction getSubProcessPreserveDocking(source) {\n  return isExpandedSubProcess(source) ? 'target' : 'source';\n}\n\nfunction getConnectionDocking(point, shape) {\n  return point ? (point.original || point) : (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(shape);\n}\n\nfunction isCompensationAssociation(source, target) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(target, 'bpmn:Activity') &&\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:BoundaryEvent') &&\n    target.businessObject.isForCompensation;\n}\n\nfunction isExpandedSubProcess(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(element);\n}\n\nfunction isSame(a, b) {\n  return a === b;\n}\n\nfunction isAnyOrientation(orientation, orientations) {\n  return orientations.indexOf(orientation) !== -1;\n}\n\nfunction getHorizontalOrientation(orientation) {\n  var matches = /right|left/.exec(orientation);\n\n  return matches && matches[0];\n}\n\nfunction getVerticalOrientation(orientation) {\n  var matches = /top|bottom/.exec(orientation);\n\n  return matches && matches[0];\n}\n\nfunction isOppositeOrientation(a, b) {\n  return oppositeOrientationMapping[a] === b;\n}\n\nfunction isOppositeHorizontalOrientation(a, b) {\n  var horizontalOrientation = getHorizontalOrientation(a);\n\n  var oppositeHorizontalOrientation = oppositeOrientationMapping[horizontalOrientation];\n\n  return b.indexOf(oppositeHorizontalOrientation) !== -1;\n}\n\nfunction isOppositeVerticalOrientation(a, b) {\n  var verticalOrientation = getVerticalOrientation(a);\n\n  var oppositeVerticalOrientation = oppositeOrientationMapping[verticalOrientation];\n\n  return b.indexOf(oppositeVerticalOrientation) !== -1;\n}\n\nfunction isHorizontalOrientation(orientation) {\n  return orientation === 'right' || orientation === 'left';\n}\n\nfunction getLoopPreferredLayout(source, connection) {\n  var waypoints = connection.waypoints;\n\n  var orientation = waypoints && waypoints.length && (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)(waypoints[0], source);\n\n  if (orientation === 'top') {\n    return [ 't:r' ];\n  } else if (orientation === 'right') {\n    return [ 'r:b' ];\n  } else if (orientation === 'left') {\n    return [ 'l:t' ];\n  }\n\n  return [ 'b:l' ];\n}\n\nfunction getBoundaryEventPreferredLayouts(source, target, end) {\n  var sourceMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(source),\n      targetMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(target),\n      attachOrientation = getAttachOrientation(source),\n      sourceLayout,\n      targetLayout;\n\n  var isLoop = isSame(source.host, target);\n\n  var attachedToSide = isAnyOrientation(attachOrientation, [ 'top', 'right', 'bottom', 'left' ]);\n\n  var targetOrientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getOrientation)(targetMid, sourceMid, {\n    x: source.width / 2 + target.width / 2,\n    y: source.height / 2 + target.height / 2\n  });\n\n  if (isLoop) {\n    return getBoundaryEventLoopLayout(attachOrientation, attachedToSide, source, target, end);\n  }\n\n  // source layout\n  sourceLayout = getBoundaryEventSourceLayout(attachOrientation, targetOrientation, attachedToSide);\n\n  // target layout\n  targetLayout = getBoundaryEventTargetLayout(attachOrientation, targetOrientation, attachedToSide);\n\n  return [ sourceLayout + ':' + targetLayout ];\n}\n\nfunction getBoundaryEventLoopLayout(attachOrientation, attachedToSide, source, target, end) {\n  var orientation = attachedToSide ? attachOrientation : getVerticalOrientation(attachOrientation),\n      sourceLayout = orientationDirectionMapping[ orientation ],\n      targetLayout;\n\n  if (attachedToSide) {\n    if (isHorizontalOrientation(attachOrientation)) {\n      targetLayout = shouldConnectToSameSide('y', source, target, end) ? 'h' : 'b';\n    } else {\n      targetLayout = shouldConnectToSameSide('x', source, target, end) ? 'v' : 'l';\n    }\n  } else {\n    targetLayout = 'v';\n  }\n\n  return [ sourceLayout + ':' + targetLayout ];\n}\n\nfunction shouldConnectToSameSide(axis, source, target, end) {\n  var threshold = BOUNDARY_TO_HOST_THRESHOLD;\n\n  return !(\n    areCloseOnAxis(axis, end, target, threshold) ||\n    areCloseOnAxis(axis, end, {\n      x: target.x + target.width,\n      y: target.y + target.height\n    }, threshold) ||\n    areCloseOnAxis(axis, end, (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(source), threshold)\n  );\n}\n\nfunction areCloseOnAxis(axis, a, b, threshold) {\n  return Math.abs(a[ axis ] - b[ axis ]) < threshold;\n}\n\nfunction getBoundaryEventSourceLayout(attachOrientation, targetOrientation, attachedToSide) {\n\n  // attached to either top, right, bottom or left side\n  if (attachedToSide) {\n    return orientationDirectionMapping[ attachOrientation ];\n  }\n\n  // attached to either top-right, top-left, bottom-right or bottom-left corner\n\n  // same vertical or opposite horizontal orientation\n  if (isSame(\n    getVerticalOrientation(attachOrientation), getVerticalOrientation(targetOrientation)\n  ) || isOppositeOrientation(\n    getHorizontalOrientation(attachOrientation), getHorizontalOrientation(targetOrientation)\n  )) {\n    return orientationDirectionMapping[ getVerticalOrientation(attachOrientation) ];\n  }\n\n  // fallback\n  return orientationDirectionMapping[ getHorizontalOrientation(attachOrientation) ];\n}\n\nfunction getBoundaryEventTargetLayout(attachOrientation, targetOrientation, attachedToSide) {\n\n  // attached to either top, right, bottom or left side\n  if (attachedToSide) {\n    if (isHorizontalOrientation(attachOrientation)) {\n\n      // orientation is right or left\n\n      // opposite horizontal orientation or same orientation\n      if (\n        isOppositeHorizontalOrientation(attachOrientation, targetOrientation) ||\n        isSame(attachOrientation, targetOrientation)\n      ) {\n        return 'h';\n      }\n\n      // fallback\n      return 'v';\n    } else {\n\n      // orientation is top or bottom\n\n      // opposite vertical orientation or same orientation\n      if (\n        isOppositeVerticalOrientation(attachOrientation, targetOrientation) ||\n        isSame(attachOrientation, targetOrientation)\n      ) {\n        return 'v';\n      }\n\n      // fallback\n      return 'h';\n    }\n  }\n\n  // attached to either top-right, top-left, bottom-right or bottom-left corner\n\n  // orientation is right, left\n  // or same vertical orientation but also right or left\n  if (isHorizontalOrientation(targetOrientation) ||\n    (isSame(getVerticalOrientation(attachOrientation), getVerticalOrientation(targetOrientation)) &&\n      getHorizontalOrientation(targetOrientation))) {\n    return 'h';\n  } else {\n    return 'v';\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnUpdater)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A handler responsible for updating the underlying BPMN 2.0 XML + DI\n * once changes on the diagram happen\n */\nfunction BpmnUpdater(\n    eventBus, bpmnFactory, connectionDocking,\n    translate) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this._bpmnFactory = bpmnFactory;\n  this._translate = translate;\n\n  var self = this;\n\n\n\n  // connection cropping //////////////////////\n\n  // crop connection ends during create/update\n  function cropConnection(e) {\n    var context = e.context,\n        hints = context.hints || {},\n        connection;\n\n    if (!context.cropped && hints.createElementsBehavior !== false) {\n      connection = context.connection;\n      connection.waypoints = connectionDocking.getCroppedWaypoints(connection);\n      context.cropped = true;\n    }\n  }\n\n  this.executed([\n    'connection.layout',\n    'connection.create'\n  ], cropConnection);\n\n  this.reverted([ 'connection.layout' ], function(e) {\n    delete e.context.cropped;\n  });\n\n\n\n  // BPMN + DI update //////////////////////\n\n\n  // update parent\n  function updateParent(e) {\n    var context = e.context;\n\n    self.updateParent(context.shape || context.connection, context.oldParent);\n  }\n\n  function reverseUpdateParent(e) {\n    var context = e.context;\n\n    var element = context.shape || context.connection,\n\n        // oldParent is the (old) new parent, because we are undoing\n        oldParent = context.parent || context.newParent;\n\n    self.updateParent(element, oldParent);\n  }\n\n  this.executed([\n    'shape.move',\n    'shape.create',\n    'shape.delete',\n    'connection.create',\n    'connection.move',\n    'connection.delete'\n  ], ifBpmn(updateParent));\n\n  this.reverted([\n    'shape.move',\n    'shape.create',\n    'shape.delete',\n    'connection.create',\n    'connection.move',\n    'connection.delete'\n  ], ifBpmn(reverseUpdateParent));\n\n  /*\n   * ## Updating Parent\n   *\n   * When morphing a Process into a Collaboration or vice-versa,\n   * make sure that both the *semantic* and *di* parent of each element\n   * is updated.\n   *\n   */\n  function updateRoot(event) {\n    var context = event.context,\n        oldRoot = context.oldRoot,\n        children = oldRoot.children;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(children, function(child) {\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(child, 'bpmn:BaseElement')) {\n        self.updateParent(child);\n      }\n    });\n  }\n\n  this.executed([ 'canvas.updateRoot' ], updateRoot);\n  this.reverted([ 'canvas.updateRoot' ], updateRoot);\n\n\n  // update bounds\n  function updateBounds(e) {\n    var shape = e.context.shape;\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:BaseElement')) {\n      return;\n    }\n\n    self.updateBounds(shape);\n  }\n\n  this.executed([ 'shape.move', 'shape.create', 'shape.resize' ], ifBpmn(function(event) {\n\n    // exclude labels because they're handled separately during shape.changed\n    if (event.context.shape.type === 'label') {\n      return;\n    }\n\n    updateBounds(event);\n  }));\n\n  this.reverted([ 'shape.move', 'shape.create', 'shape.resize' ], ifBpmn(function(event) {\n\n    // exclude labels because they're handled separately during shape.changed\n    if (event.context.shape.type === 'label') {\n      return;\n    }\n\n    updateBounds(event);\n  }));\n\n  // Handle labels separately. This is necessary, because the label bounds have to be updated\n  // every time its shape changes, not only on move, create and resize.\n  eventBus.on('shape.changed', function(event) {\n    if (event.element.type === 'label') {\n      updateBounds({ context: { shape: event.element } });\n    }\n  });\n\n  // attach / detach connection\n  function updateConnection(e) {\n    self.updateConnection(e.context);\n  }\n\n  this.executed([\n    'connection.create',\n    'connection.move',\n    'connection.delete',\n    'connection.reconnect'\n  ], ifBpmn(updateConnection));\n\n  this.reverted([\n    'connection.create',\n    'connection.move',\n    'connection.delete',\n    'connection.reconnect'\n  ], ifBpmn(updateConnection));\n\n\n  // update waypoints\n  function updateConnectionWaypoints(e) {\n    self.updateConnectionWaypoints(e.context.connection);\n  }\n\n  this.executed([\n    'connection.layout',\n    'connection.move',\n    'connection.updateWaypoints',\n  ], ifBpmn(updateConnectionWaypoints));\n\n  this.reverted([\n    'connection.layout',\n    'connection.move',\n    'connection.updateWaypoints',\n  ], ifBpmn(updateConnectionWaypoints));\n\n  // update conditional/default flows\n  this.executed('connection.reconnect', ifBpmn(function(event) {\n    var context = event.context,\n        connection = context.connection,\n        oldSource = context.oldSource,\n        newSource = context.newSource,\n        connectionBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n        oldSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(oldSource),\n        newSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(newSource);\n\n    // remove condition from connection on reconnect to new source\n    // if new source can NOT have condional sequence flow\n    if (connectionBo.conditionExpression && !(0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(newSourceBo, [\n      'bpmn:Activity',\n      'bpmn:ExclusiveGateway',\n      'bpmn:InclusiveGateway'\n    ])) {\n      context.oldConditionExpression = connectionBo.conditionExpression;\n\n      delete connectionBo.conditionExpression;\n    }\n\n    // remove default from old source flow on reconnect to new source\n    // if source changed\n    if (oldSource !== newSource && oldSourceBo.default === connectionBo) {\n      context.oldDefault = oldSourceBo.default;\n\n      delete oldSourceBo.default;\n    }\n  }));\n\n  this.reverted('connection.reconnect', ifBpmn(function(event) {\n    var context = event.context,\n        connection = context.connection,\n        oldSource = context.oldSource,\n        newSource = context.newSource,\n        connectionBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n        oldSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(oldSource),\n        newSourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(newSource);\n\n    // add condition to connection on revert reconnect to new source\n    if (context.oldConditionExpression) {\n      connectionBo.conditionExpression = context.oldConditionExpression;\n    }\n\n    // add default to old source on revert reconnect to new source\n    if (context.oldDefault) {\n      oldSourceBo.default = context.oldDefault;\n\n      delete newSourceBo.default;\n    }\n  }));\n\n  // update attachments\n  function updateAttachment(e) {\n    self.updateAttachment(e.context);\n  }\n\n  this.executed([ 'element.updateAttachment' ], ifBpmn(updateAttachment));\n  this.reverted([ 'element.updateAttachment' ], ifBpmn(updateAttachment));\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnUpdater, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnUpdater.$inject = [\n  'eventBus',\n  'bpmnFactory',\n  'connectionDocking',\n  'translate'\n];\n\n\n// implementation //////////////////////\n\nBpmnUpdater.prototype.updateAttachment = function(context) {\n\n  var shape = context.shape,\n      businessObject = shape.businessObject,\n      host = shape.host;\n\n  businessObject.attachedToRef = host && host.businessObject;\n};\n\nBpmnUpdater.prototype.updateParent = function(element, oldParent) {\n\n  // do not update BPMN 2.0 label parent\n  if (element instanceof diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__.Label) {\n    return;\n  }\n\n  // data stores in collaborations are handled separately by DataStoreBehavior\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataStoreReference') &&\n      element.parent &&\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, 'bpmn:Collaboration')) {\n    return;\n  }\n\n  var parentShape = element.parent;\n\n  var businessObject = element.businessObject,\n      parentBusinessObject = parentShape && parentShape.businessObject,\n      parentDi = parentBusinessObject && parentBusinessObject.di;\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:FlowNode')) {\n    this.updateFlowNodeRefs(businessObject, parentBusinessObject, oldParent && oldParent.businessObject);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataOutputAssociation')) {\n    if (element.source) {\n      parentBusinessObject = element.source.businessObject;\n    } else {\n      parentBusinessObject = null;\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataInputAssociation')) {\n    if (element.target) {\n      parentBusinessObject = element.target.businessObject;\n    } else {\n      parentBusinessObject = null;\n    }\n  }\n\n  this.updateSemanticParent(businessObject, parentBusinessObject);\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:DataObjectReference') && businessObject.dataObjectRef) {\n    this.updateSemanticParent(businessObject.dataObjectRef, parentBusinessObject);\n  }\n\n  this.updateDiParent(businessObject.di, parentDi);\n};\n\n\nBpmnUpdater.prototype.updateBounds = function(shape) {\n\n  var di = shape.businessObject.di;\n\n  var target = (shape instanceof diagram_js_lib_model__WEBPACK_IMPORTED_MODULE_5__.Label) ? this._getLabel(di) : di;\n\n  var bounds = target.bounds;\n\n  if (!bounds) {\n    bounds = this._bpmnFactory.createDiBounds();\n    target.set('bounds', bounds);\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(bounds, {\n    x: shape.x,\n    y: shape.y,\n    width: shape.width,\n    height: shape.height\n  });\n};\n\nBpmnUpdater.prototype.updateFlowNodeRefs = function(businessObject, newContainment, oldContainment) {\n\n  if (oldContainment === newContainment) {\n    return;\n  }\n\n  var oldRefs, newRefs;\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is) (oldContainment, 'bpmn:Lane')) {\n    oldRefs = oldContainment.get('flowNodeRef');\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(oldRefs, businessObject);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newContainment, 'bpmn:Lane')) {\n    newRefs = newContainment.get('flowNodeRef');\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.add)(newRefs, businessObject);\n  }\n};\n\n\n// update existing sourceElement and targetElement di information\nBpmnUpdater.prototype.updateDiConnection = function(di, newSource, newTarget) {\n\n  if (di.sourceElement && di.sourceElement.bpmnElement !== newSource) {\n    di.sourceElement = newSource && newSource.di;\n  }\n\n  if (di.targetElement && di.targetElement.bpmnElement !== newTarget) {\n    di.targetElement = newTarget && newTarget.di;\n  }\n\n};\n\n\nBpmnUpdater.prototype.updateDiParent = function(di, parentDi) {\n\n  if (parentDi && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parentDi, 'bpmndi:BPMNPlane')) {\n    parentDi = parentDi.$parent;\n  }\n\n  if (di.$parent === parentDi) {\n    return;\n  }\n\n  var planeElements = (parentDi || di.$parent).get('planeElement');\n\n  if (parentDi) {\n    planeElements.push(di);\n    di.$parent = parentDi;\n  } else {\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(planeElements, di);\n    di.$parent = null;\n  }\n};\n\nfunction getDefinitions(element) {\n  while (element && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Definitions')) {\n    element = element.$parent;\n  }\n\n  return element;\n}\n\nBpmnUpdater.prototype.getLaneSet = function(container) {\n\n  var laneSet, laneSets;\n\n  // bpmn:Lane\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(container, 'bpmn:Lane')) {\n    laneSet = container.childLaneSet;\n\n    if (!laneSet) {\n      laneSet = this._bpmnFactory.create('bpmn:LaneSet');\n      container.childLaneSet = laneSet;\n      laneSet.$parent = container;\n    }\n\n    return laneSet;\n  }\n\n  // bpmn:Participant\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(container, 'bpmn:Participant')) {\n    container = container.processRef;\n  }\n\n  // bpmn:FlowElementsContainer\n  laneSets = container.get('laneSets');\n  laneSet = laneSets[0];\n\n  if (!laneSet) {\n    laneSet = this._bpmnFactory.create('bpmn:LaneSet');\n    laneSet.$parent = container;\n    laneSets.push(laneSet);\n  }\n\n  return laneSet;\n};\n\nBpmnUpdater.prototype.updateSemanticParent = function(businessObject, newParent, visualParent) {\n\n  var containment,\n      translate = this._translate;\n\n  if (businessObject.$parent === newParent) {\n    return;\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInput') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutput')) {\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant') && 'processRef' in newParent) {\n      newParent = newParent.processRef;\n    }\n\n    // already in correct ioSpecification\n    if ('ioSpecification' in newParent && newParent.ioSpecification === businessObject.$parent) {\n      return;\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Lane')) {\n\n    if (newParent) {\n      newParent = this.getLaneSet(newParent);\n    }\n\n    containment = 'lanes';\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:FlowElement')) {\n\n    if (newParent) {\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant')) {\n        newParent = newParent.processRef;\n      } else\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Lane')) {\n        do {\n\n          // unwrap Lane -> LaneSet -> (Lane | FlowElementsContainer)\n          newParent = newParent.$parent.$parent;\n        } while ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Lane'));\n\n      }\n    }\n\n    containment = 'flowElements';\n\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Artifact')) {\n\n    while (newParent &&\n           !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Process') &&\n           !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:SubProcess') &&\n           !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Collaboration')) {\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newParent, 'bpmn:Participant')) {\n        newParent = newParent.processRef;\n        break;\n      } else {\n        newParent = newParent.$parent;\n      }\n    }\n\n    containment = 'artifacts';\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:MessageFlow')) {\n    containment = 'messageFlows';\n\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:Participant')) {\n    containment = 'participants';\n\n    // make sure the participants process is properly attached / detached\n    // from the XML document\n\n    var process = businessObject.processRef,\n        definitions;\n\n    if (process) {\n      definitions = getDefinitions(businessObject.$parent || newParent);\n\n      if (businessObject.$parent) {\n        (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(definitions.get('rootElements'), process);\n        process.$parent = null;\n      }\n\n      if (newParent) {\n        (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.add)(definitions.get('rootElements'), process);\n        process.$parent = definitions;\n      }\n    }\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutputAssociation')) {\n    containment = 'dataOutputAssociations';\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInputAssociation')) {\n    containment = 'dataInputAssociations';\n  }\n\n  if (!containment) {\n    throw new Error(translate(\n      'no parent for {element} in {parent}',\n      {\n        element: businessObject.id,\n        parent: newParent.id\n      }\n    ));\n  }\n\n  var children;\n\n  if (businessObject.$parent) {\n\n    // remove from old parent\n    children = businessObject.$parent.get(containment);\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(children, businessObject);\n  }\n\n  if (!newParent) {\n    businessObject.$parent = null;\n  } else {\n\n    // add to new parent\n    children = newParent.get(containment);\n    children.push(businessObject);\n    businessObject.$parent = newParent;\n  }\n\n  if (visualParent) {\n    var diChildren = visualParent.get(containment);\n\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(children, businessObject);\n\n    if (newParent) {\n\n      if (!diChildren) {\n        diChildren = [];\n        newParent.set(containment, diChildren);\n      }\n\n      diChildren.push(businessObject);\n    }\n  }\n};\n\n\nBpmnUpdater.prototype.updateConnectionWaypoints = function(connection) {\n  connection.businessObject.di.set('waypoint', this._bpmnFactory.createDiWaypoints(connection.waypoints));\n};\n\n\nBpmnUpdater.prototype.updateConnection = function(context) {\n\n  var connection = context.connection,\n      businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection),\n      newSource = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection.source),\n      newTarget = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(connection.target),\n      visualParent;\n\n  if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataAssociation')) {\n\n    var inverseSet = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:SequenceFlow');\n\n    if (businessObject.sourceRef !== newSource) {\n      if (inverseSet) {\n        (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(businessObject.sourceRef && businessObject.sourceRef.get('outgoing'), businessObject);\n\n        if (newSource && newSource.get('outgoing')) {\n          newSource.get('outgoing').push(businessObject);\n        }\n      }\n\n      businessObject.sourceRef = newSource;\n    }\n\n    if (businessObject.targetRef !== newTarget) {\n      if (inverseSet) {\n        (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_6__.remove)(businessObject.targetRef && businessObject.targetRef.get('incoming'), businessObject);\n\n        if (newTarget && newTarget.get('incoming')) {\n          newTarget.get('incoming').push(businessObject);\n        }\n      }\n\n      businessObject.targetRef = newTarget;\n    }\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataInputAssociation')) {\n\n    // handle obnoxious isMsome sourceRef\n    businessObject.get('sourceRef')[0] = newSource;\n\n    visualParent = context.parent || context.newParent || newTarget;\n\n    this.updateSemanticParent(businessObject, newTarget, visualParent);\n  } else\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(businessObject, 'bpmn:DataOutputAssociation')) {\n    visualParent = context.parent || context.newParent || newSource;\n\n    this.updateSemanticParent(businessObject, newSource, visualParent);\n\n    // targetRef = new target\n    businessObject.targetRef = newTarget;\n  }\n\n  this.updateConnectionWaypoints(connection);\n\n  this.updateDiConnection(businessObject.di, newSource, newTarget);\n};\n\n\n// helpers //////////////////////\n\nBpmnUpdater.prototype._getLabel = function(di) {\n  if (!di.label) {\n    di.label = this._bpmnFactory.createDiLabel();\n  }\n\n  return di.label;\n};\n\n\n/**\n * Make sure the event listener is only called\n * if the touched element is a BPMN element.\n *\n * @param  {Function} fn\n * @return {Function} guarded function\n */\nfunction ifBpmn(fn) {\n\n  return function(event) {\n\n    var context = event.context,\n        element = context.shape || context.connection;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:BaseElement')) {\n      fn(event);\n    }\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ElementFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/core/ElementFactory */ \"./node_modules/diagram-js/lib/core/ElementFactory.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A bpmn-aware factory for diagram-js shapes\n */\nfunction ElementFactory(bpmnFactory, moddle, translate) {\n  diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default.call(this);\n\n  this._bpmnFactory = bpmnFactory;\n  this._moddle = moddle;\n  this._translate = translate;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ElementFactory, diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default);\n\nElementFactory.$inject = [\n  'bpmnFactory',\n  'moddle',\n  'translate'\n];\n\nElementFactory.prototype.baseCreate = diagram_js_lib_core_ElementFactory__WEBPACK_IMPORTED_MODULE_1__.default.prototype.create;\n\nElementFactory.prototype.create = function(elementType, attrs) {\n\n  // no special magic for labels,\n  // we assume their businessObjects have already been created\n  // and wired via attrs\n  if (elementType === 'label') {\n    return this.baseCreate(elementType, (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ type: 'label' }, _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.DEFAULT_LABEL_SIZE, attrs));\n  }\n\n  return this.createBpmnElement(elementType, attrs);\n};\n\nElementFactory.prototype.createBpmnElement = function(elementType, attrs) {\n  var size,\n      translate = this._translate;\n\n  attrs = attrs || {};\n\n  var businessObject = attrs.businessObject;\n\n  if (!businessObject) {\n    if (!attrs.type) {\n      throw new Error(translate('no shape type specified'));\n    }\n\n    businessObject = this._bpmnFactory.create(attrs.type);\n  }\n\n  if (!businessObject.di) {\n    if (elementType === 'root') {\n      businessObject.di = this._bpmnFactory.createDiPlane(businessObject, [], {\n        id: businessObject.id + '_di'\n      });\n    } else\n    if (elementType === 'connection') {\n      businessObject.di = this._bpmnFactory.createDiEdge(businessObject, [], {\n        id: businessObject.id + '_di'\n      });\n    } else {\n      businessObject.di = this._bpmnFactory.createDiShape(businessObject, {}, {\n        id: businessObject.id + '_di'\n      });\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(businessObject, 'bpmn:Group')) {\n    attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n      isFrame: true\n    }, attrs);\n  }\n\n  if (attrs.di) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(businessObject.di, attrs.di);\n\n    delete attrs.di;\n  }\n\n  applyAttributes(businessObject, attrs, [\n    'processRef',\n    'isInterrupting',\n    'associationDirection',\n    'isForCompensation'\n  ]);\n\n  if (attrs.isExpanded) {\n    applyAttribute(businessObject.di, attrs, 'isExpanded');\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(businessObject, 'bpmn:ExclusiveGateway')) {\n    businessObject.di.isMarkerVisible = true;\n  }\n\n  var eventDefinitions,\n      newEventDefinition;\n\n  if (attrs.eventDefinitionType) {\n    eventDefinitions = businessObject.get('eventDefinitions') || [];\n    newEventDefinition = this._bpmnFactory.create(attrs.eventDefinitionType, attrs.eventDefinitionAttrs);\n\n    if (attrs.eventDefinitionType === 'bpmn:ConditionalEventDefinition') {\n      newEventDefinition.condition = this._bpmnFactory.create('bpmn:FormalExpression');\n    }\n\n    eventDefinitions.push(newEventDefinition);\n\n    newEventDefinition.$parent = businessObject;\n    businessObject.eventDefinitions = eventDefinitions;\n\n    delete attrs.eventDefinitionType;\n  }\n\n  size = this._getDefaultSize(businessObject);\n\n  attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n    businessObject: businessObject,\n    id: businessObject.id\n  }, size, attrs);\n\n  return this.baseCreate(elementType, attrs);\n};\n\n\nElementFactory.prototype._getDefaultSize = function(semantic) {\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:SubProcess')) {\n\n    if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_5__.isExpanded)(semantic)) {\n      return { width: 350, height: 200 };\n    } else {\n      return { width: 100, height: 80 };\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Task')) {\n    return { width: 100, height: 80 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Gateway')) {\n    return { width: 50, height: 50 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Event')) {\n    return { width: 36, height: 36 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Participant')) {\n    if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_5__.isExpanded)(semantic)) {\n      return { width: 600, height: 250 };\n    } else {\n      return { width: 400, height: 60 };\n    }\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Lane')) {\n    return { width: 400, height: 100 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:DataObjectReference')) {\n    return { width: 36, height: 50 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:DataStoreReference')) {\n    return { width: 50, height: 50 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:TextAnnotation')) {\n    return { width: 100, height: 30 };\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(semantic, 'bpmn:Group')) {\n    return { width: 300, height: 300 };\n  }\n\n  return { width: 100, height: 80 };\n};\n\n\n/**\n * Create participant.\n *\n * @param {boolean|Object} [attrs] attrs\n *\n * @returns {djs.model.Shape}\n */\nElementFactory.prototype.createParticipantShape = function(attrs) {\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isObject)(attrs)) {\n    attrs = { isExpanded: attrs };\n  }\n\n  attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ type: 'bpmn:Participant' }, attrs || {});\n\n  // participants are expanded by default\n  if (attrs.isExpanded !== false) {\n    attrs.processRef = this._bpmnFactory.create('bpmn:Process');\n  }\n\n  return this.createShape(attrs);\n};\n\n\n// helpers //////////////////////\n\n/**\n * Apply attributes from a map to the given element,\n * remove attribute from the map on application.\n *\n * @param {Base} element\n * @param {Object} attrs (in/out map of attributes)\n * @param {Array<string>} attributeNames name of attributes to apply\n */\nfunction applyAttributes(element, attrs, attributeNames) {\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attributeNames, function(property) {\n    if (attrs[property] !== undefined) {\n      applyAttribute(element, attrs, property);\n    }\n  });\n}\n\n/**\n * Apply named property to element and drain it from the attrs\n * collection.\n *\n * @param {Base} element\n * @param {Object} attrs (in/out map of attributes)\n * @param {string} attributeName to apply\n */\nfunction applyAttribute(element, attrs, attributeName) {\n  element[attributeName] = attrs[attributeName];\n\n  delete attrs[attributeName];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/Modeling.js":
  /*!****************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/Modeling.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Modeling)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/modeling/Modeling */ \"./node_modules/diagram-js/lib/features/modeling/Modeling.js\");\n/* harmony import */ var _cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cmd/UpdateModdlePropertiesHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js\");\n/* harmony import */ var _cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _cmd_UpdatePropertiesHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cmd/UpdatePropertiesHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js\");\n/* harmony import */ var _cmd_UpdateCanvasRootHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cmd/UpdateCanvasRootHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js\");\n/* harmony import */ var _cmd_AddLaneHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cmd/AddLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js\");\n/* harmony import */ var _cmd_SplitLaneHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cmd/SplitLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js\");\n/* harmony import */ var _cmd_ResizeLaneHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cmd/ResizeLaneHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js\");\n/* harmony import */ var _cmd_UpdateFlowNodeRefsHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cmd/UpdateFlowNodeRefsHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js\");\n/* harmony import */ var _cmd_IdClaimHandler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./cmd/IdClaimHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js\");\n/* harmony import */ var _cmd_SetColorHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cmd/SetColorHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js\");\n/* harmony import */ var _label_editing_cmd_UpdateLabelHandler__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../label-editing/cmd/UpdateLabelHandler */ \"./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * BPMN 2.0 modeling features activator\n *\n * @param {EventBus} eventBus\n * @param {ElementFactory} elementFactory\n * @param {CommandStack} commandStack\n * @param {BpmnRules} bpmnRules\n */\nfunction Modeling(\n    eventBus, elementFactory, commandStack,\n    bpmnRules) {\n\n  diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus, elementFactory, commandStack);\n\n  this._bpmnRules = bpmnRules;\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Modeling, diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default);\n\nModeling.$inject = [\n  'eventBus',\n  'elementFactory',\n  'commandStack',\n  'bpmnRules'\n];\n\n\nModeling.prototype.getHandlers = function() {\n  var handlers = diagram_js_lib_features_modeling_Modeling__WEBPACK_IMPORTED_MODULE_1__.default.prototype.getHandlers.call(this);\n\n  handlers['element.updateModdleProperties'] = (_cmd_UpdateModdlePropertiesHandler__WEBPACK_IMPORTED_MODULE_2___default());\n  handlers['element.updateProperties'] = _cmd_UpdatePropertiesHandler__WEBPACK_IMPORTED_MODULE_3__.default;\n  handlers['canvas.updateRoot'] = _cmd_UpdateCanvasRootHandler__WEBPACK_IMPORTED_MODULE_4__.default;\n  handlers['lane.add'] = _cmd_AddLaneHandler__WEBPACK_IMPORTED_MODULE_5__.default;\n  handlers['lane.resize'] = _cmd_ResizeLaneHandler__WEBPACK_IMPORTED_MODULE_6__.default;\n  handlers['lane.split'] = _cmd_SplitLaneHandler__WEBPACK_IMPORTED_MODULE_7__.default;\n  handlers['lane.updateRefs'] = _cmd_UpdateFlowNodeRefsHandler__WEBPACK_IMPORTED_MODULE_8__.default;\n  handlers['id.updateClaim'] = _cmd_IdClaimHandler__WEBPACK_IMPORTED_MODULE_9__.default;\n  handlers['element.setColor'] = _cmd_SetColorHandler__WEBPACK_IMPORTED_MODULE_10__.default;\n  handlers['element.updateLabel'] = _label_editing_cmd_UpdateLabelHandler__WEBPACK_IMPORTED_MODULE_11__.default;\n\n  return handlers;\n};\n\n\nModeling.prototype.updateLabel = function(element, newLabel, newBounds, hints) {\n  this._commandStack.execute('element.updateLabel', {\n    element: element,\n    newLabel: newLabel,\n    newBounds: newBounds,\n    hints: hints || {}\n  });\n};\n\n\nModeling.prototype.connect = function(source, target, attrs, hints) {\n\n  var bpmnRules = this._bpmnRules;\n\n  if (!attrs) {\n    attrs = bpmnRules.canConnect(source, target);\n  }\n\n  if (!attrs) {\n    return;\n  }\n\n  return this.createConnection(source, target, attrs, source.parent, hints);\n};\n\n\nModeling.prototype.updateModdleProperties = function(element, moddleElement, properties) {\n  this._commandStack.execute('element.updateModdleProperties', {\n    element: element,\n    moddleElement: moddleElement,\n    properties: properties\n  });\n};\n\nModeling.prototype.updateProperties = function(element, properties) {\n  this._commandStack.execute('element.updateProperties', {\n    element: element,\n    properties: properties\n  });\n};\n\nModeling.prototype.resizeLane = function(laneShape, newBounds, balanced) {\n  this._commandStack.execute('lane.resize', {\n    shape: laneShape,\n    newBounds: newBounds,\n    balanced: balanced\n  });\n};\n\nModeling.prototype.addLane = function(targetLaneShape, location) {\n  var context = {\n    shape: targetLaneShape,\n    location: location\n  };\n\n  this._commandStack.execute('lane.add', context);\n\n  return context.newLane;\n};\n\nModeling.prototype.splitLane = function(targetLane, count) {\n  this._commandStack.execute('lane.split', {\n    shape: targetLane,\n    count: count\n  });\n};\n\n/**\n * Transform the current diagram into a collaboration.\n *\n * @return {djs.model.Root} the new root element\n */\nModeling.prototype.makeCollaboration = function() {\n\n  var collaborationElement = this._create('root', {\n    type: 'bpmn:Collaboration'\n  });\n\n  var context = {\n    newRoot: collaborationElement\n  };\n\n  this._commandStack.execute('canvas.updateRoot', context);\n\n  return collaborationElement;\n};\n\nModeling.prototype.updateLaneRefs = function(flowNodeShapes, laneShapes) {\n\n  this._commandStack.execute('lane.updateRefs', {\n    flowNodeShapes: flowNodeShapes,\n    laneShapes: laneShapes\n  });\n};\n\n/**\n * Transform the current diagram into a process.\n *\n * @return {djs.model.Root} the new root element\n */\nModeling.prototype.makeProcess = function() {\n\n  var processElement = this._create('root', {\n    type: 'bpmn:Process'\n  });\n\n  var context = {\n    newRoot: processElement\n  };\n\n  this._commandStack.execute('canvas.updateRoot', context);\n};\n\n\nModeling.prototype.claimId = function(id, moddleElement) {\n  this._commandStack.execute('id.updateClaim', {\n    id: id,\n    element: moddleElement,\n    claiming: true\n  });\n};\n\n\nModeling.prototype.unclaimId = function(id, moddleElement) {\n  this._commandStack.execute('id.updateClaim', {\n    id: id,\n    element: moddleElement\n  });\n};\n\nModeling.prototype.setColor = function(elements, colors) {\n  if (!elements.length) {\n    elements = [ elements ];\n  }\n\n  this._commandStack.execute('element.setColor', {\n    elements: elements,\n    colors: colors\n  });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/Modeling.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js":
  /*!*************************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js ***!
    \*************************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AdaptiveLabelPositioningBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Math__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Math */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\nvar ALIGNMENTS = [\n  'top',\n  'bottom',\n  'left',\n  'right'\n];\n\nvar ELEMENT_LABEL_DISTANCE = 10;\n\n/**\n * A component that makes sure that external labels are added\n * together with respective elements and properly updated (DI wise)\n * during move.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction AdaptiveLabelPositioningBehavior(eventBus, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this.postExecuted([\n    'connection.create',\n    'connection.layout',\n    'connection.updateWaypoints'\n  ], function(event) {\n    var context = event.context,\n        connection = context.connection,\n        source = connection.source,\n        target = connection.target,\n        hints = context.hints || {};\n\n    if (hints.createElementsBehavior !== false) {\n      checkLabelAdjustment(source);\n      checkLabelAdjustment(target);\n    }\n  });\n\n\n  this.postExecuted([\n    'label.create'\n  ], function(event) {\n    var context = event.context,\n        shape = context.shape,\n        hints = context.hints || {};\n\n    if (hints.createElementsBehavior !== false) {\n      checkLabelAdjustment(shape.labelTarget);\n    }\n  });\n\n\n  this.postExecuted([\n    'elements.create'\n  ], function(event) {\n    var context = event.context,\n        elements = context.elements,\n        hints = context.hints || {};\n\n    if (hints.createElementsBehavior !== false) {\n      elements.forEach(function(element) {\n        checkLabelAdjustment(element);\n      });\n    }\n  });\n\n  function checkLabelAdjustment(element) {\n\n    // skip non-existing labels\n    if (!(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__.hasExternalLabel)(element)) {\n      return;\n    }\n\n    var optimalPosition = getOptimalPosition(element);\n\n    // no optimal position found\n    if (!optimalPosition) {\n      return;\n    }\n\n    adjustLabelPosition(element, optimalPosition);\n  }\n\n  function adjustLabelPosition(element, orientation) {\n\n    var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element),\n        label = element.label,\n        labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(label);\n\n    // ignore labels that are being created\n    if (!label.parent) {\n      return;\n    }\n\n    var elementTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(element);\n\n    var newLabelMid;\n\n    switch (orientation) {\n    case 'top':\n      newLabelMid = {\n        x: elementMid.x,\n        y: elementTrbl.top - ELEMENT_LABEL_DISTANCE - label.height / 2\n      };\n\n      break;\n\n    case 'left':\n\n      newLabelMid = {\n        x: elementTrbl.left - ELEMENT_LABEL_DISTANCE - label.width / 2,\n        y: elementMid.y\n      };\n\n      break;\n\n    case 'bottom':\n\n      newLabelMid = {\n        x: elementMid.x,\n        y: elementTrbl.bottom + ELEMENT_LABEL_DISTANCE + label.height / 2\n      };\n\n      break;\n\n    case 'right':\n\n      newLabelMid = {\n        x: elementTrbl.right + ELEMENT_LABEL_DISTANCE + label.width / 2,\n        y: elementMid.y\n      };\n\n      break;\n    }\n\n    var delta = (0,diagram_js_lib_util_Math__WEBPACK_IMPORTED_MODULE_4__.delta)(newLabelMid, labelMid);\n\n    modeling.moveShape(label, delta);\n  }\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AdaptiveLabelPositioningBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAdaptiveLabelPositioningBehavior.$inject = [\n  'eventBus',\n  'modeling'\n];\n\n\n// helpers //////////////////////\n\n/**\n * Return alignments which are taken by a boundary's host element\n *\n * @param {Shape} element\n *\n * @return {Array<string>}\n */\nfunction getTakenHostAlignments(element) {\n\n  var hostElement = element.host,\n      elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element),\n      hostOrientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getOrientation)(elementMid, hostElement);\n\n  var freeAlignments;\n\n  // check whether there is a multi-orientation, e.g. 'top-left'\n  if (hostOrientation.indexOf('-') >= 0) {\n    freeAlignments = hostOrientation.split('-');\n  } else {\n    freeAlignments = [ hostOrientation ];\n  }\n\n  var takenAlignments = ALIGNMENTS.filter(function(alignment) {\n\n    return freeAlignments.indexOf(alignment) === -1;\n  });\n\n  return takenAlignments;\n\n}\n\n/**\n * Return alignments which are taken by related connections\n *\n * @param {Shape} element\n *\n * @return {Array<string>}\n */\nfunction getTakenConnectionAlignments(element) {\n\n  var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element);\n\n  var takenAlignments = [].concat(\n    element.incoming.map(function(c) {\n      return c.waypoints[c.waypoints.length - 2 ];\n    }),\n    element.outgoing.map(function(c) {\n      return c.waypoints[1];\n    })\n  ).map(function(point) {\n    return getApproximateOrientation(elementMid, point);\n  });\n\n  return takenAlignments;\n}\n\n/**\n * Return the optimal label position around an element\n * or _undefined_, if none was found.\n *\n * @param  {Shape} element\n *\n * @return {string} positioning identifier\n */\nfunction getOptimalPosition(element) {\n\n  var labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element.label);\n\n  var elementMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(element);\n\n  var labelOrientation = getApproximateOrientation(elementMid, labelMid);\n\n  if (!isAligned(labelOrientation)) {\n    return;\n  }\n\n  var takenAlignments = getTakenConnectionAlignments(element);\n\n  if (element.host) {\n    var takenHostAlignments = getTakenHostAlignments(element);\n\n    takenAlignments = takenAlignments.concat(takenHostAlignments);\n  }\n\n  var freeAlignments = ALIGNMENTS.filter(function(alignment) {\n\n    return takenAlignments.indexOf(alignment) === -1;\n  });\n\n  // NOTHING TO DO; label already aligned a.O.K.\n  if (freeAlignments.indexOf(labelOrientation) !== -1) {\n    return;\n  }\n\n  return freeAlignments[0];\n}\n\nfunction getApproximateOrientation(p0, p1) {\n  return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getOrientation)(p1, p0, 5);\n}\n\nfunction isAligned(orientation) {\n  return ALIGNMENTS.indexOf(orientation) !== -1;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AppendBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\nfunction AppendBehavior(eventBus, elementFactory, bpmnRules) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  // assign correct shape position unless already set\n\n  this.preExecute('shape.append', function(context) {\n\n    var source = context.source,\n        shape = context.shape;\n\n    if (!context.position) {\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:TextAnnotation')) {\n        context.position = {\n          x: source.x + source.width / 2 + 75,\n          y: source.y - (50) - shape.height / 2\n        };\n      } else {\n        context.position = {\n          x: source.x + source.width + 80 + shape.width / 2,\n          y: source.y + source.height / 2\n        };\n      }\n    }\n  }, true);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AppendBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAppendBehavior.$inject = [\n  'eventBus',\n  'elementFactory',\n  'bpmnRules'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AssociationBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction AssociationBehavior(injector, modeling) {\r\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\r\n\r\n  this.postExecute('shape.move', function(context) {\r\n    var newParent = context.newParent,\r\n        shape = context.shape;\r\n\r\n    var associations = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(shape.incoming.concat(shape.outgoing), function(connection) {\r\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:Association');\r\n    });\r\n\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(associations, function(association) {\r\n      modeling.moveConnection(association, { x: 0, y: 0 }, newParent);\r\n    });\r\n  }, true);\r\n}\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AssociationBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\nAssociationBehavior.$inject = [\r\n  'injector',\r\n  'modeling'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AttachEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * Replace intermediate event with boundary event when creating or moving results in attached event.\n */\nfunction AttachEventBehavior(bpmnReplace, injector) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this._bpmnReplace = bpmnReplace;\n\n  var self = this;\n\n  this.postExecuted('elements.create', LOW_PRIORITY, function(context) {\n    var elements = context.elements;\n\n    elements = elements.filter(function(shape) {\n      var host = shape.host;\n\n      return shouldReplace(shape, host);\n    });\n\n    if (elements.length !== 1) {\n      return;\n    }\n\n    elements.map(function(element) {\n      return elements.indexOf(element);\n    }).forEach(function(index) {\n      var host = elements[ index ];\n\n      context.elements[ index ] = self.replaceShape(elements[ index ], host);\n    });\n  }, true);\n\n\n  this.preExecute('elements.move', LOW_PRIORITY, function(context) {\n    var shapes = context.shapes,\n        host = context.newHost;\n\n    if (shapes.length !== 1) {\n      return;\n    }\n\n    var shape = shapes[0];\n\n    if (shouldReplace(shape, host)) {\n      context.shapes = [ self.replaceShape(shape, host) ];\n    }\n  }, true);\n}\n\nAttachEventBehavior.$inject = [\n  'bpmnReplace',\n  'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AttachEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAttachEventBehavior.prototype.replaceShape = function(shape, host) {\n  var eventDefinition = getEventDefinition(shape);\n\n  var boundaryEvent = {\n    type: 'bpmn:BoundaryEvent',\n    host: host\n  };\n\n  if (eventDefinition) {\n    boundaryEvent.eventDefinitionType = eventDefinition.$type;\n  }\n\n  return this._bpmnReplace.replaceElement(shape, boundaryEvent, { layoutConnection: false });\n};\n\n\n// helpers //////////\n\nfunction getEventDefinition(element) {\n  var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element),\n      eventDefinitions = businessObject.eventDefinitions;\n\n  return eventDefinitions && eventDefinitions[0];\n}\n\nfunction shouldReplace(shape, host) {\n  return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(shape) &&\n    (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(shape, [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ]) && !!host;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BoundaryEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN specific boundary event behavior\n */\nfunction BoundaryEventBehavior(eventBus, moddle, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  function getBoundaryEvents(element) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(element.attachers, function(attacher) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(attacher, 'bpmn:BoundaryEvent');\n    });\n  }\n\n  // remove after connecting to event-based gateway\n  this.postExecute('connection.create', function(event) {\n    var source = event.context.source,\n        target = event.context.target,\n        boundaryEvents = getBoundaryEvents(target);\n\n    if (\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(source, 'bpmn:EventBasedGateway') &&\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:ReceiveTask') &&\n      boundaryEvents.length > 0\n    ) {\n      modeling.removeElements(boundaryEvents);\n    }\n\n  });\n\n  // remove after replacing connected gateway with event-based gateway\n  this.postExecute('connection.reconnect', function(event) {\n    var oldSource = event.context.oldSource,\n        newSource = event.context.newSource;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldSource, 'bpmn:Gateway') &&\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newSource, 'bpmn:EventBasedGateway')) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newSource.outgoing, function(connection) {\n        var target = connection.target,\n            attachedboundaryEvents = getBoundaryEvents(target);\n\n        if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:ReceiveTask') &&\n            attachedboundaryEvents.length > 0) {\n          modeling.removeElements(attachedboundaryEvents);\n        }\n      });\n    }\n  });\n\n  // copy reference to root element on replace\n  eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) {\n    var parent = context.parent,\n        property = context.property,\n        propertyName = context.propertyName;\n\n    var propertyDescriptor = moddle.getPropertyDescriptor(parent, propertyName);\n\n    if (propertyDescriptor && propertyDescriptor.isReference && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(property, 'bpmn:RootElement')) {\n      parent.set(propertyName, property);\n    }\n  });\n}\n\nBoundaryEventBehavior.$inject = [\n  'eventBus',\n  'moddle',\n  'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BoundaryEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n\n\n\n\nfunction CreateBehavior(injector) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this.preExecute('shape.create', 1500, function(event) {\n    var context = event.context,\n        parent = context.parent,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Lane') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Lane')) {\n      context.parent = (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(parent, 'bpmn:Participant');\n    }\n  });\n\n}\n\n\nCreateBehavior.$inject = [ 'injector' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js ***!
    \*****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateDataObjectBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * BPMN specific create data object behavior\n */\nfunction CreateDataObjectBehavior(eventBus, bpmnFactory, moddle) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this.preExecute('shape.create', function(event) {\n\n    var context = event.context,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:DataObjectReference') && shape.type !== 'label') {\n\n      // create a DataObject every time a DataObjectReference is created\n      var dataObject = bpmnFactory.create('bpmn:DataObject');\n\n      // set the reference to the DataObject\n      shape.businessObject.dataObjectRef = dataObject;\n    }\n  });\n\n}\n\nCreateDataObjectBehavior.$inject = [\n  'eventBus',\n  'bpmnFactory',\n  'moddle'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateDataObjectBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js ***!
    \******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"PARTICIPANT_BORDER_WIDTH\": () => (/* binding */ PARTICIPANT_BORDER_WIDTH),\n/* harmony export */   \"default\": () => (/* binding */ CreateParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar HORIZONTAL_PARTICIPANT_PADDING = 20,\n    VERTICAL_PARTICIPANT_PADDING = 20;\n\nvar PARTICIPANT_BORDER_WIDTH = 30;\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN-specific behavior for creating participants.\n */\nfunction CreateParticipantBehavior(canvas, eventBus, modeling) {\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  // fit participant\n  eventBus.on([\n    'create.start',\n    'shape.move.start'\n  ], HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        shape = context.shape,\n        rootElement = canvas.getRootElement();\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') ||\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process') ||\n      !rootElement.children.length) {\n      return;\n    }\n\n    // ignore connections, groups and labels\n    var children = rootElement.children.filter(function(element) {\n      return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Group') &&\n        !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(element) &&\n        !isConnection(element);\n    });\n\n    // ensure for available children to calculate bounds\n    if (!children.length) {\n      return;\n    }\n\n    var childrenBBox = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(children);\n\n    var participantBounds = getParticipantBounds(shape, childrenBBox);\n\n    // assign width and height\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)(shape, participantBounds);\n\n    // assign create constraints\n    context.createConstraints = getParticipantCreateConstraints(shape, childrenBBox);\n  });\n\n  // force hovering process when creating first participant\n  eventBus.on('create.start', HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        shape = context.shape,\n        rootElement = canvas.getRootElement(),\n        rootElementGfx = canvas.getGraphics(rootElement);\n\n    function ensureHoveringProcess(event) {\n      event.element = rootElement;\n      event.gfx = rootElementGfx;\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process')) {\n      eventBus.on('element.hover', HIGH_PRIORITY, ensureHoveringProcess);\n\n      eventBus.once('create.cleanup', function() {\n        eventBus.off('element.hover', ensureHoveringProcess);\n      });\n    }\n  });\n\n  function ensureCollaboration(context) {\n    var parent = context.parent,\n        collaboration;\n\n    var rootElement = canvas.getRootElement();\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Collaboration')) {\n      collaboration = rootElement;\n    } else {\n\n      // update root element by making collaboration\n      collaboration = modeling.makeCollaboration();\n\n      // re-use process when creating first participant\n      context.process = parent;\n    }\n\n    context.parent = collaboration;\n  }\n\n  // turn process into collaboration before adding participant\n  this.preExecute('shape.create', function(context) {\n    var parent = context.parent,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Process')) {\n      ensureCollaboration(context);\n    }\n  }, true);\n\n  this.execute('shape.create', function(context) {\n    var process = context.process,\n        shape = context.shape;\n\n    if (process) {\n      context.oldProcessRef = shape.businessObject.processRef;\n\n      // re-use process when creating first participant\n      shape.businessObject.processRef = process.businessObject;\n    }\n  }, true);\n\n  this.revert('shape.create', function(context) {\n    var process = context.process,\n        shape = context.shape;\n\n    if (process) {\n\n      // re-use process when creating first participant\n      shape.businessObject.processRef = context.oldProcessRef;\n    }\n  }, true);\n\n  this.postExecute('shape.create', function(context) {\n    var process = context.process,\n        shape = context.shape;\n\n    if (process) {\n\n      // move children from process to participant\n      var processChildren = process.children.slice();\n\n      modeling.moveElements(processChildren, { x: 0, y: 0 }, shape);\n    }\n\n  }, true);\n\n  // turn process into collaboration when creating participants\n  this.preExecute('elements.create', HIGH_PRIORITY, function(context) {\n    var elements = context.elements,\n        parent = context.parent,\n        participant;\n\n    var hasParticipants = findParticipant(elements);\n\n    if (hasParticipants && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(parent, 'bpmn:Process')) {\n      ensureCollaboration(context);\n\n      participant = findParticipant(elements);\n\n      context.oldProcessRef = participant.businessObject.processRef;\n\n      // re-use process when creating first participant\n      participant.businessObject.processRef = parent.businessObject;\n    }\n  }, true);\n\n  this.revert('elements.create', function(context) {\n    var elements = context.elements,\n        process = context.process,\n        participant;\n\n    if (process) {\n      participant = findParticipant(elements);\n\n      // re-use process when creating first participant\n      participant.businessObject.processRef = context.oldProcessRef;\n    }\n  }, true);\n\n  this.postExecute('elements.create', function(context) {\n    var elements = context.elements,\n        process = context.process,\n        participant;\n\n    if (process) {\n      participant = findParticipant(elements);\n\n      // move children from process to first participant\n      var processChildren = process.children.slice();\n\n      modeling.moveElements(processChildren, { x: 0, y: 0 }, participant);\n    }\n\n  }, true);\n\n}\n\nCreateParticipantBehavior.$inject = [\n  'canvas',\n  'eventBus',\n  'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateParticipantBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// helpers //////////\n\nfunction getParticipantBounds(shape, childrenBBox) {\n  childrenBBox = {\n    width: childrenBBox.width + HORIZONTAL_PARTICIPANT_PADDING * 2 + PARTICIPANT_BORDER_WIDTH,\n    height: childrenBBox.height + VERTICAL_PARTICIPANT_PADDING * 2\n  };\n\n  var width = Math.max(shape.width, childrenBBox.width),\n      height = Math.max(shape.height, childrenBBox.height);\n\n  return {\n    x: -width / 2,\n    y: -height / 2,\n    width: width,\n    height: height\n  };\n}\n\nfunction getParticipantCreateConstraints(shape, childrenBBox) {\n  childrenBBox = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_6__.asTRBL)(childrenBBox);\n\n  return {\n    bottom: childrenBBox.top + shape.height / 2 - VERTICAL_PARTICIPANT_PADDING,\n    left: childrenBBox.right - shape.width / 2 + HORIZONTAL_PARTICIPANT_PADDING,\n    top: childrenBBox.bottom - shape.height / 2 + VERTICAL_PARTICIPANT_PADDING,\n    right: childrenBBox.left + shape.width / 2 - HORIZONTAL_PARTICIPANT_PADDING - PARTICIPANT_BORDER_WIDTH\n  };\n}\n\nfunction isConnection(element) {\n  return !!element.waypoints;\n}\n\nfunction findParticipant(elements) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.find)(elements, function(element) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:Participant');\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js ***!
    \*********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DataInputAssociationBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar TARGET_REF_PLACEHOLDER_NAME = '__targetRef_placeholder';\n\n\n/**\n * This behavior makes sure we always set a fake\n * DataInputAssociation#targetRef as demanded by the BPMN 2.0\n * XSD schema.\n *\n * The reference is set to a bpmn:Property{ name: '__targetRef_placeholder' }\n * which is created on the fly and cleaned up afterwards if not needed\n * anymore.\n *\n * @param {EventBus} eventBus\n * @param {BpmnFactory} bpmnFactory\n */\nfunction DataInputAssociationBehavior(eventBus, bpmnFactory) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  this.executed([\n    'connection.create',\n    'connection.delete',\n    'connection.move',\n    'connection.reconnect'\n  ], ifDataInputAssociation(fixTargetRef));\n\n  this.reverted([\n    'connection.create',\n    'connection.delete',\n    'connection.move',\n    'connection.reconnect'\n  ], ifDataInputAssociation(fixTargetRef));\n\n\n  function usesTargetRef(element, targetRef, removedConnection) {\n\n    var inputAssociations = element.get('dataInputAssociations');\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(inputAssociations, function(association) {\n      return association !== removedConnection &&\n             association.targetRef === targetRef;\n    });\n  }\n\n  function getTargetRef(element, create) {\n\n    var properties = element.get('properties');\n\n    var targetRefProp = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(properties, function(p) {\n      return p.name === TARGET_REF_PLACEHOLDER_NAME;\n    });\n\n    if (!targetRefProp && create) {\n      targetRefProp = bpmnFactory.create('bpmn:Property', {\n        name: TARGET_REF_PLACEHOLDER_NAME\n      });\n\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(properties, targetRefProp);\n    }\n\n    return targetRefProp;\n  }\n\n  function cleanupTargetRef(element, connection) {\n\n    var targetRefProp = getTargetRef(element);\n\n    if (!targetRefProp) {\n      return;\n    }\n\n    if (!usesTargetRef(element, targetRefProp, connection)) {\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(element.get('properties'), targetRefProp);\n    }\n  }\n\n  /**\n   * Make sure targetRef is set to a valid property or\n   * `null` if the connection is detached.\n   *\n   * @param {Event} event\n   */\n  function fixTargetRef(event) {\n\n    var context = event.context,\n        connection = context.connection,\n        connectionBo = connection.businessObject,\n        target = connection.target,\n        targetBo = target && target.businessObject,\n        newTarget = context.newTarget,\n        newTargetBo = newTarget && newTarget.businessObject,\n        oldTarget = context.oldTarget || context.target,\n        oldTargetBo = oldTarget && oldTarget.businessObject;\n\n    var dataAssociation = connection.businessObject,\n        targetRefProp;\n\n    if (oldTargetBo && oldTargetBo !== targetBo) {\n      cleanupTargetRef(oldTargetBo, connectionBo);\n    }\n\n    if (newTargetBo && newTargetBo !== targetBo) {\n      cleanupTargetRef(newTargetBo, connectionBo);\n    }\n\n    if (targetBo) {\n      targetRefProp = getTargetRef(targetBo, true);\n      dataAssociation.targetRef = targetRefProp;\n    } else {\n      dataAssociation.targetRef = null;\n    }\n  }\n}\n\nDataInputAssociationBehavior.$inject = [\n  'eventBus',\n  'bpmnFactory'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DataInputAssociationBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Only call the given function when the event\n * touches a bpmn:DataInputAssociation.\n *\n * @param {Function} fn\n * @return {Function}\n */\nfunction ifDataInputAssociation(fn) {\n\n  return function(event) {\n    var context = event.context,\n        connection = context.connection;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(connection, 'bpmn:DataInputAssociation')) {\n      return fn(event);\n    }\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DataStoreBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _cmd_UpdateSemanticParentHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../cmd/UpdateSemanticParentHandler */ \"./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * BPMN specific data store behavior\r\n */\r\nfunction DataStoreBehavior(\r\n    canvas, commandStack, elementRegistry,\r\n    eventBus) {\r\n\r\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n  commandStack.registerHandler('dataStore.updateContainment', _cmd_UpdateSemanticParentHandler__WEBPACK_IMPORTED_MODULE_2__.default);\r\n\r\n  function getFirstParticipantWithProcessRef() {\r\n    return elementRegistry.filter(function(element) {\r\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element, 'bpmn:Participant') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(element).processRef;\r\n    })[0];\r\n  }\r\n\r\n  function getDataStores(element) {\r\n    return element.children.filter(function(child) {\r\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(child, 'bpmn:DataStoreReference') && !child.labelTarget;\r\n    });\r\n  }\r\n\r\n  function updateDataStoreParent(dataStore, newDataStoreParent) {\r\n    var dataStoreBo = dataStore.businessObject || dataStore;\r\n\r\n    newDataStoreParent = newDataStoreParent || getFirstParticipantWithProcessRef();\r\n\r\n    if (newDataStoreParent) {\r\n      var newDataStoreParentBo = newDataStoreParent.businessObject || newDataStoreParent;\r\n\r\n      commandStack.execute('dataStore.updateContainment', {\r\n        dataStoreBo: dataStoreBo,\r\n        newSemanticParent: newDataStoreParentBo.processRef || newDataStoreParentBo,\r\n        newDiParent: newDataStoreParentBo.di\r\n      });\r\n    }\r\n  }\r\n\r\n\r\n  // disable auto-resize for data stores\r\n  this.preExecute('shape.create', function(event) {\r\n\r\n    var context = event.context,\r\n        shape = context.shape;\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n        shape.type !== 'label') {\r\n\r\n      if (!context.hints) {\r\n        context.hints = {};\r\n      }\r\n\r\n      // prevent auto resizing\r\n      context.hints.autoResize = false;\r\n    }\r\n  });\r\n\r\n\r\n  // disable auto-resize for data stores\r\n  this.preExecute('elements.move', function(event) {\r\n    var context = event.context,\r\n        shapes = context.shapes;\r\n\r\n    var dataStoreReferences = shapes.filter(function(shape) {\r\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference');\r\n    });\r\n\r\n    if (dataStoreReferences.length) {\r\n      if (!context.hints) {\r\n        context.hints = {};\r\n      }\r\n\r\n      // prevent auto resizing for data store references\r\n      context.hints.autoResize = shapes.filter(function(shape) {\r\n        return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference');\r\n      });\r\n    }\r\n  });\r\n\r\n\r\n  // update parent on data store created\r\n  this.postExecute('shape.create', function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        parent = shape.parent;\r\n\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n        shape.type !== 'label' &&\r\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parent, 'bpmn:Collaboration')) {\r\n\r\n      updateDataStoreParent(shape);\r\n    }\r\n  });\r\n\r\n\r\n  // update parent on data store moved\r\n  this.postExecute('shape.move', function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        oldParent = context.oldParent,\r\n        parent = shape.parent;\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldParent, 'bpmn:Collaboration')) {\r\n\r\n      // do nothing if not necessary\r\n      return;\r\n    }\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:DataStoreReference') &&\r\n        shape.type !== 'label' &&\r\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(parent, 'bpmn:Collaboration')) {\r\n\r\n      var participant = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldParent, 'bpmn:Participant') ?\r\n        oldParent :\r\n        getAncestor(oldParent, 'bpmn:Participant');\r\n\r\n      updateDataStoreParent(shape, participant);\r\n    }\r\n  });\r\n\r\n\r\n  // update data store parents on participant or subprocess deleted\r\n  this.postExecute('shape.delete', function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        rootElement = canvas.getRootElement();\r\n\r\n    if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(shape, [ 'bpmn:Participant', 'bpmn:SubProcess' ])\r\n        && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(rootElement, 'bpmn:Collaboration')) {\r\n      getDataStores(rootElement)\r\n        .filter(function(dataStore) {\r\n          return isDescendant(dataStore, shape);\r\n        })\r\n        .forEach(function(dataStore) {\r\n          updateDataStoreParent(dataStore);\r\n        });\r\n    }\r\n  });\r\n\r\n  // update data store parents on collaboration -> process\r\n  this.postExecute('canvas.updateRoot', function(event) {\r\n    var context = event.context,\r\n        oldRoot = context.oldRoot,\r\n        newRoot = context.newRoot;\r\n\r\n    var dataStores = getDataStores(oldRoot);\r\n\r\n    dataStores.forEach(function(dataStore) {\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newRoot, 'bpmn:Process')) {\r\n        updateDataStoreParent(dataStore, newRoot);\r\n      }\r\n\r\n    });\r\n  });\r\n}\r\n\r\nDataStoreBehavior.$inject = [\r\n  'canvas',\r\n  'commandStack',\r\n  'elementRegistry',\r\n  'eventBus',\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DataStoreBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n\r\n// helpers //////////\r\n\r\nfunction isDescendant(descendant, ancestor) {\r\n  var descendantBo = descendant.businessObject || descendant,\r\n      ancestorBo = ancestor.businessObject || ancestor;\r\n\r\n  while (descendantBo.$parent) {\r\n    if (descendantBo.$parent === ancestorBo.processRef || ancestorBo) {\r\n      return true;\r\n    }\r\n\r\n    descendantBo = descendantBo.$parent;\r\n  }\r\n\r\n  return false;\r\n}\r\n\r\nfunction getAncestor(element, type) {\r\n\r\n  while (element.parent) {\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(element.parent, type)) {\r\n      return element.parent;\r\n    }\r\n\r\n    element = element.parent;\r\n  }\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DeleteLaneBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * BPMN specific delete lane behavior\n */\nfunction DeleteLaneBehavior(eventBus, modeling, spaceTool) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  function compensateLaneDelete(shape, oldParent) {\n\n    var siblings = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getChildLanes)(oldParent);\n\n    var topAffected = [];\n    var bottomAffected = [];\n\n    (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__.eachElement)(siblings, function(element) {\n\n      if (element.y > shape.y) {\n        bottomAffected.push(element);\n      } else {\n        topAffected.push(element);\n      }\n\n      return element.children;\n    });\n\n    if (!siblings.length) {\n      return;\n    }\n\n    var offset;\n\n    if (bottomAffected.length && topAffected.length) {\n      offset = shape.height / 2;\n    } else {\n      offset = shape.height;\n    }\n\n    var topAdjustments,\n        bottomAdjustments;\n\n    if (topAffected.length) {\n      topAdjustments = spaceTool.calculateAdjustments(\n        topAffected, 'y', offset, shape.y - 10);\n\n      spaceTool.makeSpace(\n        topAdjustments.movingShapes,\n        topAdjustments.resizingShapes,\n        { x: 0, y: offset }, 's');\n    }\n\n    if (bottomAffected.length) {\n      bottomAdjustments = spaceTool.calculateAdjustments(\n        bottomAffected, 'y', -offset, shape.y + shape.height + 10);\n\n      spaceTool.makeSpace(\n        bottomAdjustments.movingShapes,\n        bottomAdjustments.resizingShapes,\n        { x: 0, y: -offset }, 'n');\n    }\n  }\n\n\n  /**\n   * Adjust sizes of other lanes after lane deletion\n   */\n  this.postExecuted('shape.delete', LOW_PRIORITY, function(event) {\n\n    var context = event.context,\n        hints = context.hints,\n        shape = context.shape,\n        oldParent = context.oldParent;\n\n    // only compensate lane deletes\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(shape, 'bpmn:Lane')) {\n      return;\n    }\n\n    // compensate root deletes only\n    if (hints && hints.nested) {\n      return;\n    }\n\n    compensateLaneDelete(shape, oldParent);\n  });\n}\n\nDeleteLaneBehavior.$inject = [\n  'eventBus',\n  'modeling',\n  'spaceTool'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DeleteLaneBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DetachEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * Replace boundary event with intermediate event when creating or moving results in detached event.\n */\nfunction DetachEventBehavior(bpmnReplace, injector) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this._bpmnReplace = bpmnReplace;\n\n  var self = this;\n\n  this.postExecuted('elements.create', LOW_PRIORITY, function(context) {\n    var elements = context.elements;\n\n    elements.filter(function(shape) {\n      var host = shape.host;\n\n      return shouldReplace(shape, host);\n    }).map(function(shape) {\n      return elements.indexOf(shape);\n    }).forEach(function(index) {\n      context.elements[ index ] = self.replaceShape(elements[ index ]);\n    });\n  }, true);\n\n  this.preExecute('elements.move', LOW_PRIORITY, function(context) {\n    var shapes = context.shapes,\n        newHost = context.newHost;\n\n    shapes.forEach(function(shape, index) {\n      var host = shape.host;\n\n      if (shouldReplace(shape, includes(shapes, host) ? host : newHost)) {\n        shapes[ index ] = self.replaceShape(shape);\n      }\n    });\n  }, true);\n}\n\nDetachEventBehavior.$inject = [\n  'bpmnReplace',\n  'injector'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DetachEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDetachEventBehavior.prototype.replaceShape = function(shape) {\n  var eventDefinition = getEventDefinition(shape),\n      intermediateEvent;\n\n  if (eventDefinition) {\n    intermediateEvent = {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: eventDefinition.$type\n    };\n  } else {\n    intermediateEvent = {\n      type: 'bpmn:IntermediateThrowEvent'\n    };\n  }\n\n  return this._bpmnReplace.replaceElement(shape, intermediateEvent, { layoutConnection: false });\n};\n\n\n// helpers //////////\n\nfunction getEventDefinition(element) {\n  var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(element),\n      eventDefinitions = businessObject.eventDefinitions;\n\n  return eventDefinitions && eventDefinitions[0];\n}\n\nfunction shouldReplace(shape, host) {\n  return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(shape) && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:BoundaryEvent') && !host;\n}\n\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DropOnFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/util/LineIntersection */ \"./node_modules/diagram-js/lib/util/LineIntersection.js\");\n\n\n\n\n\n\n\n\n\n\n\nfunction DropOnFlowBehavior(eventBus, bpmnRules, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  /**\n   * Reconnect start / end of a connection after\n   * dropping an element on a flow.\n   */\n\n  function insertShape(shape, targetFlow, positionOrBounds) {\n    var waypoints = targetFlow.waypoints,\n        waypointsBefore,\n        waypointsAfter,\n        dockingPoint,\n        source,\n        target,\n        incomingConnection,\n        outgoingConnection,\n        oldOutgoing = shape.outgoing.slice(),\n        oldIncoming = shape.incoming.slice();\n\n    var mid;\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isNumber)(positionOrBounds.width)) {\n      mid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(positionOrBounds);\n    } else {\n      mid = positionOrBounds;\n    }\n\n    var intersection = (0,diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__.getApproxIntersection)(waypoints, mid);\n\n    if (intersection) {\n      waypointsBefore = waypoints.slice(0, intersection.index);\n      waypointsAfter = waypoints.slice(intersection.index + (intersection.bendpoint ? 1 : 0));\n\n      // due to inaccuracy intersection might have been found\n      if (!waypointsBefore.length || !waypointsAfter.length) {\n        return;\n      }\n\n      dockingPoint = intersection.bendpoint ? waypoints[intersection.index] : mid;\n\n      // if last waypointBefore is inside shape's bounds, ignore docking point\n      if (!isPointInsideBBox(shape, waypointsBefore[waypointsBefore.length-1])) {\n        waypointsBefore.push(copy(dockingPoint));\n      }\n\n      // if first waypointAfter is inside shape's bounds, ignore docking point\n      if (!isPointInsideBBox(shape, waypointsAfter[0])) {\n        waypointsAfter.unshift(copy(dockingPoint));\n      }\n    }\n\n    source = targetFlow.source;\n    target = targetFlow.target;\n\n    if (bpmnRules.canConnect(source, shape, targetFlow)) {\n\n      // reconnect source -> inserted shape\n      modeling.reconnectEnd(targetFlow, shape, waypointsBefore || mid);\n\n      incomingConnection = targetFlow;\n    }\n\n    if (bpmnRules.canConnect(shape, target, targetFlow)) {\n\n      if (!incomingConnection) {\n\n        // reconnect inserted shape -> end\n        modeling.reconnectStart(targetFlow, shape, waypointsAfter || mid);\n\n        outgoingConnection = targetFlow;\n      } else {\n        outgoingConnection = modeling.connect(\n          shape, target, { type: targetFlow.type, waypoints: waypointsAfter }\n        );\n      }\n    }\n\n    var duplicateConnections = [].concat(\n\n      incomingConnection && (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(oldIncoming, function(connection) {\n        return connection.source === incomingConnection.source;\n      }) || [],\n\n      outgoingConnection && (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(oldOutgoing, function(connection) {\n        return connection.target === outgoingConnection.target;\n      }) || []\n    );\n\n    if (duplicateConnections.length) {\n      modeling.removeElements(duplicateConnections);\n    }\n  }\n\n  this.preExecute('elements.move', function(context) {\n\n    var newParent = context.newParent,\n        shapes = context.shapes,\n        delta = context.delta,\n        shape = shapes[0];\n\n    if (!shape || !newParent) {\n      return;\n    }\n\n    // if the new parent is a connection,\n    // change it to the new parent's parent\n    if (newParent && newParent.waypoints) {\n      context.newParent = newParent = newParent.parent;\n    }\n\n    var shapeMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.getMid)(shape);\n    var newShapeMid = {\n      x: shapeMid.x + delta.x,\n      y: shapeMid.y + delta.y\n    };\n\n    // find a connection which intersects with the\n    // element's mid point\n    var connection = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(newParent.children, function(element) {\n      var canInsert = bpmnRules.canInsert(shapes, element);\n\n      return canInsert && (0,diagram_js_lib_util_LineIntersection__WEBPACK_IMPORTED_MODULE_4__.getApproxIntersection)(element.waypoints, newShapeMid);\n    });\n\n    if (connection) {\n      context.targetFlow = connection;\n      context.position = newShapeMid;\n    }\n\n  }, true);\n\n  this.postExecuted('elements.move', function(context) {\n\n    var shapes = context.shapes,\n        targetFlow = context.targetFlow,\n        position = context.position;\n\n    if (targetFlow) {\n      insertShape(shapes[0], targetFlow, position);\n    }\n\n  }, true);\n\n  this.preExecute('shape.create', function(context) {\n\n    var parent = context.parent,\n        shape = context.shape;\n\n    if (bpmnRules.canInsert(shape, parent)) {\n      context.targetFlow = parent;\n      context.parent = parent.parent;\n    }\n  }, true);\n\n  this.postExecuted('shape.create', function(context) {\n\n    var shape = context.shape,\n        targetFlow = context.targetFlow,\n        positionOrBounds = context.position;\n\n    if (targetFlow) {\n      insertShape(shape, targetFlow, positionOrBounds);\n    }\n  }, true);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DropOnFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDropOnFlowBehavior.$inject = [\n  'eventBus',\n  'bpmnRules',\n  'modeling'\n];\n\n\n// helpers /////////////////////\n\nfunction isPointInsideBBox(bbox, point) {\n  var x = point.x,\n      y = point.y;\n\n  return x >= bbox.x &&\n    x <= bbox.x + bbox.width &&\n    y >= bbox.y &&\n    y <= bbox.y + bbox.height;\n}\n\nfunction copy(obj) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, obj);\n}\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js ***!
    \******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ EventBasedGatewayBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nfunction EventBasedGatewayBehavior(eventBus, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  /**\n   * Remove existing sequence flows of event-based target before connecting\n   * from event-based gateway.\n   */\n  this.preExecuted('connection.create', function(event) {\n\n    var context = event.context,\n        source = context.source,\n        target = context.target,\n        existingIncomingConnections = target.incoming.slice();\n\n    if (context.hints && context.hints.createElementsBehavior === false) {\n      return;\n    }\n\n    if (\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(source, 'bpmn:EventBasedGateway') &&\n      target.incoming.length\n    ) {\n\n      existingIncomingConnections.filter(isSequenceFlow)\n        .forEach(function(sequenceFlow) {\n          modeling.removeConnection(sequenceFlow);\n        });\n    }\n  });\n\n  /**\n   *  After replacing shape with event-based gateway, remove incoming sequence\n   *  flows of event-based targets which do not belong to event-based gateway\n   *  source.\n   */\n  this.preExecuted('shape.replace', function(event) {\n\n    var newShape = event.context.newShape,\n        newShapeTargets,\n        newShapeTargetsIncomingSequenceFlows;\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(newShape, 'bpmn:EventBasedGateway')) {\n      return;\n    }\n\n    newShapeTargets = newShape.outgoing.filter(isSequenceFlow)\n      .map(function(sequenceFlow) {\n        return sequenceFlow.target;\n      });\n\n    newShapeTargetsIncomingSequenceFlows = newShapeTargets.reduce(function(sequenceFlows, target) {\n      var incomingSequenceFlows = target.incoming.filter(isSequenceFlow);\n\n      return sequenceFlows.concat(incomingSequenceFlows);\n    }, []);\n\n    newShapeTargetsIncomingSequenceFlows.forEach(function(sequenceFlow) {\n      if (sequenceFlow.source !== newShape) {\n        modeling.removeConnection(sequenceFlow);\n      }\n    });\n  });\n}\n\nEventBasedGatewayBehavior.$inject = [\n  'eventBus',\n  'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(EventBasedGatewayBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n\n// helpers //////////////////////\n\nfunction isSequenceFlow(connection) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ FixHoverBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 1500;\r\nvar HIGHEST_PRIORITY = 2000;\r\n\r\n\r\n/**\r\n * Correct hover targets in certain situations to improve diagram interaction.\r\n *\r\n * @param {ElementRegistry} elementRegistry\r\n * @param {EventBus} eventBus\r\n * @param {Canvas} canvas\r\n */\r\nfunction FixHoverBehavior(elementRegistry, eventBus, canvas) {\r\n\r\n  eventBus.on([\r\n    'create.hover',\r\n    'create.move',\r\n    'create.out',\r\n    'create.end',\r\n    'shape.move.hover',\r\n    'shape.move.move',\r\n    'shape.move.out',\r\n    'shape.move.end'\r\n  ], HIGH_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        shape = context.shape || event.shape,\r\n        hover = event.hover;\r\n\r\n    // ensure elements are not dropped onto a bpmn:Lane but onto\r\n    // the underlying bpmn:Participant\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane') && !(0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_1__.isAny)(shape, [ 'bpmn:Lane', 'bpmn:Participant' ])) {\r\n      event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover);\r\n      event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n    }\r\n\r\n    var rootElement = canvas.getRootElement();\r\n\r\n    // ensure bpmn:Group and label elements are dropped\r\n    // always onto the root\r\n    if (hover !== rootElement && (shape.labelTarget || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Group'))) {\r\n      event.hover = rootElement;\r\n      event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n    }\r\n  });\r\n\r\n  eventBus.on([\r\n    'connect.hover',\r\n    'connect.out',\r\n    'connect.end',\r\n    'connect.cleanup',\r\n    'global-connect.hover',\r\n    'global-connect.out',\r\n    'global-connect.end',\r\n    'global-connect.cleanup'\r\n  ], HIGH_PRIORITY, function(event) {\r\n    var hover = event.hover;\r\n\r\n    // ensure connections start/end on bpmn:Participant,\r\n    // not the underlying bpmn:Lane\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane')) {\r\n      event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover) || hover;\r\n      event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n    }\r\n  });\r\n\r\n\r\n  eventBus.on([\r\n    'bendpoint.move.hover'\r\n  ], HIGH_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        hover = event.hover,\r\n        type = context.type;\r\n\r\n    // ensure reconnect start/end on bpmn:Participant,\r\n    // not the underlying bpmn:Lane\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(hover, 'bpmn:Lane') && /reconnect/.test(type)) {\r\n      event.hover = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(hover) || hover;\r\n      event.hoverGfx = elementRegistry.getGraphics(event.hover);\r\n    }\r\n  });\r\n\r\n\r\n  eventBus.on([\r\n    'connect.start'\r\n  ], HIGH_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        start = context.start;\r\n\r\n    // ensure connect start on bpmn:Participant,\r\n    // not the underlying bpmn:Lane\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(start, 'bpmn:Lane')) {\r\n      context.start = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(start) || start;\r\n    }\r\n  });\r\n\r\n\r\n  // allow movement of participants from lanes\r\n  eventBus.on('shape.move.start', HIGHEST_PRIORITY, function(event) {\r\n    var shape = event.shape;\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane')) {\r\n      event.shape = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_2__.getLanesRoot)(shape) || shape;\r\n    }\r\n  });\r\n\r\n}\r\n\r\nFixHoverBehavior.$inject = [\r\n  'elementRegistry',\r\n  'eventBus',\r\n  'canvas'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ GroupBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/CategoryUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js\");\n\n\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * BPMN specific Group behavior\n */\nfunction GroupBehavior(\n    bpmnFactory,\n    canvas,\n    elementRegistry,\n    eventBus,\n    injector,\n    moddleCopy\n) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  /**\n   * Gets process definitions\n   *\n   * @return {ModdleElement} definitions\n   */\n  function getDefinitions() {\n    var rootElement = canvas.getRootElement(),\n        businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(rootElement);\n\n    return businessObject.$parent;\n  }\n\n  /**\n   * Removes a referenced category value for a given group shape\n   *\n   * @param {djs.model.Shape} shape\n   */\n  function removeReferencedCategoryValue(shape) {\n\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n        categoryValue = businessObject.categoryValueRef;\n\n    if (!categoryValue) {\n      return;\n    }\n\n    var category = categoryValue.$parent;\n\n    if (!categoryValue) {\n      return;\n    }\n\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(category.categoryValue, categoryValue);\n\n    // cleanup category if it is empty\n    if (category && !category.categoryValue.length) {\n      removeCategory(category);\n    }\n  }\n\n  /**\n   * Removes a given category from the definitions\n   *\n   * @param {ModdleElement} category\n   */\n  function removeCategory(category) {\n\n    var definitions = getDefinitions();\n\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(definitions.get('rootElements'), category);\n  }\n\n  /**\n   * Returns all group element in the current registry\n   *\n   * @return {Array<djs.model.shape>} a list of group shapes\n   */\n  function getGroupElements() {\n    return elementRegistry.filter(function(e) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(e, 'bpmn:Group');\n    });\n  }\n\n  /**\n   * Returns true if given categoryValue is referenced in one of the given elements\n   *\n   * @param {Array<djs.model.shape>} elements\n   * @param {ModdleElement} categoryValue\n   * @return {boolean}\n   */\n  function isReferenced(elements, categoryValue) {\n    return elements.some(function(e) {\n\n      var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(e);\n\n      return businessObject.categoryValueRef\n        && businessObject.categoryValueRef === categoryValue;\n    });\n  }\n\n  /**\n   * remove referenced category + value when group was deleted\n   */\n  this.executed('shape.delete', function(event) {\n\n    var context = event.context,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n\n      var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n          categoryValueRef = businessObject.categoryValueRef,\n          groupElements = getGroupElements();\n\n      if (!isReferenced(groupElements, categoryValueRef)) {\n        removeReferencedCategoryValue(shape);\n      }\n    }\n  });\n\n  /**\n   * re-attach removed category\n   */\n  this.reverted('shape.delete', function(event) {\n\n    var context = event.context,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n\n      var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape),\n          categoryValueRef = businessObject.categoryValueRef,\n          definitions = getDefinitions(),\n          category = categoryValueRef ? categoryValueRef.$parent : null;\n\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(category.get('categoryValue'), categoryValueRef);\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(definitions.get('rootElements'), category);\n    }\n  });\n\n  /**\n   * create new category + value when group was created\n   */\n  this.execute('shape.create', function(event) {\n    var context = event.context,\n        shape = context.shape,\n        businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape);\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(businessObject, 'bpmn:Group') && !businessObject.categoryValueRef) {\n\n      var definitions = getDefinitions(),\n          categoryValue = (0,_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__.createCategoryValue)(definitions, bpmnFactory);\n\n      // link the reference to the Group\n      businessObject.categoryValueRef = categoryValue;\n    }\n  });\n\n\n  this.revert('shape.create', function(event) {\n\n    var context = event.context,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Group')) {\n      removeReferencedCategoryValue(shape);\n\n      delete (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(shape).categoryValueRef;\n\n    }\n  });\n\n  // copy bpmn:CategoryValue when copying element\n  eventBus.on('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) {\n    var property = context.property,\n        categoryValue;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(property, 'bpmn:CategoryValue')) {\n      categoryValue = (0,_util_CategoryUtil__WEBPACK_IMPORTED_MODULE_4__.createCategoryValue)(getDefinitions(), bpmnFactory);\n\n      // return copy of category\n      return moddleCopy.copyElement(property, categoryValue);\n    }\n  });\n\n}\n\nGroupBehavior.$inject = [\n  'bpmnFactory',\n  'canvas',\n  'elementRegistry',\n  'eventBus',\n  'injector',\n  'moddleCopy'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(GroupBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ImportDockingFix)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/LineIntersect */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js\");\n\n\n\n\n\n/**\n * Fix broken dockings after DI imports.\n *\n * @param {EventBus} eventBus\n */\nfunction ImportDockingFix(eventBus) {\n\n  function adjustDocking(startPoint, nextPoint, elementMid) {\n\n    var elementTop = {\n      x: elementMid.x,\n      y: elementMid.y - 50\n    };\n\n    var elementLeft = {\n      x: elementMid.x - 50,\n      y: elementMid.y\n    };\n\n    var verticalIntersect = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__.default)(startPoint, nextPoint, elementMid, elementTop),\n        horizontalIntersect = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_0__.default)(startPoint, nextPoint, elementMid, elementLeft);\n\n    // original is horizontal or vertical center cross intersection\n    var centerIntersect;\n\n    if (verticalIntersect && horizontalIntersect) {\n      if (getDistance(verticalIntersect, elementMid) > getDistance(horizontalIntersect, elementMid)) {\n        centerIntersect = horizontalIntersect;\n      } else {\n        centerIntersect = verticalIntersect;\n      }\n    } else {\n      centerIntersect = verticalIntersect || horizontalIntersect;\n    }\n\n    startPoint.original = centerIntersect;\n  }\n\n  function fixDockings(connection) {\n    var waypoints = connection.waypoints;\n\n    adjustDocking(\n      waypoints[0],\n      waypoints[1],\n      (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(connection.source)\n    );\n\n    adjustDocking(\n      waypoints[waypoints.length - 1],\n      waypoints[waypoints.length - 2],\n      (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(connection.target)\n    );\n  }\n\n  eventBus.on('bpmnElement.added', function(e) {\n\n    var element = e.element;\n\n    if (element.waypoints) {\n      fixDockings(element);\n    }\n  });\n}\n\nImportDockingFix.$inject = [\n  'eventBus'\n];\n\n\n// helpers //////////////////////\n\nfunction getDistance(p1, p2) {\n  return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ IsHorizontalFix)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n\n\n\n\n\n\n\n\n/**\n * A component that makes sure that each created or updated\n * Pool and Lane is assigned an isHorizontal property set to true.\n *\n * @param {EventBus} eventBus\n */\nfunction IsHorizontalFix(eventBus) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var elementTypesToUpdate = [\n    'bpmn:Participant',\n    'bpmn:Lane'\n  ];\n\n  this.executed([ 'shape.move', 'shape.create', 'shape.resize' ], function(event) {\n    var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(event.context.shape);\n\n    if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(bo, elementTypesToUpdate) && !bo.di.get('isHorizontal')) {\n\n      // set attribute directly to avoid modeling#updateProperty side effects\n      bo.di.set('isHorizontal', true);\n    }\n  });\n\n}\n\nIsHorizontalFix.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(IsHorizontalFix, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LabelBehavior),\n/* harmony export */   \"getReferencePointDelta\": () => (/* binding */ getReferencePointDelta),\n/* harmony export */   \"getReferencePoint\": () => (/* binding */ getReferencePoint),\n/* harmony export */   \"asEdges\": () => (/* binding */ asEdges)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _util_LabelLayoutUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/LabelLayoutUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_AttachUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_PositionUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var _util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./util/GeometricUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DEFAULT_LABEL_DIMENSIONS = {\n  width: 90,\n  height: 20\n};\n\nvar NAME_PROPERTY = 'name';\nvar TEXT_PROPERTY = 'text';\n\n/**\n * A component that makes sure that external labels are added\n * together with respective elements and properly updated (DI wise)\n * during move.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {BpmnFactory} bpmnFactory\n * @param {TextRenderer} textRenderer\n */\nfunction LabelBehavior(\n    eventBus, modeling, bpmnFactory,\n    textRenderer) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  // update label if name property was updated\n  this.postExecute('element.updateProperties', function(e) {\n    var context = e.context,\n        element = context.element,\n        properties = context.properties;\n\n    if (NAME_PROPERTY in properties) {\n      modeling.updateLabel(element, properties[NAME_PROPERTY]);\n    }\n\n    if (TEXT_PROPERTY in properties\n        && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element, 'bpmn:TextAnnotation')) {\n\n      var newBounds = textRenderer.getTextAnnotationBounds(\n        {\n          x: element.x,\n          y: element.y,\n          width: element.width,\n          height: element.height\n        },\n        properties[TEXT_PROPERTY] || ''\n      );\n\n      modeling.updateLabel(element, properties.text, newBounds);\n    }\n  });\n\n  // create label shape after shape/connection was created\n  this.postExecute([ 'shape.create', 'connection.create' ], function(e) {\n    var context = e.context,\n        hints = context.hints || {};\n\n    if (hints.createElementsBehavior === false) {\n      return;\n    }\n\n    var element = context.shape || context.connection,\n        businessObject = element.businessObject;\n\n    if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabel)(element) || !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(element)) {\n      return;\n    }\n\n    // only create label if attribute available\n    if (!(0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.getLabel)(element)) {\n      return;\n    }\n\n    var labelCenter = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.getExternalLabelMid)(element);\n\n    // we don't care about x and y\n    var labelDimensions = textRenderer.getExternalLabelBounds(\n      DEFAULT_LABEL_DIMENSIONS,\n      (0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.getLabel)(element)\n    );\n\n    modeling.createLabel(element, labelCenter, {\n      id: businessObject.id + '_label',\n      businessObject: businessObject,\n      width: labelDimensions.width,\n      height: labelDimensions.height\n    });\n  });\n\n  // update label after label shape was deleted\n  this.postExecute('shape.delete', function(event) {\n    var context = event.context,\n        labelTarget = context.labelTarget,\n        hints = context.hints || {};\n\n    // check if label\n    if (labelTarget && hints.unsetLabel !== false) {\n      modeling.updateLabel(labelTarget, null, null, { removeShape: false });\n    }\n  });\n\n  // update di information on label creation\n  this.postExecute([ 'label.create' ], function(event) {\n\n    var context = event.context,\n        element = context.shape,\n        businessObject,\n        di;\n\n    // we want to trigger on real labels only\n    if (!element.labelTarget) {\n      return;\n    }\n\n    // we want to trigger on BPMN elements only\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(element.labelTarget || element, 'bpmn:BaseElement')) {\n      return;\n    }\n\n    businessObject = element.businessObject,\n    di = businessObject.di;\n\n\n    if (!di.label) {\n      di.label = bpmnFactory.create('bpmndi:BPMNLabel', {\n        bounds: bpmnFactory.create('dc:Bounds')\n      });\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)(di.label.bounds, {\n      x: element.x,\n      y: element.y,\n      width: element.width,\n      height: element.height\n    });\n  });\n\n  function getVisibleLabelAdjustment(event) {\n\n    var context = event.context,\n        connection = context.connection,\n        label = connection.label,\n        hints = (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.assign)({}, context.hints),\n        newWaypoints = context.newWaypoints || connection.waypoints,\n        oldWaypoints = context.oldWaypoints;\n\n\n    if (typeof hints.startChanged === 'undefined') {\n      hints.startChanged = !!hints.connectionStart;\n    }\n\n    if (typeof hints.endChanged === 'undefined') {\n      hints.endChanged = !!hints.connectionEnd;\n    }\n\n    return (0,_util_LabelLayoutUtil__WEBPACK_IMPORTED_MODULE_6__.getLabelAdjustment)(label, newWaypoints, oldWaypoints, hints);\n  }\n\n  this.postExecute([\n    'connection.layout',\n    'connection.updateWaypoints'\n  ], function(event) {\n    var context = event.context,\n        hints = context.hints || {};\n\n    if (hints.labelBehavior === false) {\n      return;\n    }\n\n    var connection = context.connection,\n        label = connection.label,\n        labelAdjustment;\n\n    // handle missing label as well as the case\n    // that the label parent does not exist (yet),\n    // because it is being pasted / created via multi element create\n    //\n    // Cf. https://github.com/bpmn-io/bpmn-js/pull/1227\n    if (!label || !label.parent) {\n      return;\n    }\n\n    labelAdjustment = getVisibleLabelAdjustment(event);\n\n    modeling.moveShape(label, labelAdjustment);\n  });\n\n\n  // keep label position on shape replace\n  this.postExecute([ 'shape.replace' ], function(event) {\n    var context = event.context,\n        newShape = context.newShape,\n        oldShape = context.oldShape;\n\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(newShape);\n\n    if (businessObject\n      && (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.isLabelExternal)(businessObject)\n      && oldShape.label\n      && newShape.label) {\n      newShape.label.x = oldShape.label.x;\n      newShape.label.y = oldShape.label.y;\n    }\n  });\n\n\n  // move external label after resizing\n  this.postExecute('shape.resize', function(event) {\n\n    var context = event.context,\n        shape = context.shape,\n        newBounds = context.newBounds,\n        oldBounds = context.oldBounds;\n\n    if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_3__.hasExternalLabel)(shape)) {\n\n      var label = shape.label,\n          labelMid = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__.getMid)(label),\n          edges = asEdges(oldBounds);\n\n      // get nearest border point to label as reference point\n      var referencePoint = getReferencePoint(labelMid, edges);\n\n      var delta = getReferencePointDelta(referencePoint, oldBounds, newBounds);\n\n      modeling.moveShape(label, delta);\n\n    }\n\n  });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LabelBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nLabelBehavior.$inject = [\n  'eventBus',\n  'modeling',\n  'bpmnFactory',\n  'textRenderer'\n];\n\n// helpers //////////////////////\n\n/**\n * Calculates a reference point delta relative to a new position\n * of a certain element's bounds\n *\n * @param {Point} point\n * @param {Bounds} oldBounds\n * @param {Bounds} newBounds\n *\n * @return {Delta} delta\n */\nfunction getReferencePointDelta(referencePoint, oldBounds, newBounds) {\n\n  var newReferencePoint = (0,diagram_js_lib_util_AttachUtil__WEBPACK_IMPORTED_MODULE_8__.getNewAttachPoint)(referencePoint, oldBounds, newBounds);\n\n  return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_7__.roundPoint)((0,diagram_js_lib_util_PositionUtil__WEBPACK_IMPORTED_MODULE_9__.delta)(newReferencePoint, referencePoint));\n}\n\n/**\n * Generates the nearest point (reference point) for a given point\n * onto given set of lines\n *\n * @param {Array<Point, Point>} lines\n * @param {Point} point\n *\n * @param {Point}\n */\nfunction getReferencePoint(point, lines) {\n\n  if (!lines.length) {\n    return;\n  }\n\n  var nearestLine = getNearestLine(point, lines);\n\n  return (0,_util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__.perpendicularFoot)(point, nearestLine);\n}\n\n/**\n * Convert the given bounds to a lines array containing all edges\n *\n * @param {Bounds|Point} bounds\n *\n * @return Array<Point>\n */\nfunction asEdges(bounds) {\n  return [\n    [ // top\n      {\n        x: bounds.x,\n        y: bounds.y\n      },\n      {\n        x: bounds.x + (bounds.width || 0),\n        y: bounds.y\n      }\n    ],\n    [ // right\n      {\n        x: bounds.x + (bounds.width || 0),\n        y: bounds.y\n      },\n      {\n        x: bounds.x + (bounds.width || 0),\n        y: bounds.y + (bounds.height || 0)\n      }\n    ],\n    [ // bottom\n      {\n        x: bounds.x,\n        y: bounds.y + (bounds.height || 0)\n      },\n      {\n        x: bounds.x + (bounds.width || 0),\n        y: bounds.y + (bounds.height || 0)\n      }\n    ],\n    [ // left\n      {\n        x: bounds.x,\n        y: bounds.y\n      },\n      {\n        x: bounds.x,\n        y: bounds.y + (bounds.height || 0)\n      }\n    ]\n  ];\n}\n\n/**\n * Returns the nearest line for a given point by distance\n * @param {Point} point\n * @param Array<Point> lines\n *\n * @return Array<Point>\n */\nfunction getNearestLine(point, lines) {\n\n  var distances = lines.map(function(l) {\n    return {\n      line: l,\n      distance: (0,_util_GeometricUtil__WEBPACK_IMPORTED_MODULE_10__.getDistancePointLine)(point, l)\n    };\n  });\n\n  var sorted = (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.sortBy)(distances, 'distance');\n\n  return sorted[0].line;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MessageFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * BPMN-specific message flow behavior.\r\n */\r\nfunction MessageFlowBehavior(eventBus, modeling) {\r\n\r\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n  this.postExecute('shape.replace', function(context) {\r\n    var oldShape = context.oldShape,\r\n        newShape = context.newShape;\r\n\r\n    if (!isParticipantCollapse(oldShape, newShape)) {\r\n      return;\r\n    }\r\n\r\n    var messageFlows = getMessageFlows(oldShape);\r\n\r\n    messageFlows.incoming.forEach(function(incoming) {\r\n      var anchor = (0,diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedTargetAnchor)(incoming, newShape, oldShape);\r\n\r\n      modeling.reconnectEnd(incoming, newShape, anchor);\r\n    });\r\n\r\n    messageFlows.outgoing.forEach(function(outgoing) {\r\n      var anchor = (0,diagram_js_lib_features_modeling_cmd_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedSourceAnchor)(outgoing, newShape, oldShape);\r\n\r\n      modeling.reconnectStart(outgoing, newShape, anchor);\r\n    });\r\n  }, true);\r\n\r\n}\r\n\r\nMessageFlowBehavior.$inject = [ 'eventBus', 'modeling' ];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(MessageFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n// helpers //////////\r\n\r\nfunction isParticipantCollapse(oldShape, newShape) {\r\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldShape, 'bpmn:Participant')\r\n    && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(oldShape)\r\n    && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newShape, 'bpmn:Participant')\r\n    && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(newShape);\r\n}\r\n\r\nfunction getMessageFlows(parent) {\r\n  var elements = (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_5__.selfAndAllChildren)([ parent ], false);\r\n\r\n  var incoming = [],\r\n      outgoing = [];\r\n\r\n  elements.forEach(function(element) {\r\n    if (element === parent) {\r\n      return;\r\n    }\r\n\r\n    element.incoming.forEach(function(connection) {\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:MessageFlow')) {\r\n        incoming.push(connection);\r\n      }\r\n    });\r\n\r\n    element.outgoing.forEach(function(connection) {\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(connection, 'bpmn:MessageFlow')) {\r\n        outgoing.push(connection);\r\n      }\r\n    });\r\n  }, []);\r\n\r\n  return {\r\n    incoming: incoming,\r\n    outgoing: outgoing\r\n  };\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ModelingFeedback)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\nvar COLLAB_ERR_MSG = 'flow elements must be children of pools/participants';\n\nfunction ModelingFeedback(eventBus, tooltips, translate) {\n\n  function showError(position, message, timeout) {\n    tooltips.add({\n      position: {\n        x: position.x + 5,\n        y: position.y + 5\n      },\n      type: 'error',\n      timeout: timeout || 2000,\n      html: '<div>' + message + '</div>'\n    });\n  }\n\n  eventBus.on([ 'shape.move.rejected', 'create.rejected' ], function(event) {\n    var context = event.context,\n        shape = context.shape,\n        target = context.target;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(target, 'bpmn:Collaboration') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:FlowNode')) {\n      showError(event, translate(COLLAB_ERR_MSG));\n    }\n  });\n\n}\n\nModelingFeedback.$inject = [\n  'eventBus',\n  'tooltips',\n  'translate'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RemoveElementBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_LineIntersect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/LineIntersect */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js\");\n\n\n\n\n\n\n\n\n\nfunction RemoveElementBehavior(eventBus, bpmnRules, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  /**\n   * Combine sequence flows when deleting an element\n   * if there is one incoming and one outgoing\n   * sequence flow\n   */\n  this.preExecute('shape.delete', function(e) {\n\n    var shape = e.context.shape;\n\n    // only handle [a] -> [shape] -> [b] patterns\n    if (shape.incoming.length !== 1 || shape.outgoing.length !== 1) {\n      return;\n    }\n\n    var inConnection = shape.incoming[0],\n        outConnection = shape.outgoing[0];\n\n    // only handle sequence flows\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(inConnection, 'bpmn:SequenceFlow') || !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(outConnection, 'bpmn:SequenceFlow')) {\n      return;\n    }\n\n    if (bpmnRules.canConnect(inConnection.source, outConnection.target, inConnection)) {\n\n      // compute new, combined waypoints\n      var newWaypoints = getNewWaypoints(inConnection.waypoints, outConnection.waypoints);\n\n      modeling.reconnectEnd(inConnection, outConnection.target, newWaypoints);\n    }\n  });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RemoveElementBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nRemoveElementBehavior.$inject = [\n  'eventBus',\n  'bpmnRules',\n  'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction getDocking(point) {\n  return point.original || point;\n}\n\n\nfunction getNewWaypoints(inWaypoints, outWaypoints) {\n\n  var intersection = (0,_util_LineIntersect__WEBPACK_IMPORTED_MODULE_3__.default)(\n    getDocking(inWaypoints[inWaypoints.length - 2]),\n    getDocking(inWaypoints[inWaypoints.length - 1]),\n    getDocking(outWaypoints[1]),\n    getDocking(outWaypoints[0]));\n\n  if (intersection) {\n    return [].concat(\n      inWaypoints.slice(0, inWaypoints.length - 1),\n      [ intersection ],\n      outWaypoints.slice(1));\n  } else {\n    return [\n      getDocking(inWaypoints[0]),\n      getDocking(outWaypoints[outWaypoints.length - 1])\n    ];\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js ***!
    \******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RemoveParticipantBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * BPMN specific remove behavior\n */\nfunction RemoveParticipantBehavior(eventBus, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  /**\n   * morph collaboration diagram into process diagram\n   * after the last participant has been removed\n   */\n\n  this.preExecute('shape.delete', function(context) {\n\n    var shape = context.shape,\n        parent = shape.parent;\n\n    // activate the behavior if the shape to be removed\n    // is a participant\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Participant')) {\n      context.collaborationRoot = parent;\n    }\n  }, true);\n\n  this.postExecute('shape.delete', function(context) {\n\n    var collaborationRoot = context.collaborationRoot;\n\n    if (collaborationRoot && !collaborationRoot.businessObject.participants.length) {\n\n      // replace empty collaboration with process diagram\n      modeling.makeProcess();\n    }\n  }, true);\n\n}\n\nRemoveParticipantBehavior.$inject = [ 'eventBus', 'modeling' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RemoveParticipantBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js ***!
    \******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ReplaceConnectionBehavior)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n\n\nfunction ReplaceConnectionBehavior(eventBus, modeling, bpmnRules, injector) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var dragging = injector.get('dragging', false);\n\n  function fixConnection(connection) {\n\n    var source = connection.source,\n        target = connection.target,\n        parent = connection.parent;\n\n    // do not do anything if connection\n    // is already deleted (may happen due to other\n    // behaviors plugged-in before)\n    if (!parent) {\n      return;\n    }\n\n    var replacementType,\n        remove;\n\n    /**\n     * Check if incoming or outgoing connections\n     * can stay or could be substituted with an\n     * appropriate replacement.\n     *\n     * This holds true for SequenceFlow <> MessageFlow.\n     */\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow')) {\n      if (!bpmnRules.canConnectSequenceFlow(source, target)) {\n        remove = true;\n      }\n\n      if (bpmnRules.canConnectMessageFlow(source, target)) {\n        replacementType = 'bpmn:MessageFlow';\n      }\n    }\n\n    // transform message flows into sequence flows, if possible\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:MessageFlow')) {\n\n      if (!bpmnRules.canConnectMessageFlow(source, target)) {\n        remove = true;\n      }\n\n      if (bpmnRules.canConnectSequenceFlow(source, target)) {\n        replacementType = 'bpmn:SequenceFlow';\n      }\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:Association') && !bpmnRules.canConnectAssociation(source, target)) {\n      remove = true;\n    }\n\n\n    // remove invalid connection,\n    // unless it has been removed already\n    if (remove) {\n      modeling.removeConnection(connection);\n    }\n\n    // replace SequenceFlow <> MessageFlow\n\n    if (replacementType) {\n      modeling.connect(source, target, {\n        type: replacementType,\n        waypoints: connection.waypoints.slice()\n      });\n    }\n  }\n\n  function replaceReconnectedConnection(event) {\n\n    var context = event.context,\n        connection = context.connection,\n        source = context.newSource || connection.source,\n        target = context.newTarget || connection.target,\n        allowed,\n        replacement;\n\n    allowed = bpmnRules.canConnect(source, target);\n\n    if (!allowed || allowed.type === connection.type) {\n      return;\n    }\n\n    replacement = modeling.connect(source, target, {\n      type: allowed.type,\n      waypoints: connection.waypoints.slice()\n    });\n\n    // remove old connection\n    modeling.removeConnection(connection);\n\n    // replace connection in context to reconnect end/start\n    context.connection = replacement;\n\n    if (dragging) {\n      cleanDraggingSelection(connection, replacement);\n    }\n  }\n\n  // monkey-patch selection saved in dragging in order to re-select it when operation is finished\n  function cleanDraggingSelection(oldConnection, newConnection) {\n    var context = dragging.context(),\n        previousSelection = context && context.payload.previousSelection,\n        index;\n\n    // do nothing if not dragging or no selection was present\n    if (!previousSelection || !previousSelection.length) {\n      return;\n    }\n\n    index = previousSelection.indexOf(oldConnection);\n\n    if (index === -1) {\n      return;\n    }\n\n    previousSelection.splice(index, 1, newConnection);\n  }\n\n  // lifecycle hooks\n\n  this.postExecuted('elements.move', function(context) {\n\n    var closure = context.closure,\n        allConnections = closure.allConnections;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(allConnections, fixConnection);\n  }, true);\n\n  this.preExecute('connection.reconnect', replaceReconnectedConnection);\n\n  this.postExecuted('element.updateProperties', function(event) {\n    var context = event.context,\n        properties = context.properties,\n        element = context.element,\n        businessObject = element.businessObject,\n        connection;\n\n    // remove condition on change to default\n    if (properties.default) {\n      connection = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.find)(\n        element.outgoing,\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.matchPattern)({ id: element.businessObject.default.id })\n      );\n\n      if (connection) {\n        modeling.updateProperties(connection, { conditionExpression: undefined });\n      }\n    }\n\n    // remove default from source on change to conditional\n    if (properties.conditionExpression && businessObject.sourceRef.default === businessObject) {\n      modeling.updateProperties(element.source, { default: undefined });\n    }\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ReplaceConnectionBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nReplaceConnectionBehavior.$inject = [\n  'eventBus',\n  'modeling',\n  'bpmnRules',\n  'injector'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js ***!
    \****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ReplaceElementBehaviour)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n\n\n\n\n/**\n * BPMN-specific replace behavior.\n */\nfunction ReplaceElementBehaviour(\n    bpmnReplace,\n    bpmnRules,\n    elementRegistry,\n    injector,\n    modeling,\n    selection\n) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this._bpmnReplace = bpmnReplace;\n  this._elementRegistry = elementRegistry;\n  this._selection = selection;\n\n  // replace elements on create, e.g. during copy-paste\n  this.postExecuted([ 'elements.create' ], 500, function(event) {\n    var context = event.context,\n        target = context.parent,\n        elements = context.elements;\n\n    var canReplace = bpmnRules.canReplace(elements, target);\n\n    if (canReplace) {\n      this.replaceElements(elements, canReplace.replacements);\n    }\n  }, this);\n\n  // replace elements on move\n  this.postExecuted([ 'elements.move' ], 500, function(event) {\n    var context = event.context,\n        target = context.newParent,\n        newHost = context.newHost,\n        elements = [];\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(context.closure.topLevel, function(topLevelElements) {\n      if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isEventSubProcess)(topLevelElements)) {\n        elements = elements.concat(topLevelElements.children);\n      } else {\n        elements = elements.concat(topLevelElements);\n      }\n    });\n\n    // set target to host if attaching\n    if (elements.length === 1 && newHost) {\n      target = newHost;\n    }\n\n    var canReplace = bpmnRules.canReplace(elements, target);\n\n    if (canReplace) {\n      this.replaceElements(elements, canReplace.replacements, newHost);\n    }\n  }, this);\n\n  // update attachments on host replace\n  this.postExecute([ 'shape.replace' ], 1500, function(e) {\n    var context = e.context,\n        oldShape = context.oldShape,\n        newShape = context.newShape,\n        attachers = oldShape.attachers,\n        canReplace;\n\n    if (attachers && attachers.length) {\n      canReplace = bpmnRules.canReplace(attachers, newShape);\n\n      this.replaceElements(attachers, canReplace.replacements);\n    }\n\n  }, this);\n\n  // keep ID on shape replace\n  this.postExecuted([ 'shape.replace' ], 1500, function(e) {\n    var context = e.context,\n        oldShape = context.oldShape,\n        newShape = context.newShape;\n\n    modeling.unclaimId(oldShape.businessObject.id, oldShape.businessObject);\n    modeling.updateProperties(newShape, { id: oldShape.id });\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ReplaceElementBehaviour, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nReplaceElementBehaviour.prototype.replaceElements = function(elements, newElements) {\n  var elementRegistry = this._elementRegistry,\n      bpmnReplace = this._bpmnReplace,\n      selection = this._selection;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newElements, function(replacement) {\n    var newElement = {\n      type: replacement.newElementType\n    };\n\n    var oldElement = elementRegistry.get(replacement.oldElementId);\n\n    var idx = elements.indexOf(oldElement);\n\n    elements[idx] = bpmnReplace.replaceElement(oldElement, newElement, { select: false });\n  });\n\n  if (newElements) {\n    selection.select(elements);\n  }\n};\n\nReplaceElementBehaviour.$inject = [\n  'bpmnReplace',\n  'bpmnRules',\n  'elementRegistry',\n  'injector',\n  'modeling',\n  'selection'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"LANE_MIN_DIMENSIONS\": () => (/* binding */ LANE_MIN_DIMENSIONS),\n/* harmony export */   \"PARTICIPANT_MIN_DIMENSIONS\": () => (/* binding */ PARTICIPANT_MIN_DIMENSIONS),\n/* harmony export */   \"SUB_PROCESS_MIN_DIMENSIONS\": () => (/* binding */ SUB_PROCESS_MIN_DIMENSIONS),\n/* harmony export */   \"TEXT_ANNOTATION_MIN_DIMENSIONS\": () => (/* binding */ TEXT_ANNOTATION_MIN_DIMENSIONS),\n/* harmony export */   \"default\": () => (/* binding */ ResizeBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ResizeUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/ResizeUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGH_PRIORITY = 1500;\r\n\r\nvar LANE_MIN_DIMENSIONS = { width: 300, height: 60 };\r\n\r\nvar PARTICIPANT_MIN_DIMENSIONS = { width: 300, height: 150 };\r\n\r\nvar SUB_PROCESS_MIN_DIMENSIONS = { width: 140, height: 120 };\r\n\r\nvar TEXT_ANNOTATION_MIN_DIMENSIONS = { width: 50, height: 30 };\r\n\r\n\r\n/**\r\n * Set minimum bounds/resize constraints on resize.\r\n *\r\n * @param {EventBus} eventBus\r\n */\r\nfunction ResizeBehavior(eventBus) {\r\n  eventBus.on('resize.start', HIGH_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        direction = context.direction,\r\n        balanced = context.balanced;\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\r\n      context.resizeConstraints = (0,_util_ResizeUtil__WEBPACK_IMPORTED_MODULE_1__.getParticipantResizeConstraints)(shape, direction, balanced);\r\n    }\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\r\n      context.minDimensions = PARTICIPANT_MIN_DIMENSIONS;\r\n    }\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_2__.isExpanded)(shape)) {\r\n      context.minDimensions = SUB_PROCESS_MIN_DIMENSIONS;\r\n    }\r\n\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:TextAnnotation')) {\r\n      context.minDimensions = TEXT_ANNOTATION_MIN_DIMENSIONS;\r\n    }\r\n  });\r\n}\r\n\r\nResizeBehavior.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeLaneBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\n\n\n\n\nvar SLIGHTLY_HIGHER_PRIORITY = 1001;\n\n\n/**\n * Invoke {@link Modeling#resizeLane} instead of\n * {@link Modeling#resizeShape} when resizing a Lane\n * or Participant shape.\n */\nfunction ResizeLaneBehavior(eventBus, modeling) {\n\n  eventBus.on('resize.start', SLIGHTLY_HIGHER_PRIORITY + 500, function(event) {\n    var context = event.context,\n        shape = context.shape;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\n\n      // should we resize the opposite lane(s) in\n      // order to compensate for the resize operation?\n      context.balanced = !(0,diagram_js_lib_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasPrimaryModifier)(event);\n    }\n  });\n\n  /**\n   * Intercept resize end and call resize lane function instead.\n   */\n  eventBus.on('resize.end', SLIGHTLY_HIGHER_PRIORITY, function(event) {\n    var context = event.context,\n        shape = context.shape,\n        canExecute = context.canExecute,\n        newBounds = context.newBounds;\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(shape, 'bpmn:Participant')) {\n\n      if (canExecute) {\n\n        // ensure we have actual pixel values for new bounds\n        // (important when zoom level was > 1 during move)\n        newBounds = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.roundBounds)(newBounds);\n\n        // perform the actual resize\n        modeling.resizeLane(shape, newBounds, context.balanced);\n      }\n\n      // stop propagation\n      return false;\n    }\n  });\n}\n\nResizeLaneBehavior.$inject = [\n  'eventBus',\n  'modeling'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js ***!
    \*********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RootElementReferenceBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOW_PRIORITY = 500;\r\n\r\n\r\n/**\r\n * Add referenced root elements (error, escalation, message, signal) if they don't exist.\r\n * Copy referenced root elements on copy & paste.\r\n */\r\nfunction RootElementReferenceBehavior(\r\n    bpmnjs, eventBus, injector, moddleCopy, bpmnFactory\r\n) {\r\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\r\n\r\n  function canHaveRootElementReference(element) {\r\n    return (0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(element, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ]) ||\r\n      hasAnyEventDefinition(element, [\r\n        'bpmn:ErrorEventDefinition',\r\n        'bpmn:EscalationEventDefinition',\r\n        'bpmn:MessageEventDefinition',\r\n        'bpmn:SignalEventDefinition'\r\n      ]);\r\n  }\r\n\r\n  function hasRootElement(rootElement) {\r\n    var definitions = bpmnjs.getDefinitions(),\r\n        rootElements = definitions.get('rootElements');\r\n\r\n    return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.find)(rootElements, (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.matchPattern)({ id: rootElement.id }));\r\n  }\r\n\r\n  function getRootElementReferencePropertyName(eventDefinition) {\r\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:ErrorEventDefinition')) {\r\n      return 'errorRef';\r\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:EscalationEventDefinition')) {\r\n      return 'escalationRef';\r\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:MessageEventDefinition')) {\r\n      return 'messageRef';\r\n    } else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(eventDefinition, 'bpmn:SignalEventDefinition')) {\r\n      return 'signalRef';\r\n    }\r\n  }\r\n\r\n  function getRootElement(businessObject) {\r\n    if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ])) {\r\n      return businessObject.get('messageRef');\r\n    }\r\n\r\n    var eventDefinitions = businessObject.get('eventDefinitions'),\r\n        eventDefinition = eventDefinitions[ 0 ];\r\n\r\n    return eventDefinition.get(getRootElementReferencePropertyName(eventDefinition));\r\n  }\r\n\r\n  function setRootElement(businessObject, rootElement) {\r\n    if ((0,_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(businessObject, [ 'bpmn:ReceiveTask', 'bpmn:SendTask' ])) {\r\n      return businessObject.set('messageRef', rootElement);\r\n    }\r\n\r\n    var eventDefinitions = businessObject.get('eventDefinitions'),\r\n        eventDefinition = eventDefinitions[ 0 ];\r\n\r\n    return eventDefinition.set(getRootElementReferencePropertyName(eventDefinition), rootElement);\r\n  }\r\n\r\n  // create shape\r\n  this.executed('shape.create', function(context) {\r\n    var shape = context.shape;\r\n\r\n    if (!canHaveRootElementReference(shape)) {\r\n      return;\r\n    }\r\n\r\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(shape),\r\n        rootElement = getRootElement(businessObject),\r\n        rootElements;\r\n\r\n    if (rootElement && !hasRootElement(rootElement)) {\r\n      rootElements = bpmnjs.getDefinitions().get('rootElements');\r\n\r\n      // add root element\r\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__.add)(rootElements, rootElement);\r\n\r\n      context.addedRootElement = rootElement;\r\n    }\r\n  }, true);\r\n\r\n  this.reverted('shape.create', function(context) {\r\n    var addedRootElement = context.addedRootElement;\r\n\r\n    if (!addedRootElement) {\r\n      return;\r\n    }\r\n\r\n    var rootElements = bpmnjs.getDefinitions().get('rootElements');\r\n\r\n    // remove root element\r\n    (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_5__.remove)(rootElements, addedRootElement);\r\n  }, true);\r\n\r\n  eventBus.on('copyPaste.copyElement', function(context) {\r\n    var descriptor = context.descriptor,\r\n        element = context.element;\r\n\r\n    if (!canHaveRootElementReference(element)) {\r\n      return;\r\n    }\r\n\r\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.getBusinessObject)(element),\r\n        rootElement = getRootElement(businessObject);\r\n\r\n    if (rootElement) {\r\n      descriptor.referencedRootElement = rootElement;\r\n    }\r\n  });\r\n\r\n  eventBus.on('copyPaste.pasteElement', LOW_PRIORITY, function(context) {\r\n    var descriptor = context.descriptor,\r\n        businessObject = descriptor.businessObject;\r\n\r\n    if (!canHaveRootElementReference(businessObject)) {\r\n      return;\r\n    }\r\n\r\n    var referencedRootElement = descriptor.referencedRootElement;\r\n\r\n    if (!referencedRootElement) {\r\n      return;\r\n    }\r\n\r\n    if (!hasRootElement(referencedRootElement)) {\r\n      referencedRootElement = moddleCopy.copyElement(\r\n        referencedRootElement,\r\n        bpmnFactory.create(referencedRootElement.$type)\r\n      );\r\n    }\r\n\r\n    setRootElement(businessObject, referencedRootElement);\r\n  });\r\n}\r\n\r\nRootElementReferenceBehavior.$inject = [\r\n  'bpmnjs',\r\n  'eventBus',\r\n  'injector',\r\n  'moddleCopy',\r\n  'bpmnFactory'\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RootElementReferenceBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n// helpers //////////\r\n\r\nfunction hasAnyEventDefinition(element, types) {\r\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isArray)(types)) {\r\n    types = [ types ];\r\n  }\r\n\r\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.some)(types, function(type) {\r\n    return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasEventDefinition)(element, type);\r\n  });\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SpaceToolBehavior)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar max = Math.max;\r\n\r\n\r\nfunction SpaceToolBehavior(eventBus) {\r\n  eventBus.on('spaceTool.getMinDimensions', function(context) {\r\n    var shapes = context.shapes,\r\n        axis = context.axis,\r\n        start = context.start,\r\n        minDimensions = {};\r\n\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(shape) {\r\n      var id = shape.id;\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:Participant')) {\r\n\r\n        if (isHorizontal(axis)) {\r\n          minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS;\r\n        } else {\r\n          minDimensions[ id ] = {\r\n            width: _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.width,\r\n            height: getParticipantMinHeight(shape, start)\r\n          };\r\n        }\r\n\r\n      }\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(shape)) {\r\n        minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.SUB_PROCESS_MIN_DIMENSIONS;\r\n      }\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(shape, 'bpmn:TextAnnotation')) {\r\n        minDimensions[ id ] = _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.TEXT_ANNOTATION_MIN_DIMENSIONS;\r\n      }\r\n    });\r\n\r\n    return minDimensions;\r\n  });\r\n}\r\n\r\nSpaceToolBehavior.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////////\r\nfunction isHorizontal(axis) {\r\n  return axis === 'x';\r\n}\r\n\r\n/**\r\n * Get minimum height for participant taking lanes into account.\r\n *\r\n * @param {<djs.model.Shape>} participant\r\n * @param {number} start\r\n *\r\n * @returns {Object}\r\n */\r\nfunction getParticipantMinHeight(participant, start) {\r\n  var lanesMinHeight;\r\n\r\n  if (!hasChildLanes(participant)) {\r\n    return _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.height;\r\n  }\r\n\r\n  lanesMinHeight = getLanesMinHeight(participant, start);\r\n\r\n  return max(_ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT_MIN_DIMENSIONS.height, lanesMinHeight);\r\n}\r\n\r\nfunction hasChildLanes(element) {\r\n  return !!(0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(element).length;\r\n}\r\n\r\nfunction getLanesMinHeight(participant, resizeStart) {\r\n  var lanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(participant),\r\n      resizedLane;\r\n\r\n  // find the nested lane which is currently resized\r\n  resizedLane = findResizedLane(lanes, resizeStart);\r\n\r\n  // resized lane cannot shrink below the minimum height\r\n  // but remaining lanes' dimensions are kept intact\r\n  return participant.height - resizedLane.height + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height;\r\n}\r\n\r\n/**\r\n * Find nested lane which is currently resized.\r\n *\r\n * @param {Array<djs.model.Shape>} lanes\r\n * @param {number} resizeStart\r\n */\r\nfunction findResizedLane(lanes, resizeStart) {\r\n  var i, lane, childLanes;\r\n\r\n  for (i = 0; i < lanes.length; i++) {\r\n    lane = lanes[i];\r\n\r\n    // resizing current lane or a lane nested\r\n    if (resizeStart >= lane.y && resizeStart <= lane.y + lane.height) {\r\n      childLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_4__.getChildLanes)(lane);\r\n\r\n      // a nested lane is resized\r\n      if (childLanes.length) {\r\n        return findResizedLane(childLanes, resizeStart);\r\n      }\r\n\r\n      // current lane is the resized one\r\n      return lane;\r\n    }\r\n  }\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js":
  /*!*********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js ***!
    \*********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SubProcessStartEventBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/DiUtil.js */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n\n\n/**\n * Add start event replacing element with expanded sub process.\n *\n * @param {Injector} injector\n * @param {Modeling} modeling\n */\nfunction SubProcessStartEventBehavior(injector, modeling) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this.postExecuted('shape.replace', function(event) {\n    var oldShape = event.context.oldShape,\n        newShape = event.context.newShape;\n\n    if (\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(newShape, 'bpmn:SubProcess') ||\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(oldShape, 'bpmn:Task') ||\n      !(0,_util_DiUtil_js__WEBPACK_IMPORTED_MODULE_3__.isExpanded)(newShape)\n    ) {\n      return;\n    }\n\n    var position = getStartEventPosition(newShape);\n\n    modeling.createShape({ type: 'bpmn:StartEvent' }, position, newShape);\n  });\n}\n\nSubProcessStartEventBehavior.$inject = [\n  'injector',\n  'modeling'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(SubProcessStartEventBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n// helpers //////////\n\nfunction getStartEventPosition(shape) {\n  return {\n    x: shape.x + shape.width / 6,\n    y: shape.y + shape.height / 2\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js":
  /*!***********************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js ***!
    \***********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ToggleElementCollapseBehaviour)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 500;\n\n\nfunction ToggleElementCollapseBehaviour(\n    eventBus, elementFactory, modeling,\n    resize) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  function hideEmptyLabels(children) {\n    if (children.length) {\n      children.forEach(function(child) {\n        if (child.type === 'label' && !child.businessObject.name) {\n          child.hidden = true;\n        }\n      });\n    }\n  }\n\n  function expandedBounds(shape, defaultSize) {\n    var children = shape.children,\n        newBounds = defaultSize,\n        visibleElements,\n        visibleBBox;\n\n    visibleElements = filterVisible(children).concat([ shape ]);\n\n    visibleBBox = (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__.computeChildrenBBox)(visibleElements);\n\n    if (visibleBBox) {\n\n      // center to visibleBBox with max(defaultSize, childrenBounds)\n      newBounds.width = Math.max(visibleBBox.width, newBounds.width);\n      newBounds.height = Math.max(visibleBBox.height, newBounds.height);\n\n      newBounds.x = visibleBBox.x + (visibleBBox.width - newBounds.width) / 2;\n      newBounds.y = visibleBBox.y + (visibleBBox.height - newBounds.height) / 2;\n    } else {\n\n      // center to collapsed shape with defaultSize\n      newBounds.x = shape.x + (shape.width - newBounds.width) / 2;\n      newBounds.y = shape.y + (shape.height - newBounds.height) / 2;\n    }\n\n    return newBounds;\n  }\n\n  function collapsedBounds(shape, defaultSize) {\n\n    return {\n      x: shape.x + (shape.width - defaultSize.width) / 2,\n      y: shape.y + (shape.height - defaultSize.height) / 2,\n      width: defaultSize.width,\n      height: defaultSize.height\n    };\n  }\n\n  this.executed([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n\n    var context = e.context,\n        shape = context.shape;\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:SubProcess')) {\n      return;\n    }\n\n    if (!shape.collapsed) {\n\n      // all children got made visible through djs, hide empty labels\n      hideEmptyLabels(shape.children);\n\n      // remove collapsed marker\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = true;\n    } else {\n\n      // place collapsed marker\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = false;\n    }\n  });\n\n  this.reverted([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n\n    var context = e.context;\n    var shape = context.shape;\n\n\n    // revert removing/placing collapsed marker\n    if (!shape.collapsed) {\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = true;\n\n    } else {\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(shape).di.isExpanded = false;\n    }\n  });\n\n  this.postExecuted([ 'shape.toggleCollapse' ], LOW_PRIORITY, function(e) {\n    var shape = e.context.shape,\n        defaultSize = elementFactory._getDefaultSize(shape),\n        newBounds;\n\n    if (shape.collapsed) {\n\n      // resize to default size of collapsed shapes\n      newBounds = collapsedBounds(shape, defaultSize);\n    } else {\n\n      // resize to bounds of max(visible children, defaultSize)\n      newBounds = expandedBounds(shape, defaultSize);\n    }\n\n    modeling.resizeShape(shape, newBounds, null, {\n      autoResize: shape.collapsed ? false : 'nwse'\n    });\n  });\n\n}\n\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ToggleElementCollapseBehaviour, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nToggleElementCollapseBehaviour.$inject = [\n  'eventBus',\n  'elementFactory',\n  'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction filterVisible(elements) {\n  return elements.filter(function(e) {\n    return !e.hidden;\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UnclaimIdBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n\n\n\n\n\n\n\n\n\n/**\n * Unclaims model IDs on element deletion.\n *\n * @param {Canvas} canvas\n * @param {Injector} injector\n * @param {Moddle} moddle\n * @param {Modeling} modeling\n */\nfunction UnclaimIdBehavior(canvas, injector, moddle, modeling) {\n  injector.invoke(diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  this.preExecute('shape.delete', function(event) {\n    var context = event.context,\n        shape = context.shape,\n        shapeBo = shape.businessObject;\n\n    if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_2__.isLabel)(shape)) {\n      return;\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(shape, 'bpmn:Participant') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(shape)) {\n      moddle.ids.unclaim(shapeBo.processRef.id);\n    }\n\n    modeling.unclaimId(shapeBo.id, shapeBo);\n  });\n\n\n  this.preExecute('connection.delete', function(event) {\n    var context = event.context,\n        connection = context.connection,\n        connectionBo = connection.businessObject;\n\n    modeling.unclaimId(connectionBo.id, connectionBo);\n  });\n\n  this.preExecute('canvas.updateRoot', function() {\n    var rootElement = canvas.getRootElement(),\n        rootElementBo = rootElement.businessObject;\n\n    moddle.ids.unclaim(rootElementBo.id);\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(UnclaimIdBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nUnclaimIdBehavior.$inject = [ 'canvas', 'injector', 'moddle', 'modeling' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js ***!
    \*****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DeleteSequenceFlowBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\n\n/**\n * A behavior that unsets the Default property of\n * sequence flow source on element delete, if the\n * removed element is the Gateway or Task's default flow.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction DeleteSequenceFlowBehavior(eventBus, modeling) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  this.preExecute('connection.delete', function(event) {\n    var context = event.context,\n        connection = context.connection,\n        source = connection.source;\n\n    if (isDefaultFlow(connection, source)) {\n      modeling.updateProperties(source, {\n        'default': null\n      });\n    }\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DeleteSequenceFlowBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nDeleteSequenceFlowBehavior.$inject = [\n  'eventBus',\n  'modeling'\n];\n\n\n// helpers //////////////////////\n\nfunction isDefaultFlow(connection, source) {\n\n  if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(connection, 'bpmn:SequenceFlow')) {\n    return false;\n  }\n\n  var sourceBo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(source),\n      sequenceFlow = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.getBusinessObject)(connection);\n\n  return sourceBo.get('default') === sequenceFlow;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js":
  /*!*******************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js ***!
    \*******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateFlowNodeRefsBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n\nvar LOW_PRIORITY = 500,\n    HIGH_PRIORITY = 5000;\n\n\n/**\n * BPMN specific delete lane behavior\n */\nfunction UpdateFlowNodeRefsBehavior(eventBus, modeling, translate) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  /**\n   * Ok, this is it:\n   *\n   * We have to update the Lane#flowNodeRefs _and_\n   * FlowNode#lanes with every FlowNode move/resize and\n   * Lane move/resize.\n   *\n   * We want to group that stuff to recompute containments\n   * as efficient as possible.\n   *\n   * Yea!\n   */\n\n  // the update context\n  var context;\n\n\n  function initContext() {\n    context = context || new UpdateContext();\n    context.enter();\n\n    return context;\n  }\n\n  function getContext() {\n    if (!context) {\n      throw new Error(translate('out of bounds release'));\n    }\n\n    return context;\n  }\n\n  function releaseContext() {\n\n    if (!context) {\n      throw new Error(translate('out of bounds release'));\n    }\n\n    var triggerUpdate = context.leave();\n\n    if (triggerUpdate) {\n      modeling.updateLaneRefs(context.flowNodes, context.lanes);\n\n      context = null;\n    }\n\n    return triggerUpdate;\n  }\n\n\n  var laneRefUpdateEvents = [\n    'spaceTool',\n    'lane.add',\n    'lane.resize',\n    'lane.split',\n    'elements.create',\n    'elements.delete',\n    'elements.move',\n    'shape.create',\n    'shape.delete',\n    'shape.move',\n    'shape.resize'\n  ];\n\n\n  // listen to a lot of stuff to group lane updates\n\n  this.preExecute(laneRefUpdateEvents, HIGH_PRIORITY, function(event) {\n    initContext();\n  });\n\n  this.postExecuted(laneRefUpdateEvents, LOW_PRIORITY, function(event) {\n    releaseContext();\n  });\n\n\n  // Mark flow nodes + lanes that need an update\n\n  this.preExecute([\n    'shape.create',\n    'shape.move',\n    'shape.delete',\n    'shape.resize'\n  ], function(event) {\n\n    var context = event.context,\n        shape = context.shape;\n\n    var updateContext = getContext();\n\n    // no need to update labels\n    if (shape.labelTarget) {\n      return;\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:Lane')) {\n      updateContext.addLane(shape);\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(shape, 'bpmn:FlowNode')) {\n      updateContext.addFlowNode(shape);\n    }\n  });\n}\n\nUpdateFlowNodeRefsBehavior.$inject = [\n  'eventBus',\n  'modeling' ,\n  'translate'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(UpdateFlowNodeRefsBehavior, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nfunction UpdateContext() {\n\n  this.flowNodes = [];\n  this.lanes = [];\n\n  this.counter = 0;\n\n  this.addLane = function(lane) {\n    this.lanes.push(lane);\n  };\n\n  this.addFlowNode = function(flowNode) {\n    this.flowNodes.push(flowNode);\n  };\n\n  this.enter = function() {\n    this.counter++;\n  };\n\n  this.leave = function() {\n    this.counter--;\n\n    return !this.counter;\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AdaptiveLabelPositioningBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AdaptiveLabelPositioningBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js\");\n/* harmony import */ var _AppendBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppendBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js\");\n/* harmony import */ var _AssociationBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AssociationBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js\");\n/* harmony import */ var _AttachEventBehavior__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AttachEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js\");\n/* harmony import */ var _BoundaryEventBehavior__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BoundaryEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js\");\n/* harmony import */ var _RootElementReferenceBehavior__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./RootElementReferenceBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js\");\n/* harmony import */ var _CreateBehavior__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CreateBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js\");\n/* harmony import */ var _FixHoverBehavior__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixHoverBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js\");\n/* harmony import */ var _CreateDataObjectBehavior__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CreateDataObjectBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js\");\n/* harmony import */ var _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CreateParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js\");\n/* harmony import */ var _DataInputAssociationBehavior__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./DataInputAssociationBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js\");\n/* harmony import */ var _DataStoreBehavior__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DataStoreBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js\");\n/* harmony import */ var _DeleteLaneBehavior__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./DeleteLaneBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js\");\n/* harmony import */ var _DetachEventBehavior__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./DetachEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js\");\n/* harmony import */ var _DropOnFlowBehavior__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./DropOnFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js\");\n/* harmony import */ var _EventBasedGatewayBehavior__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./EventBasedGatewayBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js\");\n/* harmony import */ var _GroupBehavior__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./GroupBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js\");\n/* harmony import */ var _ImportDockingFix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./ImportDockingFix */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js\");\n/* harmony import */ var _IsHorizontalFix__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./IsHorizontalFix */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js\");\n/* harmony import */ var _LabelBehavior__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./LabelBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js\");\n/* harmony import */ var _MessageFlowBehavior__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./MessageFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js\");\n/* harmony import */ var _ModelingFeedback__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./ModelingFeedback */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ModelingFeedback.js\");\n/* harmony import */ var _ReplaceConnectionBehavior__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./ReplaceConnectionBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js\");\n/* harmony import */ var _RemoveParticipantBehavior__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./RemoveParticipantBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js\");\n/* harmony import */ var _ReplaceElementBehaviour__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ReplaceElementBehaviour */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n/* harmony import */ var _ResizeLaneBehavior__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ResizeLaneBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js\");\n/* harmony import */ var _RemoveElementBehavior__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./RemoveElementBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js\");\n/* harmony import */ var _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./SpaceToolBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js\");\n/* harmony import */ var _SubProcessStartEventBehavior__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./SubProcessStartEventBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js\");\n/* harmony import */ var _ToggleElementCollapseBehaviour__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./ToggleElementCollapseBehaviour */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js\");\n/* harmony import */ var _UnclaimIdBehavior__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./UnclaimIdBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js\");\n/* harmony import */ var _UpdateFlowNodeRefsBehavior__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./UpdateFlowNodeRefsBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js\");\n/* harmony import */ var _UnsetDefaultFlowBehavior__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./UnsetDefaultFlowBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'adaptiveLabelPositioningBehavior',\n    'appendBehavior',\n    'associationBehavior',\n    'attachEventBehavior',\n    'boundaryEventBehavior',\n    'rootElementReferenceBehavior',\n    'createBehavior',\n    'fixHoverBehavior',\n    'createDataObjectBehavior',\n    'createParticipantBehavior',\n    'dataStoreBehavior',\n    'dataInputAssociationBehavior',\n    'deleteLaneBehavior',\n    'detachEventBehavior',\n    'dropOnFlowBehavior',\n    'eventBasedGatewayBehavior',\n    'groupBehavior',\n    'importDockingFix',\n    'isHorizontalFix',\n    'labelBehavior',\n    'messageFlowBehavior',\n    'modelingFeedback',\n    'removeElementBehavior',\n    'removeParticipantBehavior',\n    'replaceConnectionBehavior',\n    'replaceElementBehaviour',\n    'resizeBehavior',\n    'resizeLaneBehavior',\n    'toggleElementCollapseBehaviour',\n    'spaceToolBehavior',\n    'subProcessStartEventBehavior',\n    'unclaimIdBehavior',\n    'unsetDefaultFlowBehavior',\n    'updateFlowNodeRefsBehavior'\n  ],\n  adaptiveLabelPositioningBehavior: [ 'type', _AdaptiveLabelPositioningBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\n  appendBehavior: [ 'type', _AppendBehavior__WEBPACK_IMPORTED_MODULE_1__.default ],\n  associationBehavior: [ 'type', _AssociationBehavior__WEBPACK_IMPORTED_MODULE_2__.default ],\n  attachEventBehavior: [ 'type', _AttachEventBehavior__WEBPACK_IMPORTED_MODULE_3__.default ],\n  boundaryEventBehavior: [ 'type', _BoundaryEventBehavior__WEBPACK_IMPORTED_MODULE_4__.default ],\n  rootElementReferenceBehavior: [ 'type', _RootElementReferenceBehavior__WEBPACK_IMPORTED_MODULE_5__.default ],\n  createBehavior: [ 'type', _CreateBehavior__WEBPACK_IMPORTED_MODULE_6__.default ],\n  fixHoverBehavior: [ 'type', _FixHoverBehavior__WEBPACK_IMPORTED_MODULE_7__.default ],\n  createDataObjectBehavior: [ 'type', _CreateDataObjectBehavior__WEBPACK_IMPORTED_MODULE_8__.default ],\n  createParticipantBehavior: [ 'type', _CreateParticipantBehavior__WEBPACK_IMPORTED_MODULE_9__.default ],\n  dataInputAssociationBehavior: [ 'type', _DataInputAssociationBehavior__WEBPACK_IMPORTED_MODULE_10__.default ],\n  dataStoreBehavior: [ 'type', _DataStoreBehavior__WEBPACK_IMPORTED_MODULE_11__.default ],\n  deleteLaneBehavior: [ 'type', _DeleteLaneBehavior__WEBPACK_IMPORTED_MODULE_12__.default ],\n  detachEventBehavior: [ 'type', _DetachEventBehavior__WEBPACK_IMPORTED_MODULE_13__.default ],\n  dropOnFlowBehavior: [ 'type', _DropOnFlowBehavior__WEBPACK_IMPORTED_MODULE_14__.default ],\n  eventBasedGatewayBehavior: [ 'type', _EventBasedGatewayBehavior__WEBPACK_IMPORTED_MODULE_15__.default ],\n  groupBehavior: [ 'type', _GroupBehavior__WEBPACK_IMPORTED_MODULE_16__.default ],\n  importDockingFix: [ 'type', _ImportDockingFix__WEBPACK_IMPORTED_MODULE_17__.default ],\n  isHorizontalFix: [ 'type', _IsHorizontalFix__WEBPACK_IMPORTED_MODULE_18__.default ],\n  labelBehavior: [ 'type', _LabelBehavior__WEBPACK_IMPORTED_MODULE_19__.default ],\n  messageFlowBehavior: [ 'type', _MessageFlowBehavior__WEBPACK_IMPORTED_MODULE_20__.default ],\n  modelingFeedback: [ 'type', _ModelingFeedback__WEBPACK_IMPORTED_MODULE_21__.default ],\n  replaceConnectionBehavior: [ 'type', _ReplaceConnectionBehavior__WEBPACK_IMPORTED_MODULE_22__.default ],\n  removeParticipantBehavior: [ 'type', _RemoveParticipantBehavior__WEBPACK_IMPORTED_MODULE_23__.default ],\n  replaceElementBehaviour: [ 'type', _ReplaceElementBehaviour__WEBPACK_IMPORTED_MODULE_24__.default ],\n  resizeBehavior: [ 'type', _ResizeBehavior__WEBPACK_IMPORTED_MODULE_25__.default ],\n  resizeLaneBehavior: [ 'type', _ResizeLaneBehavior__WEBPACK_IMPORTED_MODULE_26__.default ],\n  removeElementBehavior: [ 'type', _RemoveElementBehavior__WEBPACK_IMPORTED_MODULE_27__.default ],\n  toggleElementCollapseBehaviour : [ 'type', _ToggleElementCollapseBehaviour__WEBPACK_IMPORTED_MODULE_28__.default ],\n  spaceToolBehavior: [ 'type', _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_29__.default ],\n  subProcessStartEventBehavior: [ 'type', _SubProcessStartEventBehavior__WEBPACK_IMPORTED_MODULE_30__.default ],\n  unclaimIdBehavior: [ 'type', _UnclaimIdBehavior__WEBPACK_IMPORTED_MODULE_31__.default ],\n  updateFlowNodeRefsBehavior: [ 'type', _UpdateFlowNodeRefsBehavior__WEBPACK_IMPORTED_MODULE_32__.default ],\n  unsetDefaultFlowBehavior: [ 'type', _UnsetDefaultFlowBehavior__WEBPACK_IMPORTED_MODULE_33__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"createCategoryValue\": () => (/* binding */ createCategoryValue)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n/**\n * Creates a new bpmn:CategoryValue inside a new bpmn:Category\n *\n * @param {ModdleElement} definitions\n * @param {BpmnFactory} bpmnFactory\n *\n * @return {ModdleElement} categoryValue.\n */\nfunction createCategoryValue(definitions, bpmnFactory) {\n  var categoryValue = bpmnFactory.create('bpmn:CategoryValue'),\n      category = bpmnFactory.create('bpmn:Category', {\n        categoryValue: [ categoryValue ]\n      });\n\n  // add to correct place\n  (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(definitions.get('rootElements'), category);\n  (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(category).$parent = definitions;\n  (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(categoryValue).$parent = category;\n\n  return categoryValue;\n\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"vectorLength\": () => (/* binding */ vectorLength),\n/* harmony export */   \"getAngle\": () => (/* binding */ getAngle),\n/* harmony export */   \"rotateVector\": () => (/* binding */ rotateVector),\n/* harmony export */   \"perpendicularFoot\": () => (/* binding */ perpendicularFoot),\n/* harmony export */   \"getDistancePointLine\": () => (/* binding */ getDistancePointLine),\n/* harmony export */   \"getDistancePointPoint\": () => (/* binding */ getDistancePointPoint)\n/* harmony export */ });\n/**\n * Returns the length of a vector\n *\n * @param {Vector}\n * @return {Float}\n */\nfunction vectorLength(v) {\n  return Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));\n}\n\n\n/**\n * Calculates the angle between a line a the yAxis\n *\n * @param {Array}\n * @return {Float}\n */\nfunction getAngle(line) {\n\n  // return value is between 0, 180 and -180, -0\n  // @janstuemmel: maybe replace return a/b with b/a\n  return Math.atan((line[1].y - line[0].y) / (line[1].x - line[0].x));\n}\n\n\n/**\n * Rotates a vector by a given angle\n *\n * @param {Vector}\n * @param {Float} Angle in radians\n * @return {Vector}\n */\nfunction rotateVector(vector, angle) {\n  return (!angle) ? vector : {\n    x: Math.cos(angle) * vector.x - Math.sin(angle) * vector.y,\n    y: Math.sin(angle) * vector.x + Math.cos(angle) * vector.y\n  };\n}\n\n\n/**\n * Solves a 2D equation system\n * a + r*b = c, where a,b,c are 2D vectors\n *\n * @param {Vector}\n * @param {Vector}\n * @param {Vector}\n * @return {Float}\n */\nfunction solveLambaSystem(a, b, c) {\n\n  // the 2d system\n  var system = [\n    { n: a[0] - c[0], lambda: b[0] },\n    { n: a[1] - c[1], lambda: b[1] }\n  ];\n\n  // solve\n  var n = system[0].n * b[0] + system[1].n * b[1],\n      l = system[0].lambda * b[0] + system[1].lambda * b[1];\n\n  return -n/l;\n}\n\n\n/**\n * Position of perpendicular foot\n *\n * @param {Point}\n * @param [ {Point}, {Point} ] line defined through two points\n * @return {Point} the perpendicular foot position\n */\nfunction perpendicularFoot(point, line) {\n\n  var a = line[0], b = line[1];\n\n  // relative position of b from a\n  var bd = { x: b.x - a.x, y: b.y - a.y };\n\n  // solve equation system to the parametrized vectors param real value\n  var r = solveLambaSystem([ a.x, a.y ], [ bd.x, bd.y ], [ point.x, point.y ]);\n\n  return { x: a.x + r*bd.x, y: a.y + r*bd.y };\n}\n\n\n/**\n * Calculates the distance between a point and a line\n *\n * @param {Point}\n * @param [ {Point}, {Point} ] line defined through two points\n * @return {Float} distance\n */\nfunction getDistancePointLine(point, line) {\n\n  var pfPoint = perpendicularFoot(point, line);\n\n  // distance vector\n  var connectionVector = {\n    x: pfPoint.x - point.x,\n    y: pfPoint.y - point.y\n  };\n\n  return vectorLength(connectionVector);\n}\n\n\n/**\n * Calculates the distance between two points\n *\n * @param {Point}\n * @param {Point}\n * @return {Float} distance\n */\nfunction getDistancePointPoint(point1, point2) {\n\n  return vectorLength({\n    x: point1.x - point2.x,\n    y: point1.y - point2.y\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js ***!
    \*************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"findNewLabelLineStartIndex\": () => (/* binding */ findNewLabelLineStartIndex),\n/* harmony export */   \"getLabelAdjustment\": () => (/* binding */ getLabelAdjustment)\n/* harmony export */ });\n/* harmony import */ var _GeometricUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GeometricUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/GeometricUtil.js\");\n/* harmony import */ var _LineAttachmentUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LineAttachmentUtil */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\nfunction findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints) {\n\n  var index = attachment.segmentIndex;\n\n  var offset = newWaypoints.length - oldWaypoints.length;\n\n  // segmentMove happened\n  if (hints.segmentMove) {\n\n    var oldSegmentStartIndex = hints.segmentMove.segmentStartIndex,\n        newSegmentStartIndex = hints.segmentMove.newSegmentStartIndex;\n\n    // if label was on moved segment return new segment index\n    if (index === oldSegmentStartIndex) {\n      return newSegmentStartIndex;\n    }\n\n    // label is after new segment index\n    if (index >= newSegmentStartIndex) {\n      return (index+offset < newSegmentStartIndex) ? newSegmentStartIndex : index+offset;\n    }\n\n    // if label is before new segment index\n    return index;\n  }\n\n  // bendpointMove happened\n  if (hints.bendpointMove) {\n\n    var insert = hints.bendpointMove.insert,\n        bendpointIndex = hints.bendpointMove.bendpointIndex,\n        newIndex;\n\n    // waypoints length didnt change\n    if (offset === 0) {\n      return index;\n    }\n\n    // label behind new/removed bendpoint\n    if (index >= bendpointIndex) {\n      newIndex = insert ? index + 1 : index - 1;\n    }\n\n    // label before new/removed bendpoint\n    if (index < bendpointIndex) {\n\n      newIndex = index;\n\n      // decide label should take right or left segment\n      if (insert && attachment.type !== 'bendpoint' && bendpointIndex-1 === index) {\n\n        var rel = relativePositionMidWaypoint(newWaypoints, bendpointIndex);\n\n        if (rel < attachment.relativeLocation) {\n          newIndex++;\n        }\n      }\n    }\n\n    return newIndex;\n  }\n\n  // start/end changed\n  if (offset === 0) {\n    return index;\n  }\n\n  if (hints.connectionStart) {\n    return (index === 0) ? 0 : null;\n  }\n\n  if (hints.connectionEnd) {\n    return (index === oldWaypoints.length - 2) ? newWaypoints.length - 2 : null;\n  }\n\n  // if nothing fits, return null\n  return null;\n}\n\n\n/**\n * Calculate the required adjustment (move delta) for the given label\n * after the connection waypoints got updated.\n *\n * @param {djs.model.Label} label\n * @param {Array<Point>} newWaypoints\n * @param {Array<Point>} oldWaypoints\n * @param {Object} hints\n *\n * @return {Point} delta\n */\nfunction getLabelAdjustment(label, newWaypoints, oldWaypoints, hints) {\n\n  var x = 0,\n      y = 0;\n\n  var labelPosition = getLabelMid(label);\n\n  // get closest attachment\n  var attachment = (0,_LineAttachmentUtil__WEBPACK_IMPORTED_MODULE_0__.getAttachment)(labelPosition, oldWaypoints),\n      oldLabelLineIndex = attachment.segmentIndex,\n      newLabelLineIndex = findNewLabelLineStartIndex(oldWaypoints, newWaypoints, attachment, hints);\n\n  if (newLabelLineIndex === null) {\n    return { x: x, y: y };\n  }\n\n  // should never happen\n  // TODO(@janstuemmel): throw an error here when connectionSegmentMove is refactored\n  if (newLabelLineIndex < 0 ||\n      newLabelLineIndex > newWaypoints.length - 2) {\n    return { x: x, y: y };\n  }\n\n  var oldLabelLine = getLine(oldWaypoints, oldLabelLineIndex),\n      newLabelLine = getLine(newWaypoints, newLabelLineIndex),\n      oldFoot = attachment.position;\n\n  var relativeFootPosition = getRelativeFootPosition(oldLabelLine, oldFoot),\n      angleDelta = getAngleDelta(oldLabelLine, newLabelLine);\n\n  // special rule if label on bendpoint\n  if (attachment.type === 'bendpoint') {\n\n    var offset = newWaypoints.length - oldWaypoints.length,\n        oldBendpointIndex = attachment.bendpointIndex,\n        oldBendpoint = oldWaypoints[oldBendpointIndex];\n\n    // bendpoint position hasn't changed, return same position\n    if (newWaypoints.indexOf(oldBendpoint) !== -1) {\n      return { x: x, y: y };\n    }\n\n    // new bendpoint and old bendpoint have same index, then just return the offset\n    if (offset === 0) {\n      var newBendpoint = newWaypoints[oldBendpointIndex];\n\n      return {\n        x: newBendpoint.x - attachment.position.x,\n        y: newBendpoint.y - attachment.position.y\n      };\n    }\n\n    // if bendpoints get removed\n    if (offset < 0 && oldBendpointIndex !== 0 && oldBendpointIndex < oldWaypoints.length - 1) {\n      relativeFootPosition = relativePositionMidWaypoint(oldWaypoints, oldBendpointIndex);\n    }\n  }\n\n  var newFoot = {\n    x: (newLabelLine[1].x - newLabelLine[0].x) * relativeFootPosition + newLabelLine[0].x,\n    y: (newLabelLine[1].y - newLabelLine[0].y) * relativeFootPosition + newLabelLine[0].y\n  };\n\n  // the rotated vector to label\n  var newLabelVector = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.rotateVector)({\n    x: labelPosition.x - oldFoot.x,\n    y: labelPosition.y - oldFoot.y\n  }, angleDelta);\n\n  // the new relative position\n  x = newFoot.x + newLabelVector.x - labelPosition.x;\n  y = newFoot.y + newLabelVector.y - labelPosition.y;\n\n  return (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.roundPoint)({\n    x: x,\n    y: y\n  });\n}\n\n\n// HELPERS //////////////////////\n\nfunction relativePositionMidWaypoint(waypoints, idx) {\n\n  var distanceSegment1 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(waypoints[idx-1], waypoints[idx]),\n      distanceSegment2 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(waypoints[idx], waypoints[idx+1]);\n\n  var relativePosition = distanceSegment1 / (distanceSegment1 + distanceSegment2);\n\n  return relativePosition;\n}\n\nfunction getLabelMid(label) {\n  return {\n    x: label.x + label.width / 2,\n    y: label.y + label.height / 2\n  };\n}\n\nfunction getAngleDelta(l1, l2) {\n  var a1 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getAngle)(l1),\n      a2 = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getAngle)(l2);\n  return a2 - a1;\n}\n\nfunction getLine(waypoints, idx) {\n  return [ waypoints[idx], waypoints[idx+1] ];\n}\n\nfunction getRelativeFootPosition(line, foot) {\n\n  var length = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(line[0], line[1]),\n      lengthToFoot = (0,_GeometricUtil__WEBPACK_IMPORTED_MODULE_1__.getDistancePointPoint)(line[0], foot);\n\n  return length === 0 ? 0 : lengthToFoot / length;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js ***!
    \****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getAttachment\": () => (/* binding */ getAttachment)\n/* harmony export */ });\nvar sqrt = Math.sqrt,\n    min = Math.min,\n    max = Math.max,\n    abs = Math.abs;\n\n/**\n * Calculate the square (power to two) of a number.\n *\n * @param {number} n\n *\n * @return {number}\n */\nfunction sq(n) {\n  return Math.pow(n, 2);\n}\n\n/**\n * Get distance between two points.\n *\n * @param {Point} p1\n * @param {Point} p2\n *\n * @return {number}\n */\nfunction getDistance(p1, p2) {\n  return sqrt(sq(p1.x - p2.x) + sq(p1.y - p2.y));\n}\n\n/**\n * Return the attachment of the given point on the specified line.\n *\n * The attachment is either a bendpoint (attached to the given point)\n * or segment (attached to a location on a line segment) attachment:\n *\n * ```javascript\n * var pointAttachment = {\n *   type: 'bendpoint',\n *   bendpointIndex: 3,\n *   position: { x: 10, y: 10 } // the attach point on the line\n * };\n *\n * var segmentAttachment = {\n *   type: 'segment',\n *   segmentIndex: 2,\n *   relativeLocation: 0.31, // attach point location between 0 (at start) and 1 (at end)\n *   position: { x: 10, y: 10 } // the attach point on the line\n * };\n * ```\n *\n * @param {Point} point\n * @param {Array<Point>} line\n *\n * @return {Object} attachment\n */\nfunction getAttachment(point, line) {\n\n  var idx = 0,\n      segmentStart,\n      segmentEnd,\n      segmentStartDistance,\n      segmentEndDistance,\n      attachmentPosition,\n      minDistance,\n      intersections,\n      attachment,\n      attachmentDistance,\n      closestAttachmentDistance,\n      closestAttachment;\n\n  for (idx = 0; idx < line.length - 1; idx++) {\n\n    segmentStart = line[idx];\n    segmentEnd = line[idx + 1];\n\n    if (pointsEqual(segmentStart, segmentEnd)) {\n      intersections = [ segmentStart ];\n    } else {\n      segmentStartDistance = getDistance(point, segmentStart);\n      segmentEndDistance = getDistance(point, segmentEnd);\n\n      minDistance = min(segmentStartDistance, segmentEndDistance);\n\n      intersections = getCircleSegmentIntersections(segmentStart, segmentEnd, point, minDistance);\n    }\n\n    if (intersections.length < 1) {\n      throw new Error('expected between [1, 2] circle -> line intersections');\n    }\n\n    // one intersection -> bendpoint attachment\n    if (intersections.length === 1) {\n      attachment = {\n        type: 'bendpoint',\n        position: intersections[0],\n        segmentIndex: idx,\n        bendpointIndex: pointsEqual(segmentStart, intersections[0]) ? idx : idx + 1\n      };\n    }\n\n    // two intersections -> segment attachment\n    if (intersections.length === 2) {\n\n      attachmentPosition = mid(intersections[0], intersections[1]);\n\n      attachment = {\n        type: 'segment',\n        position: attachmentPosition,\n        segmentIndex: idx,\n        relativeLocation: getDistance(segmentStart, attachmentPosition) / getDistance(segmentStart, segmentEnd)\n      };\n    }\n\n    attachmentDistance = getDistance(attachment.position, point);\n\n    if (!closestAttachment || closestAttachmentDistance > attachmentDistance) {\n      closestAttachment = attachment;\n      closestAttachmentDistance = attachmentDistance;\n    }\n  }\n\n  return closestAttachment;\n}\n\n/**\n * Gets the intersection between a circle and a line segment.\n *\n * @param {Point} s1 segment start\n * @param {Point} s2 segment end\n * @param {Point} cc circle center\n * @param {number} cr circle radius\n *\n * @return {Array<Point>} intersections\n */\nfunction getCircleSegmentIntersections(s1, s2, cc, cr) {\n\n  var baX = s2.x - s1.x;\n  var baY = s2.y - s1.y;\n  var caX = cc.x - s1.x;\n  var caY = cc.y - s1.y;\n\n  var a = baX * baX + baY * baY;\n  var bBy2 = baX * caX + baY * caY;\n  var c = caX * caX + caY * caY - cr * cr;\n\n  var pBy2 = bBy2 / a;\n  var q = c / a;\n\n  var disc = pBy2 * pBy2 - q;\n\n  // check against negative value to work around\n  // negative, very close to zero results (-4e-15)\n  // being produced in some environments\n  if (disc < 0 && disc > -0.000001) {\n    disc = 0;\n  }\n\n  if (disc < 0) {\n    return [];\n  }\n\n  // if disc == 0 ... dealt with later\n  var tmpSqrt = sqrt(disc);\n  var abScalingFactor1 = -pBy2 + tmpSqrt;\n  var abScalingFactor2 = -pBy2 - tmpSqrt;\n\n  var i1 = {\n    x: s1.x - baX * abScalingFactor1,\n    y: s1.y - baY * abScalingFactor1\n  };\n\n  if (disc === 0) { // abScalingFactor1 == abScalingFactor2\n    return [ i1 ];\n  }\n\n  var i2 = {\n    x: s1.x - baX * abScalingFactor2,\n    y: s1.y - baY * abScalingFactor2\n  };\n\n  // return only points on line segment\n  return [ i1, i2 ].filter(function(p) {\n    return isPointInSegment(p, s1, s2);\n  });\n}\n\n\nfunction isPointInSegment(p, segmentStart, segmentEnd) {\n  return (\n    fenced(p.x, segmentStart.x, segmentEnd.x) &&\n    fenced(p.y, segmentStart.y, segmentEnd.y)\n  );\n}\n\nfunction fenced(n, rangeStart, rangeEnd) {\n\n  // use matching threshold to work around\n  // precision errors in intersection computation\n\n  return (\n    n >= min(rangeStart, rangeEnd) - EQUAL_THRESHOLD &&\n    n <= max(rangeStart, rangeEnd) + EQUAL_THRESHOLD\n  );\n}\n\n/**\n * Calculate mid of two points.\n *\n * @param {Point} p1\n * @param {Point} p2\n *\n * @return {Point}\n */\nfunction mid(p1, p2) {\n\n  return {\n    x: (p1.x + p2.x) / 2,\n    y: (p1.y + p2.y) / 2\n  };\n}\n\nvar EQUAL_THRESHOLD = 0.1;\n\nfunction pointsEqual(p1, p2) {\n\n  return (\n    abs(p1.x - p2.x) <= EQUAL_THRESHOLD &&\n    abs(p1.y - p2.y) <= EQUAL_THRESHOLD\n  );\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ lineIntersect)\n/* harmony export */ });\n/**\n * Returns the intersection between two line segments a and b.\n *\n * @param {Point} l1s\n * @param {Point} l1e\n * @param {Point} l2s\n * @param {Point} l2e\n *\n * @return {Point}\n */\nfunction lineIntersect(l1s, l1e, l2s, l2e) {\n\n  // if the lines intersect, the result contains the x and y of the\n  // intersection (treating the lines as infinite) and booleans for\n  // whether line segment 1 or line segment 2 contain the point\n  var denominator, a, b, c, numerator;\n\n  denominator = ((l2e.y - l2s.y) * (l1e.x - l1s.x)) - ((l2e.x - l2s.x) * (l1e.y - l1s.y));\n\n  if (denominator == 0) {\n    return null;\n  }\n\n  a = l1s.y - l2s.y;\n  b = l1s.x - l2s.x;\n  numerator = ((l2e.x - l2s.x) * a) - ((l2e.y - l2s.y) * b);\n\n  c = numerator / denominator;\n\n  // if we cast these lines infinitely in\n  // both directions, they intersect here\n  return {\n    x: Math.round(l1s.x + (c * (l1e.x - l1s.x))),\n    y: Math.round(l1s.y + (c * (l1e.y - l1s.y)))\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getParticipantResizeConstraints\": () => (/* binding */ getParticipantResizeConstraints)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../modeling/util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ResizeBehavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar abs = Math.abs,\r\n    min = Math.min,\r\n    max = Math.max;\r\n\r\n\r\nfunction addToTrbl(trbl, attr, value, choice) {\r\n  var current = trbl[attr];\r\n\r\n  // make sure to set the value if it does not exist\r\n  // or apply the correct value by comparing against\r\n  // choice(value, currentValue)\r\n  trbl[attr] = current === undefined ? value : choice(value, current);\r\n}\r\n\r\nfunction addMin(trbl, attr, value) {\r\n  return addToTrbl(trbl, attr, value, min);\r\n}\r\n\r\nfunction addMax(trbl, attr, value) {\r\n  return addToTrbl(trbl, attr, value, max);\r\n}\r\n\r\nvar LANE_RIGHT_PADDING = 20,\r\n    LANE_LEFT_PADDING = 50,\r\n    LANE_TOP_PADDING = 20,\r\n    LANE_BOTTOM_PADDING = 20;\r\n\r\n\r\nfunction getParticipantResizeConstraints(laneShape, resizeDirection, balanced) {\r\n  var lanesRoot = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(laneShape);\r\n\r\n  var isFirst = true,\r\n      isLast = true;\r\n\r\n  // max top/bottom size for lanes\r\n  var allLanes = (0,_modeling_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.collectLanes)(lanesRoot, [ lanesRoot ]);\r\n\r\n  var laneTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(laneShape);\r\n\r\n  var maxTrbl = {},\r\n      minTrbl = {};\r\n\r\n  if (/e/.test(resizeDirection)) {\r\n    minTrbl.right = laneTrbl.left + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.width;\r\n  } else\r\n  if (/w/.test(resizeDirection)) {\r\n    minTrbl.left = laneTrbl.right - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.width;\r\n  }\r\n\r\n  allLanes.forEach(function(other) {\r\n\r\n    var otherTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(other);\r\n\r\n    if (/n/.test(resizeDirection)) {\r\n\r\n      if (otherTrbl.top < (laneTrbl.top - 10)) {\r\n        isFirst = false;\r\n      }\r\n\r\n      // max top size (based on next element)\r\n      if (balanced && abs(laneTrbl.top - otherTrbl.bottom) < 10) {\r\n        addMax(maxTrbl, 'top', otherTrbl.top + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n      }\r\n\r\n      // min top size (based on self or nested element)\r\n      if (abs(laneTrbl.top - otherTrbl.top) < 5) {\r\n        addMin(minTrbl, 'top', otherTrbl.bottom - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n      }\r\n    }\r\n\r\n    if (/s/.test(resizeDirection)) {\r\n\r\n      if (otherTrbl.bottom > (laneTrbl.bottom + 10)) {\r\n        isLast = false;\r\n      }\r\n\r\n      // max bottom size (based on previous element)\r\n      if (balanced && abs(laneTrbl.bottom - otherTrbl.top) < 10) {\r\n        addMin(maxTrbl, 'bottom', otherTrbl.bottom - _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n      }\r\n\r\n      // min bottom size (based on self or nested element)\r\n      if (abs(laneTrbl.bottom - otherTrbl.bottom) < 5) {\r\n        addMax(minTrbl, 'bottom', otherTrbl.top + _ResizeBehavior__WEBPACK_IMPORTED_MODULE_2__.LANE_MIN_DIMENSIONS.height);\r\n      }\r\n    }\r\n  });\r\n\r\n  // max top/bottom/left/right size based on flow nodes\r\n  var flowElements = lanesRoot.children.filter(function(s) {\r\n    return !s.hidden && !s.waypoints && ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(s, 'bpmn:FlowElement') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(s, 'bpmn:Artifact'));\r\n  });\r\n\r\n  flowElements.forEach(function(flowElement) {\r\n\r\n    var flowElementTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(flowElement);\r\n\r\n    if (isFirst && /n/.test(resizeDirection)) {\r\n      addMin(minTrbl, 'top', flowElementTrbl.top - LANE_TOP_PADDING);\r\n    }\r\n\r\n    if (/e/.test(resizeDirection)) {\r\n      addMax(minTrbl, 'right', flowElementTrbl.right + LANE_RIGHT_PADDING);\r\n    }\r\n\r\n    if (isLast && /s/.test(resizeDirection)) {\r\n      addMax(minTrbl, 'bottom', flowElementTrbl.bottom + LANE_BOTTOM_PADDING);\r\n    }\r\n\r\n    if (/w/.test(resizeDirection)) {\r\n      addMin(minTrbl, 'left', flowElementTrbl.left - LANE_LEFT_PADDING);\r\n    }\r\n  });\r\n\r\n  return {\r\n    min: minTrbl,\r\n    max: maxTrbl\r\n  };\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/behavior/util/ResizeUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AddLaneHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\n\n\n\n\n\n\n/**\n * A handler that allows us to add a new lane\n * above or below an existing one.\n *\n * @param {Modeling} modeling\n * @param {SpaceTool} spaceTool\n */\nfunction AddLaneHandler(modeling, spaceTool) {\n  this._modeling = modeling;\n  this._spaceTool = spaceTool;\n}\n\nAddLaneHandler.$inject = [\n  'modeling',\n  'spaceTool'\n];\n\n\nAddLaneHandler.prototype.preExecute = function(context) {\n\n  var spaceTool = this._spaceTool,\n      modeling = this._modeling;\n\n  var shape = context.shape,\n      location = context.location;\n\n  var lanesRoot = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(shape);\n\n  var isRoot = lanesRoot === shape,\n      laneParent = isRoot ? shape : shape.parent;\n\n  var existingChildLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getChildLanes)(laneParent);\n\n  // (0) add a lane if we currently got none and are adding to root\n  if (!existingChildLanes.length) {\n    modeling.createShape({ type: 'bpmn:Lane' }, {\n      x: shape.x + _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n      y: shape.y,\n      width: shape.width - _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n      height: shape.height\n    }, laneParent);\n  }\n\n  // (1) collect affected elements to create necessary space\n  var allAffected = [];\n\n  (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_1__.eachElement)(lanesRoot, function(element) {\n    allAffected.push(element);\n\n    // handle element labels in the diagram root\n    if (element.label) {\n      allAffected.push(element.label);\n    }\n\n    if (element === shape) {\n      return [];\n    }\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(element.children, function(c) {\n      return c !== shape;\n    });\n  });\n\n  var offset = location === 'top' ? -120 : 120,\n      lanePosition = location === 'top' ? shape.y : shape.y + shape.height,\n      spacePos = lanePosition + (location === 'top' ? 10 : -10),\n      direction = location === 'top' ? 'n' : 's';\n\n  var adjustments = spaceTool.calculateAdjustments(allAffected, 'y', offset, spacePos);\n\n  spaceTool.makeSpace(\n    adjustments.movingShapes,\n    adjustments.resizingShapes,\n    { x: 0, y: offset },\n    direction,\n    spacePos\n  );\n\n  // (2) create new lane at open space\n  context.newLane = modeling.createShape({ type: 'bpmn:Lane' }, {\n    x: shape.x + (isRoot ? _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION : 0),\n    y: lanePosition - (location === 'top' ? 120 : 0),\n    width: shape.width - (isRoot ? _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION : 0),\n    height: 120\n  }, laneParent);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ IdClaimHandler)\n/* harmony export */ });\nfunction IdClaimHandler(moddle) {\n  this._moddle = moddle;\n}\n\nIdClaimHandler.$inject = [ 'moddle' ];\n\n\nIdClaimHandler.prototype.execute = function(context) {\n  var ids = this._moddle.ids,\n      id = context.id,\n      element = context.element,\n      claiming = context.claiming;\n\n  if (claiming) {\n    ids.claim(id, element);\n  } else {\n    ids.unclaim(id);\n  }\n};\n\n/**\n * Command revert implementation.\n */\nIdClaimHandler.prototype.revert = function(context) {\n  var ids = this._moddle.ids,\n      id = context.id,\n      element = context.element,\n      claiming = context.claiming;\n\n  if (claiming) {\n    ids.unclaim(id);\n  } else {\n    ids.claim(id, element);\n  }\n};\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeLaneHandler)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A handler that resizes a lane.\n *\n * @param {Modeling} modeling\n */\nfunction ResizeLaneHandler(modeling, spaceTool) {\n  this._modeling = modeling;\n  this._spaceTool = spaceTool;\n}\n\nResizeLaneHandler.$inject = [\n  'modeling',\n  'spaceTool'\n];\n\n\nResizeLaneHandler.prototype.preExecute = function(context) {\n\n  var shape = context.shape,\n      newBounds = context.newBounds,\n      balanced = context.balanced;\n\n  if (balanced !== false) {\n    this.resizeBalanced(shape, newBounds);\n  } else {\n    this.resizeSpace(shape, newBounds);\n  }\n};\n\n\n/**\n * Resize balanced, adjusting next / previous lane sizes.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n */\nResizeLaneHandler.prototype.resizeBalanced = function(shape, newBounds) {\n\n  var modeling = this._modeling;\n\n  var resizeNeeded = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.computeLanesResize)(shape, newBounds);\n\n  // resize the lane\n  modeling.resizeShape(shape, newBounds);\n\n  // resize other lanes as needed\n  resizeNeeded.forEach(function(r) {\n    modeling.resizeShape(r.shape, r.newBounds);\n  });\n};\n\n\n/**\n * Resize, making actual space and moving below / above elements.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n */\nResizeLaneHandler.prototype.resizeSpace = function(shape, newBounds) {\n  var spaceTool = this._spaceTool;\n\n  var shapeTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape),\n      newTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds);\n\n  var trblDiff = (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_2__.substractTRBL)(newTrbl, shapeTrbl);\n\n  var lanesRoot = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getLanesRoot)(shape);\n\n  var allAffected = [],\n      allLanes = [];\n\n  (0,diagram_js_lib_util_Elements__WEBPACK_IMPORTED_MODULE_3__.eachElement)(lanesRoot, function(element) {\n    allAffected.push(element);\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Lane') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant')) {\n      allLanes.push(element);\n    }\n\n    return element.children;\n  });\n\n  var change,\n      spacePos,\n      direction,\n      offset,\n      adjustments;\n\n  if (trblDiff.bottom || trblDiff.top) {\n\n    change = trblDiff.bottom || trblDiff.top;\n    spacePos = shape.y + (trblDiff.bottom ? shape.height : 0) + (trblDiff.bottom ? -10 : 10);\n    direction = trblDiff.bottom ? 's' : 'n';\n\n    offset = trblDiff.top > 0 || trblDiff.bottom < 0 ? -change : change;\n\n    adjustments = spaceTool.calculateAdjustments(allAffected, 'y', offset, spacePos);\n\n    spaceTool.makeSpace(adjustments.movingShapes, adjustments.resizingShapes, { x: 0, y: change }, direction);\n  }\n\n\n  if (trblDiff.left || trblDiff.right) {\n\n    change = trblDiff.right || trblDiff.left;\n    spacePos = shape.x + (trblDiff.right ? shape.width : 0) + (trblDiff.right ? -10 : 100);\n    direction = trblDiff.right ? 'e' : 'w';\n\n    offset = trblDiff.left > 0 || trblDiff.right < 0 ? -change : change;\n\n    adjustments = spaceTool.calculateAdjustments(allLanes, 'x', offset, spacePos);\n\n    spaceTool.makeSpace(adjustments.movingShapes, adjustments.resizingShapes, { x: change, y: 0 }, direction);\n  }\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SetColorHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\nvar DEFAULT_COLORS = {\r\n  fill: undefined,\r\n  stroke: undefined\r\n};\r\n\r\n\r\nfunction SetColorHandler(commandStack) {\r\n  this._commandStack = commandStack;\r\n\r\n  this._normalizeColor = function(color) {\r\n\r\n    // Remove color for falsy values.\r\n    if (!color) {\r\n      return undefined;\r\n    }\r\n\r\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isString)(color)) {\r\n      var hexColor = colorToHex(color);\r\n\r\n      if (hexColor) {\r\n        return hexColor;\r\n      }\r\n    }\r\n\r\n    throw new Error('invalid color value: ' + color);\r\n  };\r\n}\r\n\r\nSetColorHandler.$inject = [\r\n  'commandStack'\r\n];\r\n\r\n\r\nSetColorHandler.prototype.postExecute = function(context) {\r\n  var elements = context.elements,\r\n      colors = context.colors || DEFAULT_COLORS;\r\n\r\n  var self = this;\r\n\r\n  var di = {};\r\n\r\n  if ('fill' in colors) {\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(di, {\r\n      'background-color': this._normalizeColor(colors.fill) });\r\n  }\r\n\r\n  if ('stroke' in colors) {\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(di, {\r\n      'border-color': this._normalizeColor(colors.stroke) });\r\n  }\r\n\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n    var assignedDi = isConnection(element) ? (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(di, [ 'border-color' ]) : di;\r\n\r\n    // TODO @barmac: remove once we drop bpmn.io properties\r\n    ensureLegacySupport(assignedDi);\r\n\r\n    self._commandStack.execute('element.updateProperties', {\r\n      element: element,\r\n      properties: {\r\n        di: assignedDi\r\n      }\r\n    });\r\n  });\r\n\r\n};\r\n\r\n/**\r\n * Convert color from rgb(a)/hsl to hex. Returns `null` for unknown color names and for colors\r\n * with alpha less than 1.0. This depends on `<canvas>` serialization of the `context.fillStyle`.\r\n * Cf. https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fillstyle\r\n *\r\n * @example\r\n * ```js\r\n * var color = 'fuchsia';\r\n * console.log(colorToHex(color));\r\n * // \"#ff00ff\"\r\n * color = 'rgba(1,2,3,0.4)';\r\n * console.log(colorToHex(color));\r\n * // null\r\n * ```\r\n *\r\n * @param {string} color\r\n * @returns {string|null}\r\n */\r\nfunction colorToHex(color) {\r\n  var context = document.createElement('canvas').getContext('2d');\r\n\r\n  // (0) Start with transparent to account for browser default values.\r\n  context.fillStyle = 'transparent';\r\n\r\n  // (1) Assign color so that it's serialized.\r\n  context.fillStyle = color;\r\n\r\n  // (2) Return null for non-hex serialization result.\r\n  return /^#[0-9a-fA-F]{6}$/.test(context.fillStyle) ? context.fillStyle : null;\r\n}\r\n\r\nfunction isConnection(element) {\r\n  return !!element.waypoints;\r\n}\r\n\r\n/**\r\n * Add legacy properties if required.\r\n * @param {{ 'border-color': string?, 'background-color': string? }} di\r\n */\r\nfunction ensureLegacySupport(di) {\r\n  if ('border-color' in di) {\r\n    di.stroke = di['border-color'];\r\n  }\r\n\r\n  if ('background-color' in di) {\r\n    di.fill = di['background-color'];\r\n  }\r\n}\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SplitLaneHandler)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n\n\n\n/**\n * A handler that splits a lane into a number of sub-lanes,\n * creating new sub lanes, if necessary.\n *\n * @param {Modeling} modeling\n */\nfunction SplitLaneHandler(modeling, translate) {\n  this._modeling = modeling;\n  this._translate = translate;\n}\n\nSplitLaneHandler.$inject = [\n  'modeling',\n  'translate'\n];\n\n\nSplitLaneHandler.prototype.preExecute = function(context) {\n\n  var modeling = this._modeling,\n      translate = this._translate;\n\n  var shape = context.shape,\n      newLanesCount = context.count;\n\n  var childLanes = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.getChildLanes)(shape),\n      existingLanesCount = childLanes.length;\n\n  if (existingLanesCount > newLanesCount) {\n    throw new Error(translate('more than {count} child lanes', { count: newLanesCount }));\n  }\n\n  var newLanesHeight = Math.round(shape.height / newLanesCount);\n\n  // Iterate from top to bottom in child lane order,\n  // resizing existing lanes and creating new ones\n  // so that they split the parent proportionally.\n  //\n  // Due to rounding related errors, the bottom lane\n  // needs to take up all the remaining space.\n  var laneY,\n      laneHeight,\n      laneBounds,\n      newLaneAttrs,\n      idx;\n\n  for (idx = 0; idx < newLanesCount; idx++) {\n\n    laneY = shape.y + idx * newLanesHeight;\n\n    // if bottom lane\n    if (idx === newLanesCount - 1) {\n      laneHeight = shape.height - (newLanesHeight * idx);\n    } else {\n      laneHeight = newLanesHeight;\n    }\n\n    laneBounds = {\n      x: shape.x + _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n      y: laneY,\n      width: shape.width - _util_LaneUtil__WEBPACK_IMPORTED_MODULE_0__.LANE_INDENTATION,\n      height: laneHeight\n    };\n\n    if (idx < existingLanesCount) {\n\n      // resize existing lane\n      modeling.resizeShape(childLanes[idx], laneBounds);\n    } else {\n\n      // create a new lane at position\n      newLaneAttrs = {\n        type: 'bpmn:Lane'\n      };\n\n      modeling.createShape(newLaneAttrs, laneBounds, shape);\n    }\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateCanvasRootHandler)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\nfunction UpdateCanvasRootHandler(canvas, modeling) {\n  this._canvas = canvas;\n  this._modeling = modeling;\n}\n\nUpdateCanvasRootHandler.$inject = [\n  'canvas',\n  'modeling'\n];\n\n\nUpdateCanvasRootHandler.prototype.execute = function(context) {\n\n  var canvas = this._canvas;\n\n  var newRoot = context.newRoot,\n      newRootBusinessObject = newRoot.businessObject,\n      oldRoot = canvas.getRootElement(),\n      oldRootBusinessObject = oldRoot.businessObject,\n      bpmnDefinitions = oldRootBusinessObject.$parent,\n      diPlane = oldRootBusinessObject.di;\n\n  // (1) replace process old <> new root\n  canvas.setRootElement(newRoot, true);\n\n  // (2) update root elements\n  (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(bpmnDefinitions.rootElements, newRootBusinessObject);\n  newRootBusinessObject.$parent = bpmnDefinitions;\n\n  (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(bpmnDefinitions.rootElements, oldRootBusinessObject);\n  oldRootBusinessObject.$parent = null;\n\n  // (3) wire di\n  oldRootBusinessObject.di = null;\n\n  diPlane.bpmnElement = newRootBusinessObject;\n  newRootBusinessObject.di = diPlane;\n\n  context.oldRoot = oldRoot;\n\n  // TODO(nikku): return changed elements?\n  // return [ newRoot, oldRoot ];\n};\n\n\nUpdateCanvasRootHandler.prototype.revert = function(context) {\n\n  var canvas = this._canvas;\n\n  var newRoot = context.newRoot,\n      newRootBusinessObject = newRoot.businessObject,\n      oldRoot = context.oldRoot,\n      oldRootBusinessObject = oldRoot.businessObject,\n      bpmnDefinitions = newRootBusinessObject.$parent,\n      diPlane = newRootBusinessObject.di;\n\n  // (1) replace process old <> new root\n  canvas.setRootElement(oldRoot, true);\n\n  // (2) update root elements\n  (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(bpmnDefinitions.rootElements, newRootBusinessObject);\n  newRootBusinessObject.$parent = null;\n\n  (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(bpmnDefinitions.rootElements, oldRootBusinessObject);\n  oldRootBusinessObject.$parent = bpmnDefinitions;\n\n  // (3) wire di\n  newRootBusinessObject.di = null;\n\n  diPlane.bpmnElement = oldRootBusinessObject;\n  oldRootBusinessObject.di = diPlane;\n\n  // TODO(nikku): return changed elements?\n  // return [ newRoot, oldRoot ];\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js ***!
    \*************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateFlowNodeRefsHandler)\n/* harmony export */ });\n/* harmony import */ var _util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/LaneUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\n\nvar FLOW_NODE_REFS_ATTR = 'flowNodeRef',\n    LANES_ATTR = 'lanes';\n\n\n/**\n * A handler that updates lane refs on changed elements\n */\nfunction UpdateFlowNodeRefsHandler(elementRegistry) {\n  this._elementRegistry = elementRegistry;\n}\n\nUpdateFlowNodeRefsHandler.$inject = [\n  'elementRegistry'\n];\n\n\nUpdateFlowNodeRefsHandler.prototype.computeUpdates = function(flowNodeShapes, laneShapes) {\n\n  var handledNodes = [];\n\n  var updates = [];\n\n  var participantCache = {};\n\n  var allFlowNodeShapes = [];\n\n  function isInLaneShape(element, laneShape) {\n\n    var laneTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.asTRBL)(laneShape);\n\n    var elementMid = {\n      x: element.x + element.width / 2,\n      y: element.y + element.height / 2\n    };\n\n    return elementMid.x > laneTrbl.left &&\n           elementMid.x < laneTrbl.right &&\n           elementMid.y > laneTrbl.top &&\n           elementMid.y < laneTrbl.bottom;\n  }\n\n  function addFlowNodeShape(flowNodeShape) {\n    if (handledNodes.indexOf(flowNodeShape) === -1) {\n      allFlowNodeShapes.push(flowNodeShape);\n      handledNodes.push(flowNodeShape);\n    }\n  }\n\n  function getAllLaneShapes(flowNodeShape) {\n\n    var root = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.getLanesRoot)(flowNodeShape);\n\n    if (!participantCache[root.id]) {\n      participantCache[root.id] = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.collectLanes)(root);\n    }\n\n    return participantCache[root.id];\n  }\n\n  function getNewLanes(flowNodeShape) {\n    if (!flowNodeShape.parent) {\n      return [];\n    }\n\n    var allLaneShapes = getAllLaneShapes(flowNodeShape);\n\n    return allLaneShapes.filter(function(l) {\n      return isInLaneShape(flowNodeShape, l);\n    }).map(function(shape) {\n      return shape.businessObject;\n    });\n  }\n\n  laneShapes.forEach(function(laneShape) {\n    var root = (0,_util_LaneUtil__WEBPACK_IMPORTED_MODULE_1__.getLanesRoot)(laneShape);\n\n    if (!root || handledNodes.indexOf(root) !== -1) {\n      return;\n    }\n\n    var children = root.children.filter(function(c) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(c, 'bpmn:FlowNode');\n    });\n\n    children.forEach(addFlowNodeShape);\n\n    handledNodes.push(root);\n  });\n\n  flowNodeShapes.forEach(addFlowNodeShape);\n\n\n  allFlowNodeShapes.forEach(function(flowNodeShape) {\n\n    var flowNode = flowNodeShape.businessObject;\n\n    var lanes = flowNode.get(LANES_ATTR),\n        remove = lanes.slice(),\n        add = getNewLanes(flowNodeShape);\n\n    updates.push({ flowNode: flowNode, remove: remove, add: add });\n  });\n\n  laneShapes.forEach(function(laneShape) {\n\n    var lane = laneShape.businessObject;\n\n    // lane got removed XX-)\n    if (!laneShape.parent) {\n      lane.get(FLOW_NODE_REFS_ATTR).forEach(function(flowNode) {\n        updates.push({ flowNode: flowNode, remove: [ lane ], add: [] });\n      });\n    }\n  });\n\n  return updates;\n};\n\nUpdateFlowNodeRefsHandler.prototype.execute = function(context) {\n\n  var updates = context.updates;\n\n  if (!updates) {\n    updates = context.updates = this.computeUpdates(context.flowNodeShapes, context.laneShapes);\n  }\n\n\n  updates.forEach(function(update) {\n\n    var flowNode = update.flowNode,\n        lanes = flowNode.get(LANES_ATTR);\n\n    // unwire old\n    update.remove.forEach(function(oldLane) {\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(lanes, oldLane);\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(oldLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n    });\n\n    // wire new\n    update.add.forEach(function(newLane) {\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(lanes, newLane);\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(newLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n    });\n  });\n\n  // TODO(nikku): return changed elements\n  // return [ ... ];\n};\n\n\nUpdateFlowNodeRefsHandler.prototype.revert = function(context) {\n\n  var updates = context.updates;\n\n  updates.forEach(function(update) {\n\n    var flowNode = update.flowNode,\n        lanes = flowNode.get(LANES_ATTR);\n\n    // unwire new\n    update.add.forEach(function(newLane) {\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(lanes, newLane);\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(newLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n    });\n\n    // wire old\n    update.remove.forEach(function(oldLane) {\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(lanes, oldLane);\n      (0,diagram_js_lib_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(oldLane.get(FLOW_NODE_REFS_ATTR), flowNode);\n    });\n  });\n\n  // TODO(nikku): return changed elements\n  // return [ ... ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js ***!
    \*****************************************************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar reduce = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").reduce,\n    keys = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").keys,\n    forEach = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\").forEach,\n    is = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").is,\n    getBusinessObject = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\").getBusinessObject;\n\n\nfunction UpdateModdlePropertiesHandler(elementRegistry) {\n  this._elementRegistry = elementRegistry;\n}\n\nUpdateModdlePropertiesHandler.$inject = ['elementRegistry'];\n\nmodule.exports = UpdateModdlePropertiesHandler;\n\n\nUpdateModdlePropertiesHandler.prototype.execute = function(context) {\n\n  var element = context.element,\n      moddleElement = context.moddleElement,\n      properties = context.properties;\n\n  if (!moddleElement) {\n    throw new Error('<moddleElement> required');\n  }\n\n  var changed = context.changed || this.getVisualReferences(moddleElement).concat(element);\n  var oldProperties = context.oldProperties || getModdleProperties(moddleElement, keys(properties));\n\n  setModdleProperties(moddleElement, properties);\n\n  context.oldProperties = oldProperties;\n  context.changed = changed;\n\n  return changed;\n};\n\nUpdateModdlePropertiesHandler.prototype.revert = function(context) {\n  var oldProperties = context.oldProperties,\n      moddleElement = context.moddleElement,\n      changed = context.changed;\n\n  setModdleProperties(moddleElement, oldProperties);\n\n  return changed;\n};\n\n/**\n * Return visual references of given moddle element within the diagram.\n *\n * @param {ModdleElement} moddleElement\n *\n * @return {Array<djs.model.Element>}\n */\nUpdateModdlePropertiesHandler.prototype.getVisualReferences = function(moddleElement) {\n\n  var elementRegistry = this._elementRegistry;\n\n  if (is(moddleElement, 'bpmn:DataObject')) {\n    return getAllDataObjectReferences(moddleElement, elementRegistry);\n  }\n\n  return [];\n};\n\n\n// helpers /////////////////\n\nfunction getModdleProperties(moddleElement, propertyNames) {\n  return reduce(propertyNames, function(result, key) {\n    result[key] = moddleElement.get(key);\n    return result;\n  }, {});\n}\n\nfunction setModdleProperties(moddleElement, properties) {\n  forEach(properties, function(value, key) {\n    moddleElement.set(key, value);\n  });\n}\n\nfunction getAllDataObjectReferences(dataObject, elementRegistry) {\n  return elementRegistry.filter(function(element) {\n    return (\n      is(element, 'bpmn:DataObjectReference') &&\n          getBusinessObject(element).dataObjectRef === dataObject\n    );\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdatePropertiesHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\nvar DEFAULT_FLOW = 'default',\n    ID = 'id',\n    DI = 'di';\n\nvar NULL_DIMENSIONS = {\n  width: 0,\n  height: 0\n};\n\n/**\n * A handler that implements a BPMN 2.0 property update.\n *\n * This should be used to set simple properties on elements with\n * an underlying BPMN business object.\n *\n * Use respective diagram-js provided handlers if you would\n * like to perform automated modeling.\n */\nfunction UpdatePropertiesHandler(\n    elementRegistry, moddle, translate,\n    modeling, textRenderer) {\n\n  this._elementRegistry = elementRegistry;\n  this._moddle = moddle;\n  this._translate = translate;\n  this._modeling = modeling;\n  this._textRenderer = textRenderer;\n}\n\nUpdatePropertiesHandler.$inject = [\n  'elementRegistry',\n  'moddle',\n  'translate',\n  'modeling',\n  'textRenderer'\n];\n\n\n// api //////////////////////\n\n/**\n * Updates a BPMN element with a list of new properties\n *\n * @param {Object} context\n * @param {djs.model.Base} context.element the element to update\n * @param {Object} context.properties a list of properties to set on the element's\n *                                    businessObject (the BPMN model element)\n *\n * @return {Array<djs.model.Base>} the updated element\n */\nUpdatePropertiesHandler.prototype.execute = function(context) {\n\n  var element = context.element,\n      changed = [ element ],\n      translate = this._translate;\n\n  if (!element) {\n    throw new Error(translate('element required'));\n  }\n\n  var elementRegistry = this._elementRegistry,\n      ids = this._moddle.ids;\n\n  var businessObject = element.businessObject,\n      properties = unwrapBusinessObjects(context.properties),\n      oldProperties = context.oldProperties || getProperties(businessObject, properties);\n\n  if (isIdChange(properties, businessObject)) {\n    ids.unclaim(businessObject[ID]);\n\n    elementRegistry.updateId(element, properties[ID]);\n\n    ids.claim(properties[ID], businessObject);\n  }\n\n  // correctly indicate visual changes on default flow updates\n  if (DEFAULT_FLOW in properties) {\n\n    if (properties[DEFAULT_FLOW]) {\n      changed.push(elementRegistry.get(properties[DEFAULT_FLOW].id));\n    }\n\n    if (businessObject[DEFAULT_FLOW]) {\n      changed.push(elementRegistry.get(businessObject[DEFAULT_FLOW].id));\n    }\n  }\n\n  // update properties\n  setProperties(businessObject, properties);\n\n  // store old values\n  context.oldProperties = oldProperties;\n  context.changed = changed;\n\n  // indicate changed on objects affected by the update\n  return changed;\n};\n\n\nUpdatePropertiesHandler.prototype.postExecute = function(context) {\n  var element = context.element,\n      label = element.label;\n\n  var text = label && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(label).name;\n\n  if (!text) {\n    return;\n  }\n\n  // get layouted text bounds and resize external\n  // external label accordingly\n  var newLabelBounds = this._textRenderer.getExternalLabelBounds(label, text);\n\n  this._modeling.resizeShape(label, newLabelBounds, NULL_DIMENSIONS);\n};\n\n/**\n * Reverts the update on a BPMN elements properties.\n *\n * @param  {Object} context\n *\n * @return {djs.model.Base} the updated element\n */\nUpdatePropertiesHandler.prototype.revert = function(context) {\n\n  var element = context.element,\n      properties = context.properties,\n      oldProperties = context.oldProperties,\n      businessObject = element.businessObject,\n      elementRegistry = this._elementRegistry,\n      ids = this._moddle.ids;\n\n  // update properties\n  setProperties(businessObject, oldProperties);\n\n  if (isIdChange(properties, businessObject)) {\n    ids.unclaim(properties[ID]);\n\n    elementRegistry.updateId(element, oldProperties[ID]);\n\n    ids.claim(oldProperties[ID], businessObject);\n  }\n\n  return context.changed;\n};\n\n\nfunction isIdChange(properties, businessObject) {\n  return ID in properties && properties[ID] !== businessObject[ID];\n}\n\n\nfunction getProperties(businessObject, properties) {\n  var propertyNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.keys)(properties);\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.reduce)(propertyNames, function(result, key) {\n\n    // handle DI separately\n    if (key !== DI) {\n      result[key] = businessObject.get(key);\n    } else {\n      result[key] = getDiProperties(businessObject.di, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.keys)(properties.di));\n    }\n\n    return result;\n  }, {});\n}\n\n\nfunction getDiProperties(di, propertyNames) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.reduce)(propertyNames, function(result, key) {\n    result[key] = di.get(key);\n\n    return result;\n  }, {});\n}\n\n\nfunction setProperties(businessObject, properties) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(properties, function(value, key) {\n\n    if (key !== DI) {\n      businessObject.set(key, value);\n    } else {\n\n      // only update, if businessObject.di exists\n      if (businessObject.di) {\n        setDiProperties(businessObject.di, value);\n      }\n    }\n  });\n}\n\n\nfunction setDiProperties(di, properties) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(properties, function(value, key) {\n    di.set(key, value);\n  });\n}\n\n\nvar referencePropertyNames = [ 'default' ];\n\n/**\n * Make sure we unwrap the actual business object\n * behind diagram element that may have been\n * passed as arguments.\n *\n * @param  {Object} properties\n *\n * @return {Object} unwrappedProps\n */\nfunction unwrapBusinessObjects(properties) {\n\n  var unwrappedProps = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, properties);\n\n  referencePropertyNames.forEach(function(name) {\n    if (name in properties) {\n      unwrappedProps[name] = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(unwrappedProps[name]);\n    }\n  });\n\n  return unwrappedProps;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js ***!
    \***************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateSemanticParentHandler)\n/* harmony export */ });\nfunction UpdateSemanticParentHandler(bpmnUpdater) {\r\n  this._bpmnUpdater = bpmnUpdater;\r\n}\r\n\r\nUpdateSemanticParentHandler.$inject = [ 'bpmnUpdater' ];\r\n\r\n\r\nUpdateSemanticParentHandler.prototype.execute = function(context) {\r\n  var dataStoreBo = context.dataStoreBo,\r\n      newSemanticParent = context.newSemanticParent,\r\n      newDiParent = context.newDiParent;\r\n\r\n  context.oldSemanticParent = dataStoreBo.$parent;\r\n  context.oldDiParent = dataStoreBo.di.$parent;\r\n\r\n  // update semantic parent\r\n  this._bpmnUpdater.updateSemanticParent(dataStoreBo, newSemanticParent);\r\n\r\n  // update DI parent\r\n  this._bpmnUpdater.updateDiParent(dataStoreBo.di, newDiParent);\r\n};\r\n\r\nUpdateSemanticParentHandler.prototype.revert = function(context) {\r\n  var dataStoreBo = context.dataStoreBo,\r\n      oldSemanticParent = context.oldSemanticParent,\r\n      oldDiParent = context.oldDiParent;\r\n\r\n  // update semantic parent\r\n  this._bpmnUpdater.updateSemanticParent(dataStoreBo, oldSemanticParent);\r\n\r\n  // update DI parent\r\n  this._bpmnUpdater.updateDiParent(dataStoreBo.di, oldDiParent);\r\n};\r\n\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./behavior */ \"./node_modules/bpmn-js/lib/features/modeling/behavior/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/bpmn-js/lib/features/rules/index.js\");\n/* harmony import */ var _di_ordering__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../di-ordering */ \"./node_modules/bpmn-js/lib/features/di-ordering/index.js\");\n/* harmony import */ var _ordering__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ordering */ \"./node_modules/bpmn-js/lib/features/ordering/index.js\");\n/* harmony import */ var _replace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../replace */ \"./node_modules/bpmn-js/lib/features/replace/index.js\");\n/* harmony import */ var diagram_js_lib_command__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/command */ \"./node_modules/diagram-js/lib/command/index.js\");\n/* harmony import */ var diagram_js_lib_features_tooltips__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/features/tooltips */ \"./node_modules/diagram-js/lib/features/tooltips/index.js\");\n/* harmony import */ var diagram_js_lib_features_label_support__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! diagram-js/lib/features/label-support */ \"./node_modules/diagram-js/lib/features/label-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_attach_support__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! diagram-js/lib/features/attach-support */ \"./node_modules/diagram-js/lib/features/attach-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! diagram-js/lib/features/change-support */ \"./node_modules/diagram-js/lib/features/change-support/index.js\");\n/* harmony import */ var diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! diagram-js/lib/features/space-tool */ \"./node_modules/diagram-js/lib/features/space-tool/index.js\");\n/* harmony import */ var _BpmnFactory__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./BpmnFactory */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js\");\n/* harmony import */ var _BpmnUpdater__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./BpmnUpdater */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js\");\n/* harmony import */ var _ElementFactory__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ElementFactory */ \"./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js\");\n/* harmony import */ var _Modeling__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Modeling */ \"./node_modules/bpmn-js/lib/features/modeling/Modeling.js\");\n/* harmony import */ var _BpmnLayouter__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./BpmnLayouter */ \"./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js\");\n/* harmony import */ var diagram_js_lib_layout_CroppingConnectionDocking__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! diagram-js/lib/layout/CroppingConnectionDocking */ \"./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'modeling',\n    'bpmnUpdater'\n  ],\n  __depends__: [\n    _behavior__WEBPACK_IMPORTED_MODULE_0__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n    _di_ordering__WEBPACK_IMPORTED_MODULE_2__.default,\n    _ordering__WEBPACK_IMPORTED_MODULE_3__.default,\n    _replace__WEBPACK_IMPORTED_MODULE_4__.default,\n    diagram_js_lib_command__WEBPACK_IMPORTED_MODULE_5__.default,\n    diagram_js_lib_features_tooltips__WEBPACK_IMPORTED_MODULE_6__.default,\n    diagram_js_lib_features_label_support__WEBPACK_IMPORTED_MODULE_7__.default,\n    diagram_js_lib_features_attach_support__WEBPACK_IMPORTED_MODULE_8__.default,\n    diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_9__.default,\n    diagram_js_lib_features_change_support__WEBPACK_IMPORTED_MODULE_10__.default,\n    diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_11__.default\n  ],\n  bpmnFactory: [ 'type', _BpmnFactory__WEBPACK_IMPORTED_MODULE_12__.default ],\n  bpmnUpdater: [ 'type', _BpmnUpdater__WEBPACK_IMPORTED_MODULE_13__.default ],\n  elementFactory: [ 'type', _ElementFactory__WEBPACK_IMPORTED_MODULE_14__.default ],\n  modeling: [ 'type', _Modeling__WEBPACK_IMPORTED_MODULE_15__.default ],\n  layouter: [ 'type', _BpmnLayouter__WEBPACK_IMPORTED_MODULE_16__.default ],\n  connectionDocking: [ 'type', diagram_js_lib_layout_CroppingConnectionDocking__WEBPACK_IMPORTED_MODULE_17__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"LANE_INDENTATION\": () => (/* binding */ LANE_INDENTATION),\n/* harmony export */   \"collectLanes\": () => (/* binding */ collectLanes),\n/* harmony export */   \"getChildLanes\": () => (/* binding */ getChildLanes),\n/* harmony export */   \"getLanesRoot\": () => (/* binding */ getLanesRoot),\n/* harmony export */   \"computeLanesResize\": () => (/* binding */ computeLanesResize)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/resize/ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n\n\n\n\n\n\n\n\nvar abs = Math.abs;\n\n\nfunction getTRBLResize(oldBounds, newBounds) {\n  return (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.substractTRBL)((0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds), (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(oldBounds));\n}\n\n\nvar LANE_PARENTS = [\n  'bpmn:Participant',\n  'bpmn:Process',\n  'bpmn:SubProcess'\n];\n\nvar LANE_INDENTATION = 30;\n\n\n/**\n * Collect all lane shapes in the given paren\n *\n * @param  {djs.model.Shape} shape\n * @param  {Array<djs.model.Base>} [collectedShapes]\n *\n * @return {Array<djs.model.Base>}\n */\nfunction collectLanes(shape, collectedShapes) {\n\n  collectedShapes = collectedShapes || [];\n\n  shape.children.filter(function(s) {\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(s, 'bpmn:Lane')) {\n      collectLanes(s, collectedShapes);\n\n      collectedShapes.push(s);\n    }\n  });\n\n  return collectedShapes;\n}\n\n\n/**\n * Return the lane children of the given element.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {Array<djs.model.Shape>}\n */\nfunction getChildLanes(shape) {\n  return shape.children.filter(function(c) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(c, 'bpmn:Lane');\n  });\n}\n\n\n/**\n * Return the root element containing the given lane shape\n *\n * @param {djs.model.Shape} shape\n *\n * @return {djs.model.Shape}\n */\nfunction getLanesRoot(shape) {\n  return (0,_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(shape, LANE_PARENTS) || shape;\n}\n\n\n/**\n * Compute the required resize operations for lanes\n * adjacent to the given shape, assuming it will be\n * resized to the given new bounds.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n *\n * @return {Array<Object>}\n */\nfunction computeLanesResize(shape, newBounds) {\n\n  var rootElement = getLanesRoot(shape);\n\n  var initialShapes = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_2__.is)(rootElement, 'bpmn:Process') ? [] : [ rootElement ];\n\n  var allLanes = collectLanes(rootElement, initialShapes),\n      shapeTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape),\n      shapeNewTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds),\n      trblResize = getTRBLResize(shape, newBounds),\n      resizeNeeded = [];\n\n  allLanes.forEach(function(other) {\n\n    if (other === shape) {\n      return;\n    }\n\n    var topResize = 0,\n        rightResize = trblResize.right,\n        bottomResize = 0,\n        leftResize = trblResize.left;\n\n    var otherTrbl = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(other);\n\n    if (trblResize.top) {\n      if (abs(otherTrbl.bottom - shapeTrbl.top) < 10) {\n        bottomResize = shapeNewTrbl.top - otherTrbl.bottom;\n      }\n\n      if (abs(otherTrbl.top - shapeTrbl.top) < 5) {\n        topResize = shapeNewTrbl.top - otherTrbl.top;\n      }\n    }\n\n    if (trblResize.bottom) {\n      if (abs(otherTrbl.top - shapeTrbl.bottom) < 10) {\n        topResize = shapeNewTrbl.bottom - otherTrbl.top;\n      }\n\n      if (abs(otherTrbl.bottom - shapeTrbl.bottom) < 5) {\n        bottomResize = shapeNewTrbl.bottom - otherTrbl.bottom;\n      }\n    }\n\n    if (topResize || rightResize || bottomResize || leftResize) {\n\n      resizeNeeded.push({\n        shape: other,\n        newBounds: (0,diagram_js_lib_features_resize_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.resizeTRBL)(other, {\n          top: topResize,\n          right: rightResize,\n          bottom: bottomResize,\n          left: leftResize\n        })\n      });\n    }\n\n  });\n\n  return resizeNeeded;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isAny\": () => (/* binding */ isAny),\n/* harmony export */   \"getParent\": () => (/* binding */ getParent)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\n/**\n * Return true if element has any of the given types.\n *\n * @param {djs.model.Base} element\n * @param {Array<string>} types\n *\n * @return {boolean}\n */\nfunction isAny(element, types) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(types, function(t) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, t);\n  });\n}\n\n\n/**\n * Return the parent of the element with any of the given types.\n *\n * @param {djs.model.Base} element\n * @param {string|Array<string>} anyType\n *\n * @return {djs.model.Base}\n */\nfunction getParent(element, anyType) {\n\n  if (typeof anyType === 'string') {\n    anyType = [ anyType ];\n  }\n\n  while ((element = element.parent)) {\n    if (isAny(element, anyType)) {\n      return element;\n    }\n  }\n\n  return null;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnOrderingProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/ordering/OrderingProvider */ \"./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n/**\n * a simple ordering provider that makes sure:\n *\n * (0) labels and groups are rendered always on top\n * (1) elements are ordered by a {level} property\n */\nfunction BpmnOrderingProvider(eventBus, canvas, translate) {\n\n  diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var orders = [\n    { type: 'bpmn:SubProcess', order: { level: 6 } },\n    {\n      type: 'bpmn:SequenceFlow',\n      order: {\n        level: 3,\n        containers: [\n          'bpmn:Participant',\n          'bpmn:FlowElementsContainer'\n        ]\n      }\n    },\n\n    // handle DataAssociation(s) like message flows and render them always on top\n    {\n      type: 'bpmn:DataAssociation',\n      order: {\n        level: 9,\n        containers: [\n          'bpmn:Collaboration',\n          'bpmn:Process'\n        ]\n      }\n    },\n    {\n      type: 'bpmn:MessageFlow', order: {\n        level: 9,\n        containers: [ 'bpmn:Collaboration' ]\n      }\n    },\n    {\n      type: 'bpmn:Association',\n      order: {\n        level: 6,\n        containers: [\n          'bpmn:Participant',\n          'bpmn:FlowElementsContainer',\n          'bpmn:Collaboration'\n        ]\n      }\n    },\n    { type: 'bpmn:BoundaryEvent', order: { level: 8 } },\n    {\n      type: 'bpmn:Group',\n      order: {\n        level: 10,\n        containers: [\n          'bpmn:Collaboration',\n          'bpmn:Process'\n        ]\n      }\n    },\n    { type: 'bpmn:FlowElement', order: { level: 5 } },\n    { type: 'bpmn:Participant', order: { level: -2 } },\n    { type: 'bpmn:Lane', order: { level: -1 } }\n  ];\n\n  function computeOrder(element) {\n    if (element.labelTarget) {\n      return { level: 10 };\n    }\n\n    var entry = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(orders, function(o) {\n      return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ o.type ]);\n    });\n\n    return entry && entry.order || { level: 1 };\n  }\n\n  function getOrder(element) {\n\n    var order = element.order;\n\n    if (!order) {\n      element.order = order = computeOrder(element);\n    }\n\n    return order;\n  }\n\n  function findActualParent(element, newParent, containers) {\n\n    var actualParent = newParent;\n\n    while (actualParent) {\n\n      if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(actualParent, containers)) {\n        break;\n      }\n\n      actualParent = actualParent.parent;\n    }\n\n    if (!actualParent) {\n      throw new Error(translate('no parent for {element} in {parent}', {\n        element: element.id,\n        parent: newParent.id\n      }));\n    }\n\n    return actualParent;\n  }\n\n  this.getOrdering = function(element, newParent) {\n\n    // render labels always on top\n    if (element.labelTarget) {\n      return {\n        parent: canvas.getRootElement(),\n        index: -1\n      };\n    }\n\n    var elementOrder = getOrder(element);\n\n\n    if (elementOrder.containers) {\n      newParent = findActualParent(element, newParent, elementOrder.containers);\n    }\n\n\n    var currentIndex = newParent.children.indexOf(element);\n\n    var insertIndex = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.findIndex)(newParent.children, function(child) {\n\n      // do not compare with labels, they are created\n      // in the wrong order (right after elements) during import and\n      // mess up the positioning.\n      if (!element.labelTarget && child.labelTarget) {\n        return false;\n      }\n\n      return elementOrder.level < getOrder(child).level;\n    });\n\n\n    // if the element is already in the child list at\n    // a smaller index, we need to adjust the insert index.\n    // this takes into account that the element is being removed\n    // before being re-inserted\n    if (insertIndex !== -1) {\n      if (currentIndex !== -1 && currentIndex < insertIndex) {\n        insertIndex -= 1;\n      }\n    }\n\n    return {\n      index: insertIndex,\n      parent: newParent\n    };\n  };\n}\n\nBpmnOrderingProvider.$inject = [ 'eventBus', 'canvas', 'translate' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnOrderingProvider, diagram_js_lib_features_ordering_OrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/ordering/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/ordering/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _BpmnOrderingProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnOrderingProvider */ \"./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnOrderingProvider' ],\n  bpmnOrderingProvider: [ 'type', _BpmnOrderingProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/ordering/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ PaletteProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A palette provider for BPMN 2.0 elements.\n */\nfunction PaletteProvider(\n    palette, create, elementFactory,\n    spaceTool, lassoTool, handTool,\n    globalConnect, translate) {\n\n  this._palette = palette;\n  this._create = create;\n  this._elementFactory = elementFactory;\n  this._spaceTool = spaceTool;\n  this._lassoTool = lassoTool;\n  this._handTool = handTool;\n  this._globalConnect = globalConnect;\n  this._translate = translate;\n\n  palette.registerProvider(this);\n}\n\nPaletteProvider.$inject = [\n  'palette',\n  'create',\n  'elementFactory',\n  'spaceTool',\n  'lassoTool',\n  'handTool',\n  'globalConnect',\n  'translate'\n];\n\n\nPaletteProvider.prototype.getPaletteEntries = function(element) {\n\n  var actions = {},\n      create = this._create,\n      elementFactory = this._elementFactory,\n      spaceTool = this._spaceTool,\n      lassoTool = this._lassoTool,\n      handTool = this._handTool,\n      globalConnect = this._globalConnect,\n      translate = this._translate;\n\n  function createAction(type, group, className, title, options) {\n\n    function createListener(event) {\n      var shape = elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ type: type }, options));\n\n      if (options) {\n        shape.businessObject.di.isExpanded = options.isExpanded;\n      }\n\n      create.start(event, shape);\n    }\n\n    var shortType = type.replace(/^bpmn:/, '');\n\n    return {\n      group: group,\n      className: className,\n      title: title || translate('Create {type}', { type: shortType }),\n      action: {\n        dragstart: createListener,\n        click: createListener\n      }\n    };\n  }\n\n  function createSubprocess(event) {\n    var subProcess = elementFactory.createShape({\n      type: 'bpmn:SubProcess',\n      x: 0,\n      y: 0,\n      isExpanded: true\n    });\n\n    var startEvent = elementFactory.createShape({\n      type: 'bpmn:StartEvent',\n      x: 40,\n      y: 82,\n      parent: subProcess\n    });\n\n    create.start(event, [ subProcess, startEvent ], {\n      hints: {\n        autoSelect: [ startEvent ]\n      }\n    });\n  }\n\n  function createParticipant(event) {\n    create.start(event, elementFactory.createParticipantShape());\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(actions, {\n    'hand-tool': {\n      group: 'tools',\n      className: 'bpmn-icon-hand-tool',\n      title: translate('Activate the hand tool'),\n      action: {\n        click: function(event) {\n          handTool.activateHand(event);\n        }\n      }\n    },\n    'lasso-tool': {\n      group: 'tools',\n      className: 'bpmn-icon-lasso-tool',\n      title: translate('Activate the lasso tool'),\n      action: {\n        click: function(event) {\n          lassoTool.activateSelection(event);\n        }\n      }\n    },\n    'space-tool': {\n      group: 'tools',\n      className: 'bpmn-icon-space-tool',\n      title: translate('Activate the create/remove space tool'),\n      action: {\n        click: function(event) {\n          spaceTool.activateSelection(event);\n        }\n      }\n    },\n    'global-connect-tool': {\n      group: 'tools',\n      className: 'bpmn-icon-connection-multi',\n      title: translate('Activate the global connect tool'),\n      action: {\n        click: function(event) {\n          globalConnect.start(event);\n        }\n      }\n    },\n    'tool-separator': {\n      group: 'tools',\n      separator: true\n    },\n    'create.start-event': createAction(\n      'bpmn:StartEvent', 'event', 'bpmn-icon-start-event-none',\n      translate('Create StartEvent')\n    ),\n    'create.intermediate-event': createAction(\n      'bpmn:IntermediateThrowEvent', 'event', 'bpmn-icon-intermediate-event-none',\n      translate('Create Intermediate/Boundary Event')\n    ),\n    'create.end-event': createAction(\n      'bpmn:EndEvent', 'event', 'bpmn-icon-end-event-none',\n      translate('Create EndEvent')\n    ),\n    'create.exclusive-gateway': createAction(\n      'bpmn:ExclusiveGateway', 'gateway', 'bpmn-icon-gateway-none',\n      translate('Create Gateway')\n    ),\n    'create.task': createAction(\n      'bpmn:Task', 'activity', 'bpmn-icon-task',\n      translate('Create Task')\n    ),\n    'create.data-object': createAction(\n      'bpmn:DataObjectReference', 'data-object', 'bpmn-icon-data-object',\n      translate('Create DataObjectReference')\n    ),\n    'create.data-store': createAction(\n      'bpmn:DataStoreReference', 'data-store', 'bpmn-icon-data-store',\n      translate('Create DataStoreReference')\n    ),\n    'create.subprocess-expanded': {\n      group: 'activity',\n      className: 'bpmn-icon-subprocess-expanded',\n      title: translate('Create expanded SubProcess'),\n      action: {\n        dragstart: createSubprocess,\n        click: createSubprocess\n      }\n    },\n    'create.participant-expanded': {\n      group: 'collaboration',\n      className: 'bpmn-icon-participant',\n      title: translate('Create Pool/Participant'),\n      action: {\n        dragstart: createParticipant,\n        click: createParticipant\n      }\n    },\n    'create.group': createAction(\n      'bpmn:Group', 'artifact', 'bpmn-icon-group',\n      translate('Create Group')\n    ),\n  });\n\n  return actions;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/palette/index.js":
  /*!************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/palette/index.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/palette */ \"./node_modules/diagram-js/lib/features/palette/index.js\");\n/* harmony import */ var diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/space-tool */ \"./node_modules/diagram-js/lib/features/space-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_lasso_tool__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! diagram-js/lib/features/lasso-tool */ \"./node_modules/diagram-js/lib/features/lasso-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_hand_tool__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/features/hand-tool */ \"./node_modules/diagram-js/lib/features/hand-tool/index.js\");\n/* harmony import */ var diagram_js_lib_features_global_connect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/features/global-connect */ \"./node_modules/diagram-js/lib/features/global-connect/index.js\");\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _PaletteProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PaletteProvider */ \"./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_palette__WEBPACK_IMPORTED_MODULE_0__.default,\n    diagram_js_lib_features_create__WEBPACK_IMPORTED_MODULE_1__.default,\n    diagram_js_lib_features_space_tool__WEBPACK_IMPORTED_MODULE_2__.default,\n    diagram_js_lib_features_lasso_tool__WEBPACK_IMPORTED_MODULE_3__.default,\n    diagram_js_lib_features_hand_tool__WEBPACK_IMPORTED_MODULE_4__.default,\n    diagram_js_lib_features_global_connect__WEBPACK_IMPORTED_MODULE_5__.default,\n    diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_6__.default\n  ],\n  __init__: [ 'paletteProvider' ],\n  paletteProvider: [ 'type', _PaletteProvider__WEBPACK_IMPORTED_MODULE_7__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/palette/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ReplaceMenuProvider)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/TypeUtil */ \"./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../replace/ReplaceOptions */ \"./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * This module is an element agnostic replace menu provider for the popup menu.\n */\nfunction ReplaceMenuProvider(\n    bpmnFactory, popupMenu, modeling, moddle,\n    bpmnReplace, rules, translate) {\n\n  this._bpmnFactory = bpmnFactory;\n  this._popupMenu = popupMenu;\n  this._modeling = modeling;\n  this._moddle = moddle;\n  this._bpmnReplace = bpmnReplace;\n  this._rules = rules;\n  this._translate = translate;\n\n  this.register();\n}\n\nReplaceMenuProvider.$inject = [\n  'bpmnFactory',\n  'popupMenu',\n  'modeling',\n  'moddle',\n  'bpmnReplace',\n  'rules',\n  'translate'\n];\n\n\n/**\n * Register replace menu provider in the popup menu\n */\nReplaceMenuProvider.prototype.register = function() {\n  this._popupMenu.registerProvider('bpmn-replace', this);\n};\n\n\n/**\n * Get all entries from replaceOptions for the given element and apply filters\n * on them. Get for example only elements, which are different from the current one.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array<Object>} a list of menu entry items\n */\nReplaceMenuProvider.prototype.getEntries = function(element) {\n\n  var businessObject = element.businessObject;\n\n  var rules = this._rules;\n\n  var entries;\n\n  if (!rules.allowed('shape.replace', { element: element })) {\n    return [];\n  }\n\n  var differentType = (0,_util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__.isDifferentType)(element);\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:DataObjectReference')) {\n    return this._createEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.DATA_OBJECT_REFERENCE);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:DataStoreReference')) {\n    return this._createEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.DATA_STORE_REFERENCE);\n  }\n\n  // start events outside sub processes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:SubProcess')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.START_EVENT, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // expanded/collapsed pools\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Participant')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.PARTICIPANT, function(entry) {\n      return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject) !== entry.target.isExpanded;\n    });\n\n    return this._createEntries(element, entries);\n  }\n\n  // start events inside event sub processes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject.$parent)) {\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.EVENT_SUB_PROCESS_START_EVENT, function(entry) {\n\n      var target = entry.target;\n\n      var isInterrupting = target.isInterrupting !== false;\n\n      var isInterruptingEqual = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element).isInterrupting === isInterrupting;\n\n      // filters elements which types and event definition are equal but have have different interrupting types\n      return differentType(entry) || !differentType(entry) && !isInterruptingEqual;\n\n    });\n\n    return this._createEntries(element, entries);\n  }\n\n  // start events inside sub processes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:StartEvent') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject.$parent)\n      && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:SubProcess')) {\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.START_EVENT_SUB_PROCESS, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // end events\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:EndEvent')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.END_EVENT, function(entry) {\n      var target = entry.target;\n\n      // hide cancel end events outside transactions\n      if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.$parent, 'bpmn:Transaction')) {\n        return false;\n      }\n\n      return differentType(entry);\n    });\n\n    return this._createEntries(element, entries);\n  }\n\n  // boundary events\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:BoundaryEvent')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.BOUNDARY_EVENT, function(entry) {\n\n      var target = entry.target;\n\n      if (target.eventDefinitionType == 'bpmn:CancelEventDefinition' &&\n         !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.attachedToRef, 'bpmn:Transaction')) {\n        return false;\n      }\n      var cancelActivity = target.cancelActivity !== false;\n\n      var isCancelActivityEqual = businessObject.cancelActivity == cancelActivity;\n\n      return differentType(entry) || !differentType(entry) && !isCancelActivityEqual;\n    });\n\n    return this._createEntries(element, entries);\n  }\n\n  // intermediate events\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:IntermediateCatchEvent') ||\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:IntermediateThrowEvent')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.INTERMEDIATE_EVENT, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // gateways\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Gateway')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.GATEWAY, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // transactions\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:Transaction')) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TRANSACTION, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // expanded event sub processes\n  if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(businessObject) && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.EVENT_SUB_PROCESS, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // expanded sub processes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.SUBPROCESS_EXPANDED, differentType);\n\n    return this._createEntries(element, entries);\n  }\n\n  // collapsed ad hoc sub processes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:AdHocSubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TASK, function(entry) {\n\n      var target = entry.target;\n\n      var isTargetSubProcess = target.type === 'bpmn:SubProcess';\n\n      var isTargetExpanded = target.isExpanded === true;\n\n      return (0,_util_TypeUtil__WEBPACK_IMPORTED_MODULE_0__.isDifferentType)(element, target) && (!isTargetSubProcess || isTargetExpanded);\n    });\n\n    return this._createEntries(element, entries);\n  }\n\n  // sequence flows\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SequenceFlow')) {\n    return this._createSequenceFlowEntries(element, _replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.SEQUENCE_FLOW);\n  }\n\n  // flow nodes\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:FlowNode')) {\n    entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(_replace_ReplaceOptions__WEBPACK_IMPORTED_MODULE_2__.TASK, differentType);\n\n    // collapsed SubProcess can not be replaced with itself\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:SubProcess') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(businessObject)) {\n      entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(entries, function(entry) {\n        return entry.label !== 'Sub Process (collapsed)';\n      });\n    }\n\n    return this._createEntries(element, entries);\n  }\n\n  return [];\n};\n\n\n/**\n * Get a list of header items for the given element. This includes buttons\n * for multi instance markers and for the ad hoc marker.\n *\n * @param {djs.model.Base} element\n *\n * @return {Array<Object>} a list of menu entry items\n */\nReplaceMenuProvider.prototype.getHeaderEntries = function(element) {\n\n  var headerEntries = [];\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Activity') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(element)) {\n    headerEntries = headerEntries.concat(this._getLoopEntries(element));\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:DataObjectReference')) {\n    headerEntries = headerEntries.concat(this._getDataObjectIsCollection(element));\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Participant')) {\n    headerEntries = headerEntries.concat(this._getParticipantMultiplicity(element));\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:SubProcess') &&\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(element, 'bpmn:Transaction') &&\n      !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isEventSubProcess)(element)) {\n    headerEntries.push(this._getAdHocEntry(element));\n  }\n\n  return headerEntries;\n};\n\n\n/**\n * Creates an array of menu entry objects for a given element and filters the replaceOptions\n * according to a filter function.\n *\n * @param  {djs.model.Base} element\n * @param  {Object} replaceOptions\n *\n * @return {Array<Object>} a list of menu items\n */\nReplaceMenuProvider.prototype._createEntries = function(element, replaceOptions) {\n  var menuEntries = [];\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replaceOptions, function(definition) {\n    var entry = self._createMenuEntry(definition, element);\n\n    menuEntries.push(entry);\n  });\n\n  return menuEntries;\n};\n\n/**\n * Creates an array of menu entry objects for a given sequence flow.\n *\n * @param  {djs.model.Base} element\n * @param  {Object} replaceOptions\n\n * @return {Array<Object>} a list of menu items\n */\nReplaceMenuProvider.prototype._createSequenceFlowEntries = function(element, replaceOptions) {\n\n  var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n  var menuEntries = [];\n\n  var modeling = this._modeling,\n      moddle = this._moddle;\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replaceOptions, function(entry) {\n\n    switch (entry.actionName) {\n    case 'replace-with-default-flow':\n      if (businessObject.sourceRef.default !== businessObject &&\n            ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ExclusiveGateway') ||\n             (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:InclusiveGateway') ||\n             (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ComplexGateway') ||\n             (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity'))) {\n\n        menuEntries.push(self._createMenuEntry(entry, element, function() {\n          modeling.updateProperties(element.source, { default: businessObject });\n        }));\n      }\n      break;\n    case 'replace-with-conditional-flow':\n      if (!businessObject.conditionExpression && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity')) {\n\n        menuEntries.push(self._createMenuEntry(entry, element, function() {\n          var conditionExpression = moddle.create('bpmn:FormalExpression', { body: '' });\n\n          modeling.updateProperties(element, { conditionExpression: conditionExpression });\n        }));\n      }\n      break;\n    default:\n\n      // default flows\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity') && businessObject.conditionExpression) {\n        return menuEntries.push(self._createMenuEntry(entry, element, function() {\n          modeling.updateProperties(element, { conditionExpression: undefined });\n        }));\n      }\n\n      // conditional flows\n      if (((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ExclusiveGateway') ||\n           (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:InclusiveGateway') ||\n           (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:ComplexGateway') ||\n           (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject.sourceRef, 'bpmn:Activity')) &&\n           businessObject.sourceRef.default === businessObject) {\n\n        return menuEntries.push(self._createMenuEntry(entry, element, function() {\n          modeling.updateProperties(element.source, { default: undefined });\n        }));\n      }\n    }\n  });\n\n  return menuEntries;\n};\n\n\n/**\n * Creates and returns a single menu entry item.\n *\n * @param  {Object} definition a single replace options definition object\n * @param  {djs.model.Base} element\n * @param  {Function} [action] an action callback function which gets called when\n *                             the menu entry is being triggered.\n *\n * @return {Object} menu entry item\n */\nReplaceMenuProvider.prototype._createMenuEntry = function(definition, element, action) {\n  var translate = this._translate;\n  var replaceElement = this._bpmnReplace.replaceElement;\n\n  var replaceAction = function() {\n    return replaceElement(element, definition.target);\n  };\n\n  var label = definition.label;\n  if (label && typeof label === 'function') {\n    label = label(element);\n  }\n\n  action = action || replaceAction;\n\n  var menuEntry = {\n    label: translate(label),\n    className: definition.className,\n    id: definition.actionName,\n    action: action\n  };\n\n  return menuEntry;\n};\n\n/**\n * Get a list of menu items containing buttons for multi instance markers\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array<Object>} a list of menu items\n */\nReplaceMenuProvider.prototype._getLoopEntries = function(element) {\n\n  var self = this;\n  var translate = this._translate;\n\n  function toggleLoopEntry(event, entry) {\n    var loopCharacteristics;\n\n    if (entry.active) {\n      loopCharacteristics = undefined;\n    } else {\n      loopCharacteristics = self._moddle.create(entry.options.loopCharacteristics);\n\n      if (entry.options.isSequential) {\n        loopCharacteristics.isSequential = entry.options.isSequential;\n      }\n    }\n    self._modeling.updateProperties(element, { loopCharacteristics: loopCharacteristics });\n  }\n\n  var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element),\n      loopCharacteristics = businessObject.loopCharacteristics;\n\n  var isSequential,\n      isLoop,\n      isParallel;\n\n  if (loopCharacteristics) {\n    isSequential = loopCharacteristics.isSequential;\n    isLoop = loopCharacteristics.isSequential === undefined;\n    isParallel = loopCharacteristics.isSequential !== undefined && !loopCharacteristics.isSequential;\n  }\n\n\n  var loopEntries = [\n    {\n      id: 'toggle-parallel-mi',\n      className: 'bpmn-icon-parallel-mi-marker',\n      title: translate('Parallel Multi Instance'),\n      active: isParallel,\n      action: toggleLoopEntry,\n      options: {\n        loopCharacteristics: 'bpmn:MultiInstanceLoopCharacteristics',\n        isSequential: false\n      }\n    },\n    {\n      id: 'toggle-sequential-mi',\n      className: 'bpmn-icon-sequential-mi-marker',\n      title: translate('Sequential Multi Instance'),\n      active: isSequential,\n      action: toggleLoopEntry,\n      options: {\n        loopCharacteristics: 'bpmn:MultiInstanceLoopCharacteristics',\n        isSequential: true\n      }\n    },\n    {\n      id: 'toggle-loop',\n      className: 'bpmn-icon-loop-marker',\n      title: translate('Loop'),\n      active: isLoop,\n      action: toggleLoopEntry,\n      options: {\n        loopCharacteristics: 'bpmn:StandardLoopCharacteristics'\n      }\n    }\n  ];\n  return loopEntries;\n};\n\n/**\n * Get a list of menu items containing a button for the collection marker\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array<Object>} a list of menu items\n */\nReplaceMenuProvider.prototype._getDataObjectIsCollection = function(element) {\n\n  var self = this;\n  var translate = this._translate;\n\n  function toggleIsCollection(event, entry) {\n    self._modeling.updateModdleProperties(\n      element,\n      dataObject,\n      { isCollection: !entry.active });\n  }\n\n  var dataObject = element.businessObject.dataObjectRef,\n      isCollection = dataObject.isCollection;\n\n  var dataObjectEntries = [\n    {\n      id: 'toggle-is-collection',\n      className: 'bpmn-icon-parallel-mi-marker',\n      title: translate('Collection'),\n      active: isCollection,\n      action: toggleIsCollection,\n    }\n  ];\n  return dataObjectEntries;\n};\n\n/**\n * Get a list of menu items containing a button for the participant multiplicity marker\n *\n * @param  {djs.model.Base} element\n *\n * @return {Array<Object>} a list of menu items\n */\nReplaceMenuProvider.prototype._getParticipantMultiplicity = function(element) {\n\n  var self = this;\n  var bpmnFactory = this._bpmnFactory;\n  var translate = this._translate;\n\n  function toggleParticipantMultiplicity(event, entry) {\n    var isActive = entry.active;\n    var participantMultiplicity;\n\n    if (!isActive) {\n      participantMultiplicity = bpmnFactory.create('bpmn:ParticipantMultiplicity');\n    }\n\n    self._modeling.updateProperties(\n      element,\n      { participantMultiplicity: participantMultiplicity });\n  }\n\n  var participantMultiplicity = element.businessObject.participantMultiplicity;\n\n  var participantEntries = [\n    {\n      id: 'toggle-participant-multiplicity',\n      className: 'bpmn-icon-parallel-mi-marker',\n      title: translate('Participant Multiplicity'),\n      active: !!participantMultiplicity,\n      action: toggleParticipantMultiplicity,\n    }\n  ];\n  return participantEntries;\n};\n\n\n/**\n * Get the menu items containing a button for the ad hoc marker\n *\n * @param  {djs.model.Base} element\n *\n * @return {Object} a menu item\n */\nReplaceMenuProvider.prototype._getAdHocEntry = function(element) {\n  var translate = this._translate;\n  var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.getBusinessObject)(element);\n\n  var isAdHoc = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_1__.is)(businessObject, 'bpmn:AdHocSubProcess');\n\n  var replaceElement = this._bpmnReplace.replaceElement;\n\n  var adHocEntry = {\n    id: 'toggle-adhoc',\n    className: 'bpmn-icon-ad-hoc-marker',\n    title: translate('Ad-hoc'),\n    active: isAdHoc,\n    action: function(event, entry) {\n      if (isAdHoc) {\n        return replaceElement(element, { type: 'bpmn:SubProcess' }, {\n          autoResize: false,\n          layoutConnection: false\n        });\n      } else {\n        return replaceElement(element, { type: 'bpmn:AdHocSubProcess' }, {\n          autoResize: false,\n          layoutConnection: false\n        });\n      }\n    }\n  };\n\n  return adHocEntry;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/popup-menu/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/popup-menu/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_popup_menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/popup-menu */ \"./node_modules/diagram-js/lib/features/popup-menu/index.js\");\n/* harmony import */ var _replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../replace */ \"./node_modules/bpmn-js/lib/features/replace/index.js\");\n/* harmony import */ var _ReplaceMenuProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ReplaceMenuProvider */ \"./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_popup_menu__WEBPACK_IMPORTED_MODULE_0__.default,\n    _replace__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [ 'replaceMenuProvider' ],\n  replaceMenuProvider: [ 'type', _ReplaceMenuProvider__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isDifferentType\": () => (/* binding */ isDifferentType)\n/* harmony export */ });\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n\n\n\n\n\n/**\n * Returns true, if an element is from a different type\n * than a target definition. Takes into account the type,\n * event definition type and triggeredByEvent property.\n *\n * @param {djs.model.Base} element\n *\n * @return {boolean}\n */\nfunction isDifferentType(element) {\n\n  return function(entry) {\n    var target = entry.target;\n\n    var businessObject = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element),\n        eventDefinition = businessObject.eventDefinitions && businessObject.eventDefinitions[0];\n\n    var isTypeEqual = businessObject.$type === target.type;\n\n    var isEventDefinitionEqual = (\n      (eventDefinition && eventDefinition.$type) === target.eventDefinitionType\n    );\n\n    var isTriggeredByEventEqual = (\n      businessObject.triggeredByEvent === target.triggeredByEvent\n    );\n\n    var isExpandedEqual = (\n      target.isExpanded === undefined ||\n      target.isExpanded === (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(businessObject)\n    );\n\n    return !isTypeEqual || !isEventDefinitionEqual || !isTriggeredByEventEqual || !isExpandedEqual;\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnReplacePreview)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(css_escape__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 250;\n\n\nfunction BpmnReplacePreview(\n    eventBus, elementRegistry, elementFactory,\n    canvas, previewSupport) {\n\n  diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__.default.call(this, eventBus);\n\n  /**\n   * Replace the visuals of all elements in the context which can be replaced\n   *\n   * @param  {Object} context\n   */\n  function replaceVisual(context) {\n\n    var replacements = context.canExecute.replacements;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(replacements, function(replacement) {\n\n      var id = replacement.oldElementId;\n\n      var newElement = {\n        type: replacement.newElementType\n      };\n\n      // if the visual of the element is already replaced\n      if (context.visualReplacements[id]) {\n        return;\n      }\n\n      var element = elementRegistry.get(id);\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(newElement, { x: element.x, y: element.y });\n\n      // create a temporary shape\n      var tempShape = elementFactory.createShape(newElement);\n\n      canvas.addShape(tempShape, element.parent);\n\n      // select the original SVG element related to the element and hide it\n      var gfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_4__.query)('[data-element-id=\"' + css_escape__WEBPACK_IMPORTED_MODULE_1___default()(element.id) + '\"]', context.dragGroup);\n\n      if (gfx) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_5__.attr)(gfx, { display: 'none' });\n      }\n\n      // clone the gfx of the temporary shape and add it to the drag group\n      var dragger = previewSupport.addDragger(tempShape, context.dragGroup);\n\n      context.visualReplacements[id] = dragger;\n\n      canvas.removeShape(tempShape);\n    });\n  }\n\n  /**\n   * Restore the original visuals of the previously replaced elements\n   *\n   * @param  {Object} context\n   */\n  function restoreVisual(context) {\n\n    var visualReplacements = context.visualReplacements;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(visualReplacements, function(dragger, id) {\n\n      var originalGfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_4__.query)('[data-element-id=\"' + css_escape__WEBPACK_IMPORTED_MODULE_1___default()(id) + '\"]', context.dragGroup);\n\n      if (originalGfx) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_5__.attr)(originalGfx, { display: 'inline' });\n      }\n\n      dragger.remove();\n\n      if (visualReplacements[id]) {\n        delete visualReplacements[id];\n      }\n    });\n  }\n\n  eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n    var context = event.context,\n        canExecute = context.canExecute;\n\n    if (!context.visualReplacements) {\n      context.visualReplacements = {};\n    }\n\n    if (canExecute && canExecute.replacements) {\n      replaceVisual(context);\n    } else {\n      restoreVisual(context);\n    }\n  });\n}\n\nBpmnReplacePreview.$inject = [\n  'eventBus',\n  'elementRegistry',\n  'elementFactory',\n  'canvas',\n  'previewSupport'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnReplacePreview, diagram_js_lib_command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_2__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/replace-preview/index.js":
  /*!********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/replace-preview/index.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_preview_support__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _BpmnReplacePreview__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnReplacePreview */ \"./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_preview_support__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnReplacePreview' ],\n  bpmnReplacePreview: [ 'type', _BpmnReplacePreview__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace-preview/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js":
  /*!******************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnReplace)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../copy-paste/ModdleCopy */ \"./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js\");\n\n\n\n\n\n\n\n\n\n\nfunction copyProperties(source, target, properties) {\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(properties)) {\n    properties = [ properties ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(property) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(source[property])) {\n      target[property] = source[property];\n    }\n  });\n}\n\nvar CUSTOM_PROPERTIES = [\n  'cancelActivity',\n  'instantiate',\n  'eventGatewayType',\n  'triggeredByEvent',\n  'isInterrupting'\n];\n\n\nfunction toggeling(element, target) {\n\n  var oldCollapsed = (\n    element && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(element, 'collapsed') ? element.collapsed : !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(element)\n  );\n\n  var targetCollapsed;\n\n  if (target && ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'collapsed') || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'isExpanded'))) {\n\n    // property is explicitly set so use it\n    targetCollapsed = (\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'collapsed') ? target.collapsed : !target.isExpanded\n    );\n  } else {\n\n    // keep old state\n    targetCollapsed = oldCollapsed;\n  }\n\n  if (oldCollapsed !== targetCollapsed) {\n    element.collapsed = oldCollapsed;\n    return true;\n  }\n\n  return false;\n}\n\n\n\n/**\n * This module takes care of replacing BPMN elements\n */\nfunction BpmnReplace(\n    bpmnFactory,\n    elementFactory,\n    moddleCopy,\n    modeling,\n    replace,\n    rules,\n    selection\n) {\n\n  /**\n   * Prepares a new business object for the replacement element\n   * and triggers the replace operation.\n   *\n   * @param  {djs.model.Base} element\n   * @param  {Object} target\n   * @param  {Object} [hints]\n   *\n   * @return {djs.model.Base} the newly created element\n   */\n  function replaceElement(element, target, hints) {\n\n    hints = hints || {};\n\n    var type = target.type,\n        oldBusinessObject = element.businessObject;\n\n    if (isSubProcess(oldBusinessObject)) {\n      if (type === 'bpmn:SubProcess') {\n        if (toggeling(element, target)) {\n\n          // expanding or collapsing process\n          modeling.toggleCollapse(element);\n\n          return element;\n        }\n      }\n    }\n\n    var newBusinessObject = bpmnFactory.create(type);\n\n    var newElement = {\n      type: type,\n      businessObject: newBusinessObject\n    };\n\n    var elementProps = (0,_copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.getPropertyNames)(oldBusinessObject.$descriptor),\n        newElementProps = (0,_copy_paste_ModdleCopy__WEBPACK_IMPORTED_MODULE_2__.getPropertyNames)(newBusinessObject.$descriptor, true),\n        copyProps = intersection(elementProps, newElementProps);\n\n    // initialize special properties defined in target definition\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(newBusinessObject, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(target, CUSTOM_PROPERTIES));\n\n    var properties = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(copyProps, function(propertyName) {\n\n      // copying event definitions, unless we replace\n      if (propertyName === 'eventDefinitions') {\n        return hasEventDefinition(element, target.eventDefinitionType);\n      }\n\n      // retain loop characteristics if the target element\n      // is not an event sub process\n      if (propertyName === 'loopCharacteristics') {\n        return !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isEventSubProcess)(newBusinessObject);\n      }\n\n      // so the applied properties from 'target' don't get lost\n      if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(newBusinessObject, propertyName)) {\n        return false;\n      }\n\n      if (propertyName === 'processRef' && target.isExpanded === false) {\n        return false;\n      }\n\n      if (propertyName === 'triggeredByEvent') {\n        return false;\n      }\n\n      return true;\n    });\n\n    newBusinessObject = moddleCopy.copyElement(\n      oldBusinessObject,\n      newBusinessObject,\n      properties\n    );\n\n    // initialize custom BPMN extensions\n    if (target.eventDefinitionType) {\n\n      // only initialize with new eventDefinition\n      // if we did not set an event definition yet,\n      // i.e. because we copied it\n      if (!hasEventDefinition(newBusinessObject, target.eventDefinitionType)) {\n        newElement.eventDefinitionType = target.eventDefinitionType;\n        newElement.eventDefinitionAttrs = target.eventDefinitionAttrs;\n      }\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Activity')) {\n\n      if (isSubProcess(oldBusinessObject)) {\n\n        // no toggeling, so keep old state\n        newElement.isExpanded = (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(oldBusinessObject);\n      }\n\n      // else if property is explicitly set, use it\n      else if (target && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.has)(target, 'isExpanded')) {\n        newElement.isExpanded = target.isExpanded;\n      }\n\n      // TODO: need also to respect min/max Size\n      // copy size, from an expanded subprocess to an expanded alternative subprocess\n      // except bpmn:Task, because Task is always expanded\n      if (((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_1__.isExpanded)(oldBusinessObject) && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {\n        newElement.width = element.width;\n        newElement.height = element.height;\n      }\n    }\n\n    // remove children if not expanding sub process\n    if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {\n      hints.moveChildren = false;\n    }\n\n    // transform collapsed/expanded pools\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:Participant')) {\n\n      // create expanded pool\n      if (target.isExpanded === true) {\n        newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');\n      } else {\n\n        // remove children when transforming to collapsed pool\n        hints.moveChildren = false;\n      }\n\n      // apply same width and default height\n      newElement.width = element.width;\n      newElement.height = elementFactory._getDefaultSize(newBusinessObject).height;\n    }\n\n    if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {\n      newElement.height = elementFactory._getDefaultSize(newBusinessObject).height;\n      newElement.width = elementFactory._getDefaultSize(newBusinessObject).width;\n    }\n\n    newBusinessObject.name = oldBusinessObject.name;\n\n    // retain default flow's reference between inclusive <-> exclusive gateways and activities\n    if (\n      (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(oldBusinessObject, [\n        'bpmn:ExclusiveGateway',\n        'bpmn:InclusiveGateway',\n        'bpmn:Activity'\n      ]) &&\n      (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_4__.isAny)(newBusinessObject, [\n        'bpmn:ExclusiveGateway',\n        'bpmn:InclusiveGateway',\n        'bpmn:Activity'\n      ])\n    ) {\n      newBusinessObject.default = oldBusinessObject.default;\n    }\n\n    if (\n      target.host &&\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(oldBusinessObject, 'bpmn:BoundaryEvent') &&\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(newBusinessObject, 'bpmn:BoundaryEvent')\n    ) {\n      newElement.host = target.host;\n    }\n\n    // The DataStoreReference element is 14px wider than the DataObjectReference element\n    // This ensures that they stay centered on the x axis when replaced\n    if (\n      newElement.type === 'bpmn:DataStoreReference' ||\n      newElement.type === 'bpmn:DataObjectReference'\n    ) {\n      newElement.x = element.x + (element.width - newElement.width) / 2;\n    }\n\n    newElement.di = {};\n\n    // colors will be set to DI\n    copyProperties(oldBusinessObject.di, newElement.di, [\n      'fill',\n      'stroke',\n      'background-color',\n      'border-color',\n      'color'\n    ]);\n\n    newElement = replace.replaceElement(element, newElement, hints);\n\n    if (hints.select !== false) {\n      selection.select(newElement);\n    }\n\n    return newElement;\n  }\n\n  this.replaceElement = replaceElement;\n}\n\nBpmnReplace.$inject = [\n  'bpmnFactory',\n  'elementFactory',\n  'moddleCopy',\n  'modeling',\n  'replace',\n  'rules',\n  'selection'\n];\n\n\nfunction isSubProcess(bo) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(bo, 'bpmn:SubProcess');\n}\n\nfunction hasEventDefinition(element, type) {\n\n  var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.getBusinessObject)(element);\n\n  return type && bo.get('eventDefinitions').some(function(definition) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(definition, type);\n  });\n}\n\n/**\n * Compute intersection between two arrays.\n */\nfunction intersection(a1, a2) {\n  return a1.filter(function(el) {\n    return a2.indexOf(el) !== -1;\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"START_EVENT\": () => (/* binding */ START_EVENT),\n/* harmony export */   \"START_EVENT_SUB_PROCESS\": () => (/* binding */ START_EVENT_SUB_PROCESS),\n/* harmony export */   \"INTERMEDIATE_EVENT\": () => (/* binding */ INTERMEDIATE_EVENT),\n/* harmony export */   \"END_EVENT\": () => (/* binding */ END_EVENT),\n/* harmony export */   \"GATEWAY\": () => (/* binding */ GATEWAY),\n/* harmony export */   \"SUBPROCESS_EXPANDED\": () => (/* binding */ SUBPROCESS_EXPANDED),\n/* harmony export */   \"TRANSACTION\": () => (/* binding */ TRANSACTION),\n/* harmony export */   \"EVENT_SUB_PROCESS\": () => (/* binding */ EVENT_SUB_PROCESS),\n/* harmony export */   \"TASK\": () => (/* binding */ TASK),\n/* harmony export */   \"DATA_OBJECT_REFERENCE\": () => (/* binding */ DATA_OBJECT_REFERENCE),\n/* harmony export */   \"DATA_STORE_REFERENCE\": () => (/* binding */ DATA_STORE_REFERENCE),\n/* harmony export */   \"BOUNDARY_EVENT\": () => (/* binding */ BOUNDARY_EVENT),\n/* harmony export */   \"EVENT_SUB_PROCESS_START_EVENT\": () => (/* binding */ EVENT_SUB_PROCESS_START_EVENT),\n/* harmony export */   \"SEQUENCE_FLOW\": () => (/* binding */ SEQUENCE_FLOW),\n/* harmony export */   \"PARTICIPANT\": () => (/* binding */ PARTICIPANT)\n/* harmony export */ });\nvar START_EVENT = [\n  {\n    label: 'Start Event',\n    actionName: 'replace-with-none-start',\n    className: 'bpmn-icon-start-event-none',\n    target: {\n      type: 'bpmn:StartEvent'\n    }\n  },\n  {\n    label: 'Intermediate Throw Event',\n    actionName: 'replace-with-none-intermediate-throwing',\n    className: 'bpmn-icon-intermediate-event-none',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent'\n    }\n  },\n  {\n    label: 'End Event',\n    actionName: 'replace-with-none-end',\n    className: 'bpmn-icon-end-event-none',\n    target: {\n      type: 'bpmn:EndEvent'\n    }\n  },\n  {\n    label: 'Message Start Event',\n    actionName: 'replace-with-message-start',\n    className: 'bpmn-icon-start-event-message',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Timer Start Event',\n    actionName: 'replace-with-timer-start',\n    className: 'bpmn-icon-start-event-timer',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition'\n    }\n  },\n  {\n    label: 'Conditional Start Event',\n    actionName: 'replace-with-conditional-start',\n    className: 'bpmn-icon-start-event-condition',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n    }\n  },\n  {\n    label: 'Signal Start Event',\n    actionName: 'replace-with-signal-start',\n    className: 'bpmn-icon-start-event-signal',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  }\n];\n\nvar START_EVENT_SUB_PROCESS = [\n  {\n    label: 'Start Event',\n    actionName: 'replace-with-none-start',\n    className: 'bpmn-icon-start-event-none',\n    target: {\n      type: 'bpmn:StartEvent'\n    }\n  },\n  {\n    label: 'Intermediate Throw Event',\n    actionName: 'replace-with-none-intermediate-throwing',\n    className: 'bpmn-icon-intermediate-event-none',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent'\n    }\n  },\n  {\n    label: 'End Event',\n    actionName: 'replace-with-none-end',\n    className: 'bpmn-icon-end-event-none',\n    target: {\n      type: 'bpmn:EndEvent'\n    }\n  }\n];\n\nvar INTERMEDIATE_EVENT = [\n  {\n    label: 'Start Event',\n    actionName: 'replace-with-none-start',\n    className: 'bpmn-icon-start-event-none',\n    target: {\n      type: 'bpmn:StartEvent'\n    }\n  },\n  {\n    label: 'Intermediate Throw Event',\n    actionName: 'replace-with-none-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-none',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent'\n    }\n  },\n  {\n    label: 'End Event',\n    actionName: 'replace-with-none-end',\n    className: 'bpmn-icon-end-event-none',\n    target: {\n      type: 'bpmn:EndEvent'\n    }\n  },\n  {\n    label: 'Message Intermediate Catch Event',\n    actionName: 'replace-with-message-intermediate-catch',\n    className: 'bpmn-icon-intermediate-event-catch-message',\n    target: {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Message Intermediate Throw Event',\n    actionName: 'replace-with-message-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-throw-message',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Timer Intermediate Catch Event',\n    actionName: 'replace-with-timer-intermediate-catch',\n    className: 'bpmn-icon-intermediate-event-catch-timer',\n    target: {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition'\n    }\n  },\n  {\n    label: 'Escalation Intermediate Throw Event',\n    actionName: 'replace-with-escalation-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-throw-escalation',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition'\n    }\n  },\n  {\n    label: 'Conditional Intermediate Catch Event',\n    actionName: 'replace-with-conditional-intermediate-catch',\n    className: 'bpmn-icon-intermediate-event-catch-condition',\n    target: {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n    }\n  },\n  {\n    label: 'Link Intermediate Catch Event',\n    actionName: 'replace-with-link-intermediate-catch',\n    className: 'bpmn-icon-intermediate-event-catch-link',\n    target: {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: 'bpmn:LinkEventDefinition',\n      eventDefinitionAttrs: {\n        name: ''\n      }\n    }\n  },\n  {\n    label: 'Link Intermediate Throw Event',\n    actionName: 'replace-with-link-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-throw-link',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent',\n      eventDefinitionType: 'bpmn:LinkEventDefinition',\n      eventDefinitionAttrs: {\n        name: ''\n      }\n    }\n  },\n  {\n    label: 'Compensation Intermediate Throw Event',\n    actionName: 'replace-with-compensation-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-throw-compensation',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent',\n      eventDefinitionType: 'bpmn:CompensateEventDefinition'\n    }\n  },\n  {\n    label: 'Signal Intermediate Catch Event',\n    actionName: 'replace-with-signal-intermediate-catch',\n    className: 'bpmn-icon-intermediate-event-catch-signal',\n    target: {\n      type: 'bpmn:IntermediateCatchEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  },\n  {\n    label: 'Signal Intermediate Throw Event',\n    actionName: 'replace-with-signal-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-throw-signal',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  }\n];\n\nvar END_EVENT = [\n  {\n    label: 'Start Event',\n    actionName: 'replace-with-none-start',\n    className: 'bpmn-icon-start-event-none',\n    target: {\n      type: 'bpmn:StartEvent'\n    }\n  },\n  {\n    label: 'Intermediate Throw Event',\n    actionName: 'replace-with-none-intermediate-throw',\n    className: 'bpmn-icon-intermediate-event-none',\n    target: {\n      type: 'bpmn:IntermediateThrowEvent'\n    }\n  },\n  {\n    label: 'End Event',\n    actionName: 'replace-with-none-end',\n    className: 'bpmn-icon-end-event-none',\n    target: {\n      type: 'bpmn:EndEvent'\n    }\n  },\n  {\n    label: 'Message End Event',\n    actionName: 'replace-with-message-end',\n    className: 'bpmn-icon-end-event-message',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Escalation End Event',\n    actionName: 'replace-with-escalation-end',\n    className: 'bpmn-icon-end-event-escalation',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition'\n    }\n  },\n  {\n    label: 'Error End Event',\n    actionName: 'replace-with-error-end',\n    className: 'bpmn-icon-end-event-error',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:ErrorEventDefinition'\n    }\n  },\n  {\n    label: 'Cancel End Event',\n    actionName: 'replace-with-cancel-end',\n    className: 'bpmn-icon-end-event-cancel',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:CancelEventDefinition'\n    }\n  },\n  {\n    label: 'Compensation End Event',\n    actionName: 'replace-with-compensation-end',\n    className: 'bpmn-icon-end-event-compensation',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:CompensateEventDefinition'\n    }\n  },\n  {\n    label: 'Signal End Event',\n    actionName: 'replace-with-signal-end',\n    className: 'bpmn-icon-end-event-signal',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  },\n  {\n    label: 'Terminate End Event',\n    actionName: 'replace-with-terminate-end',\n    className: 'bpmn-icon-end-event-terminate',\n    target: {\n      type: 'bpmn:EndEvent',\n      eventDefinitionType: 'bpmn:TerminateEventDefinition'\n    }\n  }\n];\n\nvar GATEWAY = [\n  {\n    label: 'Exclusive Gateway',\n    actionName: 'replace-with-exclusive-gateway',\n    className: 'bpmn-icon-gateway-xor',\n    target: {\n      type: 'bpmn:ExclusiveGateway'\n    }\n  },\n  {\n    label: 'Parallel Gateway',\n    actionName: 'replace-with-parallel-gateway',\n    className: 'bpmn-icon-gateway-parallel',\n    target: {\n      type: 'bpmn:ParallelGateway'\n    }\n  },\n  {\n    label: 'Inclusive Gateway',\n    actionName: 'replace-with-inclusive-gateway',\n    className: 'bpmn-icon-gateway-or',\n    target: {\n      type: 'bpmn:InclusiveGateway'\n    }\n  },\n  {\n    label: 'Complex Gateway',\n    actionName: 'replace-with-complex-gateway',\n    className: 'bpmn-icon-gateway-complex',\n    target: {\n      type: 'bpmn:ComplexGateway'\n    }\n  },\n  {\n    label: 'Event based Gateway',\n    actionName: 'replace-with-event-based-gateway',\n    className: 'bpmn-icon-gateway-eventbased',\n    target: {\n      type: 'bpmn:EventBasedGateway',\n      instantiate: false,\n      eventGatewayType: 'Exclusive'\n    }\n  }\n\n  // Gateways deactivated until https://github.com/bpmn-io/bpmn-js/issues/194\n  // {\n  //   label: 'Event based instantiating Gateway',\n  //   actionName: 'replace-with-exclusive-event-based-gateway',\n  //   className: 'bpmn-icon-exclusive-event-based',\n  //   target: {\n  //     type: 'bpmn:EventBasedGateway'\n  //   },\n  //   options: {\n  //     businessObject: { instantiate: true, eventGatewayType: 'Exclusive' }\n  //   }\n  // },\n  // {\n  //   label: 'Parallel Event based instantiating Gateway',\n  //   actionName: 'replace-with-parallel-event-based-instantiate-gateway',\n  //   className: 'bpmn-icon-parallel-event-based-instantiate-gateway',\n  //   target: {\n  //     type: 'bpmn:EventBasedGateway'\n  //   },\n  //   options: {\n  //     businessObject: { instantiate: true, eventGatewayType: 'Parallel' }\n  //   }\n  // }\n];\n\nvar SUBPROCESS_EXPANDED = [\n  {\n    label: 'Transaction',\n    actionName: 'replace-with-transaction',\n    className: 'bpmn-icon-transaction',\n    target: {\n      type: 'bpmn:Transaction',\n      isExpanded: true\n    }\n  },\n  {\n    label: 'Event Sub Process',\n    actionName: 'replace-with-event-subprocess',\n    className: 'bpmn-icon-event-subprocess-expanded',\n    target: {\n      type: 'bpmn:SubProcess',\n      triggeredByEvent: true,\n      isExpanded: true\n    }\n  },\n  {\n    label: 'Sub Process (collapsed)',\n    actionName: 'replace-with-collapsed-subprocess',\n    className: 'bpmn-icon-subprocess-collapsed',\n    target: {\n      type: 'bpmn:SubProcess',\n      isExpanded: false\n    }\n  }\n];\n\nvar TRANSACTION = [\n  {\n    label: 'Sub Process',\n    actionName: 'replace-with-subprocess',\n    className: 'bpmn-icon-subprocess-expanded',\n    target: {\n      type: 'bpmn:SubProcess',\n      isExpanded: true\n    }\n  },\n  {\n    label: 'Event Sub Process',\n    actionName: 'replace-with-event-subprocess',\n    className: 'bpmn-icon-event-subprocess-expanded',\n    target: {\n      type: 'bpmn:SubProcess',\n      triggeredByEvent: true,\n      isExpanded: true\n    }\n  }\n];\n\nvar EVENT_SUB_PROCESS = [\n  {\n    label: 'Sub Process',\n    actionName: 'replace-with-subprocess',\n    className: 'bpmn-icon-subprocess-expanded',\n    target: {\n      type: 'bpmn:SubProcess',\n      isExpanded: true\n    }\n  },\n  {\n    label: 'Transaction',\n    actionName: 'replace-with-transaction',\n    className: 'bpmn-icon-transaction',\n    target: {\n      type: 'bpmn:Transaction',\n      isExpanded: true\n    }\n  }\n];\n\nvar TASK = [\n  {\n    label: 'Task',\n    actionName: 'replace-with-task',\n    className: 'bpmn-icon-task',\n    target: {\n      type: 'bpmn:Task'\n    }\n  },\n  {\n    label: 'Send Task',\n    actionName: 'replace-with-send-task',\n    className: 'bpmn-icon-send',\n    target: {\n      type: 'bpmn:SendTask'\n    }\n  },\n  {\n    label: 'Receive Task',\n    actionName: 'replace-with-receive-task',\n    className: 'bpmn-icon-receive',\n    target: {\n      type: 'bpmn:ReceiveTask'\n    }\n  },\n  {\n    label: 'User Task',\n    actionName: 'replace-with-user-task',\n    className: 'bpmn-icon-user',\n    target: {\n      type: 'bpmn:UserTask'\n    }\n  },\n  {\n    label: 'Manual Task',\n    actionName: 'replace-with-manual-task',\n    className: 'bpmn-icon-manual',\n    target: {\n      type: 'bpmn:ManualTask'\n    }\n  },\n  {\n    label: 'Business Rule Task',\n    actionName: 'replace-with-rule-task',\n    className: 'bpmn-icon-business-rule',\n    target: {\n      type: 'bpmn:BusinessRuleTask'\n    }\n  },\n  {\n    label: 'Service Task',\n    actionName: 'replace-with-service-task',\n    className: 'bpmn-icon-service',\n    target: {\n      type: 'bpmn:ServiceTask'\n    }\n  },\n  {\n    label: 'Script Task',\n    actionName: 'replace-with-script-task',\n    className: 'bpmn-icon-script',\n    target: {\n      type: 'bpmn:ScriptTask'\n    }\n  },\n  {\n    label: 'Call Activity',\n    actionName: 'replace-with-call-activity',\n    className: 'bpmn-icon-call-activity',\n    target: {\n      type: 'bpmn:CallActivity'\n    }\n  },\n  {\n    label: 'Sub Process (collapsed)',\n    actionName: 'replace-with-collapsed-subprocess',\n    className: 'bpmn-icon-subprocess-collapsed',\n    target: {\n      type: 'bpmn:SubProcess',\n      isExpanded: false\n    }\n  },\n  {\n    label: 'Sub Process (expanded)',\n    actionName: 'replace-with-expanded-subprocess',\n    className: 'bpmn-icon-subprocess-expanded',\n    target: {\n      type: 'bpmn:SubProcess',\n      isExpanded: true\n    }\n  }\n];\n\nvar DATA_OBJECT_REFERENCE = [\n  {\n    label: 'Data Store Reference',\n    actionName: 'replace-with-data-store-reference',\n    className: 'bpmn-icon-data-store',\n    target: {\n      type: 'bpmn:DataStoreReference'\n    }\n  }\n];\n\nvar DATA_STORE_REFERENCE = [\n  {\n    label: 'Data Object Reference',\n    actionName: 'replace-with-data-object-reference',\n    className: 'bpmn-icon-data-object',\n    target: {\n      type: 'bpmn:DataObjectReference'\n    }\n  }\n];\n\nvar BOUNDARY_EVENT = [\n  {\n    label: 'Message Boundary Event',\n    actionName: 'replace-with-message-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-message',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Timer Boundary Event',\n    actionName: 'replace-with-timer-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-timer',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition'\n    }\n  },\n  {\n    label: 'Escalation Boundary Event',\n    actionName: 'replace-with-escalation-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-escalation',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition'\n    }\n  },\n  {\n    label: 'Conditional Boundary Event',\n    actionName: 'replace-with-conditional-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-condition',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n    }\n  },\n  {\n    label: 'Error Boundary Event',\n    actionName: 'replace-with-error-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-error',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:ErrorEventDefinition'\n    }\n  },\n  {\n    label: 'Cancel Boundary Event',\n    actionName: 'replace-with-cancel-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-cancel',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:CancelEventDefinition'\n    }\n  },\n  {\n    label: 'Signal Boundary Event',\n    actionName: 'replace-with-signal-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-signal',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  },\n  {\n    label: 'Compensation Boundary Event',\n    actionName: 'replace-with-compensation-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-compensation',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:CompensateEventDefinition'\n    }\n  },\n  {\n    label: 'Message Boundary Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-message-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-non-interrupting-message',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition',\n      cancelActivity: false\n    }\n  },\n  {\n    label: 'Timer Boundary Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-timer-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-non-interrupting-timer',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition',\n      cancelActivity: false\n    }\n  },\n  {\n    label: 'Escalation Boundary Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-escalation-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-non-interrupting-escalation',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition',\n      cancelActivity: false\n    }\n  },\n  {\n    label: 'Conditional Boundary Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-conditional-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-non-interrupting-condition',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition',\n      cancelActivity: false\n    }\n  },\n  {\n    label: 'Signal Boundary Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-signal-boundary',\n    className: 'bpmn-icon-intermediate-event-catch-non-interrupting-signal',\n    target: {\n      type: 'bpmn:BoundaryEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition',\n      cancelActivity: false\n    }\n  }\n];\n\nvar EVENT_SUB_PROCESS_START_EVENT = [\n  {\n    label: 'Message Start Event',\n    actionName: 'replace-with-message-start',\n    className: 'bpmn-icon-start-event-message',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition'\n    }\n  },\n  {\n    label: 'Timer Start Event',\n    actionName: 'replace-with-timer-start',\n    className: 'bpmn-icon-start-event-timer',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition'\n    }\n  },\n  {\n    label: 'Conditional Start Event',\n    actionName: 'replace-with-conditional-start',\n    className: 'bpmn-icon-start-event-condition',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition'\n    }\n  },\n  {\n    label: 'Signal Start Event',\n    actionName: 'replace-with-signal-start',\n    className: 'bpmn-icon-start-event-signal',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition'\n    }\n  },\n  {\n    label: 'Error Start Event',\n    actionName: 'replace-with-error-start',\n    className: 'bpmn-icon-start-event-error',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:ErrorEventDefinition'\n    }\n  },\n  {\n    label: 'Escalation Start Event',\n    actionName: 'replace-with-escalation-start',\n    className: 'bpmn-icon-start-event-escalation',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition'\n    }\n  },\n  {\n    label: 'Compensation Start Event',\n    actionName: 'replace-with-compensation-start',\n    className: 'bpmn-icon-start-event-compensation',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:CompensateEventDefinition'\n    }\n  },\n  {\n    label: 'Message Start Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-message-start',\n    className: 'bpmn-icon-start-event-non-interrupting-message',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:MessageEventDefinition',\n      isInterrupting: false\n    }\n  },\n  {\n    label: 'Timer Start Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-timer-start',\n    className: 'bpmn-icon-start-event-non-interrupting-timer',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:TimerEventDefinition',\n      isInterrupting: false\n    }\n  },\n  {\n    label: 'Conditional Start Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-conditional-start',\n    className: 'bpmn-icon-start-event-non-interrupting-condition',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:ConditionalEventDefinition',\n      isInterrupting: false\n    }\n  },\n  {\n    label: 'Signal Start Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-signal-start',\n    className: 'bpmn-icon-start-event-non-interrupting-signal',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:SignalEventDefinition',\n      isInterrupting: false\n    }\n  },\n  {\n    label: 'Escalation Start Event (non-interrupting)',\n    actionName: 'replace-with-non-interrupting-escalation-start',\n    className: 'bpmn-icon-start-event-non-interrupting-escalation',\n    target: {\n      type: 'bpmn:StartEvent',\n      eventDefinitionType: 'bpmn:EscalationEventDefinition',\n      isInterrupting: false\n    }\n  }\n];\n\nvar SEQUENCE_FLOW = [\n  {\n    label: 'Sequence Flow',\n    actionName: 'replace-with-sequence-flow',\n    className: 'bpmn-icon-connection'\n  },\n  {\n    label: 'Default Flow',\n    actionName: 'replace-with-default-flow',\n    className: 'bpmn-icon-default-flow'\n  },\n  {\n    label: 'Conditional Flow',\n    actionName: 'replace-with-conditional-flow',\n    className: 'bpmn-icon-conditional-flow'\n  }\n];\n\nvar PARTICIPANT = [\n  {\n    label: 'Expanded Pool',\n    actionName: 'replace-with-expanded-pool',\n    className: 'bpmn-icon-participant',\n    target: {\n      type: 'bpmn:Participant',\n      isExpanded: true\n    }\n  },\n  {\n    label: function(element) {\n      var label = 'Empty Pool';\n\n      if (element.children && element.children.length) {\n        label += ' (removes content)';\n      }\n\n      return label;\n    },\n    actionName: 'replace-with-collapsed-pool',\n\n    // TODO(@janstuemmel): maybe design new icon\n    className: 'bpmn-icon-lane',\n    target: {\n      type: 'bpmn:Participant',\n      isExpanded: false\n    }\n  }\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/replace/index.js":
  /*!************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/replace/index.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copy_paste__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../copy-paste */ \"./node_modules/bpmn-js/lib/features/copy-paste/index.js\");\n/* harmony import */ var diagram_js_lib_features_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/replace */ \"./node_modules/diagram-js/lib/features/replace/index.js\");\n/* harmony import */ var diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _BpmnReplace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BpmnReplace */ \"./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _copy_paste__WEBPACK_IMPORTED_MODULE_0__.default,\n    diagram_js_lib_features_replace__WEBPACK_IMPORTED_MODULE_1__.default,\n    diagram_js_lib_features_selection__WEBPACK_IMPORTED_MODULE_2__.default\n  ],\n  bpmnReplace: [ 'type', _BpmnReplace__WEBPACK_IMPORTED_MODULE_3__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/replace/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/rules/BpmnRules.js":
  /*!**************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/rules/BpmnRules.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnRules)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/rules/RuleProvider */ \"./node_modules/diagram-js/lib/features/rules/RuleProvider.js\");\n/* harmony import */ var _snapping_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../snapping/BpmnSnappingUtil */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * BPMN specific modeling rule\n */\nfunction BpmnRules(eventBus) {\n  diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnRules, diagram_js_lib_features_rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnRules.$inject = [ 'eventBus' ];\n\nBpmnRules.prototype.init = function() {\n\n  this.addRule('connection.start', function(context) {\n    var source = context.source;\n\n    return canStartConnection(source);\n  });\n\n  this.addRule('connection.create', function(context) {\n    var source = context.source,\n        target = context.target,\n        hints = context.hints || {},\n        targetParent = hints.targetParent,\n        targetAttach = hints.targetAttach;\n\n    // don't allow incoming connections on\n    // newly created boundary events\n    // to boundary events\n    if (targetAttach) {\n      return false;\n    }\n\n    // temporarily set target parent for scoping\n    // checks to work\n    if (targetParent) {\n      target.parent = targetParent;\n    }\n\n    try {\n      return canConnect(source, target);\n    } finally {\n\n      // unset temporary target parent\n      if (targetParent) {\n        target.parent = null;\n      }\n    }\n  });\n\n  this.addRule('connection.reconnect', function(context) {\n\n    var connection = context.connection,\n        source = context.source,\n        target = context.target;\n\n    return canConnect(source, target, connection);\n  });\n\n  this.addRule('connection.updateWaypoints', function(context) {\n    return {\n      type: context.connection.type\n    };\n  });\n\n  this.addRule('shape.resize', function(context) {\n\n    var shape = context.shape,\n        newBounds = context.newBounds;\n\n    return canResize(shape, newBounds);\n  });\n\n  this.addRule('elements.create', function(context) {\n    var elements = context.elements,\n        position = context.position,\n        target = context.target;\n\n    if (isConnection(target) && !canInsert(elements, target, position)) {\n      return false;\n    }\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.every)(elements, function(element) {\n      if (isConnection(element)) {\n        return canConnect(element.source, element.target, element);\n      }\n\n      if (element.host) {\n        return canAttach(element, element.host, null, position);\n      }\n\n      return canCreate(element, target, null, position);\n    });\n  });\n\n  this.addRule('elements.move', function(context) {\n\n    var target = context.target,\n        shapes = context.shapes,\n        position = context.position;\n\n    return canAttach(shapes, target, null, position) ||\n           canReplace(shapes, target, position) ||\n           canMove(shapes, target, position) ||\n           canInsert(shapes, target, position);\n  });\n\n  this.addRule('shape.create', function(context) {\n    return canCreate(\n      context.shape,\n      context.target,\n      context.source,\n      context.position\n    );\n  });\n\n  this.addRule('shape.attach', function(context) {\n\n    return canAttach(\n      context.shape,\n      context.target,\n      null,\n      context.position\n    );\n  });\n\n  this.addRule('element.copy', function(context) {\n    var element = context.element,\n        elements = context.elements;\n\n    return canCopy(elements, element);\n  });\n};\n\nBpmnRules.prototype.canConnectMessageFlow = canConnectMessageFlow;\n\nBpmnRules.prototype.canConnectSequenceFlow = canConnectSequenceFlow;\n\nBpmnRules.prototype.canConnectDataAssociation = canConnectDataAssociation;\n\nBpmnRules.prototype.canConnectAssociation = canConnectAssociation;\n\nBpmnRules.prototype.canMove = canMove;\n\nBpmnRules.prototype.canAttach = canAttach;\n\nBpmnRules.prototype.canReplace = canReplace;\n\nBpmnRules.prototype.canDrop = canDrop;\n\nBpmnRules.prototype.canInsert = canInsert;\n\nBpmnRules.prototype.canCreate = canCreate;\n\nBpmnRules.prototype.canConnect = canConnect;\n\nBpmnRules.prototype.canResize = canResize;\n\nBpmnRules.prototype.canCopy = canCopy;\n\n/**\n * Utility functions for rule checking\n */\n\n/**\n * Checks if given element can be used for starting connection.\n *\n * @param  {Element} source\n * @return {boolean}\n */\nfunction canStartConnection(element) {\n  if (nonExistingOrLabel(element)) {\n    return null;\n  }\n\n  return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [\n    'bpmn:FlowNode',\n    'bpmn:InteractionNode',\n    'bpmn:DataObjectReference',\n    'bpmn:DataStoreReference',\n    'bpmn:Group',\n    'bpmn:TextAnnotation'\n  ]);\n}\n\nfunction nonExistingOrLabel(element) {\n  return !element || (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element);\n}\n\nfunction isSame(a, b) {\n  return a === b;\n}\n\nfunction getOrganizationalParent(element) {\n\n  do {\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Process')) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Participant')) {\n      return (\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element).processRef ||\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element)\n      );\n    }\n  } while ((element = element.parent));\n\n}\n\nfunction isTextAnnotation(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:TextAnnotation');\n}\n\nfunction isGroup(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Group') && !element.labelTarget;\n}\n\nfunction isCompensationBoundary(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n         hasEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\nfunction isForCompensation(e) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(e).isForCompensation;\n}\n\nfunction isSameOrganization(a, b) {\n  var parentA = getOrganizationalParent(a),\n      parentB = getOrganizationalParent(b);\n\n  return parentA === parentB;\n}\n\nfunction isMessageFlowSource(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:InteractionNode') &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && (\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Event') || (\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ThrowEvent') &&\n        hasEventDefinitionOrNone(element, 'bpmn:MessageEventDefinition')\n      )\n    )\n  );\n}\n\nfunction isMessageFlowTarget(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:InteractionNode') &&\n    !isForCompensation(element) && (\n      !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Event') || (\n        (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:CatchEvent') &&\n        hasEventDefinitionOrNone(element, 'bpmn:MessageEventDefinition')\n      )\n    ) && !(\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n      !hasEventDefinition(element, 'bpmn:MessageEventDefinition')\n    )\n  );\n}\n\nfunction getScopeParent(element) {\n\n  var parent = element;\n\n  while ((parent = parent.parent)) {\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(parent, 'bpmn:FlowElementsContainer')) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(parent);\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(parent, 'bpmn:Participant')) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(parent).processRef;\n    }\n  }\n\n  return null;\n}\n\nfunction isSameScope(a, b) {\n  var scopeParentA = getScopeParent(a),\n      scopeParentB = getScopeParent(b);\n\n  return scopeParentA === scopeParentB;\n}\n\nfunction hasEventDefinition(element, eventDefinition) {\n  var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n  return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(bo.eventDefinitions || [], function(definition) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(definition, eventDefinition);\n  });\n}\n\nfunction hasEventDefinitionOrNone(element, eventDefinition) {\n  var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n  return (bo.eventDefinitions || []).every(function(definition) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(definition, eventDefinition);\n  });\n}\n\nfunction isSequenceFlowSource(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowNode') &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:EndEvent') &&\n    !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(element) &&\n    !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateThrowEvent') &&\n      hasEventDefinition(element, 'bpmn:LinkEventDefinition')\n    ) &&\n    !isCompensationBoundary(element) &&\n    !isForCompensation(element)\n  );\n}\n\nfunction isSequenceFlowTarget(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowNode') &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:StartEvent') &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') &&\n    !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(element) &&\n    !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') &&\n      hasEventDefinition(element, 'bpmn:LinkEventDefinition')\n    ) &&\n    !isForCompensation(element)\n  );\n}\n\nfunction isEventBasedTarget(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ReceiveTask') || (\n      (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') && (\n        hasEventDefinition(element, 'bpmn:MessageEventDefinition') ||\n        hasEventDefinition(element, 'bpmn:TimerEventDefinition') ||\n        hasEventDefinition(element, 'bpmn:ConditionalEventDefinition') ||\n        hasEventDefinition(element, 'bpmn:SignalEventDefinition')\n      )\n    )\n  );\n}\n\nfunction isConnection(element) {\n  return element.waypoints;\n}\n\nfunction getParents(element) {\n\n  var parents = [];\n\n  while (element) {\n    element = element.parent;\n\n    if (element) {\n      parents.push(element);\n    }\n  }\n\n  return parents;\n}\n\nfunction isParent(possibleParent, element) {\n  var allParents = getParents(element);\n  return allParents.indexOf(possibleParent) !== -1;\n}\n\nfunction canConnect(source, target, connection) {\n\n  if (nonExistingOrLabel(source) || nonExistingOrLabel(target)) {\n    return null;\n  }\n\n  if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(connection, 'bpmn:DataAssociation')) {\n\n    if (canConnectMessageFlow(source, target)) {\n      return { type: 'bpmn:MessageFlow' };\n    }\n\n    if (canConnectSequenceFlow(source, target)) {\n      return { type: 'bpmn:SequenceFlow' };\n    }\n  }\n\n  var connectDataAssociation = canConnectDataAssociation(source, target);\n\n  if (connectDataAssociation) {\n    return connectDataAssociation;\n  }\n\n  if (isCompensationBoundary(source) && isForCompensation(target)) {\n    return {\n      type: 'bpmn:Association',\n      associationDirection: 'One'\n    };\n  }\n\n  if (canConnectAssociation(source, target)) {\n\n    return {\n      type: 'bpmn:Association'\n    };\n  }\n\n  return false;\n}\n\n/**\n * Can an element be dropped into the target element\n *\n * @return {boolean}\n */\nfunction canDrop(element, target, position) {\n\n  // can move labels and groups everywhere\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element) || isGroup(element)) {\n    return true;\n  }\n\n\n  // disallow to create elements on collapsed pools\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Participant') && !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(target)) {\n    return false;\n  }\n\n  // allow to create new participants on\n  // existing collaboration and process diagrams\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Participant')) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Process') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration');\n  }\n\n  // allow moving DataInput / DataOutput within its original container only\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ 'bpmn:DataInput', 'bpmn:DataOutput' ])) {\n\n    if (element.parent) {\n      return target === element.parent;\n    }\n  }\n\n  // allow creating lanes on participants and other lanes only\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane')) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Participant') || (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Lane');\n  }\n\n  // disallow dropping boundary events which cannot replace with intermediate event\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && !isDroppableBoundaryEvent(element)) {\n    return false;\n  }\n\n  // drop flow elements onto flow element containers\n  // and participants\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:FlowElement') && !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:DataStoreReference')) {\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:FlowElementsContainer')) {\n      return (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(target);\n    }\n\n    return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:Participant', 'bpmn:Lane' ]);\n  }\n\n  // disallow dropping data store reference if there is no process to append to\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:DataStoreReference') && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration')) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.some)((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(target).get('participants'), function(participant) {\n      return !!participant.get('processRef');\n    });\n  }\n\n  // account for the fact that data associations are always\n  // rendered and moved to top (Process or Collaboration level)\n  //\n  // artifacts may be placed wherever, too\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(element, [ 'bpmn:Artifact', 'bpmn:DataAssociation', 'bpmn:DataStoreReference' ])) {\n    return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [\n      'bpmn:Collaboration',\n      'bpmn:Lane',\n      'bpmn:Participant',\n      'bpmn:Process',\n      'bpmn:SubProcess' ]);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:MessageFlow')) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Collaboration')\n      || element.source.parent == target\n      || element.target.parent == target;\n  }\n\n  return false;\n}\n\nfunction isDroppableBoundaryEvent(event) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(event).cancelActivity && (\n    hasNoEventDefinition(event) || hasCommonBoundaryIntermediateEventDefinition(event)\n  );\n}\n\nfunction isBoundaryEvent(element) {\n  return !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element) && (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent');\n}\n\nfunction isLane(element) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane');\n}\n\n/**\n * We treat IntermediateThrowEvents as boundary events during create,\n * this must be reflected in the rules.\n */\nfunction isBoundaryCandidate(element) {\n  if (isBoundaryEvent(element)) {\n    return true;\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateThrowEvent') && hasNoEventDefinition(element)) {\n    return true;\n  }\n\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:IntermediateCatchEvent') &&\n    hasCommonBoundaryIntermediateEventDefinition(element)\n  );\n}\n\nfunction hasNoEventDefinition(element) {\n  var bo = (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.getBusinessObject)(element);\n\n  return bo && !(bo.eventDefinitions && bo.eventDefinitions.length);\n}\n\nfunction hasCommonBoundaryIntermediateEventDefinition(element) {\n  return hasOneOfEventDefinitions(element, [\n    'bpmn:MessageEventDefinition',\n    'bpmn:TimerEventDefinition',\n    'bpmn:SignalEventDefinition',\n    'bpmn:ConditionalEventDefinition'\n  ]);\n}\n\nfunction hasOneOfEventDefinitions(element, eventDefinitions) {\n  return eventDefinitions.some(function(definition) {\n    return hasEventDefinition(element, definition);\n  });\n}\n\nfunction isReceiveTaskAfterEventBasedGateway(element) {\n  return (\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:ReceiveTask') &&\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(element.incoming, function(incoming) {\n      return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(incoming.source, 'bpmn:EventBasedGateway');\n    })\n  );\n}\n\n\nfunction canAttach(elements, target, source, position) {\n\n  if (!Array.isArray(elements)) {\n    elements = [ elements ];\n  }\n\n  // only (re-)attach one element at a time\n  if (elements.length !== 1) {\n    return false;\n  }\n\n  var element = elements[0];\n\n  // do not attach labels\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element)) {\n    return false;\n  }\n\n  // only handle boundary events\n  if (!isBoundaryCandidate(element)) {\n    return false;\n  }\n\n  // disallow drop on event sub processes\n  if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(target)) {\n    return false;\n  }\n\n  // only allow drop on non compensation activities\n  if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Activity') || isForCompensation(target)) {\n    return false;\n  }\n\n  // only attach to subprocess border\n  if (position && !(0,_snapping_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_7__.getBoundaryAttachment)(position, target)) {\n    return false;\n  }\n\n  // do not attach on receive tasks after event based gateways\n  if (isReceiveTaskAfterEventBasedGateway(target)) {\n    return false;\n  }\n\n  return 'attach';\n}\n\n\n/**\n * Defines how to replace elements for a given target.\n *\n * Returns an array containing all elements which will be replaced.\n *\n * @example\n *\n *  [{ id: 'IntermediateEvent_2',\n *     type: 'bpmn:StartEvent'\n *   },\n *   { id: 'IntermediateEvent_5',\n *     type: 'bpmn:EndEvent'\n *   }]\n *\n * @param  {Array} elements\n * @param  {Object} target\n *\n * @return {Object} an object containing all elements which have to be replaced\n */\nfunction canReplace(elements, target, position) {\n\n  if (!target) {\n    return false;\n  }\n\n  var canExecute = {\n    replacements: []\n  };\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(elements, function(element) {\n\n    if (!(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isEventSubProcess)(target)) {\n\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:StartEvent') &&\n          element.type !== 'label' &&\n          canDrop(element, target)) {\n\n        // replace a non-interrupting start event by a blank interrupting start event\n        // when the target is not an event sub process\n        if (!(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isInterrupting)(element)) {\n          canExecute.replacements.push({\n            oldElementId: element.id,\n            newElementType: 'bpmn:StartEvent'\n          });\n        }\n\n        // replace an error/escalation/compensate start event by a blank interrupting start event\n        // when the target is not an event sub process\n        if ((0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasErrorEventDefinition)(element) ||\n            (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasEscalationEventDefinition)(element) ||\n            (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.hasCompensateEventDefinition)(element)) {\n          canExecute.replacements.push({\n            oldElementId: element.id,\n            newElementType: 'bpmn:StartEvent'\n          });\n        }\n\n        // replace a typed start event by a blank interrupting start event\n        // when the target is a sub process but not an event sub process\n        if (hasOneOfEventDefinitions(element,\n          [\n            'bpmn:MessageEventDefinition',\n            'bpmn:TimerEventDefinition',\n            'bpmn:SignalEventDefinition',\n            'bpmn:ConditionalEventDefinition'\n          ]) &&\n            (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:SubProcess')) {\n          canExecute.replacements.push({\n            oldElementId: element.id,\n            newElementType: 'bpmn:StartEvent'\n          });\n        }\n      }\n    }\n\n    if (!(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(target, 'bpmn:Transaction')) {\n      if (hasEventDefinition(element, 'bpmn:CancelEventDefinition') &&\n          element.type !== 'label') {\n\n        if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:EndEvent') && canDrop(element, target)) {\n          canExecute.replacements.push({\n            oldElementId: element.id,\n            newElementType: 'bpmn:EndEvent'\n          });\n        }\n\n        if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:BoundaryEvent') && canAttach(element, target, null, position)) {\n          canExecute.replacements.push({\n            oldElementId: element.id,\n            newElementType: 'bpmn:BoundaryEvent'\n          });\n        }\n      }\n    }\n  });\n\n  return canExecute.replacements.length ? canExecute : false;\n}\n\nfunction canMove(elements, target) {\n\n  // do not move selection containing lanes\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.some)(elements, isLane)) {\n    return false;\n  }\n\n  // allow default move check to start move operation\n  if (!target) {\n    return true;\n  }\n\n  return elements.every(function(element) {\n    return canDrop(element, target);\n  });\n}\n\nfunction canCreate(shape, target, source, position) {\n\n  if (!target) {\n    return false;\n  }\n\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(shape) || isGroup(shape)) {\n    return true;\n  }\n\n  if (isSame(source, target)) {\n    return false;\n  }\n\n  // ensure we do not drop the element\n  // into source\n  if (source && isParent(source, target)) {\n    return false;\n  }\n\n  return canDrop(shape, target, position) || canInsert(shape, target, position);\n}\n\nfunction canResize(shape, newBounds) {\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:SubProcess')) {\n    return (\n      (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_6__.isExpanded)(shape) && (\n        !newBounds || (newBounds.width >= 100 && newBounds.height >= 80)\n      )\n    );\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:Lane')) {\n    return !newBounds || (newBounds.width >= 130 && newBounds.height >= 60);\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:Participant')) {\n    return !newBounds || (newBounds.width >= 250 && newBounds.height >= 50);\n  }\n\n  if (isTextAnnotation(shape)) {\n    return true;\n  }\n\n  if (isGroup(shape)) {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * Check, whether one side of the relationship\n * is a text annotation.\n */\nfunction isOneTextAnnotation(source, target) {\n\n  var sourceTextAnnotation = isTextAnnotation(source),\n      targetTextAnnotation = isTextAnnotation(target);\n\n  return (\n    (sourceTextAnnotation || targetTextAnnotation) &&\n    (sourceTextAnnotation !== targetTextAnnotation)\n  );\n}\n\n\nfunction canConnectAssociation(source, target) {\n\n  // do not connect connections\n  if (isConnection(source) || isConnection(target)) {\n    return false;\n  }\n\n  // compensation boundary events are exception\n  if (isCompensationBoundary(source) && isForCompensation(target)) {\n    return true;\n  }\n\n  // don't connect parent <-> child\n  if (isParent(target, source) || isParent(source, target)) {\n    return false;\n  }\n\n  // allow connection of associations between <!TextAnnotation> and <TextAnnotation>\n  if (isOneTextAnnotation(source, target)) {\n    return true;\n  }\n\n  // can connect associations where we can connect\n  // data associations, too (!)\n  return !!canConnectDataAssociation(source, target);\n}\n\nfunction canConnectMessageFlow(source, target) {\n\n  // during connect user might move mouse out of canvas\n  // https://github.com/bpmn-io/bpmn-js/issues/1033\n  if (getRootElement(source) && !getRootElement(target)) {\n    return false;\n  }\n\n  return (\n    isMessageFlowSource(source) &&\n    isMessageFlowTarget(target) &&\n    !isSameOrganization(source, target)\n  );\n}\n\nfunction canConnectSequenceFlow(source, target) {\n\n  if (\n    isEventBasedTarget(target) &&\n    target.incoming.length > 0 &&\n    areOutgoingEventBasedGatewayConnections(target.incoming) &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(source, 'bpmn:EventBasedGateway')\n  ) {\n    return false;\n  }\n\n  return isSequenceFlowSource(source) &&\n         isSequenceFlowTarget(target) &&\n         isSameScope(source, target) &&\n         !((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(source, 'bpmn:EventBasedGateway') && !isEventBasedTarget(target));\n}\n\n\nfunction canConnectDataAssociation(source, target) {\n\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(source, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ]) &&\n      (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:Activity', 'bpmn:ThrowEvent' ])) {\n    return { type: 'bpmn:DataInputAssociation' };\n  }\n\n  if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(target, [ 'bpmn:DataObjectReference', 'bpmn:DataStoreReference' ]) &&\n      (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(source, [ 'bpmn:Activity', 'bpmn:CatchEvent' ])) {\n    return { type: 'bpmn:DataOutputAssociation' };\n  }\n\n  return false;\n}\n\nfunction canInsert(shape, flow, position) {\n\n  if (!flow) {\n    return false;\n  }\n\n  if (Array.isArray(shape)) {\n    if (shape.length !== 1) {\n      return false;\n    }\n\n    shape = shape[0];\n  }\n\n  if (flow.source === shape ||\n      flow.target === shape) {\n    return false;\n  }\n\n  // return true if we can drop on the\n  // underlying flow parent\n  //\n  // at this point we are not really able to talk\n  // about connection rules (yet)\n\n  return (\n    (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.isAny)(flow, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ]) &&\n    !(0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(flow) &&\n    (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:FlowNode') &&\n    !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(shape, 'bpmn:BoundaryEvent') &&\n    canDrop(shape, flow.parent, position));\n}\n\nfunction includes(elements, element) {\n  return (elements && element) && elements.indexOf(element) !== -1;\n}\n\nfunction canCopy(elements, element) {\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_4__.isLabel)(element)) {\n    return true;\n  }\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(element, 'bpmn:Lane') && !includes(elements, element.parent)) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction isOutgoingEventBasedGatewayConnection(connection) {\n\n  if (connection && connection.source) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_5__.is)(connection.source, 'bpmn:EventBasedGateway');\n  }\n}\n\nfunction areOutgoingEventBasedGatewayConnections(connections) {\n  connections = connections || [];\n\n  return connections.some(isOutgoingEventBasedGatewayConnection);\n}\n\nfunction getRootElement(element) {\n  return (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(element, 'bpmn:Process') || (0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_3__.getParent)(element, 'bpmn:Collaboration');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/rules/BpmnRules.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/rules/index.js":
  /*!**********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/rules/index.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _BpmnRules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnRules */ \"./node_modules/bpmn-js/lib/features/rules/BpmnRules.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_rules__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnRules' ],\n  bpmnRules: [ 'type', _BpmnRules__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/rules/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js":
  /*!************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnSearchProvider)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n\n\n\n\n\n/**\n * Provides ability to search through BPMN elements\n */\nfunction BpmnSearchProvider(elementRegistry, searchPad, canvas) {\n\n  this._elementRegistry = elementRegistry;\n  this._canvas = canvas;\n\n  searchPad.registerProvider(this);\n}\n\nBpmnSearchProvider.$inject = [\n  'elementRegistry',\n  'searchPad',\n  'canvas'\n];\n\n\n/**\n * Finds all elements that match given pattern\n *\n * <Result> :\n *  {\n *    primaryTokens: <Array<Token>>,\n *    secondaryTokens: <Array<Token>>,\n *    element: <Element>\n *  }\n *\n * <Token> :\n *  {\n *    normal|matched: <string>\n *  }\n *\n * @param  {string} pattern\n * @return {Array<Result>}\n */\nBpmnSearchProvider.prototype.find = function(pattern) {\n  var rootElement = this._canvas.getRootElement();\n\n  var elements = this._elementRegistry.filter(function(element) {\n    if (element.labelTarget) {\n      return false;\n    }\n    return true;\n  });\n\n  // do not include root element\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n    return element !== rootElement;\n  });\n\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elements, function(element) {\n    return {\n      primaryTokens: matchAndSplit((0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element), pattern),\n      secondaryTokens: matchAndSplit(element.id, pattern),\n      element: element\n    };\n  });\n\n  // exclude non-matched elements\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n    return hasMatched(element.primaryTokens) || hasMatched(element.secondaryTokens);\n  });\n\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elements, function(element) {\n    return (0,_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_1__.getLabel)(element.element) + element.element.id;\n  });\n\n  return elements;\n};\n\n\nfunction hasMatched(tokens) {\n  var matched = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(tokens, function(t) {\n    return !!t.matched;\n  });\n\n  return matched.length > 0;\n}\n\n\nfunction matchAndSplit(text, pattern) {\n  var tokens = [],\n      originalText = text;\n\n  if (!text) {\n    return tokens;\n  }\n\n  text = text.toLowerCase();\n  pattern = pattern.toLowerCase();\n\n  var i = text.indexOf(pattern);\n\n  if (i > -1) {\n    if (i !== 0) {\n      tokens.push({\n        normal: originalText.substr(0, i)\n      });\n    }\n\n    tokens.push({\n      matched: originalText.substr(i, pattern.length)\n    });\n\n    if (pattern.length + i < text.length) {\n      tokens.push({\n        normal: originalText.substr(pattern.length + i, text.length)\n      });\n    }\n  } else {\n    tokens.push({\n      normal: originalText\n    });\n  }\n\n  return tokens;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/search/index.js":
  /*!***********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/search/index.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_search_pad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/search-pad */ \"./node_modules/diagram-js/lib/features/search-pad/index.js\");\n/* harmony import */ var _BpmnSearchProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnSearchProvider */ \"./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_search_pad__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'bpmnSearch'],\n  bpmnSearch: [ 'type', _BpmnSearchProvider__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/search/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnConnectSnapping)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var diagram_js_lib_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../modeling/util/ModelingUtil */ \"./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\nvar BOUNDARY_TO_HOST_THRESHOLD = 40;\r\n\r\nvar TARGET_BOUNDS_PADDING = 20,\r\n    TASK_BOUNDS_PADDING = 10;\r\n\r\nvar TARGET_CENTER_PADDING = 20;\r\n\r\nvar AXES = [ 'x', 'y' ];\r\n\r\nvar abs = Math.abs;\r\n\r\n/**\r\n * Snap during connect.\r\n *\r\n * @param {EventBus} eventBus\r\n */\r\nfunction BpmnConnectSnapping(eventBus) {\r\n  eventBus.on([\r\n    'connect.hover',\r\n    'connect.move',\r\n    'connect.end',\r\n  ], HIGHER_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        canExecute = context.canExecute,\r\n        start = context.start,\r\n        hover = context.hover,\r\n        source = context.source,\r\n        target = context.target;\r\n\r\n    // do NOT snap on CMD\r\n    if (event.originalEvent && (0,diagram_js_lib_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n      return;\r\n    }\r\n\r\n    if (!context.initialConnectionStart) {\r\n      context.initialConnectionStart = context.connectionStart;\r\n    }\r\n\r\n    // snap hover\r\n    if (canExecute && hover) {\r\n      snapToShape(event, hover, getTargetBoundsPadding(hover));\r\n    }\r\n\r\n    if (hover && isAnyType(canExecute, [\r\n      'bpmn:Association',\r\n      'bpmn:DataInputAssociation',\r\n      'bpmn:DataOutputAssociation',\r\n      'bpmn:SequenceFlow'\r\n    ])) {\r\n      context.connectionStart = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(start);\r\n\r\n      // snap hover\r\n      if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(hover, [ 'bpmn:Event', 'bpmn:Gateway' ])) {\r\n        snapToPosition(event, (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(hover));\r\n      }\r\n\r\n      // snap hover\r\n      if ((0,_modeling_util_ModelingUtil__WEBPACK_IMPORTED_MODULE_2__.isAny)(hover, [ 'bpmn:Task', 'bpmn:SubProcess' ])) {\r\n        snapToTargetMid(event, hover);\r\n      }\r\n\r\n      // snap source and target\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(source, 'bpmn:BoundaryEvent') && target === source.host) {\r\n        snapBoundaryEventLoop(event);\r\n      }\r\n\r\n    } else if (isType(canExecute, 'bpmn:MessageFlow')) {\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(start, 'bpmn:Event')) {\r\n\r\n        // snap start\r\n        context.connectionStart = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(start);\r\n      }\r\n\r\n      if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(hover, 'bpmn:Event')) {\r\n\r\n        // snap hover\r\n        snapToPosition(event, (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(hover));\r\n      }\r\n\r\n    } else {\r\n\r\n      // un-snap source\r\n      context.connectionStart = context.initialConnectionStart;\r\n    }\r\n  });\r\n}\r\n\r\nBpmnConnectSnapping.$inject = [ 'eventBus' ];\r\n\r\n\r\n// helpers //////////\r\n\r\n// snap to target if event in target\r\nfunction snapToShape(event, target, padding) {\r\n  AXES.forEach(function(axis) {\r\n    var dimensionForAxis = getDimensionForAxis(axis, target);\r\n\r\n    if (event[ axis ] < target[ axis ] + padding) {\r\n      (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, target[ axis ] + padding);\r\n    } else if (event[ axis ] > target[ axis ] + dimensionForAxis - padding) {\r\n      (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, target[ axis ] + dimensionForAxis - padding);\r\n    }\r\n  });\r\n}\r\n\r\n// snap to target mid if event in target mid\r\nfunction snapToTargetMid(event, target) {\r\n  var targetMid = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(target);\r\n\r\n  AXES.forEach(function(axis) {\r\n    if (isMid(event, target, axis)) {\r\n      (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, targetMid[ axis ]);\r\n    }\r\n  });\r\n}\r\n\r\n// snap to prevent loop overlapping boundary event\r\nfunction snapBoundaryEventLoop(event) {\r\n  var context = event.context,\r\n      source = context.source,\r\n      target = context.target;\r\n\r\n  if (isReverse(context)) {\r\n    return;\r\n  }\r\n\r\n  var sourceMid = (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(source),\r\n      orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.getOrientation)(sourceMid, target, -10),\r\n      axes = [];\r\n\r\n  if (/top|bottom/.test(orientation)) {\r\n    axes.push('x');\r\n  }\r\n\r\n  if (/left|right/.test(orientation)) {\r\n    axes.push('y');\r\n  }\r\n\r\n  axes.forEach(function(axis) {\r\n    var coordinate = event[ axis ], newCoordinate;\r\n\r\n    if (abs(coordinate - sourceMid[ axis ]) < BOUNDARY_TO_HOST_THRESHOLD) {\r\n      if (coordinate > sourceMid[ axis ]) {\r\n        newCoordinate = sourceMid[ axis ] + BOUNDARY_TO_HOST_THRESHOLD;\r\n      }\r\n      else {\r\n        newCoordinate = sourceMid[ axis ] - BOUNDARY_TO_HOST_THRESHOLD;\r\n      }\r\n\r\n      (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, newCoordinate);\r\n    }\r\n  });\r\n}\r\n\r\nfunction snapToPosition(event, position) {\r\n  (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', position.x);\r\n  (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', position.y);\r\n}\r\n\r\nfunction isType(attrs, type) {\r\n  return attrs && attrs.type === type;\r\n}\r\n\r\nfunction isAnyType(attrs, types) {\r\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_5__.some)(types, function(type) {\r\n    return isType(attrs, type);\r\n  });\r\n}\r\n\r\nfunction getDimensionForAxis(axis, element) {\r\n  return axis === 'x' ? element.width : element.height;\r\n}\r\n\r\nfunction getTargetBoundsPadding(target) {\r\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(target, 'bpmn:Task')) {\r\n    return TASK_BOUNDS_PADDING;\r\n  } else {\r\n    return TARGET_BOUNDS_PADDING;\r\n  }\r\n}\r\n\r\nfunction isMid(event, target, axis) {\r\n  return event[ axis ] > target[ axis ] + TARGET_CENTER_PADDING\r\n    && event[ axis ] < target[ axis ] + getDimensionForAxis(axis, target) - TARGET_CENTER_PADDING;\r\n}\r\n\r\nfunction isReverse(context) {\r\n  var hover = context.hover,\r\n      source = context.source;\r\n\r\n  return hover && source && hover === source;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnCreateMoveSnapping)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/snapping/CreateMoveSnapping */ \"./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! diagram-js/lib/features/snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BpmnSnappingUtil */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar HIGH_PRIORITY = 1500;\n\n\n/**\n * Snap during create and move.\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction BpmnCreateMoveSnapping(eventBus, injector) {\n  injector.invoke(diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default, this);\n\n  // creating first participant\n  eventBus.on([ 'create.move', 'create.end' ], HIGH_PRIORITY, setSnappedIfConstrained);\n\n  // snap boundary events\n  eventBus.on([\n    'create.move',\n    'create.end',\n    'shape.move.move',\n    'shape.move.end'\n  ], HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        canExecute = context.canExecute,\n        target = context.target;\n\n    var canAttach = canExecute && (canExecute === 'attach' || canExecute.attach);\n\n    if (canAttach && !(0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.isSnapped)(event)) {\n      snapBoundaryEvent(event, target);\n    }\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(BpmnCreateMoveSnapping, diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default);\n\nBpmnCreateMoveSnapping.$inject = [\n  'eventBus',\n  'injector'\n];\n\nBpmnCreateMoveSnapping.prototype.initSnap = function(event) {\n  var snapContext = diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.initSnap.call(this, event);\n\n  var shape = event.shape;\n\n  var isMove = !!this._elementRegistry.get(shape.id);\n\n  // snap to docking points\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.outgoing, function(connection) {\n    var docking = connection.waypoints[0];\n\n    docking = docking.original || docking;\n\n    snapContext.setSnapOrigin(connection.id + '-docking', getDockingSnapOrigin(docking, isMove, event));\n  });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.incoming, function(connection) {\n    var docking = connection.waypoints[connection.waypoints.length - 1];\n\n    docking = docking.original || docking;\n\n    snapContext.setSnapOrigin(connection.id + '-docking', getDockingSnapOrigin(docking, isMove, event));\n  });\n\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(shape, 'bpmn:Participant')) {\n\n    // snap to borders with higher priority\n    snapContext.setSnapLocations([ 'top-left', 'bottom-right', 'mid' ]);\n  }\n\n  return snapContext;\n};\n\nBpmnCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) {\n  diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.addSnapTargetPoints.call(this, snapPoints, shape, target);\n\n  var snapTargets = this.getSnapTargets(shape, target);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\n\n    // handle TRBL alignment\n    //\n    // * with container elements\n    // * with text annotations\n    if (isContainer(snapTarget) || areAll([ shape, snapTarget ], 'bpmn:TextAnnotation')) {\n      snapPoints.add('top-left', (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.topLeft)(snapTarget));\n      snapPoints.add('bottom-right', (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.bottomRight)(snapTarget));\n    }\n  });\n\n  var elementRegistry = this._elementRegistry;\n\n  // snap to docking points if not create mode\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.incoming, function(connection) {\n    if (elementRegistry.get(shape.id)) {\n\n      if (!includes(snapTargets, connection.source)) {\n        snapPoints.add('mid', (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(connection.source));\n      }\n\n      var docking = connection.waypoints[0];\n      snapPoints.add(connection.id + '-docking', docking.original || docking);\n    }\n  });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(shape.outgoing, function(connection) {\n    if (elementRegistry.get(shape.id)) {\n\n      if (!includes(snapTargets, connection.target)) {\n        snapPoints.add('mid', (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(connection.target));\n      }\n\n      var docking = connection.waypoints[ connection.waypoints.length - 1 ];\n\n      snapPoints.add(connection.id + '-docking', docking.original || docking);\n    }\n  });\n\n  // add sequence flow parents as snap targets\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(target, 'bpmn:SequenceFlow')) {\n    snapPoints = this.addSnapTargetPoints(snapPoints, shape, target.parent);\n  }\n\n  return snapPoints;\n};\n\nBpmnCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) {\n  return diagram_js_lib_features_snapping_CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_1__.default.prototype.getSnapTargets.call(this, shape, target)\n    .filter(function(snapTarget) {\n\n      // do not snap to lanes\n      return !(0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(snapTarget, 'bpmn:Lane');\n    });\n};\n\n// helpers //////////\n\nfunction snapBoundaryEvent(event, target) {\n  var targetTRBL = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)(target);\n\n  var direction = (0,_BpmnSnappingUtil__WEBPACK_IMPORTED_MODULE_6__.getBoundaryAttachment)(event, target);\n\n  var context = event.context,\n      shape = context.shape;\n\n  var offset;\n\n  if (shape.parent) {\n    offset = { x: 0, y: 0 };\n  } else {\n    offset = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.getMid)(shape);\n  }\n\n  if (/top/.test(direction)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', targetTRBL.top - offset.y);\n  } else if (/bottom/.test(direction)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', targetTRBL.bottom - offset.y);\n  }\n\n  if (/left/.test(direction)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', targetTRBL.left - offset.x);\n  } else if (/right/.test(direction)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', targetTRBL.right - offset.x);\n  }\n}\n\nfunction areAll(elements, type) {\n  return elements.every(function(el) {\n    return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(el, type);\n  });\n}\n\nfunction isContainer(element) {\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:SubProcess') && (0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_7__.isExpanded)(element)) {\n    return true;\n  }\n\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_4__.is)(element, 'bpmn:Participant');\n}\n\n\nfunction setSnappedIfConstrained(event) {\n  var context = event.context,\n      createConstraints = context.createConstraints;\n\n  if (!createConstraints) {\n    return;\n  }\n\n  var top = createConstraints.top,\n      right = createConstraints.right,\n      bottom = createConstraints.bottom,\n      left = createConstraints.left;\n\n  if ((left && left >= event.x) || (right && right <= event.x)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'x', event.x);\n  }\n\n  if ((top && top >= event.y) || (bottom && bottom <= event.y)) {\n    (0,diagram_js_lib_features_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, 'y', event.y);\n  }\n}\n\nfunction includes(array, value) {\n  return array.indexOf(value) !== -1;\n}\n\nfunction getDockingSnapOrigin(docking, isMove, event) {\n  return isMove ? (\n    {\n      x: docking.x - event.x,\n      y: docking.y - event.y\n    }\n  ) : {\n    x: docking.x,\n    y: docking.y\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js":
  /*!************************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getBoundaryAttachment\": () => (/* binding */ getBoundaryAttachment)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\r\n\r\nfunction getBoundaryAttachment(position, targetBounds) {\r\n\r\n  var orientation = (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(position, targetBounds, -15);\r\n\r\n  if (orientation !== 'intersect') {\r\n    return orientation;\r\n  } else {\r\n    return null;\r\n  }\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/features/snapping/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/features/snapping/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _BpmnConnectSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnConnectSnapping */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js\");\n/* harmony import */ var _BpmnCreateMoveSnapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BpmnCreateMoveSnapping */ \"./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js\");\n/* harmony import */ var diagram_js_lib_features_snapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/features/snapping */ \"./node_modules/diagram-js/lib/features/snapping/index.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [ diagram_js_lib_features_snapping__WEBPACK_IMPORTED_MODULE_0__.default ],\n  __init__: [\n    'connectSnapping',\n    'createMoveSnapping'\n  ],\n  connectSnapping: [ 'type', _BpmnConnectSnapping__WEBPACK_IMPORTED_MODULE_1__.default ],\n  createMoveSnapping: [ 'type', _BpmnCreateMoveSnapping__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/features/snapping/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/import/BpmnImporter.js":
  /*!*********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/import/BpmnImporter.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnImporter)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var _util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/LabelUtil */ \"./node_modules/bpmn-js/lib/util/LabelUtil.js\");\n/* harmony import */ var diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_DiUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/DiUtil */ \"./node_modules/bpmn-js/lib/util/DiUtil.js\");\n/* harmony import */ var _features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../features/label-editing/LabelUtil */ \"./node_modules/bpmn-js/lib/features/label-editing/LabelUtil.js\");\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Util */ \"./node_modules/bpmn-js/lib/import/Util.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction elementData(semantic, attrs) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n    id: semantic.id,\n    type: semantic.$type,\n    businessObject: semantic\n  }, attrs);\n}\n\nfunction getWaypoints(bo, source, target) {\n\n  var waypoints = bo.di.waypoint;\n\n  if (!waypoints || waypoints.length < 2) {\n    return [ (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source), (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target) ];\n  }\n\n  return waypoints.map(function(p) {\n    return { x: p.x, y: p.y };\n  });\n}\n\nfunction notYetDrawn(translate, semantic, refSemantic, property) {\n  return new Error(translate('element {element} referenced by {referenced}#{property} not yet drawn', {\n    element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(refSemantic),\n    referenced: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic),\n    property: property\n  }));\n}\n\n\n/**\n * An importer that adds bpmn elements to the canvas\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementFactory} elementFactory\n * @param {ElementRegistry} elementRegistry\n * @param {Function} translate\n * @param {TextRenderer} textRenderer\n */\nfunction BpmnImporter(\n    eventBus, canvas, elementFactory,\n    elementRegistry, translate, textRenderer) {\n\n  this._eventBus = eventBus;\n  this._canvas = canvas;\n  this._elementFactory = elementFactory;\n  this._elementRegistry = elementRegistry;\n  this._translate = translate;\n  this._textRenderer = textRenderer;\n}\n\nBpmnImporter.$inject = [\n  'eventBus',\n  'canvas',\n  'elementFactory',\n  'elementRegistry',\n  'translate',\n  'textRenderer'\n];\n\n\n/**\n * Add bpmn element (semantic) to the canvas onto the\n * specified parent shape.\n */\nBpmnImporter.prototype.add = function(semantic, parentElement) {\n\n  var di = semantic.di,\n      element,\n      translate = this._translate,\n      hidden;\n\n  var parentIndex;\n\n  // ROOT ELEMENT\n  // handle the special case that we deal with a\n  // invisible root element (process or collaboration)\n  if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNPlane')) {\n\n    // add a virtual element (not being drawn)\n    element = this._elementFactory.createRoot(elementData(semantic));\n\n    this._canvas.setRootElement(element);\n  }\n\n  // SHAPE\n  else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNShape')) {\n\n    var collapsed = !(0,_util_DiUtil__WEBPACK_IMPORTED_MODULE_4__.isExpanded)(semantic),\n        isFrame = isFrameElement(semantic);\n    hidden = parentElement && (parentElement.hidden || parentElement.collapsed);\n\n    var bounds = semantic.di.bounds;\n\n    element = this._elementFactory.createShape(elementData(semantic, {\n      collapsed: collapsed,\n      hidden: hidden,\n      x: Math.round(bounds.x),\n      y: Math.round(bounds.y),\n      width: Math.round(bounds.width),\n      height: Math.round(bounds.height),\n      isFrame: isFrame\n    }));\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:BoundaryEvent')) {\n      this._attachBoundary(semantic, element);\n    }\n\n    // insert lanes behind other flow nodes (cf. #727)\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:Lane')) {\n      parentIndex = 0;\n    }\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:DataStoreReference')) {\n\n      // check whether data store is inside our outside of its semantic parent\n      if (!isPointInsideBBox(parentElement, (0,diagram_js_lib_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(bounds))) {\n        parentElement = this._canvas.getRootElement();\n      }\n    }\n\n    this._canvas.addShape(element, parentElement, parentIndex);\n  }\n\n  // CONNECTION\n  else if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(di, 'bpmndi:BPMNEdge')) {\n\n    var source = this._getSource(semantic),\n        target = this._getTarget(semantic);\n\n    hidden = parentElement && (parentElement.hidden || parentElement.collapsed);\n\n    element = this._elementFactory.createConnection(elementData(semantic, {\n      hidden: hidden,\n      source: source,\n      target: target,\n      waypoints: getWaypoints(semantic, source, target)\n    }));\n\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:DataAssociation')) {\n\n      // render always on top; this ensures DataAssociations\n      // are rendered correctly across different \"hacks\" people\n      // love to model such as cross participant / sub process\n      // associations\n      parentElement = null;\n    }\n\n    // insert sequence flows behind other flow nodes (cf. #727)\n    if ((0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:SequenceFlow')) {\n      parentIndex = 0;\n    }\n\n    this._canvas.addConnection(element, parentElement, parentIndex);\n  } else {\n    throw new Error(translate('unknown di {di} for element {semantic}', {\n      di: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(di),\n      semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic)\n    }));\n  }\n\n  // (optional) LABEL\n  if ((0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__.isLabelExternal)(semantic) && (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element)) {\n    this.addLabel(semantic, element);\n  }\n\n\n  this._eventBus.fire('bpmnElement.added', { element: element });\n\n  return element;\n};\n\n\n/**\n * Attach the boundary element to the given host\n *\n * @param {ModdleElement} boundarySemantic\n * @param {djs.model.Base} boundaryElement\n */\nBpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElement) {\n  var translate = this._translate;\n  var hostSemantic = boundarySemantic.attachedToRef;\n\n  if (!hostSemantic) {\n    throw new Error(translate('missing {semantic}#attachedToRef', {\n      semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(boundarySemantic)\n    }));\n  }\n\n  var host = this._elementRegistry.get(hostSemantic.id),\n      attachers = host && host.attachers;\n\n  if (!host) {\n    throw notYetDrawn(translate, boundarySemantic, hostSemantic, 'attachedToRef');\n  }\n\n  // wire element.host <> host.attachers\n  boundaryElement.host = host;\n\n  if (!attachers) {\n    host.attachers = attachers = [];\n  }\n\n  if (attachers.indexOf(boundaryElement) === -1) {\n    attachers.push(boundaryElement);\n  }\n};\n\n\n/**\n * add label for an element\n */\nBpmnImporter.prototype.addLabel = function(semantic, element) {\n  var bounds,\n      text,\n      label;\n\n  bounds = (0,_util_LabelUtil__WEBPACK_IMPORTED_MODULE_5__.getExternalLabelBounds)(semantic, element);\n\n  text = (0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element);\n\n  if (text) {\n\n    // get corrected bounds from actual layouted text\n    bounds = this._textRenderer.getExternalLabelBounds(bounds, text);\n  }\n\n  label = this._elementFactory.createLabel(elementData(semantic, {\n    id: semantic.id + '_label',\n    labelTarget: element,\n    type: 'label',\n    hidden: element.hidden || !(0,_features_label_editing_LabelUtil__WEBPACK_IMPORTED_MODULE_6__.getLabel)(element),\n    x: Math.round(bounds.x),\n    y: Math.round(bounds.y),\n    width: Math.round(bounds.width),\n    height: Math.round(bounds.height)\n  }));\n\n  return this._canvas.addShape(label, element.parent);\n};\n\n/**\n * Return the drawn connection end based on the given side.\n *\n * @throws {Error} if the end is not yet drawn\n */\nBpmnImporter.prototype._getEnd = function(semantic, side) {\n\n  var element,\n      refSemantic,\n      type = semantic.$type,\n      translate = this._translate;\n\n  refSemantic = semantic[side + 'Ref'];\n\n  // handle mysterious isMany DataAssociation#sourceRef\n  if (side === 'source' && type === 'bpmn:DataInputAssociation') {\n    refSemantic = refSemantic && refSemantic[0];\n  }\n\n  // fix source / target for DataInputAssociation / DataOutputAssociation\n  if (side === 'source' && type === 'bpmn:DataOutputAssociation' ||\n      side === 'target' && type === 'bpmn:DataInputAssociation') {\n\n    refSemantic = semantic.$parent;\n  }\n\n  element = refSemantic && this._getElement(refSemantic);\n\n  if (element) {\n    return element;\n  }\n\n  if (refSemantic) {\n    throw notYetDrawn(translate, semantic, refSemantic, side + 'Ref');\n  } else {\n    throw new Error(translate('{semantic}#{side} Ref not specified', {\n      semantic: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(semantic),\n      side: side\n    }));\n  }\n};\n\nBpmnImporter.prototype._getSource = function(semantic) {\n  return this._getEnd(semantic, 'source');\n};\n\nBpmnImporter.prototype._getTarget = function(semantic) {\n  return this._getEnd(semantic, 'target');\n};\n\n\nBpmnImporter.prototype._getElement = function(semantic) {\n  return this._elementRegistry.get(semantic.id);\n};\n\n\n// helpers ////////////////////\n\nfunction isPointInsideBBox(bbox, point) {\n  var x = point.x,\n      y = point.y;\n\n  return x >= bbox.x &&\n    x <= bbox.x + bbox.width &&\n    y >= bbox.y &&\n    y <= bbox.y + bbox.height;\n}\n\nfunction isFrameElement(semantic) {\n  return (0,_util_ModelUtil__WEBPACK_IMPORTED_MODULE_3__.is)(semantic, 'bpmn:Group');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/BpmnImporter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js":
  /*!***********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BpmnTreeWalker)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! object-refs */ \"./node_modules/object-refs/index.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(object_refs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Util */ \"./node_modules/bpmn-js/lib/import/Util.js\");\n\n\n\n\n\n\nvar diRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_0___default())(\n  { name: 'bpmnElement', enumerable: true },\n  { name: 'di', configurable: true }\n);\n\n/**\n * Returns true if an element has the given meta-model type\n *\n * @param  {ModdleElement}  element\n * @param  {string}         type\n *\n * @return {boolean}\n */\nfunction is(element, type) {\n  return element.$instanceOf(type);\n}\n\n\n/**\n * Find a suitable display candidate for definitions where the DI does not\n * correctly specify one.\n */\nfunction findDisplayCandidate(definitions) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(definitions.rootElements, function(e) {\n    return is(e, 'bpmn:Process') || is(e, 'bpmn:Collaboration');\n  });\n}\n\n\nfunction BpmnTreeWalker(handler, translate) {\n\n  // list of containers already walked\n  var handledElements = {};\n\n  // list of elements to handle deferred to ensure\n  // prerequisites are drawn\n  var deferred = [];\n\n  // Helpers //////////////////////\n\n  function contextual(fn, ctx) {\n    return function(e) {\n      fn(e, ctx);\n    };\n  }\n\n  function handled(element) {\n    handledElements[element.id] = element;\n  }\n\n  function isHandled(element) {\n    return handledElements[element.id];\n  }\n\n  function visit(element, ctx) {\n\n    var gfx = element.gfx;\n\n    // avoid multiple rendering of elements\n    if (gfx) {\n      throw new Error(\n        translate('already rendered {element}', { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(element) })\n      );\n    }\n\n    // call handler\n    return handler.element(element, ctx);\n  }\n\n  function visitRoot(element, diagram) {\n    return handler.root(element, diagram);\n  }\n\n  function visitIfDi(element, ctx) {\n\n    try {\n      var gfx = element.di && visit(element, ctx);\n\n      handled(element);\n\n      return gfx;\n    } catch (e) {\n      logError(e.message, { element: element, error: e });\n\n      console.error(translate('failed to import {element}', { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(element) }));\n      console.error(e);\n    }\n  }\n\n  function logError(message, context) {\n    handler.error(message, context);\n  }\n\n  // DI handling //////////////////////\n\n  function registerDi(di) {\n    var bpmnElement = di.bpmnElement;\n\n    if (bpmnElement) {\n      if (bpmnElement.di) {\n        logError(\n          translate('multiple DI elements defined for {element}', {\n            element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(bpmnElement)\n          }),\n          { element: bpmnElement }\n        );\n      } else {\n        diRefs.bind(bpmnElement, 'di');\n        bpmnElement.di = di;\n      }\n    } else {\n      logError(\n        translate('no bpmnElement referenced in {element}', {\n          element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(di)\n        }),\n        { element: di }\n      );\n    }\n  }\n\n  function handleDiagram(diagram) {\n    handlePlane(diagram.plane);\n  }\n\n  function handlePlane(plane) {\n    registerDi(plane);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(plane.planeElement, handlePlaneElement);\n  }\n\n  function handlePlaneElement(planeElement) {\n    registerDi(planeElement);\n  }\n\n\n  // Semantic handling //////////////////////\n\n  /**\n   * Handle definitions and return the rendered diagram (if any)\n   *\n   * @param {ModdleElement} definitions to walk and import\n   * @param {ModdleElement} [diagram] specific diagram to import and display\n   *\n   * @throws {Error} if no diagram to display could be found\n   */\n  function handleDefinitions(definitions, diagram) {\n\n    // make sure we walk the correct bpmnElement\n\n    var diagrams = definitions.diagrams;\n\n    if (diagram && diagrams.indexOf(diagram) === -1) {\n      throw new Error(translate('diagram not part of bpmn:Definitions'));\n    }\n\n    if (!diagram && diagrams && diagrams.length) {\n      diagram = diagrams[0];\n    }\n\n    // no diagram -> nothing to import\n    if (!diagram) {\n      throw new Error(translate('no diagram to display'));\n    }\n\n    // load DI from selected diagram only\n    handleDiagram(diagram);\n\n\n    var plane = diagram.plane;\n\n    if (!plane) {\n      throw new Error(translate(\n        'no plane for {element}',\n        { element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(diagram) }\n      ));\n    }\n\n    var rootElement = plane.bpmnElement;\n\n    // ensure we default to a suitable display candidate (process or collaboration),\n    // even if non is specified in DI\n    if (!rootElement) {\n      rootElement = findDisplayCandidate(definitions);\n\n      if (!rootElement) {\n        throw new Error(translate('no process or collaboration to display'));\n      } else {\n\n        logError(\n          translate('correcting missing bpmnElement on {plane} to {rootElement}', {\n            plane: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(plane),\n            rootElement: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(rootElement)\n          })\n        );\n\n        // correct DI on the fly\n        plane.bpmnElement = rootElement;\n        registerDi(plane);\n      }\n    }\n\n\n    var ctx = visitRoot(rootElement, plane);\n\n    if (is(rootElement, 'bpmn:Process')) {\n      handleProcess(rootElement, ctx);\n    } else if (is(rootElement, 'bpmn:Collaboration')) {\n      handleCollaboration(rootElement, ctx);\n\n      // force drawing of everything not yet drawn that is part of the target DI\n      handleUnhandledProcesses(definitions.rootElements, ctx);\n    } else {\n      throw new Error(\n        translate('unsupported bpmnElement for {plane}: {rootElement}', {\n          plane: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(plane),\n          rootElement: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(rootElement)\n        })\n      );\n    }\n\n    // handle all deferred elements\n    handleDeferred(deferred);\n  }\n\n  function handleDeferred() {\n\n    var fn;\n\n    // drain deferred until empty\n    while (deferred.length) {\n      fn = deferred.shift();\n\n      fn();\n    }\n  }\n\n  function handleProcess(process, context) {\n    handleFlowElementsContainer(process, context);\n    handleIoSpecification(process.ioSpecification, context);\n\n    handleArtifacts(process.artifacts, context);\n\n    // log process handled\n    handled(process);\n  }\n\n  function handleUnhandledProcesses(rootElements, ctx) {\n\n    // walk through all processes that have not yet been drawn and draw them\n    // if they contain lanes with DI information.\n    // we do this to pass the free-floating lane test cases in the MIWG test suite\n    var processes = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(rootElements, function(e) {\n      return !isHandled(e) && is(e, 'bpmn:Process') && e.laneSets;\n    });\n\n    processes.forEach(contextual(handleProcess, ctx));\n  }\n\n  function handleMessageFlow(messageFlow, context) {\n    visitIfDi(messageFlow, context);\n  }\n\n  function handleMessageFlows(messageFlows, context) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(messageFlows, contextual(handleMessageFlow, context));\n  }\n\n  function handleDataAssociation(association, context) {\n    visitIfDi(association, context);\n  }\n\n  function handleDataInput(dataInput, context) {\n    visitIfDi(dataInput, context);\n  }\n\n  function handleDataOutput(dataOutput, context) {\n    visitIfDi(dataOutput, context);\n  }\n\n  function handleArtifact(artifact, context) {\n\n    // bpmn:TextAnnotation\n    // bpmn:Group\n    // bpmn:Association\n\n    visitIfDi(artifact, context);\n  }\n\n  function handleArtifacts(artifacts, context) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(artifacts, function(e) {\n      if (is(e, 'bpmn:Association')) {\n        deferred.push(function() {\n          handleArtifact(e, context);\n        });\n      } else {\n        handleArtifact(e, context);\n      }\n    });\n  }\n\n  function handleIoSpecification(ioSpecification, context) {\n\n    if (!ioSpecification) {\n      return;\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(ioSpecification.dataInputs, contextual(handleDataInput, context));\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(ioSpecification.dataOutputs, contextual(handleDataOutput, context));\n  }\n\n  function handleSubProcess(subProcess, context) {\n    handleFlowElementsContainer(subProcess, context);\n    handleArtifacts(subProcess.artifacts, context);\n  }\n\n  function handleFlowNode(flowNode, context) {\n    var childCtx = visitIfDi(flowNode, context);\n\n    if (is(flowNode, 'bpmn:SubProcess')) {\n      handleSubProcess(flowNode, childCtx || context);\n    }\n\n    if (is(flowNode, 'bpmn:Activity')) {\n      handleIoSpecification(flowNode.ioSpecification, context);\n    }\n\n    // defer handling of associations\n    // affected types:\n    //\n    //   * bpmn:Activity\n    //   * bpmn:ThrowEvent\n    //   * bpmn:CatchEvent\n    //\n    deferred.push(function() {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowNode.dataInputAssociations, contextual(handleDataAssociation, context));\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowNode.dataOutputAssociations, contextual(handleDataAssociation, context));\n    });\n  }\n\n  function handleSequenceFlow(sequenceFlow, context) {\n    visitIfDi(sequenceFlow, context);\n  }\n\n  function handleDataElement(dataObject, context) {\n    visitIfDi(dataObject, context);\n  }\n\n  function handleLane(lane, context) {\n\n    deferred.push(function() {\n\n      var newContext = visitIfDi(lane, context);\n\n      if (lane.childLaneSet) {\n        handleLaneSet(lane.childLaneSet, newContext || context);\n      }\n\n      wireFlowNodeRefs(lane);\n    });\n  }\n\n  function handleLaneSet(laneSet, context) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(laneSet.lanes, contextual(handleLane, context));\n  }\n\n  function handleLaneSets(laneSets, context) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(laneSets, contextual(handleLaneSet, context));\n  }\n\n  function handleFlowElementsContainer(container, context) {\n    handleFlowElements(container.flowElements, context);\n\n    if (container.laneSets) {\n      handleLaneSets(container.laneSets, context);\n    }\n  }\n\n  function handleFlowElements(flowElements, context) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(flowElements, function(e) {\n      if (is(e, 'bpmn:SequenceFlow')) {\n        deferred.push(function() {\n          handleSequenceFlow(e, context);\n        });\n      } else if (is(e, 'bpmn:BoundaryEvent')) {\n        deferred.unshift(function() {\n          handleFlowNode(e, context);\n        });\n      } else if (is(e, 'bpmn:FlowNode')) {\n        handleFlowNode(e, context);\n      } else if (is(e, 'bpmn:DataObject')) {\n\n        // SKIP (assume correct referencing via DataObjectReference)\n      } else if (is(e, 'bpmn:DataStoreReference')) {\n        handleDataElement(e, context);\n      } else if (is(e, 'bpmn:DataObjectReference')) {\n        handleDataElement(e, context);\n      } else {\n        logError(\n          translate('unrecognized flowElement {element} in context {context}', {\n            element: (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(e),\n            context: (context ? (0,_Util__WEBPACK_IMPORTED_MODULE_2__.elementToString)(context.businessObject) : 'null')\n          }),\n          { element: e, context: context }\n        );\n      }\n    });\n  }\n\n  function handleParticipant(participant, context) {\n    var newCtx = visitIfDi(participant, context);\n\n    var process = participant.processRef;\n    if (process) {\n      handleProcess(process, newCtx || context);\n    }\n  }\n\n  function handleCollaboration(collaboration) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(collaboration.participants, contextual(handleParticipant));\n\n    handleArtifacts(collaboration.artifacts);\n\n    // handle message flows latest in the process\n    deferred.push(function() {\n      handleMessageFlows(collaboration.messageFlows);\n    });\n  }\n\n\n  function wireFlowNodeRefs(lane) {\n\n    // wire the virtual flowNodeRefs <-> relationship\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(lane.flowNodeRef, function(flowNode) {\n      var lanes = flowNode.get('lanes');\n\n      if (lanes) {\n        lanes.push(lane);\n      }\n    });\n  }\n\n  // API //////////////////////\n\n  return {\n    handleDeferred: handleDeferred,\n    handleDefinitions: handleDefinitions,\n    handleSubProcess: handleSubProcess,\n    registerDi: registerDi\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/import/Importer.js":
  /*!*****************************************************!*\
    !*** ./node_modules/bpmn-js/lib/import/Importer.js ***!
    \*****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"importBpmnDiagram\": () => (/* binding */ importBpmnDiagram)\n/* harmony export */ });\n/* harmony import */ var _BpmnTreeWalker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BpmnTreeWalker */ \"./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js\");\n\n\n\n/**\n * The importBpmnDiagram result.\n *\n * @typedef {Object} ImportBPMNDiagramResult\n *\n * @property {Array<string>} warnings\n */\n\n/**\n* The importBpmnDiagram error.\n*\n* @typedef {Error} ImportBPMNDiagramError\n*\n* @property {Array<string>} warnings\n*/\n\n/**\n * Import the definitions into a diagram.\n *\n * Errors and warnings are reported through the specified callback.\n *\n * @param  {djs.Diagram} diagram\n * @param  {ModdleElement<Definitions>} definitions\n * @param  {ModdleElement<BPMNDiagram>} [bpmnDiagram] the diagram to be rendered\n * (if not provided, the first one will be rendered)\n *\n * Returns {Promise<ImportBPMNDiagramResult, ImportBPMNDiagramError>}\n */\nfunction importBpmnDiagram(diagram, definitions, bpmnDiagram) {\n\n  var importer,\n      eventBus,\n      translate;\n\n  var error,\n      warnings = [];\n\n  /**\n   * Walk the diagram semantically, importing (=drawing)\n   * all elements you encounter.\n   *\n   * @param {ModdleElement<Definitions>} definitions\n   * @param {ModdleElement<BPMNDiagram>} bpmnDiagram\n   */\n  function render(definitions, bpmnDiagram) {\n\n    var visitor = {\n\n      root: function(element) {\n        return importer.add(element);\n      },\n\n      element: function(element, parentShape) {\n        return importer.add(element, parentShape);\n      },\n\n      error: function(message, context) {\n        warnings.push({ message: message, context: context });\n      }\n    };\n\n    var walker = new _BpmnTreeWalker__WEBPACK_IMPORTED_MODULE_0__.default(visitor, translate);\n\n    // traverse BPMN 2.0 document model,\n    // starting at definitions\n    walker.handleDefinitions(definitions, bpmnDiagram);\n  }\n\n  return new Promise(function(resolve, reject) {\n    try {\n      importer = diagram.get('bpmnImporter');\n      eventBus = diagram.get('eventBus');\n      translate = diagram.get('translate');\n\n      eventBus.fire('import.render.start', { definitions: definitions });\n\n      render(definitions, bpmnDiagram);\n\n      eventBus.fire('import.render.complete', {\n        error: error,\n        warnings: warnings\n      });\n\n      return resolve({ warnings: warnings });\n    } catch (e) {\n\n      e.warnings = warnings;\n      return reject(e);\n    }\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/Importer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/import/Util.js":
  /*!*************************************************!*\
    !*** ./node_modules/bpmn-js/lib/import/Util.js ***!
    \*************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"elementToString\": () => (/* binding */ elementToString)\n/* harmony export */ });\nfunction elementToString(e) {\n  if (!e) {\n    return '<null>';\n  }\n\n  return '<' + e.$type + (e.id ? ' id=\"' + e.id : '') + '\" />';\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/Util.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/import/index.js":
  /*!**************************************************!*\
    !*** ./node_modules/bpmn-js/lib/import/index.js ***!
    \**************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! diagram-js/lib/i18n/translate */ \"./node_modules/diagram-js/lib/i18n/translate/index.js\");\n/* harmony import */ var _BpmnImporter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BpmnImporter */ \"./node_modules/bpmn-js/lib/import/BpmnImporter.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_i18n_translate__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  bpmnImporter: [ 'type', _BpmnImporter__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/import/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/util/CompatibilityUtil.js":
  /*!************************************************************!*\
    !*** ./node_modules/bpmn-js/lib/util/CompatibilityUtil.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"wrapForCompatibility\": () => (/* binding */ wrapForCompatibility)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n// TODO(nikku): remove with future bpmn-js version\n\n/**\n * Wraps APIs to check:\n *\n * 1) If a callback is passed -> Warn users about callback deprecation.\n * 2) If Promise class is implemented in current environment.\n *\n * @private\n */\nfunction wrapForCompatibility(api) {\n\n  return function() {\n\n    if (!window.Promise) {\n      throw new Error('Promises is not supported in this environment. Please polyfill Promise.');\n    }\n\n    var argLen = arguments.length;\n    if (argLen >= 1 && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(arguments[argLen - 1])) {\n\n      var callback = arguments[argLen - 1];\n\n      console.warn(new Error(\n        'Passing callbacks to ' + api.name + ' is deprecated and will be removed in a future major release. ' +\n        'Please switch to promises: https://bpmn.io/l/moving-to-promises.html'\n      ));\n\n      var argsWithoutCallback = Array.prototype.slice.call(arguments, 0, -1);\n\n      api.apply(this, argsWithoutCallback).then(function(result) {\n\n        var firstKey = Object.keys(result)[0];\n\n        // The APIs we are wrapping all resolve a single item depending on the API.\n        // For instance, importXML resolves { warnings } and saveXML returns { xml }.\n        // That's why we can call the callback with the first item of result.\n        return callback(null, result[firstKey]);\n\n        // Passing a second paramter instead of catch because we don't want to\n        // catch errors thrown by callback().\n      }, function(err) {\n\n        return callback(err, err.warnings);\n      });\n    } else {\n\n      return api.apply(this, arguments);\n    }\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/CompatibilityUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/util/DiUtil.js":
  /*!*************************************************!*\
    !*** ./node_modules/bpmn-js/lib/util/DiUtil.js ***!
    \*************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isExpanded\": () => (/* binding */ isExpanded),\n/* harmony export */   \"isInterrupting\": () => (/* binding */ isInterrupting),\n/* harmony export */   \"isEventSubProcess\": () => (/* binding */ isEventSubProcess),\n/* harmony export */   \"hasEventDefinition\": () => (/* binding */ hasEventDefinition),\n/* harmony export */   \"hasErrorEventDefinition\": () => (/* binding */ hasErrorEventDefinition),\n/* harmony export */   \"hasEscalationEventDefinition\": () => (/* binding */ hasEscalationEventDefinition),\n/* harmony export */   \"hasCompensateEventDefinition\": () => (/* binding */ hasCompensateEventDefinition)\n/* harmony export */ });\n/* harmony import */ var _ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction isExpanded(element) {\n\n  if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:CallActivity')) {\n    return false;\n  }\n\n  if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:SubProcess')) {\n    return (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).di && !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).di.isExpanded;\n  }\n\n  if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Participant')) {\n    return !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).processRef;\n  }\n\n  return true;\n}\n\nfunction isInterrupting(element) {\n  return element && (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).isInterrupting !== false;\n}\n\nfunction isEventSubProcess(element) {\n  return element && !!(0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element).triggeredByEvent;\n}\n\nfunction hasEventDefinition(element, eventType) {\n  var bo = (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.getBusinessObject)(element),\n      hasEventDefinition = false;\n\n  if (bo.eventDefinitions) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(bo.eventDefinitions, function(event) {\n      if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(event, eventType)) {\n        hasEventDefinition = true;\n      }\n    });\n  }\n\n  return hasEventDefinition;\n}\n\nfunction hasErrorEventDefinition(element) {\n  return hasEventDefinition(element, 'bpmn:ErrorEventDefinition');\n}\n\nfunction hasEscalationEventDefinition(element) {\n  return hasEventDefinition(element, 'bpmn:EscalationEventDefinition');\n}\n\nfunction hasCompensateEventDefinition(element) {\n  return hasEventDefinition(element, 'bpmn:CompensateEventDefinition');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/DiUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/util/LabelUtil.js":
  /*!****************************************************!*\
    !*** ./node_modules/bpmn-js/lib/util/LabelUtil.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"DEFAULT_LABEL_SIZE\": () => (/* binding */ DEFAULT_LABEL_SIZE),\n/* harmony export */   \"FLOW_LABEL_INDENT\": () => (/* binding */ FLOW_LABEL_INDENT),\n/* harmony export */   \"isLabelExternal\": () => (/* binding */ isLabelExternal),\n/* harmony export */   \"hasExternalLabel\": () => (/* binding */ hasExternalLabel),\n/* harmony export */   \"getFlowLabelPosition\": () => (/* binding */ getFlowLabelPosition),\n/* harmony export */   \"getWaypointsMid\": () => (/* binding */ getWaypointsMid),\n/* harmony export */   \"getExternalLabelMid\": () => (/* binding */ getExternalLabelMid),\n/* harmony export */   \"getExternalLabelBounds\": () => (/* binding */ getExternalLabelBounds),\n/* harmony export */   \"isLabel\": () => (/* binding */ isLabel)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _ModelUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ModelUtil */ \"./node_modules/bpmn-js/lib/util/ModelUtil.js\");\n\n\n\n\n\nvar DEFAULT_LABEL_SIZE = {\n  width: 90,\n  height: 20\n};\n\nvar FLOW_LABEL_INDENT = 15;\n\n\n/**\n * Returns true if the given semantic has an external label\n *\n * @param {BpmnElement} semantic\n * @return {boolean} true if has label\n */\nfunction isLabelExternal(semantic) {\n  return (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Event') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Gateway') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataStoreReference') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataObjectReference') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataInput') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:DataOutput') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:SequenceFlow') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:MessageFlow') ||\n         (0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(semantic, 'bpmn:Group');\n}\n\n/**\n * Returns true if the given element has an external label\n *\n * @param {djs.model.shape} element\n * @return {boolean} true if has label\n */\nfunction hasExternalLabel(element) {\n  return isLabel(element.label);\n}\n\n/**\n * Get the position for sequence flow labels\n *\n * @param  {Array<Point>} waypoints\n * @return {Point} the label position\n */\nfunction getFlowLabelPosition(waypoints) {\n\n  // get the waypoints mid\n  var mid = waypoints.length / 2 - 1;\n\n  var first = waypoints[Math.floor(mid)];\n  var second = waypoints[Math.ceil(mid + 0.01)];\n\n  // get position\n  var position = getWaypointsMid(waypoints);\n\n  // calculate angle\n  var angle = Math.atan((second.y - first.y) / (second.x - first.x));\n\n  var x = position.x,\n      y = position.y;\n\n  if (Math.abs(angle) < Math.PI / 2) {\n    y -= FLOW_LABEL_INDENT;\n  } else {\n    x += FLOW_LABEL_INDENT;\n  }\n\n  return { x: x, y: y };\n}\n\n\n/**\n * Get the middle of a number of waypoints\n *\n * @param  {Array<Point>} waypoints\n * @return {Point} the mid point\n */\nfunction getWaypointsMid(waypoints) {\n\n  var mid = waypoints.length / 2 - 1;\n\n  var first = waypoints[Math.floor(mid)];\n  var second = waypoints[Math.ceil(mid + 0.01)];\n\n  return {\n    x: first.x + (second.x - first.x) / 2,\n    y: first.y + (second.y - first.y) / 2\n  };\n}\n\n\nfunction getExternalLabelMid(element) {\n\n  if (element.waypoints) {\n    return getFlowLabelPosition(element.waypoints);\n  } else if ((0,_ModelUtil__WEBPACK_IMPORTED_MODULE_0__.is)(element, 'bpmn:Group')) {\n    return {\n      x: element.x + element.width / 2,\n      y: element.y + DEFAULT_LABEL_SIZE.height / 2\n    };\n  } else {\n    return {\n      x: element.x + element.width / 2,\n      y: element.y + element.height + DEFAULT_LABEL_SIZE.height / 2\n    };\n  }\n}\n\n\n/**\n * Returns the bounds of an elements label, parsed from the elements DI or\n * generated from its bounds.\n *\n * @param {BpmnElement} semantic\n * @param {djs.model.Base} element\n */\nfunction getExternalLabelBounds(semantic, element) {\n\n  var mid,\n      size,\n      bounds,\n      di = semantic.di,\n      label = di.label;\n\n  if (label && label.bounds) {\n    bounds = label.bounds;\n\n    size = {\n      width: Math.max(DEFAULT_LABEL_SIZE.width, bounds.width),\n      height: bounds.height\n    };\n\n    mid = {\n      x: bounds.x + bounds.width / 2,\n      y: bounds.y + bounds.height / 2\n    };\n  } else {\n\n    mid = getExternalLabelMid(element);\n\n    size = DEFAULT_LABEL_SIZE;\n  }\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n    x: mid.x - size.width / 2,\n    y: mid.y - size.height / 2\n  }, size);\n}\n\nfunction isLabel(element) {\n  return element && !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/LabelUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/util/ModelUtil.js":
  /*!****************************************************!*\
    !*** ./node_modules/bpmn-js/lib/util/ModelUtil.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"is\": () => (/* binding */ is),\n/* harmony export */   \"getBusinessObject\": () => (/* binding */ getBusinessObject)\n/* harmony export */ });\n/**\n * Is an element of the given BPMN type?\n *\n * @param  {djs.model.Base|ModdleElement} element\n * @param  {string} type\n *\n * @return {boolean}\n */\nfunction is(element, type) {\n  var bo = getBusinessObject(element);\n\n  return bo && (typeof bo.$instanceOf === 'function') && bo.$instanceOf(type);\n}\n\n\n/**\n * Return the business object for a given element.\n *\n * @param  {djs.model.Base|ModdleElement} element\n *\n * @return {ModdleElement}\n */\nfunction getBusinessObject(element) {\n  return (element && element.businessObject) || element;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/ModelUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-js/lib/util/PoweredByUtil.js":
  /*!********************************************************!*\
    !*** ./node_modules/bpmn-js/lib/util/PoweredByUtil.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"BPMNIO_IMG\": () => (/* binding */ BPMNIO_IMG),\n/* harmony export */   \"LINK_STYLES\": () => (/* binding */ LINK_STYLES),\n/* harmony export */   \"open\": () => (/* binding */ open)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/**\n * This file must not be changed or exchanged.\n *\n * @see http://bpmn.io/license for more information.\n */\n\n\n\n\n// inlined ../../resources/logo.svg\nvar BPMNIO_LOGO_SVG = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14.02 5.57\" width=\"53\" height=\"21\" style=\"vertical-align:middle\"><path fill=\"currentColor\" d=\"M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z\"/><path fill=\"currentColor\" d=\"M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z\"/></svg>';\n\nvar BPMNIO_IMG = BPMNIO_LOGO_SVG;\n\nfunction css(attrs) {\n  return attrs.join(';');\n}\n\nvar LINK_STYLES = css([\n  'color: #404040'\n]);\n\nvar LIGHTBOX_STYLES = css([\n  'z-index: 1001',\n  'position: fixed',\n  'top: 0',\n  'left: 0',\n  'right: 0',\n  'bottom: 0'\n]);\n\nvar BACKDROP_STYLES = css([\n  'width: 100%',\n  'height: 100%',\n  'background: rgba(40,40,40,0.2)'\n]);\n\nvar NOTICE_STYLES = css([\n  'position: absolute',\n  'left: 50%',\n  'top: 40%',\n  'transform: translate(-50%)',\n  'width: 260px',\n  'padding: 10px',\n  'background: white',\n  'box-shadow: 0 1px 4px rgba(0,0,0,0.3)',\n  'font-family: Helvetica, Arial, sans-serif',\n  'font-size: 14px',\n  'display: flex',\n  'line-height: 1.3'\n]);\n\nvar LIGHTBOX_MARKUP =\n  '<div class=\"bjs-powered-by-lightbox\" style=\"' + LIGHTBOX_STYLES + '\">' +\n    '<div class=\"backdrop\" style=\"' + BACKDROP_STYLES + '\"></div>' +\n    '<div class=\"notice\" style=\"' + NOTICE_STYLES + '\">' +\n      '<a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\" style=\"margin: 15px 20px 15px 10px; align-self: center;' + LINK_STYLES + '\">' +\n        BPMNIO_IMG +\n      '</a>' +\n      '<span>' +\n        'Web-based tooling for BPMN, DMN and CMMN diagrams ' +\n        'powered by <a href=\"https://bpmn.io\" target=\"_blank\" rel=\"noopener\">bpmn.io</a>.' +\n      '</span>' +\n    '</div>' +\n  '</div>';\n\n\nvar lightbox;\n\nfunction open() {\n\n  if (!lightbox) {\n    lightbox = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(LIGHTBOX_MARKUP);\n\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(lightbox, '.backdrop', 'click', function(event) {\n      document.body.removeChild(lightbox);\n    });\n  }\n\n  document.body.appendChild(lightbox);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-js/lib/util/PoweredByUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/bpmn-moddle/dist/index.esm.js":
  /*!****************************************************!*\
    !*** ./node_modules/bpmn-moddle/dist/index.esm.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var moddle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moddle */ \"./node_modules/moddle/dist/index.esm.js\");\n/* harmony import */ var moddle_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moddle-xml */ \"./node_modules/moddle-xml/dist/index.esm.js\");\n\n\n\n\n/**\n * A sub class of {@link Moddle} with support for import and export of BPMN 2.0 xml files.\n *\n * @class BpmnModdle\n * @extends Moddle\n *\n * @param {Object|Array} packages to use for instantiating the model\n * @param {Object} [options] additional options to pass over\n */\nfunction BpmnModdle(packages, options) {\n  moddle__WEBPACK_IMPORTED_MODULE_0__.Moddle.call(this, packages, options);\n}\n\nBpmnModdle.prototype = Object.create(moddle__WEBPACK_IMPORTED_MODULE_0__.Moddle.prototype);\n\n/**\n * The fromXML result.\n *\n * @typedef {Object} ParseResult\n *\n * @property {ModdleElement} rootElement\n * @property {Array<Object>} references\n * @property {Array<Error>} warnings\n * @property {Object} elementsById - a mapping containing each ID -> ModdleElement\n */\n\n/**\n * The fromXML error.\n *\n * @typedef {Error} ParseError\n *\n * @property {Array<Error>} warnings\n */\n\n/**\n * Instantiates a BPMN model tree from a given xml string.\n *\n * @param {String}   xmlStr\n * @param {String}   [typeName='bpmn:Definitions'] name of the root element\n * @param {Object}   [options]  options to pass to the underlying reader\n *\n * @returns {Promise<ParseResult, ParseError>}\n */\nBpmnModdle.prototype.fromXML = function(xmlStr, typeName, options) {\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(typeName)) {\n    options = typeName;\n    typeName = 'bpmn:Definitions';\n  }\n\n  var reader = new moddle_xml__WEBPACK_IMPORTED_MODULE_2__.Reader((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ model: this, lax: true }, options));\n  var rootHandler = reader.handler(typeName);\n\n  return reader.fromXML(xmlStr, rootHandler);\n};\n\n\n/**\n * The toXML result.\n *\n * @typedef {Object} SerializationResult\n *\n * @property {String} xml\n */\n\n/**\n * Serializes a BPMN 2.0 object tree to XML.\n *\n * @param {String}   element    the root element, typically an instance of `bpmn:Definitions`\n * @param {Object}   [options]  to pass to the underlying writer\n *\n * @returns {Promise<SerializationResult, Error>}\n */\nBpmnModdle.prototype.toXML = function(element, options) {\n\n  var writer = new moddle_xml__WEBPACK_IMPORTED_MODULE_2__.Writer(options);\n\n  return new Promise(function(resolve, reject) {\n    try {\n      var result = writer.toXML(element);\n\n      return resolve({\n        xml: result\n      });\n    } catch (err) {\n      return reject(err);\n    }\n  });\n};\n\nvar name = \"BPMN20\";\nvar uri = \"http://www.omg.org/spec/BPMN/20100524/MODEL\";\nvar prefix = \"bpmn\";\nvar associations = [\n];\nvar types = [\n\t{\n\t\tname: \"Interface\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operations\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementationRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Operation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inMessageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outMessageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"errorRef\",\n\t\t\t\ttype: \"Error\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementationRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EndPoint\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Auditing\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalTask\",\n\t\tsuperClass: [\n\t\t\t\"CallableElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Monitoring\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Performer\",\n\t\tsuperClass: [\n\t\t\t\"ResourceRole\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Process\",\n\t\tsuperClass: [\n\t\t\t\"FlowElementsContainer\",\n\t\t\t\"CallableElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"processType\",\n\t\t\t\ttype: \"ProcessType\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isClosed\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"auditing\",\n\t\t\t\ttype: \"Auditing\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"monitoring\",\n\t\t\t\ttype: \"Monitoring\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"laneSets\",\n\t\t\t\tisMany: true,\n\t\t\t\treplaces: \"FlowElementsContainer#laneSets\",\n\t\t\t\ttype: \"LaneSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowElements\",\n\t\t\t\tisMany: true,\n\t\t\t\treplaces: \"FlowElementsContainer#flowElements\",\n\t\t\t\ttype: \"FlowElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationSubscriptions\",\n\t\t\t\ttype: \"CorrelationSubscription\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"supports\",\n\t\t\t\ttype: \"Process\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"definitionalCollaborationRef\",\n\t\t\t\ttype: \"Collaboration\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isExecutable\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LaneSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"lanes\",\n\t\t\t\ttype: \"Lane\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Lane\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"partitionElementRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"partitionElement\",\n\t\t\t\ttype: \"BaseElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowNodeRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"childLaneSet\",\n\t\t\t\ttype: \"LaneSet\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalManualTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ManualTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t]\n\t},\n\t{\n\t\tname: \"UserTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"renderings\",\n\t\t\t\ttype: \"Rendering\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Rendering\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"HumanPerformer\",\n\t\tsuperClass: [\n\t\t\t\"Performer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"PotentialOwner\",\n\t\tsuperClass: [\n\t\t\t\"HumanPerformer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalUserTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"renderings\",\n\t\t\t\ttype: \"Rendering\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Gateway\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"gatewayDirection\",\n\t\t\t\ttype: \"GatewayDirection\",\n\t\t\t\t\"default\": \"Unspecified\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventBasedGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"instantiate\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventGatewayType\",\n\t\t\t\ttype: \"EventBasedGatewayType\",\n\t\t\t\tisAttr: true,\n\t\t\t\t\"default\": \"Exclusive\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ComplexGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"activationCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExclusiveGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InclusiveGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParallelGateway\",\n\t\tsuperClass: [\n\t\t\t\"Gateway\"\n\t\t]\n\t},\n\t{\n\t\tname: \"RootElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Relationship\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"direction\",\n\t\t\t\ttype: \"RelationshipDirection\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BaseElement\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\",\n\t\t\t\tisId: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"documentation\",\n\t\t\t\ttype: \"Documentation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionDefinitions\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionElements\",\n\t\t\t\ttype: \"ExtensionElements\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Extension\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"mustUnderstand\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"definition\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionDefinition\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionAttributeDefinitions\",\n\t\t\t\ttype: \"ExtensionAttributeDefinition\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionAttributeDefinition\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isReference\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionDefinition\",\n\t\t\t\ttype: \"ExtensionDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ExtensionElements\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"valueRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"values\",\n\t\t\t\ttype: \"Element\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensionAttributeDefinition\",\n\t\t\t\ttype: \"ExtensionAttributeDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Documentation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"text\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisBody: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"textFormat\",\n\t\t\t\t\"default\": \"text/plain\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Event\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"IntermediateCatchEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"IntermediateThrowEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"EndEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"StartEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isInterrupting\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ThrowEvent\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Event\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataInputs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputAssociations\",\n\t\t\t\ttype: \"DataInputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSet\",\n\t\t\t\ttype: \"InputSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitions\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitionRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CatchEvent\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Event\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"parallelMultiple\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\t\"default\": false\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputAssociations\",\n\t\t\t\ttype: \"DataOutputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSet\",\n\t\t\t\ttype: \"OutputSet\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitions\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"eventDefinitionRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BoundaryEvent\",\n\t\tsuperClass: [\n\t\t\t\"CatchEvent\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"cancelActivity\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"attachedToRef\",\n\t\t\t\ttype: \"Activity\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventDefinition\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CancelEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ErrorEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"errorRef\",\n\t\t\t\ttype: \"Error\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TerminateEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t]\n\t},\n\t{\n\t\tname: \"EscalationEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"escalationRef\",\n\t\t\t\ttype: \"Escalation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Escalation\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"escalationCode\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CompensateEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"waitForCompletion\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\t\"default\": true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"activityRef\",\n\t\t\t\ttype: \"Activity\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TimerEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"timeDate\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"timeCycle\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"timeDuration\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LinkEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\ttype: \"LinkEventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\ttype: \"LinkEventDefinition\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConditionalEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"condition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SignalEventDefinition\",\n\t\tsuperClass: [\n\t\t\t\"EventDefinition\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"signalRef\",\n\t\t\t\ttype: \"Signal\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Signal\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ImplicitThrowEvent\",\n\t\tsuperClass: [\n\t\t\t\"ThrowEvent\"\n\t\t]\n\t},\n\t{\n\t\tname: \"DataState\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemAwareElement\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"itemSubjectRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataState\",\n\t\t\t\ttype: \"DataState\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"transformation\",\n\t\t\t\ttype: \"FormalExpression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"assignment\",\n\t\t\t\ttype: \"Assignment\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataInput\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetRef\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetWithOptional\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetWithWhileExecuting\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataOutput\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetRef\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetWithOptional\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetWithWhileExecuting\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InputSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"optionalInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"whileExecutingInputRefs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSetRefs\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"OutputSet\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSetRefs\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"optionalOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"whileExecutingOutputRefs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Property\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataInputAssociation\",\n\t\tsuperClass: [\n\t\t\t\"DataAssociation\"\n\t\t]\n\t},\n\t{\n\t\tname: \"DataOutputAssociation\",\n\t\tsuperClass: [\n\t\t\t\"DataAssociation\"\n\t\t]\n\t},\n\t{\n\t\tname: \"InputOutputSpecification\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataInputs\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputs\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputSets\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputSets\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataObject\",\n\t\tsuperClass: [\n\t\t\t\"FlowElement\",\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InputOutputBinding\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"inputDataRef\",\n\t\t\t\ttype: \"InputSet\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputDataRef\",\n\t\t\t\ttype: \"OutputSet\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Assignment\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"from\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"to\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataStore\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\",\n\t\t\t\"ItemAwareElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"capacity\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isUnlimited\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataStoreReference\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\",\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataStoreRef\",\n\t\t\t\ttype: \"DataStore\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"DataObjectReference\",\n\t\tsuperClass: [\n\t\t\t\"ItemAwareElement\",\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataObjectRef\",\n\t\t\t\ttype: \"DataObject\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationLink\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerConversationNodeRef\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerConversationNodeRef\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallConversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledCollaborationRef\",\n\t\t\t\ttype: \"Collaboration\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Conversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t]\n\t},\n\t{\n\t\tname: \"SubConversation\",\n\t\tsuperClass: [\n\t\t\t\"ConversationNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"conversationNodes\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ConversationNode\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"InteractionNode\",\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlowRefs\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalConversation\",\n\t\tsuperClass: [\n\t\t\t\"Collaboration\"\n\t\t]\n\t},\n\t{\n\t\tname: \"PartnerEntity\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"PartnerRole\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationProperty\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRetrievalExpression\",\n\t\t\t\ttype: \"CorrelationPropertyRetrievalExpression\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Error\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"errorCode\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationKey\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRef\",\n\t\t\t\ttype: \"CorrelationProperty\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Expression\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tisAbstract: false,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"body\",\n\t\t\t\tisBody: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FormalExpression\",\n\t\tsuperClass: [\n\t\t\t\"Expression\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"language\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"evaluatesToTypeRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Message\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"itemRef\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemDefinition\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"itemKind\",\n\t\t\t\ttype: \"ItemKind\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"structureRef\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isCollection\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"import\",\n\t\t\t\ttype: \"Import\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"auditing\",\n\t\t\t\ttype: \"Auditing\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"monitoring\",\n\t\t\t\ttype: \"Monitoring\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"categoryValueRef\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SequenceFlow\",\n\t\tsuperClass: [\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isImmediate\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conditionExpression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"FlowNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowElementsContainer\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"laneSets\",\n\t\t\t\ttype: \"LaneSet\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"flowElements\",\n\t\t\t\ttype: \"FlowElement\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallableElement\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioSpecification\",\n\t\t\t\ttype: \"InputOutputSpecification\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"supportedInterfaceRef\",\n\t\t\t\ttype: \"Interface\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioBinding\",\n\t\t\t\ttype: \"InputOutputBinding\",\n\t\t\t\tisMany: true,\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"FlowNode\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"incoming\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outgoing\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"lanes\",\n\t\t\t\ttype: \"Lane\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationPropertyRetrievalExpression\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messagePath\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationPropertyBinding\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"dataPath\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyRef\",\n\t\t\t\ttype: \"CorrelationProperty\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Resource\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceParameters\",\n\t\t\t\ttype: \"ResourceParameter\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceParameter\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isRequired\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"type\",\n\t\t\t\ttype: \"ItemDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CorrelationSubscription\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"correlationKeyRef\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationPropertyBinding\",\n\t\t\t\ttype: \"CorrelationPropertyBinding\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageFlow\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"InteractionNode\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageFlowAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerMessageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerMessageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"InteractionNode\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"incomingConversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outgoingConversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Participant\",\n\t\tsuperClass: [\n\t\t\t\"InteractionNode\",\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"interfaceRef\",\n\t\t\t\ttype: \"Interface\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantMultiplicity\",\n\t\t\t\ttype: \"ParticipantMultiplicity\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"endPointRefs\",\n\t\t\t\ttype: \"EndPoint\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"processRef\",\n\t\t\t\ttype: \"Process\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParticipantAssociation\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"innerParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outerParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ParticipantMultiplicity\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"minimum\",\n\t\t\t\t\"default\": 0,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"maximum\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Collaboration\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isClosed\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participants\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlows\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversations\",\n\t\t\t\ttype: \"ConversationNode\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversationAssociations\",\n\t\t\t\ttype: \"ConversationAssociation\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageFlowAssociations\",\n\t\t\t\ttype: \"MessageFlowAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"choreographyRef\",\n\t\t\t\ttype: \"Choreography\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"conversationLinks\",\n\t\t\t\ttype: \"ConversationLink\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyActivity\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"participantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"initiatingParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"correlationKeys\",\n\t\t\t\ttype: \"CorrelationKey\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopType\",\n\t\t\t\ttype: \"ChoreographyLoopType\",\n\t\t\t\t\"default\": \"None\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallChoreography\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledChoreographyRef\",\n\t\t\t\ttype: \"Choreography\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantAssociations\",\n\t\t\t\ttype: \"ParticipantAssociation\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SubChoreography\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\",\n\t\t\t\"FlowElementsContainer\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyTask\",\n\t\tsuperClass: [\n\t\t\t\"ChoreographyActivity\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"messageFlowRef\",\n\t\t\t\ttype: \"MessageFlow\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Choreography\",\n\t\tsuperClass: [\n\t\t\t\"Collaboration\",\n\t\t\t\"FlowElementsContainer\"\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalChoreographyTask\",\n\t\tsuperClass: [\n\t\t\t\"Choreography\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"initiatingParticipantRef\",\n\t\t\t\ttype: \"Participant\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"TextAnnotation\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"text\",\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"textFormat\",\n\t\t\t\t\"default\": \"text/plain\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Group\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categoryValueRef\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Association\",\n\t\tsuperClass: [\n\t\t\t\"Artifact\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"associationDirection\",\n\t\t\t\ttype: \"AssociationDirection\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetRef\",\n\t\t\t\ttype: \"BaseElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Category\",\n\t\tsuperClass: [\n\t\t\t\"RootElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categoryValue\",\n\t\t\t\ttype: \"CategoryValue\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Artifact\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"CategoryValue\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"categorizedFlowElements\",\n\t\t\t\ttype: \"FlowElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"value\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Activity\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"FlowNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isForCompensation\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"default\",\n\t\t\t\ttype: \"SequenceFlow\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ioSpecification\",\n\t\t\t\ttype: \"InputOutputSpecification\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"boundaryEventRefs\",\n\t\t\t\ttype: \"BoundaryEvent\",\n\t\t\t\tisMany: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"properties\",\n\t\t\t\ttype: \"Property\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataInputAssociations\",\n\t\t\t\ttype: \"DataInputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"dataOutputAssociations\",\n\t\t\t\ttype: \"DataOutputAssociation\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"startQuantity\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resources\",\n\t\t\t\ttype: \"ResourceRole\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"completionQuantity\",\n\t\t\t\t\"default\": 1,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Integer\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCharacteristics\",\n\t\t\t\ttype: \"LoopCharacteristics\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ServiceTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"SubProcess\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"FlowElementsContainer\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"triggeredByEvent\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"artifacts\",\n\t\t\t\ttype: \"Artifact\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LoopCharacteristics\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"MultiInstanceLoopCharacteristics\",\n\t\tsuperClass: [\n\t\t\t\"LoopCharacteristics\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"isSequential\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"behavior\",\n\t\t\t\ttype: \"MultiInstanceBehavior\",\n\t\t\t\t\"default\": \"All\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCardinality\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopDataInputRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopDataOutputRef\",\n\t\t\t\ttype: \"ItemAwareElement\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"inputDataItem\",\n\t\t\t\ttype: \"DataInput\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"outputDataItem\",\n\t\t\t\ttype: \"DataOutput\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"property\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"complexBehaviorDefinition\",\n\t\t\t\ttype: \"ComplexBehaviorDefinition\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"completionCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"oneBehaviorEventRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"noneBehaviorEventRef\",\n\t\t\t\ttype: \"EventDefinition\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"StandardLoopCharacteristics\",\n\t\tsuperClass: [\n\t\t\t\"LoopCharacteristics\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"testBefore\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"loopMaximum\",\n\t\t\t\ttype: \"Integer\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"CallActivity\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"InteractionNode\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"calledElement\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Task\",\n\t\tsuperClass: [\n\t\t\t\"Activity\",\n\t\t\t\"InteractionNode\"\n\t\t]\n\t},\n\t{\n\t\tname: \"SendTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ReceiveTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"instantiate\",\n\t\t\t\t\"default\": false,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"operationRef\",\n\t\t\t\ttype: \"Operation\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageRef\",\n\t\t\t\ttype: \"Message\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ScriptTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"scriptFormat\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"script\",\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"BusinessRuleTask\",\n\t\tsuperClass: [\n\t\t\t\"Task\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AdHocSubProcess\",\n\t\tsuperClass: [\n\t\t\t\"SubProcess\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"completionCondition\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ordering\",\n\t\t\t\ttype: \"AdHocOrdering\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"cancelRemainingInstances\",\n\t\t\t\t\"default\": true,\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Transaction\",\n\t\tsuperClass: [\n\t\t\t\"SubProcess\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"protocol\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"method\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalScriptTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"scriptLanguage\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"script\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GlobalBusinessRuleTask\",\n\t\tsuperClass: [\n\t\t\t\"GlobalTask\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"implementation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ComplexBehaviorDefinition\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"condition\",\n\t\t\t\ttype: \"FormalExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"event\",\n\t\t\t\ttype: \"ImplicitThrowEvent\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceRole\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"resourceRef\",\n\t\t\t\ttype: \"Resource\",\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceParameterBindings\",\n\t\t\t\ttype: \"ResourceParameterBinding\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resourceAssignmentExpression\",\n\t\t\t\ttype: \"ResourceAssignmentExpression\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceParameterBinding\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"expression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"parameterRef\",\n\t\t\t\ttype: \"ResourceParameter\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"ResourceAssignmentExpression\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"expression\",\n\t\t\t\ttype: \"Expression\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Import\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"importType\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"location\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"namespace\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Definitions\",\n\t\tsuperClass: [\n\t\t\t\"BaseElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetNamespace\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"expressionLanguage\",\n\t\t\t\t\"default\": \"http://www.w3.org/1999/XPath\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"typeLanguage\",\n\t\t\t\t\"default\": \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"imports\",\n\t\t\t\ttype: \"Import\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extensions\",\n\t\t\t\ttype: \"Extension\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"rootElements\",\n\t\t\t\ttype: \"RootElement\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"diagrams\",\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"bpmndi:BPMNDiagram\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"exporter\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"relationships\",\n\t\t\t\ttype: \"Relationship\",\n\t\t\t\tisMany: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"exporterVersion\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations = [\n\t{\n\t\tname: \"ProcessType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Public\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Private\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"GatewayDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Unspecified\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Converging\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Diverging\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Mixed\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"EventBasedGatewayType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Parallel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Exclusive\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"RelationshipDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Forward\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Backward\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Both\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ItemKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Physical\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Information\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ChoreographyLoopType\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Standard\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"MultiInstanceSequential\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"MultiInstanceParallel\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AssociationDirection\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"One\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Both\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MultiInstanceBehavior\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"None\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"One\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"All\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Complex\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"AdHocOrdering\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"Parallel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"Sequential\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar xml = {\n\ttagAlias: \"lowerCase\",\n\ttypePrefix: \"t\"\n};\nvar BpmnPackage = {\n\tname: name,\n\turi: uri,\n\tprefix: prefix,\n\tassociations: associations,\n\ttypes: types,\n\tenumerations: enumerations,\n\txml: xml\n};\n\nvar name$1 = \"BPMNDI\";\nvar uri$1 = \"http://www.omg.org/spec/BPMN/20100524/DI\";\nvar prefix$1 = \"bpmndi\";\nvar types$1 = [\n\t{\n\t\tname: \"BPMNDiagram\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"plane\",\n\t\t\t\ttype: \"BPMNPlane\",\n\t\t\t\tredefines: \"di:Diagram#rootElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"labelStyle\",\n\t\t\t\ttype: \"BPMNLabelStyle\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Diagram\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNPlane\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Plane\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNShape\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isHorizontal\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isExpanded\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isMarkerVisible\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"label\",\n\t\t\t\ttype: \"BPMNLabel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isMessageVisible\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Boolean\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"participantBandKind\",\n\t\t\t\ttype: \"ParticipantBandKind\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"choreographyActivityShape\",\n\t\t\t\ttype: \"BPMNShape\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:LabeledShape\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNEdge\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"label\",\n\t\t\t\ttype: \"BPMNLabel\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bpmnElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"bpmn:BaseElement\",\n\t\t\t\tredefines: \"di:DiagramElement#modelElement\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"sourceElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"di:DiagramElement\",\n\t\t\t\tredefines: \"di:Edge#source\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"targetElement\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"di:DiagramElement\",\n\t\t\t\tredefines: \"di:Edge#target\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"messageVisibleKind\",\n\t\t\t\ttype: \"MessageVisibleKind\",\n\t\t\t\tisAttr: true,\n\t\t\t\t\"default\": \"initiating\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:LabeledEdge\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNLabel\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"labelStyle\",\n\t\t\t\ttype: \"BPMNLabelStyle\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisReference: true,\n\t\t\t\tredefines: \"di:DiagramElement#style\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Label\"\n\t\t]\n\t},\n\t{\n\t\tname: \"BPMNLabelStyle\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"font\",\n\t\t\t\ttype: \"dc:Font\"\n\t\t\t}\n\t\t],\n\t\tsuperClass: [\n\t\t\t\"di:Style\"\n\t\t]\n\t}\n];\nvar enumerations$1 = [\n\t{\n\t\tname: \"ParticipantBandKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"top_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"middle_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bottom_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"top_non_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"middle_non_initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"bottom_non_initiating\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"MessageVisibleKind\",\n\t\tliteralValues: [\n\t\t\t{\n\t\t\t\tname: \"initiating\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"non_initiating\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$1 = [\n];\nvar BpmnDiPackage = {\n\tname: name$1,\n\turi: uri$1,\n\tprefix: prefix$1,\n\ttypes: types$1,\n\tenumerations: enumerations$1,\n\tassociations: associations$1\n};\n\nvar name$2 = \"DC\";\nvar uri$2 = \"http://www.omg.org/spec/DD/20100524/DC\";\nvar prefix$2 = \"dc\";\nvar types$2 = [\n\t{\n\t\tname: \"Boolean\"\n\t},\n\t{\n\t\tname: \"Integer\"\n\t},\n\t{\n\t\tname: \"Real\"\n\t},\n\t{\n\t\tname: \"String\"\n\t},\n\t{\n\t\tname: \"Font\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\ttype: \"String\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"size\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isBold\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isItalic\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isUnderline\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"isStrikeThrough\",\n\t\t\t\ttype: \"Boolean\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Point\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"x\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"y\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Bounds\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"x\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"y\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\t\"default\": \"0\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"width\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"height\",\n\t\t\t\ttype: \"Real\",\n\t\t\t\tisAttr: true\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$2 = [\n];\nvar DcPackage = {\n\tname: name$2,\n\turi: uri$2,\n\tprefix: prefix$2,\n\ttypes: types$2,\n\tassociations: associations$2\n};\n\nvar name$3 = \"DI\";\nvar uri$3 = \"http://www.omg.org/spec/DD/20100524/DI\";\nvar prefix$3 = \"di\";\nvar types$3 = [\n\t{\n\t\tname: \"DiagramElement\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"extension\",\n\t\t\t\ttype: \"Extension\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"owningDiagram\",\n\t\t\t\ttype: \"Diagram\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"owningElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"modelElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"style\",\n\t\t\t\ttype: \"Style\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ownedElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Node\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"DiagramElement\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Edge\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"DiagramElement\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"source\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"target\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true,\n\t\t\t\tisReference: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"waypoint\",\n\t\t\t\tisUnique: false,\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"dc:Point\",\n\t\t\t\txml: {\n\t\t\t\t\tserialize: \"xsi:type\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Diagram\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"rootElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisVirtual: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"name\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"documentation\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"resolution\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"Real\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"ownedStyle\",\n\t\t\t\ttype: \"Style\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Shape\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bounds\",\n\t\t\t\ttype: \"dc:Bounds\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Plane\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"planeElement\",\n\t\t\t\ttype: \"DiagramElement\",\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LabeledEdge\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Edge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"ownedLabel\",\n\t\t\t\ttype: \"Label\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"LabeledShape\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Shape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"ownedLabel\",\n\t\t\t\ttype: \"Label\",\n\t\t\t\tisReadOnly: true,\n\t\t\t\tsubsettedProperty: \"DiagramElement-ownedElement\",\n\t\t\t\tisMany: true,\n\t\t\t\tisVirtual: true\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Label\",\n\t\tisAbstract: true,\n\t\tsuperClass: [\n\t\t\t\"Node\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"bounds\",\n\t\t\t\ttype: \"dc:Bounds\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Style\",\n\t\tisAbstract: true,\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"id\",\n\t\t\t\tisAttr: true,\n\t\t\t\tisId: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"Extension\",\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"values\",\n\t\t\t\tisMany: true,\n\t\t\t\ttype: \"Element\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar associations$3 = [\n];\nvar xml$1 = {\n\ttagAlias: \"lowerCase\"\n};\nvar DiPackage = {\n\tname: name$3,\n\turi: uri$3,\n\tprefix: prefix$3,\n\ttypes: types$3,\n\tassociations: associations$3,\n\txml: xml$1\n};\n\nvar name$4 = \"bpmn.io colors for BPMN\";\nvar uri$4 = \"http://bpmn.io/schema/bpmn/biocolor/1.0\";\nvar prefix$4 = \"bioc\";\nvar types$4 = [\n\t{\n\t\tname: \"ColoredShape\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNShape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"stroke\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"fill\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredEdge\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNEdge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"stroke\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"fill\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations$2 = [\n];\nvar associations$4 = [\n];\nvar BiocPackage = {\n\tname: name$4,\n\turi: uri$4,\n\tprefix: prefix$4,\n\ttypes: types$4,\n\tenumerations: enumerations$2,\n\tassociations: associations$4\n};\n\nvar name$5 = \"BPMN in Color\";\nvar uri$5 = \"http://www.omg.org/spec/BPMN/non-normative/color/1.0\";\nvar prefix$5 = \"color\";\nvar types$5 = [\n\t{\n\t\tname: \"ColoredLabel\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNLabel\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredShape\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNShape\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"background-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: \"border-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tname: \"ColoredEdge\",\n\t\t\"extends\": [\n\t\t\t\"bpmndi:BPMNEdge\"\n\t\t],\n\t\tproperties: [\n\t\t\t{\n\t\t\t\tname: \"border-color\",\n\t\t\t\tisAttr: true,\n\t\t\t\ttype: \"String\"\n\t\t\t}\n\t\t]\n\t}\n];\nvar enumerations$3 = [\n];\nvar associations$5 = [\n];\nvar BpmnInColorPackage = {\n\tname: name$5,\n\turi: uri$5,\n\tprefix: prefix$5,\n\ttypes: types$5,\n\tenumerations: enumerations$3,\n\tassociations: associations$5\n};\n\nvar packages = {\n  bpmn: BpmnPackage,\n  bpmndi: BpmnDiPackage,\n  dc: DcPackage,\n  di: DiPackage,\n  bioc: BiocPackage,\n  color: BpmnInColorPackage\n};\n\nfunction simple(additionalPackages, options) {\n  var pks = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, packages, additionalPackages);\n\n  return new BpmnModdle(pks, options);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (simple);\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/bpmn-moddle/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/css.escape/css.escape.js":
  /*!***********************************************!*\
    !*** ./node_modules/css.escape/css.escape.js ***!
    \***********************************************/
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
  
  eval("/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n;(function(root, factory) {\n\t// https://github.com/umdjs/umd/blob/master/returnExports.js\n\tif (true) {\n\t\t// For Node.js.\n\t\tmodule.exports = factory(root);\n\t} else {}\n}(typeof __webpack_require__.g != 'undefined' ? __webpack_require__.g : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn root.CSS.escape;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\treturn cssEscape;\n\n}));\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/css.escape/css.escape.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js-direct-editing/index.js":
  /*!*********************************************************!*\
    !*** ./node_modules/diagram-js-direct-editing/index.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var diagram_js_lib_features_interaction_events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! diagram-js/lib/features/interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _lib_DirectEditing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/DirectEditing */ \"./node_modules/diagram-js-direct-editing/lib/DirectEditing.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    diagram_js_lib_features_interaction_events__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [ 'directEditing' ],\n  directEditing: [ 'type', _lib_DirectEditing__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js-direct-editing/lib/DirectEditing.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/diagram-js-direct-editing/lib/DirectEditing.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DirectEditing)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _TextBox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TextBox */ \"./node_modules/diagram-js-direct-editing/lib/TextBox.js\");\n\n\n\n\n\n/**\n * A direct editing component that allows users\n * to edit an elements text directly in the diagram\n *\n * @param {EventBus} eventBus the event bus\n */\nfunction DirectEditing(eventBus, canvas) {\n\n  this._eventBus = eventBus;\n\n  this._providers = [];\n  this._textbox = new _TextBox__WEBPACK_IMPORTED_MODULE_0__.default({\n    container: canvas.getContainer(),\n    keyHandler: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this._handleKey, this),\n    resizeHandler: (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this._handleResize, this)\n  });\n}\n\nDirectEditing.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Register a direct editing provider\n\n * @param {Object} provider the provider, must expose an #activate(element) method that returns\n *                          an activation context ({ bounds: {x, y, width, height }, text }) if\n *                          direct editing is available for the given element.\n *                          Additionally the provider must expose a #update(element, value) method\n *                          to receive direct editing updates.\n */\nDirectEditing.prototype.registerProvider = function(provider) {\n  this._providers.push(provider);\n};\n\n\n/**\n * Returns true if direct editing is currently active\n *\n * @return {Boolean}\n */\nDirectEditing.prototype.isActive = function() {\n  return !!this._active;\n};\n\n\n/**\n * Cancel direct editing, if it is currently active\n */\nDirectEditing.prototype.cancel = function() {\n  if (!this._active) {\n    return;\n  }\n\n  this._fire('cancel');\n  this.close();\n};\n\n\nDirectEditing.prototype._fire = function(event, context) {\n  this._eventBus.fire('directEditing.' + event, context || { active: this._active });\n};\n\nDirectEditing.prototype.close = function() {\n  this._textbox.destroy();\n\n  this._fire('deactivate');\n\n  this._active = null;\n\n  this.resizable = undefined;\n};\n\n\nDirectEditing.prototype.complete = function() {\n\n  var active = this._active;\n\n  if (!active) {\n    return;\n  }\n\n  var containerBounds,\n      previousBounds = active.context.bounds,\n      newBounds = this.$textbox.getBoundingClientRect(),\n      newText = this.getValue(),\n      previousText = active.context.text;\n\n  if (\n    newText !== previousText ||\n    newBounds.height !== previousBounds.height ||\n    newBounds.width !== previousBounds.width\n  ) {\n    containerBounds = this._textbox.container.getBoundingClientRect();\n\n    active.provider.update(active.element, newText, active.context.text, {\n      x: newBounds.left - containerBounds.left,\n      y: newBounds.top - containerBounds.top,\n      width: newBounds.width,\n      height: newBounds.height\n    });\n  }\n\n  this._fire('complete');\n\n  this.close();\n};\n\n\nDirectEditing.prototype.getValue = function() {\n  return this._textbox.getValue();\n};\n\n\nDirectEditing.prototype._handleKey = function(e) {\n\n  // stop bubble\n  e.stopPropagation();\n\n  var key = e.keyCode || e.charCode;\n\n  // ESC\n  if (key === 27) {\n    e.preventDefault();\n    return this.cancel();\n  }\n\n  // Enter\n  if (key === 13 && !e.shiftKey) {\n    e.preventDefault();\n    return this.complete();\n  }\n};\n\n\nDirectEditing.prototype._handleResize = function(event) {\n  this._fire('resize', event);\n};\n\n\n/**\n * Activate direct editing on the given element\n *\n * @param {Object} ElementDescriptor the descriptor for a shape or connection\n * @return {Boolean} true if the activation was possible\n */\nDirectEditing.prototype.activate = function(element) {\n  if (this.isActive()) {\n    this.cancel();\n  }\n\n  // the direct editing context\n  var context;\n\n  var provider = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(this._providers, function(p) {\n    return (context = p.activate(element)) ? p : null;\n  });\n\n  // check if activation took place\n  if (context) {\n    this.$textbox = this._textbox.create(\n      context.bounds,\n      context.style,\n      context.text,\n      context.options\n    );\n\n    this._active = {\n      element: element,\n      context: context,\n      provider: provider\n    };\n\n    if (context.options && context.options.resizable) {\n      this.resizable = true;\n    }\n\n    this._fire('activate');\n  }\n\n  return !!context;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/lib/DirectEditing.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js-direct-editing/lib/TextBox.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js-direct-editing/lib/TextBox.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ TextBox)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar min = Math.min,\n    max = Math.max;\n\nfunction preventDefault(e) {\n  e.preventDefault();\n}\n\nfunction stopPropagation(e) {\n  e.stopPropagation();\n}\n\nfunction isTextNode(node) {\n  return node.nodeType === Node.TEXT_NODE;\n}\n\nfunction toArray(nodeList) {\n  return [].slice.call(nodeList);\n}\n\n/**\n * Initializes a container for a content editable div.\n *\n * Structure:\n *\n * container\n *   parent\n *     content\n *     resize-handle\n *\n * @param {object} options\n * @param {DOMElement} options.container The DOM element to append the contentContainer to\n * @param {Function} options.keyHandler Handler for key events\n * @param {Function} options.resizeHandler Handler for resize events\n */\nfunction TextBox(options) {\n  this.container = options.container;\n\n  this.parent = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(\n    '<div class=\"djs-direct-editing-parent\">' +\n      '<div class=\"djs-direct-editing-content\" contenteditable=\"true\"></div>' +\n    '</div>'\n  );\n\n  this.content = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[contenteditable]', this.parent);\n\n  this.keyHandler = options.keyHandler || function() {};\n  this.resizeHandler = options.resizeHandler || function() {};\n\n  this.autoResize = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this.autoResize, this);\n  this.handlePaste = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.bind)(this.handlePaste, this);\n}\n\n\n/**\n * Create a text box with the given position, size, style and text content\n *\n * @param {Object} bounds\n * @param {Number} bounds.x absolute x position\n * @param {Number} bounds.y absolute y position\n * @param {Number} [bounds.width] fixed width value\n * @param {Number} [bounds.height] fixed height value\n * @param {Number} [bounds.maxWidth] maximum width value\n * @param {Number} [bounds.maxHeight] maximum height value\n * @param {Number} [bounds.minWidth] minimum width value\n * @param {Number} [bounds.minHeight] minimum height value\n * @param {Object} [style]\n * @param {String} value text content\n *\n * @return {DOMElement} The created content DOM element\n */\nTextBox.prototype.create = function(bounds, style, value, options) {\n  var self = this;\n\n  var parent = this.parent,\n      content = this.content,\n      container = this.container;\n\n  options = this.options = options || {};\n\n  style = this.style = style || {};\n\n  var parentStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(style, [\n    'width',\n    'height',\n    'maxWidth',\n    'maxHeight',\n    'minWidth',\n    'minHeight',\n    'left',\n    'top',\n    'backgroundColor',\n    'position',\n    'overflow',\n    'border',\n    'wordWrap',\n    'textAlign',\n    'outline',\n    'transform'\n  ]);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(parent.style, {\n    width: bounds.width + 'px',\n    height: bounds.height + 'px',\n    maxWidth: bounds.maxWidth + 'px',\n    maxHeight: bounds.maxHeight + 'px',\n    minWidth: bounds.minWidth + 'px',\n    minHeight: bounds.minHeight + 'px',\n    left: bounds.x + 'px',\n    top: bounds.y + 'px',\n    backgroundColor: '#ffffff',\n    position: 'absolute',\n    overflow: 'visible',\n    border: '1px solid #ccc',\n    boxSizing: 'border-box',\n    wordWrap: 'normal',\n    textAlign: 'center',\n    outline: 'none'\n  }, parentStyle);\n\n  var contentStyle = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(style, [\n    'fontFamily',\n    'fontSize',\n    'fontWeight',\n    'lineHeight',\n    'padding',\n    'paddingTop',\n    'paddingRight',\n    'paddingBottom',\n    'paddingLeft'\n  ]);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(content.style, {\n    boxSizing: 'border-box',\n    width: '100%',\n    outline: 'none',\n    wordWrap: 'break-word'\n  }, contentStyle);\n\n  if (options.centerVertically) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(content.style, {\n      position: 'absolute',\n      top: '50%',\n      transform: 'translate(0, -50%)'\n    }, contentStyle);\n  }\n\n  content.innerText = value;\n\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'keydown', this.keyHandler);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'mousedown', stopPropagation);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'paste', self.handlePaste);\n\n  if (options.autoResize) {\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(content, 'input', this.autoResize);\n  }\n\n  if (options.resizable) {\n    this.resizable(style);\n  }\n\n  container.appendChild(parent);\n\n  // set selection to end of text\n  this.setSelection(content.lastChild, content.lastChild && content.lastChild.length);\n\n  return parent;\n};\n\n/**\n * Intercept paste events to remove formatting from pasted text.\n */\nTextBox.prototype.handlePaste = function(e) {\n  var options = this.options,\n      style = this.style;\n\n  e.preventDefault();\n\n  var text;\n\n  if (e.clipboardData) {\n\n    // Chrome, Firefox, Safari\n    text = e.clipboardData.getData('text/plain');\n  } else {\n\n    // Internet Explorer\n    text = window.clipboardData.getData('Text');\n  }\n\n  this.insertText(text);\n\n  if (options.autoResize) {\n    var hasResized = this.autoResize(style);\n\n    if (hasResized) {\n      this.resizeHandler(hasResized);\n    }\n  }\n};\n\nTextBox.prototype.insertText = function(text) {\n  text = normalizeEndOfLineSequences(text);\n\n  // insertText command not supported by Internet Explorer\n  var success = document.execCommand('insertText', false, text);\n\n  if (success) {\n    return;\n  }\n\n  this._insertTextIE(text);\n};\n\nTextBox.prototype._insertTextIE = function(text) {\n\n  // Internet Explorer\n  var range = this.getSelection(),\n      startContainer = range.startContainer,\n      endContainer = range.endContainer,\n      startOffset = range.startOffset,\n      endOffset = range.endOffset,\n      commonAncestorContainer = range.commonAncestorContainer;\n\n  var childNodesArray = toArray(commonAncestorContainer.childNodes);\n\n  var container,\n      offset;\n\n  if (isTextNode(commonAncestorContainer)) {\n    var containerTextContent = startContainer.textContent;\n\n    startContainer.textContent =\n      containerTextContent.substring(0, startOffset)\n      + text\n      + containerTextContent.substring(endOffset);\n\n    container = startContainer;\n    offset = startOffset + text.length;\n\n  } else if (startContainer === this.content && endContainer === this.content) {\n    var textNode = document.createTextNode(text);\n\n    this.content.insertBefore(textNode, childNodesArray[startOffset]);\n\n    container = textNode;\n    offset = textNode.textContent.length;\n  } else {\n    var startContainerChildIndex = childNodesArray.indexOf(startContainer),\n        endContainerChildIndex = childNodesArray.indexOf(endContainer);\n\n    childNodesArray.forEach(function(childNode, index) {\n\n      if (index === startContainerChildIndex) {\n        childNode.textContent =\n          startContainer.textContent.substring(0, startOffset) +\n          text +\n          endContainer.textContent.substring(endOffset);\n      } else if (index > startContainerChildIndex && index <= endContainerChildIndex) {\n        (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(childNode);\n      }\n    });\n\n    container = startContainer;\n    offset = startOffset + text.length;\n  }\n\n  if (container && offset !== undefined) {\n\n    // is necessary in Internet Explorer\n    setTimeout(function() {\n      self.setSelection(container, offset);\n    });\n  }\n};\n\n/**\n * Automatically resize element vertically to fit its content.\n */\nTextBox.prototype.autoResize = function() {\n  var parent = this.parent,\n      content = this.content;\n\n  var fontSize = parseInt(this.style.fontSize) || 12;\n\n  if (content.scrollHeight > parent.offsetHeight ||\n      content.scrollHeight < parent.offsetHeight - fontSize) {\n    var bounds = parent.getBoundingClientRect();\n\n    var height = content.scrollHeight;\n    parent.style.height = height + 'px';\n\n    this.resizeHandler({\n      width: bounds.width,\n      height: bounds.height,\n      dx: 0,\n      dy: height - bounds.height\n    });\n  }\n};\n\n/**\n * Make an element resizable by adding a resize handle.\n */\nTextBox.prototype.resizable = function() {\n  var self = this;\n\n  var parent = this.parent,\n      resizeHandle = this.resizeHandle;\n\n  var minWidth = parseInt(this.style.minWidth) || 0,\n      minHeight = parseInt(this.style.minHeight) || 0,\n      maxWidth = parseInt(this.style.maxWidth) || Infinity,\n      maxHeight = parseInt(this.style.maxHeight) || Infinity;\n\n  if (!resizeHandle) {\n    resizeHandle = this.resizeHandle = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(\n      '<div class=\"djs-direct-editing-resize-handle\"></div>'\n    );\n\n    var startX, startY, startWidth, startHeight;\n\n    var onMouseDown = function(e) {\n      preventDefault(e);\n      stopPropagation(e);\n\n      startX = e.clientX;\n      startY = e.clientY;\n\n      var bounds = parent.getBoundingClientRect();\n\n      startWidth = bounds.width;\n      startHeight = bounds.height;\n\n      min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(document, 'mousemove', onMouseMove);\n      min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(document, 'mouseup', onMouseUp);\n    };\n\n    var onMouseMove = function(e) {\n      preventDefault(e);\n      stopPropagation(e);\n\n      var newWidth = min(max(startWidth + e.clientX - startX, minWidth), maxWidth);\n      var newHeight = min(max(startHeight + e.clientY - startY, minHeight), maxHeight);\n\n      parent.style.width = newWidth + 'px';\n      parent.style.height = newHeight + 'px';\n\n      self.resizeHandler({\n        width: startWidth,\n        height: startHeight,\n        dx: e.clientX - startX,\n        dy: e.clientY - startY\n      });\n    };\n\n    var onMouseUp = function(e) {\n      preventDefault(e);\n      stopPropagation(e);\n\n      min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(document,'mousemove', onMouseMove, false);\n      min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(document, 'mouseup', onMouseUp, false);\n    };\n\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(resizeHandle, 'mousedown', onMouseDown);\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(resizeHandle.style, {\n    position: 'absolute',\n    bottom: '0px',\n    right: '0px',\n    cursor: 'nwse-resize',\n    width: '0',\n    height: '0',\n    borderTop: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid transparent',\n    borderRight: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid #ccc',\n    borderBottom: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid #ccc',\n    borderLeft: (parseInt(this.style.fontSize) / 4 || 3) + 'px solid transparent'\n  });\n\n  parent.appendChild(resizeHandle);\n};\n\n\n/**\n * Clear content and style of the textbox, unbind listeners and\n * reset CSS style.\n */\nTextBox.prototype.destroy = function() {\n  var parent = this.parent,\n      content = this.content,\n      resizeHandle = this.resizeHandle;\n\n  // clear content\n  content.innerText = '';\n\n  // clear styles\n  parent.removeAttribute('style');\n  content.removeAttribute('style');\n\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'keydown', this.keyHandler);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'mousedown', stopPropagation);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'input', this.autoResize);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(content, 'paste', this.handlePaste);\n\n  if (resizeHandle) {\n    resizeHandle.removeAttribute('style');\n\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(resizeHandle);\n  }\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.remove)(parent);\n};\n\n\nTextBox.prototype.getValue = function() {\n  return this.content.innerText.trim();\n};\n\n\nTextBox.prototype.getSelection = function() {\n  var selection = window.getSelection(),\n      range = selection.getRangeAt(0);\n\n  return range;\n};\n\n\nTextBox.prototype.setSelection = function(container, offset) {\n  var range = document.createRange();\n\n  if (container === null) {\n    range.selectNodeContents(this.content);\n  } else {\n    range.setStart(container, offset);\n    range.setEnd(container, offset);\n  }\n\n  var selection = window.getSelection();\n\n  selection.removeAllRanges();\n  selection.addRange(range);\n};\n\n// helpers //////////\n\nfunction normalizeEndOfLineSequences(string) {\n  return string.replace(/\\r\\n|\\r|\\n/g, '\\n');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js-direct-editing/lib/TextBox.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/Diagram.js":
  /*!************************************************!*\
    !*** ./node_modules/diagram-js/lib/Diagram.js ***!
    \************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Diagram)\n/* harmony export */ });\n/* harmony import */ var didi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! didi */ \"./node_modules/didi/dist/index.esm.js\");\n/* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core */ \"./node_modules/diagram-js/lib/core/index.js\");\n\n\n\n\n\n/**\n * Bootstrap an injector from a list of modules, instantiating a number of default components\n *\n * @ignore\n * @param {Array<didi.Module>} bootstrapModules\n *\n * @return {didi.Injector} a injector to use to access the components\n */\nfunction bootstrap(bootstrapModules) {\n\n  var modules = [],\n      components = [];\n\n  function hasModule(m) {\n    return modules.indexOf(m) >= 0;\n  }\n\n  function addModule(m) {\n    modules.push(m);\n  }\n\n  function visit(m) {\n    if (hasModule(m)) {\n      return;\n    }\n\n    (m.__depends__ || []).forEach(visit);\n\n    if (hasModule(m)) {\n      return;\n    }\n\n    addModule(m);\n\n    (m.__init__ || []).forEach(function(c) {\n      components.push(c);\n    });\n  }\n\n  bootstrapModules.forEach(visit);\n\n  var injector = new didi__WEBPACK_IMPORTED_MODULE_0__.Injector(modules);\n\n  components.forEach(function(c) {\n\n    try {\n\n      // eagerly resolve component (fn or string)\n      injector[typeof c === 'string' ? 'get' : 'invoke'](c);\n    } catch (e) {\n      console.error('Failed to instantiate component');\n      console.error(e.stack);\n\n      throw e;\n    }\n  });\n\n  return injector;\n}\n\n/**\n * Creates an injector from passed options.\n *\n * @ignore\n * @param  {Object} options\n * @return {didi.Injector}\n */\nfunction createInjector(options) {\n\n  options = options || {};\n\n  var configModule = {\n    'config': ['value', options]\n  };\n\n  var modules = [ configModule, _core__WEBPACK_IMPORTED_MODULE_1__.default ].concat(options.modules || []);\n\n  return bootstrap(modules);\n}\n\n\n/**\n * The main diagram-js entry point that bootstraps the diagram with the given\n * configuration.\n *\n * To register extensions with the diagram, pass them as Array<didi.Module> to the constructor.\n *\n * @class djs.Diagram\n * @memberOf djs\n * @constructor\n *\n * @example\n *\n * <caption>Creating a plug-in that logs whenever a shape is added to the canvas.</caption>\n *\n * // plug-in implemenentation\n * function MyLoggingPlugin(eventBus) {\n *   eventBus.on('shape.added', function(event) {\n *     console.log('shape ', event.shape, ' was added to the diagram');\n *   });\n * }\n *\n * // export as module\n * export default {\n *   __init__: [ 'myLoggingPlugin' ],\n *     myLoggingPlugin: [ 'type', MyLoggingPlugin ]\n * };\n *\n *\n * // instantiate the diagram with the new plug-in\n *\n * import MyLoggingModule from 'path-to-my-logging-plugin';\n *\n * var diagram = new Diagram({\n *   modules: [\n *     MyLoggingModule\n *   ]\n * });\n *\n * diagram.invoke([ 'canvas', function(canvas) {\n *   // add shape to drawing canvas\n *   canvas.addShape({ x: 10, y: 10 });\n * });\n *\n * // 'shape ... was added to the diagram' logged to console\n *\n * @param {Object} options\n * @param {Array<didi.Module>} [options.modules] external modules to instantiate with the diagram\n * @param {didi.Injector} [injector] an (optional) injector to bootstrap the diagram with\n */\nfunction Diagram(options, injector) {\n\n  // create injector unless explicitly specified\n  this.injector = injector = injector || createInjector(options);\n\n  // API\n\n  /**\n   * Resolves a diagram service\n   *\n   * @method Diagram#get\n   *\n   * @param {string} name the name of the diagram service to be retrieved\n   * @param {boolean} [strict=true] if false, resolve missing services to null\n   */\n  this.get = injector.get;\n\n  /**\n   * Executes a function into which diagram services are injected\n   *\n   * @method Diagram#invoke\n   *\n   * @param {Function|Object[]} fn the function to resolve\n   * @param {Object} locals a number of locals to use to resolve certain dependencies\n   */\n  this.invoke = injector.invoke;\n\n  // init\n\n  // indicate via event\n\n\n  /**\n   * An event indicating that all plug-ins are loaded.\n   *\n   * Use this event to fire other events to interested plug-ins\n   *\n   * @memberOf Diagram\n   *\n   * @event diagram.init\n   *\n   * @example\n   *\n   * eventBus.on('diagram.init', function() {\n   *   eventBus.fire('my-custom-event', { foo: 'BAR' });\n   * });\n   *\n   * @type {Object}\n   */\n  this.get('eventBus').fire('diagram.init');\n}\n\n\n/**\n * Destroys the diagram\n *\n * @method  Diagram#destroy\n */\nDiagram.prototype.destroy = function() {\n  this.get('eventBus').fire('diagram.destroy');\n};\n\n/**\n * Clear the diagram, removing all contents.\n */\nDiagram.prototype.clear = function() {\n  this.get('eventBus').fire('diagram.clear');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/Diagram.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/command/CommandInterceptor.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/command/CommandInterceptor.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CommandInterceptor)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_PRIORITY = 1000;\n\n/**\n * A utility that can be used to plug-in into the command execution for\n * extension and/or validation.\n *\n * @param {EventBus} eventBus\n *\n * @example\n *\n * import inherits from 'inherits';\n *\n * import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';\n *\n * function CommandLogger(eventBus) {\n *   CommandInterceptor.call(this, eventBus);\n *\n *   this.preExecute(function(event) {\n *     console.log('command pre-execute', event);\n *   });\n * }\n *\n * inherits(CommandLogger, CommandInterceptor);\n *\n */\nfunction CommandInterceptor(eventBus) {\n  this._eventBus = eventBus;\n}\n\nCommandInterceptor.$inject = [ 'eventBus' ];\n\nfunction unwrapEvent(fn, that) {\n  return function(event) {\n    return fn.call(that || null, event.context, event.command, event);\n  };\n}\n\n/**\n * Register an interceptor for a command execution\n *\n * @param {string|Array<string>} [events] list of commands to register on\n * @param {string} [hook] command hook, i.e. preExecute, executed to listen on\n * @param {number} [priority] the priority on which to hook into the execution\n * @param {Function} handlerFn interceptor to be invoked with (event)\n * @param {boolean} unwrap if true, unwrap the event and pass (context, command, event) to the\n *                          listener instead\n * @param {Object} [that] Pass context (`this`) to the handler function\n */\nCommandInterceptor.prototype.on = function(events, hook, priority, handlerFn, unwrap, that) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(hook) || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(hook)) {\n    that = unwrap;\n    unwrap = handlerFn;\n    handlerFn = priority;\n    priority = hook;\n    hook = null;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n    that = unwrap;\n    unwrap = handlerFn;\n    handlerFn = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(unwrap)) {\n    that = unwrap;\n    unwrap = false;\n  }\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handlerFn)) {\n    throw new Error('handlerFn must be a function');\n  }\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events)) {\n    events = [ events ];\n  }\n\n  var eventBus = this._eventBus;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(events, function(event) {\n\n    // concat commandStack(.event)?(.hook)?\n    var fullEvent = [ 'commandStack', event, hook ].filter(function(e) { return e; }).join('.');\n\n    eventBus.on(fullEvent, priority, unwrap ? unwrapEvent(handlerFn, that) : handlerFn, that);\n  });\n};\n\n\nvar hooks = [\n  'canExecute',\n  'preExecute',\n  'preExecuted',\n  'execute',\n  'executed',\n  'postExecute',\n  'postExecuted',\n  'revert',\n  'reverted'\n];\n\n/*\n * Install hook shortcuts\n *\n * This will generate the CommandInterceptor#(preExecute|...|reverted) methods\n * which will in term forward to CommandInterceptor#on.\n */\n(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(hooks, function(hook) {\n\n  /**\n   * {canExecute|preExecute|preExecuted|execute|executed|postExecute|postExecuted|revert|reverted}\n   *\n   * A named hook for plugging into the command execution\n   *\n   * @param {string|Array<string>} [events] list of commands to register on\n   * @param {number} [priority] the priority on which to hook into the execution\n   * @param {Function} handlerFn interceptor to be invoked with (event)\n   * @param {boolean} [unwrap=false] if true, unwrap the event and pass (context, command, event) to the\n   *                          listener instead\n   * @param {Object} [that] Pass context (`this`) to the handler function\n   */\n  CommandInterceptor.prototype[hook] = function(events, priority, handlerFn, unwrap, that) {\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(events) || (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(events)) {\n      that = unwrap;\n      unwrap = handlerFn;\n      handlerFn = priority;\n      priority = events;\n      events = null;\n    }\n\n    this.on(events, hook, priority, handlerFn, unwrap, that);\n  };\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/CommandInterceptor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/command/CommandStack.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/command/CommandStack.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CommandStack)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A service that offers un- and redoable execution of commands.\n *\n * The command stack is responsible for executing modeling actions\n * in a un- and redoable manner. To do this it delegates the actual\n * command execution to {@link CommandHandler}s.\n *\n * Command handlers provide {@link CommandHandler#execute(ctx)} and\n * {@link CommandHandler#revert(ctx)} methods to un- and redo a command\n * identified by a command context.\n *\n *\n * ## Life-Cycle events\n *\n * In the process the command stack fires a number of life-cycle events\n * that other components to participate in the command execution.\n *\n *    * preExecute\n *    * preExecuted\n *    * execute\n *    * executed\n *    * postExecute\n *    * postExecuted\n *    * revert\n *    * reverted\n *\n * A special event is used for validating, whether a command can be\n * performed prior to its execution.\n *\n *    * canExecute\n *\n * Each of the events is fired as `commandStack.{eventName}` and\n * `commandStack.{commandName}.{eventName}`, respectively. This gives\n * components fine grained control on where to hook into.\n *\n * The event object fired transports `command`, the name of the\n * command and `context`, the command context.\n *\n *\n * ## Creating Command Handlers\n *\n * Command handlers should provide the {@link CommandHandler#execute(ctx)}\n * and {@link CommandHandler#revert(ctx)} methods to implement\n * redoing and undoing of a command.\n *\n * A command handler _must_ ensure undo is performed properly in order\n * not to break the undo chain. It must also return the shapes that\n * got changed during the `execute` and `revert` operations.\n *\n * Command handlers may execute other modeling operations (and thus\n * commands) in their `preExecute` and `postExecute` phases. The command\n * stack will properly group all commands together into a logical unit\n * that may be re- and undone atomically.\n *\n * Command handlers must not execute other commands from within their\n * core implementation (`execute`, `revert`).\n *\n *\n * ## Change Tracking\n *\n * During the execution of the CommandStack it will keep track of all\n * elements that have been touched during the command's execution.\n *\n * At the end of the CommandStack execution it will notify interested\n * components via an 'elements.changed' event with all the dirty\n * elements.\n *\n * The event can be picked up by components that are interested in the fact\n * that elements have been changed. One use case for this is updating\n * their graphical representation after moving / resizing or deletion.\n *\n * @see CommandHandler\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction CommandStack(eventBus, injector) {\n\n  /**\n   * A map of all registered command handlers.\n   *\n   * @type {Object}\n   */\n  this._handlerMap = {};\n\n  /**\n   * A stack containing all re/undoable actions on the diagram\n   *\n   * @type {Array<Object>}\n   */\n  this._stack = [];\n\n  /**\n   * The current index on the stack\n   *\n   * @type {number}\n   */\n  this._stackIdx = -1;\n\n  /**\n   * Current active commandStack execution\n   *\n   * @type {Object}\n   * @property {Object[]} actions\n   * @property {Object[]} dirty\n   * @property { 'undo' | 'redo' | 'clear' | 'execute' | null } trigger the cause of the current excecution\n   */\n  this._currentExecution = {\n    actions: [],\n    dirty: [],\n    trigger: null\n  };\n\n\n  this._injector = injector;\n  this._eventBus = eventBus;\n\n  this._uid = 1;\n\n  eventBus.on([\n    'diagram.destroy',\n    'diagram.clear'\n  ], function() {\n    this.clear(false);\n  }, this);\n}\n\nCommandStack.$inject = [ 'eventBus', 'injector' ];\n\n\n/**\n * Execute a command\n *\n * @param {string} command the command to execute\n * @param {Object} context the environment to execute the command in\n */\nCommandStack.prototype.execute = function(command, context) {\n  if (!command) {\n    throw new Error('command required');\n  }\n\n  this._currentExecution.trigger = 'execute';\n\n  var action = { command: command, context: context };\n\n  this._pushAction(action);\n  this._internalExecute(action);\n  this._popAction(action);\n};\n\n\n/**\n * Ask whether a given command can be executed.\n *\n * Implementors may hook into the mechanism on two ways:\n *\n *   * in event listeners:\n *\n *     Users may prevent the execution via an event listener.\n *     It must prevent the default action for `commandStack.(<command>.)canExecute` events.\n *\n *   * in command handlers:\n *\n *     If the method {@link CommandHandler#canExecute} is implemented in a handler\n *     it will be called to figure out whether the execution is allowed.\n *\n * @param  {string} command the command to execute\n * @param  {Object} context the environment to execute the command in\n *\n * @return {boolean} true if the command can be executed\n */\nCommandStack.prototype.canExecute = function(command, context) {\n\n  var action = { command: command, context: context };\n\n  var handler = this._getHandler(command);\n\n  var result = this._fire(command, 'canExecute', action);\n\n  // handler#canExecute will only be called if no listener\n  // decided on a result already\n  if (result === undefined) {\n    if (!handler) {\n      return false;\n    }\n\n    if (handler.canExecute) {\n      result = handler.canExecute(context);\n    }\n  }\n\n  return result;\n};\n\n\n/**\n * Clear the command stack, erasing all undo / redo history\n */\nCommandStack.prototype.clear = function(emit) {\n  this._stack.length = 0;\n  this._stackIdx = -1;\n\n  if (emit !== false) {\n    this._fire('changed', { trigger: 'clear' });\n  }\n};\n\n\n/**\n * Undo last command(s)\n */\nCommandStack.prototype.undo = function() {\n  var action = this._getUndoAction(),\n      next;\n\n  if (action) {\n    this._currentExecution.trigger = 'undo';\n\n    this._pushAction(action);\n\n    while (action) {\n      this._internalUndo(action);\n      next = this._getUndoAction();\n\n      if (!next || next.id !== action.id) {\n        break;\n      }\n\n      action = next;\n    }\n\n    this._popAction();\n  }\n};\n\n\n/**\n * Redo last command(s)\n */\nCommandStack.prototype.redo = function() {\n  var action = this._getRedoAction(),\n      next;\n\n  if (action) {\n    this._currentExecution.trigger = 'redo';\n\n    this._pushAction(action);\n\n    while (action) {\n      this._internalExecute(action, true);\n      next = this._getRedoAction();\n\n      if (!next || next.id !== action.id) {\n        break;\n      }\n\n      action = next;\n    }\n\n    this._popAction();\n  }\n};\n\n\n/**\n * Register a handler instance with the command stack\n *\n * @param {string} command\n * @param {CommandHandler} handler\n */\nCommandStack.prototype.register = function(command, handler) {\n  this._setHandler(command, handler);\n};\n\n\n/**\n * Register a handler type with the command stack\n * by instantiating it and injecting its dependencies.\n *\n * @param {string} command\n * @param {Function} a constructor for a {@link CommandHandler}\n */\nCommandStack.prototype.registerHandler = function(command, handlerCls) {\n\n  if (!command || !handlerCls) {\n    throw new Error('command and handlerCls must be defined');\n  }\n\n  var handler = this._injector.instantiate(handlerCls);\n  this.register(command, handler);\n};\n\nCommandStack.prototype.canUndo = function() {\n  return !!this._getUndoAction();\n};\n\nCommandStack.prototype.canRedo = function() {\n  return !!this._getRedoAction();\n};\n\n// stack access  //////////////////////\n\nCommandStack.prototype._getRedoAction = function() {\n  return this._stack[this._stackIdx + 1];\n};\n\n\nCommandStack.prototype._getUndoAction = function() {\n  return this._stack[this._stackIdx];\n};\n\n\n// internal functionality //////////////////////\n\nCommandStack.prototype._internalUndo = function(action) {\n  var self = this;\n\n  var command = action.command,\n      context = action.context;\n\n  var handler = this._getHandler(command);\n\n  // guard against illegal nested command stack invocations\n  this._atomicDo(function() {\n    self._fire(command, 'revert', action);\n\n    if (handler.revert) {\n      self._markDirty(handler.revert(context));\n    }\n\n    self._revertedAction(action);\n\n    self._fire(command, 'reverted', action);\n  });\n};\n\n\nCommandStack.prototype._fire = function(command, qualifier, event) {\n  if (arguments.length < 3) {\n    event = qualifier;\n    qualifier = null;\n  }\n\n  var names = qualifier ? [ command + '.' + qualifier, qualifier ] : [ command ],\n      i, name, result;\n\n  event = this._eventBus.createEvent(event);\n\n  for (i = 0; (name = names[i]); i++) {\n    result = this._eventBus.fire('commandStack.' + name, event);\n\n    if (event.cancelBubble) {\n      break;\n    }\n  }\n\n  return result;\n};\n\nCommandStack.prototype._createId = function() {\n  return this._uid++;\n};\n\nCommandStack.prototype._atomicDo = function(fn) {\n\n  var execution = this._currentExecution;\n\n  execution.atomic = true;\n\n  try {\n    fn();\n  } finally {\n    execution.atomic = false;\n  }\n};\n\nCommandStack.prototype._internalExecute = function(action, redo) {\n  var self = this;\n\n  var command = action.command,\n      context = action.context;\n\n  var handler = this._getHandler(command);\n\n  if (!handler) {\n    throw new Error('no command handler registered for <' + command + '>');\n  }\n\n  this._pushAction(action);\n\n  if (!redo) {\n    this._fire(command, 'preExecute', action);\n\n    if (handler.preExecute) {\n      handler.preExecute(context);\n    }\n\n    this._fire(command, 'preExecuted', action);\n  }\n\n  // guard against illegal nested command stack invocations\n  this._atomicDo(function() {\n\n    self._fire(command, 'execute', action);\n\n    if (handler.execute) {\n\n      // actual execute + mark return results as dirty\n      self._markDirty(handler.execute(context));\n    }\n\n    // log to stack\n    self._executedAction(action, redo);\n\n    self._fire(command, 'executed', action);\n  });\n\n  if (!redo) {\n    this._fire(command, 'postExecute', action);\n\n    if (handler.postExecute) {\n      handler.postExecute(context);\n    }\n\n    this._fire(command, 'postExecuted', action);\n  }\n\n  this._popAction(action);\n};\n\n\nCommandStack.prototype._pushAction = function(action) {\n\n  var execution = this._currentExecution,\n      actions = execution.actions;\n\n  var baseAction = actions[0];\n\n  if (execution.atomic) {\n    throw new Error('illegal invocation in <execute> or <revert> phase (action: ' + action.command + ')');\n  }\n\n  if (!action.id) {\n    action.id = (baseAction && baseAction.id) || this._createId();\n  }\n\n  actions.push(action);\n};\n\n\nCommandStack.prototype._popAction = function() {\n  var execution = this._currentExecution,\n      trigger = execution.trigger,\n      actions = execution.actions,\n      dirty = execution.dirty;\n\n  actions.pop();\n\n  if (!actions.length) {\n    this._eventBus.fire('elements.changed', { elements: (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.uniqueBy)('id', dirty.reverse()) });\n\n    dirty.length = 0;\n\n    this._fire('changed', { trigger: trigger });\n\n    execution.trigger = null;\n  }\n};\n\n\nCommandStack.prototype._markDirty = function(elements) {\n  var execution = this._currentExecution;\n\n  if (!elements) {\n    return;\n  }\n\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements) ? elements : [ elements ];\n\n  execution.dirty = execution.dirty.concat(elements);\n};\n\n\nCommandStack.prototype._executedAction = function(action, redo) {\n  var stackIdx = ++this._stackIdx;\n\n  if (!redo) {\n    this._stack.splice(stackIdx, this._stack.length, action);\n  }\n};\n\n\nCommandStack.prototype._revertedAction = function(action) {\n  this._stackIdx--;\n};\n\n\nCommandStack.prototype._getHandler = function(command) {\n  return this._handlerMap[command];\n};\n\nCommandStack.prototype._setHandler = function(command, handler) {\n  if (!command || !handler) {\n    throw new Error('command and handler required');\n  }\n\n  if (this._handlerMap[command]) {\n    throw new Error('overriding handler for command <' + command + '>');\n  }\n\n  this._handlerMap[command] = handler;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/CommandStack.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/command/index.js":
  /*!******************************************************!*\
    !*** ./node_modules/diagram-js/lib/command/index.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CommandStack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CommandStack */ \"./node_modules/diagram-js/lib/command/CommandStack.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  commandStack: [ 'type', _CommandStack__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/command/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/Canvas.js":
  /*!****************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/Canvas.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Canvas)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction round(number, resolution) {\n  return Math.round(number * resolution) / resolution;\n}\n\nfunction ensurePx(number) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(number) ? number + 'px' : number;\n}\n\n/**\n * Creates a HTML container element for a SVG element with\n * the given configuration\n *\n * @param  {Object} options\n * @return {HTMLElement} the container element\n */\nfunction createContainer(options) {\n\n  options = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, { width: '100%', height: '100%' }, options);\n\n  var container = options.container || document.body;\n\n  // create a <div> around the svg element with the respective size\n  // this way we can always get the correct container size\n  // (this is impossible for <svg> elements at the moment)\n  var parent = document.createElement('div');\n  parent.setAttribute('class', 'djs-container');\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(parent.style, {\n    position: 'relative',\n    overflow: 'hidden',\n    width: ensurePx(options.width),\n    height: ensurePx(options.height)\n  });\n\n  container.appendChild(parent);\n\n  return parent;\n}\n\nfunction createGroup(parent, cls, childIndex) {\n  var group = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(group).add(cls);\n\n  var index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;\n\n  // must ensure second argument is node or _null_\n  // cf. https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore\n  parent.insertBefore(group, parent.childNodes[index] || null);\n\n  return group;\n}\n\nvar BASE_LAYER = 'base';\n\n\nvar REQUIRED_MODEL_ATTRS = {\n  shape: [ 'x', 'y', 'width', 'height' ],\n  connection: [ 'waypoints' ]\n};\n\n/**\n * The main drawing canvas.\n *\n * @class\n * @constructor\n *\n * @emits Canvas#canvas.init\n *\n * @param {Object} config\n * @param {EventBus} eventBus\n * @param {GraphicsFactory} graphicsFactory\n * @param {ElementRegistry} elementRegistry\n */\nfunction Canvas(config, eventBus, graphicsFactory, elementRegistry) {\n\n  this._eventBus = eventBus;\n  this._elementRegistry = elementRegistry;\n  this._graphicsFactory = graphicsFactory;\n\n  this._init(config || {});\n}\n\nCanvas.$inject = [\n  'config.canvas',\n  'eventBus',\n  'graphicsFactory',\n  'elementRegistry'\n];\n\n\nCanvas.prototype._init = function(config) {\n\n  var eventBus = this._eventBus;\n\n  // Creates a <svg> element that is wrapped into a <div>.\n  // This way we are always able to correctly figure out the size of the svg element\n  // by querying the parent node.\n  //\n  // (It is not possible to get the size of a svg element cross browser @ 2014-04-01)\n  //\n  // <div class=\"djs-container\" style=\"width: {desired-width}, height: {desired-height}\">\n  //   <svg width=\"100%\" height=\"100%\">\n  //    ...\n  //   </svg>\n  // </div>\n\n  // html container\n  var container = this._container = createContainer(config);\n\n  var svg = this._svg = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('svg');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(svg, { width: '100%', height: '100%' });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(container, svg);\n\n  var viewport = this._viewport = createGroup(svg, 'viewport');\n\n  this._layers = {};\n\n  // debounce canvas.viewbox.changed events\n  // for smoother diagram interaction\n  if (config.deferUpdate !== false) {\n    this._viewboxChanged = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.debounce)((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this._viewboxChanged, this), 300);\n  }\n\n  eventBus.on('diagram.init', function() {\n\n    /**\n     * An event indicating that the canvas is ready to be drawn on.\n     *\n     * @memberOf Canvas\n     *\n     * @event canvas.init\n     *\n     * @type {Object}\n     * @property {SVGElement} svg the created svg element\n     * @property {SVGElement} viewport the direct parent of diagram elements and shapes\n     */\n    eventBus.fire('canvas.init', {\n      svg: svg,\n      viewport: viewport\n    });\n\n  }, this);\n\n  // reset viewbox on shape changes to\n  // recompute the viewbox\n  eventBus.on([\n    'shape.added',\n    'connection.added',\n    'shape.removed',\n    'connection.removed',\n    'elements.changed'\n  ], function() {\n    delete this._cachedViewbox;\n  }, this);\n\n  eventBus.on('diagram.destroy', 500, this._destroy, this);\n  eventBus.on('diagram.clear', 500, this._clear, this);\n};\n\nCanvas.prototype._destroy = function(emit) {\n  this._eventBus.fire('canvas.destroy', {\n    svg: this._svg,\n    viewport: this._viewport\n  });\n\n  var parent = this._container.parentNode;\n\n  if (parent) {\n    parent.removeChild(this._container);\n  }\n\n  delete this._svg;\n  delete this._container;\n  delete this._layers;\n  delete this._rootElement;\n  delete this._viewport;\n};\n\nCanvas.prototype._clear = function() {\n\n  var self = this;\n\n  var allElements = this._elementRegistry.getAll();\n\n  // remove all elements\n  allElements.forEach(function(element) {\n    var type = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getType)(element);\n\n    if (type === 'root') {\n      self.setRootElement(null, true);\n    } else {\n      self._removeElement(element, type);\n    }\n  });\n\n  // force recomputation of view box\n  delete this._cachedViewbox;\n};\n\n/**\n * Returns the default layer on which\n * all elements are drawn.\n *\n * @returns {SVGElement}\n */\nCanvas.prototype.getDefaultLayer = function() {\n  return this.getLayer(BASE_LAYER, 0);\n};\n\n/**\n * Returns a layer that is used to draw elements\n * or annotations on it.\n *\n * Non-existing layers retrieved through this method\n * will be created. During creation, the optional index\n * may be used to create layers below or above existing layers.\n * A layer with a certain index is always created above all\n * existing layers with the same index.\n *\n * @param {string} name\n * @param {number} index\n *\n * @returns {SVGElement}\n */\nCanvas.prototype.getLayer = function(name, index) {\n\n  if (!name) {\n    throw new Error('must specify a name');\n  }\n\n  var layer = this._layers[name];\n\n  if (!layer) {\n    layer = this._layers[name] = this._createLayer(name, index);\n  }\n\n  // throw an error if layer creation / retrival is\n  // requested on different index\n  if (typeof index !== 'undefined' && layer.index !== index) {\n    throw new Error('layer <' + name + '> already created at index <' + index + '>');\n  }\n\n  return layer.group;\n};\n\n/**\n * Creates a given layer and returns it.\n *\n * @param {string} name\n * @param {number} [index=0]\n *\n * @return {Object} layer descriptor with { index, group: SVGGroup }\n */\nCanvas.prototype._createLayer = function(name, index) {\n\n  if (!index) {\n    index = 0;\n  }\n\n  var childIndex = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(this._layers, function(childIndex, layer) {\n    if (index >= layer.index) {\n      childIndex++;\n    }\n\n    return childIndex;\n  }, 0);\n\n  return {\n    group: createGroup(this._viewport, 'layer-' + name, childIndex),\n    index: index\n  };\n\n};\n\n/**\n * Returns the html element that encloses the\n * drawing canvas.\n *\n * @return {DOMNode}\n */\nCanvas.prototype.getContainer = function() {\n  return this._container;\n};\n\n\n// markers //////////////////////\n\nCanvas.prototype._updateMarker = function(element, marker, add) {\n  var container;\n\n  if (!element.id) {\n    element = this._elementRegistry.get(element);\n  }\n\n  // we need to access all\n  container = this._elementRegistry._elements[element.id];\n\n  if (!container) {\n    return;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ container.gfx, container.secondaryGfx ], function(gfx) {\n    if (gfx) {\n\n      // invoke either addClass or removeClass based on mode\n      if (add) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add(marker);\n      } else {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).remove(marker);\n      }\n    }\n  });\n\n  /**\n   * An event indicating that a marker has been updated for an element\n   *\n   * @event element.marker.update\n   * @type {Object}\n   * @property {djs.model.Element} element the shape\n   * @property {Object} gfx the graphical representation of the shape\n   * @property {string} marker\n   * @property {boolean} add true if the marker was added, false if it got removed\n   */\n  this._eventBus.fire('element.marker.update', { element: element, gfx: container.gfx, marker: marker, add: !!add });\n};\n\n\n/**\n * Adds a marker to an element (basically a css class).\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @example\n * canvas.addMarker('foo', 'some-marker');\n *\n * var fooGfx = canvas.getGraphics('foo');\n *\n * fooGfx; // <g class=\"... some-marker\"> ... </g>\n *\n * @param {string|djs.model.Base} element\n * @param {string} marker\n */\nCanvas.prototype.addMarker = function(element, marker) {\n  this._updateMarker(element, marker, true);\n};\n\n\n/**\n * Remove a marker from an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param  {string|djs.model.Base} element\n * @param  {string} marker\n */\nCanvas.prototype.removeMarker = function(element, marker) {\n  this._updateMarker(element, marker, false);\n};\n\n/**\n * Check the existence of a marker on element.\n *\n * @param  {string|djs.model.Base} element\n * @param  {string} marker\n */\nCanvas.prototype.hasMarker = function(element, marker) {\n  if (!element.id) {\n    element = this._elementRegistry.get(element);\n  }\n\n  var gfx = this.getGraphics(element);\n\n  return (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).has(marker);\n};\n\n/**\n * Toggles a marker on an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param  {string|djs.model.Base} element\n * @param  {string} marker\n */\nCanvas.prototype.toggleMarker = function(element, marker) {\n  if (this.hasMarker(element, marker)) {\n    this.removeMarker(element, marker);\n  } else {\n    this.addMarker(element, marker);\n  }\n};\n\nCanvas.prototype.getRootElement = function() {\n  if (!this._rootElement) {\n    this.setRootElement({ id: '__implicitroot', children: [] });\n  }\n\n  return this._rootElement;\n};\n\n\n\n// root element handling //////////////////////\n\n/**\n * Sets a given element as the new root element for the canvas\n * and returns the new root element.\n *\n * @param {Object|djs.model.Root} element\n * @param {boolean} [override] whether to override the current root element, if any\n *\n * @return {Object|djs.model.Root} new root element\n */\nCanvas.prototype.setRootElement = function(element, override) {\n\n  if (element) {\n    this._ensureValid('root', element);\n  }\n\n  var currentRoot = this._rootElement,\n      elementRegistry = this._elementRegistry,\n      eventBus = this._eventBus;\n\n  if (currentRoot) {\n    if (!override) {\n      throw new Error('rootElement already set, need to specify override');\n    }\n\n    // simulate element remove event sequence\n    eventBus.fire('root.remove', { element: currentRoot });\n    eventBus.fire('root.removed', { element: currentRoot });\n\n    elementRegistry.remove(currentRoot);\n  }\n\n  if (element) {\n    var gfx = this.getDefaultLayer();\n\n    // resemble element add event sequence\n    eventBus.fire('root.add', { element: element });\n\n    elementRegistry.add(element, gfx, this._svg);\n\n    eventBus.fire('root.added', { element: element, gfx: gfx });\n  }\n\n  this._rootElement = element;\n\n  return element;\n};\n\n\n\n// add functionality //////////////////////\n\nCanvas.prototype._ensureValid = function(type, element) {\n  if (!element.id) {\n    throw new Error('element must have an id');\n  }\n\n  if (this._elementRegistry.get(element.id)) {\n    throw new Error('element with id ' + element.id + ' already exists');\n  }\n\n  var requiredAttrs = REQUIRED_MODEL_ATTRS[type];\n\n  var valid = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(requiredAttrs, function(attr) {\n    return typeof element[attr] !== 'undefined';\n  });\n\n  if (!valid) {\n    throw new Error(\n      'must supply { ' + requiredAttrs.join(', ') + ' } with ' + type);\n  }\n};\n\nCanvas.prototype._setParent = function(element, parent, parentIndex) {\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_3__.add)(parent.children, element, parentIndex);\n  element.parent = parent;\n};\n\n/**\n * Adds an element to the canvas.\n *\n * This wires the parent <-> child relationship between the element and\n * a explicitly specified parent or an implicit root element.\n *\n * During add it emits the events\n *\n *  * <{type}.add> (element, parent)\n *  * <{type}.added> (element, gfx)\n *\n * Extensions may hook into these events to perform their magic.\n *\n * @param {string} type\n * @param {Object|djs.model.Base} element\n * @param {Object|djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {Object|djs.model.Base} the added element\n */\nCanvas.prototype._addElement = function(type, element, parent, parentIndex) {\n\n  parent = parent || this.getRootElement();\n\n  var eventBus = this._eventBus,\n      graphicsFactory = this._graphicsFactory;\n\n  this._ensureValid(type, element);\n\n  eventBus.fire(type + '.add', { element: element, parent: parent });\n\n  this._setParent(element, parent, parentIndex);\n\n  // create graphics\n  var gfx = graphicsFactory.create(type, element, parentIndex);\n\n  this._elementRegistry.add(element, gfx);\n\n  // update its visual\n  graphicsFactory.update(type, element, gfx);\n\n  eventBus.fire(type + '.added', { element: element, gfx: gfx });\n\n  return element;\n};\n\n/**\n * Adds a shape to the canvas\n *\n * @param {Object|djs.model.Shape} shape to add to the diagram\n * @param {djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {djs.model.Shape} the added shape\n */\nCanvas.prototype.addShape = function(shape, parent, parentIndex) {\n  return this._addElement('shape', shape, parent, parentIndex);\n};\n\n/**\n * Adds a connection to the canvas\n *\n * @param {Object|djs.model.Connection} connection to add to the diagram\n * @param {djs.model.Base} [parent]\n * @param {number} [parentIndex]\n *\n * @return {djs.model.Connection} the added connection\n */\nCanvas.prototype.addConnection = function(connection, parent, parentIndex) {\n  return this._addElement('connection', connection, parent, parentIndex);\n};\n\n\n/**\n * Internal remove element\n */\nCanvas.prototype._removeElement = function(element, type) {\n\n  var elementRegistry = this._elementRegistry,\n      graphicsFactory = this._graphicsFactory,\n      eventBus = this._eventBus;\n\n  element = elementRegistry.get(element.id || element);\n\n  if (!element) {\n\n    // element was removed already\n    return;\n  }\n\n  eventBus.fire(type + '.remove', { element: element });\n\n  graphicsFactory.remove(element);\n\n  // unset parent <-> child relationship\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_3__.remove)(element.parent && element.parent.children, element);\n  element.parent = null;\n\n  eventBus.fire(type + '.removed', { element: element });\n\n  elementRegistry.remove(element);\n\n  return element;\n};\n\n\n/**\n * Removes a shape from the canvas\n *\n * @param {string|djs.model.Shape} shape or shape id to be removed\n *\n * @return {djs.model.Shape} the removed shape\n */\nCanvas.prototype.removeShape = function(shape) {\n\n  /**\n   * An event indicating that a shape is about to be removed from the canvas.\n   *\n   * @memberOf Canvas\n   *\n   * @event shape.remove\n   * @type {Object}\n   * @property {djs.model.Shape} element the shape descriptor\n   * @property {Object} gfx the graphical representation of the shape\n   */\n\n  /**\n   * An event indicating that a shape has been removed from the canvas.\n   *\n   * @memberOf Canvas\n   *\n   * @event shape.removed\n   * @type {Object}\n   * @property {djs.model.Shape} element the shape descriptor\n   * @property {Object} gfx the graphical representation of the shape\n   */\n  return this._removeElement(shape, 'shape');\n};\n\n\n/**\n * Removes a connection from the canvas\n *\n * @param {string|djs.model.Connection} connection or connection id to be removed\n *\n * @return {djs.model.Connection} the removed connection\n */\nCanvas.prototype.removeConnection = function(connection) {\n\n  /**\n   * An event indicating that a connection is about to be removed from the canvas.\n   *\n   * @memberOf Canvas\n   *\n   * @event connection.remove\n   * @type {Object}\n   * @property {djs.model.Connection} element the connection descriptor\n   * @property {Object} gfx the graphical representation of the connection\n   */\n\n  /**\n   * An event indicating that a connection has been removed from the canvas.\n   *\n   * @memberOf Canvas\n   *\n   * @event connection.removed\n   * @type {Object}\n   * @property {djs.model.Connection} element the connection descriptor\n   * @property {Object} gfx the graphical representation of the connection\n   */\n  return this._removeElement(connection, 'connection');\n};\n\n\n/**\n * Return the graphical object underlaying a certain diagram element\n *\n * @param {string|djs.model.Base} element descriptor of the element\n * @param {boolean} [secondary=false] whether to return the secondary connected element\n *\n * @return {SVGElement}\n */\nCanvas.prototype.getGraphics = function(element, secondary) {\n  return this._elementRegistry.getGraphics(element, secondary);\n};\n\n\n/**\n * Perform a viewbox update via a given change function.\n *\n * @param {Function} changeFn\n */\nCanvas.prototype._changeViewbox = function(changeFn) {\n\n  // notify others of the upcoming viewbox change\n  this._eventBus.fire('canvas.viewbox.changing');\n\n  // perform actual change\n  changeFn.apply(this);\n\n  // reset the cached viewbox so that\n  // a new get operation on viewbox or zoom\n  // triggers a viewbox re-computation\n  this._cachedViewbox = null;\n\n  // notify others of the change; this step\n  // may or may not be debounced\n  this._viewboxChanged();\n};\n\nCanvas.prototype._viewboxChanged = function() {\n  this._eventBus.fire('canvas.viewbox.changed', { viewbox: this.viewbox() });\n};\n\n\n/**\n * Gets or sets the view box of the canvas, i.e. the\n * area that is currently displayed.\n *\n * The getter may return a cached viewbox (if it is currently\n * changing). To force a recomputation, pass `false` as the first argument.\n *\n * @example\n *\n * canvas.viewbox({ x: 100, y: 100, width: 500, height: 500 })\n *\n * // sets the visible area of the diagram to (100|100) -> (600|100)\n * // and and scales it according to the diagram width\n *\n * var viewbox = canvas.viewbox(); // pass `false` to force recomputing the box.\n *\n * console.log(viewbox);\n * // {\n * //   inner: Dimensions,\n * //   outer: Dimensions,\n * //   scale,\n * //   x, y,\n * //   width, height\n * // }\n *\n * // if the current diagram is zoomed and scrolled, you may reset it to the\n * // default zoom via this method, too:\n *\n * var zoomedAndScrolledViewbox = canvas.viewbox();\n *\n * canvas.viewbox({\n *   x: 0,\n *   y: 0,\n *   width: zoomedAndScrolledViewbox.outer.width,\n *   height: zoomedAndScrolledViewbox.outer.height\n * });\n *\n * @param  {Object} [box] the new view box to set\n * @param  {number} box.x the top left X coordinate of the canvas visible in view box\n * @param  {number} box.y the top left Y coordinate of the canvas visible in view box\n * @param  {number} box.width the visible width\n * @param  {number} box.height\n *\n * @return {Object} the current view box\n */\nCanvas.prototype.viewbox = function(box) {\n\n  if (box === undefined && this._cachedViewbox) {\n    return this._cachedViewbox;\n  }\n\n  var viewport = this._viewport,\n      innerBox,\n      outerBox = this.getSize(),\n      matrix,\n      transform,\n      scale,\n      x, y;\n\n  if (!box) {\n\n    // compute the inner box based on the\n    // diagrams default layer. This allows us to exclude\n    // external components, such as overlays\n    innerBox = this.getDefaultLayer().getBBox();\n\n    transform = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.transform)(viewport);\n    matrix = transform ? transform.matrix : (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.createMatrix)();\n    scale = round(matrix.a, 1000);\n\n    x = round(-matrix.e || 0, 1000);\n    y = round(-matrix.f || 0, 1000);\n\n    box = this._cachedViewbox = {\n      x: x ? x / scale : 0,\n      y: y ? y / scale : 0,\n      width: outerBox.width / scale,\n      height: outerBox.height / scale,\n      scale: scale,\n      inner: {\n        width: innerBox.width,\n        height: innerBox.height,\n        x: innerBox.x,\n        y: innerBox.y\n      },\n      outer: outerBox\n    };\n\n    return box;\n  } else {\n\n    this._changeViewbox(function() {\n      scale = Math.min(outerBox.width / box.width, outerBox.height / box.height);\n\n      var matrix = this._svg.createSVGMatrix()\n        .scale(scale)\n        .translate(-box.x, -box.y);\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.transform)(viewport, matrix);\n    });\n  }\n\n  return box;\n};\n\n\n/**\n * Gets or sets the scroll of the canvas.\n *\n * @param {Object} [delta] the new scroll to apply.\n *\n * @param {number} [delta.dx]\n * @param {number} [delta.dy]\n */\nCanvas.prototype.scroll = function(delta) {\n\n  var node = this._viewport;\n  var matrix = node.getCTM();\n\n  if (delta) {\n    this._changeViewbox(function() {\n      delta = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ dx: 0, dy: 0 }, delta || {});\n\n      matrix = this._svg.createSVGMatrix().translate(delta.dx, delta.dy).multiply(matrix);\n\n      setCTM(node, matrix);\n    });\n  }\n\n  return { x: matrix.e, y: matrix.f };\n};\n\n/**\n * Scrolls the viewbox to contain the given element.\n * Optionally specify a padding to be applied to the edges.\n *\n * @param {Object} [element] the element to scroll to.\n * @param {Object|Number} [padding=100] the padding to be applied. Can also specify top, bottom, left and right.\n *\n */\nCanvas.prototype.scrollToElement = function(element, padding) {\n  var defaultPadding = 100;\n  if (!padding) {\n    padding = {};\n  }\n  if (typeof padding === 'number') {\n    defaultPadding = padding;\n  }\n\n  padding = {\n    top: padding.top || defaultPadding,\n    right: padding.right || defaultPadding,\n    bottom: padding.bottom || defaultPadding,\n    left: padding.left || defaultPadding\n  };\n\n  var elementBounds = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(element),\n      elementTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(elementBounds),\n      viewboxBounds = this.viewbox(),\n      zoom = this.zoom(),\n      dx, dy;\n\n  // Shrink viewboxBounds with padding\n  viewboxBounds.y += padding.top / zoom;\n  viewboxBounds.x += padding.left / zoom;\n  viewboxBounds.width -= (padding.right + padding.left) / zoom;\n  viewboxBounds.height -= (padding.bottom + padding.top) / zoom;\n\n  var viewboxTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(viewboxBounds);\n\n  var canFit = elementBounds.width < viewboxBounds.width && elementBounds.height < viewboxBounds.height;\n\n  if (!canFit) {\n\n    // top-left when element can't fit\n    dx = elementBounds.x - viewboxBounds.x;\n    dy = elementBounds.y - viewboxBounds.y;\n\n  } else {\n\n    var dRight = Math.max(0, elementTrbl.right - viewboxTrbl.right),\n        dLeft = Math.min(0, elementTrbl.left - viewboxTrbl.left),\n        dBottom = Math.max(0, elementTrbl.bottom - viewboxTrbl.bottom),\n        dTop = Math.min(0, elementTrbl.top - viewboxTrbl.top);\n\n    dx = dRight || dLeft;\n    dy = dBottom || dTop;\n\n  }\n\n  this.scroll({ dx: -dx * zoom, dy: -dy * zoom });\n};\n\n/**\n * Gets or sets the current zoom of the canvas, optionally zooming\n * to the specified position.\n *\n * The getter may return a cached zoom level. Call it with `false` as\n * the first argument to force recomputation of the current level.\n *\n * @param {string|number} [newScale] the new zoom level, either a number, i.e. 0.9,\n *                                   or `fit-viewport` to adjust the size to fit the current viewport\n * @param {string|Point} [center] the reference point { x: .., y: ..} to zoom to, 'auto' to zoom into mid or null\n *\n * @return {number} the current scale\n */\nCanvas.prototype.zoom = function(newScale, center) {\n\n  if (!newScale) {\n    return this.viewbox(newScale).scale;\n  }\n\n  if (newScale === 'fit-viewport') {\n    return this._fitViewport(center);\n  }\n\n  var outer,\n      matrix;\n\n  this._changeViewbox(function() {\n\n    if (typeof center !== 'object') {\n      outer = this.viewbox().outer;\n\n      center = {\n        x: outer.width / 2,\n        y: outer.height / 2\n      };\n    }\n\n    matrix = this._setZoom(newScale, center);\n  });\n\n  return round(matrix.a, 1000);\n};\n\nfunction setCTM(node, m) {\n  var mstr = 'matrix(' + m.a + ',' + m.b + ',' + m.c + ',' + m.d + ',' + m.e + ',' + m.f + ')';\n  node.setAttribute('transform', mstr);\n}\n\nCanvas.prototype._fitViewport = function(center) {\n\n  var vbox = this.viewbox(),\n      outer = vbox.outer,\n      inner = vbox.inner,\n      newScale,\n      newViewbox;\n\n  // display the complete diagram without zooming in.\n  // instead of relying on internal zoom, we perform a\n  // hard reset on the canvas viewbox to realize this\n  //\n  // if diagram does not need to be zoomed in, we focus it around\n  // the diagram origin instead\n\n  if (inner.x >= 0 &&\n      inner.y >= 0 &&\n      inner.x + inner.width <= outer.width &&\n      inner.y + inner.height <= outer.height &&\n      !center) {\n\n    newViewbox = {\n      x: 0,\n      y: 0,\n      width: Math.max(inner.width + inner.x, outer.width),\n      height: Math.max(inner.height + inner.y, outer.height)\n    };\n  } else {\n\n    newScale = Math.min(1, outer.width / inner.width, outer.height / inner.height);\n    newViewbox = {\n      x: inner.x + (center ? inner.width / 2 - outer.width / newScale / 2 : 0),\n      y: inner.y + (center ? inner.height / 2 - outer.height / newScale / 2 : 0),\n      width: outer.width / newScale,\n      height: outer.height / newScale\n    };\n  }\n\n  this.viewbox(newViewbox);\n\n  return this.viewbox(false).scale;\n};\n\n\nCanvas.prototype._setZoom = function(scale, center) {\n\n  var svg = this._svg,\n      viewport = this._viewport;\n\n  var matrix = svg.createSVGMatrix();\n  var point = svg.createSVGPoint();\n\n  var centerPoint,\n      originalPoint,\n      currentMatrix,\n      scaleMatrix,\n      newMatrix;\n\n  currentMatrix = viewport.getCTM();\n\n  var currentScale = currentMatrix.a;\n\n  if (center) {\n    centerPoint = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(point, center);\n\n    // revert applied viewport transformations\n    originalPoint = centerPoint.matrixTransform(currentMatrix.inverse());\n\n    // create scale matrix\n    scaleMatrix = matrix\n      .translate(originalPoint.x, originalPoint.y)\n      .scale(1 / currentScale * scale)\n      .translate(-originalPoint.x, -originalPoint.y);\n\n    newMatrix = currentMatrix.multiply(scaleMatrix);\n  } else {\n    newMatrix = matrix.scale(scale);\n  }\n\n  setCTM(this._viewport, newMatrix);\n\n  return newMatrix;\n};\n\n\n/**\n * Returns the size of the canvas\n *\n * @return {Dimensions}\n */\nCanvas.prototype.getSize = function() {\n  return {\n    width: this._container.clientWidth,\n    height: this._container.clientHeight\n  };\n};\n\n\n/**\n * Return the absolute bounding box for the given element\n *\n * The absolute bounding box may be used to display overlays in the\n * callers (browser) coordinate system rather than the zoomed in/out\n * canvas coordinates.\n *\n * @param  {ElementDescriptor} element\n * @return {Bounds} the absolute bounding box\n */\nCanvas.prototype.getAbsoluteBBox = function(element) {\n  var vbox = this.viewbox();\n  var bbox;\n\n  // connection\n  // use svg bbox\n  if (element.waypoints) {\n    var gfx = this.getGraphics(element);\n\n    bbox = gfx.getBBox();\n  }\n\n  // shapes\n  // use data\n  else {\n    bbox = element;\n  }\n\n  var x = bbox.x * vbox.scale - vbox.x * vbox.scale;\n  var y = bbox.y * vbox.scale - vbox.y * vbox.scale;\n\n  var width = bbox.width * vbox.scale;\n  var height = bbox.height * vbox.scale;\n\n  return {\n    x: x,\n    y: y,\n    width: width,\n    height: height\n  };\n};\n\n/**\n * Fires an event in order other modules can react to the\n * canvas resizing\n */\nCanvas.prototype.resized = function() {\n\n  // force recomputation of view box\n  delete this._cachedViewbox;\n\n  this._eventBus.fire('canvas.resized');\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/Canvas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/ElementFactory.js":
  /*!************************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/ElementFactory.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ElementFactory)\n/* harmony export */ });\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n/**\n * A factory for diagram-js shapes\n */\nfunction ElementFactory() {\n  this._uid = 12;\n}\n\n\nElementFactory.prototype.createRoot = function(attrs) {\n  return this.create('root', attrs);\n};\n\nElementFactory.prototype.createLabel = function(attrs) {\n  return this.create('label', attrs);\n};\n\nElementFactory.prototype.createShape = function(attrs) {\n  return this.create('shape', attrs);\n};\n\nElementFactory.prototype.createConnection = function(attrs) {\n  return this.create('connection', attrs);\n};\n\n/**\n * Create a model element with the given type and\n * a number of pre-set attributes.\n *\n * @param  {string} type\n * @param  {Object} attrs\n * @return {djs.model.Base} the newly created model instance\n */\nElementFactory.prototype.create = function(type, attrs) {\n\n  attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, attrs || {});\n\n  if (!attrs.id) {\n    attrs.id = type + '_' + (this._uid++);\n  }\n\n  return (0,_model__WEBPACK_IMPORTED_MODULE_1__.create)(type, attrs);\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/ElementFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/ElementRegistry.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/ElementRegistry.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ElementRegistry)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\nvar ELEMENT_ID = 'data-element-id';\n\n\n\n\n/**\n * @class\n *\n * A registry that keeps track of all shapes in the diagram.\n */\nfunction ElementRegistry(eventBus) {\n  this._elements = {};\n\n  this._eventBus = eventBus;\n}\n\nElementRegistry.$inject = [ 'eventBus' ];\n\n/**\n * Register a pair of (element, gfx, (secondaryGfx)).\n *\n * @param {djs.model.Base} element\n * @param {SVGElement} gfx\n * @param {SVGElement} [secondaryGfx] optional other element to register, too\n */\nElementRegistry.prototype.add = function(element, gfx, secondaryGfx) {\n\n  var id = element.id;\n\n  this._validateId(id);\n\n  // associate dom node with element\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, ELEMENT_ID, id);\n\n  if (secondaryGfx) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(secondaryGfx, ELEMENT_ID, id);\n  }\n\n  this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };\n};\n\n/**\n * Removes an element from the registry.\n *\n * @param {djs.model.Base} element\n */\nElementRegistry.prototype.remove = function(element) {\n  var elements = this._elements,\n      id = element.id || element,\n      container = id && elements[id];\n\n  if (container) {\n\n    // unset element id on gfx\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(container.gfx, ELEMENT_ID, '');\n\n    if (container.secondaryGfx) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(container.secondaryGfx, ELEMENT_ID, '');\n    }\n\n    delete elements[id];\n  }\n};\n\n/**\n * Update the id of an element\n *\n * @param {djs.model.Base} element\n * @param {string} newId\n */\nElementRegistry.prototype.updateId = function(element, newId) {\n\n  this._validateId(newId);\n\n  if (typeof element === 'string') {\n    element = this.get(element);\n  }\n\n  this._eventBus.fire('element.updateId', {\n    element: element,\n    newId: newId\n  });\n\n  var gfx = this.getGraphics(element),\n      secondaryGfx = this.getGraphics(element, true);\n\n  this.remove(element);\n\n  element.id = newId;\n\n  this.add(element, gfx, secondaryGfx);\n};\n\n/**\n * Return the model element for a given id or graphics.\n *\n * @example\n *\n * elementRegistry.get('SomeElementId_1');\n * elementRegistry.get(gfx);\n *\n *\n * @param {string|SVGElement} filter for selecting the element\n *\n * @return {djs.model.Base}\n */\nElementRegistry.prototype.get = function(filter) {\n  var id;\n\n  if (typeof filter === 'string') {\n    id = filter;\n  } else {\n    id = filter && (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(filter, ELEMENT_ID);\n  }\n\n  var container = this._elements[id];\n  return container && container.element;\n};\n\n/**\n * Return all elements that match a given filter function.\n *\n * @param {Function} fn\n *\n * @return {Array<djs.model.Base>}\n */\nElementRegistry.prototype.filter = function(fn) {\n\n  var filtered = [];\n\n  this.forEach(function(element, gfx) {\n    if (fn(element, gfx)) {\n      filtered.push(element);\n    }\n  });\n\n  return filtered;\n};\n\n/**\n * Return the first element that satisfies the provided testing function.\n *\n * @param {Function} fn\n *\n * @return {djs.model.Base}\n */\nElementRegistry.prototype.find = function(fn) {\n  var map = this._elements,\n      keys = Object.keys(map);\n\n  for (var i = 0; i < keys.length; i++) {\n    var id = keys[i],\n        container = map[id],\n        element = container.element,\n        gfx = container.gfx;\n\n    if (fn(element, gfx)) {\n      return element;\n    }\n  }\n};\n\n/**\n * Return all rendered model elements.\n *\n * @return {Array<djs.model.Base>}\n */\nElementRegistry.prototype.getAll = function() {\n  return this.filter(function(e) { return e; });\n};\n\n/**\n * Iterate over all diagram elements.\n *\n * @param {Function} fn\n */\nElementRegistry.prototype.forEach = function(fn) {\n\n  var map = this._elements;\n\n  Object.keys(map).forEach(function(id) {\n    var container = map[id],\n        element = container.element,\n        gfx = container.gfx;\n\n    return fn(element, gfx);\n  });\n};\n\n/**\n * Return the graphical representation of an element or its id.\n *\n * @example\n * elementRegistry.getGraphics('SomeElementId_1');\n * elementRegistry.getGraphics(rootElement); // <g ...>\n *\n * elementRegistry.getGraphics(rootElement, true); // <svg ...>\n *\n *\n * @param {string|djs.model.Base} filter\n * @param {boolean} [secondary=false] whether to return the secondary connected element\n *\n * @return {SVGElement}\n */\nElementRegistry.prototype.getGraphics = function(filter, secondary) {\n  var id = filter.id || filter;\n\n  var container = this._elements[id];\n  return container && (secondary ? container.secondaryGfx : container.gfx);\n};\n\n/**\n * Validate the suitability of the given id and signals a problem\n * with an exception.\n *\n * @param {string} id\n *\n * @throws {Error} if id is empty or already assigned\n */\nElementRegistry.prototype._validateId = function(id) {\n  if (!id) {\n    throw new Error('element must have an id');\n  }\n\n  if (this._elements[id]) {\n    throw new Error('element with id ' + id + ' already added');\n  }\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/ElementRegistry.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/EventBus.js":
  /*!******************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/EventBus.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ EventBus)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar FN_REF = '__fn';\n\nvar DEFAULT_PRIORITY = 1000;\n\nvar slice = Array.prototype.slice;\n\n/**\n * A general purpose event bus.\n *\n * This component is used to communicate across a diagram instance.\n * Other parts of a diagram can use it to listen to and broadcast events.\n *\n *\n * ## Registering for Events\n *\n * The event bus provides the {@link EventBus#on} and {@link EventBus#once}\n * methods to register for events. {@link EventBus#off} can be used to\n * remove event registrations. Listeners receive an instance of {@link Event}\n * as the first argument. It allows them to hook into the event execution.\n *\n * ```javascript\n *\n * // listen for event\n * eventBus.on('foo', function(event) {\n *\n *   // access event type\n *   event.type; // 'foo'\n *\n *   // stop propagation to other listeners\n *   event.stopPropagation();\n *\n *   // prevent event default\n *   event.preventDefault();\n * });\n *\n * // listen for event with custom payload\n * eventBus.on('bar', function(event, payload) {\n *   console.log(payload);\n * });\n *\n * // listen for event returning value\n * eventBus.on('foobar', function(event) {\n *\n *   // stop event propagation + prevent default\n *   return false;\n *\n *   // stop event propagation + return custom result\n *   return {\n *     complex: 'listening result'\n *   };\n * });\n *\n *\n * // listen with custom priority (default=1000, higher is better)\n * eventBus.on('priorityfoo', 1500, function(event) {\n *   console.log('invoked first!');\n * });\n *\n *\n * // listen for event and pass the context (`this`)\n * eventBus.on('foobar', function(event) {\n *   this.foo();\n * }, this);\n * ```\n *\n *\n * ## Emitting Events\n *\n * Events can be emitted via the event bus using {@link EventBus#fire}.\n *\n * ```javascript\n *\n * // false indicates that the default action\n * // was prevented by listeners\n * if (eventBus.fire('foo') === false) {\n *   console.log('default has been prevented!');\n * };\n *\n *\n * // custom args + return value listener\n * eventBus.on('sum', function(event, a, b) {\n *   return a + b;\n * });\n *\n * // you can pass custom arguments + retrieve result values.\n * var sum = eventBus.fire('sum', 1, 2);\n * console.log(sum); // 3\n * ```\n */\nfunction EventBus() {\n  this._listeners = {};\n\n  // cleanup on destroy on lowest priority to allow\n  // message passing until the bitter end\n  this.on('diagram.destroy', 1, this._destroy, this);\n}\n\n\n/**\n * Register an event listener for events with the given name.\n *\n * The callback will be invoked with `event, ...additionalArguments`\n * that have been passed to {@link EventBus#fire}.\n *\n * Returning false from a listener will prevent the events default action\n * (if any is specified). To stop an event from being processed further in\n * other listeners execute {@link Event#stopPropagation}.\n *\n * Returning anything but `undefined` from a listener will stop the listener propagation.\n *\n * @param {string|Array<string>} events\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.on = function(events, priority, callback, that) {\n\n  events = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events) ? events : [ events ];\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n    that = callback;\n    callback = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(priority)) {\n    throw new Error('priority must be a number');\n  }\n\n  var actualCallback = callback;\n\n  if (that) {\n    actualCallback = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(callback, that);\n\n    // make sure we remember and are able to remove\n    // bound callbacks via {@link #off} using the original\n    // callback\n    actualCallback[FN_REF] = callback[FN_REF] || callback;\n  }\n\n  var self = this;\n\n  events.forEach(function(e) {\n    self._addListener(e, {\n      priority: priority,\n      callback: actualCallback,\n      next: null\n    });\n  });\n};\n\n\n/**\n * Register an event listener that is executed only once.\n *\n * @param {string} event the event name to register for\n * @param {number} [priority=1000] the priority in which this listener is called, larger is higher\n * @param {Function} callback the callback to execute\n * @param {Object} [that] Pass context (`this`) to the callback\n */\nEventBus.prototype.once = function(event, priority, callback, that) {\n  var self = this;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(priority)) {\n    that = callback;\n    callback = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(priority)) {\n    throw new Error('priority must be a number');\n  }\n\n  function wrappedCallback() {\n    wrappedCallback.__isTomb = true;\n\n    var result = callback.apply(that, arguments);\n\n    self.off(event, wrappedCallback);\n\n    return result;\n  }\n\n  // make sure we remember and are able to remove\n  // bound callbacks via {@link #off} using the original\n  // callback\n  wrappedCallback[FN_REF] = callback;\n\n  this.on(event, priority, wrappedCallback);\n};\n\n\n/**\n * Removes event listeners by event and callback.\n *\n * If no callback is given, all listeners for a given event name are being removed.\n *\n * @param {string|Array<string>} events\n * @param {Function} [callback]\n */\nEventBus.prototype.off = function(events, callback) {\n\n  events = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(events) ? events : [ events ];\n\n  var self = this;\n\n  events.forEach(function(event) {\n    self._removeListener(event, callback);\n  });\n\n};\n\n\n/**\n * Create an EventBus event.\n *\n * @param {Object} data\n *\n * @return {Object} event, recognized by the eventBus\n */\nEventBus.prototype.createEvent = function(data) {\n  var event = new InternalEvent();\n\n  event.init(data);\n\n  return event;\n};\n\n\n/**\n * Fires a named event.\n *\n * @example\n *\n * // fire event by name\n * events.fire('foo');\n *\n * // fire event object with nested type\n * var event = { type: 'foo' };\n * events.fire(event);\n *\n * // fire event with explicit type\n * var event = { x: 10, y: 20 };\n * events.fire('element.moved', event);\n *\n * // pass additional arguments to the event\n * events.on('foo', function(event, bar) {\n *   alert(bar);\n * });\n *\n * events.fire({ type: 'foo' }, 'I am bar!');\n *\n * @param {string} [name] the optional event name\n * @param {Object} [event] the event object\n * @param {...Object} additional arguments to be passed to the callback functions\n *\n * @return {boolean} the events return value, if specified or false if the\n *                   default action was prevented by listeners\n */\nEventBus.prototype.fire = function(type, data) {\n  var event,\n      firstListener,\n      returnValue,\n      args;\n\n  args = slice.call(arguments);\n\n  if (typeof type === 'object') {\n    data = type;\n    type = data.type;\n  }\n\n  if (!type) {\n    throw new Error('no event type specified');\n  }\n\n  firstListener = this._listeners[type];\n\n  if (!firstListener) {\n    return;\n  }\n\n  // we make sure we fire instances of our home made\n  // events here. We wrap them only once, though\n  if (data instanceof InternalEvent) {\n\n    // we are fine, we alread have an event\n    event = data;\n  } else {\n    event = this.createEvent(data);\n  }\n\n  // ensure we pass the event as the first parameter\n  args[0] = event;\n\n  // original event type (in case we delegate)\n  var originalType = event.type;\n\n  // update event type before delegation\n  if (type !== originalType) {\n    event.type = type;\n  }\n\n  try {\n    returnValue = this._invokeListeners(event, args, firstListener);\n  } finally {\n\n    // reset event type after delegation\n    if (type !== originalType) {\n      event.type = originalType;\n    }\n  }\n\n  // set the return value to false if the event default\n  // got prevented and no other return value exists\n  if (returnValue === undefined && event.defaultPrevented) {\n    returnValue = false;\n  }\n\n  return returnValue;\n};\n\n\nEventBus.prototype.handleError = function(error) {\n  return this.fire('error', { error: error }) === false;\n};\n\n\nEventBus.prototype._destroy = function() {\n  this._listeners = {};\n};\n\nEventBus.prototype._invokeListeners = function(event, args, listener) {\n\n  var returnValue;\n\n  while (listener) {\n\n    // handle stopped propagation\n    if (event.cancelBubble) {\n      break;\n    }\n\n    returnValue = this._invokeListener(event, args, listener);\n\n    listener = listener.next;\n  }\n\n  return returnValue;\n};\n\nEventBus.prototype._invokeListener = function(event, args, listener) {\n\n  var returnValue;\n\n  if (listener.callback.__isTomb) {\n    return returnValue;\n  }\n\n  try {\n\n    // returning false prevents the default action\n    returnValue = invokeFunction(listener.callback, args);\n\n    // stop propagation on return value\n    if (returnValue !== undefined) {\n      event.returnValue = returnValue;\n      event.stopPropagation();\n    }\n\n    // prevent default on return false\n    if (returnValue === false) {\n      event.preventDefault();\n    }\n  } catch (e) {\n    if (!this.handleError(e)) {\n      console.error('unhandled error in event listener');\n      console.error(e.stack);\n\n      throw e;\n    }\n  }\n\n  return returnValue;\n};\n\n/*\n * Add new listener with a certain priority to the list\n * of listeners (for the given event).\n *\n * The semantics of listener registration / listener execution are\n * first register, first serve: New listeners will always be inserted\n * after existing listeners with the same priority.\n *\n * Example: Inserting two listeners with priority 1000 and 1300\n *\n *    * before: [ 1500, 1500, 1000, 1000 ]\n *    * after: [ 1500, 1500, (new=1300), 1000, 1000, (new=1000) ]\n *\n * @param {string} event\n * @param {Object} listener { priority, callback }\n */\nEventBus.prototype._addListener = function(event, newListener) {\n\n  var listener = this._getListeners(event),\n      previousListener;\n\n  // no prior listeners\n  if (!listener) {\n    this._setListeners(event, newListener);\n\n    return;\n  }\n\n  // ensure we order listeners by priority from\n  // 0 (high) to n > 0 (low)\n  while (listener) {\n\n    if (listener.priority < newListener.priority) {\n\n      newListener.next = listener;\n\n      if (previousListener) {\n        previousListener.next = newListener;\n      } else {\n        this._setListeners(event, newListener);\n      }\n\n      return;\n    }\n\n    previousListener = listener;\n    listener = listener.next;\n  }\n\n  // add new listener to back\n  previousListener.next = newListener;\n};\n\n\nEventBus.prototype._getListeners = function(name) {\n  return this._listeners[name];\n};\n\nEventBus.prototype._setListeners = function(name, listener) {\n  this._listeners[name] = listener;\n};\n\nEventBus.prototype._removeListener = function(event, callback) {\n\n  var listener = this._getListeners(event),\n      nextListener,\n      previousListener,\n      listenerCallback;\n\n  if (!callback) {\n\n    // clear listeners\n    this._setListeners(event, null);\n\n    return;\n  }\n\n  while (listener) {\n\n    nextListener = listener.next;\n\n    listenerCallback = listener.callback;\n\n    if (listenerCallback === callback || listenerCallback[FN_REF] === callback) {\n      if (previousListener) {\n        previousListener.next = nextListener;\n      } else {\n\n        // new first listener\n        this._setListeners(event, nextListener);\n      }\n    }\n\n    previousListener = listener;\n    listener = nextListener;\n  }\n};\n\n/**\n * A event that is emitted via the event bus.\n */\nfunction InternalEvent() { }\n\nInternalEvent.prototype.stopPropagation = function() {\n  this.cancelBubble = true;\n};\n\nInternalEvent.prototype.preventDefault = function() {\n  this.defaultPrevented = true;\n};\n\nInternalEvent.prototype.init = function(data) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(this, data || {});\n};\n\n\n/**\n * Invoke function. Be fast...\n *\n * @param {Function} fn\n * @param {Array<Object>} args\n *\n * @return {Any}\n */\nfunction invokeFunction(fn, args) {\n  return fn.apply(null, args);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/EventBus.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/GraphicsFactory.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/GraphicsFactory.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ GraphicsFactory)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A factory that creates graphical elements\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n */\nfunction GraphicsFactory(eventBus, elementRegistry) {\n  this._eventBus = eventBus;\n  this._elementRegistry = elementRegistry;\n}\n\nGraphicsFactory.$inject = [ 'eventBus' , 'elementRegistry' ];\n\n\nGraphicsFactory.prototype._getChildrenContainer = function(element) {\n\n  var gfx = this._elementRegistry.getGraphics(element);\n\n  var childrenGfx;\n\n  // root element\n  if (!element.parent) {\n    childrenGfx = gfx;\n  } else {\n    childrenGfx = (0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__.getChildren)(gfx);\n    if (!childrenGfx) {\n      childrenGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(childrenGfx).add('djs-children');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx.parentNode, childrenGfx);\n    }\n  }\n\n  return childrenGfx;\n};\n\n/**\n * Clears the graphical representation of the element and returns the\n * cleared visual (the <g class=\"djs-visual\" /> element).\n */\nGraphicsFactory.prototype._clear = function(gfx) {\n  var visual = (0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_0__.getVisual)(gfx);\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.clear)(visual);\n\n  return visual;\n};\n\n/**\n * Creates a gfx container for shapes and connections\n *\n * The layout is as follows:\n *\n * <g class=\"djs-group\">\n *\n *   <!-- the gfx -->\n *   <g class=\"djs-element djs-(shape|connection|frame)\">\n *     <g class=\"djs-visual\">\n *       <!-- the renderer draws in here -->\n *     </g>\n *\n *     <!-- extensions (overlays, click box, ...) goes here\n *   </g>\n *\n *   <!-- the gfx child nodes -->\n *   <g class=\"djs-children\"></g>\n * </g>\n *\n * @param {string} type the type of the element, i.e. shape | connection\n * @param {SVGElement} [childrenGfx]\n * @param {number} [parentIndex] position to create container in parent\n * @param {boolean} [isFrame] is frame element\n *\n * @return {SVGElement}\n */\nGraphicsFactory.prototype._createContainer = function(\n    type, childrenGfx, parentIndex, isFrame\n) {\n  var outerGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(outerGfx).add('djs-group');\n\n  // insert node at position\n  if (typeof parentIndex !== 'undefined') {\n    prependTo(outerGfx, childrenGfx, childrenGfx.childNodes[parentIndex]);\n  } else {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(childrenGfx, outerGfx);\n  }\n\n  var gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-element');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-' + type);\n\n  if (isFrame) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(gfx).add('djs-frame');\n  }\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(outerGfx, gfx);\n\n  // create visual\n  var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(visual).add('djs-visual');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(gfx, visual);\n\n  return gfx;\n};\n\nGraphicsFactory.prototype.create = function(type, element, parentIndex) {\n  var childrenGfx = this._getChildrenContainer(element.parent);\n  return this._createContainer(type, childrenGfx, parentIndex, (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.isFrameElement)(element));\n};\n\nGraphicsFactory.prototype.updateContainments = function(elements) {\n\n  var self = this,\n      elementRegistry = this._elementRegistry,\n      parents;\n\n  parents = (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.reduce)(elements, function(map, e) {\n\n    if (e.parent) {\n      map[e.parent.id] = e.parent;\n    }\n\n    return map;\n  }, {});\n\n  // update all parents of changed and reorganized their children\n  // in the correct order (as indicated in our model)\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.forEach)(parents, function(parent) {\n\n    var children = parent.children;\n\n    if (!children) {\n      return;\n    }\n\n    var childrenGfx = self._getChildrenContainer(parent);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_4__.forEach)(children.slice().reverse(), function(child) {\n      var childGfx = elementRegistry.getGraphics(child);\n\n      prependTo(childGfx.parentNode, childrenGfx);\n    });\n  });\n};\n\nGraphicsFactory.prototype.drawShape = function(visual, element) {\n  var eventBus = this._eventBus;\n\n  return eventBus.fire('render.shape', { gfx: visual, element: element });\n};\n\nGraphicsFactory.prototype.getShapePath = function(element) {\n  var eventBus = this._eventBus;\n\n  return eventBus.fire('render.getShapePath', element);\n};\n\nGraphicsFactory.prototype.drawConnection = function(visual, element) {\n  var eventBus = this._eventBus;\n\n  return eventBus.fire('render.connection', { gfx: visual, element: element });\n};\n\nGraphicsFactory.prototype.getConnectionPath = function(waypoints) {\n  var eventBus = this._eventBus;\n\n  return eventBus.fire('render.getConnectionPath', waypoints);\n};\n\nGraphicsFactory.prototype.update = function(type, element, gfx) {\n\n  // do NOT update root element\n  if (!element.parent) {\n    return;\n  }\n\n  var visual = this._clear(gfx);\n\n  // redraw\n  if (type === 'shape') {\n    this.drawShape(visual, element);\n\n    // update positioning\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(gfx, element.x, element.y);\n  } else\n  if (type === 'connection') {\n    this.drawConnection(visual, element);\n  } else {\n    throw new Error('unknown type: ' + type);\n  }\n\n  if (element.hidden) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, 'display', 'none');\n  } else {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, 'display', 'block');\n  }\n};\n\nGraphicsFactory.prototype.remove = function(element) {\n  var gfx = this._elementRegistry.getGraphics(element);\n\n  // remove\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(gfx.parentNode);\n};\n\n\n// helpers //////////\n\nfunction prependTo(newNode, parentNode, siblingNode) {\n  var node = siblingNode || parentNode.firstChild;\n\n  // do not prepend node to itself to prevent IE from crashing\n  // https://github.com/bpmn-io/bpmn-js/issues/746\n  if (newNode === node) {\n    return;\n  }\n\n  parentNode.insertBefore(newNode, node);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/GraphicsFactory.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/core/index.js":
  /*!***************************************************!*\
    !*** ./node_modules/diagram-js/lib/core/index.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _draw__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../draw */ \"./node_modules/diagram-js/lib/draw/index.js\");\n/* harmony import */ var _Canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Canvas */ \"./node_modules/diagram-js/lib/core/Canvas.js\");\n/* harmony import */ var _ElementRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ElementRegistry */ \"./node_modules/diagram-js/lib/core/ElementRegistry.js\");\n/* harmony import */ var _ElementFactory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ElementFactory */ \"./node_modules/diagram-js/lib/core/ElementFactory.js\");\n/* harmony import */ var _EventBus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EventBus */ \"./node_modules/diagram-js/lib/core/EventBus.js\");\n/* harmony import */ var _GraphicsFactory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./GraphicsFactory */ \"./node_modules/diagram-js/lib/core/GraphicsFactory.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [ _draw__WEBPACK_IMPORTED_MODULE_0__.default ],\n  __init__: [ 'canvas' ],\n  canvas: [ 'type', _Canvas__WEBPACK_IMPORTED_MODULE_1__.default ],\n  elementRegistry: [ 'type', _ElementRegistry__WEBPACK_IMPORTED_MODULE_2__.default ],\n  elementFactory: [ 'type', _ElementFactory__WEBPACK_IMPORTED_MODULE_3__.default ],\n  eventBus: [ 'type', _EventBus__WEBPACK_IMPORTED_MODULE_4__.default ],\n  graphicsFactory: [ 'type', _GraphicsFactory__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/core/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/draw/BaseRenderer.js":
  /*!**********************************************************!*\
    !*** ./node_modules/diagram-js/lib/draw/BaseRenderer.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BaseRenderer)\n/* harmony export */ });\nvar DEFAULT_RENDER_PRIORITY = 1000;\n\n/**\n * The base implementation of shape and connection renderers.\n *\n * @param {EventBus} eventBus\n * @param {number} [renderPriority=1000]\n */\nfunction BaseRenderer(eventBus, renderPriority) {\n  var self = this;\n\n  renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY;\n\n  eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {\n    var type = evt.type,\n        element = context.element,\n        visuals = context.gfx;\n\n    if (self.canRender(element)) {\n      if (type === 'render.shape') {\n        return self.drawShape(visuals, element);\n      } else {\n        return self.drawConnection(visuals, element);\n      }\n    }\n  });\n\n  eventBus.on([ 'render.getShapePath', 'render.getConnectionPath'], renderPriority, function(evt, element) {\n    if (self.canRender(element)) {\n      if (evt.type === 'render.getShapePath') {\n        return self.getShapePath(element);\n      } else {\n        return self.getConnectionPath(element);\n      }\n    }\n  });\n}\n\n/**\n * Should check whether *this* renderer can render\n * the element/connection.\n *\n * @param {element} element\n *\n * @returns {boolean}\n */\nBaseRenderer.prototype.canRender = function() {};\n\n/**\n * Provides the shape's snap svg element to be drawn on the `canvas`.\n *\n * @param {djs.Graphics} visuals\n * @param {Shape} shape\n *\n * @returns {Snap.svg} [returns a Snap.svg paper element ]\n */\nBaseRenderer.prototype.drawShape = function() {};\n\n/**\n * Provides the shape's snap svg element to be drawn on the `canvas`.\n *\n * @param {djs.Graphics} visuals\n * @param {Connection} connection\n *\n * @returns {Snap.svg} [returns a Snap.svg paper element ]\n */\nBaseRenderer.prototype.drawConnection = function() {};\n\n/**\n * Gets the SVG path of a shape that represents it's visual bounds.\n *\n * @param {Shape} shape\n *\n * @return {string} svg path\n */\nBaseRenderer.prototype.getShapePath = function() {};\n\n/**\n * Gets the SVG path of a connection that represents it's visual bounds.\n *\n * @param {Connection} connection\n *\n * @return {string} svg path\n */\nBaseRenderer.prototype.getConnectionPath = function() {};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/BaseRenderer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/draw/DefaultRenderer.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/draw/DefaultRenderer.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DefaultRenderer)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseRenderer */ \"./node_modules/diagram-js/lib/draw/BaseRenderer.js\");\n/* harmony import */ var _util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n\n\n\n\n// apply default renderer with lowest possible priority\n// so that it only kicks in if noone else could render\nvar DEFAULT_RENDER_PRIORITY = 1;\n\n/**\n * The default renderer used for shapes and connections.\n *\n * @param {EventBus} eventBus\n * @param {Styles} styles\n */\nfunction DefaultRenderer(eventBus, styles) {\n\n  //\n  _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus, DEFAULT_RENDER_PRIORITY);\n\n  this.CONNECTION_STYLE = styles.style([ 'no-fill' ], { strokeWidth: 5, stroke: 'fuchsia' });\n  this.SHAPE_STYLE = styles.style({ fill: 'white', stroke: 'fuchsia', strokeWidth: 2 });\n  this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(DefaultRenderer, _BaseRenderer__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\nDefaultRenderer.prototype.canRender = function() {\n  return true;\n};\n\nDefaultRenderer.prototype.drawShape = function drawShape(visuals, element) {\n  var rect = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, {\n    x: 0,\n    y: 0,\n    width: element.width || 0,\n    height: element.height || 0\n  });\n\n  if ((0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.isFrameElement)(element)) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, this.FRAME_STYLE);\n  } else {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(rect, this.SHAPE_STYLE);\n  }\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(visuals, rect);\n\n  return rect;\n};\n\nDefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection) {\n\n  var line = (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.createLine)(connection.waypoints, this.CONNECTION_STYLE);\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(visuals, line);\n\n  return line;\n};\n\nDefaultRenderer.prototype.getShapePath = function getShapePath(shape) {\n\n  var x = shape.x,\n      y = shape.y,\n      width = shape.width,\n      height = shape.height;\n\n  var shapePath = [\n    ['M', x, y],\n    ['l', width, 0],\n    ['l', 0, height],\n    ['l', -width, 0],\n    ['z']\n  ];\n\n  return (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.componentsToPath)(shapePath);\n};\n\nDefaultRenderer.prototype.getConnectionPath = function getConnectionPath(connection) {\n  var waypoints = connection.waypoints;\n\n  var idx, point, connectionPath = [];\n\n  for (idx = 0; (point = waypoints[idx]); idx++) {\n\n    // take invisible docking into account\n    // when creating the path\n    point = point.original || point;\n\n    connectionPath.push([ idx === 0 ? 'M' : 'L', point.x, point.y ]);\n  }\n\n  return (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.componentsToPath)(connectionPath);\n};\n\n\nDefaultRenderer.$inject = [ 'eventBus', 'styles' ];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/DefaultRenderer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/draw/Styles.js":
  /*!****************************************************!*\
    !*** ./node_modules/diagram-js/lib/draw/Styles.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Styles)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A component that manages shape styles\n */\nfunction Styles() {\n\n  var defaultTraits = {\n\n    'no-fill': {\n      fill: 'none'\n    },\n    'no-border': {\n      strokeOpacity: 0.0\n    },\n    'no-events': {\n      pointerEvents: 'none'\n    }\n  };\n\n  var self = this;\n\n  /**\n   * Builds a style definition from a className, a list of traits and an object of additional attributes.\n   *\n   * @param  {string} className\n   * @param  {Array<string>} traits\n   * @param  {Object} additionalAttrs\n   *\n   * @return {Object} the style defintion\n   */\n  this.cls = function(className, traits, additionalAttrs) {\n    var attrs = this.style(traits, additionalAttrs);\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, { 'class': className });\n  };\n\n  /**\n   * Builds a style definition from a list of traits and an object of additional attributes.\n   *\n   * @param  {Array<string>} traits\n   * @param  {Object} additionalAttrs\n   *\n   * @return {Object} the style defintion\n   */\n  this.style = function(traits, additionalAttrs) {\n\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(traits) && !additionalAttrs) {\n      additionalAttrs = traits;\n      traits = [];\n    }\n\n    var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(traits, function(attrs, t) {\n      return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, defaultTraits[t] || {});\n    }, {});\n\n    return additionalAttrs ? (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(attrs, additionalAttrs) : attrs;\n  };\n\n  this.computeStyle = function(custom, traits, defaultStyles) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(traits)) {\n      defaultStyles = traits;\n      traits = [];\n    }\n\n    return self.style(traits || [], (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultStyles, custom || {}));\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/Styles.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/draw/index.js":
  /*!***************************************************!*\
    !*** ./node_modules/diagram-js/lib/draw/index.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _DefaultRenderer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DefaultRenderer */ \"./node_modules/diagram-js/lib/draw/DefaultRenderer.js\");\n/* harmony import */ var _Styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Styles */ \"./node_modules/diagram-js/lib/draw/Styles.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'defaultRenderer' ],\n  defaultRenderer: [ 'type', _DefaultRenderer__WEBPACK_IMPORTED_MODULE_0__.default ],\n  styles: [ 'type', _Styles__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/draw/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/align-elements/AlignElements.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/align-elements/AlignElements.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AlignElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nfunction last(arr) {\n  return arr && arr[arr.length - 1];\n}\n\nfunction sortTopOrMiddle(element) {\n  return element.y;\n}\n\nfunction sortLeftOrCenter(element) {\n  return element.x;\n}\n\n/**\n * Sorting functions for different types of alignment\n *\n * @type {Object}\n *\n * @return {Function}\n */\nvar ALIGNMENT_SORTING = {\n  left: sortLeftOrCenter,\n  center: sortLeftOrCenter,\n  right: function(element) {\n    return element.x + element.width;\n  },\n  top: sortTopOrMiddle,\n  middle: sortTopOrMiddle,\n  bottom: function(element) {\n    return element.y + element.height;\n  }\n};\n\n\nfunction AlignElements(modeling) {\n  this._modeling = modeling;\n}\n\nAlignElements.$inject = [ 'modeling' ];\n\n\n/**\n * Get the relevant \"axis\" and \"dimension\" related to the current type of alignment\n *\n * @param  {string} type left|right|center|top|bottom|middle\n *\n * @return {Object} { axis, dimension }\n */\nAlignElements.prototype._getOrientationDetails = function(type) {\n  var vertical = [ 'top', 'bottom', 'middle' ],\n      axis = 'x',\n      dimension = 'width';\n\n  if (vertical.indexOf(type) !== -1) {\n    axis = 'y';\n    dimension = 'height';\n  }\n\n  return {\n    axis: axis,\n    dimension: dimension\n  };\n};\n\nAlignElements.prototype._isType = function(type, types) {\n  return types.indexOf(type) !== -1;\n};\n\n/**\n * Get a point on the relevant axis where elements should align to\n *\n * @param  {string} type left|right|center|top|bottom|middle\n * @param  {Array} sortedElements\n *\n * @return {Object}\n */\nAlignElements.prototype._alignmentPosition = function(type, sortedElements) {\n  var orientation = this._getOrientationDetails(type),\n      axis = orientation.axis,\n      dimension = orientation.dimension,\n      alignment = {},\n      centers = {},\n      hasSharedCenters = false,\n      centeredElements,\n      firstElement,\n      lastElement;\n\n  function getMiddleOrTop(first, last) {\n    return Math.round((first[axis] + last[axis] + last[dimension]) / 2);\n  }\n\n  if (this._isType(type, [ 'left', 'top' ])) {\n    alignment[type] = sortedElements[0][axis];\n\n  } else if (this._isType(type, [ 'right', 'bottom' ])) {\n    lastElement = last(sortedElements);\n\n    alignment[type] = lastElement[axis] + lastElement[dimension];\n\n  } else if (this._isType(type, [ 'center', 'middle' ])) {\n\n    // check if there is a center shared by more than one shape\n    // if not, just take the middle of the range\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element) {\n      var center = element[axis] + Math.round(element[dimension] / 2);\n\n      if (centers[center]) {\n        centers[center].elements.push(element);\n      } else {\n        centers[center] = {\n          elements: [ element ],\n          center: center\n        };\n      }\n    });\n\n    centeredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(centers, function(center) {\n      if (center.elements.length > 1) {\n        hasSharedCenters = true;\n      }\n\n      return center.elements.length;\n    });\n\n    if (hasSharedCenters) {\n      alignment[type] = last(centeredElements).center;\n\n      return alignment;\n    }\n\n    firstElement = sortedElements[0];\n\n    sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(sortedElements, function(element) {\n      return element[axis] + element[dimension];\n    });\n\n    lastElement = last(sortedElements);\n\n    alignment[type] = getMiddleOrTop(firstElement, lastElement);\n  }\n\n  return alignment;\n};\n\n/**\n * Executes the alignment of a selection of elements\n *\n * @param  {Array} elements [description]\n * @param  {string} type left|right|center|top|bottom|middle\n */\nAlignElements.prototype.trigger = function(elements, type) {\n  var modeling = this._modeling;\n\n  var filteredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n    return !(element.waypoints || element.host || element.labelTarget);\n  });\n\n  if (filteredElements.length < 2) {\n    return;\n  }\n\n  var sortFn = ALIGNMENT_SORTING[type];\n\n  var sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(filteredElements, sortFn);\n\n  var alignment = this._alignmentPosition(type, sortedElements);\n\n  modeling.alignElements(sortedElements, alignment);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/align-elements/AlignElements.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/align-elements/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/align-elements/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AlignElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlignElements */ \"./node_modules/diagram-js/lib/features/align-elements/AlignElements.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'alignElements' ],\n  alignElements: [ 'type', _AlignElements__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/align-elements/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AttachSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n/* harmony import */ var _util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 251,\n    HIGH_PRIORITY = 1401;\n\nvar MARKER_ATTACH = 'attach-ok';\n\n\n/**\n * Adds the notion of attached elements to the modeler.\n *\n * Optionally depends on `diagram-js/lib/features/move` to render\n * the attached elements during move preview.\n *\n * Optionally depends on `diagram-js/lib/features/label-support`\n * to render attached labels during move preview.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {Rules} rules\n * @param {Modeling} modeling\n */\nfunction AttachSupport(injector, eventBus, canvas, rules, modeling) {\n\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var movePreview = injector.get('movePreview', false);\n\n\n  // remove all the attached elements from the shapes to be validated\n  // add all the attached shapes to the overall list of moved shapes\n  eventBus.on('shape.move.start', HIGH_PRIORITY, function(e) {\n\n    var context = e.context,\n        shapes = context.shapes,\n        validatedShapes = context.validatedShapes;\n\n    context.shapes = addAttached(shapes);\n\n    context.validatedShapes = removeAttached(validatedShapes);\n  });\n\n  // add attachers to the visual's group\n  movePreview && eventBus.on('shape.move.start', LOW_PRIORITY, function(e) {\n\n    var context = e.context,\n        shapes = context.shapes,\n        attachers = getAttachers(shapes);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n      movePreview.makeDraggable(context, attacher, true);\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.labels, function(label) {\n        movePreview.makeDraggable(context, label, true);\n      });\n    });\n  });\n\n  // add attach-ok marker to current host\n  movePreview && eventBus.on('shape.move.start', function(event) {\n    var context = event.context,\n        shapes = context.shapes;\n\n    if (shapes.length !== 1) {\n      return;\n    }\n\n    var shape = shapes[0];\n\n    var host = shape.host;\n\n    if (host) {\n      canvas.addMarker(host, MARKER_ATTACH);\n\n      eventBus.once([\n        'shape.move.out',\n        'shape.move.cleanup'\n      ], function() {\n        canvas.removeMarker(host, MARKER_ATTACH);\n      });\n    }\n  });\n\n  // add all attachers to move closure\n  this.preExecuted('elements.move', HIGH_PRIORITY, function(e) {\n    var context = e.context,\n        closure = context.closure,\n        shapes = context.shapes,\n        attachers = getAttachers(shapes);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n      closure.add(attacher, closure.topLevel[attacher.host.id]);\n    });\n  });\n\n  // perform the attaching after shapes are done moving\n  this.postExecuted('elements.move', function(e) {\n\n    var context = e.context,\n        shapes = context.shapes,\n        newHost = context.newHost,\n        attachers;\n\n    // only single elements can be attached\n    // multiply elements can be detached\n    if (newHost && shapes.length !== 1) {\n      return;\n    }\n\n    if (newHost) {\n      attachers = shapes;\n    } else {\n\n      // find attachers moved without host\n      attachers = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(shapes, function(shape) {\n        var host = shape.host;\n\n        return isAttacher(shape) && !includes(shapes, host);\n      });\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n      modeling.updateAttachment(attacher, newHost);\n    });\n  });\n\n  // ensure invalid attachment connections are removed\n  this.postExecuted('elements.move', function(e) {\n\n    var shapes = e.context.shapes;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shapes, function(shape) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shape.attachers, function(attacher) {\n\n        // remove invalid outgoing connections\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.outgoing.slice(), function(connection) {\n          var allowed = rules.allowed('connection.reconnect', {\n            connection: connection,\n            source: connection.source,\n            target: connection.target\n          });\n\n          if (!allowed) {\n            modeling.removeConnection(connection);\n          }\n        });\n\n        // remove invalid incoming connections\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.incoming.slice(), function(connection) {\n          var allowed = rules.allowed('connection.reconnect', {\n            connection: connection,\n            source: connection.source,\n            target: connection.target\n          });\n\n          if (!allowed) {\n            modeling.removeConnection(connection);\n          }\n        });\n      });\n    });\n  });\n\n  this.postExecute('shape.create', function(e) {\n    var context = e.context,\n        shape = context.shape,\n        host = context.host;\n\n    if (host) {\n      modeling.updateAttachment(shape, host);\n    }\n  });\n\n  // update attachments if the host is replaced\n  this.postExecute('shape.replace', function(e) {\n\n    var context = e.context,\n        oldShape = context.oldShape,\n        newShape = context.newShape;\n\n    // move the attachers to the new host\n    (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(oldShape.attachers, function(attacher) {\n      var allowed = rules.allowed('elements.move', {\n        target: newShape,\n        shapes: [attacher]\n      });\n\n      if (allowed === 'attach') {\n        modeling.updateAttachment(attacher, newShape);\n      } else {\n        modeling.removeShape(attacher);\n      }\n    });\n\n    // move attachers if new host has different size\n    if (newShape.attachers.length) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(newShape.attachers, function(attacher) {\n        var delta = (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__.getNewAttachShapeDelta)(attacher, oldShape, newShape);\n        modeling.moveShape(attacher, delta, attacher.parent);\n      });\n    }\n\n  });\n\n  // move shape on host resize\n  this.postExecute('shape.resize', function(event) {\n    var context = event.context,\n        shape = context.shape,\n        oldBounds = context.oldBounds,\n        newBounds = context.newBounds,\n        attachers = shape.attachers,\n        hints = context.hints || {};\n\n    if (hints.attachSupport === false) {\n      return;\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attachers, function(attacher) {\n      var delta = (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_4__.getNewAttachShapeDelta)(attacher, oldBounds, newBounds);\n\n      modeling.moveShape(attacher, delta, attacher.parent);\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attacher.labels, function(label) {\n        modeling.moveShape(label, delta, label.parent);\n      });\n    });\n  });\n\n  // remove attachments\n  this.preExecute('shape.delete', function(event) {\n\n    var shape = event.context.shape;\n\n    (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(shape.attachers, function(attacher) {\n      modeling.removeShape(attacher);\n    });\n\n    if (shape.host) {\n      modeling.updateAttachment(shape, null);\n    }\n  });\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AttachSupport, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nAttachSupport.$inject = [\n  'injector',\n  'eventBus',\n  'canvas',\n  'rules',\n  'modeling'\n];\n\n\n/**\n * Return attachers of the given shapes\n *\n * @param {Array<djs.model.Base>} shapes\n * @return {Array<djs.model.Base>}\n */\nfunction getAttachers(shapes) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.flatten)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.map)(shapes, function(s) {\n    return s.attachers || [];\n  }));\n}\n\n/**\n * Return a combined list of elements and\n * attachers.\n *\n * @param {Array<djs.model.Base>} elements\n * @return {Array<djs.model.Base>} filtered\n */\nfunction addAttached(elements) {\n  var attachers = getAttachers(elements);\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.unionBy)('id', elements, attachers);\n}\n\n/**\n * Return a filtered list of elements that do not\n * contain attached elements with hosts being part\n * of the selection.\n *\n * @param  {Array<djs.model.Base>} elements\n *\n * @return {Array<djs.model.Base>} filtered\n */\nfunction removeAttached(elements) {\n\n  var ids = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.groupBy)(elements, 'id');\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n    while (element) {\n\n      // host in selection\n      if (element.host && ids[element.host.id]) {\n        return false;\n      }\n\n      element = element.parent;\n    }\n\n    return true;\n  });\n}\n\nfunction isAttacher(shape) {\n  return !!shape.host;\n}\n\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/attach-support/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/attach-support/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _AttachSupport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AttachSupport */ \"./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _rules__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'attachSupport' ],\n  attachSupport: [ 'type', _AttachSupport__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/attach-support/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoPlace)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlaceUtil */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js\");\n\n\n\n\nvar LOW_PRIORITY = 100;\n\n\n/**\n * A service that places elements connected to existing ones\n * to an appropriate position in an _automated_ fashion.\n *\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction AutoPlace(eventBus, modeling, canvas) {\n\n  eventBus.on('autoPlace', LOW_PRIORITY, function(context) {\n    var shape = context.shape,\n        source = context.source;\n\n    return getNewShapePosition(source, shape);\n  });\n\n  eventBus.on('autoPlace.end', function(event) {\n    canvas.scrollToElement(event.shape);\n  });\n\n  /**\n   * Append shape to source at appropriate position.\n   *\n   * @param {djs.model.Shape} source\n   * @param {djs.model.Shape} shape\n   *\n   * @return {djs.model.Shape} appended shape\n   */\n  this.append = function(source, shape, hints) {\n\n    eventBus.fire('autoPlace.start', {\n      source: source,\n      shape: shape\n    });\n\n    // allow others to provide the position\n    var position = eventBus.fire('autoPlace', {\n      source: source,\n      shape: shape\n    });\n\n    var newShape = modeling.appendShape(source, shape, position, source.parent, hints);\n\n    eventBus.fire('autoPlace.end', {\n      source: source,\n      shape: newShape\n    });\n\n    return newShape;\n  };\n\n}\n\nAutoPlace.$inject = [\n  'eventBus',\n  'modeling',\n  'canvas'\n];\n\n// helpers //////////\n\n/**\n * Find the new position for the target element to\n * connect to source.\n *\n * @param  {djs.model.Shape} source\n * @param  {djs.model.Shape} element\n * @param  {Object} [hints]\n * @param  {Object} [hints.defaultDistance]\n *\n * @returns {Point}\n */\nfunction getNewShapePosition(source, element, hints) {\n  if (!hints) {\n    hints = {};\n  }\n\n  var distance = hints.defaultDistance || _AutoPlaceUtil__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_DISTANCE;\n\n  var sourceMid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source),\n      sourceTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(source);\n\n  // simply put element right next to source\n  return {\n    x: sourceTrbl.right + distance + element.width / 2,\n    y: sourceMid.y\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js ***!
    \***************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoPlaceSelectionBehavior)\n/* harmony export */ });\n/**\n * Select element after auto placement.\n *\n * @param {EventBus} eventBus\n * @param {Selection} selection\n */\nfunction AutoPlaceSelectionBehavior(eventBus, selection) {\n\n  eventBus.on('autoPlace.end', 500, function(e) {\n    selection.select(e.shape);\n  });\n\n}\n\nAutoPlaceSelectionBehavior.$inject = [\n  'eventBus',\n  'selection'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"DEFAULT_DISTANCE\": () => (/* binding */ DEFAULT_DISTANCE),\n/* harmony export */   \"findFreePosition\": () => (/* binding */ findFreePosition),\n/* harmony export */   \"generateGetNextPosition\": () => (/* binding */ generateGetNextPosition),\n/* harmony export */   \"getConnectedAtPosition\": () => (/* binding */ getConnectedAtPosition),\n/* harmony export */   \"getConnectedDistance\": () => (/* binding */ getConnectedDistance)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n// padding to detect element placement\nvar PLACEMENT_DETECTION_PAD = 10;\n\nvar DEFAULT_DISTANCE = 50;\n\nvar DEFAULT_MAX_DISTANCE = 250;\n\n\n/**\n * Get free position starting from given position.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape} element\n * @param {Point} position\n * @param {Function} getNextPosition\n *\n * @return {Point}\n */\nfunction findFreePosition(source, element, position, getNextPosition) {\n  var connectedAtPosition;\n\n  while ((connectedAtPosition = getConnectedAtPosition(source, position, element))) {\n    position = getNextPosition(element, position, connectedAtPosition);\n  }\n\n  return position;\n}\n\n/**\n * Returns function that returns next position.\n *\n * @param {Object} nextPositionDirection\n * @param {Object} [nextPositionDirection.x]\n * @param {Object} [nextPositionDirection.y]\n *\n * @returns {Function}\n */\nfunction generateGetNextPosition(nextPositionDirection) {\n  return function(element, previousPosition, connectedAtPosition) {\n    var nextPosition = {\n      x: previousPosition.x,\n      y: previousPosition.y\n    };\n\n    [ 'x', 'y' ].forEach(function(axis) {\n\n      var nextPositionDirectionForAxis = nextPositionDirection[ axis ];\n\n      if (!nextPositionDirectionForAxis) {\n        return;\n      }\n\n      var dimension = axis === 'x' ? 'width' : 'height';\n\n      var margin = nextPositionDirectionForAxis.margin,\n          minDistance = nextPositionDirectionForAxis.minDistance;\n\n      if (margin < 0) {\n        nextPosition[ axis ] = Math.min(\n          connectedAtPosition[ axis ] + margin - element[ dimension ] / 2,\n          previousPosition[ axis ] - minDistance + margin\n        );\n      } else {\n        nextPosition[ axis ] = Math.max(\n          connectedAtPosition[ axis ] + connectedAtPosition[ dimension ] + margin + element[ dimension ] / 2,\n          previousPosition[ axis ] + minDistance + margin\n        );\n      }\n    });\n\n    return nextPosition;\n  };\n}\n\n/**\n * Return target at given position, if defined.\n *\n * This takes connected elements from host and attachers\n * into account, too.\n */\nfunction getConnectedAtPosition(source, position, element) {\n\n  var bounds = {\n    x: position.x - (element.width / 2),\n    y: position.y - (element.height / 2),\n    width: element.width,\n    height: element.height\n  };\n\n  var closure = getAutoPlaceClosure(source, element);\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(closure, function(target) {\n\n    if (target === element) {\n      return false;\n    }\n\n    var orientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(target, bounds, PLACEMENT_DETECTION_PAD);\n\n    return orientation === 'intersect';\n  });\n}\n\n/**\n* Compute optimal distance between source and target based on existing connections to and from source.\n* Assumes left-to-right and top-to-down modeling.\n*\n* @param {djs.model.Shape} source\n* @param {Object} [hints]\n* @param {number} [hints.defaultDistance]\n* @param {string} [hints.direction]\n* @param {Function} [hints.filter]\n* @param {Function} [hints.getWeight]\n* @param {number} [hints.maxDistance]\n* @param {string} [hints.reference]\n*\n* @return {number}\n*/\nfunction getConnectedDistance(source, hints) {\n  if (!hints) {\n    hints = {};\n  }\n\n  // targets > sources by default\n  function getDefaultWeight(connection) {\n    return connection.source === source ? 1 : -1;\n  }\n\n  var defaultDistance = hints.defaultDistance || DEFAULT_DISTANCE,\n      direction = hints.direction || 'e',\n      filter = hints.filter,\n      getWeight = hints.getWeight || getDefaultWeight,\n      maxDistance = hints.maxDistance || DEFAULT_MAX_DISTANCE,\n      reference = hints.reference || 'start';\n\n  if (!filter) {\n    filter = noneFilter;\n  }\n\n  function getDistance(a, b) {\n    if (direction === 'n') {\n      if (reference === 'start') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).bottom;\n      } else if (reference === 'center') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).y;\n      } else {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).top;\n      }\n    } else if (direction === 'w') {\n      if (reference === 'start') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).right;\n      } else if (reference === 'center') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).x;\n      } else {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).left;\n      }\n    } else if (direction === 's') {\n      if (reference === 'start') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).top - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n      } else if (reference === 'center') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).y - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n      } else {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).bottom - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).bottom;\n      }\n    } else {\n      if (reference === 'start') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).left - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n      } else if (reference === 'center') {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(b).x - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n      } else {\n        return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(b).right - (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(a).right;\n      }\n    }\n  }\n\n  var sourcesDistances = source.incoming\n    .filter(filter)\n    .map(function(connection) {\n      var weight = getWeight(connection);\n\n      var distance = weight < 0\n        ? getDistance(connection.source, source)\n        : getDistance(source, connection.source);\n\n      return {\n        id: connection.source.id,\n        distance: distance,\n        weight: weight\n      };\n    });\n\n  var targetsDistances = source.outgoing\n    .filter(filter)\n    .map(function(connection) {\n      var weight = getWeight(connection);\n\n      var distance = weight > 0\n        ? getDistance(source, connection.target)\n        : getDistance(connection.target, source);\n\n      return {\n        id: connection.target.id,\n        distance: distance,\n        weight: weight\n      };\n    });\n\n  var distances = sourcesDistances.concat(targetsDistances).reduce(function(accumulator, currentValue) {\n    accumulator[ currentValue.id + '__weight_' + currentValue.weight ] = currentValue;\n\n    return accumulator;\n  }, {});\n\n  var distancesGrouped = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(distances, function(accumulator, currentValue) {\n    var distance = currentValue.distance,\n        weight = currentValue.weight;\n\n    if (distance < 0 || distance > maxDistance) {\n      return accumulator;\n    }\n\n    if (!accumulator[ String(distance) ]) {\n      accumulator[ String(distance) ] = 0;\n    }\n\n    accumulator[ String(distance) ] += 1 * weight;\n\n    if (!accumulator.distance || accumulator[ accumulator.distance ] < accumulator[ String(distance) ]) {\n      accumulator.distance = distance;\n    }\n\n    return accumulator;\n  }, {});\n\n  return distancesGrouped.distance || defaultDistance;\n}\n\n/**\n * Returns all connected elements around the given source.\n *\n * This includes:\n *\n *   - connected elements\n *   - host connected elements\n *   - attachers connected elements\n *\n * @param  {djs.model.Shape} source\n *\n * @return {Array<djs.model.Shape>}\n */\nfunction getAutoPlaceClosure(source) {\n\n  var allConnected = getConnected(source);\n\n  if (source.host) {\n    allConnected = allConnected.concat(getConnected(source.host));\n  }\n\n  if (source.attachers) {\n    allConnected = allConnected.concat(source.attachers.reduce(function(shapes, attacher) {\n      return shapes.concat(getConnected(attacher));\n    }, []));\n  }\n\n  return allConnected;\n}\n\nfunction getConnected(element) {\n  return getTargets(element).concat(getSources(element));\n}\n\nfunction getSources(shape) {\n  return shape.incoming.map(function(connection) {\n    return connection.source;\n  });\n}\n\nfunction getTargets(shape) {\n  return shape.outgoing.map(function(connection) {\n    return connection.target;\n  });\n}\n\nfunction noneFilter() {\n  return true;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-place/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-place/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _AutoPlace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AutoPlace */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js\");\n/* harmony import */ var _AutoPlaceSelectionBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AutoPlaceSelectionBehavior */ \"./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'autoPlaceSelectionBehavior' ],\n  autoPlace: [ 'type', _AutoPlace__WEBPACK_IMPORTED_MODULE_0__.default ],\n  autoPlaceSelectionBehavior: [ 'type', _AutoPlaceSelectionBehavior__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-place/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js":
  /*!************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoResize)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * An auto resize component that takes care of expanding a parent element\n * if child elements are created or moved close the parents edge.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction AutoResize(eventBus, elementRegistry, modeling, rules) {\n\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this._elementRegistry = elementRegistry;\n  this._modeling = modeling;\n  this._rules = rules;\n\n  var self = this;\n\n  this.postExecuted([ 'shape.create' ], function(event) {\n    var context = event.context,\n        hints = context.hints || {},\n        shape = context.shape,\n        parent = context.parent || context.newParent;\n\n    if (hints.autoResize === false) {\n      return;\n    }\n\n    self._expand([ shape ], parent);\n  });\n\n  this.postExecuted([ 'elements.move' ], function(event) {\n    var context = event.context,\n        elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.flatten)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.values)(context.closure.topLevel)),\n        hints = context.hints;\n\n    var autoResize = hints ? hints.autoResize : true;\n\n    if (autoResize === false) {\n      return;\n    }\n\n    var expandings = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.groupBy)(elements, function(element) {\n      return element.parent.id;\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(expandings, function(elements, parentId) {\n\n      // optionally filter elements to be considered when resizing\n      if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isArray)(autoResize)) {\n        elements = elements.filter(function(element) {\n          return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(autoResize, (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.matchPattern)({ id: element.id }));\n        });\n      }\n\n      self._expand(elements, parentId);\n    });\n  });\n\n  this.postExecuted([ 'shape.toggleCollapse' ], function(event) {\n    var context = event.context,\n        hints = context.hints,\n        shape = context.shape;\n\n    if (hints && hints.autoResize === false) {\n      return;\n    }\n\n    if (shape.collapsed) {\n      return;\n    }\n\n    self._expand(shape.children || [], shape);\n  });\n\n  this.postExecuted([ 'shape.resize' ], function(event) {\n    var context = event.context,\n        hints = context.hints,\n        shape = context.shape,\n        parent = shape.parent;\n\n    if (hints && hints.autoResize === false) {\n      return;\n    }\n\n    if (parent) {\n      self._expand([ shape ], parent);\n    }\n  });\n\n}\n\nAutoResize.$inject = [\n  'eventBus',\n  'elementRegistry',\n  'modeling',\n  'rules'\n];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AutoResize, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Calculate the new bounds of the target shape, given\n * a number of elements have been moved or added into the parent.\n *\n * This method considers the current size, the added elements as well as\n * the provided padding for the new bounds.\n *\n * @param {Array<djs.model.Shape>} elements\n * @param {djs.model.Shape} target\n */\nAutoResize.prototype._getOptimalBounds = function(elements, target) {\n\n  var offset = this.getOffset(target),\n      padding = this.getPadding(target);\n\n  var elementsTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_4__.getBBox)(elements)),\n      targetTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(target);\n\n  var newTrbl = {};\n\n  if (elementsTrbl.top - targetTrbl.top < padding.top) {\n    newTrbl.top = elementsTrbl.top - offset.top;\n  }\n\n  if (elementsTrbl.left - targetTrbl.left < padding.left) {\n    newTrbl.left = elementsTrbl.left - offset.left;\n  }\n\n  if (targetTrbl.right - elementsTrbl.right < padding.right) {\n    newTrbl.right = elementsTrbl.right + offset.right;\n  }\n\n  if (targetTrbl.bottom - elementsTrbl.bottom < padding.bottom) {\n    newTrbl.bottom = elementsTrbl.bottom + offset.bottom;\n  }\n\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asBounds)((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, targetTrbl, newTrbl));\n};\n\n\n/**\n * Expand the target shape respecting rules, offset and padding\n *\n * @param {Array<djs.model.Shape>} elements\n * @param {djs.model.Shape|string} target|targetId\n */\nAutoResize.prototype._expand = function(elements, target) {\n\n  if (typeof target === 'string') {\n    target = this._elementRegistry.get(target);\n  }\n\n  var allowed = this._rules.allowed('element.autoResize', {\n    elements: elements,\n    target: target\n  });\n\n  if (!allowed) {\n    return;\n  }\n\n  // calculate the new bounds\n  var newBounds = this._getOptimalBounds(elements, target);\n\n  if (!boundsChanged(newBounds, target)) {\n    return;\n  }\n\n  var resizeDirections = getResizeDirections((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(target, [ 'x', 'y', 'width', 'height' ]), newBounds);\n\n  // resize the parent shape\n  this.resize(target, newBounds, {\n    autoResize: resizeDirections\n  });\n\n  var parent = target.parent;\n\n  // recursively expand parent elements\n  if (parent) {\n    this._expand([ target ], parent);\n  }\n};\n\n\n/**\n * Get the amount to expand the given shape in each direction.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {TRBL}\n */\nAutoResize.prototype.getOffset = function(shape) {\n  return { top: 60, bottom: 60, left: 100, right: 100 };\n};\n\n\n/**\n * Get the activation threshold for each side for which\n * resize triggers.\n *\n * @param {djs.model.Shape} shape\n *\n * @return {TRBL}\n */\nAutoResize.prototype.getPadding = function(shape) {\n  return { top: 2, bottom: 2, left: 15, right: 15 };\n};\n\n\n/**\n * Perform the actual resize operation.\n *\n * @param {djs.model.Shape} shape\n * @param {Bounds} newBounds\n * @param {Object} [hints]\n * @param {string} [hints.autoResize]\n */\nAutoResize.prototype.resize = function(shape, newBounds, hints) {\n  this._modeling.resizeShape(shape, newBounds, null, hints);\n};\n\n\nfunction boundsChanged(newBounds, oldBounds) {\n  return (\n    newBounds.x !== oldBounds.x ||\n    newBounds.y !== oldBounds.y ||\n    newBounds.width !== oldBounds.width ||\n    newBounds.height !== oldBounds.height\n  );\n}\n\n/**\n * Get directions of resize as {n|w|s|e} e.g. \"nw\".\n *\n * @param {Bounds} oldBounds\n * @param {Bounds} newBounds\n *\n * @returns {string} Resize directions as {n|w|s|e}.\n */\nfunction getResizeDirections(oldBounds, newBounds) {\n  var directions = '';\n\n  oldBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(oldBounds);\n  newBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_3__.asTRBL)(newBounds);\n\n  if (oldBounds.top > newBounds.top) {\n    directions = directions.concat('n');\n  }\n\n  if (oldBounds.right < newBounds.right) {\n    directions = directions.concat('w');\n  }\n\n  if (oldBounds.bottom < newBounds.bottom) {\n    directions = directions.concat('s');\n  }\n\n  if (oldBounds.left > newBounds.left) {\n    directions = directions.concat('e');\n  }\n\n  return directions;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoResizeProvider)\n/* harmony export */ });\n/* harmony import */ var _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules/RuleProvider */ \"./node_modules/diagram-js/lib/features/rules/RuleProvider.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n/**\n * This is a base rule provider for the element.autoResize rule.\n */\nfunction AutoResizeProvider(eventBus) {\n\n  _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var self = this;\n\n  this.addRule('element.autoResize', function(context) {\n    return self.canResize(context.elements, context.target);\n  });\n}\n\nAutoResizeProvider.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(AutoResizeProvider, _rules_RuleProvider__WEBPACK_IMPORTED_MODULE_1__.default);\n\n/**\n * Needs to be implemented by sub classes to allow actual auto resize\n *\n * @param  {Array<djs.model.Shape>} elements\n * @param  {djs.model.Shape} target\n *\n * @return {boolean}\n */\nAutoResizeProvider.prototype.canResize = function(elements, target) {\n  return false;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js":
  /*!************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AutoScroll)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n/**\n * Initiates canvas scrolling if current cursor point is close to a border.\n * Cancelled when current point moves back inside the scrolling borders\n * or cancelled manually.\n *\n * Default options :\n *   scrollThresholdIn: [ 20, 20, 20, 20 ],\n *   scrollThresholdOut: [ 0, 0, 0, 0 ],\n *   scrollRepeatTimeout: 15,\n *   scrollStep: 10\n *\n * Threshold order:\n *   [ left, top, right, bottom ]\n */\nfunction AutoScroll(config, eventBus, canvas) {\n\n  this._canvas = canvas;\n\n  this._opts = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n    scrollThresholdIn: [ 20, 20, 20, 20 ],\n    scrollThresholdOut: [ 0, 0, 0, 0 ],\n    scrollRepeatTimeout: 15,\n    scrollStep: 10\n  }, config);\n\n  var self = this;\n\n  eventBus.on('drag.move', function(e) {\n    var point = self._toBorderPoint(e);\n\n    self.startScroll(point);\n  });\n\n  eventBus.on([ 'drag.cleanup' ], function() {\n    self.stopScroll();\n  });\n}\n\nAutoScroll.$inject = [\n  'config.autoScroll',\n  'eventBus',\n  'canvas'\n];\n\n\n/**\n * Starts scrolling loop.\n * Point is given in global scale in canvas container box plane.\n *\n * @param  {Object} point { x: X, y: Y }\n */\nAutoScroll.prototype.startScroll = function(point) {\n\n  var canvas = this._canvas;\n  var opts = this._opts;\n  var self = this;\n\n  var clientRect = canvas.getContainer().getBoundingClientRect();\n\n  var diff = [\n    point.x,\n    point.y,\n    clientRect.width - point.x,\n    clientRect.height - point.y\n  ];\n\n  this.stopScroll();\n\n  var dx = 0,\n      dy = 0;\n\n  for (var i = 0; i < 4; i++) {\n    if (between(diff[i], opts.scrollThresholdOut[i], opts.scrollThresholdIn[i])) {\n      if (i === 0) {\n        dx = opts.scrollStep;\n      } else if (i == 1) {\n        dy = opts.scrollStep;\n      } else if (i == 2) {\n        dx = -opts.scrollStep;\n      } else if (i == 3) {\n        dy = -opts.scrollStep;\n      }\n    }\n  }\n\n  if (dx !== 0 || dy !== 0) {\n    canvas.scroll({ dx: dx, dy: dy });\n\n    this._scrolling = setTimeout(function() {\n      self.startScroll(point);\n    }, opts.scrollRepeatTimeout);\n  }\n};\n\nfunction between(val, start, end) {\n  if (start < val && val < end) {\n    return true;\n  }\n\n  return false;\n}\n\n\n/**\n * Stops scrolling loop.\n */\nAutoScroll.prototype.stopScroll = function() {\n  clearTimeout(this._scrolling);\n};\n\n\n/**\n * Overrides defaults options.\n *\n * @param  {Object} options\n */\nAutoScroll.prototype.setOptions = function(options) {\n  this._opts = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._opts, options);\n};\n\n\n/**\n * Converts event to a point in canvas container plane in global scale.\n *\n * @param  {Event} event\n * @return {Point}\n */\nAutoScroll.prototype._toBorderPoint = function(event) {\n  var clientRect = this._canvas._container.getBoundingClientRect();\n\n  var globalPosition = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event.originalEvent);\n\n  return {\n    x: globalPosition.x - clientRect.left,\n    y: globalPosition.y - clientRect.top\n  };\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/auto-scroll/index.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/auto-scroll/index.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _AutoScroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AutoScroll */ \"./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n  ],\n  __init__: [ 'autoScroll' ],\n  autoScroll: [ 'type', _AutoScroll__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/auto-scroll/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BendpointMove),\n/* harmony export */   \"isReverse\": () => (/* binding */ isReverse)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\nvar round = Math.round;\n\nvar RECONNECT_START = 'reconnectStart',\n    RECONNECT_END = 'reconnectEnd',\n    UPDATE_WAYPOINTS = 'updateWaypoints';\n\n\n/**\n * Move bendpoints through drag and drop to add/remove bendpoints or reconnect connection.\n */\nfunction BendpointMove(injector, eventBus, canvas, dragging, rules, modeling) {\n  this._injector = injector;\n\n  this.start = function(event, connection, bendpointIndex, insert) {\n    var gfx = canvas.getGraphics(connection),\n        source = connection.source,\n        target = connection.target,\n        waypoints = connection.waypoints,\n        type;\n\n    if (!insert && bendpointIndex === 0) {\n      type = RECONNECT_START;\n    } else\n    if (!insert && bendpointIndex === waypoints.length - 1) {\n      type = RECONNECT_END;\n    } else {\n      type = UPDATE_WAYPOINTS;\n    }\n\n    var command = type === UPDATE_WAYPOINTS ? 'connection.updateWaypoints' : 'connection.reconnect';\n\n    var allowed = rules.allowed(command, {\n      connection: connection,\n      source: source,\n      target: target\n    });\n\n    if (allowed === false) {\n      allowed = rules.allowed(command, {\n        connection: connection,\n        source: target,\n        target: source\n      });\n    }\n\n    if (allowed === false) {\n      return;\n    }\n\n    dragging.init(event, 'bendpoint.move', {\n      data: {\n        connection: connection,\n        connectionGfx: gfx,\n        context: {\n          allowed: allowed,\n          bendpointIndex: bendpointIndex,\n          connection: connection,\n          source: source,\n          target: target,\n          insert: insert,\n          type: type\n        }\n      }\n    });\n  };\n\n  eventBus.on('bendpoint.move.hover', function(event) {\n    var context = event.context,\n        connection = context.connection,\n        source = connection.source,\n        target = connection.target,\n        hover = event.hover,\n        type = context.type;\n\n    // cache hover state\n    context.hover = hover;\n\n    var allowed;\n\n    if (!hover) {\n      return;\n    }\n\n    var command = type === UPDATE_WAYPOINTS ? 'connection.updateWaypoints' : 'connection.reconnect';\n\n    allowed = context.allowed = rules.allowed(command, {\n      connection: connection,\n      source: type === RECONNECT_START ? hover : source,\n      target: type === RECONNECT_END ? hover : target\n    });\n\n    if (allowed) {\n      context.source = type === RECONNECT_START ? hover : source;\n      context.target = type === RECONNECT_END ? hover : target;\n\n      return;\n    }\n\n    if (allowed === false) {\n      allowed = context.allowed = rules.allowed(command, {\n        connection: connection,\n        source: type === RECONNECT_END ? hover : target,\n        target: type === RECONNECT_START ? hover : source\n      });\n    }\n\n    if (allowed) {\n      context.source = type === RECONNECT_END ? hover : target;\n      context.target = type === RECONNECT_START ? hover : source;\n    }\n  });\n\n  eventBus.on([ 'bendpoint.move.out', 'bendpoint.move.cleanup' ], function(event) {\n    var context = event.context,\n        type = context.type;\n\n    context.hover = null;\n    context.source = null;\n    context.target = null;\n\n    if (type !== UPDATE_WAYPOINTS) {\n      context.allowed = false;\n    }\n  });\n\n  eventBus.on('bendpoint.move.end', function(event) {\n    var context = event.context,\n        allowed = context.allowed,\n        bendpointIndex = context.bendpointIndex,\n        connection = context.connection,\n        insert = context.insert,\n        newWaypoints = connection.waypoints.slice(),\n        source = context.source,\n        target = context.target,\n        type = context.type,\n        hints = context.hints || {};\n\n    // ensure integer values (important if zoom level was > 1 during move)\n    var docking = {\n      x: round(event.x),\n      y: round(event.y)\n    };\n\n    if (!allowed) {\n      return false;\n    }\n\n    if (type === UPDATE_WAYPOINTS) {\n      if (insert) {\n\n        // insert new bendpoint\n        newWaypoints.splice(bendpointIndex, 0, docking);\n      } else {\n\n        // swap previous waypoint with moved one\n        newWaypoints[bendpointIndex] = docking;\n      }\n\n      // pass hints about actual moved bendpoint\n      // useful for connection/label layout\n      hints.bendpointMove = {\n        insert: insert,\n        bendpointIndex: bendpointIndex\n      };\n\n      newWaypoints = this.cropWaypoints(connection, newWaypoints);\n\n      modeling.updateWaypoints(connection, (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.filterRedundantWaypoints)(newWaypoints), hints);\n    } else {\n      if (type === RECONNECT_START) {\n        hints.docking = 'source';\n\n        if (isReverse(context)) {\n          hints.docking = 'target';\n\n          hints.newWaypoints = newWaypoints.reverse();\n        }\n      } else if (type === RECONNECT_END) {\n        hints.docking = 'target';\n\n        if (isReverse(context)) {\n          hints.docking = 'source';\n\n          hints.newWaypoints = newWaypoints.reverse();\n        }\n      }\n\n      modeling.reconnect(connection, source, target, docking, hints);\n    }\n  }, this);\n}\n\nBendpointMove.$inject = [\n  'injector',\n  'eventBus',\n  'canvas',\n  'dragging',\n  'rules',\n  'modeling'\n];\n\nBendpointMove.prototype.cropWaypoints = function(connection, newWaypoints) {\n  var connectionDocking = this._injector.get('connectionDocking', false);\n\n  if (!connectionDocking) {\n    return newWaypoints;\n  }\n\n  var waypoints = connection.waypoints;\n\n  connection.waypoints = newWaypoints;\n\n  connection.waypoints = connectionDocking.getCroppedWaypoints(connection);\n\n  newWaypoints = connection.waypoints;\n\n  connection.waypoints = waypoints;\n\n  return newWaypoints;\n};\n\n\n// helpers //////////\n\nfunction isReverse(context) {\n  var hover = context.hover,\n      source = context.source,\n      target = context.target,\n      type = context.type;\n\n  if (type === RECONNECT_START) {\n    return hover && target && hover === target && source !== target;\n  }\n\n  if (type === RECONNECT_END) {\n    return hover && source && hover === source && source !== target;\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BendpointMovePreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _BendpointMove__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BendpointMove */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js\");\n\n\n\n\n\n\n\n\nvar RECONNECT_START = 'reconnectStart',\n    RECONNECT_END = 'reconnectEnd',\n    UPDATE_WAYPOINTS = 'updateWaypoints';\n\nvar MARKER_OK = 'connect-ok',\n    MARKER_NOT_OK = 'connect-not-ok',\n    MARKER_CONNECT_HOVER = 'connect-hover',\n    MARKER_CONNECT_UPDATING = 'djs-updating',\n    MARKER_ELEMENT_HIDDEN = 'djs-element-hidden';\n\nvar HIGH_PRIORITY = 1100;\n\n/**\n * Preview connection while moving bendpoints.\n */\nfunction BendpointMovePreview(bendpointMove, injector, eventBus, canvas) {\n  this._injector = injector;\n\n  var connectionPreview = injector.get('connectionPreview', false);\n\n  eventBus.on('bendpoint.move.start', function(event) {\n    var context = event.context,\n        bendpointIndex = context.bendpointIndex,\n        connection = context.connection,\n        insert = context.insert,\n        waypoints = connection.waypoints,\n        newWaypoints = waypoints.slice();\n\n    context.waypoints = waypoints;\n\n    if (insert) {\n\n      // insert placeholder for new bendpoint\n      newWaypoints.splice(bendpointIndex, 0, { x: event.x, y: event.y });\n    }\n\n    connection.waypoints = newWaypoints;\n\n    // add dragger gfx\n    var draggerGfx = context.draggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_0__.addBendpoint)(canvas.getLayer('overlays'));\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(draggerGfx).add('djs-dragging');\n\n    canvas.addMarker(connection, MARKER_ELEMENT_HIDDEN);\n    canvas.addMarker(connection, MARKER_CONNECT_UPDATING);\n  });\n\n  eventBus.on('bendpoint.move.hover', function(event) {\n    var context = event.context,\n        allowed = context.allowed,\n        hover = context.hover,\n        type = context.type;\n\n    if (hover) {\n      canvas.addMarker(hover, MARKER_CONNECT_HOVER);\n\n      if (type === UPDATE_WAYPOINTS) {\n        return;\n      }\n\n      if (allowed) {\n        canvas.removeMarker(hover, MARKER_NOT_OK);\n        canvas.addMarker(hover, MARKER_OK);\n      } else if (allowed === false) {\n        canvas.removeMarker(hover, MARKER_OK);\n        canvas.addMarker(hover, MARKER_NOT_OK);\n      }\n    }\n  });\n\n  eventBus.on([\n    'bendpoint.move.out',\n    'bendpoint.move.cleanup'\n  ], HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        hover = context.hover,\n        target = context.target;\n\n    if (hover) {\n      canvas.removeMarker(hover, MARKER_CONNECT_HOVER);\n      canvas.removeMarker(hover, target ? MARKER_OK : MARKER_NOT_OK);\n    }\n  });\n\n  eventBus.on('bendpoint.move.move', function(event) {\n    var context = event.context,\n        allowed = context.allowed,\n        bendpointIndex = context.bendpointIndex,\n        draggerGfx = context.draggerGfx,\n        hover = context.hover,\n        type = context.type,\n        connection = context.connection,\n        source = connection.source,\n        target = connection.target,\n        newWaypoints = connection.waypoints.slice(),\n        bendpoint = { x: event.x, y: event.y },\n        hints = context.hints || {},\n        drawPreviewHints = {};\n\n    if (connectionPreview) {\n      if (hints.connectionStart) {\n        drawPreviewHints.connectionStart = hints.connectionStart;\n      }\n\n      if (hints.connectionEnd) {\n        drawPreviewHints.connectionEnd = hints.connectionEnd;\n      }\n\n\n      if (type === RECONNECT_START) {\n        if ((0,_BendpointMove__WEBPACK_IMPORTED_MODULE_2__.isReverse)(context)) {\n          drawPreviewHints.connectionEnd = drawPreviewHints.connectionEnd || bendpoint;\n\n          drawPreviewHints.source = target;\n          drawPreviewHints.target = hover || source;\n\n          newWaypoints = newWaypoints.reverse();\n        } else {\n          drawPreviewHints.connectionStart = drawPreviewHints.connectionStart || bendpoint;\n\n          drawPreviewHints.source = hover || source;\n          drawPreviewHints.target = target;\n        }\n      } else if (type === RECONNECT_END) {\n        if ((0,_BendpointMove__WEBPACK_IMPORTED_MODULE_2__.isReverse)(context)) {\n          drawPreviewHints.connectionStart = drawPreviewHints.connectionStart || bendpoint;\n\n          drawPreviewHints.source = hover || target;\n          drawPreviewHints.target = source;\n\n          newWaypoints = newWaypoints.reverse();\n        } else {\n          drawPreviewHints.connectionEnd = drawPreviewHints.connectionEnd || bendpoint;\n\n          drawPreviewHints.source = source;\n          drawPreviewHints.target = hover || target;\n        }\n\n      } else {\n        drawPreviewHints.noCropping = true;\n        drawPreviewHints.noLayout = true;\n        newWaypoints[ bendpointIndex ] = bendpoint;\n      }\n\n      if (type === UPDATE_WAYPOINTS) {\n        newWaypoints = bendpointMove.cropWaypoints(connection, newWaypoints);\n      }\n\n      drawPreviewHints.waypoints = newWaypoints;\n\n      connectionPreview.drawPreview(context, allowed, drawPreviewHints);\n    }\n\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(draggerGfx, event.x, event.y);\n  }, this);\n\n  eventBus.on([\n    'bendpoint.move.end',\n    'bendpoint.move.cancel'\n  ], HIGH_PRIORITY, function(event) {\n    var context = event.context,\n        connection = context.connection,\n        draggerGfx = context.draggerGfx,\n        hover = context.hover,\n        target = context.target,\n        waypoints = context.waypoints;\n\n    connection.waypoints = waypoints;\n\n    // remove dragger gfx\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(draggerGfx);\n\n    canvas.removeMarker(connection, MARKER_CONNECT_UPDATING);\n    canvas.removeMarker(connection, MARKER_ELEMENT_HIDDEN);\n\n    if (hover) {\n      canvas.removeMarker(hover, MARKER_OK);\n      canvas.removeMarker(hover, target ? MARKER_OK : MARKER_NOT_OK);\n    }\n\n    if (connectionPreview) {\n      connectionPreview.cleanUp(context);\n    }\n  });\n}\n\nBendpointMovePreview.$inject = [\n  'bendpointMove',\n  'injector',\n  'eventBus',\n  'canvas'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BendpointSnapping)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n\n\n\n\nvar abs= Math.abs,\n    round = Math.round;\n\nvar TOLERANCE = 10;\n\n\nfunction BendpointSnapping(eventBus) {\n\n  function snapTo(values, value) {\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(values)) {\n      var i = values.length;\n\n      while (i--) if (abs(values[i] - value) <= TOLERANCE) {\n        return values[i];\n      }\n    } else {\n      values = +values;\n      var rem = value % values;\n\n      if (rem < TOLERANCE) {\n        return value - rem;\n      }\n\n      if (rem > values - TOLERANCE) {\n        return value - rem + values;\n      }\n    }\n\n    return value;\n  }\n\n  function mid(element) {\n    if (element.width) {\n      return {\n        x: round(element.width / 2 + element.x),\n        y: round(element.height / 2 + element.y)\n      };\n    }\n  }\n\n  // connection segment snapping //////////////////////\n\n  function getConnectionSegmentSnaps(context) {\n\n    var snapPoints = context.snapPoints,\n        connection = context.connection,\n        waypoints = connection.waypoints,\n        segmentStart = context.segmentStart,\n        segmentStartIndex = context.segmentStartIndex,\n        segmentEnd = context.segmentEnd,\n        segmentEndIndex = context.segmentEndIndex,\n        axis = context.axis;\n\n    if (snapPoints) {\n      return snapPoints;\n    }\n\n    var referenceWaypoints = [\n      waypoints[segmentStartIndex - 1],\n      segmentStart,\n      segmentEnd,\n      waypoints[segmentEndIndex + 1]\n    ];\n\n    if (segmentStartIndex < 2) {\n      referenceWaypoints.unshift(mid(connection.source));\n    }\n\n    if (segmentEndIndex > waypoints.length - 3) {\n      referenceWaypoints.unshift(mid(connection.target));\n    }\n\n    context.snapPoints = snapPoints = { horizontal: [] , vertical: [] };\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(referenceWaypoints, function(p) {\n\n      // we snap on existing bendpoints only,\n      // not placeholders that are inserted during add\n      if (p) {\n        p = p.original || p;\n\n        if (axis === 'y') {\n          snapPoints.horizontal.push(p.y);\n        }\n\n        if (axis === 'x') {\n          snapPoints.vertical.push(p.x);\n        }\n      }\n    });\n\n    return snapPoints;\n  }\n\n  eventBus.on('connectionSegment.move.move', 1500, function(event) {\n    var context = event.context,\n        snapPoints = getConnectionSegmentSnaps(context),\n        x = event.x,\n        y = event.y,\n        sx, sy;\n\n    if (!snapPoints) {\n      return;\n    }\n\n    // snap\n    sx = snapTo(snapPoints.vertical, x);\n    sy = snapTo(snapPoints.horizontal, y);\n\n\n    // correction x/y\n    var cx = (x - sx),\n        cy = (y - sy);\n\n    // update delta\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n      dx: event.dx - cx,\n      dy: event.dy - cy,\n      x: sx,\n      y: sy\n    });\n\n    // only set snapped if actually snapped\n    if (cx || snapPoints.vertical.indexOf(x) !== -1) {\n      (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', sx);\n    }\n\n    if (cy || snapPoints.horizontal.indexOf(y) !== -1) {\n      (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', sy);\n    }\n  });\n\n\n  // bendpoint snapping //////////////////////\n\n  function getBendpointSnaps(context) {\n\n    var snapPoints = context.snapPoints,\n        waypoints = context.connection.waypoints,\n        bendpointIndex = context.bendpointIndex;\n\n    if (snapPoints) {\n      return snapPoints;\n    }\n\n    var referenceWaypoints = [ waypoints[bendpointIndex - 1], waypoints[bendpointIndex + 1] ];\n\n    context.snapPoints = snapPoints = { horizontal: [] , vertical: [] };\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(referenceWaypoints, function(p) {\n\n      // we snap on existing bendpoints only,\n      // not placeholders that are inserted during add\n      if (p) {\n        p = p.original || p;\n\n        snapPoints.horizontal.push(p.y);\n        snapPoints.vertical.push(p.x);\n      }\n    });\n\n    return snapPoints;\n  }\n\n\n  eventBus.on([ 'bendpoint.move.move', 'bendpoint.move.end' ], 1500, function(event) {\n\n    var context = event.context,\n        snapPoints = getBendpointSnaps(context),\n        hover = context.hover,\n        hoverMid = hover && mid(hover),\n        x = event.x,\n        y = event.y,\n        sx, sy;\n\n    if (!snapPoints) {\n      return;\n    }\n\n    // snap to hover mid\n    sx = snapTo(hoverMid ? snapPoints.vertical.concat([ hoverMid.x ]) : snapPoints.vertical, x);\n    sy = snapTo(hoverMid ? snapPoints.horizontal.concat([ hoverMid.y ]) : snapPoints.horizontal, y);\n\n    // correction x/y\n    var cx = (x - sx),\n        cy = (y - sy);\n\n    // update delta\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n      dx: event.dx - cx,\n      dy: event.dy - cy,\n      x: event.x - cx,\n      y: event.y - cy\n    });\n\n    // only set snapped if actually snapped\n    if (cx || snapPoints.vertical.indexOf(x) !== -1) {\n      (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', sx);\n    }\n\n    if (cy || snapPoints.horizontal.indexOf(y) !== -1) {\n      (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', sy);\n    }\n  });\n}\n\n\nBendpointSnapping.$inject = [ 'eventBus' ];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"BENDPOINT_CLS\": () => (/* binding */ BENDPOINT_CLS),\n/* harmony export */   \"SEGMENT_DRAGGER_CLS\": () => (/* binding */ SEGMENT_DRAGGER_CLS),\n/* harmony export */   \"toCanvasCoordinates\": () => (/* binding */ toCanvasCoordinates),\n/* harmony export */   \"getConnectionIntersection\": () => (/* binding */ getConnectionIntersection),\n/* harmony export */   \"addBendpoint\": () => (/* binding */ addBendpoint),\n/* harmony export */   \"addSegmentDragger\": () => (/* binding */ addSegmentDragger),\n/* harmony export */   \"calculateSegmentMoveRegion\": () => (/* binding */ calculateSegmentMoveRegion)\n/* harmony export */ });\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _util_LineIntersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/LineIntersection */ \"./node_modules/diagram-js/lib/util/LineIntersection.js\");\n\n\n\n\n\n\n\n\n\n\nvar BENDPOINT_CLS = 'djs-bendpoint';\nvar SEGMENT_DRAGGER_CLS = 'djs-segment-dragger';\n\nfunction toCanvasCoordinates(canvas, event) {\n\n  var position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event),\n      clientRect = canvas._container.getBoundingClientRect(),\n      offset;\n\n  // canvas relative position\n\n  offset = {\n    x: clientRect.left,\n    y: clientRect.top\n  };\n\n  // update actual event payload with canvas relative measures\n\n  var viewbox = canvas.viewbox();\n\n  return {\n    x: viewbox.x + (position.x - offset.x) / viewbox.scale,\n    y: viewbox.y + (position.y - offset.y) / viewbox.scale\n  };\n}\n\nfunction getConnectionIntersection(canvas, waypoints, event) {\n  var localPosition = toCanvasCoordinates(canvas, event),\n      intersection = (0,_util_LineIntersection__WEBPACK_IMPORTED_MODULE_1__.getApproxIntersection)(waypoints, localPosition);\n\n  return intersection;\n}\n\nfunction addBendpoint(parentGfx, cls) {\n  var groupGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(BENDPOINT_CLS);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, groupGfx);\n\n  var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('circle');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(visual, {\n    cx: 0,\n    cy: 0,\n    r: 4\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(visual).add('djs-visual');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(groupGfx, visual);\n\n  var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('circle');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(hit, {\n    cx: 0,\n    cy: 0,\n    r: 10\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(hit).add('djs-hit');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(groupGfx, hit);\n\n  if (cls) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(cls);\n  }\n\n  return groupGfx;\n}\n\nfunction createParallelDragger(parentGfx, segmentStart, segmentEnd, alignment) {\n  var draggerGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, draggerGfx);\n\n  var width = 14,\n      height = 3,\n      padding = 11,\n      hitWidth = calculateHitWidth(segmentStart, segmentEnd, alignment),\n      hitHeight = height + padding;\n\n  var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(visual, {\n    x: -width / 2,\n    y: -height / 2,\n    width: width,\n    height: height\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(visual).add('djs-visual');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(draggerGfx, visual);\n\n  var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('rect');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(hit, {\n    x: -hitWidth / 2,\n    y: -hitHeight / 2,\n    width: hitWidth,\n    height: hitHeight\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(hit).add('djs-hit');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(draggerGfx, hit);\n\n  (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.rotate)(draggerGfx, alignment === 'v' ? 90 : 0, 0, 0);\n\n  return draggerGfx;\n}\n\n\nfunction addSegmentDragger(parentGfx, segmentStart, segmentEnd) {\n\n  var groupGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g'),\n      mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_4__.getMidPoint)(segmentStart, segmentEnd),\n      alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_4__.pointsAligned)(segmentStart, segmentEnd);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(parentGfx, groupGfx);\n\n  createParallelDragger(groupGfx, segmentStart, segmentEnd, alignment);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(SEGMENT_DRAGGER_CLS);\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(groupGfx).add(alignment === 'h' ? 'horizontal' : 'vertical');\n\n  (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(groupGfx, mid.x, mid.y);\n\n  return groupGfx;\n}\n\n/**\n * Calculates region for segment move which is 2/3 of the full segment length\n * @param {number} segmentLength\n *\n * @return {number}\n */\nfunction calculateSegmentMoveRegion(segmentLength) {\n  return Math.abs(Math.round(segmentLength * 2 / 3));\n}\n\n// helper //////////\n\nfunction calculateHitWidth(segmentStart, segmentEnd, alignment) {\n  var segmentLengthXAxis = segmentEnd.x - segmentStart.x,\n      segmentLengthYAxis = segmentEnd.y - segmentStart.y;\n\n  return alignment === 'h' ?\n    calculateSegmentMoveRegion(segmentLengthXAxis) :\n    calculateSegmentMoveRegion(segmentLengthYAxis);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Bendpoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/EscapeUtil */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A service that adds editable bendpoints to connections.\n */\nfunction Bendpoints(\n    eventBus, canvas, interactionEvents,\n    bendpointMove, connectionSegmentMove) {\n\n  /**\n   * Returns true if intersection point is inside middle region of segment, adjusted by\n   * optional threshold\n   */\n  function isIntersectionMiddle(intersection, waypoints, treshold) {\n    var idx = intersection.index,\n        p = intersection.point,\n        p0, p1, mid, aligned, xDelta, yDelta;\n\n    if (idx <= 0 || intersection.bendpoint) {\n      return false;\n    }\n\n    p0 = waypoints[idx - 1];\n    p1 = waypoints[idx];\n    mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.getMidPoint)(p0, p1),\n    aligned = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(p0, p1);\n    xDelta = Math.abs(p.x - mid.x);\n    yDelta = Math.abs(p.y - mid.y);\n\n    return aligned && xDelta <= treshold && yDelta <= treshold;\n  }\n\n  /**\n   * Calculates the threshold from a connection's middle which fits the two-third-region\n   */\n  function calculateIntersectionThreshold(connection, intersection) {\n    var waypoints = connection.waypoints,\n        relevantSegment, alignment, segmentLength, threshold;\n\n    if (intersection.index <= 0 || intersection.bendpoint) {\n      return null;\n    }\n\n    // segment relative to connection intersection\n    relevantSegment = {\n      start: waypoints[intersection.index - 1],\n      end: waypoints[intersection.index]\n    };\n\n    alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(relevantSegment.start, relevantSegment.end);\n\n    if (!alignment) {\n      return null;\n    }\n\n    if (alignment === 'h') {\n      segmentLength = relevantSegment.end.x - relevantSegment.start.x;\n    } else {\n      segmentLength = relevantSegment.end.y - relevantSegment.start.y;\n    }\n\n    // calculate threshold relative to 2/3 of segment length\n    threshold = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.calculateSegmentMoveRegion)(segmentLength) / 2;\n\n    return threshold;\n  }\n\n  function activateBendpointMove(event, connection) {\n    var waypoints = connection.waypoints,\n        intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event),\n        threshold;\n\n    if (!intersection) {\n      return;\n    }\n\n    threshold = calculateIntersectionThreshold(connection, intersection);\n\n    if (isIntersectionMiddle(intersection, waypoints, threshold)) {\n      connectionSegmentMove.start(event, connection, intersection.index);\n    } else {\n      bendpointMove.start(event, connection, intersection.index, !intersection.bendpoint);\n    }\n\n    // we've handled the event\n    return true;\n  }\n\n  function bindInteractionEvents(node, eventName, element) {\n\n    min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, eventName, function(event) {\n      interactionEvents.triggerMouseEvent(eventName, event, element);\n      event.stopPropagation();\n    });\n  }\n\n  function getBendpointsContainer(element, create) {\n\n    var layer = canvas.getLayer('overlays'),\n        gfx = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-bendpoints[data-element-id=\"' + _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_3___default()(element.id) + '\"]', layer);\n\n    if (!gfx && create) {\n      gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.create)('g');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(gfx, { 'data-element-id': element.id });\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(gfx).add('djs-bendpoints');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(layer, gfx);\n\n      bindInteractionEvents(gfx, 'mousedown', element);\n      bindInteractionEvents(gfx, 'click', element);\n      bindInteractionEvents(gfx, 'dblclick', element);\n    }\n\n    return gfx;\n  }\n\n  function getSegmentDragger(idx, parentGfx) {\n    return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)(\n      '.djs-segment-dragger[data-segment-idx=\"' + idx + '\"]',\n      parentGfx\n    );\n  }\n\n  function createBendpoints(gfx, connection) {\n    connection.waypoints.forEach(function(p, idx) {\n      var bendpoint = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addBendpoint)(gfx);\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.append)(gfx, bendpoint);\n\n      (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(bendpoint, p.x, p.y);\n    });\n\n    // add floating bendpoint\n    (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addBendpoint)(gfx, 'floating');\n  }\n\n  function createSegmentDraggers(gfx, connection) {\n\n    var waypoints = connection.waypoints;\n\n    var segmentStart,\n        segmentEnd,\n        segmentDraggerGfx;\n\n    for (var i = 1; i < waypoints.length; i++) {\n\n      segmentStart = waypoints[i - 1];\n      segmentEnd = waypoints[i];\n\n      if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(segmentStart, segmentEnd)) {\n        segmentDraggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addSegmentDragger)(gfx, segmentStart, segmentEnd);\n\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(segmentDraggerGfx, { 'data-segment-idx': i });\n\n        bindInteractionEvents(segmentDraggerGfx, 'mousemove', connection);\n      }\n    }\n  }\n\n  function clearBendpoints(gfx) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_6__.forEach)((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.queryAll)('.' + _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.BENDPOINT_CLS, gfx), function(node) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(node);\n    });\n  }\n\n  function clearSegmentDraggers(gfx) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_6__.forEach)((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.queryAll)('.' + _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.SEGMENT_DRAGGER_CLS, gfx), function(node) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(node);\n    });\n  }\n\n  function addHandles(connection) {\n\n    var gfx = getBendpointsContainer(connection);\n\n    if (!gfx) {\n      gfx = getBendpointsContainer(connection, true);\n\n      createBendpoints(gfx, connection);\n      createSegmentDraggers(gfx, connection);\n    }\n\n    return gfx;\n  }\n\n  function updateHandles(connection) {\n\n    var gfx = getBendpointsContainer(connection);\n\n    if (gfx) {\n      clearSegmentDraggers(gfx);\n      clearBendpoints(gfx);\n      createSegmentDraggers(gfx, connection);\n      createBendpoints(gfx, connection);\n    }\n  }\n\n  function updateFloatingBendpointPosition(parentGfx, intersection) {\n    var floating = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.floating', parentGfx),\n        point = intersection.point;\n\n    if (!floating) {\n      return;\n    }\n\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(floating, point.x, point.y);\n\n  }\n\n  function updateSegmentDraggerPosition(parentGfx, intersection, waypoints) {\n\n    var draggerGfx = getSegmentDragger(intersection.index, parentGfx),\n        segmentStart = waypoints[intersection.index - 1],\n        segmentEnd = waypoints[intersection.index],\n        point = intersection.point,\n        mid = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.getMidPoint)(segmentStart, segmentEnd),\n        alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_0__.pointsAligned)(segmentStart, segmentEnd),\n        draggerVisual, relativePosition;\n\n    if (!draggerGfx) {\n      return;\n    }\n\n    draggerVisual = getDraggerVisual(draggerGfx);\n\n    relativePosition = {\n      x: point.x - mid.x,\n      y: point.y - mid.y\n    };\n\n    if (alignment === 'v') {\n\n      // rotate position\n      relativePosition = {\n        x: relativePosition.y,\n        y: relativePosition.x\n      };\n    }\n\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_5__.translate)(draggerVisual, relativePosition.x, relativePosition.y);\n  }\n\n  eventBus.on('connection.changed', function(event) {\n    updateHandles(event.element);\n  });\n\n  eventBus.on('connection.remove', function(event) {\n    var gfx = getBendpointsContainer(event.element);\n\n    if (gfx) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(gfx);\n    }\n  });\n\n  eventBus.on('element.marker.update', function(event) {\n\n    var element = event.element,\n        bendpointsGfx;\n\n    if (!element.waypoints) {\n      return;\n    }\n\n    bendpointsGfx = addHandles(element);\n\n    if (event.add) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(bendpointsGfx).add(event.marker);\n    } else {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(bendpointsGfx).remove(event.marker);\n    }\n  });\n\n  eventBus.on('element.mousemove', function(event) {\n\n    var element = event.element,\n        waypoints = element.waypoints,\n        bendpointsGfx,\n        intersection;\n\n    if (waypoints) {\n      bendpointsGfx = getBendpointsContainer(element, true);\n\n      intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event.originalEvent);\n\n      if (!intersection) {\n        return;\n      }\n\n      updateFloatingBendpointPosition(bendpointsGfx, intersection);\n\n      if (!intersection.bendpoint) {\n        updateSegmentDraggerPosition(bendpointsGfx, intersection, waypoints);\n      }\n\n    }\n  });\n\n  eventBus.on('element.mousedown', function(event) {\n\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_7__.isPrimaryButton)(event)) {\n      return;\n    }\n\n    var originalEvent = event.originalEvent,\n        element = event.element;\n\n    if (!element.waypoints) {\n      return;\n    }\n\n    return activateBendpointMove(originalEvent, element);\n  });\n\n  eventBus.on('selection.changed', function(event) {\n    var newSelection = event.newSelection,\n        primary = newSelection[0];\n\n    if (primary && primary.waypoints) {\n      addHandles(primary);\n    }\n  });\n\n  eventBus.on('element.hover', function(event) {\n    var element = event.element;\n\n    if (element.waypoints) {\n      addHandles(element);\n      interactionEvents.registerEvent(event.gfx, 'mousemove', 'element.mousemove');\n    }\n  });\n\n  eventBus.on('element.out', function(event) {\n    interactionEvents.unregisterEvent(event.gfx, 'mousemove', 'element.mousemove');\n  });\n\n  // update bendpoint container data attribute on element ID change\n  eventBus.on('element.updateId', function(context) {\n    var element = context.element,\n        newId = context.newId;\n\n    if (element.waypoints) {\n      var bendpointContainer = getBendpointsContainer(element);\n\n      if (bendpointContainer) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.attr)(bendpointContainer, { 'data-element-id': newId });\n      }\n    }\n  });\n\n  // API\n\n  this.addHandles = addHandles;\n  this.updateHandles = updateHandles;\n  this.getBendpointsContainer = getBendpointsContainer;\n  this.getSegmentDragger = getSegmentDragger;\n}\n\nBendpoints.$inject = [\n  'eventBus',\n  'canvas',\n  'interactionEvents',\n  'bendpointMove',\n  'connectionSegmentMove'\n];\n\n\n\n// helper /////////////\n\nfunction getDraggerVisual(draggerGfx) {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-visual', draggerGfx);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ConnectionSegmentMove)\n/* harmony export */ });\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var _BendpointUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BendpointUtil */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\nvar MARKER_CONNECT_HOVER = 'connect-hover',\n    MARKER_CONNECT_UPDATING = 'djs-updating';\n\n\n\n\n\n\nfunction axisAdd(point, axis, delta) {\n  return axisSet(point, axis, point[axis] + delta);\n}\n\nfunction axisSet(point, axis, value) {\n  return {\n    x: (axis === 'x' ? value : point.x),\n    y: (axis === 'y' ? value : point.y)\n  };\n}\n\nfunction axisFenced(position, segmentStart, segmentEnd, axis) {\n\n  var maxValue = Math.max(segmentStart[axis], segmentEnd[axis]),\n      minValue = Math.min(segmentStart[axis], segmentEnd[axis]);\n\n  var padding = 20;\n\n  var fencedValue = Math.min(Math.max(minValue + padding, position[axis]), maxValue - padding);\n\n  return axisSet(segmentStart, axis, fencedValue);\n}\n\nfunction flipAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\n\n/**\n * Get the docking point on the given element.\n *\n * Compute a reasonable docking, if non exists.\n *\n * @param  {Point} point\n * @param  {djs.model.Shape} referenceElement\n * @param  {string} moveAxis (x|y)\n *\n * @return {Point}\n */\nfunction getDocking(point, referenceElement, moveAxis) {\n\n  var referenceMid,\n      inverseAxis;\n\n  if (point.original) {\n    return point.original;\n  } else {\n    referenceMid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(referenceElement);\n    inverseAxis = flipAxis(moveAxis);\n\n    return axisSet(point, inverseAxis, referenceMid[inverseAxis]);\n  }\n}\n\n/**\n * A component that implements moving of bendpoints\n */\nfunction ConnectionSegmentMove(\n    injector, eventBus, canvas,\n    dragging, graphicsFactory, modeling) {\n\n  // optional connection docking integration\n  var connectionDocking = injector.get('connectionDocking', false);\n\n\n  // API\n\n  this.start = function(event, connection, idx) {\n\n    var context,\n        gfx = canvas.getGraphics(connection),\n        segmentStartIndex = idx - 1,\n        segmentEndIndex = idx,\n        waypoints = connection.waypoints,\n        segmentStart = waypoints[segmentStartIndex],\n        segmentEnd = waypoints[segmentEndIndex],\n        intersection = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.getConnectionIntersection)(canvas, waypoints, event),\n        direction, axis, dragPosition;\n\n    direction = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(segmentStart, segmentEnd);\n\n    // do not move diagonal connection\n    if (!direction) {\n      return;\n    }\n\n    // the axis where we are going to move things\n    axis = direction === 'v' ? 'x' : 'y';\n\n    if (segmentStartIndex === 0) {\n      segmentStart = getDocking(segmentStart, connection.source, axis);\n    }\n\n    if (segmentEndIndex === waypoints.length - 1) {\n      segmentEnd = getDocking(segmentEnd, connection.target, axis);\n    }\n\n    if (intersection) {\n      dragPosition = intersection.point;\n    } else {\n\n      // set to segment center as default\n      dragPosition = {\n        x: (segmentStart.x + segmentEnd.x) / 2,\n        y: (segmentStart.y + segmentEnd.y) / 2\n      };\n    }\n\n    context = {\n      connection: connection,\n      segmentStartIndex: segmentStartIndex,\n      segmentEndIndex: segmentEndIndex,\n      segmentStart: segmentStart,\n      segmentEnd: segmentEnd,\n      axis: axis,\n      dragPosition: dragPosition\n    };\n\n    dragging.init(event, dragPosition, 'connectionSegment.move', {\n      cursor: axis === 'x' ? 'resize-ew' : 'resize-ns',\n      data: {\n        connection: connection,\n        connectionGfx: gfx,\n        context: context\n      }\n    });\n  };\n\n  /**\n   * Crop connection if connection cropping is provided.\n   *\n   * @param {Connection} connection\n   * @param {Array<Point>} newWaypoints\n   *\n   * @return {Array<Point>} cropped connection waypoints\n   */\n  function cropConnection(connection, newWaypoints) {\n\n    // crop connection, if docking service is provided only\n    if (!connectionDocking) {\n      return newWaypoints;\n    }\n\n    var oldWaypoints = connection.waypoints,\n        croppedWaypoints;\n\n    // temporary set new waypoints\n    connection.waypoints = newWaypoints;\n\n    croppedWaypoints = connectionDocking.getCroppedWaypoints(connection);\n\n    // restore old waypoints\n    connection.waypoints = oldWaypoints;\n\n    return croppedWaypoints;\n  }\n\n  // DRAGGING IMPLEMENTATION\n\n  function redrawConnection(data) {\n    graphicsFactory.update('connection', data.connection, data.connectionGfx);\n  }\n\n  function updateDragger(context, segmentOffset, event) {\n\n    var newWaypoints = context.newWaypoints,\n        segmentStartIndex = context.segmentStartIndex + segmentOffset,\n        segmentStart = newWaypoints[segmentStartIndex],\n        segmentEndIndex = context.segmentEndIndex + segmentOffset,\n        segmentEnd = newWaypoints[segmentEndIndex],\n        axis = flipAxis(context.axis);\n\n    // make sure the dragger does not move\n    // outside the connection\n    var draggerPosition = axisFenced(event, segmentStart, segmentEnd, axis);\n\n    // update dragger\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(context.draggerGfx, draggerPosition.x, draggerPosition.y);\n  }\n\n  /**\n   * Filter waypoints for redundant ones (i.e. on the same axis).\n   * Returns the filtered waypoints and the offset related to the segment move.\n   *\n   * @param {Array<Point>} waypoints\n   * @param {Integer} segmentStartIndex of moved segment start\n   *\n   * @return {Object} { filteredWaypoints, segmentOffset }\n   */\n  function filterRedundantWaypoints(waypoints, segmentStartIndex) {\n\n    var segmentOffset = 0;\n\n    var filteredWaypoints = waypoints.filter(function(r, idx) {\n      if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(waypoints[idx - 1], waypoints[idx + 1], r)) {\n\n        // remove point and increment offset\n        segmentOffset = idx <= segmentStartIndex ? segmentOffset - 1 : segmentOffset;\n        return false;\n      }\n\n      // dont remove point\n      return true;\n    });\n\n    return {\n      waypoints: filteredWaypoints,\n      segmentOffset: segmentOffset\n    };\n  }\n\n  eventBus.on('connectionSegment.move.start', function(event) {\n\n    var context = event.context,\n        connection = event.connection,\n        layer = canvas.getLayer('overlays');\n\n    context.originalWaypoints = connection.waypoints.slice();\n\n    // add dragger gfx\n    context.draggerGfx = (0,_BendpointUtil__WEBPACK_IMPORTED_MODULE_1__.addSegmentDragger)(layer, context.segmentStart, context.segmentEnd);\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.classes)(context.draggerGfx).add('djs-dragging');\n\n    canvas.addMarker(connection, MARKER_CONNECT_UPDATING);\n  });\n\n  eventBus.on('connectionSegment.move.move', function(event) {\n\n    var context = event.context,\n        connection = context.connection,\n        segmentStartIndex = context.segmentStartIndex,\n        segmentEndIndex = context.segmentEndIndex,\n        segmentStart = context.segmentStart,\n        segmentEnd = context.segmentEnd,\n        axis = context.axis;\n\n    var newWaypoints = context.originalWaypoints.slice(),\n        newSegmentStart = axisAdd(segmentStart, axis, event['d' + axis]),\n        newSegmentEnd = axisAdd(segmentEnd, axis, event['d' + axis]);\n\n    // original waypoint count and added / removed\n    // from start waypoint delta. We use the later\n    // to retrieve the updated segmentStartIndex / segmentEndIndex\n    var waypointCount = newWaypoints.length,\n        segmentOffset = 0;\n\n    // move segment start / end by axis delta\n    newWaypoints[segmentStartIndex] = newSegmentStart;\n    newWaypoints[segmentEndIndex] = newSegmentEnd;\n\n    var sourceToSegmentOrientation,\n        targetToSegmentOrientation;\n\n    // handle first segment\n    if (segmentStartIndex < 2) {\n      sourceToSegmentOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(connection.source, newSegmentStart);\n\n      // first bendpoint, remove first segment if intersecting\n      if (segmentStartIndex === 1) {\n\n        if (sourceToSegmentOrientation === 'intersect') {\n          newWaypoints.shift();\n          newWaypoints[0] = newSegmentStart;\n          segmentOffset--;\n        }\n      }\n\n      // docking point, add segment if not intersecting anymore\n      else {\n        if (sourceToSegmentOrientation !== 'intersect') {\n          newWaypoints.unshift(segmentStart);\n          segmentOffset++;\n        }\n      }\n    }\n\n    // handle last segment\n    if (segmentEndIndex > waypointCount - 3) {\n      targetToSegmentOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(connection.target, newSegmentEnd);\n\n      // last bendpoint, remove last segment if intersecting\n      if (segmentEndIndex === waypointCount - 2) {\n\n        if (targetToSegmentOrientation === 'intersect') {\n          newWaypoints.pop();\n          newWaypoints[newWaypoints.length - 1] = newSegmentEnd;\n        }\n      }\n\n      // last bendpoint, remove last segment if intersecting\n      else {\n        if (targetToSegmentOrientation !== 'intersect') {\n          newWaypoints.push(segmentEnd);\n        }\n      }\n    }\n\n    // update connection waypoints\n    context.newWaypoints = connection.waypoints = cropConnection(connection, newWaypoints);\n\n    // update dragger position\n    updateDragger(context, segmentOffset, event);\n\n    // save segmentOffset in context\n    context.newSegmentStartIndex = segmentStartIndex + segmentOffset;\n\n    // redraw connection\n    redrawConnection(event);\n  });\n\n  eventBus.on('connectionSegment.move.hover', function(event) {\n\n    event.context.hover = event.hover;\n    canvas.addMarker(event.hover, MARKER_CONNECT_HOVER);\n  });\n\n  eventBus.on([\n    'connectionSegment.move.out',\n    'connectionSegment.move.cleanup'\n  ], function(event) {\n\n    // remove connect marker\n    // if it was added\n    var hover = event.context.hover;\n\n    if (hover) {\n      canvas.removeMarker(hover, MARKER_CONNECT_HOVER);\n    }\n  });\n\n  eventBus.on('connectionSegment.move.cleanup', function(event) {\n\n    var context = event.context,\n        connection = context.connection;\n\n    // remove dragger gfx\n    if (context.draggerGfx) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_4__.remove)(context.draggerGfx);\n    }\n\n    canvas.removeMarker(connection, MARKER_CONNECT_UPDATING);\n  });\n\n  eventBus.on([\n    'connectionSegment.move.cancel',\n    'connectionSegment.move.end'\n  ], function(event) {\n    var context = event.context,\n        connection = context.connection;\n\n    connection.waypoints = context.originalWaypoints;\n\n    redrawConnection(event);\n  });\n\n  eventBus.on('connectionSegment.move.end', function(event) {\n\n    var context = event.context,\n        connection = context.connection,\n        newWaypoints = context.newWaypoints,\n        newSegmentStartIndex = context.newSegmentStartIndex;\n\n    // ensure we have actual pixel values bendpoint\n    // coordinates (important when zoom level was > 1 during move)\n    newWaypoints = newWaypoints.map(function(p) {\n      return {\n        original: p.original,\n        x: Math.round(p.x),\n        y: Math.round(p.y)\n      };\n    });\n\n    // apply filter redunant waypoints\n    var filtered = filterRedundantWaypoints(newWaypoints, newSegmentStartIndex);\n\n    // get filtered waypoints\n    var filteredWaypoints = filtered.waypoints,\n        croppedWaypoints = cropConnection(connection, filteredWaypoints),\n        segmentOffset = filtered.segmentOffset;\n\n    var hints = {\n      segmentMove: {\n        segmentStartIndex: context.segmentStartIndex,\n        newSegmentStartIndex: newSegmentStartIndex + segmentOffset\n      }\n    };\n\n    modeling.updateWaypoints(connection, croppedWaypoints, hints);\n  });\n}\n\nConnectionSegmentMove.$inject = [\n  'injector',\n  'eventBus',\n  'canvas',\n  'dragging',\n  'graphicsFactory',\n  'modeling'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/bendpoints/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/bendpoints/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _Bendpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Bendpoints */ \"./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js\");\n/* harmony import */ var _BendpointMove__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./BendpointMove */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js\");\n/* harmony import */ var _BendpointMovePreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./BendpointMovePreview */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js\");\n/* harmony import */ var _ConnectionSegmentMove__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConnectionSegmentMove */ \"./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js\");\n/* harmony import */ var _BendpointSnapping__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BendpointSnapping */ \"./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [ 'bendpoints', 'bendpointSnapping', 'bendpointMovePreview' ],\n  bendpoints: [ 'type', _Bendpoints__WEBPACK_IMPORTED_MODULE_2__.default ],\n  bendpointMove: [ 'type', _BendpointMove__WEBPACK_IMPORTED_MODULE_3__.default ],\n  bendpointMovePreview: [ 'type', _BendpointMovePreview__WEBPACK_IMPORTED_MODULE_4__.default ],\n  connectionSegmentMove: [ 'type', _ConnectionSegmentMove__WEBPACK_IMPORTED_MODULE_5__.default ],\n  bendpointSnapping: [ 'type', _BendpointSnapping__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/bendpoints/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ChangeSupport)\n/* harmony export */ });\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n/**\n * Adds change support to the diagram, including\n *\n * <ul>\n *   <li>redrawing shapes and connections on change</li>\n * </ul>\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n * @param {GraphicsFactory} graphicsFactory\n */\nfunction ChangeSupport(\n    eventBus, canvas, elementRegistry,\n    graphicsFactory) {\n\n\n  // redraw shapes / connections on change\n\n  eventBus.on('element.changed', function(event) {\n\n    var element = event.element;\n\n    // element might have been deleted and replaced by new element with same ID\n    // thus check for parent of element except for root element\n    if (element.parent || element === canvas.getRootElement()) {\n      event.gfx = elementRegistry.getGraphics(element);\n    }\n\n    // shape + gfx may have been deleted\n    if (!event.gfx) {\n      return;\n    }\n\n    eventBus.fire((0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.getType)(element) + '.changed', event);\n  });\n\n  eventBus.on('elements.changed', function(event) {\n\n    var elements = event.elements;\n\n    elements.forEach(function(e) {\n      eventBus.fire('element.changed', { element: e });\n    });\n\n    graphicsFactory.updateContainments(elements);\n  });\n\n  eventBus.on('shape.changed', function(event) {\n    graphicsFactory.update('shape', event.element, event.gfx);\n  });\n\n  eventBus.on('connection.changed', function(event) {\n    graphicsFactory.update('connection', event.element, event.gfx);\n  });\n}\n\nChangeSupport.$inject = [\n  'eventBus',\n  'canvas',\n  'elementRegistry',\n  'graphicsFactory'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/change-support/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/change-support/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ChangeSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChangeSupport */ \"./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'changeSupport'],\n  changeSupport: [ 'type', _ChangeSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/change-support/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/clipboard/Clipboard.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/clipboard/Clipboard.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Clipboard)\n/* harmony export */ });\n/**\n * A clip board stub\n */\nfunction Clipboard() {}\n\n\nClipboard.prototype.get = function() {\n  return this._data;\n};\n\nClipboard.prototype.set = function(data) {\n  this._data = data;\n};\n\nClipboard.prototype.clear = function() {\n  var data = this._data;\n\n  delete this._data;\n\n  return data;\n};\n\nClipboard.prototype.isEmpty = function() {\n  return !this._data;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/clipboard/Clipboard.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/clipboard/index.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/clipboard/index.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Clipboard */ \"./node_modules/diagram-js/lib/features/clipboard/Clipboard.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  clipboard: [ 'type', _Clipboard__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/clipboard/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/connect/Connect.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/connect/Connect.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Connect),\n/* harmony export */   \"isReverse\": () => (/* binding */ isReverse)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction Connect(eventBus, dragging, modeling, rules) {\n\n  // rules\n\n  function canConnect(source, target) {\n    return rules.allowed('connection.create', {\n      source: source,\n      target: target\n    });\n  }\n\n  function canConnectReverse(source, target) {\n    return canConnect(target, source);\n  }\n\n\n  // event handlers\n\n  eventBus.on('connect.hover', function(event) {\n    var context = event.context,\n        start = context.start,\n        hover = event.hover,\n        canExecute;\n\n    // cache hover state\n    context.hover = hover;\n\n    canExecute = context.canExecute = canConnect(start, hover);\n\n    // ignore hover\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNil)(canExecute)) {\n      return;\n    }\n\n    if (canExecute !== false) {\n      context.source = start;\n      context.target = hover;\n\n      return;\n    }\n\n    canExecute = context.canExecute = canConnectReverse(start, hover);\n\n    // ignore hover\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNil)(canExecute)) {\n      return;\n    }\n\n    if (canExecute !== false) {\n      context.source = hover;\n      context.target = start;\n    }\n  });\n\n  eventBus.on([ 'connect.out', 'connect.cleanup' ], function(event) {\n    var context = event.context;\n\n    context.hover = null;\n    context.source = null;\n    context.target = null;\n\n    context.canExecute = false;\n  });\n\n  eventBus.on('connect.end', function(event) {\n    var context = event.context,\n        canExecute = context.canExecute,\n        connectionStart = context.connectionStart,\n        connectionEnd = {\n          x: event.x,\n          y: event.y\n        },\n        source = context.source,\n        target = context.target;\n\n    if (!canExecute) {\n      return false;\n    }\n\n    var attrs = null,\n        hints = {\n          connectionStart: isReverse(context) ? connectionEnd : connectionStart,\n          connectionEnd: isReverse(context) ? connectionStart : connectionEnd\n        };\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(canExecute)) {\n      attrs = canExecute;\n    }\n\n    modeling.connect(source, target, attrs, hints);\n  });\n\n\n  // API\n\n  /**\n   * Start connect operation.\n   *\n   * @param {DOMEvent} event\n   * @param {djs.model.Base} start\n   * @param {Point} [connectionStart]\n   * @param {boolean} [autoActivate=false]\n   */\n  this.start = function(event, start, connectionStart, autoActivate) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(connectionStart)) {\n      autoActivate = connectionStart;\n      connectionStart = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(start);\n    }\n\n    dragging.init(event, 'connect', {\n      autoActivate: autoActivate,\n      data: {\n        shape: start,\n        context: {\n          start: start,\n          connectionStart: connectionStart\n        }\n      }\n    });\n  };\n}\n\nConnect.$inject = [\n  'eventBus',\n  'dragging',\n  'modeling',\n  'rules'\n];\n\n\n// helpers //////////\n\nfunction isReverse(context) {\n  var hover = context.hover,\n      source = context.source,\n      target = context.target;\n\n  return hover && source && hover === source && source !== target;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/Connect.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/connect/ConnectPreview.js":
  /*!************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/connect/ConnectPreview.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ConnectPreview)\n/* harmony export */ });\n/* harmony import */ var _Connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Connect */ \"./node_modules/diagram-js/lib/features/connect/Connect.js\");\n\n\nvar HIGH_PRIORITY = 1100,\n    LOW_PRIORITY = 900;\n\nvar MARKER_OK = 'connect-ok',\n    MARKER_NOT_OK = 'connect-not-ok';\n\n/**\n * Shows connection preview during connect.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction ConnectPreview(injector, eventBus, canvas) {\n  var connectionPreview = injector.get('connectionPreview', false);\n\n  connectionPreview && eventBus.on('connect.move', function(event) {\n    var context = event.context,\n        canConnect = context.canExecute,\n        hover = context.hover,\n        source = context.source,\n        start = context.start,\n        startPosition = context.startPosition,\n        target = context.target,\n        connectionStart = context.connectionStart || startPosition,\n        connectionEnd = context.connectionEnd || {\n          x: event.x,\n          y: event.y\n        },\n        previewStart = connectionStart,\n        previewEnd = connectionEnd;\n\n    if ((0,_Connect__WEBPACK_IMPORTED_MODULE_0__.isReverse)(context)) {\n      previewStart = connectionEnd;\n      previewEnd = connectionStart;\n    }\n\n    connectionPreview.drawPreview(context, canConnect, {\n      source: source || start,\n      target: target || hover,\n      connectionStart: previewStart,\n      connectionEnd: previewEnd\n    });\n  });\n\n  eventBus.on('connect.hover', LOW_PRIORITY, function(event) {\n    var context = event.context,\n        hover = event.hover,\n        canExecute = context.canExecute;\n\n    // ignore hover\n    if (canExecute === null) {\n      return;\n    }\n\n    canvas.addMarker(hover, canExecute ? MARKER_OK : MARKER_NOT_OK);\n  });\n\n  eventBus.on([\n    'connect.out',\n    'connect.cleanup'\n  ], HIGH_PRIORITY, function(event) {\n    var hover = event.hover;\n\n    if (hover) {\n      canvas.removeMarker(hover, MARKER_OK);\n      canvas.removeMarker(hover, MARKER_NOT_OK);\n    }\n  });\n\n  connectionPreview && eventBus.on('connect.cleanup', function(event) {\n    connectionPreview.cleanUp(event.context);\n  });\n}\n\nConnectPreview.$inject = [\n  'injector',\n  'eventBus',\n  'canvas'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/ConnectPreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/connect/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/connect/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _Connect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Connect */ \"./node_modules/diagram-js/lib/features/connect/Connect.js\");\n/* harmony import */ var _ConnectPreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ConnectPreview */ \"./node_modules/diagram-js/lib/features/connect/ConnectPreview.js\");\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _selection__WEBPACK_IMPORTED_MODULE_0__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n    _dragging__WEBPACK_IMPORTED_MODULE_2__.default\n  ],\n  __init__: [\n    'connectPreview'\n  ],\n  connect: [ 'type', _Connect__WEBPACK_IMPORTED_MODULE_3__.default ],\n  connectPreview: [ 'type', _ConnectPreview__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connect/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ConnectionPreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\n\nvar MARKER_CONNECTION_PREVIEW = 'djs-connection-preview';\n\n/**\n * Draws connection preview. Optionally, this can use layouter and connection docking to draw\n * better looking previews.\n *\n * @param {didi.Injector} injector\n * @param {Canvas} canvas\n * @param {GraphicsFactory} graphicsFactory\n * @param {ElementFactory} elementFactory\n */\nfunction ConnectionPreview(\n    injector,\n    canvas,\n    graphicsFactory,\n    elementFactory\n) {\n  this._canvas = canvas;\n  this._graphicsFactory = graphicsFactory;\n  this._elementFactory = elementFactory;\n\n  // optional components\n  this._connectionDocking = injector.get('connectionDocking', false);\n  this._layouter = injector.get('layouter', false);\n}\n\nConnectionPreview.$inject = [\n  'injector',\n  'canvas',\n  'graphicsFactory',\n  'elementFactory'\n];\n\n/**\n * Draw connection preview.\n *\n * Provide at least one of <source, connectionStart> and <target, connectionEnd> to create a preview.\n * In the clean up stage, call `connectionPreview#cleanUp` with the context to remove preview.\n *\n * @param {Object} context\n * @param {Object|boolean} canConnect\n * @param {Object} hints\n * @param {djs.model.shape} [hints.source] source element\n * @param {djs.model.shape} [hints.target] target element\n * @param {Point} [hints.connectionStart] connection preview start\n * @param {Point} [hints.connectionEnd] connection preview end\n * @param {Array<Point>} [hints.waypoints] provided waypoints for preview\n * @param {boolean} [hints.noLayout] true if preview should not be laid out\n * @param {boolean} [hints.noCropping] true if preview should not be cropped\n * @param {boolean} [hints.noNoop] true if simple connection should not be drawn\n */\nConnectionPreview.prototype.drawPreview = function(context, canConnect, hints) {\n\n  hints = hints || {};\n\n  var connectionPreviewGfx = context.connectionPreviewGfx,\n      getConnection = context.getConnection,\n      source = hints.source,\n      target = hints.target,\n      waypoints = hints.waypoints,\n      connectionStart = hints.connectionStart,\n      connectionEnd = hints.connectionEnd,\n      noLayout = hints.noLayout,\n      noCropping = hints.noCropping,\n      noNoop = hints.noNoop,\n      connection;\n\n  var self = this;\n\n  if (!connectionPreviewGfx) {\n    connectionPreviewGfx = context.connectionPreviewGfx = this.createConnectionPreviewGfx();\n  }\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.clear)(connectionPreviewGfx);\n\n  if (!getConnection) {\n    getConnection = context.getConnection = cacheReturnValues(function(canConnect, source, target) {\n      return self.getConnection(canConnect, source, target);\n    });\n  }\n\n  if (canConnect) {\n    connection = getConnection(canConnect, source, target);\n  }\n\n  if (!connection) {\n    !noNoop && this.drawNoopPreview(connectionPreviewGfx, hints);\n    return;\n  }\n\n  connection.waypoints = waypoints || [];\n\n  // optional layout\n  if (this._layouter && !noLayout) {\n    connection.waypoints = this._layouter.layoutConnection(connection, {\n      source: source,\n      target: target,\n      connectionStart: connectionStart,\n      connectionEnd: connectionEnd,\n      waypoints: hints.waypoints || connection.waypoints\n    });\n  }\n\n  // fallback if no waypoints were provided nor created with layouter\n  if (!connection.waypoints || !connection.waypoints.length) {\n    connection.waypoints = [\n      source ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source) : connectionStart,\n      target ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target) : connectionEnd\n    ];\n  }\n\n  // optional cropping\n  if (this._connectionDocking && (source || target) && !noCropping) {\n    connection.waypoints = this._connectionDocking.getCroppedWaypoints(connection, source, target);\n  }\n\n  this._graphicsFactory.drawConnection(connectionPreviewGfx, connection);\n};\n\n/**\n * Draw simple connection between source and target or provided points.\n *\n * @param {SVGElement} connectionPreviewGfx container for the connection\n * @param {Object} hints\n * @param {djs.model.shape} [hints.source] source element\n * @param {djs.model.shape} [hints.target] target element\n * @param {Point} [hints.connectionStart] required if source is not provided\n * @param {Point} [hints.connectionEnd] required if target is not provided\n */\nConnectionPreview.prototype.drawNoopPreview = function(connectionPreviewGfx, hints) {\n  var source = hints.source,\n      target = hints.target,\n      start = hints.connectionStart || (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(source),\n      end = hints.connectionEnd || (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(target);\n\n  var waypoints = this.cropWaypoints(start, end, source, target);\n\n  var connection = this.createNoopConnection(waypoints[0], waypoints[1]);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(connectionPreviewGfx, connection);\n};\n\n/**\n * Return cropped waypoints.\n *\n * @param {Point} start\n * @param {Point} end\n * @param {djs.model.shape} source\n * @param {djs.model.shape} target\n *\n * @returns {Array}\n */\nConnectionPreview.prototype.cropWaypoints = function(start, end, source, target) {\n  var graphicsFactory = this._graphicsFactory,\n      sourcePath = source && graphicsFactory.getShapePath(source),\n      targetPath = target && graphicsFactory.getShapePath(target),\n      connectionPath = graphicsFactory.getConnectionPath({ waypoints: [ start, end ] });\n\n  start = (source && (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(sourcePath, connectionPath, true)) || start;\n  end = (target && (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(targetPath, connectionPath, false)) || end;\n\n  return [ start, end ];\n};\n\n/**\n * Remove connection preview container if it exists.\n *\n * @param {Object} [context]\n * @param {SVGElement} [context.connectionPreviewGfx] preview container\n */\nConnectionPreview.prototype.cleanUp = function(context) {\n  if (context && context.connectionPreviewGfx) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.connectionPreviewGfx);\n  }\n};\n\n/**\n * Get connection that connects source and target.\n *\n * @param {Object|boolean} canConnect\n *\n * @returns {djs.model.connection}\n */\nConnectionPreview.prototype.getConnection = function(canConnect) {\n  var attrs = ensureConnectionAttrs(canConnect);\n\n  return this._elementFactory.createConnection(attrs);\n};\n\n\n/**\n * Add and return preview graphics.\n *\n * @returns {SVGElement}\n */\nConnectionPreview.prototype.createConnectionPreviewGfx = function() {\n  var gfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, {\n    pointerEvents: 'none'\n  });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(gfx).add(MARKER_CONNECTION_PREVIEW);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(this._canvas.getDefaultLayer(), gfx);\n\n  return gfx;\n};\n\n/**\n * Create and return simple connection.\n *\n * @param {Point} start\n * @param {Point} end\n *\n * @returns {SVGElement}\n */\nConnectionPreview.prototype.createNoopConnection = function(start, end) {\n  var connection = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('polyline');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(connection, {\n    'stroke': '#333',\n    'strokeDasharray': [ 1 ],\n    'strokeWidth': 2,\n    'pointer-events': 'none'\n  });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(connection, { 'points': [ start.x, start.y, end.x, end.y ] });\n\n  return connection;\n};\n\n// helpers //////////\n\n/**\n * Returns function that returns cached return values referenced by stringified first argument.\n *\n * @param {Function} fn\n *\n * @return {Function}\n */\nfunction cacheReturnValues(fn) {\n  var returnValues = {};\n\n  /**\n   * Return cached return value referenced by stringified first argument.\n   *\n   * @returns {*}\n   */\n  return function(firstArgument) {\n    var key = JSON.stringify(firstArgument);\n\n    var returnValue = returnValues[key];\n\n    if (!returnValue) {\n      returnValue = returnValues[key] = fn.apply(null, arguments);\n    }\n\n    return returnValue;\n  };\n}\n\n/**\n * Ensure connection attributes is object.\n *\n * @param {Object|boolean} canConnect\n *\n * @returns {Object}\n */\nfunction ensureConnectionAttrs(canConnect) {\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isObject)(canConnect)) {\n    return canConnect;\n  } else {\n    return {};\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/connection-preview/index.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/connection-preview/index.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ConnectionPreview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConnectionPreview */ \"./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'connectionPreview' ],\n  connectionPreview: [ 'type', _ConnectionPreview__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/connection-preview/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/context-pad/ContextPad.js":
  /*!************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/context-pad/ContextPad.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ContextPad)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar entrySelector = '.entry';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A context pad that displays element specific, contextual actions next\n * to a diagram element.\n *\n * @param {Object} config\n * @param {boolean|Object} [config.scale={ min: 1.0, max: 1.5 }]\n * @param {number} [config.scale.min]\n * @param {number} [config.scale.max]\n * @param {EventBus} eventBus\n * @param {Overlays} overlays\n */\nfunction ContextPad(config, eventBus, overlays) {\n\n  this._eventBus = eventBus;\n  this._overlays = overlays;\n\n  var scale = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(config && config.scale) ? config.scale : {\n    min: 1,\n    max: 1.5\n  };\n\n  this._overlaysConfig = {\n    position: {\n      right: -9,\n      top: -6\n    },\n    scale: scale\n  };\n\n  this._current = null;\n\n  this._init();\n}\n\nContextPad.$inject = [\n  'config.contextPad',\n  'eventBus',\n  'overlays'\n];\n\n\n/**\n * Registers events needed for interaction with other components\n */\nContextPad.prototype._init = function() {\n\n  var eventBus = this._eventBus;\n\n  var self = this;\n\n  eventBus.on('selection.changed', function(e) {\n\n    var selection = e.newSelection;\n\n    if (selection.length === 1) {\n      self.open(selection[0]);\n    } else {\n      self.close();\n    }\n  });\n\n  eventBus.on('elements.delete', function(event) {\n    var elements = event.elements;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(e) {\n      if (self.isOpen(e)) {\n        self.close();\n      }\n    });\n  });\n\n  eventBus.on('element.changed', function(event) {\n    var element = event.element,\n        current = self._current;\n\n    // force reopen if element for which we are currently opened changed\n    if (current && current.element === element) {\n      self.open(element, true);\n    }\n  });\n};\n\n\n/**\n * Register a provider with the context pad\n *\n * @param  {number} [priority=1000]\n * @param  {ContextPadProvider} provider\n *\n * @example\n * const contextPadProvider = {\n  *   getContextPadEntries: function(element) {\n  *     return function(entries) {\n  *       return {\n  *         ...entries,\n  *         'entry-1': {\n  *           label: 'My Entry',\n  *           action: function() { alert(\"I have been clicked!\"); }\n  *         }\n  *       };\n  *     }\n  *   }\n  * };\n  *\n * contextPad.registerProvider(800, contextPadProvider);\n */\nContextPad.prototype.registerProvider = function(priority, provider) {\n  if (!provider) {\n    provider = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  this._eventBus.on('contextPad.getProviders', priority, function(event) {\n    event.providers.push(provider);\n  });\n};\n\n\n/**\n * Returns the context pad entries for a given element\n *\n * @param {djs.element.Base} element\n *\n * @return {Array<ContextPadEntryDescriptor>} list of entries\n */\nContextPad.prototype.getEntries = function(element) {\n  var providers = this._getProviders();\n\n  var entries = {};\n\n  // loop through all providers and their entries.\n  // group entries by id so that overriding an entry is possible\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n    var entriesOrUpdater = provider.getContextPadEntries(element);\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n      entries = entriesOrUpdater(entries);\n    } else {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n        entries[id] = entry;\n      });\n    }\n  });\n\n  return entries;\n};\n\n\n/**\n * Trigger an action available on the opened context pad\n *\n * @param  {string} action\n * @param  {Event} event\n * @param  {boolean} [autoActivate=false]\n */\nContextPad.prototype.trigger = function(action, event, autoActivate) {\n\n  var element = this._current.element,\n      entries = this._current.entries,\n      entry,\n      handler,\n      originalEvent,\n      button = event.delegateTarget || event.target;\n\n  if (!button) {\n    return event.preventDefault();\n  }\n\n  entry = entries[(0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(button, 'data-action')];\n  handler = entry.action;\n\n  originalEvent = event.originalEvent || event;\n\n  // simple action (via callback function)\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(handler)) {\n    if (action === 'click') {\n      return handler(originalEvent, element, autoActivate);\n    }\n  } else {\n    if (handler[action]) {\n      return handler[action](originalEvent, element, autoActivate);\n    }\n  }\n\n  // silence other actions\n  event.preventDefault();\n};\n\n\n/**\n * Open the context pad for the given element\n *\n * @param {djs.model.Base} element\n * @param {boolean} force if true, force reopening the context pad\n */\nContextPad.prototype.open = function(element, force) {\n  if (!force && this.isOpen(element)) {\n    return;\n  }\n\n  this.close();\n  this._updateAndOpen(element);\n};\n\nContextPad.prototype._getProviders = function() {\n\n  var event = this._eventBus.createEvent({\n    type: 'contextPad.getProviders',\n    providers: []\n  });\n\n  this._eventBus.fire(event);\n\n  return event.providers;\n};\n\nContextPad.prototype._updateAndOpen = function(element) {\n\n  var entries = this.getEntries(element),\n      pad = this.getPad(element),\n      html = pad.html;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entries, function(entry, id) {\n    var grouping = entry.group || 'default',\n        control = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(entry.html || '<div class=\"entry\" draggable=\"true\"></div>'),\n        container;\n\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(control, 'data-action', id);\n\n    container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.query)('[data-group=' + grouping + ']', html);\n    if (!container) {\n      container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div class=\"group\" data-group=\"' + grouping + '\"></div>');\n      html.appendChild(container);\n    }\n\n    container.appendChild(control);\n\n    if (entry.className) {\n      addClasses(control, entry.className);\n    }\n\n    if (entry.title) {\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(control, 'title', entry.title);\n    }\n\n    if (entry.imageUrl) {\n      control.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<img src=\"' + entry.imageUrl + '\">'));\n    }\n  });\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(html).add('open');\n\n  this._current = {\n    element: element,\n    pad: pad,\n    entries: entries\n  };\n\n  this._eventBus.fire('contextPad.open', { current: this._current });\n};\n\n\nContextPad.prototype.getPad = function(element) {\n  if (this.isOpen()) {\n    return this._current.pad;\n  }\n\n  var self = this;\n\n  var overlays = this._overlays;\n\n  var html = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div class=\"djs-context-pad\"></div>');\n\n  var overlaysConfig = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n    html: html\n  }, this._overlaysConfig);\n\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(html, entrySelector, 'click', function(event) {\n    self.trigger('click', event);\n  });\n\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(html, entrySelector, 'dragstart', function(event) {\n    self.trigger('dragstart', event);\n  });\n\n  // stop propagation of mouse events\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.event.bind(html, 'mousedown', function(event) {\n    event.stopPropagation();\n  });\n\n  this._overlayId = overlays.add(element, 'context-pad', overlaysConfig);\n\n  var pad = overlays.get(this._overlayId);\n\n  this._eventBus.fire('contextPad.create', { element: element, pad: pad });\n\n  return pad;\n};\n\n\n/**\n * Close the context pad\n */\nContextPad.prototype.close = function() {\n  if (!this.isOpen()) {\n    return;\n  }\n\n  this._overlays.remove(this._overlayId);\n\n  this._overlayId = null;\n\n  this._eventBus.fire('contextPad.close', { current: this._current });\n\n  this._current = null;\n};\n\n/**\n * Check if pad is open. If element is given, will check\n * if pad is opened with given element.\n *\n * @param {Element} element\n * @return {boolean}\n */\nContextPad.prototype.isOpen = function(element) {\n  return !!this._current && (!element ? true : this._current.element === element);\n};\n\n\n\n\n// helpers //////////////////////\n\nfunction addClasses(element, classNames) {\n\n  var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(element);\n\n  var actualClassNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(classNames) ? classNames : classNames.split(/\\s+/g);\n  actualClassNames.forEach(function(cls) {\n    classes.add(cls);\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/context-pad/ContextPad.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/context-pad/index.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/context-pad/index.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _overlays__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _ContextPad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ContextPad */ \"./node_modules/diagram-js/lib/features/context-pad/ContextPad.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n    _overlays__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  contextPad: [ 'type', _ContextPad__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/context-pad/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CopyPaste)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\n\n/**\n * @typedef {Function} <copyPaste.canCopyElements> listener\n *\n * @param {Object} context\n * @param {Array<djs.model.Base>} context.elements\n *\n * @returns {Array<djs.model.Base>|boolean} - Return elements to be copied or false to disallow\n * copying.\n */\n\n/**\n * @typedef {Function} <copyPaste.copyElement> listener\n *\n * @param {Object} context\n * @param {Object} context.descriptor\n * @param {djs.model.Base} context.element\n * @param {Array<djs.model.Base>} context.elements\n */\n\n/**\n * @typedef {Function} <copyPaste.elementsCopied> listener\n *\n * @param {Object} context\n * @param {Object} context.elements\n * @param {Object} context.tree\n */\n\n/**\n * @typedef {Function} <copyPaste.pasteElement> listener\n *\n * @param {Object} context\n * @param {Object} context.cache - Already created elements.\n * @param {Object} context.descriptor\n */\n\n/**\n * @typedef {Function} <copyPaste.pasteElements> listener\n *\n * @param {Object} context\n * @param {Object} context.hints - Add hints before pasting.\n */\n\n/**\n * Copy and paste elements.\n *\n * @param {Canvas} canvas\n * @param {Create} create\n * @param {Clipboard} clipboard\n * @param {ElementFactory} elementFactory\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Mouse} mouse\n * @param {Rules} rules\n */\nfunction CopyPaste(\n    canvas,\n    create,\n    clipboard,\n    elementFactory,\n    eventBus,\n    modeling,\n    mouse,\n    rules\n) {\n\n  this._canvas = canvas;\n  this._create = create;\n  this._clipboard = clipboard;\n  this._elementFactory = elementFactory;\n  this._eventBus = eventBus;\n  this._modeling = modeling;\n  this._mouse = mouse;\n  this._rules = rules;\n\n  eventBus.on('copyPaste.copyElement', function(context) {\n    var descriptor = context.descriptor,\n        element = context.element,\n        elements = context.elements;\n\n    // default priority (priority = 1)\n    descriptor.priority = 1;\n\n    descriptor.id = element.id;\n\n    var parentCopied = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(e) {\n      return e === element.parent;\n    });\n\n    // do NOT reference parent if parent wasn't copied\n    if (parentCopied) {\n      descriptor.parent = element.parent.id;\n    }\n\n    // attachers (priority = 2)\n    if (isAttacher(element)) {\n      descriptor.priority = 2;\n\n      descriptor.host = element.host.id;\n    }\n\n    // connections (priority = 3)\n    if (isConnection(element)) {\n      descriptor.priority = 3;\n\n      descriptor.source = element.source.id;\n      descriptor.target = element.target.id;\n\n      descriptor.waypoints = copyWaypoints(element);\n    }\n\n    // labels (priority = 4)\n    if (isLabel(element)) {\n      descriptor.priority = 4;\n\n      descriptor.labelTarget = element.labelTarget.id;\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y', 'width', 'height' ], function(property) {\n      if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element[ property ])) {\n        descriptor[ property ] = element[ property ];\n      }\n    });\n\n    descriptor.hidden = element.hidden;\n    descriptor.collapsed = element.collapsed;\n\n  });\n\n  eventBus.on('copyPaste.pasteElements', function(context) {\n    var hints = context.hints;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(hints, {\n      createElementsBehavior: false\n    });\n  });\n}\n\nCopyPaste.$inject = [\n  'canvas',\n  'create',\n  'clipboard',\n  'elementFactory',\n  'eventBus',\n  'modeling',\n  'mouse',\n  'rules'\n];\n\n\n/**\n * Copy elements.\n *\n * @param {Array<djs.model.Base>} elements\n *\n * @returns {Object}\n */\nCopyPaste.prototype.copy = function(elements) {\n  var allowed,\n      tree;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = elements ? [ elements ] : [];\n  }\n\n  allowed = this._eventBus.fire('copyPaste.canCopyElements', {\n    elements: elements\n  });\n\n  if (allowed === false) {\n    tree = {};\n  } else {\n    tree = this.createTree((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(allowed) ? allowed : elements);\n  }\n\n  // we set an empty tree, selection of elements\n  // to copy was empty.\n  this._clipboard.set(tree);\n\n  this._eventBus.fire('copyPaste.elementsCopied', {\n    elements: elements,\n    tree: tree\n  });\n\n  return tree;\n};\n\n/**\n * Paste elements.\n *\n * @param {Object} [context]\n * @param {djs.model.base} [context.element] - Parent.\n * @param {Point} [context.point] - Position.\n * @param {Object} [context.hints] - Hints.\n */\nCopyPaste.prototype.paste = function(context) {\n  var tree = this._clipboard.get();\n\n  if (this._clipboard.isEmpty()) {\n    return;\n  }\n\n  var hints = context && context.hints || {};\n\n  this._eventBus.fire('copyPaste.pasteElements', {\n    hints: hints\n  });\n\n  var elements = this._createElements(tree);\n\n  // paste directly\n  if (context && context.element && context.point) {\n    return this._paste(elements, context.element, context.point, hints);\n  }\n\n  this._create.start(this._mouse.getLastMoveEvent(), elements, {\n    hints: hints || {}\n  });\n};\n\n/**\n * Paste elements directly.\n *\n * @param {Array<djs.model.Base>} elements\n * @param {djs.model.base} target\n * @param {Point} position\n * @param {Object} [hints]\n */\nCopyPaste.prototype._paste = function(elements, target, position, hints) {\n\n  // make sure each element has x and y\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\n      element.x = 0;\n    }\n\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\n      element.y = 0;\n    }\n  });\n\n  var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\n\n  // center elements around cursor\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    if (isConnection(element)) {\n      element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n        return {\n          x: waypoint.x - bbox.x - bbox.width / 2,\n          y: waypoint.y - bbox.y - bbox.height / 2\n        };\n      });\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\n      x: element.x - bbox.x - bbox.width / 2,\n      y: element.y - bbox.y - bbox.height / 2\n    });\n  });\n\n  return this._modeling.createElements(elements, position, target, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints));\n};\n\n/**\n * Create elements from tree.\n */\nCopyPaste.prototype._createElements = function(tree) {\n  var self = this;\n\n  var eventBus = this._eventBus;\n\n  var cache = {};\n\n  var elements = [];\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(tree, function(branch, depth) {\n\n    depth = parseInt(depth, 10);\n\n    // sort by priority\n    branch = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(branch, 'priority');\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(branch, function(descriptor) {\n\n      // remove priority\n      var attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(descriptor, [ 'priority' ]));\n\n      if (cache[ descriptor.parent ]) {\n        attrs.parent = cache[ descriptor.parent ];\n      } else {\n        delete attrs.parent;\n      }\n\n      eventBus.fire('copyPaste.pasteElement', {\n        cache: cache,\n        descriptor: attrs\n      });\n\n      var element;\n\n      if (isConnection(attrs)) {\n        attrs.source = cache[ descriptor.source ];\n        attrs.target = cache[ descriptor.target ];\n\n        element = cache[ descriptor.id ] = self.createConnection(attrs);\n\n        elements.push(element);\n\n        return;\n      }\n\n      if (isLabel(attrs)) {\n        attrs.labelTarget = cache[ attrs.labelTarget ];\n\n        element = cache[ descriptor.id ] = self.createLabel(attrs);\n\n        elements.push(element);\n\n        return;\n      }\n\n      if (attrs.host) {\n        attrs.host = cache[ attrs.host ];\n      }\n\n      element = cache[ descriptor.id ] = self.createShape(attrs);\n\n      elements.push(element);\n    });\n\n  });\n\n  return elements;\n};\n\nCopyPaste.prototype.createConnection = function(attrs) {\n  var connection = this._elementFactory.createConnection((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n  return connection;\n};\n\nCopyPaste.prototype.createLabel = function(attrs) {\n  var label = this._elementFactory.createLabel((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n  return label;\n};\n\nCopyPaste.prototype.createShape = function(attrs) {\n  var shape = this._elementFactory.createShape((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(attrs, [ 'id' ]));\n\n  return shape;\n};\n\n/**\n * Check wether element has relations to other elements e.g. attachers, labels and connections.\n *\n * @param  {Object} element\n * @param  {Array<djs.model.Base>} elements\n *\n * @returns {boolean}\n */\nCopyPaste.prototype.hasRelations = function(element, elements) {\n  var labelTarget,\n      source,\n      target;\n\n  if (isConnection(element)) {\n    source = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.source.id }));\n    target = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.target.id }));\n\n    if (!source || !target) {\n      return false;\n    }\n  }\n\n  if (isLabel(element)) {\n    labelTarget = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.matchPattern)({ id: element.labelTarget.id }));\n\n    if (!labelTarget) {\n      return false;\n    }\n  }\n\n  return true;\n};\n\n/**\n * Create a tree-like structure from elements.\n *\n * @example\n * tree: {\n  *  0: [\n  *    { id: 'Shape_1', priority: 1, ... },\n  *    { id: 'Shape_2', priority: 1, ... },\n  *    { id: 'Connection_1', source: 'Shape_1', target: 'Shape_2', priority: 3, ... },\n  *    ...\n  *  ],\n  *  1: [\n  *    { id: 'Shape_3', parent: 'Shape1', priority: 1, ... },\n  *    ...\n  *  ]\n  * };\n  *\n  * @param  {Array<djs.model.base>} elements\n  *\n  * @return {Object}\n  */\nCopyPaste.prototype.createTree = function(elements) {\n  var rules = this._rules,\n      self = this;\n\n  var tree = {},\n      elementsData = [];\n\n  var parents = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getParents)(elements);\n\n  function canCopy(element, elements) {\n    return rules.allowed('element.copy', {\n      element: element,\n      elements: elements\n    });\n  }\n\n  function addElementData(element, depth) {\n\n    // (1) check wether element has already been added\n    var foundElementData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elementsData, function(elementsData) {\n      return element === elementsData.element;\n    });\n\n    // (2) add element if not already added\n    if (!foundElementData) {\n      elementsData.push({\n        element: element,\n        depth: depth\n      });\n\n      return;\n    }\n\n    // (3) update depth\n    if (foundElementData.depth < depth) {\n      elementsData = removeElementData(foundElementData, elementsData);\n\n      elementsData.push({\n        element: foundElementData.element,\n        depth: depth\n      });\n    }\n  }\n\n  function removeElementData(elementData, elementsData) {\n    var index = elementsData.indexOf(elementData);\n\n    if (index !== -1) {\n      elementsData.splice(index, 1);\n    }\n\n    return elementsData;\n  }\n\n  // (1) add elements\n  (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.eachElement)(parents, function(element, _index, depth) {\n\n    // do NOT add external labels directly\n    if (isLabel(element)) {\n      return;\n    }\n\n    // always copy external labels\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.labels, function(label) {\n      addElementData(label, depth);\n    });\n\n    function addRelatedElements(elements) {\n      elements && elements.length && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n        // add external labels\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.labels, function(label) {\n          addElementData(label, depth);\n        });\n\n        addElementData(element, depth);\n      });\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ element.attachers, element.incoming, element.outgoing ], addRelatedElements);\n\n    addElementData(element, depth);\n\n    return element.children;\n  });\n\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n    return elementData.element;\n  });\n\n  // (2) copy elements\n  elementsData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n    elementData.descriptor = {};\n\n    self._eventBus.fire('copyPaste.copyElement', {\n      descriptor: elementData.descriptor,\n      element: elementData.element,\n      elements: elements\n    });\n\n    return elementData;\n  });\n\n  // (3) sort elements by priority\n  elementsData = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elementsData, function(elementData) {\n    return elementData.descriptor.priority;\n  });\n\n  elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(elementsData, function(elementData) {\n    return elementData.element;\n  });\n\n  // (4) create tree\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elementsData, function(elementData) {\n    var depth = elementData.depth;\n\n    if (!self.hasRelations(elementData.element, elements)) {\n      removeElement(elementData.element, elements);\n\n      return;\n    }\n\n    if (!canCopy(elementData.element, elements)) {\n      removeElement(elementData.element, elements);\n\n      return;\n    }\n\n    if (!tree[depth]) {\n      tree[depth] = [];\n    }\n\n    tree[depth].push(elementData.descriptor);\n  });\n\n  return tree;\n};\n\n// helpers //////////\n\nfunction isAttacher(element) {\n  return !!element.host;\n}\n\nfunction isConnection(element) {\n  return !!element.waypoints;\n}\n\nfunction isLabel(element) {\n  return !!element.labelTarget;\n}\n\nfunction copyWaypoints(element) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n\n    waypoint = copyWaypoint(waypoint);\n\n    if (waypoint.original) {\n      waypoint.original = copyWaypoint(waypoint.original);\n    }\n\n    return waypoint;\n  });\n}\n\nfunction copyWaypoint(waypoint) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, waypoint);\n}\n\nfunction removeElement(element, elements) {\n  var index = elements.indexOf(element);\n\n  if (index === -1) {\n    return elements;\n  }\n\n  return elements.splice(index, 1);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/copy-paste/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/copy-paste/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../clipboard */ \"./node_modules/diagram-js/lib/features/clipboard/index.js\");\n/* harmony import */ var _create__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../create */ \"./node_modules/diagram-js/lib/features/create/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _CopyPaste__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CopyPaste */ \"./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _clipboard__WEBPACK_IMPORTED_MODULE_0__.default,\n    _create__WEBPACK_IMPORTED_MODULE_1__.default,\n    _mouse__WEBPACK_IMPORTED_MODULE_2__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_3__.default\n  ],\n  __init__: [ 'copyPaste' ],\n  copyPaste: [ 'type', _CopyPaste__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/copy-paste/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/create/Create.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/create/Create.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Create)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\nvar MARKER_OK = 'drop-ok',\n    MARKER_NOT_OK = 'drop-not-ok',\n    MARKER_ATTACH = 'attach-ok',\n    MARKER_NEW_PARENT = 'new-parent';\n\n\n\n\n\nvar PREFIX = 'create';\n\nvar HIGH_PRIORITY = 2000;\n\n\n/**\n * Create new elements through drag and drop.\n *\n * @param {Canvas} canvas\n * @param {Dragging} dragging\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction Create(\n    canvas,\n    dragging,\n    eventBus,\n    modeling,\n    rules\n) {\n\n  // rules //////////\n\n  /**\n   * Check wether elements can be created.\n   *\n   * @param {Array<djs.model.Base>} elements\n   * @param {djs.model.Base} target\n   * @param {Point} position\n   * @param {djs.model.Base} [source]\n   *\n   * @returns {boolean|null|Object}\n   */\n  function canCreate(elements, target, position, source, hints) {\n    if (!target) {\n      return false;\n    }\n\n    // ignore child elements and external labels\n    elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n      var labelTarget = element.labelTarget;\n\n      return !element.parent && !(isLabel(element) && elements.indexOf(labelTarget) !== -1);\n    });\n\n    var shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n      return !isConnection(element);\n    });\n\n    var attach = false,\n        connect = false,\n        create = false;\n\n    // (1) attaching single shapes\n    if (isSingleShape(elements)) {\n      attach = rules.allowed('shape.attach', {\n        position: position,\n        shape: shape,\n        target: target\n      });\n    }\n\n    if (!attach) {\n\n      // (2) creating elements\n      if (isSingleShape(elements)) {\n        create = rules.allowed('shape.create', {\n          position: position,\n          shape: shape,\n          source: source,\n          target: target\n        });\n      } else {\n        create = rules.allowed('elements.create', {\n          elements: elements,\n          position: position,\n          target: target\n        });\n      }\n\n    }\n\n    var connectionTarget = hints.connectionTarget;\n\n    // (3) appending single shapes\n    if (create || attach) {\n      if (shape && source) {\n        connect = rules.allowed('connection.create', {\n          source: connectionTarget === source ? shape : source,\n          target: connectionTarget === source ? source : shape,\n          hints: {\n            targetParent: target,\n            targetAttach: attach\n          }\n        });\n      }\n\n      return {\n        attach: attach,\n        connect: connect\n      };\n    }\n\n    // ignore wether or not elements can be created\n    if (create === null || attach === null) {\n      return null;\n    }\n\n    return false;\n  }\n\n  function setMarker(element, marker) {\n    [ MARKER_ATTACH, MARKER_OK, MARKER_NOT_OK, MARKER_NEW_PARENT ].forEach(function(m) {\n\n      if (m === marker) {\n        canvas.addMarker(element, m);\n      } else {\n        canvas.removeMarker(element, m);\n      }\n    });\n  }\n\n  // event handling //////////\n\n  eventBus.on([ 'create.move', 'create.hover' ], function(event) {\n    var context = event.context,\n        elements = context.elements,\n        hover = event.hover,\n        source = context.source,\n        hints = context.hints || {};\n\n    if (!hover) {\n      context.canExecute = false;\n      context.target = null;\n\n      return;\n    }\n\n    ensureConstraints(event);\n\n    var position = {\n      x: event.x,\n      y: event.y\n    };\n\n    var canExecute = context.canExecute = hover && canCreate(elements, hover, position, source, hints);\n\n    if (hover && canExecute !== null) {\n      context.target = hover;\n\n      if (canExecute && canExecute.attach) {\n        setMarker(hover, MARKER_ATTACH);\n      } else {\n        setMarker(hover, canExecute ? MARKER_NEW_PARENT : MARKER_NOT_OK);\n      }\n    }\n  });\n\n  eventBus.on([ 'create.end', 'create.out', 'create.cleanup' ], function(event) {\n    var hover = event.hover;\n\n    if (hover) {\n      setMarker(hover, null);\n    }\n  });\n\n  eventBus.on('create.end', function(event) {\n    var context = event.context,\n        source = context.source,\n        shape = context.shape,\n        elements = context.elements,\n        target = context.target,\n        canExecute = context.canExecute,\n        attach = canExecute && canExecute.attach,\n        connect = canExecute && canExecute.connect,\n        hints = context.hints || {};\n\n    if (canExecute === false || !target) {\n      return false;\n    }\n\n    ensureConstraints(event);\n\n    var position = {\n      x: event.x,\n      y: event.y\n    };\n\n    if (connect) {\n      shape = modeling.appendShape(source, shape, position, target, {\n        attach: attach,\n        connection: connect === true ? {} : connect,\n        connectionTarget: hints.connectionTarget\n      });\n    } else {\n      elements = modeling.createElements(elements, position, target, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints, {\n        attach: attach\n      }));\n\n      // update shape\n      shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n        return !isConnection(element);\n      });\n    }\n\n    // update elements and shape\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n      elements: elements,\n      shape: shape\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(event, {\n      elements: elements,\n      shape: shape\n    });\n  });\n\n  function cancel() {\n    var context = dragging.context();\n\n    if (context && context.prefix === PREFIX) {\n      dragging.cancel();\n    }\n  }\n\n  // cancel on <elements.changed> that is not result of <drag.end>\n  eventBus.on('create.init', function() {\n    eventBus.on('elements.changed', cancel);\n\n    eventBus.once([ 'create.cancel', 'create.end' ], HIGH_PRIORITY, function() {\n      eventBus.off('elements.changed', cancel);\n    });\n  });\n\n  // API //////////\n\n  this.start = function(event, elements, context) {\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n      elements = [ elements ];\n    }\n\n    var shape = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(element) {\n      return !isConnection(element);\n    });\n\n    if (!shape) {\n\n      // at least one shape is required\n      return;\n    }\n\n    context = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n      elements: elements,\n      hints: {},\n      shape: shape\n    }, context || {});\n\n    // make sure each element has x and y\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n      if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\n        element.x = 0;\n      }\n\n      if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\n        element.y = 0;\n      }\n    });\n\n    var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\n\n    // center elements around cursor\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n      if (isConnection(element)) {\n        element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\n          return {\n            x: waypoint.x - bbox.x - bbox.width / 2,\n            y: waypoint.y - bbox.y - bbox.height / 2\n          };\n        });\n      }\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\n        x: element.x - bbox.x - bbox.width / 2,\n        y: element.y - bbox.y - bbox.height / 2\n      });\n    });\n\n    dragging.init(event, PREFIX, {\n      cursor: 'grabbing',\n      autoActivate: true,\n      data: {\n        shape: shape,\n        elements: elements,\n        context: context\n      }\n    });\n  };\n}\n\nCreate.$inject = [\n  'canvas',\n  'dragging',\n  'eventBus',\n  'modeling',\n  'rules'\n];\n\n// helpers //////////\n\nfunction ensureConstraints(event) {\n  var context = event.context,\n      createConstraints = context.createConstraints;\n\n  if (!createConstraints) {\n    return;\n  }\n\n  if (createConstraints.left) {\n    event.x = Math.max(event.x, createConstraints.left);\n  }\n\n  if (createConstraints.right) {\n    event.x = Math.min(event.x, createConstraints.right);\n  }\n\n  if (createConstraints.top) {\n    event.y = Math.max(event.y, createConstraints.top);\n  }\n\n  if (createConstraints.bottom) {\n    event.y = Math.min(event.y, createConstraints.bottom);\n  }\n}\n\nfunction isConnection(element) {\n  return !!element.waypoints;\n}\n\nfunction isSingleShape(elements) {\n  return elements && elements.length === 1 && !isConnection(elements[0]);\n}\n\nfunction isLabel(element) {\n  return !!element.labelTarget;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/Create.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/create/CreatePreview.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/create/CreatePreview.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreatePreview)\n/* harmony export */ });\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOW_PRIORITY = 750;\r\n\r\n\r\nfunction CreatePreview(\r\n    canvas,\r\n    eventBus,\r\n    graphicsFactory,\r\n    previewSupport,\r\n    styles\r\n) {\r\n  function createDragGroup(elements) {\r\n    var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\r\n\r\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\r\n\r\n    var childrenGfx = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('g');\r\n\r\n    elements.forEach(function(element) {\r\n\r\n      // create graphics\r\n      var gfx;\r\n\r\n      if (element.hidden) {\r\n        return;\r\n      }\r\n\r\n      if (element.waypoints) {\r\n        gfx = graphicsFactory._createContainer('connection', childrenGfx);\r\n\r\n        graphicsFactory.drawConnection((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__.getVisual)(gfx), element);\r\n      } else {\r\n        gfx = graphicsFactory._createContainer('shape', childrenGfx);\r\n\r\n        graphicsFactory.drawShape((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_1__.getVisual)(gfx), element);\r\n\r\n        (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(gfx, element.x, element.y);\r\n      }\r\n\r\n      // add preview\r\n      previewSupport.addDragger(element, dragGroup, gfx);\r\n    });\r\n\r\n    return dragGroup;\r\n  }\r\n\r\n  eventBus.on('create.move', LOW_PRIORITY, function(event) {\r\n\r\n    var hover = event.hover,\r\n        context = event.context,\r\n        elements = context.elements,\r\n        dragGroup = context.dragGroup;\r\n\r\n    // lazily create previews\r\n    if (!dragGroup) {\r\n      dragGroup = context.dragGroup = createDragGroup(elements);\r\n    }\r\n\r\n    var defaultLayer;\r\n\r\n    if (hover) {\r\n      if (!dragGroup.parentNode) {\r\n        defaultLayer = canvas.getDefaultLayer();\r\n\r\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(defaultLayer, dragGroup);\r\n      }\r\n\r\n      (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(dragGroup, event.x, event.y);\r\n    } else {\r\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(dragGroup);\r\n    }\r\n  });\r\n\r\n  eventBus.on('create.cleanup', function(event) {\r\n    var context = event.context,\r\n        dragGroup = context.dragGroup;\r\n\r\n    if (dragGroup) {\r\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(dragGroup);\r\n    }\r\n  });\r\n}\r\n\r\nCreatePreview.$inject = [\r\n  'canvas',\r\n  'eventBus',\r\n  'graphicsFactory',\r\n  'previewSupport',\r\n  'styles'\r\n];\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/CreatePreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/create/index.js":
  /*!**************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/create/index.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _Create__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Create */ \"./node_modules/diagram-js/lib/features/create/Create.js\");\n/* harmony import */ var _CreatePreview__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CreatePreview */ \"./node_modules/diagram-js/lib/features/create/CreatePreview.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n    _preview_support__WEBPACK_IMPORTED_MODULE_1__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_2__.default,\n    _selection__WEBPACK_IMPORTED_MODULE_3__.default\n  ],\n  __init__: [\n    'create',\n    'createPreview'\n  ],\n  create: [ 'type', _Create__WEBPACK_IMPORTED_MODULE_4__.default ],\n  createPreview: [ 'type', _CreatePreview__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/create/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js ***!
    \****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar AXIS_DIMENSIONS = {\n  horizontal: [ 'x', 'width' ],\n  vertical: [ 'y', 'height' ]\n};\n\nvar THRESHOLD = 5;\n\n\n/**\n * Groups and filters elements and then trigger even distribution.\n */\nfunction DistributeElements(modeling) {\n  this._modeling = modeling;\n\n  this._filters = [];\n\n  // register filter for filtering big elements\n  this.registerFilter(function(elements, axis, dimension) {\n    var elementsSize = 0,\n        numOfShapes = 0,\n        avgDimension;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n      if (element.waypoints || element.labelTarget) {\n        return;\n      }\n\n      elementsSize += element[dimension];\n\n      numOfShapes += 1;\n    });\n\n    avgDimension = Math.round(elementsSize / numOfShapes);\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n      return element[dimension] < (avgDimension + 50);\n    });\n  });\n\n}\n\nDistributeElements.$inject = [ 'modeling' ];\n\n\n/**\n * Registers filter functions that allow external parties to filter\n * out certain elements.\n *\n * @param  {Function} filterFn\n */\nDistributeElements.prototype.registerFilter = function(filterFn) {\n  if (typeof filterFn !== 'function') {\n    throw new Error('the filter has to be a function');\n  }\n\n  this._filters.push(filterFn);\n};\n\n/**\n * Distributes the elements with a given orientation\n *\n * @param  {Array} elements    [description]\n * @param  {string} orientation [description]\n */\nDistributeElements.prototype.trigger = function(elements, orientation) {\n  var modeling = this._modeling;\n\n  var groups,\n      distributableElements;\n\n  if (elements.length < 3) {\n    return;\n  }\n\n  this._setOrientation(orientation);\n\n  distributableElements = this._filterElements(elements);\n\n  groups = this._createGroups(distributableElements);\n\n  // nothing to distribute\n  if (groups.length <= 2) {\n    return;\n  }\n\n  modeling.distributeElements(groups, this._axis, this._dimension);\n\n  return groups;\n};\n\n/**\n * Filters the elements with provided filters by external parties\n *\n * @param  {Array[Elements]} elements\n *\n * @return {Array[Elements]}\n */\nDistributeElements.prototype._filterElements = function(elements) {\n  var filters = this._filters,\n      axis = this._axis,\n      dimension = this._dimension,\n      distributableElements = [].concat(elements);\n\n  if (!filters.length) {\n    return elements;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(filters, function(filterFn) {\n    distributableElements = filterFn(distributableElements, axis, dimension);\n  });\n\n  return distributableElements;\n};\n\n\n/**\n * Create range (min, max) groups. Also tries to group elements\n * together that share the same range.\n *\n * @example\n * \tvar distributableElements = [\n * \t\t{\n * \t\t\trange: {\n * \t\t\t\tmin: 100,\n * \t\t\t\tmax: 200\n * \t\t\t},\n * \t\t\telements: [ { id: 'shape1', .. }]\n * \t\t}\n * \t]\n *\n * @param  {Array} elements\n *\n * @return {Array[Objects]}\n */\nDistributeElements.prototype._createGroups = function(elements) {\n  var rangeGroups = [],\n      self = this,\n      axis = this._axis,\n      dimension = this._dimension;\n\n  if (!axis) {\n    throw new Error('must have a defined \"axis\" and \"dimension\"');\n  }\n\n  // sort by 'left->right' or 'top->bottom'\n  var sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(elements, axis);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element, idx) {\n    var elementRange = self._findRange(element, axis, dimension),\n        range;\n\n    var previous = rangeGroups[rangeGroups.length - 1];\n\n    if (previous && self._hasIntersection(previous.range, elementRange)) {\n      rangeGroups[rangeGroups.length - 1].elements.push(element);\n    } else {\n      range = { range: elementRange, elements: [ element ] };\n\n      rangeGroups.push(range);\n    }\n  });\n\n  return rangeGroups;\n};\n\n\n/**\n * Maps a direction to the according axis and dimension\n *\n * @param  {string} direction 'horizontal' or 'vertical'\n */\nDistributeElements.prototype._setOrientation = function(direction) {\n  var orientation = AXIS_DIMENSIONS[direction];\n\n  this._axis = orientation[0];\n  this._dimension = orientation[1];\n};\n\n\n/**\n * Checks if the two ranges intercept each other\n *\n * @param  {Object} rangeA {min, max}\n * @param  {Object} rangeB {min, max}\n *\n * @return {boolean}\n */\nDistributeElements.prototype._hasIntersection = function(rangeA, rangeB) {\n  return Math.max(rangeA.min, rangeA.max) >= Math.min(rangeB.min, rangeB.max) &&\n         Math.min(rangeA.min, rangeA.max) <= Math.max(rangeB.min, rangeB.max);\n};\n\n\n/**\n * Returns the min and max values for an element\n *\n * @param  {[type]} element   [description]\n * @param  {[type]} axis      [description]\n * @param  {[type]} dimension [description]\n *\n * @return {[type]}           [description]\n */\nDistributeElements.prototype._findRange = function(element) {\n  var axis = element[this._axis],\n      dimension = element[this._dimension];\n\n  return {\n    min: axis + THRESHOLD,\n    max: axis + dimension - THRESHOLD\n  };\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/distribute-elements/index.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/distribute-elements/index.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _DistributeElements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DistributeElements */ \"./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'distributeElements' ],\n  distributeElements: [ 'type', _DistributeElements__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/distribute-elements/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/dragging/Dragging.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/dragging/Dragging.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Dragging)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n/* harmony import */ var _util_ClickTrap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/ClickTrap */ \"./node_modules/diagram-js/lib/util/ClickTrap.js\");\n/* harmony import */ var _util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\nvar round = Math.round;\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DRAG_ACTIVE_CLS = 'djs-drag-active';\n\n\nfunction preventDefault(event) {\n  event.preventDefault();\n}\n\nfunction isTouchEvent(event) {\n\n  // check for TouchEvent being available first\n  // (i.e. not available on desktop Firefox)\n  return typeof TouchEvent !== 'undefined' && event instanceof TouchEvent;\n}\n\nfunction getLength(point) {\n  return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n}\n\n/**\n * A helper that fires canvas localized drag events and realizes\n * the general \"drag-and-drop\" look and feel.\n *\n * Calling {@link Dragging#activate} activates dragging on a canvas.\n *\n * It provides the following:\n *\n *   * emits life cycle events, namespaced with a prefix assigned\n *     during dragging activation\n *   * sets and restores the cursor\n *   * sets and restores the selection if elements still exist\n *   * ensures there can be only one drag operation active at a time\n *\n * Dragging may be canceled manually by calling {@link Dragging#cancel}\n * or by pressing ESC.\n *\n *\n * ## Life-cycle events\n *\n * Dragging can be in three different states, off, initialized\n * and active.\n *\n * (1) off: no dragging operation is in progress\n * (2) initialized: a new drag operation got initialized but not yet\n *                  started (i.e. because of no initial move)\n * (3) started: dragging is in progress\n *\n * Eventually dragging will be off again after a drag operation has\n * been ended or canceled via user click or ESC key press.\n *\n * To indicate transitions between these states dragging emits generic\n * life-cycle events with the `drag.` prefix _and_ events namespaced\n * to a prefix choosen by a user during drag initialization.\n *\n * The following events are emitted (appropriately prefixed) via\n * the {@link EventBus}.\n *\n * * `init`\n * * `start`\n * * `move`\n * * `end`\n * * `ended` (dragging already in off state)\n * * `cancel` (only if previously started)\n * * `canceled` (dragging already in off state, only if previously started)\n * * `cleanup`\n *\n *\n * @example\n *\n * function MyDragComponent(eventBus, dragging) {\n *\n *   eventBus.on('mydrag.start', function(event) {\n *     console.log('yes, we start dragging');\n *   });\n *\n *   eventBus.on('mydrag.move', function(event) {\n *     console.log('canvas local coordinates', event.x, event.y, event.dx, event.dy);\n *\n *     // local drag data is passed with the event\n *     event.context.foo; // \"BAR\"\n *\n *     // the original mouse event, too\n *     event.originalEvent; // MouseEvent(...)\n *   });\n *\n *   eventBus.on('element.click', function(event) {\n *     dragging.init(event, 'mydrag', {\n *       cursor: 'grabbing',\n *       data: {\n *         context: {\n *           foo: \"BAR\"\n *         }\n *       }\n *     });\n *   });\n * }\n */\nfunction Dragging(eventBus, canvas, selection, elementRegistry) {\n\n  var defaultOptions = {\n    threshold: 5,\n    trapClick: true\n  };\n\n  // the currently active drag operation\n  // dragging is active as soon as this context exists.\n  //\n  // it is visually _active_ only when a context.active flag is set to true.\n  var context;\n\n  /* convert a global event into local coordinates */\n  function toLocalPoint(globalPosition) {\n\n    var viewbox = canvas.viewbox();\n\n    var clientRect = canvas._container.getBoundingClientRect();\n\n    return {\n      x: viewbox.x + (globalPosition.x - clientRect.left) / viewbox.scale,\n      y: viewbox.y + (globalPosition.y - clientRect.top) / viewbox.scale\n    };\n  }\n\n  // helpers\n\n  function fire(type, dragContext) {\n    dragContext = dragContext || context;\n\n    var event = eventBus.createEvent(\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(\n        {},\n        dragContext.payload,\n        dragContext.data,\n        { isTouch: dragContext.isTouch }\n      )\n    );\n\n    // default integration\n    if (eventBus.fire('drag.' + type, event) === false) {\n      return false;\n    }\n\n    return eventBus.fire(dragContext.prefix + '.' + type, event);\n  }\n\n  function restoreSelection(previousSelection) {\n    var existingSelection = previousSelection.filter(function(element) {\n      return elementRegistry.get(element.id);\n    });\n\n    existingSelection.length && selection.select(existingSelection);\n  }\n\n  // event listeners\n\n  function move(event, activate) {\n    var payload = context.payload,\n        displacement = context.displacement;\n\n    var globalStart = context.globalStart,\n        globalCurrent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event),\n        globalDelta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(globalCurrent, globalStart);\n\n    var localStart = context.localStart,\n        localCurrent = toLocalPoint(globalCurrent),\n        localDelta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(localCurrent, localStart);\n\n\n    // activate context explicitly or once threshold is reached\n    if (!context.active && (activate || getLength(globalDelta) > context.threshold)) {\n\n      // fire start event with original\n      // starting coordinates\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(payload, {\n        x: round(localStart.x + displacement.x),\n        y: round(localStart.y + displacement.y),\n        dx: 0,\n        dy: 0\n      }, { originalEvent: event });\n\n      if (false === fire('start')) {\n        return cancel();\n      }\n\n      context.active = true;\n\n      // unset selection and remember old selection\n      // the previous (old) selection will always passed\n      // with the event via the event.previousSelection property\n      if (!context.keepSelection) {\n        payload.previousSelection = selection.get();\n        selection.select(null);\n      }\n\n      // allow custom cursor\n      if (context.cursor) {\n        (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.set)(context.cursor);\n      }\n\n      // indicate dragging via marker on root element\n      canvas.addMarker(canvas.getRootElement(), DRAG_ACTIVE_CLS);\n    }\n\n    (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n\n    if (context.active) {\n\n      // update payload with actual coordinates\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(payload, {\n        x: round(localCurrent.x + displacement.x),\n        y: round(localCurrent.y + displacement.y),\n        dx: round(localDelta.x),\n        dy: round(localDelta.y)\n      }, { originalEvent: event });\n\n      // emit move event\n      fire('move');\n    }\n  }\n\n  function end(event) {\n    var previousContext,\n        returnValue = true;\n\n    if (context.active) {\n\n      if (event) {\n        context.payload.originalEvent = event;\n\n        // suppress original event (click, ...)\n        // because we just ended a drag operation\n        (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n      }\n\n      // implementations may stop restoring the\n      // original state (selections, ...) by preventing the\n      // end events default action\n      returnValue = fire('end');\n    }\n\n    if (returnValue === false) {\n      fire('rejected');\n    }\n\n    previousContext = cleanup(returnValue !== true);\n\n    // last event to be fired when all drag operations are done\n    // at this point in time no drag operation is in progress anymore\n    fire('ended', previousContext);\n  }\n\n\n  // cancel active drag operation if the user presses\n  // the ESC key on the keyboard\n\n  function checkCancel(event) {\n\n    if (event.which === 27) {\n      preventDefault(event);\n\n      cancel();\n    }\n  }\n\n\n  // prevent ghost click that might occur after a finished\n  // drag and drop session\n\n  function trapClickAndEnd(event) {\n\n    var untrap;\n\n    // trap the click in case we are part of an active\n    // drag operation. This will effectively prevent\n    // the ghost click that cannot be canceled otherwise.\n    if (context.active) {\n\n      untrap = (0,_util_ClickTrap__WEBPACK_IMPORTED_MODULE_4__.install)(eventBus);\n\n      // remove trap after minimal delay\n      setTimeout(untrap, 400);\n\n      // prevent default action (click)\n      preventDefault(event);\n    }\n\n    end(event);\n  }\n\n  function trapTouch(event) {\n    move(event);\n  }\n\n  // update the drag events hover (djs.model.Base) and hoverGfx (Snap<SVGElement>)\n  // properties during hover and out and fire {prefix}.hover and {prefix}.out properties\n  // respectively\n\n  function hover(event) {\n    var payload = context.payload;\n\n    payload.hoverGfx = event.gfx;\n    payload.hover = event.element;\n\n    fire('hover');\n  }\n\n  function out(event) {\n    fire('out');\n\n    var payload = context.payload;\n\n    payload.hoverGfx = null;\n    payload.hover = null;\n  }\n\n\n  // life-cycle methods\n\n  function cancel(restore) {\n    var previousContext;\n\n    if (!context) {\n      return;\n    }\n\n    var wasActive = context.active;\n\n    if (wasActive) {\n      fire('cancel');\n    }\n\n    previousContext = cleanup(restore);\n\n    if (wasActive) {\n\n      // last event to be fired when all drag operations are done\n      // at this point in time no drag operation is in progress anymore\n      fire('canceled', previousContext);\n    }\n  }\n\n  function cleanup(restore) {\n    var previousContext,\n        endDrag;\n\n    fire('cleanup');\n\n    // reset cursor\n    (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.unset)();\n\n    if (context.trapClick) {\n      endDrag = trapClickAndEnd;\n    } else {\n      endDrag = end;\n    }\n\n    // reset dom listeners\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mousemove', move);\n\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'dragstart', preventDefault);\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'selectstart', preventDefault);\n\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mousedown', endDrag, true);\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'mouseup', endDrag, true);\n\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'keyup', checkCancel);\n\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchstart', trapTouch, true);\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchcancel', cancel, true);\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchmove', move, true);\n    min_dom__WEBPACK_IMPORTED_MODULE_5__.event.unbind(document, 'touchend', end, true);\n\n    eventBus.off('element.hover', hover);\n    eventBus.off('element.out', out);\n\n    // remove drag marker on root element\n    canvas.removeMarker(canvas.getRootElement(), DRAG_ACTIVE_CLS);\n\n    // restore selection, unless it has changed\n    var previousSelection = context.payload.previousSelection;\n\n    if (restore !== false && previousSelection && !selection.get().length) {\n      restoreSelection(previousSelection);\n    }\n\n    previousContext = context;\n\n    context = null;\n\n    return previousContext;\n  }\n\n  /**\n   * Initialize a drag operation.\n   *\n   * If `localPosition` is given, drag events will be emitted\n   * relative to it.\n   *\n   * @param {MouseEvent|TouchEvent} [event]\n   * @param {Point} [localPosition] actual diagram local position this drag operation should start at\n   * @param {string} prefix\n   * @param {Object} [options]\n   */\n  function init(event, relativeTo, prefix, options) {\n\n    // only one drag operation may be active, at a time\n    if (context) {\n      cancel(false);\n    }\n\n    if (typeof relativeTo === 'string') {\n      options = prefix;\n      prefix = relativeTo;\n      relativeTo = null;\n    }\n\n    options = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, defaultOptions, options || {});\n\n    var data = options.data || {},\n        originalEvent,\n        globalStart,\n        localStart,\n        endDrag,\n        isTouch;\n\n    if (options.trapClick) {\n      endDrag = trapClickAndEnd;\n    } else {\n      endDrag = end;\n    }\n\n    if (event) {\n      originalEvent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n      globalStart = (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.toPoint)(event);\n\n      (0,_util_Event__WEBPACK_IMPORTED_MODULE_1__.stopPropagation)(event);\n\n      // prevent default browser dragging behavior\n      if (originalEvent.type === 'dragstart') {\n        preventDefault(originalEvent);\n      }\n    } else {\n      originalEvent = null;\n      globalStart = { x: 0, y: 0 };\n    }\n\n    localStart = toLocalPoint(globalStart);\n\n    if (!relativeTo) {\n      relativeTo = localStart;\n    }\n\n    isTouch = isTouchEvent(originalEvent);\n\n    context = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({\n      prefix: prefix,\n      data: data,\n      payload: {},\n      globalStart: globalStart,\n      displacement: (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_2__.delta)(relativeTo, localStart),\n      localStart: localStart,\n      isTouch: isTouch\n    }, options);\n\n    // skip dom registration if trigger\n    // is set to manual (during testing)\n    if (!options.manual) {\n\n      // add dom listeners\n\n      if (isTouch) {\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchstart', trapTouch, true);\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchcancel', cancel, true);\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchmove', move, true);\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'touchend', end, true);\n      } else {\n\n        // assume we use the mouse to interact per default\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mousemove', move);\n\n        // prevent default browser drag and text selection behavior\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'dragstart', preventDefault);\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'selectstart', preventDefault);\n\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mousedown', endDrag, true);\n        min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'mouseup', endDrag, true);\n      }\n\n      min_dom__WEBPACK_IMPORTED_MODULE_5__.event.bind(document, 'keyup', checkCancel);\n\n      eventBus.on('element.hover', hover);\n      eventBus.on('element.out', out);\n    }\n\n    fire('init');\n\n    if (options.autoActivate) {\n      move(event, true);\n    }\n  }\n\n  // cancel on diagram destruction\n  eventBus.on('diagram.destroy', cancel);\n\n\n  // API\n\n  this.init = init;\n  this.move = move;\n  this.hover = hover;\n  this.out = out;\n  this.end = end;\n\n  this.cancel = cancel;\n\n  // for introspection\n\n  this.context = function() {\n    return context;\n  };\n\n  this.setOptions = function(options) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(defaultOptions, options);\n  };\n}\n\nDragging.$inject = [\n  'eventBus',\n  'canvas',\n  'selection',\n  'elementRegistry'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/dragging/Dragging.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/dragging/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/dragging/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _hover_fix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../hover-fix */ \"./node_modules/diagram-js/lib/features/hover-fix/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _Dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Dragging */ \"./node_modules/diagram-js/lib/features/dragging/Dragging.js\");\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _hover_fix__WEBPACK_IMPORTED_MODULE_0__.default,\n    _selection__WEBPACK_IMPORTED_MODULE_1__.default,\n  ],\n  dragging: [ 'type', _Dragging__WEBPACK_IMPORTED_MODULE_2__.default ],\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/dragging/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ EditorActions)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar NOT_REGISTERED_ERROR = 'is not a registered action',\n    IS_REGISTERED_ERROR = 'is already registered';\n\n\n/**\n * An interface that provides access to modeling actions by decoupling\n * the one who requests the action to be triggered and the trigger itself.\n *\n * It's possible to add new actions by registering them with ´registerAction´\n * and likewise unregister existing ones with ´unregisterAction´.\n *\n *\n * ## Life-Cycle and configuration\n *\n * The editor actions will wait for diagram initialization before\n * registering default actions _and_ firing an `editorActions.init` event.\n *\n * Interested parties may listen to the `editorActions.init` event with\n * low priority to check, which actions got registered. Other components\n * may use the event to register their own actions via `registerAction`.\n *\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction EditorActions(eventBus, injector) {\n\n  // initialize actions\n  this._actions = {};\n\n  var self = this;\n\n  eventBus.on('diagram.init', function() {\n\n    // all diagram modules got loaded; check which ones\n    // are available and register the respective default actions\n    self._registerDefaultActions(injector);\n\n    // ask interested parties to register available editor\n    // actions on diagram initialization\n    eventBus.fire('editorActions.init', {\n      editorActions: self\n    });\n  });\n\n}\n\nEditorActions.$inject = [\n  'eventBus',\n  'injector'\n];\n\n/**\n * Register default actions.\n *\n * @param {Injector} injector\n */\nEditorActions.prototype._registerDefaultActions = function(injector) {\n\n  // (1) retrieve optional components to integrate with\n\n  var commandStack = injector.get('commandStack', false);\n  var modeling = injector.get('modeling', false);\n  var selection = injector.get('selection', false);\n  var zoomScroll = injector.get('zoomScroll', false);\n  var copyPaste = injector.get('copyPaste', false);\n  var canvas = injector.get('canvas', false);\n  var rules = injector.get('rules', false);\n  var keyboardMove = injector.get('keyboardMove', false);\n  var keyboardMoveSelection = injector.get('keyboardMoveSelection', false);\n\n  // (2) check components and register actions\n\n  if (commandStack) {\n    this.register('undo', function() {\n      commandStack.undo();\n    });\n\n    this.register('redo', function() {\n      commandStack.redo();\n    });\n  }\n\n  if (copyPaste && selection) {\n    this.register('copy', function() {\n      var selectedElements = selection.get();\n\n      copyPaste.copy(selectedElements);\n    });\n  }\n\n  if (copyPaste) {\n    this.register('paste', function() {\n      copyPaste.paste();\n    });\n  }\n\n  if (zoomScroll) {\n    this.register('stepZoom', function(opts) {\n      zoomScroll.stepZoom(opts.value);\n    });\n  }\n\n  if (canvas) {\n    this.register('zoom', function(opts) {\n      canvas.zoom(opts.value);\n    });\n  }\n\n  if (modeling && selection && rules) {\n    this.register('removeSelection', function() {\n\n      var selectedElements = selection.get();\n\n      if (!selectedElements.length) {\n        return;\n      }\n\n      var allowed = rules.allowed('elements.delete', { elements: selectedElements }),\n          removableElements;\n\n      if (allowed === false) {\n        return;\n      }\n      else if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(allowed)) {\n        removableElements = allowed;\n      }\n      else {\n        removableElements = selectedElements;\n      }\n\n      if (removableElements.length) {\n        modeling.removeElements(removableElements.slice());\n      }\n    });\n  }\n\n  if (keyboardMove) {\n    this.register('moveCanvas', function(opts) {\n      keyboardMove.moveCanvas(opts);\n    });\n  }\n\n  if (keyboardMoveSelection) {\n    this.register('moveSelection', function(opts) {\n      keyboardMoveSelection.moveSelection(opts.direction, opts.accelerated);\n    });\n  }\n\n};\n\n\n/**\n * Triggers a registered action\n *\n * @param  {string} action\n * @param  {Object} opts\n *\n * @return {Unknown} Returns what the registered listener returns\n */\nEditorActions.prototype.trigger = function(action, opts) {\n  if (!this._actions[action]) {\n    throw error(action, NOT_REGISTERED_ERROR);\n  }\n\n  return this._actions[action](opts);\n};\n\n\n/**\n * Registers a collections of actions.\n * The key of the object will be the name of the action.\n *\n * @example\n * ´´´\n * var actions = {\n *   spaceTool: function() {\n *     spaceTool.activateSelection();\n *   },\n *   lassoTool: function() {\n *     lassoTool.activateSelection();\n *   }\n * ];\n *\n * editorActions.register(actions);\n *\n * editorActions.isRegistered('spaceTool'); // true\n * ´´´\n *\n * @param  {Object} actions\n */\nEditorActions.prototype.register = function(actions, listener) {\n  var self = this;\n\n  if (typeof actions === 'string') {\n    return this._registerAction(actions, listener);\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(actions, function(listener, action) {\n    self._registerAction(action, listener);\n  });\n};\n\n/**\n * Registers a listener to an action key\n *\n * @param  {string} action\n * @param  {Function} listener\n */\nEditorActions.prototype._registerAction = function(action, listener) {\n  if (this.isRegistered(action)) {\n    throw error(action, IS_REGISTERED_ERROR);\n  }\n\n  this._actions[action] = listener;\n};\n\n/**\n * Unregister an existing action\n *\n * @param {string} action\n */\nEditorActions.prototype.unregister = function(action) {\n  if (!this.isRegistered(action)) {\n    throw error(action, NOT_REGISTERED_ERROR);\n  }\n\n  this._actions[action] = undefined;\n};\n\n/**\n * Returns the number of actions that are currently registered\n *\n * @return {number}\n */\nEditorActions.prototype.getActions = function() {\n  return Object.keys(this._actions);\n};\n\n/**\n * Checks wether the given action is registered\n *\n * @param {string} action\n *\n * @return {boolean}\n */\nEditorActions.prototype.isRegistered = function(action) {\n  return !!this._actions[action];\n};\n\n\nfunction error(action, message) {\n  return new Error(action + ' ' + message);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/editor-actions/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/editor-actions/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _EditorActions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EditorActions */ \"./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'editorActions' ],\n  editorActions: [ 'type', _EditorActions__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/editor-actions/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ GlobalConnect)\n/* harmony export */ });\nvar MARKER_OK = 'connect-ok',\n    MARKER_NOT_OK = 'connect-not-ok';\n\n/**\n * @class\n * @constructor\n *\n * @param {EventBus} eventBus\n * @param {Dragging} dragging\n * @param {Connect} connect\n * @param {Canvas} canvas\n * @param {ToolManager} toolManager\n * @param {Rules} rules\n * @param {Mouse} mouse\n */\nfunction GlobalConnect(\n    eventBus, dragging, connect,\n    canvas, toolManager, rules,\n    mouse) {\n\n  var self = this;\n\n  this._dragging = dragging;\n  this._rules = rules;\n  this._mouse = mouse;\n\n  toolManager.registerTool('global-connect', {\n    tool: 'global-connect',\n    dragging: 'global-connect.drag'\n  });\n\n  eventBus.on('global-connect.hover', function(event) {\n    var context = event.context,\n        startTarget = event.hover;\n\n    var canStartConnect = context.canStartConnect = self.canStartConnect(startTarget);\n\n    // simply ignore hover\n    if (canStartConnect === null) {\n      return;\n    }\n\n    context.startTarget = startTarget;\n\n    canvas.addMarker(startTarget, canStartConnect ? MARKER_OK : MARKER_NOT_OK);\n  });\n\n\n  eventBus.on([ 'global-connect.out', 'global-connect.cleanup' ], function(event) {\n    var startTarget = event.context.startTarget,\n        canStartConnect = event.context.canStartConnect;\n\n    if (startTarget) {\n      canvas.removeMarker(startTarget, canStartConnect ? MARKER_OK : MARKER_NOT_OK);\n    }\n  });\n\n\n  eventBus.on([ 'global-connect.ended' ], function(event) {\n    var context = event.context,\n        startTarget = context.startTarget,\n        startPosition = {\n          x: event.x,\n          y: event.y\n        };\n\n    var canStartConnect = self.canStartConnect(startTarget);\n\n    if (!canStartConnect) {\n      return;\n    }\n\n    eventBus.once('element.out', function() {\n      eventBus.once([ 'connect.ended', 'connect.canceled' ], function() {\n        eventBus.fire('global-connect.drag.ended');\n      });\n\n      connect.start(null, startTarget, startPosition);\n    });\n\n    return false;\n  });\n}\n\nGlobalConnect.$inject = [\n  'eventBus',\n  'dragging',\n  'connect',\n  'canvas',\n  'toolManager',\n  'rules',\n  'mouse'\n];\n\n/**\n * Initiates tool activity.\n */\nGlobalConnect.prototype.start = function(event, autoActivate) {\n  this._dragging.init(event, 'global-connect', {\n    autoActivate: autoActivate,\n    trapClick: false,\n    data: {\n      context: {}\n    }\n  });\n};\n\nGlobalConnect.prototype.toggle = function() {\n\n  if (this.isActive()) {\n    return this._dragging.cancel();\n  }\n\n  var mouseEvent = this._mouse.getLastMoveEvent();\n\n  return this.start(mouseEvent, !!mouseEvent);\n};\n\nGlobalConnect.prototype.isActive = function() {\n  var context = this._dragging.context();\n\n  return context && /^global-connect/.test(context.prefix);\n};\n\n/**\n * Check if source shape can initiate connection.\n *\n * @param  {Shape} startTarget\n * @return {boolean}\n */\nGlobalConnect.prototype.canStartConnect = function(startTarget) {\n  return this._rules.allowed('connection.start', { source: startTarget });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/global-connect/index.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/global-connect/index.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _connect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../connect */ \"./node_modules/diagram-js/lib/features/connect/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _GlobalConnect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./GlobalConnect */ \"./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _connect__WEBPACK_IMPORTED_MODULE_0__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n    _dragging__WEBPACK_IMPORTED_MODULE_2__.default,\n    _tool_manager__WEBPACK_IMPORTED_MODULE_3__.default,\n    _mouse__WEBPACK_IMPORTED_MODULE_4__.default\n  ],\n  globalConnect: [ 'type', _GlobalConnect__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/global-connect/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ GridSnapping)\n/* harmony export */ });\n/* harmony import */ var _snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../snapping/SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _GridUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./GridUtil */ \"./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar LOWER_PRIORITY = 1200;\r\nvar LOW_PRIORITY = 800;\r\n\r\n/**\r\n * Basic grid snapping that covers connecting, creating, moving, resizing shapes, moving bendpoints\r\n * and connection segments.\r\n */\r\nfunction GridSnapping(elementRegistry, eventBus, config) {\r\n\r\n  var active = !config || config.active !== false;\r\n\r\n  this._eventBus = eventBus;\r\n\r\n  var self = this;\r\n\r\n  eventBus.on('diagram.init', LOW_PRIORITY, function() {\r\n    self.setActive(active);\r\n  });\r\n\r\n  eventBus.on([\r\n    'create.move',\r\n    'create.end',\r\n    'bendpoint.move.move',\r\n    'bendpoint.move.end',\r\n    'connect.move',\r\n    'connect.end',\r\n    'connectionSegment.move.move',\r\n    'connectionSegment.move.end',\r\n    'resize.move',\r\n    'resize.end',\r\n    'shape.move.move',\r\n    'shape.move.end'\r\n  ], LOWER_PRIORITY, function(event) {\r\n    var originalEvent = event.originalEvent;\r\n\r\n    if (!self.active || (originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(originalEvent))) {\r\n      return;\r\n    }\r\n\r\n    var context = event.context,\r\n        gridSnappingContext = context.gridSnappingContext;\r\n\r\n    if (!gridSnappingContext) {\r\n      gridSnappingContext = context.gridSnappingContext = {};\r\n    }\r\n\r\n    [ 'x', 'y' ].forEach(function(axis) {\r\n      var options = {};\r\n\r\n      // allow snapping with offset\r\n      var snapOffset = getSnapOffset(event, axis, elementRegistry);\r\n\r\n      if (snapOffset) {\r\n        options.offset = snapOffset;\r\n      }\r\n\r\n      // allow snapping with min and max\r\n      var snapConstraints = getSnapConstraints(event, axis);\r\n\r\n      if (snapConstraints) {\r\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(options, snapConstraints);\r\n      }\r\n\r\n      if (!(0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.isSnapped)(event, axis)) {\r\n        self.snapEvent(event, axis, options);\r\n      }\r\n    });\r\n  });\r\n}\r\n\r\n/**\r\n * Snap an events x or y with optional min, max and offset.\r\n *\r\n * @param {Object} event\r\n * @param {string} axis\r\n * @param {number} [options.min]\r\n * @param {number} [options.max]\r\n * @param {number} [options.offset]\r\n */\r\nGridSnapping.prototype.snapEvent = function(event, axis, options) {\r\n  var snappedValue = this.snapValue(event[ axis ], options);\r\n\r\n  (0,_snapping_SnapUtil__WEBPACK_IMPORTED_MODULE_2__.setSnapped)(event, axis, snappedValue);\r\n};\r\n\r\n/**\r\n * Expose grid spacing for third parties (i.e. extensions).\r\n *\r\n * @return {number} spacing of grid dots\r\n */\r\nGridSnapping.prototype.getGridSpacing = function() {\r\n  return _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING;\r\n};\r\n\r\n/**\r\n * Snap value with optional min, max and offset.\r\n *\r\n * @param {number} value\r\n * @param {Object} options\r\n * @param {number} [options.min]\r\n * @param {number} [options.max]\r\n * @param {number} [options.offset]\r\n */\r\nGridSnapping.prototype.snapValue = function(value, options) {\r\n  var offset = 0;\r\n\r\n  if (options && options.offset) {\r\n    offset = options.offset;\r\n  }\r\n\r\n  value += offset;\r\n\r\n  value = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(value, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING);\r\n\r\n  var min, max;\r\n\r\n  if (options && options.min) {\r\n    min = options.min;\r\n\r\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(min)) {\r\n      min = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(min + offset, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING, 'ceil');\r\n\r\n      value = Math.max(value, min);\r\n    }\r\n  }\r\n\r\n  if (options && options.max) {\r\n    max = options.max;\r\n\r\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(max)) {\r\n      max = (0,_GridUtil__WEBPACK_IMPORTED_MODULE_3__.quantize)(max + offset, _GridUtil__WEBPACK_IMPORTED_MODULE_3__.SPACING, 'floor');\r\n\r\n      value = Math.min(value, max);\r\n    }\r\n  }\r\n\r\n  value -= offset;\r\n\r\n  return value;\r\n};\r\n\r\nGridSnapping.prototype.isActive = function() {\r\n  return this.active;\r\n};\r\n\r\nGridSnapping.prototype.setActive = function(active) {\r\n  this.active = active;\r\n\r\n  this._eventBus.fire('gridSnapping.toggle', { active: active });\r\n};\r\n\r\nGridSnapping.prototype.toggleActive = function() {\r\n  this.setActive(!this.active);\r\n};\r\n\r\nGridSnapping.$inject = [\r\n  'elementRegistry',\r\n  'eventBus',\r\n  'config.gridSnapping'\r\n];\r\n\r\n// helpers //////////\r\n\r\n/**\r\n * Get minimum and maximum snap constraints.\r\n * Constraints are cached.\r\n *\r\n * @param {Object} event\r\n * @param {Object} event.context\r\n * @param {string} axis\r\n *\r\n * @returns {boolean|Object}\r\n */\r\nfunction getSnapConstraints(event, axis) {\r\n  var context = event.context,\r\n      createConstraints = context.createConstraints,\r\n      resizeConstraints = context.resizeConstraints || {},\r\n      gridSnappingContext = context.gridSnappingContext,\r\n      snapConstraints = gridSnappingContext.snapConstraints;\r\n\r\n  // cache snap constraints\r\n  if (snapConstraints && snapConstraints[ axis ]) {\r\n    return snapConstraints[ axis ];\r\n  }\r\n\r\n  if (!snapConstraints) {\r\n    snapConstraints = gridSnappingContext.snapConstraints = {};\r\n  }\r\n\r\n  if (!snapConstraints[ axis ]) {\r\n    snapConstraints[ axis ] = {};\r\n  }\r\n\r\n  var direction = context.direction;\r\n\r\n  // create\r\n  if (createConstraints) {\r\n    if (isHorizontal(axis)) {\r\n      snapConstraints.x.min = createConstraints.left;\r\n      snapConstraints.x.max = createConstraints.right;\r\n    } else {\r\n      snapConstraints.y.min = createConstraints.top;\r\n      snapConstraints.y.max = createConstraints.bottom;\r\n    }\r\n  }\r\n\r\n  // resize\r\n  var minResizeConstraints = resizeConstraints.min,\r\n      maxResizeConstraints = resizeConstraints.max;\r\n\r\n  if (minResizeConstraints) {\r\n    if (isHorizontal(axis)) {\r\n\r\n      if (isWest(direction)) {\r\n        snapConstraints.x.max = minResizeConstraints.left;\r\n      } else {\r\n        snapConstraints.x.min = minResizeConstraints.right;\r\n      }\r\n\r\n    } else {\r\n\r\n      if (isNorth(direction)) {\r\n        snapConstraints.y.max = minResizeConstraints.top;\r\n      } else {\r\n        snapConstraints.y.min = minResizeConstraints.bottom;\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  if (maxResizeConstraints) {\r\n    if (isHorizontal(axis)) {\r\n\r\n      if (isWest(direction)) {\r\n        snapConstraints.x.min = maxResizeConstraints.left;\r\n      } else {\r\n        snapConstraints.x.max = maxResizeConstraints.right;\r\n      }\r\n\r\n    } else {\r\n\r\n      if (isNorth(direction)) {\r\n        snapConstraints.y.min = maxResizeConstraints.top;\r\n      } else {\r\n        snapConstraints.y.max = maxResizeConstraints.bottom;\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  return snapConstraints[ axis ];\r\n}\r\n\r\n/**\r\n * Get snap offset.\r\n * Offset is cached.\r\n *\r\n * @param {Object} event\r\n * @param {string} axis\r\n * @param {ElementRegistry} elementRegistry\r\n *\r\n * @returns {number}\r\n */\r\nfunction getSnapOffset(event, axis, elementRegistry) {\r\n  var context = event.context,\r\n      shape = event.shape,\r\n      gridSnappingContext = context.gridSnappingContext,\r\n      snapLocation = gridSnappingContext.snapLocation,\r\n      snapOffset = gridSnappingContext.snapOffset;\r\n\r\n  // cache snap offset\r\n  if (snapOffset && (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(snapOffset[ axis ])) {\r\n    return snapOffset[ axis ];\r\n  }\r\n\r\n  if (!snapOffset) {\r\n    snapOffset = gridSnappingContext.snapOffset = {};\r\n  }\r\n\r\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isNumber)(snapOffset[ axis ])) {\r\n    snapOffset[ axis ] = 0;\r\n  }\r\n\r\n  if (!shape) {\r\n    return snapOffset[ axis ];\r\n  }\r\n\r\n  if (!elementRegistry.get(shape.id)) {\r\n\r\n    if (isHorizontal(axis)) {\r\n      snapOffset[ axis ] += shape[ axis ] + shape.width / 2;\r\n    } else {\r\n      snapOffset[ axis ] += shape[ axis ] + shape.height / 2;\r\n    }\r\n  }\r\n\r\n  if (!snapLocation) {\r\n    return snapOffset[ axis ];\r\n  }\r\n\r\n  if (axis === 'x') {\r\n    if (/left/.test(snapLocation)) {\r\n      snapOffset[ axis ] -= shape.width / 2;\r\n    } else if (/right/.test(snapLocation)) {\r\n      snapOffset[ axis ] += shape.width / 2;\r\n    }\r\n  } else {\r\n    if (/top/.test(snapLocation)) {\r\n      snapOffset[ axis ] -= shape.height / 2;\r\n    } else if (/bottom/.test(snapLocation)) {\r\n      snapOffset[ axis ] += shape.height / 2;\r\n    }\r\n  }\r\n\r\n  return snapOffset[ axis ];\r\n}\r\n\r\nfunction isHorizontal(axis) {\r\n  return axis === 'x';\r\n}\r\n\r\nfunction isNorth(direction) {\r\n  return direction.indexOf('n') !== -1;\r\n}\r\n\r\nfunction isWest(direction) {\r\n  return direction.indexOf('w') !== -1;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js":
  /*!************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js ***!
    \************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"SPACING\": () => (/* binding */ SPACING),\n/* harmony export */   \"quantize\": () => (/* binding */ quantize)\n/* harmony export */ });\nvar SPACING = 10;\n\nfunction quantize(value, quantum, fn) {\n  if (!fn) {\n    fn = 'round';\n  }\n\n  return Math[ fn ](value / quantum) * quantum;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js ***!
    \***************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeBehavior)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * Integrates resizing with grid snapping.\r\n */\r\nfunction ResizeBehavior(eventBus, gridSnapping) {\r\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\r\n\r\n  this._gridSnapping = gridSnapping;\r\n\r\n  var self = this;\r\n\r\n  this.preExecute('shape.resize', function(event) {\r\n    var context = event.context,\r\n        hints = context.hints || {},\r\n        autoResize = hints.autoResize;\r\n\r\n    if (!autoResize) {\r\n      return;\r\n    }\r\n\r\n    var shape = context.shape,\r\n        newBounds = context.newBounds;\r\n\r\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(autoResize)) {\r\n      context.newBounds = self.snapComplex(newBounds, autoResize);\r\n    } else {\r\n      context.newBounds = self.snapSimple(shape, newBounds);\r\n    }\r\n  });\r\n}\r\n\r\nResizeBehavior.$inject = [\r\n  'eventBus',\r\n  'gridSnapping',\r\n  'modeling'\r\n];\r\n\r\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(ResizeBehavior, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\r\n\r\n/**\r\n * Snap width and height in relation to center.\r\n *\r\n * @param {djs.model.shape} shape\r\n * @param {Bounds} newBounds\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapSimple = function(shape, newBounds) {\r\n  var gridSnapping = this._gridSnapping;\r\n\r\n  newBounds.width = gridSnapping.snapValue(newBounds.width, {\r\n    min: newBounds.width\r\n  });\r\n\r\n  newBounds.height = gridSnapping.snapValue(newBounds.height, {\r\n    min: newBounds.height\r\n  });\r\n\r\n  newBounds.x = shape.x + (shape.width / 2) - (newBounds.width / 2);\r\n  newBounds.y = shape.y + (shape.height / 2) - (newBounds.height / 2);\r\n\r\n  return newBounds;\r\n};\r\n\r\n/**\r\n * Snap x, y, width and height according to given directions.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapComplex = function(newBounds, directions) {\r\n  if (/w|e/.test(directions)) {\r\n    newBounds = this.snapHorizontally(newBounds, directions);\r\n  }\r\n\r\n  if (/n|s/.test(directions)) {\r\n    newBounds = this.snapVertically(newBounds, directions);\r\n  }\r\n\r\n  return newBounds;\r\n};\r\n\r\n/**\r\n * Snap in one or both directions horizontally.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapHorizontally = function(newBounds, directions) {\r\n  var gridSnapping = this._gridSnapping,\r\n      west = /w/.test(directions),\r\n      east = /e/.test(directions);\r\n\r\n  var snappedNewBounds = {};\r\n\r\n  snappedNewBounds.width = gridSnapping.snapValue(newBounds.width, {\r\n    min: newBounds.width\r\n  });\r\n\r\n  if (east) {\r\n\r\n    // handle <we>\r\n    if (west) {\r\n      snappedNewBounds.x = gridSnapping.snapValue(newBounds.x, {\r\n        max: newBounds.x\r\n      });\r\n\r\n      snappedNewBounds.width += gridSnapping.snapValue(newBounds.x - snappedNewBounds.x, {\r\n        min: newBounds.x - snappedNewBounds.x\r\n      });\r\n    }\r\n\r\n    // handle <e>\r\n    else {\r\n      newBounds.x = newBounds.x + newBounds.width - snappedNewBounds.width;\r\n    }\r\n  }\r\n\r\n  // assign snapped x and width\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(newBounds, snappedNewBounds);\r\n\r\n  return newBounds;\r\n};\r\n\r\n/**\r\n * Snap in one or both directions vertically.\r\n *\r\n * @param {Bounds} newBounds\r\n * @param {string} directions - Directions as {n|w|s|e}.\r\n *\r\n * @returns {Bounds} Snapped bounds.\r\n */\r\nResizeBehavior.prototype.snapVertically = function(newBounds, directions) {\r\n  var gridSnapping = this._gridSnapping,\r\n      north = /n/.test(directions),\r\n      south = /s/.test(directions);\r\n\r\n  var snappedNewBounds = {};\r\n\r\n  snappedNewBounds.height = gridSnapping.snapValue(newBounds.height, {\r\n    min: newBounds.height\r\n  });\r\n\r\n  if (north) {\r\n\r\n    // handle <ns>\r\n    if (south) {\r\n      snappedNewBounds.y = gridSnapping.snapValue(newBounds.y, {\r\n        max: newBounds.y\r\n      });\r\n\r\n      snappedNewBounds.height += gridSnapping.snapValue(newBounds.y - snappedNewBounds.y, {\r\n        min: newBounds.y - snappedNewBounds.y\r\n      });\r\n    }\r\n\r\n    // handle <n>\r\n    else {\r\n      newBounds.y = newBounds.y + newBounds.height - snappedNewBounds.height;\r\n    }\r\n  }\r\n\r\n  // assign snapped y and height\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(newBounds, snappedNewBounds);\r\n\r\n  return newBounds;\r\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js":
  /*!******************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js ***!
    \******************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SpaceToolBehavior)\n/* harmony export */ });\nvar HIGH_PRIORITY = 2000;\r\n\r\n/**\r\n * Integrates space tool with grid snapping.\r\n */\r\nfunction SpaceToolBehavior(eventBus, gridSnapping) {\r\n  eventBus.on([\r\n    'spaceTool.move',\r\n    'spaceTool.end'\r\n  ], HIGH_PRIORITY, function(event) {\r\n    var context = event.context;\r\n\r\n    if (!context.initialized) {\r\n      return;\r\n    }\r\n\r\n    var axis = context.axis;\r\n\r\n    var snapped;\r\n\r\n    if (axis === 'x') {\r\n\r\n      // snap delta x to multiple of 10\r\n      snapped = gridSnapping.snapValue(event.dx);\r\n\r\n      event.x = event.x + snapped - event.dx;\r\n      event.dx = snapped;\r\n    } else {\r\n\r\n      // snap delta y to multiple of 10\r\n      snapped = gridSnapping.snapValue(event.dy);\r\n\r\n      event.y = event.y + snapped - event.dy;\r\n      event.dy = snapped;\r\n    }\r\n  });\r\n}\r\n\r\nSpaceToolBehavior.$inject = [\r\n  'eventBus',\r\n  'gridSnapping'\r\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ResizeBehavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResizeBehavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js\");\n/* harmony import */ var _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SpaceToolBehavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js\");\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n  __init__: [\r\n    'gridSnappingResizeBehavior',\r\n    'gridSnappingSpaceToolBehavior'\r\n  ],\r\n  gridSnappingResizeBehavior: [ 'type', _ResizeBehavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n  gridSnappingSpaceToolBehavior: [ 'type', _SpaceToolBehavior__WEBPACK_IMPORTED_MODULE_1__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/grid-snapping/index.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/grid-snapping/index.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _GridSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GridSnapping */ \"./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js\");\n/* harmony import */ var _behavior__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./behavior */ \"./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js\");\n\r\n\r\n\r\n\r\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n  __depends__: [ _behavior__WEBPACK_IMPORTED_MODULE_0__.default ],\r\n  __init__: [ 'gridSnapping' ],\r\n  gridSnapping: [ 'type', _GridSnapping__WEBPACK_IMPORTED_MODULE_1__.default ]\r\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/grid-snapping/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/hand-tool/HandTool.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/hand-tool/HandTool.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ HandTool)\n/* harmony export */ });\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../features/keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\n\n\nvar HIGH_PRIORITY = 1500;\nvar HAND_CURSOR = 'grab';\n\n\nfunction HandTool(\n    eventBus, canvas, dragging,\n    injector, toolManager, mouse) {\n\n  this._dragging = dragging;\n  this._mouse = mouse;\n\n  var self = this,\n      keyboard = injector.get('keyboard', false);\n\n  toolManager.registerTool('hand', {\n    tool: 'hand',\n    dragging: 'hand.move'\n  });\n\n  eventBus.on('element.mousedown', HIGH_PRIORITY, function(event) {\n\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event)) {\n      return;\n    }\n\n    self.activateMove(event.originalEvent, true);\n\n    return false;\n  });\n\n  keyboard && keyboard.addListener(HIGH_PRIORITY, function(e) {\n    if (!isSpace(e.keyEvent) || self.isActive()) {\n      return;\n    }\n\n    var mouseEvent = self._mouse.getLastMoveEvent();\n\n    self.activateMove(mouseEvent, !!mouseEvent);\n  }, 'keyboard.keydown');\n\n  keyboard && keyboard.addListener(HIGH_PRIORITY, function(e) {\n    if (!isSpace(e.keyEvent) || !self.isActive()) {\n      return;\n    }\n\n    self.toggle();\n  }, 'keyboard.keyup');\n\n  eventBus.on('hand.end', function(event) {\n    var target = event.originalEvent.target;\n\n    // only reactive on diagram click\n    // on some occasions, event.hover is not set and we have to check if the target is an svg\n    if (!event.hover && !(target instanceof SVGElement)) {\n      return false;\n    }\n\n    eventBus.once('hand.ended', function() {\n      self.activateMove(event.originalEvent, { reactivate: true });\n    });\n\n  });\n\n  eventBus.on('hand.move.move', function(event) {\n    var scale = canvas.viewbox().scale;\n\n    canvas.scroll({\n      dx: event.dx * scale,\n      dy: event.dy * scale\n    });\n  });\n\n  eventBus.on('hand.move.end', function(event) {\n    var context = event.context,\n        reactivate = context.reactivate;\n\n    // Don't reactivate if the user is using the keyboard keybinding\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event) && reactivate) {\n\n      eventBus.once('hand.move.ended', function(event) {\n        self.activateHand(event.originalEvent, true, true);\n      });\n\n    }\n\n    return false;\n  });\n\n}\n\nHandTool.$inject = [\n  'eventBus',\n  'canvas',\n  'dragging',\n  'injector',\n  'toolManager',\n  'mouse'\n];\n\n\nHandTool.prototype.activateMove = function(event, autoActivate, context) {\n  if (typeof autoActivate === 'object') {\n    context = autoActivate;\n    autoActivate = false;\n  }\n\n  this._dragging.init(event, 'hand.move', {\n    autoActivate: autoActivate,\n    cursor: HAND_CURSOR,\n    data: {\n      context: context || {}\n    }\n  });\n};\n\nHandTool.prototype.activateHand = function(event, autoActivate, reactivate) {\n  this._dragging.init(event, 'hand', {\n    trapClick: false,\n    autoActivate: autoActivate,\n    cursor: HAND_CURSOR,\n    data: {\n      context: {\n        reactivate: reactivate\n      }\n    }\n  });\n};\n\nHandTool.prototype.toggle = function() {\n  if (this.isActive()) {\n    return this._dragging.cancel();\n  }\n\n  var mouseEvent = this._mouse.getLastMoveEvent();\n\n  this.activateHand(mouseEvent, !!mouseEvent);\n};\n\nHandTool.prototype.isActive = function() {\n  var context = this._dragging.context();\n\n  if (context) {\n    return /^(hand|hand\\.move)$/.test(context.prefix);\n  }\n\n  return false;\n};\n\n// helpers //////////\n\nfunction isSpace(keyEvent) {\n  return (0,_features_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_1__.isKey)(' ', keyEvent);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hand-tool/HandTool.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/hand-tool/index.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/hand-tool/index.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _HandTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./HandTool */ \"./node_modules/diagram-js/lib/features/hand-tool/HandTool.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _tool_manager__WEBPACK_IMPORTED_MODULE_0__.default,\n    _mouse__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [ 'handTool' ],\n  handTool: [ 'type', _HandTool__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hand-tool/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ HoverFix)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\nvar HIGH_PRIORITY = 1500;\n\n\n/**\n * Browsers may swallow certain events (hover, out ...) if users are to\n * fast with the mouse.\n *\n * @see http://stackoverflow.com/questions/7448468/why-cant-i-reliably-capture-a-mouseout-event\n *\n * The fix implemented in this component ensure that we\n *\n * 1) have a hover state after a successful drag.move event\n * 2) have an out event when dragging leaves an element\n *\n * @param {ElementRegistry} elementRegistry\n * @param {EventBus} eventBus\n * @param {Injector} injector\n */\nfunction HoverFix(elementRegistry, eventBus, injector) {\n\n  var self = this;\n\n  var dragging = injector.get('dragging', false);\n\n  /**\n   * Make sure we are god damn hovering!\n   *\n   * @param {Event} dragging event\n   */\n  function ensureHover(event) {\n\n    if (event.hover) {\n      return;\n    }\n\n    var originalEvent = event.originalEvent;\n\n    var gfx = self._findTargetGfx(originalEvent);\n\n    var element = gfx && elementRegistry.get(gfx);\n\n    if (gfx && element) {\n\n      // 1) cancel current mousemove\n      event.stopPropagation();\n\n      // 2) emit fake hover for new target\n      dragging.hover({ element: element, gfx: gfx });\n\n      // 3) re-trigger move event\n      dragging.move(originalEvent);\n    }\n  }\n\n\n  if (dragging) {\n\n    /**\n     * We wait for a specific sequence of events before\n     * emitting a fake drag.hover event.\n     *\n     * Event Sequence:\n     *\n     * drag.start\n     * drag.move >> ensure we are hovering\n     */\n    eventBus.on('drag.start', function(event) {\n\n      eventBus.once('drag.move', HIGH_PRIORITY, function(event) {\n\n        ensureHover(event);\n\n      });\n\n    });\n  }\n\n\n  /**\n   * We make sure that element.out is always fired, even if the\n   * browser swallows an element.out event.\n   *\n   * Event sequence:\n   *\n   * element.hover\n   * (element.out >> sometimes swallowed)\n   * element.hover >> ensure we fired element.out\n   */\n  (function() {\n    var hoverGfx;\n    var hover;\n\n    eventBus.on('element.hover', function(event) {\n\n      // (1) remember current hover element\n      hoverGfx = event.gfx;\n      hover = event.element;\n    });\n\n    eventBus.on('element.hover', HIGH_PRIORITY, function(event) {\n\n      // (3) am I on an element still?\n      if (hover) {\n\n        // (4) that is a problem, gotta \"simulate the out\"\n        eventBus.fire('element.out', {\n          element: hover,\n          gfx: hoverGfx\n        });\n      }\n\n    });\n\n    eventBus.on('element.out', function() {\n\n      // (2) unset hover state if we correctly outed us *GG*\n      hoverGfx = null;\n      hover = null;\n    });\n\n  })();\n\n  this._findTargetGfx = function(event) {\n    var position,\n        target;\n\n    if (!(event instanceof MouseEvent)) {\n      return;\n    }\n\n    position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event);\n\n    // damn expensive operation, ouch!\n    target = document.elementFromPoint(position.x, position.y);\n\n    return getGfx(target);\n  };\n\n}\n\nHoverFix.$inject = [\n  'elementRegistry',\n  'eventBus',\n  'injector'\n];\n\n\n// helpers /////////////////////\n\nfunction getGfx(target) {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.closest)(target, 'svg, .djs-element', true);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/hover-fix/index.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/hover-fix/index.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _HoverFix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HoverFix */ \"./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'hoverFix'\n  ],\n  hoverFix: [ 'type', _HoverFix__WEBPACK_IMPORTED_MODULE_0__.default ],\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/hover-fix/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ InteractionEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/RenderUtil */ \"./node_modules/diagram-js/lib/util/RenderUtil.js\");\n\n\n\n\n\n\n\n\n\n\nfunction allowAll(event) { return true; }\n\nfunction allowPrimaryAndAuxiliary(event) {\n  return (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isPrimaryButton)(event) || (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isAuxiliaryButton)(event);\n}\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * A plugin that provides interaction events for diagram elements.\n *\n * It emits the following events:\n *\n *   * element.click\n *   * element.contextmenu\n *   * element.dblclick\n *   * element.hover\n *   * element.mousedown\n *   * element.mousemove\n *   * element.mouseup\n *   * element.out\n *\n * Each event is a tuple { element, gfx, originalEvent }.\n *\n * Canceling the event via Event#preventDefault()\n * prevents the original DOM operation.\n *\n * @param {EventBus} eventBus\n */\nfunction InteractionEvents(eventBus, elementRegistry, styles) {\n\n  var self = this;\n\n  /**\n   * Fire an interaction event.\n   *\n   * @param {string} type local event name, e.g. element.click.\n   * @param {DOMEvent} event native event\n   * @param {djs.model.Base} [element] the diagram element to emit the event on;\n   *                                   defaults to the event target\n   */\n  function fire(type, event, element) {\n\n    if (isIgnored(type, event)) {\n      return;\n    }\n\n    var target, gfx, returnValue;\n\n    if (!element) {\n      target = event.delegateTarget || event.target;\n\n      if (target) {\n        gfx = target;\n        element = elementRegistry.get(gfx);\n      }\n    } else {\n      gfx = elementRegistry.getGraphics(element);\n    }\n\n    if (!gfx || !element) {\n      return;\n    }\n\n    returnValue = eventBus.fire(type, {\n      element: element,\n      gfx: gfx,\n      originalEvent: event\n    });\n\n    if (returnValue === false) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n  }\n\n  // TODO(nikku): document this\n  var handlers = {};\n\n  function mouseHandler(localEventName) {\n    return handlers[localEventName];\n  }\n\n  function isIgnored(localEventName, event) {\n\n    var filter = ignoredFilters[localEventName] || _util_Mouse__WEBPACK_IMPORTED_MODULE_0__.isPrimaryButton;\n\n    // only react on left mouse button interactions\n    // except for interaction events that are enabled\n    // for secundary mouse button\n    return !filter(event);\n  }\n\n  var bindings = {\n    click: 'element.click',\n    contextmenu: 'element.contextmenu',\n    dblclick: 'element.dblclick',\n    mousedown: 'element.mousedown',\n    mousemove: 'element.mousemove',\n    mouseover: 'element.hover',\n    mouseout: 'element.out',\n    mouseup: 'element.mouseup',\n  };\n\n  var ignoredFilters = {\n    'element.contextmenu': allowAll,\n    'element.mousedown': allowPrimaryAndAuxiliary,\n    'element.mouseup': allowPrimaryAndAuxiliary,\n    'element.click': allowPrimaryAndAuxiliary,\n    'element.dblclick': allowPrimaryAndAuxiliary\n  };\n\n\n  // manual event trigger //////////\n\n  /**\n   * Trigger an interaction event (based on a native dom event)\n   * on the target shape or connection.\n   *\n   * @param {string} eventName the name of the triggered DOM event\n   * @param {MouseEvent} event\n   * @param {djs.model.Base} targetElement\n   */\n  function triggerMouseEvent(eventName, event, targetElement) {\n\n    // i.e. element.mousedown...\n    var localEventName = bindings[eventName];\n\n    if (!localEventName) {\n      throw new Error('unmapped DOM event name <' + eventName + '>');\n    }\n\n    return fire(localEventName, event, targetElement);\n  }\n\n\n  var ELEMENT_SELECTOR = 'svg, .djs-element';\n\n  // event handling ///////\n\n  function registerEvent(node, event, localEvent, ignoredFilter) {\n\n    var handler = handlers[localEvent] = function(event) {\n      fire(localEvent, event);\n    };\n\n    if (ignoredFilter) {\n      ignoredFilters[localEvent] = ignoredFilter;\n    }\n\n    handler.$delegate = min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(node, ELEMENT_SELECTOR, event, handler);\n  }\n\n  function unregisterEvent(node, event, localEvent) {\n\n    var handler = mouseHandler(localEvent);\n\n    if (!handler) {\n      return;\n    }\n\n    min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.unbind(node, event, handler.$delegate);\n  }\n\n  function registerEvents(svg) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(bindings, function(val, key) {\n      registerEvent(svg, key, val);\n    });\n  }\n\n  function unregisterEvents(svg) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(bindings, function(val, key) {\n      unregisterEvent(svg, key, val);\n    });\n  }\n\n  eventBus.on('canvas.destroy', function(event) {\n    unregisterEvents(event.svg);\n  });\n\n  eventBus.on('canvas.init', function(event) {\n    registerEvents(event.svg);\n  });\n\n\n  // hit box updating ////////////////\n\n  eventBus.on([ 'shape.added', 'connection.added' ], function(event) {\n    var element = event.element,\n        gfx = event.gfx;\n\n    eventBus.fire('interactionEvents.createHit', { element: element, gfx: gfx });\n  });\n\n  // Update djs-hit on change.\n  // A low priortity is necessary, because djs-hit of labels has to be updated\n  // after the label bounds have been updated in the renderer.\n  eventBus.on([\n    'shape.changed',\n    'connection.changed'\n  ], LOW_PRIORITY, function(event) {\n\n    var element = event.element,\n        gfx = event.gfx;\n\n    eventBus.fire('interactionEvents.updateHit', { element: element, gfx: gfx });\n  });\n\n  eventBus.on('interactionEvents.createHit', LOW_PRIORITY, function(event) {\n    var element = event.element,\n        gfx = event.gfx;\n\n    self.createDefaultHit(element, gfx);\n  });\n\n  eventBus.on('interactionEvents.updateHit', function(event) {\n    var element = event.element,\n        gfx = event.gfx;\n\n    self.updateDefaultHit(element, gfx);\n  });\n\n\n  // hit styles ////////////\n\n  var STROKE_HIT_STYLE = createHitStyle('djs-hit djs-hit-stroke');\n\n  var CLICK_STROKE_HIT_STYLE = createHitStyle('djs-hit djs-hit-click-stroke');\n\n  var ALL_HIT_STYLE = createHitStyle('djs-hit djs-hit-all');\n\n  var HIT_TYPES = {\n    'all': ALL_HIT_STYLE,\n    'click-stroke': CLICK_STROKE_HIT_STYLE,\n    'stroke': STROKE_HIT_STYLE\n  };\n\n  function createHitStyle(classNames, attrs) {\n\n    attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n      stroke: 'white',\n      strokeWidth: 15\n    }, attrs || {});\n\n    return styles.cls(classNames, [ 'no-fill', 'no-border' ], attrs);\n  }\n\n\n  // style helpers ///////////////\n\n  function applyStyle(hit, type) {\n\n    var attrs = HIT_TYPES[type];\n\n    if (!attrs) {\n      throw new Error('invalid hit type <' + type + '>');\n    }\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, attrs);\n\n    return hit;\n  }\n\n  function appendHit(gfx, hit) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(gfx, hit);\n  }\n\n\n  // API\n\n  /**\n   * Remove hints on the given graphics.\n   *\n   * @param {SVGElement} gfx\n   */\n  this.removeHits = function(gfx) {\n    var hits = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.queryAll)('.djs-hit', gfx);\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(hits, tiny_svg__WEBPACK_IMPORTED_MODULE_3__.remove);\n  };\n\n  /**\n   * Create default hit for the given element.\n   *\n   * @param {djs.model.Base} element\n   * @param {SVGElement} gfx\n   *\n   * @return {SVGElement} created hit\n   */\n  this.createDefaultHit = function(element, gfx) {\n    var waypoints = element.waypoints,\n        isFrame = element.isFrame,\n        boxType;\n\n    if (waypoints) {\n      return this.createWaypointsHit(gfx, waypoints);\n    } else {\n\n      boxType = isFrame ? 'stroke' : 'all';\n\n      return this.createBoxHit(gfx, boxType, {\n        width: element.width,\n        height: element.height\n      });\n    }\n  };\n\n  /**\n   * Create hits for the given waypoints.\n   *\n   * @param {SVGElement} gfx\n   * @param {Array<Point>} waypoints\n   *\n   * @return {SVGElement}\n   */\n  this.createWaypointsHit = function(gfx, waypoints) {\n\n    var hit = (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.createLine)(waypoints);\n\n    applyStyle(hit, 'stroke');\n\n    appendHit(gfx, hit);\n\n    return hit;\n  };\n\n  /**\n   * Create hits for a box.\n   *\n   * @param {SVGElement} gfx\n   * @param {string} hitType\n   * @param {Object} attrs\n   *\n   * @return {SVGElement}\n   */\n  this.createBoxHit = function(gfx, type, attrs) {\n\n    attrs = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({\n      x: 0,\n      y: 0\n    }, attrs);\n\n    var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n    applyStyle(hit, type);\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, attrs);\n\n    appendHit(gfx, hit);\n\n    return hit;\n  };\n\n  /**\n   * Update default hit of the element.\n   *\n   * @param  {djs.model.Base} element\n   * @param  {SVGElement} gfx\n   *\n   * @return {SVGElement} updated hit\n   */\n  this.updateDefaultHit = function(element, gfx) {\n\n    var hit = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.query)('.djs-hit', gfx);\n\n    if (!hit) {\n      return;\n    }\n\n    if (element.waypoints) {\n      (0,_util_RenderUtil__WEBPACK_IMPORTED_MODULE_4__.updateLine)(hit, element.waypoints);\n    } else {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, {\n        width: element.width,\n        height: element.height\n      });\n    }\n\n    return hit;\n  };\n\n  this.fire = fire;\n\n  this.triggerMouseEvent = triggerMouseEvent;\n\n  this.mouseHandler = mouseHandler;\n\n  this.registerEvent = registerEvent;\n  this.unregisterEvent = unregisterEvent;\n}\n\n\nInteractionEvents.$inject = [\n  'eventBus',\n  'elementRegistry',\n  'styles'\n];\n\n\n/**\n * An event indicating that the mouse hovered over an element\n *\n * @event element.hover\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has left an element\n *\n * @event element.out\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has clicked an element\n *\n * @event element.click\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has double clicked an element\n *\n * @event element.dblclick\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has gone down on an element.\n *\n * @event element.mousedown\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the mouse has gone up on an element.\n *\n * @event element.mouseup\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n/**\n * An event indicating that the context menu action is triggered\n * via mouse or touch controls.\n *\n * @event element.contextmenu\n *\n * @type {Object}\n * @property {djs.model.Base} element\n * @property {SVGElement} gfx\n * @property {Event} originalEvent\n */\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/interaction-events/index.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/interaction-events/index.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _InteractionEvents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InteractionEvents */ \"./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'interactionEvents' ],\n  interactionEvents: [ 'type', _InteractionEvents__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/interaction-events/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js":
  /*!***********************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js ***!
    \***********************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ KeyboardMoveSelection)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_CONFIG = {\n  moveSpeed: 1,\n  moveSpeedAccelerated: 10\n};\n\nvar HIGHER_PRIORITY = 1500;\n\nvar LEFT = 'left';\nvar UP = 'up';\nvar RIGHT = 'right';\nvar DOWN = 'down';\n\nvar KEY_TO_DIRECTION = {\n  ArrowLeft: LEFT,\n  Left: LEFT,\n  ArrowUp: UP,\n  Up: UP,\n  ArrowRight: RIGHT,\n  Right: RIGHT,\n  ArrowDown: DOWN,\n  Down: DOWN\n};\n\nvar DIRECTIONS_DELTA = {\n  left: function(speed) {\n    return {\n      x: -speed,\n      y: 0\n    };\n  },\n  up: function(speed) {\n    return {\n      x: 0,\n      y: -speed\n    };\n  },\n  right: function(speed) {\n    return {\n      x: speed,\n      y: 0\n    };\n  },\n  down: function(speed) {\n    return {\n      x: 0,\n      y: speed\n    };\n  }\n};\n\n\n/**\n * Enables to move selection with keyboard arrows.\n * Use with Shift for modified speed (default=1, with Shift=10).\n * Pressed Cmd/Ctrl turns the feature off.\n *\n * @param {Object} config\n * @param {number} [config.moveSpeed=1]\n * @param {number} [config.moveSpeedAccelerated=10]\n * @param {Keyboard} keyboard\n * @param {Modeling} modeling\n * @param {Selection} selection\n */\nfunction KeyboardMoveSelection(\n    config,\n    keyboard,\n    modeling,\n    rules,\n    selection\n) {\n\n  var self = this;\n\n  this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, DEFAULT_CONFIG, config || {});\n\n  keyboard.addListener(HIGHER_PRIORITY, function(event) {\n\n    var keyEvent = event.keyEvent;\n\n    var direction = KEY_TO_DIRECTION[keyEvent.key];\n\n    if (!direction) {\n      return;\n    }\n\n    if (keyboard.isCmd(keyEvent)) {\n      return;\n    }\n\n    var accelerated = keyboard.isShift(keyEvent);\n\n    self.moveSelection(direction, accelerated);\n\n    return true;\n  });\n\n\n  /**\n   * Move selected elements in the given direction,\n   * optionally specifying accelerated movement.\n   *\n   * @param {string} direction\n   * @param {boolean} [accelerated=false]\n   */\n  this.moveSelection = function(direction, accelerated) {\n\n    var selectedElements = selection.get();\n\n    if (!selectedElements.length) {\n      return;\n    }\n\n    var speed = this._config[\n      accelerated ?\n        'moveSpeedAccelerated' :\n        'moveSpeed'\n    ];\n\n    var delta = DIRECTIONS_DELTA[direction](speed);\n\n    var canMove = rules.allowed('elements.move', {\n      shapes: selectedElements\n    });\n\n    if (canMove) {\n      modeling.moveElements(selectedElements, delta);\n    }\n  };\n\n}\n\nKeyboardMoveSelection.$inject = [\n  'config.keyboardMoveSelection',\n  'keyboard',\n  'modeling',\n  'rules',\n  'selection'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _KeyboardMoveSelection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KeyboardMoveSelection */ \"./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _keyboard__WEBPACK_IMPORTED_MODULE_0__.default,\n    _selection__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [\n    'keyboardMoveSelection'\n  ],\n  keyboardMoveSelection: [ 'type', _KeyboardMoveSelection__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard/Keyboard.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard/Keyboard.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Keyboard)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\n\n\n\n\nvar KEYDOWN_EVENT = 'keyboard.keydown',\n    KEYUP_EVENT = 'keyboard.keyup';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A keyboard abstraction that may be activated and\n * deactivated by users at will, consuming key events\n * and triggering diagram actions.\n *\n * For keys pressed down, keyboard fires `keyboard.keydown` event.\n * The event context contains one field which is `KeyboardEvent` event.\n *\n * The implementation fires the following key events that allow\n * other components to hook into key handling:\n *\n *  - keyboard.bind\n *  - keyboard.unbind\n *  - keyboard.init\n *  - keyboard.destroy\n *\n * All events contain one field which is node.\n *\n * A default binding for the keyboard may be specified via the\n * `keyboard.bindTo` configuration option.\n *\n * @param {Config} config\n * @param {EventBus} eventBus\n */\nfunction Keyboard(config, eventBus) {\n  var self = this;\n\n  this._config = config || {};\n  this._eventBus = eventBus;\n\n  this._keydownHandler = this._keydownHandler.bind(this);\n  this._keyupHandler = this._keyupHandler.bind(this);\n\n  // properly clean dom registrations\n  eventBus.on('diagram.destroy', function() {\n    self._fire('destroy');\n\n    self.unbind();\n  });\n\n  eventBus.on('diagram.init', function() {\n    self._fire('init');\n  });\n\n  eventBus.on('attach', function() {\n    if (config && config.bindTo) {\n      self.bind(config.bindTo);\n    }\n  });\n\n  eventBus.on('detach', function() {\n    self.unbind();\n  });\n}\n\nKeyboard.$inject = [\n  'config.keyboard',\n  'eventBus'\n];\n\nKeyboard.prototype._keydownHandler = function(event) {\n  this._keyHandler(event, KEYDOWN_EVENT);\n};\n\nKeyboard.prototype._keyupHandler = function(event) {\n  this._keyHandler(event, KEYUP_EVENT);\n};\n\nKeyboard.prototype._keyHandler = function(event, type) {\n  var target = event.target,\n      eventBusResult;\n\n  if (isInput(target)) {\n    return;\n  }\n\n  var context = {\n    keyEvent: event\n  };\n\n  eventBusResult = this._eventBus.fire(type || KEYDOWN_EVENT, context);\n\n  if (eventBusResult) {\n    event.preventDefault();\n  }\n};\n\nKeyboard.prototype.bind = function(node) {\n\n  // make sure that the keyboard is only bound once to the DOM\n  this.unbind();\n\n  this._node = node;\n\n  // bind key events\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(node, 'keydown', this._keydownHandler, true);\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(node, 'keyup', this._keyupHandler, true);\n\n  this._fire('bind');\n};\n\nKeyboard.prototype.getBinding = function() {\n  return this._node;\n};\n\nKeyboard.prototype.unbind = function() {\n  var node = this._node;\n\n  if (node) {\n    this._fire('unbind');\n\n    // unbind key events\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(node, 'keydown', this._keydownHandler, true);\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.event.unbind(node, 'keyup', this._keyupHandler, true);\n  }\n\n  this._node = null;\n};\n\nKeyboard.prototype._fire = function(event) {\n  this._eventBus.fire('keyboard.' + event, { node: this._node });\n};\n\n/**\n * Add a listener function that is notified with `KeyboardEvent` whenever\n * the keyboard is bound and the user presses a key. If no priority is\n * provided, the default value of 1000 is used.\n *\n * @param {number} [priority]\n * @param {Function} listener\n * @param {string} type\n */\nKeyboard.prototype.addListener = function(priority, listener, type) {\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(priority)) {\n    type = listener;\n    listener = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  this._eventBus.on(type || KEYDOWN_EVENT, priority, listener);\n};\n\nKeyboard.prototype.removeListener = function(listener, type) {\n  this._eventBus.off(type || KEYDOWN_EVENT, listener);\n};\n\nKeyboard.prototype.hasModifier = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.hasModifier;\nKeyboard.prototype.isCmd = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isCmd;\nKeyboard.prototype.isShift = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isShift;\nKeyboard.prototype.isKey = _KeyboardUtil__WEBPACK_IMPORTED_MODULE_2__.isKey;\n\n\n\n// helpers ///////\n\nfunction isInput(target) {\n  return target && ((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.matches)(target, 'input, textarea') || target.contentEditable === 'true');\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/Keyboard.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"KEYCODE_C\": () => (/* binding */ KEYCODE_C),\n/* harmony export */   \"KEYCODE_V\": () => (/* binding */ KEYCODE_V),\n/* harmony export */   \"KEYCODE_Y\": () => (/* binding */ KEYCODE_Y),\n/* harmony export */   \"KEYCODE_Z\": () => (/* binding */ KEYCODE_Z),\n/* harmony export */   \"KEYS_COPY\": () => (/* binding */ KEYS_COPY),\n/* harmony export */   \"KEYS_PASTE\": () => (/* binding */ KEYS_PASTE),\n/* harmony export */   \"KEYS_REDO\": () => (/* binding */ KEYS_REDO),\n/* harmony export */   \"KEYS_UNDO\": () => (/* binding */ KEYS_UNDO),\n/* harmony export */   \"default\": () => (/* binding */ KeyboardBindings)\n/* harmony export */ });\n/* harmony import */ var _KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n\n\nvar LOW_PRIORITY = 500;\n\nvar KEYCODE_C = 67;\nvar KEYCODE_V = 86;\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\n\nvar KEYS_COPY = ['c', 'C', KEYCODE_C ];\nvar KEYS_PASTE = [ 'v', 'V', KEYCODE_V ];\nvar KEYS_REDO = [ 'y', 'Y', KEYCODE_Y ];\nvar KEYS_UNDO = [ 'z', 'Z', KEYCODE_Z ];\n\n\n/**\n * Adds default keyboard bindings.\n *\n * This does not pull in any features will bind only actions that\n * have previously been registered against the editorActions component.\n *\n * @param {EventBus} eventBus\n * @param {Keyboard} keyboard\n */\nfunction KeyboardBindings(eventBus, keyboard) {\n\n  var self = this;\n\n  eventBus.on('editorActions.init', LOW_PRIORITY, function(event) {\n\n    var editorActions = event.editorActions;\n\n    self.registerBindings(keyboard, editorActions);\n  });\n}\n\nKeyboardBindings.$inject = [\n  'eventBus',\n  'keyboard'\n];\n\n\n/**\n * Register available keyboard bindings.\n *\n * @param {Keyboard} keyboard\n * @param {EditorActions} editorActions\n */\nKeyboardBindings.prototype.registerBindings = function(keyboard, editorActions) {\n\n  /**\n   * Add keyboard binding if respective editor action\n   * is registered.\n   *\n   * @param {string} action name\n   * @param {Function} fn that implements the key binding\n   */\n  function addListener(action, fn) {\n\n    if (editorActions.isRegistered(action)) {\n      keyboard.addListener(fn);\n    }\n  }\n\n\n  // undo\n  // (CTRL|CMD) + Z\n  addListener('undo', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && !(0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isShift)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_UNDO, event)) {\n      editorActions.trigger('undo');\n\n      return true;\n    }\n  });\n\n  // redo\n  // CTRL + Y\n  // CMD + SHIFT + Z\n  addListener('redo', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_REDO, event) || ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_UNDO, event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isShift)(event)))) {\n      editorActions.trigger('redo');\n\n      return true;\n    }\n  });\n\n  // copy\n  // CTRL/CMD + C\n  addListener('copy', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_COPY, event)) {\n      editorActions.trigger('copy');\n\n      return true;\n    }\n  });\n\n  // paste\n  // CTRL/CMD + V\n  addListener('paste', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(KEYS_PASTE, event)) {\n      editorActions.trigger('paste');\n\n      return true;\n    }\n  });\n\n  // zoom in one step\n  // CTRL/CMD + +\n  addListener('stepZoom', function(context) {\n\n    var event = context.keyEvent;\n\n    // quirk: it has to be triggered by `=` as well to work on international keyboard layout\n    // cf: https://github.com/bpmn-io/bpmn-js/issues/1362#issuecomment-722989754\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)([ '+', 'Add', '=' ], event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n      editorActions.trigger('stepZoom', { value: 1 });\n\n      return true;\n    }\n  });\n\n  // zoom out one step\n  // CTRL + -\n  addListener('stepZoom', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)([ '-', 'Subtract' ], event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n      editorActions.trigger('stepZoom', { value: -1 });\n\n      return true;\n    }\n  });\n\n  // zoom to the default level\n  // CTRL + 0\n  addListener('zoom', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)('0', event) && (0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event)) {\n      editorActions.trigger('zoom', { value: 1 });\n\n      return true;\n    }\n  });\n\n  // delete selected element\n  // DEL\n  addListener('removeSelection', function(context) {\n\n    var event = context.keyEvent;\n\n    if ((0,_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isKey)(['Backspace', 'Delete', 'Del' ], event)) {\n      editorActions.trigger('removeSelection');\n\n      return true;\n    }\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"hasModifier\": () => (/* binding */ hasModifier),\n/* harmony export */   \"isCmd\": () => (/* binding */ isCmd),\n/* harmony export */   \"isKey\": () => (/* binding */ isKey),\n/* harmony export */   \"isShift\": () => (/* binding */ isShift)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n/**\r\n * Returns true if event was triggered with any modifier\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction hasModifier(event) {\r\n  return (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey);\r\n}\r\n\r\n/**\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isCmd(event) {\r\n\r\n  // ensure we don't react to AltGr\r\n  // (mapped to CTRL + ALT)\r\n  if (event.altKey) {\r\n    return false;\r\n  }\r\n\r\n  return event.ctrlKey || event.metaKey;\r\n}\r\n\r\n/**\r\n * Checks if key pressed is one of provided keys.\r\n *\r\n * @param {string|Array<string>} keys\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isKey(keys, event) {\r\n  keys = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(keys) ? keys : [ keys ];\r\n\r\n  return keys.indexOf(event.key) !== -1 || keys.indexOf(event.keyCode) !== -1;\r\n}\r\n\r\n/**\r\n * @param {KeyboardEvent} event\r\n */\r\nfunction isShift(event) {\r\n  return event.shiftKey;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/keyboard/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/keyboard/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/Keyboard.js\");\n/* harmony import */ var _KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KeyboardBindings */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'keyboard', 'keyboardBindings' ],\n  keyboard: [ 'type', _Keyboard__WEBPACK_IMPORTED_MODULE_0__.default ],\n  keyboardBindings: [ 'type', _KeyboardBindings__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/keyboard/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/label-support/LabelSupport.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/label-support/LabelSupport.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LabelSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\nvar LOW_PRIORITY = 250,\n    HIGH_PRIORITY = 1400;\n\n\n\n\n\n\n\n\n/**\n * A handler that makes sure labels are properly moved with\n * their label targets.\n *\n * @param {didi.Injector} injector\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n */\nfunction LabelSupport(injector, eventBus, modeling) {\n\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  var movePreview = injector.get('movePreview', false);\n\n  // remove labels from the collection that are being\n  // moved with other elements anyway\n  eventBus.on('shape.move.start', HIGH_PRIORITY, function(e) {\n\n    var context = e.context,\n        shapes = context.shapes,\n        validatedShapes = context.validatedShapes;\n\n    context.shapes = removeLabels(shapes);\n    context.validatedShapes = removeLabels(validatedShapes);\n  });\n\n  // add labels to visual's group\n  movePreview && eventBus.on('shape.move.start', LOW_PRIORITY, function(e) {\n\n    var context = e.context,\n        shapes = context.shapes;\n\n    var labels = [];\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(shapes, function(element) {\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(element.labels, function(label) {\n\n        if (!label.hidden && context.shapes.indexOf(label) === -1) {\n          labels.push(label);\n        }\n\n        if (element.labelTarget) {\n          labels.push(element);\n        }\n      });\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(labels, function(label) {\n      movePreview.makeDraggable(context, label, true);\n    });\n\n  });\n\n  // add all labels to move closure\n  this.preExecuted('elements.move', HIGH_PRIORITY, function(e) {\n    var context = e.context,\n        closure = context.closure,\n        enclosedElements = closure.enclosedElements;\n\n    var enclosedLabels = [];\n\n    // find labels that are not part of\n    // move closure yet and add them\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(enclosedElements, function(element) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(element.labels, function(label) {\n\n        if (!enclosedElements[label.id]) {\n          enclosedLabels.push(label);\n        }\n      });\n    });\n\n    closure.addAll(enclosedLabels);\n  });\n\n\n  this.preExecute([\n    'connection.delete',\n    'shape.delete'\n  ], function(e) {\n\n    var context = e.context,\n        element = context.connection || context.shape;\n\n    (0,_util_Removal__WEBPACK_IMPORTED_MODULE_3__.saveClear)(element.labels, function(label) {\n      modeling.removeShape(label, { nested: true });\n    });\n  });\n\n\n  this.execute('shape.delete', function(e) {\n\n    var context = e.context,\n        shape = context.shape,\n        labelTarget = shape.labelTarget;\n\n    // unset labelTarget\n    if (labelTarget) {\n      context.labelTargetIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_4__.indexOf)(labelTarget.labels, shape);\n      context.labelTarget = labelTarget;\n\n      shape.labelTarget = null;\n    }\n  });\n\n  this.revert('shape.delete', function(e) {\n\n    var context = e.context,\n        shape = context.shape,\n        labelTarget = context.labelTarget,\n        labelTargetIndex = context.labelTargetIndex;\n\n    // restore labelTarget\n    if (labelTarget) {\n      (0,_util_Collections__WEBPACK_IMPORTED_MODULE_4__.add)(labelTarget.labels, shape, labelTargetIndex);\n\n      shape.labelTarget = labelTarget;\n    }\n  });\n\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(LabelSupport, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\nLabelSupport.$inject = [\n  'injector',\n  'eventBus',\n  'modeling'\n];\n\n\n/**\n * Return a filtered list of elements that do not\n * contain attached elements with hosts being part\n * of the selection.\n *\n * @param  {Array<djs.model.Base>} elements\n *\n * @return {Array<djs.model.Base>} filtered\n */\nfunction removeLabels(elements) {\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(elements, function(element) {\n\n    // filter out labels that are move together\n    // with their label targets\n    return elements.indexOf(element.labelTarget) === -1;\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/label-support/LabelSupport.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/label-support/index.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/label-support/index.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _LabelSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LabelSupport */ \"./node_modules/diagram-js/lib/features/label-support/LabelSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'labelSupport'],\n  labelSupport: [ 'type', _LabelSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/label-support/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LassoTool)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar LASSO_TOOL_CURSOR = 'crosshair';\n\n\nfunction LassoTool(\n    eventBus, canvas, dragging,\n    elementRegistry, selection, toolManager,\n    mouse) {\n\n  this._selection = selection;\n  this._dragging = dragging;\n  this._mouse = mouse;\n\n  var self = this;\n\n  // lasso visuals implementation\n\n  /**\n  * A helper that realizes the selection box visual\n  */\n  var visuals = {\n\n    create: function(context) {\n      var container = canvas.getDefaultLayer(),\n          frame;\n\n      frame = context.frame = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, {\n        class: 'djs-lasso-overlay',\n        width:  1,\n        height: 1,\n        x: 0,\n        y: 0\n      });\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(container, frame);\n    },\n\n    update: function(context) {\n      var frame = context.frame,\n          bbox = context.bbox;\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, {\n        x: bbox.x,\n        y: bbox.y,\n        width: bbox.width,\n        height: bbox.height\n      });\n    },\n\n    remove: function(context) {\n\n      if (context.frame) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.frame);\n      }\n    }\n  };\n\n  toolManager.registerTool('lasso', {\n    tool: 'lasso.selection',\n    dragging: 'lasso'\n  });\n\n  eventBus.on('lasso.selection.end', function(event) {\n    var target = event.originalEvent.target;\n\n    // only reactive on diagram click\n    // on some occasions, event.hover is not set and we have to check if the target is an svg\n    if (!event.hover && !(target instanceof SVGElement)) {\n      return;\n    }\n\n    eventBus.once('lasso.selection.ended', function() {\n      self.activateLasso(event.originalEvent, true);\n    });\n  });\n\n  // lasso interaction implementation\n\n  eventBus.on('lasso.end', function(event) {\n\n    var bbox = toBBox(event);\n\n    var elements = elementRegistry.filter(function(element) {\n      return element;\n    });\n\n    self.select(elements, bbox);\n  });\n\n  eventBus.on('lasso.start', function(event) {\n\n    var context = event.context;\n\n    context.bbox = toBBox(event);\n    visuals.create(context);\n  });\n\n  eventBus.on('lasso.move', function(event) {\n\n    var context = event.context;\n\n    context.bbox = toBBox(event);\n    visuals.update(context);\n  });\n\n  eventBus.on('lasso.cleanup', function(event) {\n\n    var context = event.context;\n\n    visuals.remove(context);\n  });\n\n\n  // event integration\n\n  eventBus.on('element.mousedown', 1500, function(event) {\n\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasSecondaryModifier)(event)) {\n      return;\n    }\n\n    self.activateLasso(event.originalEvent);\n\n    // we've handled the event\n    return true;\n  });\n}\n\nLassoTool.$inject = [\n  'eventBus',\n  'canvas',\n  'dragging',\n  'elementRegistry',\n  'selection',\n  'toolManager',\n  'mouse'\n];\n\n\nLassoTool.prototype.activateLasso = function(event, autoActivate) {\n\n  this._dragging.init(event, 'lasso', {\n    autoActivate: autoActivate,\n    cursor: LASSO_TOOL_CURSOR,\n    data: {\n      context: {}\n    }\n  });\n};\n\nLassoTool.prototype.activateSelection = function(event, autoActivate) {\n\n  this._dragging.init(event, 'lasso.selection', {\n    trapClick: false,\n    autoActivate: autoActivate,\n    cursor: LASSO_TOOL_CURSOR,\n    data: {\n      context: {}\n    }\n  });\n};\n\nLassoTool.prototype.select = function(elements, bbox) {\n  var selectedElements = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getEnclosedElements)(elements, bbox);\n\n  this._selection.select((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.values)(selectedElements));\n};\n\nLassoTool.prototype.toggle = function() {\n  if (this.isActive()) {\n    return this._dragging.cancel();\n  }\n\n  var mouseEvent = this._mouse.getLastMoveEvent();\n\n  this.activateSelection(mouseEvent, !!mouseEvent);\n};\n\nLassoTool.prototype.isActive = function() {\n  var context = this._dragging.context();\n\n  return context && /^lasso/.test(context.prefix);\n};\n\n\n\nfunction toBBox(event) {\n\n  var start = {\n\n    x: event.x - event.dx,\n    y: event.y - event.dy\n  };\n\n  var end = {\n    x: event.x,\n    y: event.y\n  };\n\n  var bbox;\n\n  if ((start.x <= end.x && start.y < end.y) ||\n      (start.x < end.x && start.y <= end.y)) {\n\n    bbox = {\n      x: start.x,\n      y: start.y,\n      width:  end.x - start.x,\n      height: end.y - start.y\n    };\n  } else if ((start.x >= end.x && start.y < end.y) ||\n             (start.x > end.x && start.y <= end.y)) {\n\n    bbox = {\n      x: end.x,\n      y: start.y,\n      width:  start.x - end.x,\n      height: end.y - start.y\n    };\n  } else if ((start.x <= end.x && start.y > end.y) ||\n             (start.x < end.x && start.y >= end.y)) {\n\n    bbox = {\n      x: start.x,\n      y: end.y,\n      width:  end.x - start.x,\n      height: start.y - end.y\n    };\n  } else if ((start.x >= end.x && start.y > end.y) ||\n             (start.x > end.x && start.y >= end.y)) {\n\n    bbox = {\n      x: end.x,\n      y: end.y,\n      width:  start.x - end.x,\n      height: start.y - end.y\n    };\n  } else {\n\n    bbox = {\n      x: end.x,\n      y: end.y,\n      width:  0,\n      height: 0\n    };\n  }\n  return bbox;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/lasso-tool/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/lasso-tool/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _LassoTool__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LassoTool */ \"./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _tool_manager__WEBPACK_IMPORTED_MODULE_0__.default,\n    _mouse__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  __init__: [ 'lassoTool' ],\n  lassoTool: [ 'type', _LassoTool__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/lasso-tool/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/Modeling.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/Modeling.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Modeling)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _model__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../model */ \"./node_modules/diagram-js/lib/model/index.js\");\n/* harmony import */ var _cmd_AlignElementsHandler__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./cmd/AlignElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js\");\n/* harmony import */ var _cmd_AppendShapeHandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cmd/AppendShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js\");\n/* harmony import */ var _cmd_CreateConnectionHandler__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./cmd/CreateConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js\");\n/* harmony import */ var _cmd_CreateElementsHandler__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./cmd/CreateElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js\");\n/* harmony import */ var _cmd_CreateLabelHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cmd/CreateLabelHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js\");\n/* harmony import */ var _cmd_CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cmd/CreateShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js\");\n/* harmony import */ var _cmd_DeleteConnectionHandler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cmd/DeleteConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js\");\n/* harmony import */ var _cmd_DeleteElementsHandler__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./cmd/DeleteElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js\");\n/* harmony import */ var _cmd_DeleteShapeHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cmd/DeleteShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js\");\n/* harmony import */ var _cmd_DistributeElementsHandler__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./cmd/DistributeElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js\");\n/* harmony import */ var _cmd_LayoutConnectionHandler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./cmd/LayoutConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js\");\n/* harmony import */ var _cmd_MoveConnectionHandler__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cmd/MoveConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js\");\n/* harmony import */ var _cmd_MoveElementsHandler__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./cmd/MoveElementsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js\");\n/* harmony import */ var _cmd_MoveShapeHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cmd/MoveShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js\");\n/* harmony import */ var _cmd_ReconnectConnectionHandler__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./cmd/ReconnectConnectionHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js\");\n/* harmony import */ var _cmd_ReplaceShapeHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cmd/ReplaceShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js\");\n/* harmony import */ var _cmd_ResizeShapeHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cmd/ResizeShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js\");\n/* harmony import */ var _cmd_SpaceToolHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cmd/SpaceToolHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js\");\n/* harmony import */ var _cmd_ToggleShapeCollapseHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cmd/ToggleShapeCollapseHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js\");\n/* harmony import */ var _cmd_UpdateAttachmentHandler__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./cmd/UpdateAttachmentHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js\");\n/* harmony import */ var _cmd_UpdateWaypointsHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./cmd/UpdateWaypointsHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * The basic modeling entry point.\n *\n * @param {EventBus} eventBus\n * @param {ElementFactory} elementFactory\n * @param {CommandStack} commandStack\n */\nfunction Modeling(eventBus, elementFactory, commandStack) {\n  this._eventBus = eventBus;\n  this._elementFactory = elementFactory;\n  this._commandStack = commandStack;\n\n  var self = this;\n\n  eventBus.on('diagram.init', function() {\n\n    // register modeling handlers\n    self.registerHandlers(commandStack);\n  });\n}\n\nModeling.$inject = [ 'eventBus', 'elementFactory', 'commandStack' ];\n\n\nModeling.prototype.getHandlers = function() {\n  return {\n    'shape.append': _cmd_AppendShapeHandler__WEBPACK_IMPORTED_MODULE_0__.default,\n    'shape.create': _cmd_CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default,\n    'shape.delete': _cmd_DeleteShapeHandler__WEBPACK_IMPORTED_MODULE_2__.default,\n    'shape.move': _cmd_MoveShapeHandler__WEBPACK_IMPORTED_MODULE_3__.default,\n    'shape.resize': _cmd_ResizeShapeHandler__WEBPACK_IMPORTED_MODULE_4__.default,\n    'shape.replace': _cmd_ReplaceShapeHandler__WEBPACK_IMPORTED_MODULE_5__.default,\n    'shape.toggleCollapse': _cmd_ToggleShapeCollapseHandler__WEBPACK_IMPORTED_MODULE_6__.default,\n\n    'spaceTool': _cmd_SpaceToolHandler__WEBPACK_IMPORTED_MODULE_7__.default,\n\n    'label.create': _cmd_CreateLabelHandler__WEBPACK_IMPORTED_MODULE_8__.default,\n\n    'connection.create': _cmd_CreateConnectionHandler__WEBPACK_IMPORTED_MODULE_9__.default,\n    'connection.delete': _cmd_DeleteConnectionHandler__WEBPACK_IMPORTED_MODULE_10__.default,\n    'connection.move': _cmd_MoveConnectionHandler__WEBPACK_IMPORTED_MODULE_11__.default,\n    'connection.layout': _cmd_LayoutConnectionHandler__WEBPACK_IMPORTED_MODULE_12__.default,\n\n    'connection.updateWaypoints': _cmd_UpdateWaypointsHandler__WEBPACK_IMPORTED_MODULE_13__.default,\n\n    'connection.reconnect': _cmd_ReconnectConnectionHandler__WEBPACK_IMPORTED_MODULE_14__.default,\n\n    'elements.create': _cmd_CreateElementsHandler__WEBPACK_IMPORTED_MODULE_15__.default,\n    'elements.move': _cmd_MoveElementsHandler__WEBPACK_IMPORTED_MODULE_16__.default,\n    'elements.delete': _cmd_DeleteElementsHandler__WEBPACK_IMPORTED_MODULE_17__.default,\n\n    'elements.distribute': _cmd_DistributeElementsHandler__WEBPACK_IMPORTED_MODULE_18__.default,\n    'elements.align': _cmd_AlignElementsHandler__WEBPACK_IMPORTED_MODULE_19__.default,\n\n    'element.updateAttachment': _cmd_UpdateAttachmentHandler__WEBPACK_IMPORTED_MODULE_20__.default\n  };\n};\n\n/**\n * Register handlers with the command stack\n *\n * @param {CommandStack} commandStack\n */\nModeling.prototype.registerHandlers = function(commandStack) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.forEach)(this.getHandlers(), function(handler, id) {\n    commandStack.registerHandler(id, handler);\n  });\n};\n\n\n// modeling helpers //////////////////////\n\nModeling.prototype.moveShape = function(shape, delta, newParent, newParentIndex, hints) {\n\n  if (typeof newParentIndex === 'object') {\n    hints = newParentIndex;\n    newParentIndex = null;\n  }\n\n  var context = {\n    shape: shape,\n    delta:  delta,\n    newParent: newParent,\n    newParentIndex: newParentIndex,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('shape.move', context);\n};\n\n\n/**\n * Update the attachment of the given shape.\n *\n * @param {djs.mode.Base} shape\n * @param {djs.model.Base} [newHost]\n */\nModeling.prototype.updateAttachment = function(shape, newHost) {\n  var context = {\n    shape: shape,\n    newHost: newHost\n  };\n\n  this._commandStack.execute('element.updateAttachment', context);\n};\n\n\n/**\n * Move a number of shapes to a new target, either setting it as\n * the new parent or attaching it.\n *\n * @param {Array<djs.mode.Base>} shapes\n * @param {Point} delta\n * @param {djs.model.Base} [target]\n * @param {Object} [hints]\n * @param {boolean} [hints.attach=false]\n */\nModeling.prototype.moveElements = function(shapes, delta, target, hints) {\n\n  hints = hints || {};\n\n  var attach = hints.attach;\n\n  var newParent = target,\n      newHost;\n\n  if (attach === true) {\n    newHost = target;\n    newParent = target.parent;\n  } else\n\n  if (attach === false) {\n    newHost = null;\n  }\n\n  var context = {\n    shapes: shapes,\n    delta: delta,\n    newParent: newParent,\n    newHost: newHost,\n    hints: hints\n  };\n\n  this._commandStack.execute('elements.move', context);\n};\n\n\nModeling.prototype.moveConnection = function(connection, delta, newParent, newParentIndex, hints) {\n\n  if (typeof newParentIndex === 'object') {\n    hints = newParentIndex;\n    newParentIndex = undefined;\n  }\n\n  var context = {\n    connection: connection,\n    delta: delta,\n    newParent: newParent,\n    newParentIndex: newParentIndex,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('connection.move', context);\n};\n\n\nModeling.prototype.layoutConnection = function(connection, hints) {\n  var context = {\n    connection: connection,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('connection.layout', context);\n};\n\n\n/**\n * Create connection.\n *\n * @param {djs.model.Base} source\n * @param {djs.model.Base} target\n * @param {number} [parentIndex]\n * @param {Object|djs.model.Connection} connection\n * @param {djs.model.Base} parent\n * @param {Object} hints\n *\n * @return {djs.model.Connection} the created connection.\n */\nModeling.prototype.createConnection = function(source, target, parentIndex, connection, parent, hints) {\n\n  if (typeof parentIndex === 'object') {\n    hints = parent;\n    parent = connection;\n    connection = parentIndex;\n    parentIndex = undefined;\n  }\n\n  connection = this._create('connection', connection);\n\n  var context = {\n    source: source,\n    target: target,\n    parent: parent,\n    parentIndex: parentIndex,\n    connection: connection,\n    hints: hints\n  };\n\n  this._commandStack.execute('connection.create', context);\n\n  return context.connection;\n};\n\n\n/**\n * Create a shape at the specified position.\n *\n * @param {djs.model.Shape|Object} shape\n * @param {Point} position\n * @param {djs.model.Shape|djs.model.Root} target\n * @param {number} [parentIndex] position in parents children list\n * @param {Object} [hints]\n * @param {boolean} [hints.attach] whether to attach to target or become a child\n *\n * @return {djs.model.Shape} the created shape\n */\nModeling.prototype.createShape = function(shape, position, target, parentIndex, hints) {\n\n  if (typeof parentIndex !== 'number') {\n    hints = parentIndex;\n    parentIndex = undefined;\n  }\n\n  hints = hints || {};\n\n  var attach = hints.attach,\n      parent,\n      host;\n\n  shape = this._create('shape', shape);\n\n  if (attach) {\n    parent = target.parent;\n    host = target;\n  } else {\n    parent = target;\n  }\n\n  var context = {\n    position: position,\n    shape: shape,\n    parent: parent,\n    parentIndex: parentIndex,\n    host: host,\n    hints: hints\n  };\n\n  this._commandStack.execute('shape.create', context);\n\n  return context.shape;\n};\n\n\nModeling.prototype.createElements = function(elements, position, parent, parentIndex, hints) {\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_21__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  if (typeof parentIndex !== 'number') {\n    hints = parentIndex;\n    parentIndex = undefined;\n  }\n\n  hints = hints || {};\n\n  var context = {\n    position: position,\n    elements: elements,\n    parent: parent,\n    parentIndex: parentIndex,\n    hints: hints\n  };\n\n  this._commandStack.execute('elements.create', context);\n\n  return context.elements;\n};\n\n\nModeling.prototype.createLabel = function(labelTarget, position, label, parent) {\n\n  label = this._create('label', label);\n\n  var context = {\n    labelTarget: labelTarget,\n    position: position,\n    parent: parent || labelTarget.parent,\n    shape: label\n  };\n\n  this._commandStack.execute('label.create', context);\n\n  return context.shape;\n};\n\n\n/**\n * Append shape to given source, drawing a connection\n * between source and the newly created shape.\n *\n * @param {djs.model.Shape} source\n * @param {djs.model.Shape|Object} shape\n * @param {Point} position\n * @param {djs.model.Shape} target\n * @param {Object} [hints]\n * @param {boolean} [hints.attach]\n * @param {djs.model.Connection|Object} [hints.connection]\n * @param {djs.model.Base} [hints.connectionParent]\n *\n * @return {djs.model.Shape} the newly created shape\n */\nModeling.prototype.appendShape = function(source, shape, position, target, hints) {\n\n  hints = hints || {};\n\n  shape = this._create('shape', shape);\n\n  var context = {\n    source: source,\n    position: position,\n    target: target,\n    shape: shape,\n    connection: hints.connection,\n    connectionParent: hints.connectionParent,\n    hints: hints\n  };\n\n  this._commandStack.execute('shape.append', context);\n\n  return context.shape;\n};\n\n\nModeling.prototype.removeElements = function(elements) {\n  var context = {\n    elements: elements\n  };\n\n  this._commandStack.execute('elements.delete', context);\n};\n\n\nModeling.prototype.distributeElements = function(groups, axis, dimension) {\n  var context = {\n    groups: groups,\n    axis: axis,\n    dimension: dimension\n  };\n\n  this._commandStack.execute('elements.distribute', context);\n};\n\n\nModeling.prototype.removeShape = function(shape, hints) {\n  var context = {\n    shape: shape,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('shape.delete', context);\n};\n\n\nModeling.prototype.removeConnection = function(connection, hints) {\n  var context = {\n    connection: connection,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('connection.delete', context);\n};\n\nModeling.prototype.replaceShape = function(oldShape, newShape, hints) {\n  var context = {\n    oldShape: oldShape,\n    newData: newShape,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('shape.replace', context);\n\n  return context.newShape;\n};\n\nModeling.prototype.alignElements = function(elements, alignment) {\n  var context = {\n    elements: elements,\n    alignment: alignment\n  };\n\n  this._commandStack.execute('elements.align', context);\n};\n\nModeling.prototype.resizeShape = function(shape, newBounds, minBounds, hints) {\n  var context = {\n    shape: shape,\n    newBounds: newBounds,\n    minBounds: minBounds,\n    hints: hints\n  };\n\n  this._commandStack.execute('shape.resize', context);\n};\n\nModeling.prototype.createSpace = function(movingShapes, resizingShapes, delta, direction, start) {\n  var context = {\n    delta: delta,\n    direction: direction,\n    movingShapes: movingShapes,\n    resizingShapes: resizingShapes,\n    start: start\n  };\n\n  this._commandStack.execute('spaceTool', context);\n};\n\nModeling.prototype.updateWaypoints = function(connection, newWaypoints, hints) {\n  var context = {\n    connection: connection,\n    newWaypoints: newWaypoints,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('connection.updateWaypoints', context);\n};\n\nModeling.prototype.reconnect = function(connection, source, target, dockingOrPoints, hints) {\n  var context = {\n    connection: connection,\n    newSource: source,\n    newTarget: target,\n    dockingOrPoints: dockingOrPoints,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('connection.reconnect', context);\n};\n\nModeling.prototype.reconnectStart = function(connection, newSource, dockingOrPoints, hints) {\n  if (!hints) {\n    hints = {};\n  }\n\n  this.reconnect(connection, newSource, connection.target, dockingOrPoints, (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.assign)(hints, {\n    docking: 'source'\n  }));\n};\n\nModeling.prototype.reconnectEnd = function(connection, newTarget, dockingOrPoints, hints) {\n  if (!hints) {\n    hints = {};\n  }\n\n  this.reconnect(connection, connection.source, newTarget, dockingOrPoints, (0,min_dash__WEBPACK_IMPORTED_MODULE_21__.assign)(hints, {\n    docking: 'target'\n  }));\n};\n\nModeling.prototype.connect = function(source, target, attrs, hints) {\n  return this.createConnection(source, target, attrs || {}, source.parent, hints);\n};\n\nModeling.prototype._create = function(type, attrs) {\n  if (attrs instanceof _model__WEBPACK_IMPORTED_MODULE_22__.Base) {\n    return attrs;\n  } else {\n    return this._elementFactory.create(type, attrs);\n  }\n};\n\nModeling.prototype.toggleCollapse = function(shape, hints) {\n  var context = {\n    shape: shape,\n    hints: hints || {}\n  };\n\n  this._commandStack.execute('shape.toggleCollapse', context);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/Modeling.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AlignElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * A handler that align elements in a certain way.\n *\n */\nfunction AlignElements(modeling, canvas) {\n  this._modeling = modeling;\n  this._canvas = canvas;\n}\n\nAlignElements.$inject = [ 'modeling', 'canvas' ];\n\n\nAlignElements.prototype.preExecute = function(context) {\n  var modeling = this._modeling;\n\n  var elements = context.elements,\n      alignment = context.alignment;\n\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    var delta = {\n      x: 0,\n      y: 0\n    };\n\n    if (alignment.left) {\n      delta.x = alignment.left - element.x;\n\n    } else if (alignment.right) {\n      delta.x = (alignment.right - element.width) - element.x;\n\n    } else if (alignment.center) {\n      delta.x = (alignment.center - Math.round(element.width / 2)) - element.x;\n\n    } else if (alignment.top) {\n      delta.y = alignment.top - element.y;\n\n    } else if (alignment.bottom) {\n      delta.y = (alignment.bottom - element.height) - element.y;\n\n    } else if (alignment.middle) {\n      delta.y = (alignment.middle - Math.round(element.height / 2)) - element.y;\n    }\n\n    modeling.moveElements([ element ], delta, element.parent);\n  });\n};\n\nAlignElements.prototype.postExecute = function(context) {\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AppendShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that implements reversible appending of shapes\n * to a source shape.\n *\n * @param {canvas} Canvas\n * @param {elementFactory} ElementFactory\n * @param {modeling} Modeling\n */\nfunction AppendShapeHandler(modeling) {\n  this._modeling = modeling;\n}\n\nAppendShapeHandler.$inject = [ 'modeling' ];\n\n\n// api //////////////////////\n\n\n/**\n * Creates a new shape\n *\n * @param {Object} context\n * @param {ElementDescriptor} context.shape the new shape\n * @param {ElementDescriptor} context.source the source object\n * @param {ElementDescriptor} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nAppendShapeHandler.prototype.preExecute = function(context) {\n\n  var source = context.source;\n\n  if (!source) {\n    throw new Error('source required');\n  }\n\n  var target = context.target || source.parent,\n      shape = context.shape,\n      hints = context.hints || {};\n\n  shape = context.shape =\n    this._modeling.createShape(\n      shape,\n      context.position,\n      target, { attach: hints.attach });\n\n  context.shape = shape;\n};\n\nAppendShapeHandler.prototype.postExecute = function(context) {\n  var hints = context.hints || {};\n\n  if (!existsConnection(context.source, context.shape)) {\n\n    // create connection\n    if (hints.connectionTarget === context.source) {\n      this._modeling.connect(context.shape, context.source, context.connection);\n    } else {\n      this._modeling.connect(context.source, context.shape, context.connection);\n    }\n  }\n};\n\n\nfunction existsConnection(source, target) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.some)(source.outgoing, function(c) {\n    return c.target === target;\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateConnectionHandler)\n/* harmony export */ });\nfunction CreateConnectionHandler(canvas, layouter) {\n  this._canvas = canvas;\n  this._layouter = layouter;\n}\n\nCreateConnectionHandler.$inject = [ 'canvas', 'layouter' ];\n\n\n// api //////////////////////\n\n\n/**\n * Appends a shape to a target shape\n *\n * @param {Object} context\n * @param {djs.element.Base} context.source the source object\n * @param {djs.element.Base} context.target the parent object\n * @param {Point} context.position position of the new element\n */\nCreateConnectionHandler.prototype.execute = function(context) {\n\n  var connection = context.connection,\n      source = context.source,\n      target = context.target,\n      parent = context.parent,\n      parentIndex = context.parentIndex,\n      hints = context.hints;\n\n  if (!source || !target) {\n    throw new Error('source and target required');\n  }\n\n  if (!parent) {\n    throw new Error('parent required');\n  }\n\n  connection.source = source;\n  connection.target = target;\n\n  if (!connection.waypoints) {\n    connection.waypoints = this._layouter.layoutConnection(connection, hints);\n  }\n\n  // add connection\n  this._canvas.addConnection(connection, parent, parentIndex);\n\n  return connection;\n};\n\nCreateConnectionHandler.prototype.revert = function(context) {\n  var connection = context.connection;\n\n  this._canvas.removeConnection(connection);\n\n  connection.source = null;\n  connection.target = null;\n\n  return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateElementsHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\r\n\r\n\r\n\r\nvar round = Math.round;\r\n\r\nfunction CreateElementsHandler(modeling) {\r\n  this._modeling = modeling;\r\n}\r\n\r\nCreateElementsHandler.$inject = [\r\n  'modeling'\r\n];\r\n\r\nCreateElementsHandler.prototype.preExecute = function(context) {\r\n  var elements = context.elements,\r\n      parent = context.parent,\r\n      parentIndex = context.parentIndex,\r\n      position = context.position,\r\n      hints = context.hints;\r\n\r\n  var modeling = this._modeling;\r\n\r\n  // make sure each element has x and y\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.x)) {\r\n      element.x = 0;\r\n    }\r\n\r\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(element.y)) {\r\n      element.y = 0;\r\n    }\r\n  });\r\n\r\n  var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(elements);\r\n\r\n  // center elements around position\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n    if (isConnection(element)) {\r\n      element.waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(element.waypoints, function(waypoint) {\r\n        return {\r\n          x: round(waypoint.x - bbox.x - bbox.width / 2 + position.x),\r\n          y: round(waypoint.y - bbox.y - bbox.height / 2 + position.y)\r\n        };\r\n      });\r\n    }\r\n\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(element, {\r\n      x: round(element.x - bbox.x - bbox.width / 2 + position.x),\r\n      y: round(element.y - bbox.y - bbox.height / 2 + position.y)\r\n    });\r\n  });\r\n\r\n  var parents = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getParents)(elements);\r\n\r\n  var cache = {};\r\n\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\r\n    if (isConnection(element)) {\r\n      cache[ element.id ] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(parentIndex) ?\r\n        modeling.createConnection(\r\n          cache[ element.source.id ],\r\n          cache[ element.target.id ],\r\n          parentIndex,\r\n          element,\r\n          element.parent || parent,\r\n          hints\r\n        ) :\r\n        modeling.createConnection(\r\n          cache[ element.source.id ],\r\n          cache[ element.target.id ],\r\n          element,\r\n          element.parent || parent,\r\n          hints\r\n        );\r\n\r\n      return;\r\n    }\r\n\r\n    var createShapeHints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, hints);\r\n\r\n    if (parents.indexOf(element) === -1) {\r\n      createShapeHints.autoResize = false;\r\n    }\r\n\r\n    cache[ element.id ] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(parentIndex) ?\r\n      modeling.createShape(\r\n        element,\r\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(element, [ 'x', 'y', 'width', 'height' ]),\r\n        element.parent || parent,\r\n        parentIndex,\r\n        createShapeHints\r\n      ) :\r\n      modeling.createShape(\r\n        element,\r\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(element, [ 'x', 'y', 'width', 'height' ]),\r\n        element.parent || parent,\r\n        createShapeHints\r\n      );\r\n  });\r\n\r\n  context.elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.values)(cache);\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction isConnection(element) {\r\n  return !!element.waypoints;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateLabelHandler)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateShapeHandler */ \"./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js\");\n\n\n\n\n\n/**\n * A handler that attaches a label to a given target shape.\n *\n * @param {Canvas} canvas\n */\nfunction CreateLabelHandler(canvas) {\n  _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.call(this, canvas);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(CreateLabelHandler, _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default);\n\nCreateLabelHandler.$inject = [ 'canvas' ];\n\n\n// api //////////////////////\n\n\nvar originalExecute = _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.prototype.execute;\n\n/**\n * Appends a label to a target shape.\n *\n * @method CreateLabelHandler#execute\n *\n * @param {Object} context\n * @param {ElementDescriptor} context.target the element the label is attached to\n * @param {ElementDescriptor} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nCreateLabelHandler.prototype.execute = function(context) {\n\n  var label = context.shape;\n\n  ensureValidDimensions(label);\n\n  label.labelTarget = context.labelTarget;\n\n  return originalExecute.call(this, context);\n};\n\nvar originalRevert = _CreateShapeHandler__WEBPACK_IMPORTED_MODULE_1__.default.prototype.revert;\n\n/**\n * Undo append by removing the shape\n */\nCreateLabelHandler.prototype.revert = function(context) {\n  context.shape.labelTarget = null;\n\n  return originalRevert.call(this, context);\n};\n\n\n// helpers //////////////////////\n\nfunction ensureValidDimensions(label) {\n\n  // make sure a label has valid { width, height } dimensions\n  [ 'width', 'height' ].forEach(function(prop) {\n    if (typeof label[prop] === 'undefined') {\n      label[prop] = 0;\n    }\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar round = Math.round;\n\n\n/**\n * A handler that implements reversible addition of shapes.\n *\n * @param {canvas} Canvas\n */\nfunction CreateShapeHandler(canvas) {\n  this._canvas = canvas;\n}\n\nCreateShapeHandler.$inject = [ 'canvas' ];\n\n\n// api //////////////////////\n\n\n/**\n * Appends a shape to a target shape\n *\n * @param {Object} context\n * @param {djs.model.Base} context.parent the parent object\n * @param {Point} context.position position of the new element\n */\nCreateShapeHandler.prototype.execute = function(context) {\n\n  var shape = context.shape,\n      positionOrBounds = context.position,\n      parent = context.parent,\n      parentIndex = context.parentIndex;\n\n  if (!parent) {\n    throw new Error('parent required');\n  }\n\n  if (!positionOrBounds) {\n    throw new Error('position required');\n  }\n\n  // (1) add at event center position _or_ at given bounds\n  if (positionOrBounds.width !== undefined) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, positionOrBounds);\n  } else {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n      x: positionOrBounds.x - round(shape.width / 2),\n      y: positionOrBounds.y - round(shape.height / 2)\n    });\n  }\n\n  // (2) add to canvas\n  this._canvas.addShape(shape, parent, parentIndex);\n\n  return shape;\n};\n\n\n/**\n * Undo append by removing the shape\n */\nCreateShapeHandler.prototype.revert = function(context) {\n\n  var shape = context.shape;\n\n  // (3) remove form canvas\n  this._canvas.removeShape(shape);\n\n  return shape;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DeleteConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\n/**\n * A handler that implements reversible deletion of Connections.\n */\nfunction DeleteConnectionHandler(canvas, modeling) {\n  this._canvas = canvas;\n  this._modeling = modeling;\n}\n\nDeleteConnectionHandler.$inject = [\n  'canvas',\n  'modeling'\n];\n\n\nDeleteConnectionHandler.prototype.execute = function(context) {\n\n  var connection = context.connection,\n      parent = connection.parent;\n\n  context.parent = parent;\n\n  // remember containment\n  context.parentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.indexOf)(parent.children, connection);\n\n  context.source = connection.source;\n  context.target = connection.target;\n\n  this._canvas.removeConnection(connection);\n\n  connection.source = null;\n  connection.target = null;\n\n  return connection;\n};\n\n/**\n * Command revert implementation.\n */\nDeleteConnectionHandler.prototype.revert = function(context) {\n\n  var connection = context.connection,\n      parent = context.parent,\n      parentIndex = context.parentIndex;\n\n  connection.source = context.source;\n  connection.target = context.target;\n\n  // restore containment\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(parent.children, connection, parentIndex);\n\n  this._canvas.addConnection(connection, parent);\n\n  return connection;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DeleteElementsHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nfunction DeleteElementsHandler(modeling, elementRegistry) {\n  this._modeling = modeling;\n  this._elementRegistry = elementRegistry;\n}\n\nDeleteElementsHandler.$inject = [\n  'modeling',\n  'elementRegistry'\n];\n\n\nDeleteElementsHandler.prototype.postExecute = function(context) {\n\n  var modeling = this._modeling,\n      elementRegistry = this._elementRegistry,\n      elements = context.elements;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    // element may have been removed with previous\n    // remove operations already (e.g. in case of nesting)\n    if (!elementRegistry.get(element.id)) {\n      return;\n    }\n\n    if (element.waypoints) {\n      modeling.removeConnection(element);\n    } else {\n      modeling.removeShape(element);\n    }\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DeleteShapeHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _util_Removal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Removal */ \"./node_modules/diagram-js/lib/util/Removal.js\");\n\n\n\n\n\n/**\n * A handler that implements reversible deletion of shapes.\n *\n */\nfunction DeleteShapeHandler(canvas, modeling) {\n  this._canvas = canvas;\n  this._modeling = modeling;\n}\n\nDeleteShapeHandler.$inject = [ 'canvas', 'modeling' ];\n\n\n/**\n * - Remove connections\n * - Remove all direct children\n */\nDeleteShapeHandler.prototype.preExecute = function(context) {\n\n  var modeling = this._modeling;\n\n  var shape = context.shape;\n\n  // remove connections\n  (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.incoming, function(connection) {\n\n    // To make sure that the connection isn't removed twice\n    // For example if a container is removed\n    modeling.removeConnection(connection, { nested: true });\n  });\n\n  (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.outgoing, function(connection) {\n    modeling.removeConnection(connection, { nested: true });\n  });\n\n  // remove child shapes and connections\n  (0,_util_Removal__WEBPACK_IMPORTED_MODULE_0__.saveClear)(shape.children, function(child) {\n    if (isConnection(child)) {\n      modeling.removeConnection(child, { nested: true });\n    } else {\n      modeling.removeShape(child, { nested: true });\n    }\n  });\n};\n\n/**\n * Remove shape and remember the parent\n */\nDeleteShapeHandler.prototype.execute = function(context) {\n  var canvas = this._canvas;\n\n  var shape = context.shape,\n      oldParent = shape.parent;\n\n  context.oldParent = oldParent;\n\n  // remove containment\n  context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_1__.indexOf)(oldParent.children, shape);\n\n  // remove shape\n  canvas.removeShape(shape);\n\n  return shape;\n};\n\n\n/**\n * Command revert implementation\n */\nDeleteShapeHandler.prototype.revert = function(context) {\n\n  var canvas = this._canvas;\n\n  var shape = context.shape,\n      oldParent = context.oldParent,\n      oldParentIndex = context.oldParentIndex;\n\n  // restore containment\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_1__.add)(oldParent.children, shape, oldParentIndex);\n\n  canvas.addShape(shape, oldParent);\n\n  return shape;\n};\n\nfunction isConnection(element) {\n  return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js ***!
    \****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ DistributeElements)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that distributes elements evenly.\n */\nfunction DistributeElements(modeling) {\n  this._modeling = modeling;\n}\n\nDistributeElements.$inject = [ 'modeling' ];\n\nvar OFF_AXIS = {\n  x: 'y',\n  y: 'x'\n};\n\nDistributeElements.prototype.preExecute = function(context) {\n  var modeling = this._modeling;\n\n  var groups = context.groups,\n      axis = context.axis,\n      dimension = context.dimension;\n\n  function updateRange(group, element) {\n    group.range.min = Math.min(element[axis], group.range.min);\n    group.range.max = Math.max(element[axis] + element[dimension], group.range.max);\n  }\n\n  function center(element) {\n    return element[axis] + element[dimension] / 2;\n  }\n\n  function lastIdx(arr) {\n    return arr.length - 1;\n  }\n\n  function rangeDiff(range) {\n    return range.max - range.min;\n  }\n\n  function centerElement(refCenter, element) {\n    var delta = { y: 0 };\n\n    delta[axis] = refCenter - center(element);\n\n    if (delta[axis]) {\n\n      delta[OFF_AXIS[axis]] = 0;\n\n      modeling.moveElements([ element ], delta, element.parent);\n    }\n  }\n\n  var firstGroup = groups[0],\n      lastGroupIdx = lastIdx(groups),\n      lastGroup = groups[ lastGroupIdx ];\n\n  var margin,\n      spaceInBetween,\n      groupsSize = 0; // the size of each range\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(groups, function(group, idx) {\n    var sortedElements,\n        refElem,\n        refCenter;\n\n    if (group.elements.length < 2) {\n      if (idx && idx !== groups.length - 1) {\n        updateRange(group, group.elements[0]);\n\n        groupsSize += rangeDiff(group.range);\n      }\n      return;\n    }\n\n    sortedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.sortBy)(group.elements, axis);\n\n    refElem = sortedElements[0];\n\n    if (idx === lastGroupIdx) {\n      refElem = sortedElements[lastIdx(sortedElements)];\n    }\n\n    refCenter = center(refElem);\n\n    // wanna update the ranges after the shapes have been centered\n    group.range = null;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(sortedElements, function(element) {\n\n      centerElement(refCenter, element);\n\n      if (group.range === null) {\n        group.range = {\n          min: element[axis],\n          max: element[axis] + element[dimension]\n        };\n\n        return;\n      }\n\n      // update group's range after centering the range elements\n      updateRange(group, element);\n    });\n\n    if (idx && idx !== groups.length - 1) {\n      groupsSize += rangeDiff(group.range);\n    }\n  });\n\n  spaceInBetween = Math.abs(lastGroup.range.min - firstGroup.range.max);\n\n  margin = Math.round((spaceInBetween - groupsSize) / (groups.length - 1));\n\n  if (margin < groups.length - 1) {\n    return;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(groups, function(group, groupIdx) {\n    var delta = {},\n        prevGroup;\n\n    if (group === firstGroup || group === lastGroup) {\n      return;\n    }\n\n    prevGroup = groups[groupIdx - 1];\n\n    group.range.max = 0;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(group.elements, function(element, idx) {\n      delta[OFF_AXIS[axis]] = 0;\n      delta[axis] = (prevGroup.range.max - element[axis]) + margin;\n\n      if (group.range.min !== element[axis]) {\n        delta[axis] += element[axis] - group.range.min;\n      }\n\n      if (delta[axis]) {\n        modeling.moveElements([ element ], delta, element.parent);\n      }\n\n      group.range.max = Math.max(element[axis] + element[dimension], idx ? group.range.max : 0);\n    });\n  });\n};\n\nDistributeElements.prototype.postExecute = function(context) {\n\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ LayoutConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction LayoutConnectionHandler(layouter, canvas) {\n  this._layouter = layouter;\n  this._canvas = canvas;\n}\n\nLayoutConnectionHandler.$inject = [ 'layouter', 'canvas' ];\n\nLayoutConnectionHandler.prototype.execute = function(context) {\n\n  var connection = context.connection;\n\n  var oldWaypoints = connection.waypoints;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n    oldWaypoints: oldWaypoints\n  });\n\n  connection.waypoints = this._layouter.layoutConnection(connection, context.hints);\n\n  return connection;\n};\n\nLayoutConnectionHandler.prototype.revert = function(context) {\n\n  var connection = context.connection;\n\n  connection.waypoints = context.oldWaypoints;\n\n  return connection;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js":
  /*!************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js ***!
    \************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n\n\n\n\n/**\n * A handler that implements reversible moving of connections.\n *\n * The handler differs from the layout connection handler in a sense\n * that it preserves the connection layout.\n */\nfunction MoveConnectionHandler() { }\n\n\nMoveConnectionHandler.prototype.execute = function(context) {\n\n  var connection = context.connection,\n      delta = context.delta;\n\n  var newParent = context.newParent || connection.parent,\n      newParentIndex = context.newParentIndex,\n      oldParent = connection.parent;\n\n  // save old parent in context\n  context.oldParent = oldParent;\n  context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(oldParent.children, connection);\n\n  // add to new parent at position\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(newParent.children, connection, newParentIndex);\n\n  // update parent\n  connection.parent = newParent;\n\n  // update waypoint positions\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(connection.waypoints, function(p) {\n    p.x += delta.x;\n    p.y += delta.y;\n\n    if (p.original) {\n      p.original.x += delta.x;\n      p.original.y += delta.y;\n    }\n  });\n\n  return connection;\n};\n\nMoveConnectionHandler.prototype.revert = function(context) {\n\n  var connection = context.connection,\n      newParent = connection.parent,\n      oldParent = context.oldParent,\n      oldParentIndex = context.oldParentIndex,\n      delta = context.delta;\n\n  // remove from newParent\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(newParent.children, connection);\n\n  // restore previous location in old parent\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(oldParent.children, connection, oldParentIndex);\n\n  // restore parent\n  connection.parent = oldParent;\n\n  // revert to old waypoint positions\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(connection.waypoints, function(p) {\n    p.x -= delta.x;\n    p.y -= delta.y;\n\n    if (p.original) {\n      p.original.x -= delta.x;\n      p.original.y -= delta.y;\n    }\n  });\n\n  return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveElementsHandler)\n/* harmony export */ });\n/* harmony import */ var _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper/MoveHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js\");\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction MoveElementsHandler(modeling) {\n  this._helper = new _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__.default(modeling);\n}\n\nMoveElementsHandler.$inject = [ 'modeling' ];\n\nMoveElementsHandler.prototype.preExecute = function(context) {\n  context.closure = this._helper.getClosure(context.shapes);\n};\n\nMoveElementsHandler.prototype.postExecute = function(context) {\n\n  var hints = context.hints,\n      primaryShape;\n\n  if (hints && hints.primaryShape) {\n    primaryShape = hints.primaryShape;\n    hints.oldParent = primaryShape.parent;\n  }\n\n  this._helper.moveClosure(\n    context.closure,\n    context.delta,\n    context.newParent,\n    context.newHost,\n    primaryShape\n  );\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helper/MoveHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js\");\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n\n\n\n\n/**\n * A handler that implements reversible moving of shapes.\n */\nfunction MoveShapeHandler(modeling) {\n  this._modeling = modeling;\n\n  this._helper = new _helper_MoveHelper__WEBPACK_IMPORTED_MODULE_0__.default(modeling);\n}\n\nMoveShapeHandler.$inject = [ 'modeling' ];\n\n\nMoveShapeHandler.prototype.execute = function(context) {\n\n  var shape = context.shape,\n      delta = context.delta,\n      newParent = context.newParent || shape.parent,\n      newParentIndex = context.newParentIndex,\n      oldParent = shape.parent;\n\n  context.oldBounds = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.pick)(shape, [ 'x', 'y', 'width', 'height']);\n\n  // save old parent in context\n  context.oldParent = oldParent;\n  context.oldParentIndex = (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.remove)(oldParent.children, shape);\n\n  // add to new parent at position\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.add)(newParent.children, shape, newParentIndex);\n\n  // update shape parent + position\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(shape, {\n    parent: newParent,\n    x: shape.x + delta.x,\n    y: shape.y + delta.y\n  });\n\n  return shape;\n};\n\nMoveShapeHandler.prototype.postExecute = function(context) {\n\n  var shape = context.shape,\n      delta = context.delta,\n      hints = context.hints;\n\n  var modeling = this._modeling;\n\n  if (hints.layout !== false) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(shape.incoming, function(c) {\n      modeling.layoutConnection(c, {\n        connectionEnd: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__.getMovedTargetAnchor)(c, shape, delta)\n      });\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(shape.outgoing, function(c) {\n      modeling.layoutConnection(c, {\n        connectionStart: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_3__.getMovedSourceAnchor)(c, shape, delta)\n      });\n    });\n  }\n\n  if (hints.recurse !== false) {\n    this.moveChildren(context);\n  }\n};\n\nMoveShapeHandler.prototype.revert = function(context) {\n\n  var shape = context.shape,\n      oldParent = context.oldParent,\n      oldParentIndex = context.oldParentIndex,\n      delta = context.delta;\n\n  // restore previous location in old parent\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_2__.add)(oldParent.children, shape, oldParentIndex);\n\n  // revert to old position and parent\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(shape, {\n    parent: oldParent,\n    x: shape.x - delta.x,\n    y: shape.y - delta.y\n  });\n\n  return shape;\n};\n\nMoveShapeHandler.prototype.moveChildren = function(context) {\n\n  var delta = context.delta,\n      shape = context.shape;\n\n  this._helper.moveRecursive(shape.children, delta, null);\n};\n\nMoveShapeHandler.prototype.getNewParent = function(context) {\n  return context.newParent || context.shape.parent;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js ***!
    \*****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ReconnectConnectionHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * Reconnect connection handler\n */\nfunction ReconnectConnectionHandler(modeling) {\n  this._modeling = modeling;\n}\n\nReconnectConnectionHandler.$inject = [ 'modeling' ];\n\nReconnectConnectionHandler.prototype.execute = function(context) {\n  var newSource = context.newSource,\n      newTarget = context.newTarget,\n      connection = context.connection,\n      dockingOrPoints = context.dockingOrPoints;\n\n  if (!newSource && !newTarget) {\n    throw new Error('newSource or newTarget required');\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints)) {\n    context.oldWaypoints = connection.waypoints;\n    connection.waypoints = dockingOrPoints;\n  }\n\n  if (newSource) {\n    context.oldSource = connection.source;\n    connection.source = newSource;\n  }\n\n  if (newTarget) {\n    context.oldTarget = connection.target;\n    connection.target = newTarget;\n  }\n\n  return connection;\n};\n\nReconnectConnectionHandler.prototype.postExecute = function(context) {\n  var connection = context.connection,\n      newSource = context.newSource,\n      newTarget = context.newTarget,\n      dockingOrPoints = context.dockingOrPoints,\n      hints = context.hints || {};\n\n  var layoutConnectionHints = {};\n\n  if (hints.connectionStart) {\n    layoutConnectionHints.connectionStart = hints.connectionStart;\n  }\n\n  if (hints.connectionEnd) {\n    layoutConnectionHints.connectionEnd = hints.connectionEnd;\n  }\n\n  if (hints.layoutConnection === false) {\n    return;\n  }\n\n  if (newSource && (!newTarget || hints.docking === 'source')) {\n    layoutConnectionHints.connectionStart = layoutConnectionHints.connectionStart\n      || getDocking((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints) ? dockingOrPoints[ 0 ] : dockingOrPoints);\n  }\n\n  if (newTarget && (!newSource || hints.docking === 'target')) {\n    layoutConnectionHints.connectionEnd = layoutConnectionHints.connectionEnd\n      || getDocking((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(dockingOrPoints) ? dockingOrPoints[ dockingOrPoints.length - 1 ] : dockingOrPoints);\n  }\n\n  if (hints.newWaypoints) {\n    layoutConnectionHints.waypoints = hints.newWaypoints;\n  }\n\n  this._modeling.layoutConnection(connection, layoutConnectionHints);\n};\n\nReconnectConnectionHandler.prototype.revert = function(context) {\n  var oldSource = context.oldSource,\n      oldTarget = context.oldTarget,\n      oldWaypoints = context.oldWaypoints,\n      connection = context.connection;\n\n  if (oldSource) {\n    connection.source = oldSource;\n  }\n\n  if (oldTarget) {\n    connection.target = oldTarget;\n  }\n\n  if (oldWaypoints) {\n    connection.waypoints = oldWaypoints;\n  }\n\n  return connection;\n};\n\n\n\n// helpers //////////\n\nfunction getDocking(point) {\n  return point.original || point;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js ***!
    \**********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ReplaceShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n/**\n * Replace shape by adding new shape and removing old shape. Incoming and outgoing connections will\n * be kept if possible.\n *\n * @class\n * @constructor\n *\n * @param {Modeling} modeling\n * @param {Rules} rules\n */\nfunction ReplaceShapeHandler(modeling, rules) {\n  this._modeling = modeling;\n  this._rules = rules;\n}\n\nReplaceShapeHandler.$inject = [ 'modeling', 'rules' ];\n\n\n/**\n * Add new shape.\n *\n * @param {Object} context\n * @param {djs.model.Shape} context.oldShape\n * @param {Object} context.newData\n * @param {string} context.newData.type\n * @param {number} context.newData.x\n * @param {number} context.newData.y\n * @param {Object} [hints]\n */\nReplaceShapeHandler.prototype.preExecute = function(context) {\n  var self = this,\n      modeling = this._modeling,\n      rules = this._rules;\n\n  var oldShape = context.oldShape,\n      newData = context.newData,\n      hints = context.hints || {},\n      newShape;\n\n  function canReconnect(source, target, connection) {\n    return rules.allowed('connection.reconnect', {\n      connection: connection,\n      source: source,\n      target: target\n    });\n  }\n\n  // (1) add new shape at given position\n  var position = {\n    x: newData.x,\n    y: newData.y\n  };\n\n  var oldBounds = {\n    x: oldShape.x,\n    y: oldShape.y,\n    width: oldShape.width,\n    height: oldShape.height\n  };\n\n  newShape = context.newShape =\n    context.newShape ||\n    self.createShape(newData, position, oldShape.parent, hints);\n\n  // (2) update host\n  if (oldShape.host) {\n    modeling.updateAttachment(newShape, oldShape.host);\n  }\n\n  // (3) adopt all children from old shape\n  var children;\n\n  if (hints.moveChildren !== false) {\n    children = oldShape.children.slice();\n\n    modeling.moveElements(children, { x: 0, y: 0 }, newShape, hints);\n  }\n\n  // (4) reconnect connections to new shape if possible\n  var incoming = oldShape.incoming.slice(),\n      outgoing = oldShape.outgoing.slice();\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(incoming, function(connection) {\n    var source = connection.source,\n        allowed = canReconnect(source, newShape, connection);\n\n    if (allowed) {\n      self.reconnectEnd(\n        connection, newShape,\n        (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedTargetAnchor)(connection, newShape, oldBounds),\n        hints\n      );\n    }\n  });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(outgoing, function(connection) {\n    var target = connection.target,\n        allowed = canReconnect(newShape, target, connection);\n\n    if (allowed) {\n      self.reconnectStart(\n        connection, newShape,\n        (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedSourceAnchor)(connection, newShape, oldBounds),\n        hints\n      );\n    }\n  });\n};\n\n\n/**\n * Remove old shape.\n */\nReplaceShapeHandler.prototype.postExecute = function(context) {\n  var oldShape = context.oldShape;\n\n  this._modeling.removeShape(oldShape);\n};\n\n\nReplaceShapeHandler.prototype.execute = function(context) {};\n\n\nReplaceShapeHandler.prototype.revert = function(context) {};\n\n\nReplaceShapeHandler.prototype.createShape = function(shape, position, target, hints) {\n  return this._modeling.createShape(shape, position, target, hints);\n};\n\n\nReplaceShapeHandler.prototype.reconnectStart = function(connection, newSource, dockingPoint, hints) {\n  this._modeling.reconnectStart(connection, newSource, dockingPoint, hints);\n};\n\n\nReplaceShapeHandler.prototype.reconnectEnd = function(connection, newTarget, dockingPoint, hints) {\n  this._modeling.reconnectEnd(connection, newTarget, dockingPoint, hints);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeShapeHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n/**\n * A handler that implements reversible resizing of shapes.\n *\n * @param {Modeling} modeling\n */\nfunction ResizeShapeHandler(modeling) {\n  this._modeling = modeling;\n}\n\nResizeShapeHandler.$inject = [ 'modeling' ];\n\n/**\n * {\n *   shape: {....}\n *   newBounds: {\n *     width:  20,\n *     height: 40,\n *     x:       5,\n *     y:      10\n *   }\n *\n * }\n */\nResizeShapeHandler.prototype.execute = function(context) {\n  var shape = context.shape,\n      newBounds = context.newBounds,\n      minBounds = context.minBounds;\n\n  if (newBounds.x === undefined || newBounds.y === undefined ||\n      newBounds.width === undefined || newBounds.height === undefined) {\n    throw new Error('newBounds must have {x, y, width, height} properties');\n  }\n\n  if (minBounds && (newBounds.width < minBounds.width\n    || newBounds.height < minBounds.height)) {\n    throw new Error('width and height cannot be less than minimum height and width');\n  } else if (!minBounds\n    && newBounds.width < 10 || newBounds.height < 10) {\n    throw new Error('width and height cannot be less than 10px');\n  }\n\n  // save old bbox in context\n  context.oldBounds = {\n    width:  shape.width,\n    height: shape.height,\n    x:      shape.x,\n    y:      shape.y\n  };\n\n  // update shape\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n    width:  newBounds.width,\n    height: newBounds.height,\n    x:      newBounds.x,\n    y:      newBounds.y\n  });\n\n  return shape;\n};\n\nResizeShapeHandler.prototype.postExecute = function(context) {\n  var modeling = this._modeling;\n\n  var shape = context.shape,\n      oldBounds = context.oldBounds,\n      hints = context.hints || {};\n\n  if (hints.layout === false) {\n    return;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(c) {\n    modeling.layoutConnection(c, {\n      connectionEnd: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedTargetAnchor)(c, shape, oldBounds)\n    });\n  });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(c) {\n    modeling.layoutConnection(c, {\n      connectionStart: (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getResizedSourceAnchor)(c, shape, oldBounds)\n    });\n  });\n\n};\n\nResizeShapeHandler.prototype.revert = function(context) {\n\n  var shape = context.shape,\n      oldBounds = context.oldBounds;\n\n  // restore previous bbox\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(shape, {\n    width:  oldBounds.width,\n    height: oldBounds.height,\n    x:      oldBounds.x,\n    y:      oldBounds.y\n  });\n\n  return shape;\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js":
  /*!*******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js ***!
    \*******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SpaceToolHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../space-tool/SpaceUtil */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js\");\n/* harmony import */ var _helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helper/AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n\n\n\n\n\n\n\n/**\n * Add or remove space by moving and resizing shapes and updating connection waypoints.\n */\nfunction SpaceToolHandler(modeling) {\n  this._modeling = modeling;\n}\n\nSpaceToolHandler.$inject = [ 'modeling' ];\n\nSpaceToolHandler.prototype.preExecute = function(context) {\n  var delta = context.delta,\n      direction = context.direction,\n      movingShapes = context.movingShapes,\n      resizingShapes = context.resizingShapes,\n      start = context.start,\n      oldBounds = {};\n\n  // (1) move shapes\n  this.moveShapes(movingShapes, delta);\n\n  // (2a) save old bounds of resized shapes\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n    oldBounds[shape.id] = getBounds(shape);\n  });\n\n  // (2b) resize shapes\n  this.resizeShapes(resizingShapes, delta, direction);\n\n  // (3) update connection waypoints\n  this.updateConnectionWaypoints(\n    (0,_space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.getWaypointsUpdatingConnections)(movingShapes, resizingShapes),\n    delta,\n    direction,\n    start,\n    movingShapes,\n    resizingShapes,\n    oldBounds\n  );\n};\n\nSpaceToolHandler.prototype.execute = function() {};\nSpaceToolHandler.prototype.revert = function() {};\n\nSpaceToolHandler.prototype.moveShapes = function(shapes, delta) {\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(element) {\n    self._modeling.moveShape(element, delta, null, {\n      autoResize: false,\n      layout: false,\n      recurse: false\n    });\n  });\n};\n\nSpaceToolHandler.prototype.resizeShapes = function(shapes, delta, direction) {\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shapes, function(shape) {\n    var newBounds = (0,_space_tool_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.resizeBounds)(shape, direction, delta);\n\n    self._modeling.resizeShape(shape, newBounds, null, {\n      attachSupport: false,\n      autoResize: false,\n      layout: false\n    });\n  });\n};\n\n/**\n * Update connections waypoints according to the rules:\n *   1. Both source and target are moved/resized => move waypoints by the delta\n *   2. Only one of source and target is moved/resized => re-layout connection with moved start/end\n */\nSpaceToolHandler.prototype.updateConnectionWaypoints = function(\n    connections,\n    delta,\n    direction,\n    start,\n    movingShapes,\n    resizingShapes,\n    oldBounds\n) {\n  var self = this,\n      affectedShapes = movingShapes.concat(resizingShapes);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(connections, function(connection) {\n    var source = connection.source,\n        target = connection.target,\n        waypoints = copyWaypoints(connection),\n        axis = getAxisFromDirection(direction),\n        layoutHints = {\n          labelBehavior: false\n        };\n\n    if (includes(affectedShapes, source) && includes(affectedShapes, target)) {\n\n      // move waypoints\n      waypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(waypoints, function(waypoint) {\n        if (shouldMoveWaypoint(waypoint, start, direction)) {\n\n          // move waypoint\n          waypoint[ axis ] = waypoint[ axis ] + delta[ axis ];\n        }\n\n        if (waypoint.original && shouldMoveWaypoint(waypoint.original, start, direction)) {\n\n          // move waypoint original\n          waypoint.original[ axis ] = waypoint.original[ axis ] + delta[ axis ];\n        }\n\n        return waypoint;\n      });\n\n      self._modeling.updateWaypoints(connection, waypoints, {\n        labelBehavior: false\n      });\n    } else if (includes(affectedShapes, source) || includes(affectedShapes, target)) {\n\n      // re-layout connection with moved start/end\n      if (includes(movingShapes, source)) {\n        layoutHints.connectionStart = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getMovedSourceAnchor)(connection, source, delta);\n      } else if (includes(movingShapes, target)) {\n        layoutHints.connectionEnd = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getMovedTargetAnchor)(connection, target, delta);\n      } else if (includes(resizingShapes, source)) {\n        layoutHints.connectionStart = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedSourceAnchor)(\n          connection, source, oldBounds[source.id]\n        );\n      } else if (includes(resizingShapes, target)) {\n        layoutHints.connectionEnd = (0,_helper_AnchorsHelper__WEBPACK_IMPORTED_MODULE_2__.getResizedTargetAnchor)(\n          connection, target, oldBounds[target.id]\n        );\n      }\n\n      self._modeling.layoutConnection(connection, layoutHints);\n    }\n  });\n};\n\n\n// helpers //////////\n\nfunction copyWaypoint(waypoint) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, waypoint);\n}\n\nfunction copyWaypoints(connection) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.map)(connection.waypoints, function(waypoint) {\n\n    waypoint = copyWaypoint(waypoint);\n\n    if (waypoint.original) {\n      waypoint.original = copyWaypoint(waypoint.original);\n    }\n\n    return waypoint;\n  });\n}\n\nfunction getAxisFromDirection(direction) {\n  switch (direction) {\n  case 'n':\n    return 'y';\n  case 'w':\n    return 'x';\n  case 's':\n    return 'y';\n  case 'e':\n    return 'x';\n  }\n}\n\nfunction shouldMoveWaypoint(waypoint, start, direction) {\n  var relevantAxis = getAxisFromDirection(direction);\n\n  if (/e|s/.test(direction)) {\n    return waypoint[ relevantAxis ] > start;\n  } else if (/n|w/.test(direction)) {\n    return waypoint[ relevantAxis ] < start;\n  }\n}\n\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\n\nfunction getBounds(shape) {\n  return {\n    x: shape.x,\n    y: shape.y,\n    height: shape.height,\n    width: shape.width\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js ***!
    \*****************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ToggleShapeCollapseHandler)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * A handler that toggles the collapsed state of an element\n * and the visibility of all its children.\n *\n * @param {Modeling} modeling\n */\nfunction ToggleShapeCollapseHandler(modeling) {\n  this._modeling = modeling;\n}\n\nToggleShapeCollapseHandler.$inject = [ 'modeling' ];\n\n\nToggleShapeCollapseHandler.prototype.execute = function(context) {\n\n  var shape = context.shape,\n      children = shape.children;\n\n  // recursively remember previous visibility of children\n  context.oldChildrenVisibility = getElementsVisibilityRecursive(children);\n\n  // toggle state\n  shape.collapsed = !shape.collapsed;\n\n  // recursively hide/show children\n  var result = setHiddenRecursive(children, shape.collapsed);\n\n  return [shape].concat(result);\n};\n\n\nToggleShapeCollapseHandler.prototype.revert = function(context) {\n\n  var shape = context.shape,\n      oldChildrenVisibility = context.oldChildrenVisibility;\n\n  var children = shape.children;\n\n  // recursively set old visability of children\n  var result = restoreVisibilityRecursive(children, oldChildrenVisibility);\n\n  // retoggle state\n  shape.collapsed = !shape.collapsed;\n\n  return [shape].concat(result);\n};\n\n\n// helpers //////////////////////\n\n/**\n * Return a map { elementId -> hiddenState}.\n *\n * @param {Array<djs.model.Shape>} elements\n *\n * @return {Object}\n */\nfunction getElementsVisibilityRecursive(elements) {\n\n  var result = {};\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    result[element.id] = element.hidden;\n\n    if (element.children) {\n      result = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, result, getElementsVisibilityRecursive(element.children));\n    }\n  });\n\n  return result;\n}\n\n\nfunction setHiddenRecursive(elements, newHidden) {\n  var result = [];\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    element.hidden = newHidden;\n\n    result = result.concat(element);\n\n    if (element.children) {\n      result = result.concat(setHiddenRecursive(element.children, element.collapsed || newHidden));\n    }\n  });\n\n  return result;\n}\n\nfunction restoreVisibilityRecursive(elements, lastState) {\n  var result = [];\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n    element.hidden = lastState[element.id];\n\n    result = result.concat(element);\n\n    if (element.children) {\n      result = result.concat(restoreVisibilityRecursive(element.children, lastState));\n    }\n  });\n\n  return result;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js":
  /*!**************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js ***!
    \**************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateAttachmentHandler)\n/* harmony export */ });\n/* harmony import */ var _util_Collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../util/Collections */ \"./node_modules/diagram-js/lib/util/Collections.js\");\n\n\n/**\n * A handler that implements reversible attaching/detaching of shapes.\n */\nfunction UpdateAttachmentHandler(modeling) {\n  this._modeling = modeling;\n}\n\nUpdateAttachmentHandler.$inject = [ 'modeling' ];\n\n\nUpdateAttachmentHandler.prototype.execute = function(context) {\n  var shape = context.shape,\n      newHost = context.newHost,\n      oldHost = shape.host;\n\n  // (0) detach from old host\n  context.oldHost = oldHost;\n  context.attacherIdx = removeAttacher(oldHost, shape);\n\n  // (1) attach to new host\n  addAttacher(newHost, shape);\n\n  // (2) update host\n  shape.host = newHost;\n\n  return shape;\n};\n\nUpdateAttachmentHandler.prototype.revert = function(context) {\n  var shape = context.shape,\n      newHost = context.newHost,\n      oldHost = context.oldHost,\n      attacherIdx = context.attacherIdx;\n\n  // (2) update host\n  shape.host = oldHost;\n\n  // (1) attach to new host\n  removeAttacher(newHost, shape);\n\n  // (0) detach from old host\n  addAttacher(oldHost, shape, attacherIdx);\n\n  return shape;\n};\n\n\nfunction removeAttacher(host, attacher) {\n\n  // remove attacher from host\n  return (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.remove)(host && host.attachers, attacher);\n}\n\nfunction addAttacher(host, attacher, idx) {\n\n  if (!host) {\n    return;\n  }\n\n  var attachers = host.attachers;\n\n  if (!attachers) {\n    host.attachers = attachers = [];\n  }\n\n  (0,_util_Collections__WEBPACK_IMPORTED_MODULE_0__.add)(attachers, attacher, idx);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js ***!
    \*************************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ UpdateWaypointsHandler)\n/* harmony export */ });\nfunction UpdateWaypointsHandler() { }\n\nUpdateWaypointsHandler.prototype.execute = function(context) {\n\n  var connection = context.connection,\n      newWaypoints = context.newWaypoints;\n\n  context.oldWaypoints = connection.waypoints;\n\n  connection.waypoints = newWaypoints;\n\n  return connection;\n};\n\nUpdateWaypointsHandler.prototype.revert = function(context) {\n\n  var connection = context.connection,\n      oldWaypoints = context.oldWaypoints;\n\n  connection.waypoints = oldWaypoints;\n\n  return connection;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js":
  /*!***********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js ***!
    \***********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getResizedSourceAnchor\": () => (/* binding */ getResizedSourceAnchor),\n/* harmony export */   \"getResizedTargetAnchor\": () => (/* binding */ getResizedTargetAnchor),\n/* harmony export */   \"getMovedSourceAnchor\": () => (/* binding */ getMovedSourceAnchor),\n/* harmony export */   \"getMovedTargetAnchor\": () => (/* binding */ getMovedTargetAnchor)\n/* harmony export */ });\n/* harmony import */ var _util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../util/AttachUtil */ \"./node_modules/diagram-js/lib/util/AttachUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\nfunction getResizedSourceAnchor(connection, shape, oldBounds) {\n\n  var waypoints = safeGetWaypoints(connection),\n      waypointsInsideNewBounds = getWaypointsInsideBounds(waypoints, shape),\n      oldAnchor = waypoints[0];\n\n  // new anchor is the last waypoint enclosed be resized source\n  if (waypointsInsideNewBounds.length) {\n    return waypointsInsideNewBounds[ waypointsInsideNewBounds.length - 1 ];\n  }\n\n  return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, shape);\n}\n\n\nfunction getResizedTargetAnchor(connection, shape, oldBounds) {\n\n  var waypoints = safeGetWaypoints(connection),\n      waypointsInsideNewBounds = getWaypointsInsideBounds(waypoints, shape),\n      oldAnchor = waypoints[waypoints.length - 1];\n\n  // new anchor is the first waypoint enclosed be resized target\n  if (waypointsInsideNewBounds.length) {\n    return waypointsInsideNewBounds[ 0 ];\n  }\n\n  return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, shape);\n}\n\n\nfunction getMovedSourceAnchor(connection, source, moveDelta) {\n\n  var waypoints = safeGetWaypoints(connection),\n      oldBounds = subtract(source, moveDelta),\n      oldAnchor = waypoints[ 0 ];\n\n  return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, source);\n}\n\n\nfunction getMovedTargetAnchor(connection, target, moveDelta) {\n\n  var waypoints = safeGetWaypoints(connection),\n      oldBounds = subtract(target, moveDelta),\n      oldAnchor = waypoints[ waypoints.length - 1 ];\n\n  return (0,_util_AttachUtil__WEBPACK_IMPORTED_MODULE_0__.getNewAttachPoint)(oldAnchor.original || oldAnchor, oldBounds, target);\n}\n\n\n// helpers //////////////////////\n\nfunction subtract(bounds, delta) {\n  return {\n    x: bounds.x - delta.x,\n    y: bounds.y - delta.y,\n    width: bounds.width,\n    height: bounds.height\n  };\n}\n\n\n/**\n * Return waypoints of given connection; throw if non exists (should not happen!!).\n *\n * @param {Connection} connection\n *\n * @return {Array<Point>}\n */\nfunction safeGetWaypoints(connection) {\n\n  var waypoints = connection.waypoints;\n\n  if (!waypoints.length) {\n    throw new Error('connection#' + connection.id + ': no waypoints');\n  }\n\n  return waypoints;\n}\n\nfunction getWaypointsInsideBounds(waypoints, bounds) {\n  var originalWaypoints = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.map)(waypoints, getOriginal);\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(originalWaypoints, function(waypoint) {\n    return isInsideBounds(waypoint, bounds);\n  });\n}\n\n/**\n * Checks if point is inside bounds, incl. edges.\n *\n * @param {Point} point\n * @param {Bounds} bounds\n */\nfunction isInsideBounds(point, bounds) {\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_2__.getOrientation)(bounds, point, 1) === 'intersect';\n}\n\nfunction getOriginal(point) {\n  return point.original || point;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js ***!
    \*********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveClosure)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n\n\n\n\n\nfunction MoveClosure() {\n\n  this.allShapes = {};\n  this.allConnections = {};\n\n  this.enclosedElements = {};\n  this.enclosedConnections = {};\n\n  this.topLevel = {};\n}\n\n\nMoveClosure.prototype.add = function(element, isTopLevel) {\n  return this.addAll([ element ], isTopLevel);\n};\n\n\nMoveClosure.prototype.addAll = function(elements, isTopLevel) {\n\n  var newClosure = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.getClosure)(elements, !!isTopLevel, this);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(this, newClosure);\n\n  return this;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveHelper)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnchorsHelper */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js\");\n/* harmony import */ var _MoveClosure__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MoveClosure */ \"./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js\");\n\n\n\n\n\n\n\n/**\n * A helper that is able to carry out serialized move\n * operations on multiple elements.\n *\n * @param {Modeling} modeling\n */\nfunction MoveHelper(modeling) {\n  this._modeling = modeling;\n}\n\n/**\n * Move the specified elements and all children by the given delta.\n *\n * This moves all enclosed connections, too and layouts all affected\n * external connections.\n *\n * @param  {Array<djs.model.Base>} elements\n * @param  {Point} delta\n * @param  {djs.model.Base} newParent applied to the first level of shapes\n *\n * @return {Array<djs.model.Base>} list of touched elements\n */\nMoveHelper.prototype.moveRecursive = function(elements, delta, newParent) {\n  if (!elements) {\n    return [];\n  } else {\n    return this.moveClosure(this.getClosure(elements), delta, newParent);\n  }\n};\n\n/**\n * Move the given closure of elmements.\n *\n * @param {Object} closure\n * @param {Point} delta\n * @param {djs.model.Base} [newParent]\n * @param {djs.model.Base} [newHost]\n */\nMoveHelper.prototype.moveClosure = function(closure, delta, newParent, newHost, primaryShape) {\n  var modeling = this._modeling;\n\n  var allShapes = closure.allShapes,\n      allConnections = closure.allConnections,\n      enclosedConnections = closure.enclosedConnections,\n      topLevel = closure.topLevel,\n      keepParent = false;\n\n  if (primaryShape && primaryShape.parent === newParent) {\n    keepParent = true;\n  }\n\n  // move all shapes\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(allShapes, function(shape) {\n\n    // move the element according to the given delta\n    modeling.moveShape(shape, delta, topLevel[shape.id] && !keepParent && newParent, {\n      recurse: false,\n      layout: false\n    });\n  });\n\n  // move all child connections / layout external connections\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(allConnections, function(c) {\n\n    var sourceMoved = !!allShapes[c.source.id],\n        targetMoved = !!allShapes[c.target.id];\n\n    if (enclosedConnections[c.id] && sourceMoved && targetMoved) {\n      modeling.moveConnection(c, delta, topLevel[c.id] && !keepParent && newParent);\n    } else {\n      modeling.layoutConnection(c, {\n        connectionStart: sourceMoved && (0,_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getMovedSourceAnchor)(c, c.source, delta),\n        connectionEnd: targetMoved && (0,_AnchorsHelper__WEBPACK_IMPORTED_MODULE_1__.getMovedTargetAnchor)(c, c.target, delta)\n      });\n    }\n  });\n};\n\n/**\n * Returns the closure for the selected elements\n *\n * @param  {Array<djs.model.Base>} elements\n * @return {MoveClosure} closure\n */\nMoveHelper.prototype.getClosure = function(elements) {\n  return new _MoveClosure__WEBPACK_IMPORTED_MODULE_2__.default().addAll(elements, true);\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/mouse/Mouse.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/mouse/Mouse.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Mouse),\n/* harmony export */   \"createMoveEvent\": () => (/* binding */ createMoveEvent)\n/* harmony export */ });\nfunction Mouse(eventBus) {\r\n  var self = this;\r\n\r\n  this._lastMoveEvent = null;\r\n\r\n  function setLastMoveEvent(mousemoveEvent) {\r\n    self._lastMoveEvent = mousemoveEvent;\r\n  }\r\n\r\n  eventBus.on('canvas.init', function(context) {\r\n    var svg = self._svg = context.svg;\r\n\r\n    svg.addEventListener('mousemove', setLastMoveEvent);\r\n  });\r\n\r\n  eventBus.on('canvas.destroy', function() {\r\n    self._lastMouseEvent = null;\r\n\r\n    self._svg.removeEventListener('mousemove', setLastMoveEvent);\r\n  });\r\n}\r\n\r\nMouse.$inject = [ 'eventBus' ];\r\n\r\nMouse.prototype.getLastMoveEvent = function() {\r\n  return this._lastMoveEvent || createMoveEvent(0, 0);\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction createMoveEvent(x, y) {\r\n  var event = document.createEvent('MouseEvent');\r\n\r\n  var screenX = x,\r\n      screenY = y,\r\n      clientX = x,\r\n      clientY = y;\r\n\r\n  if (event.initMouseEvent) {\r\n    event.initMouseEvent(\r\n      'mousemove',\r\n      true,\r\n      true,\r\n      window,\r\n      0,\r\n      screenX,\r\n      screenY,\r\n      clientX,\r\n      clientY,\r\n      false,\r\n      false,\r\n      false,\r\n      false,\r\n      0,\r\n      null\r\n    );\r\n  }\r\n\r\n  return event;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/mouse/Mouse.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/mouse/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/mouse/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Mouse */ \"./node_modules/diagram-js/lib/features/mouse/Mouse.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'mouse' ],\n  mouse: [ 'type', _Mouse__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/mouse/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/move/Move.js":
  /*!***********************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/move/Move.js ***!
    \***********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n\n\nvar LOW_PRIORITY = 500,\n    MEDIUM_PRIORITY = 1250,\n    HIGH_PRIORITY = 1500;\n\n\n\n\n\nvar round = Math.round;\n\nfunction mid(element) {\n  return {\n    x: element.x + round(element.width / 2),\n    y: element.y + round(element.height / 2)\n  };\n}\n\n/**\n * A plugin that makes shapes draggable / droppable.\n *\n * @param {EventBus} eventBus\n * @param {Dragging} dragging\n * @param {Modeling} modeling\n * @param {Selection} selection\n * @param {Rules} rules\n */\nfunction MoveEvents(\n    eventBus, dragging, modeling,\n    selection, rules) {\n\n  // rules\n\n  function canMove(shapes, delta, position, target) {\n\n    return rules.allowed('elements.move', {\n      shapes: shapes,\n      delta: delta,\n      position: position,\n      target: target\n    });\n  }\n\n\n  // move events\n\n  // assign a high priority to this handler to setup the environment\n  // others may hook up later, e.g. at default priority and modify\n  // the move environment.\n  //\n  // This sets up the context with\n  //\n  // * shape: the primary shape being moved\n  // * shapes: a list of shapes to be moved\n  // * validatedShapes: a list of shapes that are being checked\n  //                    against the rules before and during move\n  //\n  eventBus.on('shape.move.start', HIGH_PRIORITY, function(event) {\n\n    var context = event.context,\n        shape = event.shape,\n        shapes = selection.get().slice();\n\n    // move only single shape if the dragged element\n    // is not part of the current selection\n    if (shapes.indexOf(shape) === -1) {\n      shapes = [ shape ];\n    }\n\n    // ensure we remove nested elements in the collection\n    // and add attachers for a proper dragger\n    shapes = removeNested(shapes);\n\n    // attach shapes to drag context\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(context, {\n      shapes: shapes,\n      validatedShapes: shapes,\n      shape: shape\n    });\n  });\n\n\n  // assign a high priority to this handler to setup the environment\n  // others may hook up later, e.g. at default priority and modify\n  // the move environment\n  //\n  eventBus.on('shape.move.start', MEDIUM_PRIORITY, function(event) {\n\n    var context = event.context,\n        validatedShapes = context.validatedShapes,\n        canExecute;\n\n    canExecute = context.canExecute = canMove(validatedShapes);\n\n    // check if we can move the elements\n    if (!canExecute) {\n      return false;\n    }\n  });\n\n  // assign a low priority to this handler\n  // to let others modify the move event before we update\n  // the context\n  //\n  eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n    var context = event.context,\n        validatedShapes = context.validatedShapes,\n        hover = event.hover,\n        delta = { x: event.dx, y: event.dy },\n        position = { x: event.x, y: event.y },\n        canExecute;\n\n    // check if we can move the elements\n    canExecute = canMove(validatedShapes, delta, position, hover);\n\n    context.delta = delta;\n    context.canExecute = canExecute;\n\n    // simply ignore move over\n    if (canExecute === null) {\n      context.target = null;\n\n      return;\n    }\n\n    context.target = hover;\n  });\n\n  eventBus.on('shape.move.end', function(event) {\n\n    var context = event.context;\n\n    var delta = context.delta,\n        canExecute = context.canExecute,\n        isAttach = canExecute === 'attach',\n        shapes = context.shapes;\n\n    if (canExecute === false) {\n      return false;\n    }\n\n    // ensure we have actual pixel values deltas\n    // (important when zoom level was > 1 during move)\n    delta.x = round(delta.x);\n    delta.y = round(delta.y);\n\n    if (delta.x === 0 && delta.y === 0) {\n\n      // didn't move\n      return;\n    }\n\n    modeling.moveElements(shapes, delta, context.target, {\n      primaryShape: context.shape,\n      attach: isAttach\n    });\n  });\n\n\n  // move activation\n\n  eventBus.on('element.mousedown', function(event) {\n\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n      return;\n    }\n\n    var originalEvent = (0,_util_Event__WEBPACK_IMPORTED_MODULE_2__.getOriginal)(event);\n\n    if (!originalEvent) {\n      throw new Error('must supply DOM mousedown event');\n    }\n\n    return start(originalEvent, event.element);\n  });\n\n  /**\n   * Start move.\n   *\n   * @param {MouseEvent} event\n   * @param {djs.model.Shape} shape\n   * @param {boolean} [activate]\n   * @param {Object} [context]\n   */\n  function start(event, element, activate, context) {\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(activate)) {\n      context = activate;\n      activate = false;\n    }\n\n    // do not move connections or the root element\n    if (element.waypoints || !element.parent) {\n      return;\n    }\n\n    var referencePoint = mid(element);\n\n    dragging.init(event, referencePoint, 'shape.move', {\n      cursor: 'grabbing',\n      autoActivate: activate,\n      data: {\n        shape: element,\n        context: context || {}\n      }\n    });\n\n    // we've handled the event\n    return true;\n  }\n\n  // API\n\n  this.start = start;\n}\n\nMoveEvents.$inject = [\n  'eventBus',\n  'dragging',\n  'modeling',\n  'selection',\n  'rules'\n];\n\n\n/**\n * Return a filtered list of elements that do not contain\n * those nested into others.\n *\n * @param  {Array<djs.model.Base>} elements\n *\n * @return {Array<djs.model.Base>} filtered\n */\nfunction removeNested(elements) {\n\n  var ids = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.groupBy)(elements, 'id');\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n    while ((element = element.parent)) {\n\n      // parent in selection\n      if (ids[element.id]) {\n        return false;\n      }\n    }\n\n    return true;\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/Move.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/move/MovePreview.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/move/MovePreview.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MovePreview)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\n\n\n\n\n\n\nvar LOW_PRIORITY = 499;\n\nvar MARKER_DRAGGING = 'djs-dragging',\n    MARKER_OK = 'drop-ok',\n    MARKER_NOT_OK = 'drop-not-ok',\n    MARKER_NEW_PARENT = 'new-parent',\n    MARKER_ATTACH = 'attach-ok';\n\n\n/**\n * Provides previews for moving shapes when moving.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Canvas} canvas\n * @param {Styles} styles\n */\nfunction MovePreview(\n    eventBus, canvas, styles, previewSupport) {\n\n  function getVisualDragShapes(shapes) {\n    var elements = getAllDraggedElements(shapes);\n\n    var filteredElements = removeEdges(elements);\n\n    return filteredElements;\n  }\n\n  function getAllDraggedElements(shapes) {\n    var allShapes = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_0__.selfAndAllChildren)(shapes, true);\n\n    var allConnections = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.map)(allShapes, function(shape) {\n      return (shape.incoming || []).concat(shape.outgoing || []);\n    });\n\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.flatten)(allShapes.concat(allConnections));\n  }\n\n  /**\n   * Sets drop marker on an element.\n   */\n  function setMarker(element, marker) {\n\n    [ MARKER_ATTACH, MARKER_OK, MARKER_NOT_OK, MARKER_NEW_PARENT ].forEach(function(m) {\n\n      if (m === marker) {\n        canvas.addMarker(element, m);\n      } else {\n        canvas.removeMarker(element, m);\n      }\n    });\n  }\n\n  /**\n   * Make an element draggable.\n   *\n   * @param {Object} context\n   * @param {djs.model.Base} element\n   * @param {boolean} addMarker\n   */\n  function makeDraggable(context, element, addMarker) {\n\n    previewSupport.addDragger(element, context.dragGroup);\n\n    if (addMarker) {\n      canvas.addMarker(element, MARKER_DRAGGING);\n    }\n\n    if (context.allDraggedElements) {\n      context.allDraggedElements.push(element);\n    } else {\n      context.allDraggedElements = [ element ];\n    }\n  }\n\n  // assign a low priority to this handler\n  // to let others modify the move context before\n  // we draw things\n  eventBus.on('shape.move.start', LOW_PRIORITY, function(event) {\n    var context = event.context,\n        dragShapes = context.shapes,\n        allDraggedElements = context.allDraggedElements;\n\n    var visuallyDraggedShapes = getVisualDragShapes(dragShapes);\n\n    if (!context.dragGroup) {\n      var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('g');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\n\n      var defaultLayer = canvas.getDefaultLayer();\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(defaultLayer, dragGroup);\n\n      context.dragGroup = dragGroup;\n    }\n\n    // add previews\n    visuallyDraggedShapes.forEach(function(shape) {\n      previewSupport.addDragger(shape, context.dragGroup);\n    });\n\n    // cache all dragged elements / gfx\n    // so that we can quickly undo their state changes later\n    if (!allDraggedElements) {\n      allDraggedElements = getAllDraggedElements(dragShapes);\n    } else {\n      allDraggedElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.flatten)([\n        allDraggedElements,\n        getAllDraggedElements(dragShapes)\n      ]);\n    }\n\n    // add dragging marker\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(allDraggedElements, function(e) {\n      canvas.addMarker(e, MARKER_DRAGGING);\n    });\n\n    context.allDraggedElements = allDraggedElements;\n\n    // determine, if any of the dragged elements have different parents\n    context.differentParents = haveDifferentParents(dragShapes);\n  });\n\n  // update previews\n  eventBus.on('shape.move.move', LOW_PRIORITY, function(event) {\n\n    var context = event.context,\n        dragGroup = context.dragGroup,\n        target = context.target,\n        parent = context.shape.parent,\n        canExecute = context.canExecute;\n\n    if (target) {\n      if (canExecute === 'attach') {\n        setMarker(target, MARKER_ATTACH);\n      } else if (context.canExecute && target && target.id !== parent.id) {\n        setMarker(target, MARKER_NEW_PARENT);\n      } else {\n        setMarker(target, context.canExecute ? MARKER_OK : MARKER_NOT_OK);\n      }\n    }\n\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_3__.translate)(dragGroup, event.dx, event.dy);\n  });\n\n  eventBus.on([ 'shape.move.out', 'shape.move.cleanup' ], function(event) {\n    var context = event.context,\n        target = context.target;\n\n    if (target) {\n      setMarker(target, null);\n    }\n  });\n\n  // remove previews\n  eventBus.on('shape.move.cleanup', function(event) {\n\n    var context = event.context,\n        allDraggedElements = context.allDraggedElements,\n        dragGroup = context.dragGroup;\n\n\n    // remove dragging marker\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(allDraggedElements, function(e) {\n      canvas.removeMarker(e, MARKER_DRAGGING);\n    });\n\n    if (dragGroup) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.remove)(dragGroup);\n    }\n  });\n\n\n  // API //////////////////////\n\n  /**\n   * Make an element draggable.\n   *\n   * @param {Object} context\n   * @param {djs.model.Base} element\n   * @param {boolean} addMarker\n   */\n  this.makeDraggable = makeDraggable;\n}\n\nMovePreview.$inject = [\n  'eventBus',\n  'canvas',\n  'styles',\n  'previewSupport'\n];\n\n\n// helpers //////////////////////\n\n/**\n * returns elements minus all connections\n * where source or target is not elements\n */\nfunction removeEdges(elements) {\n\n  var filteredElements = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(elements, function(element) {\n\n    if (!isConnection(element)) {\n      return true;\n    } else {\n\n      return (\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ id: element.source.id })) &&\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(elements, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ id: element.target.id }))\n      );\n    }\n  });\n\n  return filteredElements;\n}\n\nfunction haveDifferentParents(elements) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.size)((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.groupBy)(elements, function(e) { return e.parent && e.parent.id; })) !== 1;\n}\n\n/**\n * Checks if an element is a connection.\n */\nfunction isConnection(element) {\n  return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/MovePreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/move/index.js":
  /*!************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/move/index.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../outline */ \"./node_modules/diagram-js/lib/features/outline/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _Move__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Move */ \"./node_modules/diagram-js/lib/features/move/Move.js\");\n/* harmony import */ var _MovePreview__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MovePreview */ \"./node_modules/diagram-js/lib/features/move/MovePreview.js\");\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n    _selection__WEBPACK_IMPORTED_MODULE_1__.default,\n    _outline__WEBPACK_IMPORTED_MODULE_2__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_3__.default,\n    _dragging__WEBPACK_IMPORTED_MODULE_4__.default,\n    _preview_support__WEBPACK_IMPORTED_MODULE_5__.default\n  ],\n  __init__: [\n    'move',\n    'movePreview'\n  ],\n  move: [ 'type', _Move__WEBPACK_IMPORTED_MODULE_6__.default ],\n  movePreview: [ 'type', _MovePreview__WEBPACK_IMPORTED_MODULE_7__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/move/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js ***!
    \***************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ OrderingProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n\n/**\n * An abstract provider that allows modelers to implement a custom\n * ordering of diagram elements on the canvas.\n *\n * It makes sure that the order is always preserved during element\n * creation and move operations.\n *\n * In order to use this behavior, inherit from it and override\n * the method {@link OrderingProvider#getOrdering}.\n *\n * @example\n *\n * ```javascript\n * function CustomOrderingProvider(eventBus) {\n *   OrderingProvider.call(this, eventBus);\n *\n *   this.getOrdering = function(element, newParent) {\n *     // always insert elements at the front\n *     // when moving\n *     return {\n *       index: 0,\n *       parent: newParent\n *     };\n *   };\n * }\n * ```\n *\n * @param {EventBus} eventBus\n */\nfunction OrderingProvider(eventBus) {\n\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n\n  var self = this;\n\n  this.preExecute([ 'shape.create', 'connection.create' ], function(event) {\n\n    var context = event.context,\n        element = context.shape || context.connection,\n        parent = context.parent;\n\n    var ordering = self.getOrdering(element, parent);\n\n    if (ordering) {\n\n      if (ordering.parent !== undefined) {\n        context.parent = ordering.parent;\n      }\n\n      context.parentIndex = ordering.index;\n    }\n  });\n\n  this.preExecute([ 'shape.move', 'connection.move' ], function(event) {\n\n    var context = event.context,\n        element = context.shape || context.connection,\n        parent = context.newParent || element.parent;\n\n    var ordering = self.getOrdering(element, parent);\n\n    if (ordering) {\n\n      if (ordering.parent !== undefined) {\n        context.newParent = ordering.parent;\n      }\n\n      context.newParentIndex = ordering.index;\n    }\n  });\n}\n\n/**\n * Return a custom ordering of the element, both in terms\n * of parent element and index in the new parent.\n *\n * Implementors of this method must return an object with\n * `parent` _and_ `index` in it.\n *\n * @param {djs.model.Base} element\n * @param {djs.model.Shape} newParent\n *\n * @return {Object} ordering descriptor\n */\nOrderingProvider.prototype.getOrdering = function(element, newParent) {\n  return null;\n};\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(OrderingProvider, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/outline/Outline.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/outline/Outline.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Outline)\n/* harmony export */ });\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar LOW_PRIORITY = 500;\n\n\n\n\n\n\n\n\n/**\n * @class\n *\n * A plugin that adds an outline to shapes and connections that may be activated and styled\n * via CSS classes.\n *\n * @param {EventBus} eventBus\n * @param {Styles} styles\n * @param {ElementRegistry} elementRegistry\n */\nfunction Outline(eventBus, styles, elementRegistry) {\n\n  this.offset = 6;\n\n  var OUTLINE_STYLE = styles.cls('djs-outline', [ 'no-fill' ]);\n\n  var self = this;\n\n  function createOutline(gfx, bounds) {\n    var outline = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n      x: 10,\n      y: 10,\n      width: 100,\n      height: 100\n    }, OUTLINE_STYLE));\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(gfx, outline);\n\n    return outline;\n  }\n\n  // A low priortity is necessary, because outlines of labels have to be updated\n  // after the label bounds have been updated in the renderer.\n  eventBus.on([ 'shape.added', 'shape.changed' ], LOW_PRIORITY, function(event) {\n    var element = event.element,\n        gfx = event.gfx;\n\n    var outline = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-outline', gfx);\n\n    if (!outline) {\n      outline = createOutline(gfx, element);\n    }\n\n    self.updateShapeOutline(outline, element);\n  });\n\n  eventBus.on([ 'connection.added', 'connection.changed' ], function(event) {\n    var element = event.element,\n        gfx = event.gfx;\n\n    var outline = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.djs-outline', gfx);\n\n    if (!outline) {\n      outline = createOutline(gfx, element);\n    }\n\n    self.updateConnectionOutline(outline, element);\n  });\n}\n\n\n/**\n * Updates the outline of a shape respecting the dimension of the\n * element and an outline offset.\n *\n * @param  {SVGElement} outline\n * @param  {djs.model.Base} element\n */\nOutline.prototype.updateShapeOutline = function(outline, element) {\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, {\n    x: -this.offset,\n    y: -this.offset,\n    width: element.width + this.offset * 2,\n    height: element.height + this.offset * 2\n  });\n\n};\n\n\n/**\n * Updates the outline of a connection respecting the bounding box of\n * the connection and an outline offset.\n *\n * @param  {SVGElement} outline\n * @param  {djs.model.Base} element\n */\nOutline.prototype.updateConnectionOutline = function(outline, connection) {\n\n  var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(connection);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(outline, {\n    x: bbox.x - this.offset,\n    y: bbox.y - this.offset,\n    width: bbox.width + this.offset * 2,\n    height: bbox.height + this.offset * 2\n  });\n\n};\n\n\nOutline.$inject = ['eventBus', 'styles', 'elementRegistry'];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/outline/Outline.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/outline/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/outline/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Outline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Outline */ \"./node_modules/diagram-js/lib/features/outline/Outline.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'outline' ],\n  outline: [ 'type', _Outline__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/outline/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/overlays/Overlays.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/overlays/Overlays.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Overlays)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/IdGenerator */ \"./node_modules/diagram-js/lib/util/IdGenerator.js\");\n\n\n\n\n\n\n\n\n// document wide unique overlay ids\nvar ids = new _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__.default('ov');\n\nvar LOW_PRIORITY = 500;\n\n\n/**\n * A service that allows users to attach overlays to diagram elements.\n *\n * The overlay service will take care of overlay positioning during updates.\n *\n * @example\n *\n * // add a pink badge on the top left of the shape\n * overlays.add(someShape, {\n *   position: {\n *     top: -5,\n *     left: -5\n *   },\n *   html: '<div style=\"width: 10px; background: fuchsia; color: white;\">0</div>'\n * });\n *\n * // or add via shape id\n *\n * overlays.add('some-element-id', {\n *   position: {\n *     top: -5,\n *     left: -5\n *   }\n *   html: '<div style=\"width: 10px; background: fuchsia; color: white;\">0</div>'\n * });\n *\n * // or add with optional type\n *\n * overlays.add(someShape, 'badge', {\n *   position: {\n *     top: -5,\n *     left: -5\n *   }\n *   html: '<div style=\"width: 10px; background: fuchsia; color: white;\">0</div>'\n * });\n *\n *\n * // remove an overlay\n *\n * var id = overlays.add(...);\n * overlays.remove(id);\n *\n *\n * You may configure overlay defaults during tool by providing a `config` module\n * with `overlays.defaults` as an entry:\n *\n * {\n *   overlays: {\n *     defaults: {\n *       show: {\n *         minZoom: 0.7,\n *         maxZoom: 5.0\n *       },\n *       scale: {\n *         min: 1\n *       }\n *     }\n * }\n *\n * @param {Object} config\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {ElementRegistry} elementRegistry\n */\nfunction Overlays(config, eventBus, canvas, elementRegistry) {\n\n  this._eventBus = eventBus;\n  this._canvas = canvas;\n  this._elementRegistry = elementRegistry;\n\n  this._ids = ids;\n\n  this._overlayDefaults = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({\n\n    // no show constraints\n    show: null,\n\n    // always scale\n    scale: true\n  }, config && config.defaults);\n\n  /**\n   * Mapping overlayId -> overlay\n   */\n  this._overlays = {};\n\n  /**\n   * Mapping elementId -> overlay container\n   */\n  this._overlayContainers = [];\n\n  // root html element for all overlays\n  this._overlayRoot = createRoot(canvas.getContainer());\n\n  this._init();\n}\n\n\nOverlays.$inject = [\n  'config.overlays',\n  'eventBus',\n  'canvas',\n  'elementRegistry'\n];\n\n\n/**\n * Returns the overlay with the specified id or a list of overlays\n * for an element with a given type.\n *\n * @example\n *\n * // return the single overlay with the given id\n * overlays.get('some-id');\n *\n * // return all overlays for the shape\n * overlays.get({ element: someShape });\n *\n * // return all overlays on shape with type 'badge'\n * overlays.get({ element: someShape, type: 'badge' });\n *\n * // shape can also be specified as id\n * overlays.get({ element: 'element-id', type: 'badge' });\n *\n *\n * @param {Object} search\n * @param {string} [search.id]\n * @param {string|djs.model.Base} [search.element]\n * @param {string} [search.type]\n *\n * @return {Object|Array<Object>} the overlay(s)\n */\nOverlays.prototype.get = function(search) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(search)) {\n    search = { id: search };\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(search.element)) {\n    search.element = this._elementRegistry.get(search.element);\n  }\n\n  if (search.element) {\n    var container = this._getOverlayContainer(search.element, true);\n\n    // return a list of overlays when searching by element (+type)\n    if (container) {\n      return search.type ? (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(container.overlays, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ type: search.type })) : container.overlays.slice();\n    } else {\n      return [];\n    }\n  } else\n  if (search.type) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(this._overlays, (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.matchPattern)({ type: search.type }));\n  } else {\n\n    // return single element when searching by id\n    return search.id ? this._overlays[search.id] : null;\n  }\n};\n\n/**\n * Adds a HTML overlay to an element.\n *\n * @param {string|djs.model.Base}   element   attach overlay to this shape\n * @param {string}                  [type]    optional type to assign to the overlay\n * @param {Object}                  overlay   the overlay configuration\n *\n * @param {string|DOMElement}       overlay.html                 html element to use as an overlay\n * @param {Object}                  [overlay.show]               show configuration\n * @param {number}                  [overlay.show.minZoom]       minimal zoom level to show the overlay\n * @param {number}                  [overlay.show.maxZoom]       maximum zoom level to show the overlay\n * @param {Object}                  overlay.position             where to attach the overlay\n * @param {number}                  [overlay.position.left]      relative to element bbox left attachment\n * @param {number}                  [overlay.position.top]       relative to element bbox top attachment\n * @param {number}                  [overlay.position.bottom]    relative to element bbox bottom attachment\n * @param {number}                  [overlay.position.right]     relative to element bbox right attachment\n * @param {boolean|Object}          [overlay.scale=true]         false to preserve the same size regardless of\n *                                                               diagram zoom\n * @param {number}                  [overlay.scale.min]\n * @param {number}                  [overlay.scale.max]\n *\n * @return {string}                 id that may be used to reference the overlay for update or removal\n */\nOverlays.prototype.add = function(element, type, overlay) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isObject)(type)) {\n    overlay = type;\n    type = null;\n  }\n\n  if (!element.id) {\n    element = this._elementRegistry.get(element);\n  }\n\n  if (!overlay.position) {\n    throw new Error('must specifiy overlay position');\n  }\n\n  if (!overlay.html) {\n    throw new Error('must specifiy overlay html');\n  }\n\n  if (!element) {\n    throw new Error('invalid element specified');\n  }\n\n  var id = this._ids.next();\n\n  overlay = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, this._overlayDefaults, overlay, {\n    id: id,\n    type: type,\n    element: element,\n    html: overlay.html\n  });\n\n  this._addOverlay(overlay);\n\n  return id;\n};\n\n\n/**\n * Remove an overlay with the given id or all overlays matching the given filter.\n *\n * @see Overlays#get for filter options.\n *\n * @param {string} [id]\n * @param {Object} [filter]\n */\nOverlays.prototype.remove = function(filter) {\n\n  var overlays = this.get(filter) || [];\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(overlays)) {\n    overlays = [ overlays ];\n  }\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(overlays, function(overlay) {\n\n    var container = self._getOverlayContainer(overlay.element, true);\n\n    if (overlay) {\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(overlay.html);\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(overlay.htmlContainer);\n\n      delete overlay.htmlContainer;\n      delete overlay.element;\n\n      delete self._overlays[overlay.id];\n    }\n\n    if (container) {\n      var idx = container.overlays.indexOf(overlay);\n      if (idx !== -1) {\n        container.overlays.splice(idx, 1);\n      }\n    }\n  });\n\n};\n\n\nOverlays.prototype.show = function() {\n  setVisible(this._overlayRoot);\n};\n\n\nOverlays.prototype.hide = function() {\n  setVisible(this._overlayRoot, false);\n};\n\nOverlays.prototype.clear = function() {\n  this._overlays = {};\n\n  this._overlayContainers = [];\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.clear)(this._overlayRoot);\n};\n\nOverlays.prototype._updateOverlayContainer = function(container) {\n  var element = container.element,\n      html = container.html;\n\n  // update container left,top according to the elements x,y coordinates\n  // this ensures we can attach child elements relative to this container\n\n  var x = element.x,\n      y = element.y;\n\n  if (element.waypoints) {\n    var bbox = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element);\n    x = bbox.x;\n    y = bbox.y;\n  }\n\n  setPosition(html, x, y);\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.attr)(container.html, 'data-container-id', element.id);\n};\n\n\nOverlays.prototype._updateOverlay = function(overlay) {\n\n  var position = overlay.position,\n      htmlContainer = overlay.htmlContainer,\n      element = overlay.element;\n\n  // update overlay html relative to shape because\n  // it is already positioned on the element\n\n  // update relative\n  var left = position.left,\n      top = position.top;\n\n  if (position.right !== undefined) {\n\n    var width;\n\n    if (element.waypoints) {\n      width = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element).width;\n    } else {\n      width = element.width;\n    }\n\n    left = position.right * -1 + width;\n  }\n\n  if (position.bottom !== undefined) {\n\n    var height;\n\n    if (element.waypoints) {\n      height = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_3__.getBBox)(element).height;\n    } else {\n      height = element.height;\n    }\n\n    top = position.bottom * -1 + height;\n  }\n\n  setPosition(htmlContainer, left || 0, top || 0);\n};\n\n\nOverlays.prototype._createOverlayContainer = function(element) {\n  var html = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)('<div class=\"djs-overlays\" style=\"position: absolute\" />');\n\n  this._overlayRoot.appendChild(html);\n\n  var container = {\n    html: html,\n    element: element,\n    overlays: []\n  };\n\n  this._updateOverlayContainer(container);\n\n  this._overlayContainers.push(container);\n\n  return container;\n};\n\n\nOverlays.prototype._updateRoot = function(viewbox) {\n  var scale = viewbox.scale || 1;\n\n  var matrix = 'matrix(' +\n  [\n    scale,\n    0,\n    0,\n    scale,\n    -1 * viewbox.x * scale,\n    -1 * viewbox.y * scale\n  ].join(',') +\n  ')';\n\n  setTransform(this._overlayRoot, matrix);\n};\n\n\nOverlays.prototype._getOverlayContainer = function(element, raw) {\n  var container = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(this._overlayContainers, function(c) {\n    return c.element === element;\n  });\n\n\n  if (!container && !raw) {\n    return this._createOverlayContainer(element);\n  }\n\n  return container;\n};\n\n\nOverlays.prototype._addOverlay = function(overlay) {\n\n  var id = overlay.id,\n      element = overlay.element,\n      html = overlay.html,\n      htmlContainer,\n      overlayContainer;\n\n  // unwrap jquery (for those who need it)\n  if (html.get && html.constructor.prototype.jquery) {\n    html = html.get(0);\n  }\n\n  // create proper html elements from\n  // overlay HTML strings\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isString)(html)) {\n    html = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)(html);\n  }\n\n  overlayContainer = this._getOverlayContainer(element);\n\n  htmlContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)('<div class=\"djs-overlay\" data-overlay-id=\"' + id + '\" style=\"position: absolute\">');\n\n  htmlContainer.appendChild(html);\n\n  if (overlay.type) {\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.classes)(htmlContainer).add('djs-overlay-' + overlay.type);\n  }\n\n  overlay.htmlContainer = htmlContainer;\n\n  overlayContainer.overlays.push(overlay);\n  overlayContainer.html.appendChild(htmlContainer);\n\n  this._overlays[id] = overlay;\n\n  this._updateOverlay(overlay);\n  this._updateOverlayVisibilty(overlay, this._canvas.viewbox());\n};\n\n\nOverlays.prototype._updateOverlayVisibilty = function(overlay, viewbox) {\n  var show = overlay.show,\n      minZoom = show && show.minZoom,\n      maxZoom = show && show.maxZoom,\n      htmlContainer = overlay.htmlContainer,\n      visible = true;\n\n  if (show) {\n    if (\n      ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(minZoom) && minZoom > viewbox.scale) ||\n      ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(maxZoom) && maxZoom < viewbox.scale)\n    ) {\n      visible = false;\n    }\n\n    setVisible(htmlContainer, visible);\n  }\n\n  this._updateOverlayScale(overlay, viewbox);\n};\n\n\nOverlays.prototype._updateOverlayScale = function(overlay, viewbox) {\n  var shouldScale = overlay.scale,\n      minScale,\n      maxScale,\n      htmlContainer = overlay.htmlContainer;\n\n  var scale, transform = '';\n\n  if (shouldScale !== true) {\n\n    if (shouldScale === false) {\n      minScale = 1;\n      maxScale = 1;\n    } else {\n      minScale = shouldScale.min;\n      maxScale = shouldScale.max;\n    }\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(minScale) && viewbox.scale < minScale) {\n      scale = (1 / viewbox.scale || 1) * minScale;\n    }\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(maxScale) && viewbox.scale > maxScale) {\n      scale = (1 / viewbox.scale || 1) * maxScale;\n    }\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isDefined)(scale)) {\n    transform = 'scale(' + scale + ',' + scale + ')';\n  }\n\n  setTransform(htmlContainer, transform);\n};\n\n\nOverlays.prototype._updateOverlaysVisibilty = function(viewbox) {\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(this._overlays, function(overlay) {\n    self._updateOverlayVisibilty(overlay, viewbox);\n  });\n};\n\n\nOverlays.prototype._init = function() {\n\n  var eventBus = this._eventBus;\n\n  var self = this;\n\n\n  // scroll/zoom integration\n\n  function updateViewbox(viewbox) {\n    self._updateRoot(viewbox);\n    self._updateOverlaysVisibilty(viewbox);\n\n    self.show();\n  }\n\n  eventBus.on('canvas.viewbox.changing', function(event) {\n    self.hide();\n  });\n\n  eventBus.on('canvas.viewbox.changed', function(event) {\n    updateViewbox(event.viewbox);\n  });\n\n\n  // remove integration\n\n  eventBus.on([ 'shape.remove', 'connection.remove' ], function(e) {\n    var element = e.element;\n    var overlays = self.get({ element: element });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(overlays, function(o) {\n      self.remove(o.id);\n    });\n\n    var container = self._getOverlayContainer(element);\n\n    if (container) {\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.remove)(container.html);\n      var i = self._overlayContainers.indexOf(container);\n      if (i !== -1) {\n        self._overlayContainers.splice(i, 1);\n      }\n    }\n  });\n\n\n  // move integration\n\n  eventBus.on('element.changed', LOW_PRIORITY, function(e) {\n    var element = e.element;\n\n    var container = self._getOverlayContainer(element, true);\n\n    if (container) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(container.overlays, function(overlay) {\n        self._updateOverlay(overlay);\n      });\n\n      self._updateOverlayContainer(container);\n    }\n  });\n\n\n  // marker integration, simply add them on the overlays as classes, too.\n\n  eventBus.on('element.marker.update', function(e) {\n    var container = self._getOverlayContainer(e.element, true);\n    if (container) {\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.classes)(container.html)[e.add ? 'add' : 'remove'](e.marker);\n    }\n  });\n\n\n  // clear overlays with diagram\n\n  eventBus.on('diagram.clear', this.clear, this);\n};\n\n\n\n// helpers /////////////////////////////\n\nfunction createRoot(parentNode) {\n  var root = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)(\n    '<div class=\"djs-overlay-container\" style=\"position: absolute; width: 0; height: 0;\" />'\n  );\n\n  parentNode.insertBefore(root, parentNode.firstChild);\n\n  return root;\n}\n\nfunction setPosition(el, x, y) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(el.style, { left: x + 'px', top: y + 'px' });\n}\n\nfunction setVisible(el, visible) {\n  el.style.display = visible === false ? 'none' : '';\n}\n\nfunction setTransform(el, transform) {\n\n  el.style['transform-origin'] = 'top left';\n\n  [ '', '-ms-', '-webkit-' ].forEach(function(prefix) {\n    el.style[prefix + 'transform'] = transform;\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/overlays/Overlays.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/overlays/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/overlays/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Overlays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Overlays */ \"./node_modules/diagram-js/lib/features/overlays/Overlays.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'overlays' ],\n  overlays: [ 'type', _Overlays__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/overlays/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/palette/Palette.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/palette/Palette.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Palette)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\n\nvar TOGGLE_SELECTOR = '.djs-palette-toggle',\n    ENTRY_SELECTOR = '.entry',\n    ELEMENT_SELECTOR = TOGGLE_SELECTOR + ', ' + ENTRY_SELECTOR;\n\nvar PALETTE_OPEN_CLS = 'open',\n    PALETTE_TWO_COLUMN_CLS = 'two-column';\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A palette containing modeling elements.\n */\nfunction Palette(eventBus, canvas) {\n\n  this._eventBus = eventBus;\n  this._canvas = canvas;\n\n  var self = this;\n\n  eventBus.on('tool-manager.update', function(event) {\n    var tool = event.tool;\n\n    self.updateToolHighlight(tool);\n  });\n\n  eventBus.on('i18n.changed', function() {\n    self._update();\n  });\n\n  eventBus.on('diagram.init', function() {\n\n    self._diagramInitialized = true;\n\n    self._rebuild();\n  });\n}\n\nPalette.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Register a provider with the palette\n *\n * @param  {number} [priority=1000]\n * @param  {PaletteProvider} provider\n *\n * @example\n * const paletteProvider = {\n *   getPaletteEntries: function() {\n *     return function(entries) {\n *       return {\n *         ...entries,\n *         'entry-1': {\n *           label: 'My Entry',\n *           action: function() { alert(\"I have been clicked!\"); }\n *         }\n *       };\n *     }\n *   }\n * };\n *\n * palette.registerProvider(800, paletteProvider);\n */\nPalette.prototype.registerProvider = function(priority, provider) {\n  if (!provider) {\n    provider = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  this._eventBus.on('palette.getProviders', priority, function(event) {\n    event.providers.push(provider);\n  });\n\n  this._rebuild();\n};\n\n\n/**\n * Returns the palette entries\n *\n * @return {Object<string, PaletteEntryDescriptor>} map of entries\n */\nPalette.prototype.getEntries = function() {\n  var providers = this._getProviders();\n\n  return providers.reduce(addPaletteEntries, {});\n};\n\nPalette.prototype._rebuild = function() {\n\n  if (!this._diagramInitialized) {\n    return;\n  }\n\n  var providers = this._getProviders();\n\n  if (!providers.length) {\n    return;\n  }\n\n  if (!this._container) {\n    this._init();\n  }\n\n  this._update();\n};\n\n/**\n * Initialize\n */\nPalette.prototype._init = function() {\n\n  var self = this;\n\n  var eventBus = this._eventBus;\n\n  var parentContainer = this._getParentContainer();\n\n  var container = this._container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(Palette.HTML_MARKUP);\n\n  parentContainer.appendChild(container);\n\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(container, ELEMENT_SELECTOR, 'click', function(event) {\n\n    var target = event.delegateTarget;\n\n    if ((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.matches)(target, TOGGLE_SELECTOR)) {\n      return self.toggle();\n    }\n\n    self.trigger('click', event);\n  });\n\n  // prevent drag propagation\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.event.bind(container, 'mousedown', function(event) {\n    event.stopPropagation();\n  });\n\n  // prevent drag propagation\n  min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(container, ENTRY_SELECTOR, 'dragstart', function(event) {\n    self.trigger('dragstart', event);\n  });\n\n  eventBus.on('canvas.resized', this._layoutChanged, this);\n\n  eventBus.fire('palette.create', {\n    container: container\n  });\n};\n\nPalette.prototype._getProviders = function(id) {\n\n  var event = this._eventBus.createEvent({\n    type: 'palette.getProviders',\n    providers: []\n  });\n\n  this._eventBus.fire(event);\n\n  return event.providers;\n};\n\n/**\n * Update palette state.\n *\n * @param  {Object} [state] { open, twoColumn }\n */\nPalette.prototype._toggleState = function(state) {\n\n  state = state || {};\n\n  var parent = this._getParentContainer(),\n      container = this._container;\n\n  var eventBus = this._eventBus;\n\n  var twoColumn;\n\n  var cls = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(container);\n\n  if ('twoColumn' in state) {\n    twoColumn = state.twoColumn;\n  } else {\n    twoColumn = this._needsCollapse(parent.clientHeight, this._entries || {});\n  }\n\n  // always update two column\n  cls.toggle(PALETTE_TWO_COLUMN_CLS, twoColumn);\n\n  if ('open' in state) {\n    cls.toggle(PALETTE_OPEN_CLS, state.open);\n  }\n\n  eventBus.fire('palette.changed', {\n    twoColumn: twoColumn,\n    open: this.isOpen()\n  });\n};\n\nPalette.prototype._update = function() {\n\n  var entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('.djs-palette-entries', this._container),\n      entries = this._entries = this.getEntries();\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.clear)(entriesContainer);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(entries, function(entry, id) {\n\n    var grouping = entry.group || 'default';\n\n    var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[data-group=' + grouping + ']', entriesContainer);\n    if (!container) {\n      container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)('<div class=\"group\" data-group=\"' + grouping + '\"></div>');\n      entriesContainer.appendChild(container);\n    }\n\n    var html = entry.html || (\n      entry.separator ?\n        '<hr class=\"separator\" />' :\n        '<div class=\"entry\" draggable=\"true\"></div>');\n\n\n    var control = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(html);\n    container.appendChild(control);\n\n    if (!entry.separator) {\n      (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(control, 'data-action', id);\n\n      if (entry.title) {\n        (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(control, 'title', entry.title);\n      }\n\n      if (entry.className) {\n        addClasses(control, entry.className);\n      }\n\n      if (entry.imageUrl) {\n        control.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)('<img src=\"' + entry.imageUrl + '\">'));\n      }\n    }\n  });\n\n  // open after update\n  this.open();\n};\n\n\n/**\n * Trigger an action available on the palette\n *\n * @param  {string} action\n * @param  {Event} event\n */\nPalette.prototype.trigger = function(action, event, autoActivate) {\n  var entries = this._entries,\n      entry,\n      handler,\n      originalEvent,\n      button = event.delegateTarget || event.target;\n\n  if (!button) {\n    return event.preventDefault();\n  }\n\n  entry = entries[(0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(button, 'data-action')];\n\n  // when user clicks on the palette and not on an action\n  if (!entry) {\n    return;\n  }\n\n  handler = entry.action;\n\n  originalEvent = event.originalEvent || event;\n\n  // simple action (via callback function)\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(handler)) {\n    if (action === 'click') {\n      handler(originalEvent, autoActivate);\n    }\n  } else {\n    if (handler[action]) {\n      handler[action](originalEvent, autoActivate);\n    }\n  }\n\n  // silence other actions\n  event.preventDefault();\n};\n\nPalette.prototype._layoutChanged = function() {\n  this._toggleState({});\n};\n\n/**\n * Do we need to collapse to two columns?\n *\n * @param {number} availableHeight\n * @param {Object} entries\n *\n * @return {boolean}\n */\nPalette.prototype._needsCollapse = function(availableHeight, entries) {\n\n  // top margin + bottom toggle + bottom margin\n  // implementors must override this method if they\n  // change the palette styles\n  var margin = 20 + 10 + 20;\n\n  var entriesHeight = Object.keys(entries).length * 46;\n\n  return availableHeight < entriesHeight + margin;\n};\n\n/**\n * Close the palette\n */\nPalette.prototype.close = function() {\n\n  this._toggleState({\n    open: false,\n    twoColumn: false\n  });\n};\n\n\n/**\n * Open the palette\n */\nPalette.prototype.open = function() {\n  this._toggleState({ open: true });\n};\n\n\nPalette.prototype.toggle = function(open) {\n  if (this.isOpen()) {\n    this.close();\n  } else {\n    this.open();\n  }\n};\n\nPalette.prototype.isActiveTool = function(tool) {\n  return tool && this._activeTool === tool;\n};\n\nPalette.prototype.updateToolHighlight = function(name) {\n  var entriesContainer,\n      toolsContainer;\n\n  if (!this._toolsContainer) {\n    entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('.djs-palette-entries', this._container);\n\n    this._toolsContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)('[data-group=tools]', entriesContainer);\n  }\n\n  toolsContainer = this._toolsContainer;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(toolsContainer.children, function(tool) {\n    var actionName = tool.getAttribute('data-action');\n\n    if (!actionName) {\n      return;\n    }\n\n    var toolClasses = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(tool);\n\n    actionName = actionName.replace('-tool', '');\n\n    if (toolClasses.contains('entry') && actionName === name) {\n      toolClasses.add('highlighted-entry');\n    } else {\n      toolClasses.remove('highlighted-entry');\n    }\n  });\n};\n\n\n/**\n * Return true if the palette is opened.\n *\n * @example\n *\n * palette.open();\n *\n * if (palette.isOpen()) {\n *   // yes, we are open\n * }\n *\n * @return {boolean} true if palette is opened\n */\nPalette.prototype.isOpen = function() {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).has(PALETTE_OPEN_CLS);\n};\n\n/**\n * Get container the palette lives in.\n *\n * @return {Element}\n */\nPalette.prototype._getParentContainer = function() {\n  return this._canvas.getContainer();\n};\n\n\n/* markup definition */\n\nPalette.HTML_MARKUP =\n  '<div class=\"djs-palette\">' +\n    '<div class=\"djs-palette-entries\"></div>' +\n    '<div class=\"djs-palette-toggle\"></div>' +\n  '</div>';\n\n\n// helpers //////////////////////\n\nfunction addClasses(element, classNames) {\n\n  var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(element);\n\n  var actualClassNames = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(classNames) ? classNames : classNames.split(/\\s+/g);\n  actualClassNames.forEach(function(cls) {\n    classes.add(cls);\n  });\n}\n\nfunction addPaletteEntries(entries, provider) {\n\n  var entriesOrUpdater = provider.getPaletteEntries();\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isFunction)(entriesOrUpdater)) {\n    return entriesOrUpdater(entries);\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(entriesOrUpdater, function(entry, id) {\n    entries[id] = entry;\n  });\n\n  return entries;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/palette/Palette.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/palette/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/palette/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Palette */ \"./node_modules/diagram-js/lib/features/palette/Palette.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'palette' ],\n  palette: [ 'type', _Palette__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/palette/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ PopupMenu)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar DATA_REF = 'data-id';\n\nvar CLOSE_EVENTS = [\n  'contextPad.close',\n  'canvas.viewbox.changing',\n  'commandStack.changed'\n];\n\nvar DEFAULT_PRIORITY = 1000;\n\n\n/**\n * A popup menu that can be used to display a list of actions anywhere in the canvas.\n *\n * @param {Object} config\n * @param {boolean|Object} [config.scale={ min: 1.0, max: 1.5 }]\n * @param {number} [config.scale.min]\n * @param {number} [config.scale.max]\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n *\n * @class\n * @constructor\n */\nfunction PopupMenu(config, eventBus, canvas) {\n\n  var scale = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(config && config.scale) ? config.scale : {\n    min: 1,\n    max: 1.5\n  };\n\n  this._config = {\n    scale: scale\n  };\n\n  this._eventBus = eventBus;\n  this._canvas = canvas;\n  this._providers = {};\n  this._current = {};\n}\n\nPopupMenu.$inject = [\n  'config.popupMenu',\n  'eventBus',\n  'canvas'\n];\n\n/**\n * Registers a popup menu provider\n *\n * @param  {string} id\n * @param {number} [priority=1000]\n * @param  {Object} provider\n *\n * @example\n * const popupMenuProvider = {\n *   getPopupMenuEntries: function(element) {\n *     return {\n *       'entry-1': {\n *         label: 'My Entry',\n *         action: function() { alert(\"I have been clicked!\"); }\n *       }\n *     }\n *   }\n * };\n *\n * popupMenu.registerProvider('myMenuID', popupMenuProvider);\n */\nPopupMenu.prototype.registerProvider = function(id, priority, provider) {\n  if (!provider) {\n    provider = priority;\n    priority = DEFAULT_PRIORITY;\n  }\n\n  this._eventBus.on('popupMenu.getProviders.' + id, priority, function(event) {\n    event.providers.push(provider);\n  });\n};\n\n/**\n * Determine if the popup menu has entries.\n *\n * @return {boolean} true if empty\n */\nPopupMenu.prototype.isEmpty = function(element, providerId) {\n  if (!element) {\n    throw new Error('element parameter is missing');\n  }\n\n  if (!providerId) {\n    throw new Error('providerId parameter is missing');\n  }\n\n  var providers = this._getProviders(providerId);\n\n  if (!providers) {\n    return true;\n  }\n\n  var entries = this._getEntries(element, providers),\n      headerEntries = this._getHeaderEntries(element, providers);\n\n  var hasEntries = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(entries) > 0,\n      hasHeaderEntries = headerEntries && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(headerEntries) > 0;\n\n  return !hasEntries && !hasHeaderEntries;\n};\n\n\n/**\n * Create entries and open popup menu at given position\n *\n * @param  {Object} element\n * @param  {string} id provider id\n * @param  {Object} position\n *\n * @return {Object} popup menu instance\n */\nPopupMenu.prototype.open = function(element, id, position) {\n\n  var providers = this._getProviders(id);\n\n  if (!element) {\n    throw new Error('Element is missing');\n  }\n\n  if (!providers || !providers.length) {\n    throw new Error('No registered providers for: ' + id);\n  }\n\n  if (!position) {\n    throw new Error('the position argument is missing');\n  }\n\n  if (this.isOpen()) {\n    this.close();\n  }\n\n  this._emit('open');\n\n  var current = this._current = {\n    className: id,\n    element: element,\n    position: position\n  };\n\n  var entries = this._getEntries(element, providers),\n      headerEntries = this._getHeaderEntries(element, providers);\n\n  current.entries = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, entries, headerEntries);\n\n  current.container = this._createContainer();\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(headerEntries)) {\n    current.container.appendChild(\n      this._createEntries(headerEntries, 'djs-popup-header')\n    );\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.size)(entries)) {\n    current.container.appendChild(\n      this._createEntries(entries, 'djs-popup-body')\n    );\n  }\n\n  var canvas = this._canvas,\n      parent = canvas.getContainer();\n\n  this._attachContainer(current.container, parent, position.cursor);\n  this._bindAutoClose();\n};\n\n\n/**\n * Removes the popup menu and unbinds the event handlers.\n */\nPopupMenu.prototype.close = function() {\n\n  if (!this.isOpen()) {\n    return;\n  }\n\n  this._emit('close');\n\n  this._unbindAutoClose();\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(this._current.container);\n  this._current.container = null;\n};\n\n\n/**\n * Determine if an open popup menu exist.\n *\n * @return {boolean} true if open\n */\nPopupMenu.prototype.isOpen = function() {\n  return !!this._current.container;\n};\n\n\n/**\n * Trigger an action associated with an entry.\n *\n * @param {Object} event\n *\n * @return the result of the action callback, if any\n */\nPopupMenu.prototype.trigger = function(event) {\n\n  // silence other actions\n  event.preventDefault();\n\n  var element = event.delegateTarget || event.target,\n      entryId = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(element, DATA_REF);\n\n  var entry = this._getEntry(entryId);\n\n  if (entry.action) {\n    return entry.action.call(null, event, entry);\n  }\n};\n\nPopupMenu.prototype._getProviders = function(id) {\n\n  var event = this._eventBus.createEvent({\n    type: 'popupMenu.getProviders.' + id,\n    providers: []\n  });\n\n  this._eventBus.fire(event);\n\n  return event.providers;\n};\n\nPopupMenu.prototype._getEntries = function(element, providers) {\n\n  var entries = {};\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n\n    // handle legacy method\n    if (!provider.getPopupMenuEntries) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(provider.getEntries(element), function(entry) {\n        var id = entry.id;\n\n        if (!id) {\n          throw new Error('every entry must have the id property set');\n        }\n\n        entries[id] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(entry, [ 'id' ]);\n      });\n\n      return;\n    }\n\n    var entriesOrUpdater = provider.getPopupMenuEntries(element);\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n      entries = entriesOrUpdater(entries);\n    } else {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n        entries[id] = entry;\n      });\n    }\n  });\n\n  return entries;\n};\n\nPopupMenu.prototype._getHeaderEntries = function(element, providers) {\n\n  var entries = {};\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(providers, function(provider) {\n\n    // handle legacy method\n    if (!provider.getPopupMenuHeaderEntries) {\n      if (!provider.getHeaderEntries) {\n        return;\n      }\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(provider.getHeaderEntries(element), function(entry) {\n        var id = entry.id;\n\n        if (!id) {\n          throw new Error('every entry must have the id property set');\n        }\n\n        entries[id] = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.omit)(entry, [ 'id' ]);\n      });\n\n      return;\n    }\n\n    var entriesOrUpdater = provider.getPopupMenuHeaderEntries(element);\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(entriesOrUpdater)) {\n      entries = entriesOrUpdater(entries);\n    } else {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entriesOrUpdater, function(entry, id) {\n        entries[id] = entry;\n      });\n    }\n  });\n\n  return entries;\n\n\n};\n\n/**\n * Gets an entry instance (either entry or headerEntry) by id.\n *\n * @param  {string} entryId\n *\n * @return {Object} entry instance\n */\nPopupMenu.prototype._getEntry = function(entryId) {\n\n  var entry = this._current.entries[entryId];\n\n  if (!entry) {\n    throw new Error('entry not found');\n  }\n\n  return entry;\n};\n\nPopupMenu.prototype._emit = function(eventName) {\n  this._eventBus.fire('popupMenu.' + eventName);\n};\n\n/**\n * Creates the popup menu container.\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createContainer = function() {\n  var container = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div class=\"djs-popup\">'),\n      position = this._current.position,\n      className = this._current.className;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(container.style, {\n    position: 'absolute',\n    left: position.x + 'px',\n    top: position.y + 'px',\n    visibility: 'hidden'\n  });\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(container).add(className);\n\n  return container;\n};\n\n\n/**\n * Attaches the container to the DOM.\n *\n * @param {Object} container\n * @param {Object} parent\n */\nPopupMenu.prototype._attachContainer = function(container, parent, cursor) {\n  var self = this;\n\n  // Event handler\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(container, '.entry' ,'click', function(event) {\n    self.trigger(event);\n  });\n\n  this._updateScale(container);\n\n  // Attach to DOM\n  parent.appendChild(container);\n\n  if (cursor) {\n    this._assureIsInbounds(container, cursor);\n  }\n};\n\n\n/**\n * Updates popup style.transform with respect to the config and zoom level.\n *\n * @method _updateScale\n *\n * @param {Object} container\n */\nPopupMenu.prototype._updateScale = function(container) {\n  var zoom = this._canvas.zoom();\n\n  var scaleConfig = this._config.scale,\n      minScale,\n      maxScale,\n      scale = zoom;\n\n  if (scaleConfig !== true) {\n\n    if (scaleConfig === false) {\n      minScale = 1;\n      maxScale = 1;\n    } else {\n      minScale = scaleConfig.min;\n      maxScale = scaleConfig.max;\n    }\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(minScale) && zoom < minScale) {\n      scale = minScale;\n    }\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isDefined)(maxScale) && zoom > maxScale) {\n      scale = maxScale;\n    }\n\n  }\n\n  setTransform(container, 'scale(' + scale + ')');\n};\n\n\n/**\n * Make sure that the menu is always fully shown\n *\n * @method function\n *\n * @param  {Object} container\n * @param  {Position} cursor {x, y}\n */\nPopupMenu.prototype._assureIsInbounds = function(container, cursor) {\n  var canvas = this._canvas,\n      clientRect = canvas._container.getBoundingClientRect();\n\n  var containerX = container.offsetLeft,\n      containerY = container.offsetTop,\n      containerWidth = container.scrollWidth,\n      containerHeight = container.scrollHeight,\n      overAxis = {},\n      left, top;\n\n  var cursorPosition = {\n    x: cursor.x - clientRect.left,\n    y: cursor.y - clientRect.top\n  };\n\n  if (containerX + containerWidth > clientRect.width) {\n    overAxis.x = true;\n  }\n\n  if (containerY + containerHeight > clientRect.height) {\n    overAxis.y = true;\n  }\n\n  if (overAxis.x && overAxis.y) {\n    left = cursorPosition.x - containerWidth + 'px';\n    top = cursorPosition.y - containerHeight + 'px';\n  } else if (overAxis.x) {\n    left = cursorPosition.x - containerWidth + 'px';\n    top = cursorPosition.y + 'px';\n  } else if (overAxis.y && cursorPosition.y < containerHeight) {\n    left = cursorPosition.x + 'px';\n    top = 10 + 'px';\n  } else if (overAxis.y) {\n    left = cursorPosition.x + 'px';\n    top = cursorPosition.y - containerHeight + 'px';\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(container.style, { left: left, top: top }, { visibility: 'visible', 'z-index': 1000 });\n};\n\n\n/**\n * Creates a list of entries and returns them as a DOM container.\n *\n * @param {Array<Object>} entries an array of entry objects\n * @param {string} className the class name of the entry container\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createEntries = function(entries, className) {\n\n  var entriesContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div>'),\n      self = this;\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(entriesContainer).add(className);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(entries, function(entry, id) {\n    var entryContainer = self._createEntry(entry, id);\n    entriesContainer.appendChild(entryContainer);\n  });\n\n  return entriesContainer;\n};\n\n\n/**\n * Creates a single entry and returns it as a DOM container.\n *\n * @param  {Object} entry\n *\n * @return {Object} a DOM container\n */\nPopupMenu.prototype._createEntry = function(entry, id) {\n\n  var entryContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div>'),\n      entryClasses = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(entryContainer);\n\n  entryClasses.add('entry');\n\n  if (entry.className) {\n    entry.className.split(' ').forEach(function(className) {\n      entryClasses.add(className);\n    });\n  }\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(entryContainer, DATA_REF, id);\n\n  if (entry.label) {\n    var label = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<span>');\n    label.textContent = entry.label;\n    entryContainer.appendChild(label);\n  }\n\n  if (entry.imageUrl) {\n    entryContainer.appendChild((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<img src=\"' + entry.imageUrl + '\" />'));\n  }\n\n  if (entry.active === true) {\n    entryClasses.add('active');\n  }\n\n  if (entry.disabled === true) {\n    entryClasses.add('disabled');\n  }\n\n  if (entry.title) {\n    entryContainer.title = entry.title;\n  }\n\n  return entryContainer;\n};\n\n\n/**\n * Set up listener to close popup automatically on certain events.\n */\nPopupMenu.prototype._bindAutoClose = function() {\n  this._eventBus.once(CLOSE_EVENTS, this.close, this);\n};\n\n\n/**\n * Remove the auto-closing listener.\n */\nPopupMenu.prototype._unbindAutoClose = function() {\n  this._eventBus.off(CLOSE_EVENTS, this.close, this);\n};\n\n\n\n// helpers /////////////////////////////\n\nfunction setTransform(element, transform) {\n  element.style['transform-origin'] = 'top left';\n\n  [ '', '-ms-', '-webkit-' ].forEach(function(prefix) {\n    element.style[prefix + 'transform'] = transform;\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/popup-menu/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/popup-menu/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _PopupMenu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PopupMenu */ \"./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'popupMenu' ],\n  popupMenu: [ 'type', _PopupMenu__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/popup-menu/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js ***!
    \********************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ PreviewSupport)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/GraphicsUtil */ \"./node_modules/diagram-js/lib/util/GraphicsUtil.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar MARKER_TYPES = [\r\n  'marker-start',\r\n  'marker-mid',\r\n  'marker-end'\r\n];\r\n\r\nvar NODES_CAN_HAVE_MARKER = [\r\n  'circle',\r\n  'ellipse',\r\n  'line',\r\n  'path',\r\n  'polygon',\r\n  'polyline',\r\n  'rect'\r\n];\r\n\r\n\r\n/**\r\n * Adds support for previews of moving/resizing elements.\r\n */\r\nfunction PreviewSupport(elementRegistry, eventBus, canvas, styles) {\r\n  this._elementRegistry = elementRegistry;\r\n  this._canvas = canvas;\r\n  this._styles = styles;\r\n\r\n  this._clonedMarkers = {};\r\n\r\n  var self = this;\r\n\r\n  eventBus.on('drag.cleanup', function() {\r\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(self._clonedMarkers, function(clonedMarker) {\r\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(clonedMarker);\r\n    });\r\n\r\n    self._clonedMarkers = {};\r\n  });\r\n}\r\n\r\nPreviewSupport.$inject = [\r\n  'elementRegistry',\r\n  'eventBus',\r\n  'canvas',\r\n  'styles'\r\n];\r\n\r\n\r\n/**\r\n * Returns graphics of an element.\r\n *\r\n * @param {djs.model.Base} element\r\n *\r\n * @return {SVGElement}\r\n */\r\nPreviewSupport.prototype.getGfx = function(element) {\r\n  return this._elementRegistry.getGraphics(element);\r\n};\r\n\r\n/**\r\n * Adds a move preview of a given shape to a given svg group.\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {SVGElement} group\r\n * @param {SVGElement} [gfx]\r\n *\r\n * @return {SVGElement} dragger\r\n */\r\nPreviewSupport.prototype.addDragger = function(element, group, gfx) {\r\n  gfx = gfx || this.getGfx(element);\r\n\r\n  var dragger = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.clone)(gfx);\r\n  var bbox = gfx.getBoundingClientRect();\r\n\r\n  this._cloneMarkers((0,_util_GraphicsUtil__WEBPACK_IMPORTED_MODULE_2__.getVisual)(dragger));\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(dragger, this._styles.cls('djs-dragger', [], {\r\n    x: bbox.top,\r\n    y: bbox.left\r\n  }));\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(group, dragger);\r\n\r\n  return dragger;\r\n};\r\n\r\n/**\r\n * Adds a resize preview of a given shape to a given svg group.\r\n *\r\n * @param {djs.model.Base} element\r\n * @param {SVGElement} group\r\n *\r\n * @return {SVGElement} frame\r\n */\r\nPreviewSupport.prototype.addFrame = function(shape, group) {\r\n\r\n  var frame = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('rect', {\r\n    class: 'djs-resize-overlay',\r\n    width:  shape.width,\r\n    height: shape.height,\r\n    x: shape.x,\r\n    y: shape.y\r\n  });\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(group, frame);\r\n\r\n  return frame;\r\n};\r\n\r\n/**\r\n * Clone all markers referenced by a node and its child nodes.\r\n *\r\n * @param {SVGElement} gfx\r\n */\r\nPreviewSupport.prototype._cloneMarkers = function(gfx) {\r\n  var self = this;\r\n\r\n  if (gfx.childNodes) {\r\n\r\n    // TODO: use forEach once we drop PhantomJS\r\n    for (var i = 0; i < gfx.childNodes.length; i++) {\r\n\r\n      // recursively clone markers of child nodes\r\n      self._cloneMarkers(gfx.childNodes[ i ]);\r\n    }\r\n  }\r\n\r\n  if (!canHaveMarker(gfx)) {\r\n    return;\r\n  }\r\n\r\n  MARKER_TYPES.forEach(function(markerType) {\r\n    if ((0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, markerType)) {\r\n      var marker = getMarker(gfx, markerType, self._canvas.getContainer());\r\n\r\n      self._cloneMarker(gfx, marker, markerType);\r\n    }\r\n  });\r\n};\r\n\r\n/**\r\n * Clone marker referenced by an element.\r\n *\r\n * @param {SVGElement} gfx\r\n * @param {SVGElement} marker\r\n * @param {string} markerType\r\n */\r\nPreviewSupport.prototype._cloneMarker = function(gfx, marker, markerType) {\r\n  var markerId = marker.id;\r\n\r\n  var clonedMarker = this._clonedMarkers[ markerId ];\r\n\r\n  if (!clonedMarker) {\r\n    clonedMarker = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.clone)(marker);\r\n\r\n    var clonedMarkerId = markerId + '-clone';\r\n\r\n    clonedMarker.id = clonedMarkerId;\r\n\r\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(clonedMarker)\r\n      .add('djs-dragger')\r\n      .add('djs-dragger-marker');\r\n\r\n    this._clonedMarkers[ markerId ] = clonedMarker;\r\n\r\n    var defs = (0,min_dom__WEBPACK_IMPORTED_MODULE_3__.query)('defs', this._canvas._svg);\r\n\r\n    if (!defs) {\r\n      defs = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('defs');\r\n\r\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(this._canvas._svg, defs);\r\n    }\r\n\r\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(defs, clonedMarker);\r\n  }\r\n\r\n  var reference = idToReference(this._clonedMarkers[ markerId ].id);\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(gfx, markerType, reference);\r\n};\r\n\r\n// helpers //////////\r\n\r\n/**\r\n * Get marker of given type referenced by node.\r\n *\r\n * @param {Node} node\r\n * @param {string} markerType\r\n * @param {Node} [parentNode]\r\n *\r\n * @param {Node}\r\n */\r\nfunction getMarker(node, markerType, parentNode) {\r\n  var id = referenceToId((0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(node, markerType));\r\n\r\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_3__.query)('marker#' + id, parentNode || document);\r\n}\r\n\r\n/**\r\n * Get ID of fragment within current document from its functional IRI reference.\r\n * References may use single or double quotes.\r\n *\r\n * @param {string} reference\r\n *\r\n * @returns {string}\r\n */\r\nfunction referenceToId(reference) {\r\n  return reference.match(/url\\(['\"]?#([^'\"]*)['\"]?\\)/)[1];\r\n}\r\n\r\n/**\r\n * Get functional IRI reference for given ID of fragment within current document.\r\n *\r\n * @param {string} id\r\n *\r\n * @returns {string}\r\n */\r\nfunction idToReference(id) {\r\n  return 'url(#' + id + ')';\r\n}\r\n\r\n/**\r\n * Check wether node type can have marker attributes.\r\n *\r\n * @param {Node} node\r\n *\r\n * @returns {boolean}\r\n */\r\nfunction canHaveMarker(node) {\r\n  return NODES_CAN_HAVE_MARKER.indexOf(node.nodeName) !== -1;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/preview-support/index.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/preview-support/index.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _PreviewSupport__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PreviewSupport */ \"./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'previewSupport' ],\n  previewSupport: [ 'type', _PreviewSupport__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/preview-support/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/replace/Replace.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/replace/Replace.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Replace)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar round = Math.round;\n\n/**\n * Service that allow replacing of elements.\n */\nfunction Replace(modeling) {\n\n  this._modeling = modeling;\n}\n\nReplace.$inject = [ 'modeling' ];\n\n/**\n * @param {Element} oldElement - Element to be replaced\n * @param {Object}  newElementData - Containing information about the new element,\n *                                   for example the new bounds and type.\n * @param {Object}  options - Custom options that will be attached to the context. It can be used to inject data\n *                            that is needed in the command chain. For example it could be used in\n *                            eventbus.on('commandStack.shape.replace.postExecute') to change shape attributes after\n *                            shape creation.\n */\nReplace.prototype.replaceElement = function(oldElement, newElementData, options) {\n\n  if (oldElement.waypoints) {\n\n    // TODO(nikku): we do not replace connections, yet\n    return null;\n  }\n\n  var modeling = this._modeling;\n\n  var width = newElementData.width || oldElement.width,\n      height = newElementData.height || oldElement.height,\n      x = newElementData.x || oldElement.x,\n      y = newElementData.y || oldElement.y,\n      centerX = round(x + width / 2),\n      centerY = round(y + height / 2);\n\n  // modeling API requires center coordinates,\n  // account for that when handling shape bounds\n\n  return modeling.replaceShape(\n    oldElement,\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(\n      {},\n      newElementData,\n      {\n        x: centerX,\n        y: centerY,\n        width: width,\n        height: height\n      }\n    ),\n    options\n  );\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/replace/Replace.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/replace/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/replace/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Replace */ \"./node_modules/diagram-js/lib/features/replace/Replace.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'replace' ],\n  replace: [ 'type', _Replace__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/replace/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/resize/Resize.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/resize/Resize.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Resize),\n/* harmony export */   \"getReferencePoint\": () => (/* binding */ getReferencePoint)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _ResizeUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResizeUtil */ \"./node_modules/diagram-js/lib/features/resize/ResizeUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\n\nvar DEFAULT_MIN_WIDTH = 10;\n\n\n/**\n * A component that provides resizing of shapes on the canvas.\n *\n * The following components are part of shape resize:\n *\n *  * adding resize handles,\n *  * creating a visual during resize\n *  * checking resize rules\n *  * committing a change once finished\n *\n *\n * ## Customizing\n *\n * It's possible to customize the resizing behaviour by intercepting 'resize.start'\n * and providing the following parameters through the 'context':\n *\n *   * minDimensions ({ width, height }): minimum shape dimensions\n *\n *   * childrenBoxPadding ({ left, top, bottom, right } || number):\n *     gap between the minimum bounding box and the container\n *\n * f.ex:\n *\n * ```javascript\n * eventBus.on('resize.start', 1500, function(event) {\n *   var context = event.context,\n *\n *  context.minDimensions = { width: 140, height: 120 };\n *\n *  // Passing general padding\n *  context.childrenBoxPadding = 30;\n *\n *  // Passing padding to a specific side\n *  context.childrenBoxPadding.left = 20;\n * });\n * ```\n */\nfunction Resize(eventBus, rules, modeling, dragging) {\n\n  this._dragging = dragging;\n  this._rules = rules;\n\n  var self = this;\n\n\n  /**\n   * Handle resize move by specified delta.\n   *\n   * @param {Object} context\n   * @param {Point} delta\n   */\n  function handleMove(context, delta) {\n\n    var shape = context.shape,\n        direction = context.direction,\n        resizeConstraints = context.resizeConstraints,\n        newBounds;\n\n    context.delta = delta;\n\n    newBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.resizeBounds)(shape, direction, delta);\n\n    // ensure constraints during resize\n    context.newBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.ensureConstraints)(newBounds, resizeConstraints);\n\n    // update + cache executable state\n    context.canExecute = self.canResize(context);\n  }\n\n  /**\n   * Handle resize start.\n   *\n   * @param  {Object} context\n   */\n  function handleStart(context) {\n\n    var resizeConstraints = context.resizeConstraints,\n\n        // evaluate minBounds for backwards compatibility\n        minBounds = context.minBounds;\n\n    if (resizeConstraints !== undefined) {\n      return;\n    }\n\n    if (minBounds === undefined) {\n      minBounds = self.computeMinResizeBox(context);\n    }\n\n    context.resizeConstraints = {\n      min: (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(minBounds)\n    };\n  }\n\n  /**\n   * Handle resize end.\n   *\n   * @param  {Object} context\n   */\n  function handleEnd(context) {\n    var shape = context.shape,\n        canExecute = context.canExecute,\n        newBounds = context.newBounds;\n\n    if (canExecute) {\n\n      // ensure we have actual pixel values for new bounds\n      // (important when zoom level was > 1 during move)\n      newBounds = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundBounds)(newBounds);\n\n      if (!boundsChanged(shape, newBounds)) {\n\n        // no resize necessary\n        return;\n      }\n\n      // perform the actual resize\n      modeling.resizeShape(shape, newBounds);\n    }\n  }\n\n\n  eventBus.on('resize.start', function(event) {\n    handleStart(event.context);\n  });\n\n  eventBus.on('resize.move', function(event) {\n    var delta = {\n      x: event.dx,\n      y: event.dy\n    };\n\n    handleMove(event.context, delta);\n  });\n\n  eventBus.on('resize.end', function(event) {\n    handleEnd(event.context);\n  });\n\n}\n\n\nResize.prototype.canResize = function(context) {\n  var rules = this._rules;\n\n  var ctx = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.pick)(context, [ 'newBounds', 'shape', 'delta', 'direction' ]);\n\n  return rules.allowed('shape.resize', ctx);\n};\n\n/**\n * Activate a resize operation.\n *\n * You may specify additional contextual information and must specify a\n * resize direction during activation of the resize event.\n *\n * @param {MouseEvent} event\n * @param {djs.model.Shape} shape\n * @param {Object|string} contextOrDirection\n */\nResize.prototype.activate = function(event, shape, contextOrDirection) {\n  var dragging = this._dragging,\n      context,\n      direction;\n\n  if (typeof contextOrDirection === 'string') {\n    contextOrDirection = {\n      direction: contextOrDirection\n    };\n  }\n\n  context = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ shape: shape }, contextOrDirection);\n\n  direction = context.direction;\n\n  if (!direction) {\n    throw new Error('must provide a direction (n|w|s|e|nw|se|ne|sw)');\n  }\n\n  dragging.init(event, getReferencePoint(shape, direction), 'resize', {\n    autoActivate: true,\n    cursor: getCursor(direction),\n    data: {\n      shape: shape,\n      context: context\n    }\n  });\n};\n\nResize.prototype.computeMinResizeBox = function(context) {\n  var shape = context.shape,\n      direction = context.direction,\n      minDimensions,\n      childrenBounds;\n\n  minDimensions = context.minDimensions || {\n    width: DEFAULT_MIN_WIDTH,\n    height: DEFAULT_MIN_WIDTH\n  };\n\n  // get children bounds\n  childrenBounds = (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.computeChildrenBBox)(shape, context.childrenBoxPadding);\n\n  // get correct minimum bounds from given resize direction\n  // basically ensures that the minBounds is max(childrenBounds, minDimensions)\n  return (0,_ResizeUtil__WEBPACK_IMPORTED_MODULE_0__.getMinResizeBounds)(direction, shape, minDimensions, childrenBounds);\n};\n\n\nResize.$inject = [\n  'eventBus',\n  'rules',\n  'modeling',\n  'dragging'\n];\n\n// helpers //////////\n\nfunction boundsChanged(shape, newBounds) {\n  return shape.x !== newBounds.x ||\n    shape.y !== newBounds.y ||\n    shape.width !== newBounds.width ||\n    shape.height !== newBounds.height;\n}\n\nfunction getReferencePoint(shape, direction) {\n  var mid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getMid)(shape),\n      trbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(shape);\n\n  var referencePoint = {\n    x: mid.x,\n    y: mid.y\n  };\n\n  if (direction.indexOf('n') !== -1) {\n    referencePoint.y = trbl.top;\n  } else if (direction.indexOf('s') !== -1) {\n    referencePoint.y = trbl.bottom;\n  }\n\n  if (direction.indexOf('e') !== -1) {\n    referencePoint.x = trbl.right;\n  } else if (direction.indexOf('w') !== -1) {\n    referencePoint.x = trbl.left;\n  }\n\n  return referencePoint;\n}\n\nfunction getCursor(direction) {\n  var prefix = 'resize-';\n\n  if (direction === 'n' || direction === 's') {\n    return prefix + 'ns';\n  } else if (direction === 'e' || direction === 'w') {\n    return prefix + 'ew';\n  } else if (direction === 'nw' || direction === 'se') {\n    return prefix + 'nwse';\n  } else {\n    return prefix + 'nesw';\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/Resize.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/resize/ResizeHandles.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/resize/ResizeHandles.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeHandles)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n/* harmony import */ var _Resize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Resize */ \"./node_modules/diagram-js/lib/features/resize/Resize.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar HANDLE_OFFSET = -6,\n    HANDLE_SIZE = 4,\n    HANDLE_HIT_SIZE = 20;\n\nvar CLS_RESIZER = 'djs-resizer';\n\nvar directions = [ 'n', 'w', 's', 'e', 'nw', 'ne', 'se', 'sw' ];\n\n\n/**\n * This component is responsible for adding resize handles.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {Selection} selection\n * @param {Resize} resize\n */\nfunction ResizeHandles(eventBus, canvas, selection, resize) {\n\n  this._resize = resize;\n  this._canvas = canvas;\n\n  var self = this;\n\n  eventBus.on('selection.changed', function(e) {\n    var newSelection = e.newSelection;\n\n    // remove old selection markers\n    self.removeResizers();\n\n    // add new selection markers ONLY if single selection\n    if (newSelection.length === 1) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(newSelection, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(self.addResizer, self));\n    }\n  });\n\n  eventBus.on('shape.changed', function(e) {\n    var shape = e.element;\n\n    if (selection.isSelected(shape)) {\n      self.removeResizers();\n\n      self.addResizer(shape);\n    }\n  });\n}\n\n\nResizeHandles.prototype.makeDraggable = function(element, gfx, direction) {\n  var resize = this._resize;\n\n  function startResize(event) {\n\n    // only trigger on left mouse button\n    if ((0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n      resize.activate(event, element, direction);\n    }\n  }\n\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(gfx, 'mousedown', startResize);\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(gfx, 'touchstart', startResize);\n};\n\n\nResizeHandles.prototype._createResizer = function(element, x, y, direction) {\n  var resizersParent = this._getResizersParent();\n\n  var offset = getHandleOffset(direction);\n\n  var group = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('g');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER);\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER + '-' + element.id);\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(group).add(CLS_RESIZER + '-' + direction);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(resizersParent, group);\n\n  var visual = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(visual, {\n    x: -HANDLE_SIZE / 2 + offset.x,\n    y: -HANDLE_SIZE / 2 + offset.y,\n    width: HANDLE_SIZE,\n    height: HANDLE_SIZE\n  });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(visual).add(CLS_RESIZER + '-visual');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(group, visual);\n\n  var hit = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.create)('rect');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.attr)(hit, {\n    x: -HANDLE_HIT_SIZE / 2 + offset.x,\n    y: -HANDLE_HIT_SIZE / 2 + offset.y,\n    width: HANDLE_HIT_SIZE,\n    height: HANDLE_HIT_SIZE\n  });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.classes)(hit).add(CLS_RESIZER + '-hit');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.append)(group, hit);\n\n  (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_4__.transform)(group, x, y);\n\n  return group;\n};\n\nResizeHandles.prototype.createResizer = function(element, direction) {\n  var point = (0,_Resize__WEBPACK_IMPORTED_MODULE_5__.getReferencePoint)(element, direction);\n\n  var resizer = this._createResizer(element, point.x, point.y, direction);\n\n  this.makeDraggable(element, resizer, direction);\n};\n\n// resize handles implementation ///////////////////////////////\n\n/**\n * Add resizers for a given element.\n *\n * @param {djs.model.Shape} shape\n */\nResizeHandles.prototype.addResizer = function(shape) {\n  var self = this;\n\n  var resize = this._resize;\n\n  if (!resize.canResize({ shape: shape })) {\n    return;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(directions, function(direction) {\n    self.createResizer(shape, direction);\n  });\n};\n\n/**\n * Remove all resizers\n */\nResizeHandles.prototype.removeResizers = function() {\n  var resizersParent = this._getResizersParent();\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_3__.clear)(resizersParent);\n};\n\nResizeHandles.prototype._getResizersParent = function() {\n  return this._canvas.getLayer('resizers');\n};\n\nResizeHandles.$inject = [\n  'eventBus',\n  'canvas',\n  'selection',\n  'resize'\n];\n\n// helpers //////////\n\nfunction getHandleOffset(direction) {\n  var offset = {\n    x: 0,\n    y: 0\n  };\n\n  if (direction.indexOf('e') !== -1) {\n    offset.x = -HANDLE_OFFSET;\n  } else if (direction.indexOf('w') !== -1) {\n    offset.x = HANDLE_OFFSET;\n  }\n\n  if (direction.indexOf('s') !== -1) {\n    offset.y = -HANDLE_OFFSET;\n  } else if (direction.indexOf('n') !== -1) {\n    offset.y = HANDLE_OFFSET;\n  }\n\n  return offset;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizeHandles.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/resize/ResizePreview.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/resize/ResizePreview.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizePreview)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\nvar MARKER_RESIZING = 'djs-resizing',\n    MARKER_RESIZE_NOT_OK = 'resize-not-ok';\n\nvar LOW_PRIORITY = 500;\n\n\n\n\n/**\n * Provides previews for resizing shapes when resizing.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n * @param {PreviewSupport} previewSupport\n */\nfunction ResizePreview(eventBus, canvas, previewSupport) {\n\n  /**\n   * Update resizer frame.\n   *\n   * @param {Object} context\n   */\n  function updateFrame(context) {\n\n    var shape = context.shape,\n        bounds = context.newBounds,\n        frame = context.frame;\n\n    if (!frame) {\n      frame = context.frame = previewSupport.addFrame(shape, canvas.getDefaultLayer());\n\n      canvas.addMarker(shape, MARKER_RESIZING);\n    }\n\n    if (bounds.width > 5) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, { x: bounds.x, width: bounds.width });\n    }\n\n    if (bounds.height > 5) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(frame, { y: bounds.y, height: bounds.height });\n    }\n\n    if (context.canExecute) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(frame).remove(MARKER_RESIZE_NOT_OK);\n    } else {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.classes)(frame).add(MARKER_RESIZE_NOT_OK);\n    }\n  }\n\n  /**\n   * Remove resizer frame.\n   *\n   * @param {Object} context\n   */\n  function removeFrame(context) {\n    var shape = context.shape,\n        frame = context.frame;\n\n    if (frame) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.remove)(context.frame);\n    }\n\n    canvas.removeMarker(shape, MARKER_RESIZING);\n  }\n\n  // add and update previews\n  eventBus.on('resize.move', LOW_PRIORITY, function(event) {\n    updateFrame(event.context);\n  });\n\n  // remove previews\n  eventBus.on('resize.cleanup', function(event) {\n    removeFrame(event.context);\n  });\n\n}\n\nResizePreview.$inject = [\n  'eventBus',\n  'canvas',\n  'previewSupport'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizePreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/resize/ResizeUtil.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/resize/ResizeUtil.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"substractTRBL\": () => (/* binding */ substractTRBL),\n/* harmony export */   \"resizeBounds\": () => (/* binding */ resizeBounds),\n/* harmony export */   \"resizeTRBL\": () => (/* binding */ resizeTRBL),\n/* harmony export */   \"reattachPoint\": () => (/* binding */ reattachPoint),\n/* harmony export */   \"ensureConstraints\": () => (/* binding */ ensureConstraints),\n/* harmony export */   \"getMinResizeBounds\": () => (/* binding */ getMinResizeBounds),\n/* harmony export */   \"addPadding\": () => (/* binding */ addPadding),\n/* harmony export */   \"computeChildrenBBox\": () => (/* binding */ computeChildrenBBox)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\nvar max = Math.max,\n    min = Math.min;\n\nvar DEFAULT_CHILD_BOX_PADDING = 20;\n\n\n\n\n\n\n/**\n * Substract a TRBL from another\n *\n * @param  {TRBL} trblA\n * @param  {TRBL} trblB\n *\n * @return {TRBL}\n */\nfunction substractTRBL(trblA, trblB) {\n  return {\n    top: trblA.top - trblB.top,\n    right: trblA.right - trblB.right,\n    bottom: trblA.bottom - trblB.bottom,\n    left: trblA.left - trblB.left\n  };\n}\n\n/**\n * Resize the given bounds by the specified delta from a given anchor point.\n *\n * @param {Bounds} bounds the bounding box that should be resized\n * @param {string} direction in which the element is resized (nw, ne, se, sw)\n * @param {Point} delta of the resize operation\n *\n * @return {Bounds} resized bounding box\n */\nfunction resizeBounds(bounds, direction, delta) {\n  var dx = delta.x,\n      dy = delta.y;\n\n  var newBounds = {\n    x: bounds.x,\n    y: bounds.y,\n    width: bounds.width,\n    height: bounds.height\n  };\n\n  if (direction.indexOf('n') !== -1) {\n    newBounds.y = bounds.y + dy;\n    newBounds.height = bounds.height - dy;\n  } else if (direction.indexOf('s') !== -1) {\n    newBounds.height = bounds.height + dy;\n  }\n\n  if (direction.indexOf('e') !== -1) {\n    newBounds.width = bounds.width + dx;\n  } else if (direction.indexOf('w') !== -1) {\n    newBounds.x = bounds.x + dx;\n    newBounds.width = bounds.width - dx;\n  }\n\n  return newBounds;\n}\n\n\n/**\n * Resize the given bounds by applying the passed\n * { top, right, bottom, left } delta.\n *\n * @param {Bounds} bounds\n * @param {TRBL} trblResize\n *\n * @return {Bounds}\n */\nfunction resizeTRBL(bounds, resize) {\n  return {\n    x: bounds.x + (resize.left || 0),\n    y: bounds.y + (resize.top || 0),\n    width: bounds.width - (resize.left || 0) + (resize.right || 0),\n    height: bounds.height - (resize.top || 0) + (resize.bottom || 0)\n  };\n}\n\n\nfunction reattachPoint(bounds, newBounds, point) {\n\n  var sx = bounds.width / newBounds.width,\n      sy = bounds.height / newBounds.height;\n\n  return {\n    x: Math.round((newBounds.x + newBounds.width / 2)) - Math.floor(((bounds.x + bounds.width / 2) - point.x) / sx),\n    y: Math.round((newBounds.y + newBounds.height / 2)) - Math.floor(((bounds.y + bounds.height / 2) - point.y) / sy)\n  };\n}\n\n\nfunction applyConstraints(attr, trbl, resizeConstraints) {\n\n  var value = trbl[attr],\n      minValue = resizeConstraints.min && resizeConstraints.min[attr],\n      maxValue = resizeConstraints.max && resizeConstraints.max[attr];\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(minValue)) {\n    value = (/top|left/.test(attr) ? min : max)(value, minValue);\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(maxValue)) {\n    value = (/top|left/.test(attr) ? max : min)(value, maxValue);\n  }\n\n  return value;\n}\n\nfunction ensureConstraints(currentBounds, resizeConstraints) {\n\n  if (!resizeConstraints) {\n    return currentBounds;\n  }\n\n  var currentTrbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(currentBounds);\n\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asBounds)({\n    top: applyConstraints('top', currentTrbl, resizeConstraints),\n    right: applyConstraints('right', currentTrbl, resizeConstraints),\n    bottom: applyConstraints('bottom', currentTrbl, resizeConstraints),\n    left: applyConstraints('left', currentTrbl, resizeConstraints)\n  });\n}\n\n\nfunction getMinResizeBounds(direction, currentBounds, minDimensions, childrenBounds) {\n\n  var currentBox = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(currentBounds);\n\n  var minBox = {\n    top: /n/.test(direction) ? currentBox.bottom - minDimensions.height : currentBox.top,\n    left: /w/.test(direction) ? currentBox.right - minDimensions.width : currentBox.left,\n    bottom: /s/.test(direction) ? currentBox.top + minDimensions.height : currentBox.bottom,\n    right: /e/.test(direction) ? currentBox.left + minDimensions.width : currentBox.right\n  };\n\n  var childrenBox = childrenBounds ? (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(childrenBounds) : minBox;\n\n  var combinedBox = {\n    top: min(minBox.top, childrenBox.top),\n    left: min(minBox.left, childrenBox.left),\n    bottom: max(minBox.bottom, childrenBox.bottom),\n    right: max(minBox.right, childrenBox.right)\n  };\n\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asBounds)(combinedBox);\n}\n\nfunction asPadding(mayBePadding, defaultValue) {\n  if (typeof mayBePadding !== 'undefined') {\n    return mayBePadding;\n  } else {\n    return DEFAULT_CHILD_BOX_PADDING;\n  }\n}\n\nfunction addPadding(bbox, padding) {\n  var left, right, top, bottom;\n\n  if (typeof padding === 'object') {\n    left = asPadding(padding.left);\n    right = asPadding(padding.right);\n    top = asPadding(padding.top);\n    bottom = asPadding(padding.bottom);\n  } else {\n    left = right = top = bottom = asPadding(padding);\n  }\n\n  return {\n    x: bbox.x - left,\n    y: bbox.y - top,\n    width: bbox.width + left + right,\n    height: bbox.height + top + bottom\n  };\n}\n\n\n/**\n * Is the given element part of the resize\n * targets min boundary box?\n *\n * This is the default implementation which excludes\n * connections and labels.\n *\n * @param {djs.model.Base} element\n */\nfunction isBBoxChild(element) {\n\n  // exclude connections\n  if (element.waypoints) {\n    return false;\n  }\n\n  // exclude labels\n  if (element.type === 'label') {\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Return children bounding computed from a shapes children\n * or a list of prefiltered children.\n *\n * @param  {djs.model.Shape|Array<djs.model.Shape>} shapeOrChildren\n * @param  {number|Object} padding\n *\n * @return {Bounds}\n */\nfunction computeChildrenBBox(shapeOrChildren, padding) {\n\n  var elements;\n\n  // compute based on shape\n  if (shapeOrChildren.length === undefined) {\n\n    // grab all the children that are part of the\n    // parents children box\n    elements = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(shapeOrChildren.children, isBBoxChild);\n\n  } else {\n    elements = shapeOrChildren;\n  }\n\n  if (elements.length) {\n    return addPadding((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(elements), padding);\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/ResizeUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/resize/index.js":
  /*!**************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/resize/index.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _Resize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Resize */ \"./node_modules/diagram-js/lib/features/resize/Resize.js\");\n/* harmony import */ var _ResizePreview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ResizePreview */ \"./node_modules/diagram-js/lib/features/resize/ResizePreview.js\");\n/* harmony import */ var _ResizeHandles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ResizeHandles */ \"./node_modules/diagram-js/lib/features/resize/ResizeHandles.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _rules__WEBPACK_IMPORTED_MODULE_0__.default,\n    _dragging__WEBPACK_IMPORTED_MODULE_1__.default,\n    _preview_support__WEBPACK_IMPORTED_MODULE_2__.default\n  ],\n  __init__: [\n    'resize',\n    'resizePreview',\n    'resizeHandles'\n  ],\n  resize: [ 'type', _Resize__WEBPACK_IMPORTED_MODULE_3__.default ],\n  resizePreview: [ 'type', _ResizePreview__WEBPACK_IMPORTED_MODULE_4__.default ],\n  resizeHandles: [ 'type', _ResizeHandles__WEBPACK_IMPORTED_MODULE_5__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/resize/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/rules/RuleProvider.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/rules/RuleProvider.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ RuleProvider)\n/* harmony export */ });\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../command/CommandInterceptor */ \"./node_modules/diagram-js/lib/command/CommandInterceptor.js\");\n\n\n\n\n/**\n * A basic provider that may be extended to implement modeling rules.\n *\n * Extensions should implement the init method to actually add their custom\n * modeling checks. Checks may be added via the #addRule(action, fn) method.\n *\n * @param {EventBus} eventBus\n */\nfunction RuleProvider(eventBus) {\n  _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default.call(this, eventBus);\n\n  this.init();\n}\n\nRuleProvider.$inject = [ 'eventBus' ];\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(RuleProvider, _command_CommandInterceptor__WEBPACK_IMPORTED_MODULE_1__.default);\n\n\n/**\n * Adds a modeling rule for the given action, implemented through\n * a callback function.\n *\n * The function will receive the modeling specific action context\n * to perform its check. It must return `false` to disallow the\n * action from happening or `true` to allow the action.\n *\n * A rule provider may pass over the evaluation to lower priority\n * rules by returning return nothing (or <code>undefined</code>).\n *\n * @example\n *\n * ResizableRules.prototype.init = function() {\n *\n *   \\/**\n *    * Return `true`, `false` or nothing to denote\n *    * _allowed_, _not allowed_ and _continue evaluating_.\n *    *\\/\n *   this.addRule('shape.resize', function(context) {\n *\n *     var shape = context.shape;\n *\n *     if (!context.newBounds) {\n *       // check general resizability\n *       if (!shape.resizable) {\n *         return false;\n *       }\n *\n *       // not returning anything (read: undefined)\n *       // will continue the evaluation of other rules\n *       // (with lower priority)\n *       return;\n *     } else {\n *       // element must have minimum size of 10*10 points\n *       return context.newBounds.width > 10 && context.newBounds.height > 10;\n *     }\n *   });\n * };\n *\n * @param {string|Array<string>} actions the identifier for the modeling action to check\n * @param {number} [priority] the priority at which this rule is being applied\n * @param {Function} fn the callback function that performs the actual check\n */\nRuleProvider.prototype.addRule = function(actions, priority, fn) {\n\n  var self = this;\n\n  if (typeof actions === 'string') {\n    actions = [ actions ];\n  }\n\n  actions.forEach(function(action) {\n\n    self.canExecute(action, priority, function(context, action, event) {\n      return fn(context);\n    }, true);\n  });\n};\n\n/**\n * Implement this method to add new rules during provider initialization.\n */\nRuleProvider.prototype.init = function() {};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/RuleProvider.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/rules/Rules.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/rules/Rules.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Rules)\n/* harmony export */ });\n/**\n * A service that provides rules for certain diagram actions.\n *\n * The default implementation will hook into the {@link CommandStack}\n * to perform the actual rule evaluation. Make sure to provide the\n * `commandStack` service with this module if you plan to use it.\n *\n * Together with this implementation you may use the {@link RuleProvider}\n * to implement your own rule checkers.\n *\n * This module is ment to be easily replaced, thus the tiny foot print.\n *\n * @param {Injector} injector\n */\nfunction Rules(injector) {\n  this._commandStack = injector.get('commandStack', false);\n}\n\nRules.$inject = [ 'injector' ];\n\n\n/**\n * Returns whether or not a given modeling action can be executed\n * in the specified context.\n *\n * This implementation will respond with allow unless anyone\n * objects.\n *\n * @param {string} action the action to be checked\n * @param {Object} [context] the context to check the action in\n *\n * @return {boolean} returns true, false or null depending on whether the\n *                   operation is allowed, not allowed or should be ignored.\n */\nRules.prototype.allowed = function(action, context) {\n  var allowed = true;\n\n  var commandStack = this._commandStack;\n\n  if (commandStack) {\n    allowed = commandStack.canExecute(action, context);\n  }\n\n  // map undefined to true, i.e. no rules\n  return allowed === undefined ? true : allowed;\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/Rules.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/rules/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/rules/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Rules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Rules */ \"./node_modules/diagram-js/lib/features/rules/Rules.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'rules' ],\n  rules: [ 'type', _Rules__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/rules/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/search-pad/SearchPad.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/search-pad/SearchPad.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SearchPad)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/EscapeUtil */ \"./node_modules/diagram-js/lib/util/EscapeUtil.js\");\n\n\n\n\n\n\n/**\n * Provides searching infrastructure\n */\nfunction SearchPad(canvas, eventBus, overlays, selection) {\n  this._open = false;\n  this._results = [];\n  this._eventMaps = [];\n\n  this._canvas = canvas;\n  this._eventBus = eventBus;\n  this._overlays = overlays;\n  this._selection = selection;\n\n  // setup elements\n  this._container = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(SearchPad.BOX_HTML);\n  this._searchInput = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.INPUT_SELECTOR, this._container);\n  this._resultsContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULTS_CONTAINER_SELECTOR, this._container);\n\n  // attach search pad\n  this._canvas.getContainer().appendChild(this._container);\n\n  // cleanup on destroy\n  eventBus.on([ 'canvas.destroy', 'diagram.destroy' ], this.close, this);\n}\n\n\nSearchPad.$inject = [\n  'canvas',\n  'eventBus',\n  'overlays',\n  'selection'\n];\n\n\n/**\n * Binds and keeps track of all event listereners\n */\nSearchPad.prototype._bindEvents = function() {\n  var self = this;\n\n  function listen(el, selector, type, fn) {\n    self._eventMaps.push({\n      el: el,\n      type: type,\n      listener: min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.bind(el, selector, type, fn)\n    });\n  }\n\n  // close search on clicking anywhere outside\n  listen(document, 'html', 'click', function(e) {\n    self.close();\n  });\n\n  // stop event from propagating and closing search\n  // focus on input\n  listen(this._container, SearchPad.INPUT_SELECTOR, 'click', function(e) {\n    e.stopPropagation();\n    e.delegateTarget.focus();\n  });\n\n  // preselect result on hover\n  listen(this._container, SearchPad.RESULT_SELECTOR, 'mouseover', function(e) {\n    e.stopPropagation();\n    self._scrollToNode(e.delegateTarget);\n    self._preselect(e.delegateTarget);\n  });\n\n  // selects desired result on mouse click\n  listen(this._container, SearchPad.RESULT_SELECTOR, 'click', function(e) {\n    e.stopPropagation();\n    self._select(e.delegateTarget);\n  });\n\n  // prevent cursor in input from going left and right when using up/down to\n  // navigate results\n  listen(this._container, SearchPad.INPUT_SELECTOR, 'keydown', function(e) {\n\n    // up\n    if (e.keyCode === 38) {\n      e.preventDefault();\n    }\n\n    // down\n    if (e.keyCode === 40) {\n      e.preventDefault();\n    }\n  });\n\n  // handle keyboard input\n  listen(this._container, SearchPad.INPUT_SELECTOR, 'keyup', function(e) {\n\n    // escape\n    if (e.keyCode === 27) {\n      return self.close();\n    }\n\n    // enter\n    if (e.keyCode === 13) {\n      var selected = self._getCurrentResult();\n\n      return selected ? self._select(selected) : self.close();\n    }\n\n    // up\n    if (e.keyCode === 38) {\n      return self._scrollToDirection(true);\n    }\n\n    // down\n    if (e.keyCode === 40) {\n      return self._scrollToDirection();\n    }\n\n    // left && right\n    // do not search while navigating text input\n    if (e.keyCode === 37 || e.keyCode === 39) {\n      return;\n    }\n\n    // anything else\n    self._search(e.delegateTarget.value);\n  });\n};\n\n\n/**\n * Unbinds all previously established listeners\n */\nSearchPad.prototype._unbindEvents = function() {\n  this._eventMaps.forEach(function(m) {\n    min_dom__WEBPACK_IMPORTED_MODULE_0__.delegate.unbind(m.el, m.type, m.listener);\n  });\n};\n\n\n/**\n * Performs a search for the given pattern.\n *\n * @param  {string} pattern\n */\nSearchPad.prototype._search = function(pattern) {\n  var self = this;\n\n  this._clearResults();\n\n  // do not search on empty query\n  if (!pattern || pattern === '') {\n    return;\n  }\n\n  var searchResults = this._searchProvider.find(pattern);\n\n  if (!searchResults.length) {\n    return;\n  }\n\n  // append new results\n  searchResults.forEach(function(result) {\n    var id = result.element.id;\n    var node = self._createResultNode(result, id);\n    self._results[id] = {\n      element: result.element,\n      node: node\n    };\n  });\n\n  // preselect first result\n  var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULT_SELECTOR, this._resultsContainer);\n  this._scrollToNode(node);\n  this._preselect(node);\n};\n\n\n/**\n * Navigate to the previous/next result. Defaults to next result.\n * @param  {boolean} previous\n */\nSearchPad.prototype._scrollToDirection = function(previous) {\n  var selected = this._getCurrentResult();\n  if (!selected) {\n    return;\n  }\n\n  var node = previous ? selected.previousElementSibling : selected.nextElementSibling;\n  if (node) {\n    this._scrollToNode(node);\n    this._preselect(node);\n  }\n};\n\n\n/**\n * Scroll to the node if it is not visible.\n *\n * @param  {Element} node\n */\nSearchPad.prototype._scrollToNode = function(node) {\n  if (!node || node === this._getCurrentResult()) {\n    return;\n  }\n\n  var nodeOffset = node.offsetTop;\n  var containerScroll = this._resultsContainer.scrollTop;\n\n  var bottomScroll = nodeOffset - this._resultsContainer.clientHeight + node.clientHeight;\n\n  if (nodeOffset < containerScroll) {\n    this._resultsContainer.scrollTop = nodeOffset;\n  } else if (containerScroll < bottomScroll) {\n    this._resultsContainer.scrollTop = bottomScroll;\n  }\n};\n\n\n/**\n * Clears all results data.\n */\nSearchPad.prototype._clearResults = function() {\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.clear)(this._resultsContainer);\n\n  this._results = [];\n\n  this._resetOverlay();\n\n  this._eventBus.fire('searchPad.cleared');\n};\n\n\n/**\n * Get currently selected result.\n *\n * @return {Element}\n */\nSearchPad.prototype._getCurrentResult = function() {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.query)(SearchPad.RESULT_SELECTED_SELECTOR, this._resultsContainer);\n};\n\n\n/**\n * Create result DOM element within results container\n * that corresponds to a search result.\n *\n * 'result' : one of the elements returned by SearchProvider\n * 'id' : id attribute value to assign to the new DOM node\n * return : created DOM element\n *\n * @param  {SearchResult} result\n * @param  {string} id\n * @return {Element}\n */\nSearchPad.prototype._createResultNode = function(result, id) {\n  var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(SearchPad.RESULT_HTML);\n\n  // create only if available\n  if (result.primaryTokens.length > 0) {\n    createInnerTextNode(node, result.primaryTokens, SearchPad.RESULT_PRIMARY_HTML);\n  }\n\n  // secondary tokens (represent element ID) are allways available\n  createInnerTextNode(node, result.secondaryTokens, SearchPad.RESULT_SECONDARY_HTML);\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE, id);\n\n  this._resultsContainer.appendChild(node);\n\n  return node;\n};\n\n\n/**\n * Register search element provider.\n *\n * SearchProvider.find - provides search function over own elements\n *  (pattern) => [{ text: <String>, element: <Element>}, ...]\n *\n * @param  {SearchProvider} provider\n */\nSearchPad.prototype.registerProvider = function(provider) {\n  this._searchProvider = provider;\n};\n\n\n/**\n * Open search pad.\n */\nSearchPad.prototype.open = function() {\n  if (!this._searchProvider) {\n    throw new Error('no search provider registered');\n  }\n\n  if (this.isOpen()) {\n    return;\n  }\n\n  this._bindEvents();\n\n  this._open = true;\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).add('open');\n\n  this._searchInput.focus();\n\n  this._eventBus.fire('searchPad.opened');\n};\n\n\n/**\n * Close search pad.\n */\nSearchPad.prototype.close = function() {\n  if (!this.isOpen()) {\n    return;\n  }\n\n  this._unbindEvents();\n\n  this._open = false;\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(this._container).remove('open');\n\n  this._clearResults();\n\n  this._searchInput.value = '';\n  this._searchInput.blur();\n\n  this._resetOverlay();\n\n  this._eventBus.fire('searchPad.closed');\n};\n\n\n/**\n * Toggles search pad on/off.\n */\nSearchPad.prototype.toggle = function() {\n  this.isOpen() ? this.close() : this.open();\n};\n\n\n/**\n * Report state of search pad.\n */\nSearchPad.prototype.isOpen = function() {\n  return this._open;\n};\n\n\n/**\n * Preselect result entry.\n *\n * @param  {Element} element\n */\nSearchPad.prototype._preselect = function(node) {\n  var selectedNode = this._getCurrentResult();\n\n  // already selected\n  if (node === selectedNode) {\n    return;\n  }\n\n  // removing preselection from current node\n  if (selectedNode) {\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(selectedNode).remove(SearchPad.RESULT_SELECTED_CLASS);\n  }\n\n  var id = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE);\n  var element = this._results[id].element;\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(node).add(SearchPad.RESULT_SELECTED_CLASS);\n\n  this._resetOverlay(element);\n\n  this._canvas.scrollToElement(element, { top: 400 });\n\n  this._selection.select(element);\n\n  this._eventBus.fire('searchPad.preselected', element);\n};\n\n\n/**\n * Select result node.\n *\n * @param  {Element} element\n */\nSearchPad.prototype._select = function(node) {\n  var id = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.attr)(node, SearchPad.RESULT_ID_ATTRIBUTE);\n  var element = this._results[id].element;\n\n  this.close();\n\n  this._resetOverlay();\n\n  this._canvas.scrollToElement(element, { top: 400 });\n\n  this._selection.select(element);\n\n  this._eventBus.fire('searchPad.selected', element);\n};\n\n\n/**\n * Reset overlay removes and, optionally, set\n * overlay to a new element.\n *\n * @param  {Element} element\n */\nSearchPad.prototype._resetOverlay = function(element) {\n  if (this._overlayId) {\n    this._overlays.remove(this._overlayId);\n  }\n\n  if (element) {\n    var box = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_1__.getBBox)(element);\n    var overlay = constructOverlay(box);\n    this._overlayId = this._overlays.add(element, overlay);\n  }\n};\n\n\n/**\n * Construct overlay object for the given bounding box.\n *\n * @param  {BoundingBox} box\n * @return {Object}\n */\nfunction constructOverlay(box) {\n\n  var offset = 6;\n  var w = box.width + offset * 2;\n  var h = box.height + offset * 2;\n\n  var styles = [\n    'width: '+ w +'px',\n    'height: '+ h + 'px'\n  ].join('; ');\n\n  return {\n    position: {\n      bottom: h - offset,\n      right: w - offset\n    },\n    show: true,\n    html: '<div style=\"' + styles + '\" class=\"' + SearchPad.OVERLAY_CLASS + '\"></div>'\n  };\n}\n\n\n/**\n * Creates and appends child node from result tokens and HTML template.\n *\n * @param  {Element} node\n * @param  {Array<Object>} tokens\n * @param  {string} template\n */\nfunction createInnerTextNode(parentNode, tokens, template) {\n  var text = createHtmlText(tokens);\n  var childNode = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.domify)(template);\n  childNode.innerHTML = text;\n  parentNode.appendChild(childNode);\n}\n\n/**\n * Create internal HTML markup from result tokens.\n * Caters for highlighting pattern matched tokens.\n *\n * @param  {Array<Object>} tokens\n * @return {string}\n */\nfunction createHtmlText(tokens) {\n  var htmlText = '';\n\n  tokens.forEach(function(t) {\n    if (t.matched) {\n      htmlText += '<strong class=\"' + SearchPad.RESULT_HIGHLIGHT_CLASS + '\">' + (0,_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__.escapeHTML)(t.matched) + '</strong>';\n    } else {\n      htmlText += (0,_util_EscapeUtil__WEBPACK_IMPORTED_MODULE_2__.escapeHTML)(t.normal);\n    }\n  });\n\n  return htmlText !== '' ? htmlText : null;\n}\n\n\n/**\n * CONSTANTS\n */\nSearchPad.CONTAINER_SELECTOR = '.djs-search-container';\nSearchPad.INPUT_SELECTOR = '.djs-search-input input';\nSearchPad.RESULTS_CONTAINER_SELECTOR = '.djs-search-results';\nSearchPad.RESULT_SELECTOR = '.djs-search-result';\nSearchPad.RESULT_SELECTED_CLASS = 'djs-search-result-selected';\nSearchPad.RESULT_SELECTED_SELECTOR = '.' + SearchPad.RESULT_SELECTED_CLASS;\nSearchPad.RESULT_ID_ATTRIBUTE = 'data-result-id';\nSearchPad.RESULT_HIGHLIGHT_CLASS = 'djs-search-highlight';\nSearchPad.OVERLAY_CLASS = 'djs-search-overlay';\n\nSearchPad.BOX_HTML =\n  '<div class=\"djs-search-container djs-draggable djs-scrollable\">' +\n    '<div class=\"djs-search-input\">' +\n      '<input type=\"text\"/>' +\n    '</div>' +\n    '<div class=\"djs-search-results\"></div>' +\n  '</div>';\n\nSearchPad.RESULT_HTML =\n  '<div class=\"djs-search-result\"></div>';\n\nSearchPad.RESULT_PRIMARY_HTML =\n  '<div class=\"djs-search-result-primary\"></div>';\n\nSearchPad.RESULT_SECONDARY_HTML =\n  '<p class=\"djs-search-result-secondary\"></p>';\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/search-pad/SearchPad.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/search-pad/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/search-pad/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _overlays__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../overlays */ \"./node_modules/diagram-js/lib/features/overlays/index.js\");\n/* harmony import */ var _selection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selection */ \"./node_modules/diagram-js/lib/features/selection/index.js\");\n/* harmony import */ var _SearchPad__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SearchPad */ \"./node_modules/diagram-js/lib/features/search-pad/SearchPad.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _overlays__WEBPACK_IMPORTED_MODULE_0__.default,\n    _selection__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  searchPad: [ 'type', _SearchPad__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/search-pad/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/selection/Selection.js":
  /*!*********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/selection/Selection.js ***!
    \*********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Selection)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * A service that offers the current selection in a diagram.\n * Offers the api to control the selection, too.\n *\n * @class\n *\n * @param {EventBus} eventBus the event bus\n */\nfunction Selection(eventBus) {\n\n  this._eventBus = eventBus;\n\n  this._selectedElements = [];\n\n  var self = this;\n\n  eventBus.on([ 'shape.remove', 'connection.remove' ], function(e) {\n    var element = e.element;\n    self.deselect(element);\n  });\n\n  eventBus.on([ 'diagram.clear' ], function(e) {\n    self.select(null);\n  });\n}\n\nSelection.$inject = [ 'eventBus' ];\n\n\nSelection.prototype.deselect = function(element) {\n  var selectedElements = this._selectedElements;\n\n  var idx = selectedElements.indexOf(element);\n\n  if (idx !== -1) {\n    var oldSelection = selectedElements.slice();\n\n    selectedElements.splice(idx, 1);\n\n    this._eventBus.fire('selection.changed', { oldSelection: oldSelection, newSelection: selectedElements });\n  }\n};\n\n\nSelection.prototype.get = function() {\n  return this._selectedElements;\n};\n\nSelection.prototype.isSelected = function(element) {\n  return this._selectedElements.indexOf(element) !== -1;\n};\n\n\n/**\n * This method selects one or more elements on the diagram.\n *\n * By passing an additional add parameter you can decide whether or not the element(s)\n * should be added to the already existing selection or not.\n *\n * @method Selection#select\n *\n * @param  {Object|Object[]} elements element or array of elements to be selected\n * @param  {boolean} [add] whether the element(s) should be appended to the current selection, defaults to false\n */\nSelection.prototype.select = function(elements, add) {\n  var selectedElements = this._selectedElements,\n      oldSelection = selectedElements.slice();\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = elements ? [ elements ] : [];\n  }\n\n  // selection may be cleared by passing an empty array or null\n  // to the method\n  if (add) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n      if (selectedElements.indexOf(element) !== -1) {\n\n        // already selected\n        return;\n      } else {\n        selectedElements.push(element);\n      }\n    });\n  } else {\n    this._selectedElements = selectedElements = elements.slice();\n  }\n\n  this._eventBus.fire('selection.changed', { oldSelection: oldSelection, newSelection: selectedElements });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/Selection.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SelectionBehavior)\n/* harmony export */ });\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\nfunction SelectionBehavior(eventBus, selection, canvas, elementRegistry) {\n\n  // Select elements on create\n  eventBus.on('create.end', 500, function(event) {\n    var context = event.context,\n        canExecute = context.canExecute,\n        elements = context.elements,\n        hints = context.hints || {},\n        autoSelect = hints.autoSelect;\n\n    if (canExecute) {\n      if (autoSelect === false) {\n\n        // Select no elements\n        return;\n      }\n\n      if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(autoSelect)) {\n        selection.select(autoSelect);\n      } else {\n\n        // Select all elements by default\n        selection.select(elements.filter(isShown));\n      }\n    }\n  });\n\n  // Select connection targets on connect\n  eventBus.on('connect.end', 500, function(event) {\n    var context = event.context,\n        canExecute = context.canExecute,\n        hover = context.hover;\n\n    if (canExecute && hover) {\n      selection.select(hover);\n    }\n  });\n\n  // Select shapes on move\n  eventBus.on('shape.move.end', 500, function(event) {\n    var previousSelection = event.previousSelection || [];\n\n    var shape = elementRegistry.get(event.context.shape.id);\n\n    // Always select main shape on move\n    var isSelected = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(previousSelection, function(selectedShape) {\n      return shape.id === selectedShape.id;\n    });\n\n    if (!isSelected) {\n      selection.select(shape);\n    }\n  });\n\n  // Select elements on click\n  eventBus.on('element.click', function(event) {\n\n    if (!(0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.isPrimaryButton)(event)) {\n      return;\n    }\n\n    var element = event.element;\n\n    if (element === canvas.getRootElement()) {\n      element = null;\n    }\n\n    var isSelected = selection.isSelected(element),\n        isMultiSelect = selection.get().length > 1;\n\n    // Add to selection if CTRL or SHIFT pressed\n    var add = (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasPrimaryModifier)(event) || (0,_util_Mouse__WEBPACK_IMPORTED_MODULE_1__.hasSecondaryModifier)(event);\n\n    if (isSelected && isMultiSelect) {\n      if (add) {\n\n        // Deselect element\n        return selection.deselect(element);\n      } else {\n\n        // Select element only\n        return selection.select(element);\n      }\n    } else if (!isSelected) {\n\n      // Select element\n      selection.select(element, add);\n    } else {\n\n      // Deselect element\n      selection.deselect(element);\n    }\n  });\n}\n\nSelectionBehavior.$inject = [\n  'eventBus',\n  'selection',\n  'canvas',\n  'elementRegistry'\n];\n\n\nfunction isShown(element) {\n  return !element.hidden;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js ***!
    \****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SelectionVisuals)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\nvar MARKER_HOVER = 'hover',\n    MARKER_SELECTED = 'selected';\n\n\n/**\n * A plugin that adds a visible selection UI to shapes and connections\n * by appending the <code>hover</code> and <code>selected</code> classes to them.\n *\n * @class\n *\n * Makes elements selectable, too.\n *\n * @param {EventBus} events\n * @param {SelectionService} selection\n * @param {Canvas} canvas\n */\nfunction SelectionVisuals(events, canvas, selection, styles) {\n\n  this._multiSelectionBox = null;\n\n  function addMarker(e, cls) {\n    canvas.addMarker(e, cls);\n  }\n\n  function removeMarker(e, cls) {\n    canvas.removeMarker(e, cls);\n  }\n\n  events.on('element.hover', function(event) {\n    addMarker(event.element, MARKER_HOVER);\n  });\n\n  events.on('element.out', function(event) {\n    removeMarker(event.element, MARKER_HOVER);\n  });\n\n  events.on('selection.changed', function(event) {\n\n    function deselect(s) {\n      removeMarker(s, MARKER_SELECTED);\n    }\n\n    function select(s) {\n      addMarker(s, MARKER_SELECTED);\n    }\n\n    var oldSelection = event.oldSelection,\n        newSelection = event.newSelection;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(oldSelection, function(e) {\n      if (newSelection.indexOf(e) === -1) {\n        deselect(e);\n      }\n    });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(newSelection, function(e) {\n      if (oldSelection.indexOf(e) === -1) {\n        select(e);\n      }\n    });\n  });\n}\n\nSelectionVisuals.$inject = [\n  'eventBus',\n  'canvas',\n  'selection',\n  'styles'\n];\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/selection/index.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/selection/index.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _outline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../outline */ \"./node_modules/diagram-js/lib/features/outline/index.js\");\n/* harmony import */ var _Selection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Selection */ \"./node_modules/diagram-js/lib/features/selection/Selection.js\");\n/* harmony import */ var _SelectionVisuals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SelectionVisuals */ \"./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js\");\n/* harmony import */ var _SelectionBehavior__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SelectionBehavior */ \"./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'selectionVisuals', 'selectionBehavior' ],\n  __depends__: [\n    _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default,\n    _outline__WEBPACK_IMPORTED_MODULE_1__.default\n  ],\n  selection: [ 'type', _Selection__WEBPACK_IMPORTED_MODULE_2__.default ],\n  selectionVisuals: [ 'type', _SelectionVisuals__WEBPACK_IMPORTED_MODULE_3__.default ],\n  selectionBehavior: [ 'type', _SelectionBehavior__WEBPACK_IMPORTED_MODULE_4__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/selection/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreateMoveSnapping)\n/* harmony export */ });\n/* harmony import */ var _SnapContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SnapContext */ \"./node_modules/diagram-js/lib/features/snapping/SnapContext.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\n\r\n/**\r\n * Snap during create and move.\r\n *\r\n * @param {EventBus} elementRegistry\r\n * @param {EventBus} eventBus\r\n * @param {Snapping} snapping\r\n */\r\nfunction CreateMoveSnapping(elementRegistry, eventBus, snapping) {\r\n  var self = this;\r\n\r\n  this._elementRegistry = elementRegistry;\r\n\r\n  eventBus.on([\r\n    'create.start',\r\n    'shape.move.start'\r\n  ], function(event) {\r\n    self.initSnap(event);\r\n  });\r\n\r\n  eventBus.on([\r\n    'create.move',\r\n    'create.end',\r\n    'shape.move.move',\r\n    'shape.move.end'\r\n  ], HIGHER_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        snapContext = context.snapContext,\r\n        target = context.target;\r\n\r\n    if (event.originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n      return;\r\n    }\r\n\r\n    if ((0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event) || !target) {\r\n      return;\r\n    }\r\n\r\n    var snapPoints = snapContext.pointsForTarget(target);\r\n\r\n    if (!snapPoints.initialized) {\r\n      snapPoints = self.addSnapTargetPoints(snapPoints, shape, target);\r\n\r\n      snapPoints.initialized = true;\r\n    }\r\n\r\n    snapping.snap(event, snapPoints);\r\n  });\r\n\r\n  eventBus.on([\r\n    'create.cleanup',\r\n    'shape.move.cleanup'\r\n  ], function() {\r\n    snapping.hide();\r\n  });\r\n}\r\n\r\nCreateMoveSnapping.$inject = [\r\n  'elementRegistry',\r\n  'eventBus',\r\n  'snapping'\r\n];\r\n\r\nCreateMoveSnapping.prototype.initSnap = function(event) {\r\n  var elementRegistry = this._elementRegistry;\r\n\r\n  var context = event.context,\r\n      shape = context.shape,\r\n      snapContext = context.snapContext;\r\n\r\n  if (!snapContext) {\r\n    snapContext = context.snapContext = new _SnapContext__WEBPACK_IMPORTED_MODULE_2__.default();\r\n  }\r\n\r\n  var shapeMid;\r\n\r\n  if (elementRegistry.get(shape.id)) {\r\n\r\n    // move\r\n    shapeMid = (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape, event);\r\n  } else {\r\n\r\n    // create\r\n    shapeMid = {\r\n      x: event.x + (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape).x,\r\n      y: event.y + (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape).y\r\n    };\r\n  }\r\n\r\n  var shapeTopLeft = {\r\n        x: shapeMid.x - shape.width / 2,\r\n        y: shapeMid.y - shape.height / 2\r\n      },\r\n      shapeBottomRight = {\r\n        x: shapeMid.x + shape.width / 2,\r\n        y: shapeMid.y + shape.height / 2\r\n      };\r\n\r\n  snapContext.setSnapOrigin('mid', {\r\n    x: shapeMid.x - event.x,\r\n    y: shapeMid.y - event.y\r\n  });\r\n\r\n  // snap labels to mid only\r\n  if (isLabel(shape)) {\r\n    return snapContext;\r\n  }\r\n\r\n  snapContext.setSnapOrigin('top-left', {\r\n    x: shapeTopLeft.x - event.x,\r\n    y: shapeTopLeft.y - event.y\r\n  });\r\n\r\n  snapContext.setSnapOrigin('bottom-right', {\r\n    x: shapeBottomRight.x - event.x,\r\n    y: shapeBottomRight.y - event.y\r\n  });\r\n\r\n  return snapContext;\r\n};\r\n\r\nCreateMoveSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target) {\r\n  var snapTargets = this.getSnapTargets(shape, target);\r\n\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\r\n\r\n    // handle labels\r\n    if (isLabel(snapTarget)) {\r\n\r\n      if (isLabel(shape)) {\r\n        snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(snapTarget));\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    // handle connections\r\n    if (isConnection(snapTarget)) {\r\n\r\n      // ignore single segment connections\r\n      if (snapTarget.waypoints.length < 3) {\r\n        return;\r\n      }\r\n\r\n      // ignore first and last waypoint\r\n      var waypoints = snapTarget.waypoints.slice(1, -1);\r\n\r\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(waypoints, function(waypoint) {\r\n        snapPoints.add('mid', waypoint);\r\n      });\r\n\r\n      return;\r\n    }\r\n\r\n    // handle shapes\r\n    snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(snapTarget));\r\n  });\r\n\r\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(shape.x) || !(0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(shape.y)) {\r\n    return snapPoints;\r\n  }\r\n\r\n  // snap to original position when moving\r\n  if (this._elementRegistry.get(shape.id)) {\r\n    snapPoints.add('mid', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.mid)(shape));\r\n  }\r\n\r\n  return snapPoints;\r\n};\r\n\r\nCreateMoveSnapping.prototype.getSnapTargets = function(shape, target) {\r\n  return (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.getChildren)(target).filter(function(child) {\r\n    return !isHidden(child);\r\n  });\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction isConnection(element) {\r\n  return !!element.waypoints;\r\n}\r\n\r\nfunction isHidden(element) {\r\n  return !!element.hidden;\r\n}\r\n\r\nfunction isLabel(element) {\r\n  return !!element.labelTarget;\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ResizeSnapping)\n/* harmony export */ });\n/* harmony import */ var _SnapContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SnapContext */ \"./node_modules/diagram-js/lib/features/snapping/SnapContext.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var _keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../keyboard/KeyboardUtil */ \"./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar HIGHER_PRIORITY = 1250;\r\n\r\n\r\n/**\r\n * Snap during resize.\r\n *\r\n * @param {EventBus} eventBus\r\n * @param {Snapping} snapping\r\n */\r\nfunction ResizeSnapping(eventBus, snapping) {\r\n  var self = this;\r\n\r\n  eventBus.on([ 'resize.start' ], function(event) {\r\n    self.initSnap(event);\r\n  });\r\n\r\n  eventBus.on([\r\n    'resize.move',\r\n    'resize.end',\r\n  ], HIGHER_PRIORITY, function(event) {\r\n    var context = event.context,\r\n        shape = context.shape,\r\n        parent = shape.parent,\r\n        direction = context.direction,\r\n        snapContext = context.snapContext;\r\n\r\n    if (event.originalEvent && (0,_keyboard_KeyboardUtil__WEBPACK_IMPORTED_MODULE_0__.isCmd)(event.originalEvent)) {\r\n      return;\r\n    }\r\n\r\n    if ((0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event)) {\r\n      return;\r\n    }\r\n\r\n    var snapPoints = snapContext.pointsForTarget(parent);\r\n\r\n    if (!snapPoints.initialized) {\r\n      snapPoints = self.addSnapTargetPoints(snapPoints, shape, parent, direction);\r\n\r\n      snapPoints.initialized = true;\r\n    }\r\n\r\n    if (isHorizontal(direction)) {\r\n      (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'x', event.x);\r\n    }\r\n\r\n    if (isVertical(direction)) {\r\n      (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, 'y', event.y);\r\n    }\r\n\r\n    snapping.snap(event, snapPoints);\r\n  });\r\n\r\n  eventBus.on([ 'resize.cleanup' ], function() {\r\n    snapping.hide();\r\n  });\r\n}\r\n\r\nResizeSnapping.prototype.initSnap = function(event) {\r\n  var context = event.context,\r\n      shape = context.shape,\r\n      direction = context.direction,\r\n      snapContext = context.snapContext;\r\n\r\n  if (!snapContext) {\r\n    snapContext = context.snapContext = new _SnapContext__WEBPACK_IMPORTED_MODULE_2__.default();\r\n  }\r\n\r\n  var snapOrigin = getSnapOrigin(shape, direction);\r\n\r\n  snapContext.setSnapOrigin('corner', {\r\n    x: snapOrigin.x - event.x,\r\n    y: snapOrigin.y - event.y\r\n  });\r\n\r\n  return snapContext;\r\n};\r\n\r\nResizeSnapping.prototype.addSnapTargetPoints = function(snapPoints, shape, target, direction) {\r\n  var snapTargets = this.getSnapTargets(shape, target);\r\n\r\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(snapTargets, function(snapTarget) {\r\n    snapPoints.add('corner', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.bottomRight)(snapTarget));\r\n    snapPoints.add('corner', (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.topLeft)(snapTarget));\r\n  });\r\n\r\n  snapPoints.add('corner', getSnapOrigin(shape, direction));\r\n\r\n  return snapPoints;\r\n};\r\n\r\nResizeSnapping.$inject = [\r\n  'eventBus',\r\n  'snapping'\r\n];\r\n\r\nResizeSnapping.prototype.getSnapTargets = function(shape, target) {\r\n  return (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.getChildren)(target).filter(function(child) {\r\n    return !isAttached(child, shape)\r\n      && !isConnection(child)\r\n      && !isHidden(child)\r\n      && !isLabel(child);\r\n  });\r\n};\r\n\r\n// helpers //////////\r\n\r\nfunction getSnapOrigin(shape, direction) {\r\n  var mid = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.getMid)(shape),\r\n      trbl = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_4__.asTRBL)(shape);\r\n\r\n  var snapOrigin = {\r\n    x: mid.x,\r\n    y: mid.y\r\n  };\r\n\r\n  if (direction.indexOf('n') !== -1) {\r\n    snapOrigin.y = trbl.top;\r\n  } else if (direction.indexOf('s') !== -1) {\r\n    snapOrigin.y = trbl.bottom;\r\n  }\r\n\r\n  if (direction.indexOf('e') !== -1) {\r\n    snapOrigin.x = trbl.right;\r\n  } else if (direction.indexOf('w') !== -1) {\r\n    snapOrigin.x = trbl.left;\r\n  }\r\n\r\n  return snapOrigin;\r\n}\r\n\r\nfunction isAttached(element, host) {\r\n  return element.host === host;\r\n}\r\n\r\nfunction isConnection(element) {\r\n  return !!element.waypoints;\r\n}\r\n\r\nfunction isHidden(element) {\r\n  return !!element.hidden;\r\n}\r\n\r\nfunction isLabel(element) {\r\n  return !!element.labelTarget;\r\n}\r\n\r\nfunction isHorizontal(direction) {\r\n  return direction === 'n' || direction === 's';\r\n}\r\n\r\nfunction isVertical(direction) {\r\n  return direction === 'e' || direction === 'w';\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/SnapContext.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/SnapContext.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SnapContext),\n/* harmony export */   \"SnapPoints\": () => (/* binding */ SnapPoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n\n\n\n\n\n/**\n * A snap context, containing the (possibly incomplete)\n * mappings of drop targets (to identify the snapping)\n * to computed snap points.\n */\nfunction SnapContext() {\n\n  /**\n   * Map<String, SnapPoints> mapping drop targets to\n   * a list of possible snappings.\n   *\n   * @type {Object}\n   */\n  this._targets = {};\n\n  /**\n   * Map<String, Point> initial positioning of element\n   * regarding various snap directions.\n   *\n   * @type {Object}\n   */\n  this._snapOrigins = {};\n\n  /**\n   * List of snap locations\n   *\n   * @type {Array<string>}\n   */\n  this._snapLocations = [];\n\n  /**\n   * Map<String, Array<Point>> of default snapping locations\n   *\n   * @type {Object}\n   */\n  this._defaultSnaps = {};\n}\n\n\nSnapContext.prototype.getSnapOrigin = function(snapLocation) {\n  return this._snapOrigins[snapLocation];\n};\n\n\nSnapContext.prototype.setSnapOrigin = function(snapLocation, initialValue) {\n  this._snapOrigins[snapLocation] = initialValue;\n\n  if (this._snapLocations.indexOf(snapLocation) === -1) {\n    this._snapLocations.push(snapLocation);\n  }\n};\n\n\nSnapContext.prototype.addDefaultSnap = function(type, point) {\n\n  var snapValues = this._defaultSnaps[type];\n\n  if (!snapValues) {\n    snapValues = this._defaultSnaps[type] = [];\n  }\n\n  snapValues.push(point);\n};\n\n/**\n * Return a number of initialized snaps, i.e. snap locations such as\n * top-left, mid, bottom-right and so forth.\n *\n * @return {Array<string>} snapLocations\n */\nSnapContext.prototype.getSnapLocations = function() {\n  return this._snapLocations;\n};\n\n/**\n * Set the snap locations for this context.\n *\n * The order of locations determines precedence.\n *\n * @param {Array<string>} snapLocations\n */\nSnapContext.prototype.setSnapLocations = function(snapLocations) {\n  this._snapLocations = snapLocations;\n};\n\n/**\n * Get snap points for a given target\n *\n * @param {Element|string} target\n */\nSnapContext.prototype.pointsForTarget = function(target) {\n\n  var targetId = target.id || target;\n\n  var snapPoints = this._targets[targetId];\n\n  if (!snapPoints) {\n    snapPoints = this._targets[targetId] = new SnapPoints();\n    snapPoints.initDefaults(this._defaultSnaps);\n  }\n\n  return snapPoints;\n};\n\n\n/**\n * Creates the snap points and initializes them with the\n * given default values.\n *\n * @param {Object<string, Array<Point>>} [defaultPoints]\n */\nfunction SnapPoints(defaultSnaps) {\n\n  /**\n   * Map<String, Map<(x|y), Array<number>>> mapping snap locations,\n   * i.e. top-left, bottom-right, center to actual snap values.\n   *\n   * @type {Object}\n   */\n  this._snapValues = {};\n}\n\nSnapPoints.prototype.add = function(snapLocation, point) {\n\n  var snapValues = this._snapValues[snapLocation];\n\n  if (!snapValues) {\n    snapValues = this._snapValues[snapLocation] = { x: [], y: [] };\n  }\n\n  if (snapValues.x.indexOf(point.x) === -1) {\n    snapValues.x.push(point.x);\n  }\n\n  if (snapValues.y.indexOf(point.y) === -1) {\n    snapValues.y.push(point.y);\n  }\n};\n\n\nSnapPoints.prototype.snap = function(point, snapLocation, axis, tolerance) {\n  var snappingValues = this._snapValues[snapLocation];\n\n  return snappingValues && (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_0__.snapTo)(point[axis], snappingValues[axis], tolerance);\n};\n\n/**\n * Initialize a number of default snapping points.\n *\n * @param  {Object} defaultSnaps\n */\nSnapPoints.prototype.initDefaults = function(defaultSnaps) {\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(defaultSnaps || {}, function(snapPoints, snapLocation) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(snapPoints, function(point) {\n      self.add(snapLocation, point);\n    });\n  });\n};\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/SnapContext.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/SnapUtil.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/SnapUtil.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"snapTo\": () => (/* binding */ snapTo),\n/* harmony export */   \"topLeft\": () => (/* binding */ topLeft),\n/* harmony export */   \"topRight\": () => (/* binding */ topRight),\n/* harmony export */   \"bottomLeft\": () => (/* binding */ bottomLeft),\n/* harmony export */   \"bottomRight\": () => (/* binding */ bottomRight),\n/* harmony export */   \"mid\": () => (/* binding */ mid),\n/* harmony export */   \"isSnapped\": () => (/* binding */ isSnapped),\n/* harmony export */   \"setSnapped\": () => (/* binding */ setSnapped),\n/* harmony export */   \"getChildren\": () => (/* binding */ getChildren)\n/* harmony export */ });\nvar abs = Math.abs,\n    round = Math.round;\n\n\n/**\n * Snap value to a collection of reference values.\n *\n * @param  {number} value\n * @param  {Array<number>} values\n * @param  {number} [tolerance=10]\n *\n * @return {number} the value we snapped to or null, if none snapped\n */\nfunction snapTo(value, values, tolerance) {\n  tolerance = tolerance === undefined ? 10 : tolerance;\n\n  var idx, snapValue;\n\n  for (idx = 0; idx < values.length; idx++) {\n    snapValue = values[idx];\n\n    if (abs(snapValue - value) <= tolerance) {\n      return snapValue;\n    }\n  }\n}\n\n\nfunction topLeft(bounds) {\n  return {\n    x: bounds.x,\n    y: bounds.y\n  };\n}\n\nfunction topRight(bounds) {\n  return {\n    x: bounds.x + bounds.width,\n    y: bounds.y\n  };\n}\n\nfunction bottomLeft(bounds) {\n  return {\n    x: bounds.x,\n    y: bounds.y + bounds.height\n  };\n}\n\nfunction bottomRight(bounds) {\n  return {\n    x: bounds.x + bounds.width,\n    y: bounds.y + bounds.height\n  };\n}\n\nfunction mid(bounds, defaultValue) {\n\n  if (!bounds || isNaN(bounds.x) || isNaN(bounds.y)) {\n    return defaultValue;\n  }\n\n  return {\n    x: round(bounds.x + bounds.width / 2),\n    y: round(bounds.y + bounds.height / 2)\n  };\n}\n\n\n/**\n * Retrieve the snap state of the given event.\n *\n * @param  {Event} event\n * @param  {string} axis\n *\n * @return {boolean} the snapped state\n *\n */\nfunction isSnapped(event, axis) {\n  var snapped = event.snapped;\n\n  if (!snapped) {\n    return false;\n  }\n\n  if (typeof axis === 'string') {\n    return snapped[axis];\n  }\n\n  return snapped.x && snapped.y;\n}\n\n\n/**\n * Set the given event as snapped.\n *\n * This method may change the x and/or y position of the shape\n * from the given event!\n *\n * @param {Event} event\n * @param {string} axis\n * @param {number|boolean} value\n *\n * @return {number} old value\n */\nfunction setSnapped(event, axis, value) {\n  if (typeof axis !== 'string') {\n    throw new Error('axis must be in [x, y]');\n  }\n\n  if (typeof value !== 'number' && value !== false) {\n    throw new Error('value must be Number or false');\n  }\n\n  var delta,\n      previousValue = event[axis];\n\n  var snapped = event.snapped = (event.snapped || {});\n\n\n  if (value === false) {\n    snapped[axis] = false;\n  } else {\n    snapped[axis] = true;\n\n    delta = value - previousValue;\n\n    event[axis] += delta;\n    event['d' + axis] += delta;\n  }\n\n  return previousValue;\n}\n\n/**\n * Get children of a shape.\n *\n * @param {djs.model.Shape} parent\n *\n * @returns {Array<djs.model.Shape|djs.model.Connection>}\n */\nfunction getChildren(parent) {\n  return parent.children || [];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/SnapUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/Snapping.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/Snapping.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"SNAP_LINE_HIDE_DELAY\": () => (/* binding */ SNAP_LINE_HIDE_DELAY),\n/* harmony export */   \"default\": () => (/* binding */ Snapping)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _SnapUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SnapUtil */ \"./node_modules/diagram-js/lib/features/snapping/SnapUtil.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\n\n\nvar SNAP_TOLERANCE = 7;\n\nvar SNAP_LINE_HIDE_DELAY = 1000;\n\n\n/**\n * Generic snapping feature.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction Snapping(canvas) {\n  this._canvas = canvas;\n\n  // delay hide by 1000 seconds since last snap\n  this._asyncHide = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.debounce)((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this.hide, this), SNAP_LINE_HIDE_DELAY);\n}\n\nSnapping.$inject = [ 'canvas' ];\n\n/**\n * Snap an event to given snap points.\n *\n * @param {Event} event\n * @param {SnapPoints} snapPoints\n */\nSnapping.prototype.snap = function(event, snapPoints) {\n  var context = event.context,\n      snapContext = context.snapContext,\n      snapLocations = snapContext.getSnapLocations();\n\n  var snapping = {\n    x: (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event, 'x'),\n    y: (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.isSnapped)(event, 'y')\n  };\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(snapLocations, function(location) {\n    var snapOrigin = snapContext.getSnapOrigin(location);\n\n    var snapCurrent = {\n      x: event.x + snapOrigin.x,\n      y: event.y + snapOrigin.y\n    };\n\n    // snap both axis if not snapped already\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y' ], function(axis) {\n      var locationSnapping;\n\n      if (!snapping[axis]) {\n        locationSnapping = snapPoints.snap(snapCurrent, location, axis, SNAP_TOLERANCE);\n\n        if (locationSnapping !== undefined) {\n          snapping[axis] = {\n            value: locationSnapping,\n            originValue: locationSnapping - snapOrigin[axis]\n          };\n        }\n      }\n    });\n\n    // no need to continue snapping\n    if (snapping.x && snapping.y) {\n      return false;\n    }\n  });\n\n  // show snap lines\n  this.showSnapLine('vertical', snapping.x && snapping.x.value);\n  this.showSnapLine('horizontal', snapping.y && snapping.y.value);\n\n  // snap event\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)([ 'x', 'y' ], function(axis) {\n    var axisSnapping = snapping[axis];\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(axisSnapping)) {\n      (0,_SnapUtil__WEBPACK_IMPORTED_MODULE_1__.setSnapped)(event, axis, axisSnapping.originValue);\n    }\n  });\n};\n\nSnapping.prototype._createLine = function(orientation) {\n  var root = this._canvas.getLayer('snap');\n\n  var line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.create)('path');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, { d: 'M0,0 L0,0' });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.classes)(line).add('djs-snap-line');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.append)(root, line);\n\n  return {\n    update: function(position) {\n\n      if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(position)) {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, { display: 'none' });\n      } else {\n        if (orientation === 'horizontal') {\n          (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, {\n            d: 'M-100000,' + position + ' L+100000,' + position,\n            display: ''\n          });\n        } else {\n          (0,tiny_svg__WEBPACK_IMPORTED_MODULE_2__.attr)(line, {\n            d: 'M ' + position + ',-100000 L ' + position + ', +100000',\n            display: ''\n          });\n        }\n      }\n    }\n  };\n};\n\nSnapping.prototype._createSnapLines = function() {\n  this._snapLines = {\n    horizontal: this._createLine('horizontal'),\n    vertical: this._createLine('vertical')\n  };\n};\n\nSnapping.prototype.showSnapLine = function(orientation, position) {\n\n  var line = this.getSnapLine(orientation);\n\n  if (line) {\n    line.update(position);\n  }\n\n  this._asyncHide();\n};\n\nSnapping.prototype.getSnapLine = function(orientation) {\n  if (!this._snapLines) {\n    this._createSnapLines();\n  }\n\n  return this._snapLines[orientation];\n};\n\nSnapping.prototype.hide = function() {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(this._snapLines, function(snapLine) {\n    snapLine.update();\n  });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/Snapping.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/snapping/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/snapping/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CreateMoveSnapping */ \"./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js\");\n/* harmony import */ var _ResizeSnapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizeSnapping */ \"./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js\");\n/* harmony import */ var _Snapping__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Snapping */ \"./node_modules/diagram-js/lib/features/snapping/Snapping.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [\n    'createMoveSnapping',\n    'resizeSnapping',\n    'snapping'\n  ],\n  createMoveSnapping: [ 'type', _CreateMoveSnapping__WEBPACK_IMPORTED_MODULE_0__.default ],\n  resizeSnapping: [ 'type', _ResizeSnapping__WEBPACK_IMPORTED_MODULE_1__.default ],\n  snapping: [ 'type', _Snapping__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/snapping/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SpaceTool)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_Elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/Elements */ \"./node_modules/diagram-js/lib/util/Elements.js\");\n/* harmony import */ var _SpaceUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SpaceUtil */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js\");\n/* harmony import */ var _util_Mouse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Mouse */ \"./node_modules/diagram-js/lib/util/Mouse.js\");\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar abs = Math.abs,\n    round = Math.round;\n\nvar AXIS_TO_DIMENSION = {\n  x: 'width',\n  y: 'height'\n};\n\nvar CURSOR_CROSSHAIR = 'crosshair';\n\nvar DIRECTION_TO_TRBL = {\n  n: 'top',\n  w: 'left',\n  s: 'bottom',\n  e: 'right'\n};\n\nvar HIGH_PRIORITY = 1500;\n\nvar DIRECTION_TO_OPPOSITE = {\n  n: 's',\n  w: 'e',\n  s: 'n',\n  e: 'w'\n};\n\nvar PADDING = 20;\n\n\n/**\n * Add or remove space by moving and resizing elements.\n *\n * @param {Canvas} canvas\n * @param {Dragging} dragging\n * @param {EventBus} eventBus\n * @param {Modeling} modeling\n * @param {Rules} rules\n * @param {ToolManager} toolManager\n * @param {Mouse} mouse\n */\nfunction SpaceTool(\n    canvas, dragging, eventBus,\n    modeling, rules, toolManager,\n    mouse) {\n\n  this._canvas = canvas;\n  this._dragging = dragging;\n  this._eventBus = eventBus;\n  this._modeling = modeling;\n  this._rules = rules;\n  this._toolManager = toolManager;\n  this._mouse = mouse;\n\n  var self = this;\n\n  toolManager.registerTool('space', {\n    tool: 'spaceTool.selection',\n    dragging: 'spaceTool'\n  });\n\n  eventBus.on('spaceTool.selection.end', function(event) {\n    eventBus.once('spaceTool.selection.ended', function() {\n      self.activateMakeSpace(event.originalEvent);\n    });\n  });\n\n  eventBus.on('spaceTool.move', HIGH_PRIORITY , function(event) {\n    var context = event.context,\n        initialized = context.initialized;\n\n    if (!initialized) {\n      initialized = context.initialized = self.init(event, context);\n    }\n\n    if (initialized) {\n      ensureConstraints(event);\n    }\n  });\n\n  eventBus.on('spaceTool.end', function(event) {\n    var context = event.context,\n        axis = context.axis,\n        direction = context.direction,\n        movingShapes = context.movingShapes,\n        resizingShapes = context.resizingShapes,\n        start = context.start;\n\n    if (!context.initialized) {\n      return;\n    }\n\n    ensureConstraints(event);\n\n    var delta = {\n      x: 0,\n      y: 0\n    };\n\n    delta[ axis ] = round(event[ 'd' + axis ]);\n\n    self.makeSpace(movingShapes, resizingShapes, delta, direction, start);\n\n    eventBus.once('spaceTool.ended', function(event) {\n\n      // activate space tool selection after make space\n      self.activateSelection(event.originalEvent, true, true);\n    });\n  });\n}\n\nSpaceTool.$inject = [\n  'canvas',\n  'dragging',\n  'eventBus',\n  'modeling',\n  'rules',\n  'toolManager',\n  'mouse'\n];\n\n/**\n * Activate space tool selection.\n *\n * @param {Object} event\n * @param {boolean} autoActivate\n */\nSpaceTool.prototype.activateSelection = function(event, autoActivate, reactivate) {\n  this._dragging.init(event, 'spaceTool.selection', {\n    autoActivate: autoActivate,\n    cursor: CURSOR_CROSSHAIR,\n    data: {\n      context: {\n        reactivate: reactivate\n      }\n    },\n    trapClick: false\n  });\n};\n\n/**\n * Activate space tool make space.\n *\n * @param  {MouseEvent} event\n */\nSpaceTool.prototype.activateMakeSpace = function(event) {\n  this._dragging.init(event, 'spaceTool', {\n    autoActivate: true,\n    cursor: CURSOR_CROSSHAIR,\n    data: {\n      context: {}\n    }\n  });\n};\n\n/**\n * Make space.\n *\n * @param  {Array<djs.model.Shape>} movingShapes\n * @param  {Array<djs.model.Shape>} resizingShapes\n * @param  {Object} delta\n * @param  {number} delta.x\n * @param  {number} delta.y\n * @param  {string} direction\n * @param  {number} start\n */\nSpaceTool.prototype.makeSpace = function(movingShapes, resizingShapes, delta, direction, start) {\n  return this._modeling.createSpace(movingShapes, resizingShapes, delta, direction, start);\n};\n\n/**\n * Initialize make space and return true if that was successful.\n *\n * @param {Object} event\n * @param {Object} context\n *\n * @return {boolean}\n */\nSpaceTool.prototype.init = function(event, context) {\n  var axis = abs(event.dx) > abs(event.dy) ? 'x' : 'y',\n      delta = event[ 'd' + axis ],\n      start = event[ axis ] - delta;\n\n  if (abs(delta) < 5) {\n    return false;\n  }\n\n  // invert delta to remove space when moving left\n  if (delta < 0) {\n    delta *= -1;\n  }\n\n  // invert delta to add/remove space when removing/adding space if modifier key is pressed\n  if ((0,_util_Mouse__WEBPACK_IMPORTED_MODULE_0__.hasPrimaryModifier)(event)) {\n    delta *= -1;\n  }\n\n  var direction = (0,_SpaceUtil__WEBPACK_IMPORTED_MODULE_1__.getDirection)(axis, delta);\n\n  var root = this._canvas.getRootElement();\n\n  var children = (0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.selfAndAllChildren)(root, true);\n\n  var elements = this.calculateAdjustments(children, axis, delta, start);\n\n  var minDimensions = this._eventBus.fire('spaceTool.getMinDimensions', {\n    axis: axis,\n    direction: direction,\n    shapes: elements.resizingShapes,\n    start: start\n  });\n\n  var spaceToolConstraints = getSpaceToolConstraints(elements, axis, direction, start, minDimensions);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.assign)(\n    context,\n    elements,\n    {\n      axis: axis,\n      direction: direction,\n      spaceToolConstraints: spaceToolConstraints,\n      start: start\n    }\n  );\n\n  (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_4__.set)('resize-' + (axis === 'x' ? 'ew' : 'ns'));\n\n  return true;\n};\n\n/**\n * Get elements to be moved and resized.\n *\n * @param  {Array<djs.model.Shape>} elements\n * @param  {string} axis\n * @param  {number} delta\n * @param  {number} start\n *\n * @return {Object}\n */\nSpaceTool.prototype.calculateAdjustments = function(elements, axis, delta, start) {\n  var rules = this._rules;\n\n  var movingShapes = [],\n      resizingShapes = [];\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(elements, function(element) {\n    if (!element.parent || isConnection(element)) {\n      return;\n    }\n\n    var shapeStart = element[ axis ],\n        shapeEnd = shapeStart + element[ AXIS_TO_DIMENSION[ axis ] ];\n\n    // shape to be moved\n    if ((delta > 0 && shapeStart > start) || (delta < 0 && shapeEnd < start)) {\n      return movingShapes.push(element);\n    }\n\n    // shape to be resized\n    if (shapeStart < start &&\n      shapeEnd > start &&\n      rules.allowed('shape.resize', { shape: element })\n    ) {\n\n      return resizingShapes.push(element);\n    }\n  });\n\n  return {\n    movingShapes: movingShapes,\n    resizingShapes: resizingShapes\n  };\n};\n\nSpaceTool.prototype.toggle = function() {\n\n  if (this.isActive()) {\n    return this._dragging.cancel();\n  }\n\n  var mouseEvent = this._mouse.getLastMoveEvent();\n\n  this.activateSelection(mouseEvent, !!mouseEvent);\n};\n\nSpaceTool.prototype.isActive = function() {\n  var context = this._dragging.context();\n\n  return context && /^spaceTool/.test(context.prefix);\n};\n\n// helpers //////////\n\nfunction addPadding(trbl) {\n  return {\n    top: trbl.top - PADDING,\n    right: trbl.right + PADDING,\n    bottom: trbl.bottom + PADDING,\n    left: trbl.left - PADDING\n  };\n}\n\nfunction ensureConstraints(event) {\n  var context = event.context,\n      spaceToolConstraints = context.spaceToolConstraints;\n\n  if (!spaceToolConstraints) {\n    return;\n  }\n\n  var x, y;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.left)) {\n    x = Math.max(event.x, spaceToolConstraints.left);\n\n    event.dx = event.dx + x - event.x;\n    event.x = x;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.right)) {\n    x = Math.min(event.x, spaceToolConstraints.right);\n\n    event.dx = event.dx + x - event.x;\n    event.x = x;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.top)) {\n    y = Math.max(event.y, spaceToolConstraints.top);\n\n    event.dy = event.dy + y - event.y;\n    event.y = y;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(spaceToolConstraints.bottom)) {\n    y = Math.min(event.y, spaceToolConstraints.bottom);\n\n    event.dy = event.dy + y - event.y;\n    event.y = y;\n  }\n}\n\nfunction getSpaceToolConstraints(elements, axis, direction, start, minDimensions) {\n  var movingShapes = elements.movingShapes,\n      resizingShapes = elements.resizingShapes;\n\n  if (!resizingShapes.length) {\n    return;\n  }\n\n  var spaceToolConstraints = {},\n      min,\n      max;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.forEach)(resizingShapes, function(resizingShape) {\n    var resizingShapeBBox = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)(resizingShape);\n\n    // find children that are not moving or resizing\n    var nonMovingResizingChildren = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(resizingShape.children, function(child) {\n      return !isConnection(child) &&\n        !isLabel(child) &&\n        !includes(movingShapes, child) &&\n        !includes(resizingShapes, child);\n    });\n\n    // find children that are moving\n    var movingChildren = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.filter)(resizingShape.children, function(child) {\n      return !isConnection(child) && !isLabel(child) && includes(movingShapes, child);\n    });\n\n    var minOrMax,\n        nonMovingResizingChildrenBBox,\n        movingChildrenBBox;\n\n    if (nonMovingResizingChildren.length) {\n      nonMovingResizingChildrenBBox = addPadding((0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(nonMovingResizingChildren)));\n\n      minOrMax = start -\n        resizingShapeBBox[ DIRECTION_TO_TRBL[ direction ] ] +\n        nonMovingResizingChildrenBBox[ DIRECTION_TO_TRBL[ direction ] ];\n\n      if (direction === 'n') {\n        spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 'w') {\n        spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 's') {\n        spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      } else if (direction === 'e') {\n        spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      }\n    }\n\n    if (movingChildren.length) {\n      movingChildrenBBox = addPadding((0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_5__.asTRBL)((0,_util_Elements__WEBPACK_IMPORTED_MODULE_2__.getBBox)(movingChildren)));\n\n      minOrMax = start -\n        movingChildrenBBox[ DIRECTION_TO_TRBL[ DIRECTION_TO_OPPOSITE[ direction ] ] ] +\n        resizingShapeBBox[ DIRECTION_TO_TRBL[ DIRECTION_TO_OPPOSITE[ direction ] ] ];\n\n      if (direction === 'n') {\n        spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 'w') {\n        spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 's') {\n        spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      } else if (direction === 'e') {\n        spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      }\n    }\n\n    var resizingShapeMinDimensions = minDimensions && minDimensions[ resizingShape.id ];\n\n    if (resizingShapeMinDimensions) {\n      if (direction === 'n') {\n        minOrMax = start +\n          resizingShape[ AXIS_TO_DIMENSION [ axis ] ] -\n          resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n        spaceToolConstraints.bottom = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 'w') {\n        minOrMax = start +\n          resizingShape[ AXIS_TO_DIMENSION [ axis ] ] -\n          resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n        spaceToolConstraints.right = max = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(max) ? Math.min(max, minOrMax) : minOrMax;\n      } else if (direction === 's') {\n        minOrMax = start -\n          resizingShape[ AXIS_TO_DIMENSION [ axis ] ] +\n          resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n        spaceToolConstraints.top = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      } else if (direction === 'e') {\n        minOrMax = start -\n          resizingShape[ AXIS_TO_DIMENSION [ axis ] ] +\n          resizingShapeMinDimensions[ AXIS_TO_DIMENSION[ axis ] ];\n\n        spaceToolConstraints.left = min = (0,min_dash__WEBPACK_IMPORTED_MODULE_3__.isNumber)(min) ? Math.max(min, minOrMax) : minOrMax;\n      }\n    }\n  });\n\n  return spaceToolConstraints;\n}\n\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\n\nfunction isConnection(element) {\n  return !!element.waypoints;\n}\n\nfunction isLabel(element) {\n  return !!element.labelTarget;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js ***!
    \*****************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ SpaceToolPreview)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n/* harmony import */ var _util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/SvgTransformUtil */ \"./node_modules/diagram-js/lib/util/SvgTransformUtil.js\");\n\n\nvar MARKER_DRAGGING = 'djs-dragging',\n    MARKER_RESIZING = 'djs-resizing';\n\nvar LOW_PRIORITY = 250;\n\n\n\n\n\nvar max = Math.max;\n\n\n/**\n * Provides previews for selecting/moving/resizing shapes when creating/removing space.\n *\n * @param {EventBus} eventBus\n * @param {ElementRegistry} elementRegistry\n * @param {Canvas} canvas\n * @param {Styles} styles\n */\nfunction SpaceToolPreview(\n    eventBus, elementRegistry, canvas,\n    styles, previewSupport) {\n\n  function addPreviewGfx(collection, dragGroup) {\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(collection, function(element) {\n      previewSupport.addDragger(element, dragGroup);\n\n      canvas.addMarker(element, MARKER_DRAGGING);\n    });\n  }\n\n  // add crosshair\n  eventBus.on('spaceTool.selection.start', function(event) {\n    var space = canvas.getLayer('space'),\n        context = event.context;\n\n    var orientation = {\n      x: 'M 0,-10000 L 0,10000',\n      y: 'M -10000,0 L 10000,0'\n    };\n\n    var crosshairGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(crosshairGroup, styles.cls('djs-crosshair-group', [ 'no-events' ]));\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(space, crosshairGroup);\n\n    // horizontal path\n    var pathX = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(pathX, 'd', orientation.x);\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(pathX).add('djs-crosshair');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(crosshairGroup, pathX);\n\n    // vertical path\n    var pathY = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(pathY, 'd', orientation.y);\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(pathY).add('djs-crosshair');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(crosshairGroup, pathY);\n\n    context.crosshairGroup = crosshairGroup;\n  });\n\n  // update crosshair\n  eventBus.on('spaceTool.selection.move', function(event) {\n    var crosshairGroup = event.context.crosshairGroup;\n\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(crosshairGroup, event.x, event.y);\n  });\n\n  // remove crosshair\n  eventBus.on('spaceTool.selection.cleanup', function(event) {\n    var context = event.context,\n        crosshairGroup = context.crosshairGroup;\n\n    if (crosshairGroup) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(crosshairGroup);\n    }\n  });\n\n  // add and update move/resize previews\n  eventBus.on('spaceTool.move', LOW_PRIORITY, function(event) {\n\n    var context = event.context,\n        line = context.line,\n        axis = context.axis,\n        movingShapes = context.movingShapes,\n        resizingShapes = context.resizingShapes;\n\n    if (!context.initialized) {\n      return;\n    }\n\n    if (!context.dragGroup) {\n      var spaceLayer = canvas.getLayer('space');\n\n      line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('path');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(line, 'd', 'M0,0 L0,0');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.classes)(line).add('djs-crosshair');\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(spaceLayer, line);\n\n      context.line = line;\n\n      var dragGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(dragGroup, styles.cls('djs-drag-group', [ 'no-events' ]));\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(canvas.getDefaultLayer(), dragGroup);\n\n      // shapes\n      addPreviewGfx(movingShapes, dragGroup);\n\n      // connections\n      var movingConnections = context.movingConnections = elementRegistry.filter(function(element) {\n        var sourceIsMoving = false;\n\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n          (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(connection) {\n            if (element === connection) {\n              sourceIsMoving = true;\n            }\n          });\n        });\n\n        var targetIsMoving = false;\n\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n          (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(connection) {\n            if (element === connection) {\n              targetIsMoving = true;\n            }\n          });\n        });\n\n        var sourceIsResizing = false;\n\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n          (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.outgoing, function(connection) {\n            if (element === connection) {\n              sourceIsResizing = true;\n            }\n          });\n        });\n\n        var targetIsResizing = false;\n\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n          (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(shape.incoming, function(connection) {\n            if (element === connection) {\n              targetIsResizing = true;\n            }\n          });\n        });\n\n        return isConnection(element)\n          && (sourceIsMoving || sourceIsResizing)\n          && (targetIsMoving || targetIsResizing);\n      });\n\n\n      addPreviewGfx(movingConnections, dragGroup);\n\n      context.dragGroup = dragGroup;\n    }\n\n    if (!context.frameGroup) {\n      var frameGroup = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('g');\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(frameGroup, styles.cls('djs-frame-group', [ 'no-events' ]));\n\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(canvas.getDefaultLayer(), frameGroup);\n\n      var frames = [];\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n        var frame = previewSupport.addFrame(shape, frameGroup);\n\n        var initialBounds = frame.getBBox();\n\n        frames.push({\n          element: frame,\n          initialBounds: initialBounds\n        });\n\n        canvas.addMarker(shape, MARKER_RESIZING);\n      });\n\n      context.frameGroup = frameGroup;\n      context.frames = frames;\n    }\n\n    var orientation = {\n      x: 'M' + event.x + ', -10000 L' + event.x + ', 10000',\n      y: 'M -10000, ' + event.y + ' L 10000, ' + event.y\n    };\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(line, { d: orientation[ axis ] });\n\n    var opposite = { x: 'y', y: 'x' };\n    var delta = { x: event.dx, y: event.dy };\n    delta[ opposite[ context.axis ] ] = 0;\n\n    // update move previews\n    (0,_util_SvgTransformUtil__WEBPACK_IMPORTED_MODULE_2__.translate)(context.dragGroup, delta.x, delta.y);\n\n    // update resize previews\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(context.frames, function(frame) {\n      var element = frame.element,\n          initialBounds = frame.initialBounds,\n          width,\n          height;\n\n      if (context.direction === 'e') {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n          width: max(initialBounds.width + delta.x, 5)\n        });\n      } else {\n        width = max(initialBounds.width - delta.x, 5);\n\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n          width: width,\n          x: initialBounds.x + initialBounds.width - width\n        });\n      }\n\n      if (context.direction === 's') {\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n          height: max(initialBounds.height + delta.y, 5)\n        });\n      } else {\n        height = max(initialBounds.height - delta.y, 5);\n\n        (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(element, {\n          height: height,\n          y: initialBounds.y + initialBounds.height - height\n        });\n      }\n    });\n\n  });\n\n  // remove move/resize previews\n  eventBus.on('spaceTool.cleanup', function(event) {\n\n    var context = event.context,\n        movingShapes = context.movingShapes,\n        movingConnections = context.movingConnections,\n        resizingShapes = context.resizingShapes,\n        line = context.line,\n        dragGroup = context.dragGroup,\n        frameGroup = context.frameGroup;\n\n    // moving shapes\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes, function(shape) {\n      canvas.removeMarker(shape, MARKER_DRAGGING);\n    });\n\n    // moving connections\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingConnections, function(connection) {\n      canvas.removeMarker(connection, MARKER_DRAGGING);\n    });\n\n    if (dragGroup) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(line);\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(dragGroup);\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(resizingShapes, function(shape) {\n      canvas.removeMarker(shape, MARKER_RESIZING);\n    });\n\n    if (frameGroup) {\n      (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(frameGroup);\n    }\n  });\n}\n\nSpaceToolPreview.$inject = [\n  'eventBus',\n  'elementRegistry',\n  'canvas',\n  'styles',\n  'previewSupport'\n];\n\n\n// helpers //////////////////////\n\n/**\n * Checks if an element is a connection.\n */\nfunction isConnection(element) {\n  return element.waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js":
  /*!**********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js ***!
    \**********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getDirection\": () => (/* binding */ getDirection),\n/* harmony export */   \"getWaypointsUpdatingConnections\": () => (/* binding */ getWaypointsUpdatingConnections),\n/* harmony export */   \"resizeBounds\": () => (/* binding */ resizeBounds)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Return direction given axis and delta.\n *\n * @param {string} axis\n * @param {number} delta\n *\n * @return {string}\n */\nfunction getDirection(axis, delta) {\n\n  if (axis === 'x') {\n    if (delta > 0) {\n      return 'e';\n    }\n\n    if (delta < 0) {\n      return 'w';\n    }\n  }\n\n  if (axis === 'y') {\n    if (delta > 0) {\n      return 's';\n    }\n\n    if (delta < 0) {\n      return 'n';\n    }\n  }\n\n  return null;\n}\n\n/**\n * Returns connections whose waypoints are to be updated. Waypoints are to be updated if start\n * or end is to be moved or resized.\n *\n * @param {Array<djs.model.Shape} movingShapes\n * @param {Array<djs.model.Shape} resizingShapes\n *\n * @returns {Array<djs.model.Connection>}\n */\nfunction getWaypointsUpdatingConnections(movingShapes, resizingShapes) {\n  var waypointsUpdatingConnections = [];\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(movingShapes.concat(resizingShapes), function(shape) {\n    var incoming = shape.incoming,\n        outgoing = shape.outgoing;\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(incoming.concat(outgoing), function(connection) {\n      var source = connection.source,\n          target = connection.target;\n\n      if (includes(movingShapes, source) ||\n        includes(movingShapes, target) ||\n        includes(resizingShapes, source) ||\n        includes(resizingShapes, target)) {\n\n        if (!includes(waypointsUpdatingConnections, connection)) {\n          waypointsUpdatingConnections.push(connection);\n        }\n      }\n    });\n  });\n\n  return waypointsUpdatingConnections;\n}\n\nfunction includes(array, item) {\n  return array.indexOf(item) !== -1;\n}\n\n/**\n * Resize bounds.\n *\n * @param {Object} bounds\n * @param {number} bounds.x\n * @param {number} bounds.y\n * @param {number} bounds.width\n * @param {number} bounds.height\n * @param {string} direction\n * @param {Object} delta\n * @param {number} delta.x\n * @param {number} delta.y\n *\n * @return {Object}\n */\nfunction resizeBounds(bounds, direction, delta) {\n  var x = bounds.x,\n      y = bounds.y,\n      width = bounds.width,\n      height = bounds.height,\n      dx = delta.x,\n      dy = delta.y;\n\n  switch (direction) {\n  case 'n':\n    return {\n      x: x,\n      y: y + dy,\n      width: width,\n      height: height - dy\n    };\n  case 's':\n    return {\n      x: x,\n      y: y,\n      width: width,\n      height: height + dy\n    };\n  case 'w':\n    return {\n      x: x + dx,\n      y: y,\n      width: width - dx,\n      height: height\n    };\n  case 'e':\n    return {\n      x: x,\n      y: y,\n      width: width + dx,\n      height: height\n    };\n  default:\n    throw new Error('unknown direction: ' + direction);\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/space-tool/index.js":
  /*!******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/space-tool/index.js ***!
    \******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rules */ \"./node_modules/diagram-js/lib/features/rules/index.js\");\n/* harmony import */ var _tool_manager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tool-manager */ \"./node_modules/diagram-js/lib/features/tool-manager/index.js\");\n/* harmony import */ var _preview_support__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../preview-support */ \"./node_modules/diagram-js/lib/features/preview-support/index.js\");\n/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mouse */ \"./node_modules/diagram-js/lib/features/mouse/index.js\");\n/* harmony import */ var _SpaceTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SpaceTool */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js\");\n/* harmony import */ var _SpaceToolPreview__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SpaceToolPreview */ \"./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js\");\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: ['spaceToolPreview'],\n  __depends__: [\n    _dragging__WEBPACK_IMPORTED_MODULE_0__.default,\n    _rules__WEBPACK_IMPORTED_MODULE_1__.default,\n    _tool_manager__WEBPACK_IMPORTED_MODULE_2__.default,\n    _preview_support__WEBPACK_IMPORTED_MODULE_3__.default,\n    _mouse__WEBPACK_IMPORTED_MODULE_4__.default\n  ],\n  spaceTool: ['type', _SpaceTool__WEBPACK_IMPORTED_MODULE_5__.default ],\n  spaceToolPreview: ['type', _SpaceToolPreview__WEBPACK_IMPORTED_MODULE_6__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/space-tool/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js":
  /*!**************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js ***!
    \**************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ToolManager)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\n\n\nvar LOW_PRIORITY = 250;\n\n/**\n * The tool manager acts as middle-man between the available tool's and the Palette,\n * it takes care of making sure that the correct active state is set.\n *\n * @param  {Object}    eventBus\n * @param  {Object}    dragging\n */\nfunction ToolManager(eventBus, dragging) {\n  this._eventBus = eventBus;\n  this._dragging = dragging;\n\n  this._tools = [];\n  this._active = null;\n}\n\nToolManager.$inject = [ 'eventBus', 'dragging' ];\n\nToolManager.prototype.registerTool = function(name, events) {\n  var tools = this._tools;\n\n  if (!events) {\n    throw new Error('A tool has to be registered with it\\'s \"events\"');\n  }\n\n  tools.push(name);\n\n  this.bindEvents(name, events);\n};\n\nToolManager.prototype.isActive = function(tool) {\n  return tool && this._active === tool;\n};\n\nToolManager.prototype.length = function(tool) {\n  return this._tools.length;\n};\n\nToolManager.prototype.setActive = function(tool) {\n  var eventBus = this._eventBus;\n\n  if (this._active !== tool) {\n    this._active = tool;\n\n    eventBus.fire('tool-manager.update', { tool: tool });\n  }\n};\n\nToolManager.prototype.bindEvents = function(name, events) {\n  var eventBus = this._eventBus,\n      dragging = this._dragging;\n\n  var eventsToRegister = [];\n\n  eventBus.on(events.tool + '.init', function(event) {\n    var context = event.context;\n\n    // Active tools that want to reactivate themselves must do this explicitly\n    if (!context.reactivate && this.isActive(name)) {\n      this.setActive(null);\n\n      dragging.cancel();\n      return;\n    }\n\n    this.setActive(name);\n\n  }, this);\n\n  // Todo[ricardo]: add test cases\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(events, function(event) {\n    eventsToRegister.push(event + '.ended');\n    eventsToRegister.push(event + '.canceled');\n  });\n\n  eventBus.on(eventsToRegister, LOW_PRIORITY, function(event) {\n\n    // We defer the de-activation of the tool to the .activate phase,\n    // so we're able to check if we want to toggle off the current\n    // active tool or switch to a new one\n    if (!this._active) {\n      return;\n    }\n\n    if (isPaletteClick(event)) {\n      return;\n    }\n\n    this.setActive(null);\n  }, this);\n\n};\n\n\n// helpers ///////////////\n\n/**\n * Check if a given event is a palette click event.\n *\n * @param {EventBus.Event} event\n *\n * @return {boolean}\n */\nfunction isPaletteClick(event) {\n  var target = event.originalEvent && event.originalEvent.target;\n\n  return target && (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.closest)(target, '.group[data-group=\"tools\"]');\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/tool-manager/index.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/tool-manager/index.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _dragging__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dragging */ \"./node_modules/diagram-js/lib/features/dragging/index.js\");\n/* harmony import */ var _ToolManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ToolManager */ \"./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js\");\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _dragging__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'toolManager' ],\n  toolManager: [ 'type', _ToolManager__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tool-manager/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/tooltips/Tooltips.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/tooltips/Tooltips.js ***!
    \*******************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Tooltips)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/IdGenerator */ \"./node_modules/diagram-js/lib/util/IdGenerator.js\");\n\n\n\n\n\n\n// document wide unique tooltip ids\nvar ids = new _util_IdGenerator__WEBPACK_IMPORTED_MODULE_0__.default('tt');\n\n\nfunction createRoot(parentNode) {\n  var root = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(\n    '<div class=\"djs-tooltip-container\" style=\"position: absolute; width: 0; height: 0;\" />'\n  );\n\n  parentNode.insertBefore(root, parentNode.firstChild);\n\n  return root;\n}\n\n\nfunction setPosition(el, x, y) {\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(el.style, { left: x + 'px', top: y + 'px' });\n}\n\nfunction setVisible(el, visible) {\n  el.style.display = visible === false ? 'none' : '';\n}\n\n\nvar tooltipClass = 'djs-tooltip',\n    tooltipSelector = '.' + tooltipClass;\n\n/**\n * A service that allows users to render tool tips on the diagram.\n *\n * The tooltip service will take care of updating the tooltip positioning\n * during navigation + zooming.\n *\n * @example\n *\n * ```javascript\n *\n * // add a pink badge on the top left of the shape\n * tooltips.add({\n *   position: {\n *     x: 50,\n *     y: 100\n *   },\n *   html: '<div style=\"width: 10px; background: fuchsia; color: white;\">0</div>'\n * });\n *\n * // or with optional life span\n * tooltips.add({\n *   position: {\n *     top: -5,\n *     left: -5\n *   },\n *   html: '<div style=\"width: 10px; background: fuchsia; color: white;\">0</div>',\n *   ttl: 2000\n * });\n *\n * // remove a tool tip\n * var id = tooltips.add(...);\n * tooltips.remove(id);\n * ```\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction Tooltips(eventBus, canvas) {\n\n  this._eventBus = eventBus;\n  this._canvas = canvas;\n\n  this._ids = ids;\n\n  this._tooltipDefaults = {\n    show: {\n      minZoom: 0.7,\n      maxZoom: 5.0\n    }\n  };\n\n  /**\n   * Mapping tooltipId -> tooltip\n   */\n  this._tooltips = {};\n\n  // root html element for all tooltips\n  this._tooltipRoot = createRoot(canvas.getContainer());\n\n\n  var self = this;\n\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mousedown', function(event) {\n    event.stopPropagation();\n  });\n\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mouseover', function(event) {\n    self.trigger('mouseover', event);\n  });\n\n  min_dom__WEBPACK_IMPORTED_MODULE_1__.delegate.bind(this._tooltipRoot, tooltipSelector, 'mouseout', function(event) {\n    self.trigger('mouseout', event);\n  });\n\n  this._init();\n}\n\n\nTooltips.$inject = [ 'eventBus', 'canvas' ];\n\n\n/**\n * Adds a HTML tooltip to the diagram\n *\n * @param {Object}               tooltip   the tooltip configuration\n *\n * @param {string|DOMElement}    tooltip.html                 html element to use as an tooltip\n * @param {Object}               [tooltip.show]               show configuration\n * @param {number}               [tooltip.show.minZoom]       minimal zoom level to show the tooltip\n * @param {number}               [tooltip.show.maxZoom]       maximum zoom level to show the tooltip\n * @param {Object}               tooltip.position             where to attach the tooltip\n * @param {number}               [tooltip.position.left]      relative to element bbox left attachment\n * @param {number}               [tooltip.position.top]       relative to element bbox top attachment\n * @param {number}               [tooltip.position.bottom]    relative to element bbox bottom attachment\n * @param {number}               [tooltip.position.right]     relative to element bbox right attachment\n * @param {number}               [tooltip.timeout=-1]\n *\n * @return {string}              id that may be used to reference the tooltip for update or removal\n */\nTooltips.prototype.add = function(tooltip) {\n\n  if (!tooltip.position) {\n    throw new Error('must specifiy tooltip position');\n  }\n\n  if (!tooltip.html) {\n    throw new Error('must specifiy tooltip html');\n  }\n\n  var id = this._ids.next();\n\n  tooltip = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, this._tooltipDefaults, tooltip, {\n    id: id\n  });\n\n  this._addTooltip(tooltip);\n\n  if (tooltip.timeout) {\n    this.setTimeout(tooltip);\n  }\n\n  return id;\n};\n\nTooltips.prototype.trigger = function(action, event) {\n\n  var node = event.delegateTarget || event.target;\n\n  var tooltip = this.get((0,min_dom__WEBPACK_IMPORTED_MODULE_1__.attr)(node, 'data-tooltip-id'));\n\n  if (!tooltip) {\n    return;\n  }\n\n  if (action === 'mouseover' && tooltip.timeout) {\n    this.clearTimeout(tooltip);\n  }\n\n  if (action === 'mouseout' && tooltip.timeout) {\n\n    // cut timeout after mouse out\n    tooltip.timeout = 1000;\n\n    this.setTimeout(tooltip);\n  }\n};\n\n/**\n * Get a tooltip with the given id\n *\n * @param {string} id\n */\nTooltips.prototype.get = function(id) {\n\n  if (typeof id !== 'string') {\n    id = id.id;\n  }\n\n  return this._tooltips[id];\n};\n\nTooltips.prototype.clearTimeout = function(tooltip) {\n\n  tooltip = this.get(tooltip);\n\n  if (!tooltip) {\n    return;\n  }\n\n  var removeTimer = tooltip.removeTimer;\n\n  if (removeTimer) {\n    clearTimeout(removeTimer);\n    tooltip.removeTimer = null;\n  }\n};\n\nTooltips.prototype.setTimeout = function(tooltip) {\n\n  tooltip = this.get(tooltip);\n\n  if (!tooltip) {\n    return;\n  }\n\n  this.clearTimeout(tooltip);\n\n  var self = this;\n\n  tooltip.removeTimer = setTimeout(function() {\n    self.remove(tooltip);\n  }, tooltip.timeout);\n};\n\n/**\n * Remove an tooltip with the given id\n *\n * @param {string} id\n */\nTooltips.prototype.remove = function(id) {\n\n  var tooltip = this.get(id);\n\n  if (tooltip) {\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(tooltip.html);\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.remove)(tooltip.htmlContainer);\n\n    delete tooltip.htmlContainer;\n\n    delete this._tooltips[tooltip.id];\n  }\n};\n\n\nTooltips.prototype.show = function() {\n  setVisible(this._tooltipRoot);\n};\n\n\nTooltips.prototype.hide = function() {\n  setVisible(this._tooltipRoot, false);\n};\n\n\nTooltips.prototype._updateRoot = function(viewbox) {\n  var a = viewbox.scale || 1;\n  var d = viewbox.scale || 1;\n\n  var matrix = 'matrix(' + a + ',0,0,' + d + ',' + (-1 * viewbox.x * a) + ',' + (-1 * viewbox.y * d) + ')';\n\n  this._tooltipRoot.style.transform = matrix;\n  this._tooltipRoot.style['-ms-transform'] = matrix;\n};\n\n\nTooltips.prototype._addTooltip = function(tooltip) {\n\n  var id = tooltip.id,\n      html = tooltip.html,\n      htmlContainer,\n      tooltipRoot = this._tooltipRoot;\n\n  // unwrap jquery (for those who need it)\n  if (html.get && html.constructor.prototype.jquery) {\n    html = html.get(0);\n  }\n\n  // create proper html elements from\n  // tooltip HTML strings\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(html)) {\n    html = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)(html);\n  }\n\n  htmlContainer = (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.domify)('<div data-tooltip-id=\"' + id + '\" class=\"' + tooltipClass + '\" style=\"position: absolute\">');\n\n  htmlContainer.appendChild(html);\n\n  if (tooltip.type) {\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(htmlContainer).add('djs-tooltip-' + tooltip.type);\n  }\n\n  if (tooltip.className) {\n    (0,min_dom__WEBPACK_IMPORTED_MODULE_1__.classes)(htmlContainer).add(tooltip.className);\n  }\n\n  tooltip.htmlContainer = htmlContainer;\n\n  tooltipRoot.appendChild(htmlContainer);\n\n  this._tooltips[id] = tooltip;\n\n  this._updateTooltip(tooltip);\n};\n\n\nTooltips.prototype._updateTooltip = function(tooltip) {\n\n  var position = tooltip.position,\n      htmlContainer = tooltip.htmlContainer;\n\n  // update overlay html based on tooltip x, y\n\n  setPosition(htmlContainer, position.x, position.y);\n};\n\n\nTooltips.prototype._updateTooltipVisibilty = function(viewbox) {\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(this._tooltips, function(tooltip) {\n    var show = tooltip.show,\n        htmlContainer = tooltip.htmlContainer,\n        visible = true;\n\n    if (show) {\n      if (show.minZoom > viewbox.scale ||\n          show.maxZoom < viewbox.scale) {\n        visible = false;\n      }\n\n      setVisible(htmlContainer, visible);\n    }\n  });\n};\n\nTooltips.prototype._init = function() {\n\n  var self = this;\n\n  // scroll/zoom integration\n\n  function updateViewbox(viewbox) {\n    self._updateRoot(viewbox);\n    self._updateTooltipVisibilty(viewbox);\n\n    self.show();\n  }\n\n  this._eventBus.on('canvas.viewbox.changing', function(event) {\n    self.hide();\n  });\n\n  this._eventBus.on('canvas.viewbox.changed', function(event) {\n    updateViewbox(event.viewbox);\n  });\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tooltips/Tooltips.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/tooltips/index.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/tooltips/index.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Tooltips__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tooltips */ \"./node_modules/diagram-js/lib/features/tooltips/Tooltips.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'tooltips' ],\n  tooltips: [ 'type', _Tooltips__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/tooltips/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/touch/TouchFix.js":
  /*!****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/touch/TouchFix.js ***!
    \****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ TouchFix)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\nfunction TouchFix(canvas, eventBus) {\n\n  var self = this;\n\n  eventBus.on('canvas.init', function(e) {\n    self.addBBoxMarker(e.svg);\n  });\n}\n\nTouchFix.$inject = [ 'canvas', 'eventBus' ];\n\n\n/**\n * Safari mobile (iOS 7) does not fire touchstart event in <SVG> element\n * if there is no shape between 0,0 and viewport elements origin.\n *\n * So touchstart event is only fired when the <g class=\"viewport\"> element was hit.\n * Putting an element over and below the 'viewport' fixes that behavior.\n */\nTouchFix.prototype.addBBoxMarker = function(svg) {\n\n  var markerStyle = {\n    fill: 'none',\n    class: 'outer-bound-marker'\n  };\n\n  var rect1 = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect1, {\n    x: -10000,\n    y: 10000,\n    width: 10,\n    height: 10\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect1, markerStyle);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(svg, rect1);\n\n  var rect2 = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('rect');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect2, {\n    x: 10000,\n    y: 10000,\n    width: 10,\n    height: 10\n  });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(rect2, markerStyle);\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.append)(svg, rect2);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/TouchFix.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ TouchInteractionEvents)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var hammerjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hammerjs */ \"./node_modules/hammerjs/hammer.js\");\n/* harmony import */ var hammerjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hammerjs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n\n\n\nvar MIN_ZOOM = 0.2,\n    MAX_ZOOM = 4;\n\nvar mouseEvents = [\n  'mousedown',\n  'mouseup',\n  'mouseover',\n  'mouseout',\n  'click',\n  'dblclick'\n];\n\nfunction log() {\n\n  // console.log.apply(console, arguments);\n}\n\nfunction get(service, injector) {\n  return injector.get(service, false);\n}\n\nfunction stopEvent(event) {\n\n  event.preventDefault();\n\n  if (typeof event.stopPropagation === 'function') {\n    event.stopPropagation();\n  } else if (event.srcEvent && typeof event.srcEvent.stopPropagation === 'function') {\n\n    // iPhone & iPad\n    event.srcEvent.stopPropagation();\n  }\n\n  if (typeof event.stopImmediatePropagation === 'function') {\n    event.stopImmediatePropagation();\n  }\n}\n\n\nfunction createTouchRecognizer(node) {\n\n  function stopMouse(event) {\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(mouseEvents, function(e) {\n      min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, e, stopEvent, true);\n    });\n  }\n\n  function allowMouse(event) {\n    setTimeout(function() {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.forEach)(mouseEvents, function(e) {\n        min_dom__WEBPACK_IMPORTED_MODULE_2__.event.unbind(node, e, stopEvent, true);\n      });\n    }, 500);\n  }\n\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchstart', stopMouse, true);\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchend', allowMouse, true);\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'touchcancel', allowMouse, true);\n\n  // A touch event recognizer that handles\n  // touch events only (we know, we can already handle\n  // mouse events out of the box)\n\n  var recognizer = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Manager)(node, {\n    inputClass: (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().TouchInput),\n    recognizers: [],\n    domEvents: true\n  });\n\n\n  var tap = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Tap)();\n  var pan = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Pan)({ threshold: 10 });\n  var press = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Press)();\n  var pinch = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Pinch)();\n\n  var doubleTap = new (hammerjs__WEBPACK_IMPORTED_MODULE_0___default().Tap)({ event: 'doubletap', taps: 2 });\n\n  pinch.requireFailure(pan);\n  pinch.requireFailure(press);\n\n  recognizer.add([ pan, press, pinch, doubleTap, tap ]);\n\n  recognizer.reset = function(force) {\n    var recognizers = this.recognizers,\n        session = this.session;\n\n    if (session.stopped) {\n      return;\n    }\n\n    log('recognizer', 'stop');\n\n    recognizer.stop(force);\n\n    setTimeout(function() {\n      var i, r;\n\n      log('recognizer', 'reset');\n      for (i = 0; (r = recognizers[i]); i++) {\n        r.reset();\n        r.state = 8; // FAILED STATE\n      }\n\n      session.curRecognizer = null;\n    }, 0);\n  };\n\n  recognizer.on('hammer.input', function(event) {\n    if (event.srcEvent.defaultPrevented) {\n      recognizer.reset(true);\n    }\n  });\n\n  return recognizer;\n}\n\n/**\n * A plugin that provides touch events for elements.\n *\n * @param {EventBus} eventBus\n * @param {InteractionEvents} interactionEvents\n */\nfunction TouchInteractionEvents(\n    injector, canvas, eventBus,\n    elementRegistry, interactionEvents) {\n\n  // optional integrations\n  var dragging = get('dragging', injector),\n      move = get('move', injector),\n      contextPad = get('contextPad', injector),\n      palette = get('palette', injector);\n\n  // the touch recognizer\n  var recognizer;\n\n  function handler(type) {\n\n    return function(event) {\n      log('element', type, event);\n\n      interactionEvents.fire(type, event);\n    };\n  }\n\n  function getGfx(target) {\n    var node = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.closest)(target, 'svg, .djs-element', true);\n    return node;\n  }\n\n  function initEvents(svg) {\n\n    // touch recognizer\n    recognizer = createTouchRecognizer(svg);\n\n    recognizer.on('doubletap', handler('element.dblclick'));\n\n    recognizer.on('tap', handler('element.click'));\n\n    function startGrabCanvas(event) {\n\n      log('canvas', 'grab start');\n\n      var lx = 0, ly = 0;\n\n      function update(e) {\n\n        var dx = e.deltaX - lx,\n            dy = e.deltaY - ly;\n\n        canvas.scroll({ dx: dx, dy: dy });\n\n        lx = e.deltaX;\n        ly = e.deltaY;\n      }\n\n      function end(e) {\n        recognizer.off('panmove', update);\n        recognizer.off('panend', end);\n        recognizer.off('pancancel', end);\n\n        log('canvas', 'grab end');\n      }\n\n      recognizer.on('panmove', update);\n      recognizer.on('panend', end);\n      recognizer.on('pancancel', end);\n    }\n\n    function startGrab(event) {\n\n      var gfx = getGfx(event.target),\n          element = gfx && elementRegistry.get(gfx);\n\n      // recognizer\n      if (move && canvas.getRootElement() !== element) {\n        log('element', 'move start', element, event, true);\n        return move.start(event, element, true);\n      } else {\n        startGrabCanvas(event);\n      }\n    }\n\n    function startZoom(e) {\n\n      log('canvas', 'zoom start');\n\n      var zoom = canvas.zoom(),\n          mid = e.center;\n\n      function update(e) {\n\n        var ratio = 1 - (1 - e.scale) / 1.50,\n            newZoom = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, ratio * zoom));\n\n        canvas.zoom(newZoom, mid);\n\n        stopEvent(e);\n      }\n\n      function end(e) {\n        recognizer.off('pinchmove', update);\n        recognizer.off('pinchend', end);\n        recognizer.off('pinchcancel', end);\n\n        recognizer.reset(true);\n\n        log('canvas', 'zoom end');\n      }\n\n      recognizer.on('pinchmove', update);\n      recognizer.on('pinchend', end);\n      recognizer.on('pinchcancel', end);\n    }\n\n    recognizer.on('panstart', startGrab);\n    recognizer.on('press', startGrab);\n\n    recognizer.on('pinchstart', startZoom);\n  }\n\n  if (dragging) {\n\n    // simulate hover during dragging\n    eventBus.on('drag.move', function(event) {\n\n      var originalEvent = event.originalEvent;\n\n      if (!originalEvent || originalEvent instanceof MouseEvent) {\n        return;\n      }\n\n      var position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_3__.toPoint)(originalEvent);\n\n      // this gets really expensive ...\n      var node = document.elementFromPoint(position.x, position.y),\n          gfx = getGfx(node),\n          element = gfx && elementRegistry.get(gfx);\n\n      if (element !== event.hover) {\n        if (event.hover) {\n          dragging.out(event);\n        }\n\n        if (element) {\n          dragging.hover({ element: element, gfx: gfx });\n\n          event.hover = element;\n          event.hoverGfx = gfx;\n        }\n      }\n    });\n  }\n\n  if (contextPad) {\n\n    eventBus.on('contextPad.create', function(event) {\n      var node = event.pad.html;\n\n      // touch recognizer\n      var padRecognizer = createTouchRecognizer(node);\n\n      padRecognizer.on('panstart', function(event) {\n        log('context-pad', 'panstart', event);\n        contextPad.trigger('dragstart', event, true);\n      });\n\n      padRecognizer.on('press', function(event) {\n        log('context-pad', 'press', event);\n        contextPad.trigger('dragstart', event, true);\n      });\n\n      padRecognizer.on('tap', function(event) {\n        log('context-pad', 'tap', event);\n        contextPad.trigger('click', event);\n      });\n    });\n  }\n\n  if (palette) {\n    eventBus.on('palette.create', function(event) {\n      var node = event.container;\n\n      // touch recognizer\n      var padRecognizer = createTouchRecognizer(node);\n\n      padRecognizer.on('panstart', function(event) {\n        log('palette', 'panstart', event);\n        palette.trigger('dragstart', event, true);\n      });\n\n      padRecognizer.on('press', function(event) {\n        log('palette', 'press', event);\n        palette.trigger('dragstart', event, true);\n      });\n\n      padRecognizer.on('tap', function(event) {\n        log('palette', 'tap', event);\n        palette.trigger('click', event);\n      });\n    });\n  }\n\n  eventBus.on('canvas.init', function(event) {\n    initEvents(event.svg);\n  });\n}\n\n\nTouchInteractionEvents.$inject = [\n  'injector',\n  'canvas',\n  'eventBus',\n  'elementRegistry',\n  'interactionEvents',\n  'touchFix'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/features/touch/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/features/touch/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _interaction_events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../interaction-events */ \"./node_modules/diagram-js/lib/features/interaction-events/index.js\");\n/* harmony import */ var _TouchInteractionEvents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TouchInteractionEvents */ \"./node_modules/diagram-js/lib/features/touch/TouchInteractionEvents.js\");\n/* harmony import */ var _TouchFix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TouchFix */ \"./node_modules/diagram-js/lib/features/touch/TouchFix.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [ _interaction_events__WEBPACK_IMPORTED_MODULE_0__.default ],\n  __init__: [ 'touchInteractionEvents' ],\n  touchInteractionEvents: [ 'type', _TouchInteractionEvents__WEBPACK_IMPORTED_MODULE_1__.default ],\n  touchFix: [ 'type', _TouchFix__WEBPACK_IMPORTED_MODULE_2__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/features/touch/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/i18n/translate/index.js":
  /*!*************************************************************!*\
    !*** ./node_modules/diagram-js/lib/i18n/translate/index.js ***!
    \*************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _translate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./translate */ \"./node_modules/diagram-js/lib/i18n/translate/translate.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  translate: [ 'value', _translate__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/i18n/translate/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/i18n/translate/translate.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/diagram-js/lib/i18n/translate/translate.js ***!
    \*****************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ translate)\n/* harmony export */ });\n/**\n * A simple translation stub to be used for multi-language support\n * in diagrams. Can be easily replaced with a more sophisticated\n * solution.\n *\n * @example\n *\n * // use it inside any diagram component by injecting `translate`.\n *\n * function MyService(translate) {\n *   alert(translate('HELLO {you}', { you: 'You!' }));\n * }\n *\n * @param {string} template to interpolate\n * @param {Object} [replacements] a map with substitutes\n *\n * @return {string} the translated string\n */\nfunction translate(template, replacements) {\n\n  replacements = replacements || {};\n\n  return template.replace(/{([^}]+)}/g, function(_, key) {\n    return replacements[key] || '{' + key + '}';\n  });\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/i18n/translate/translate.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/layout/BaseLayouter.js":
  /*!************************************************************!*\
    !*** ./node_modules/diagram-js/lib/layout/BaseLayouter.js ***!
    \************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ BaseLayouter)\n/* harmony export */ });\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n/**\n * A base connection layouter implementation\n * that layouts the connection by directly connecting\n * mid(source) + mid(target).\n */\nfunction BaseLayouter() {}\n\n\n/**\n * Return the new layouted waypoints for the given connection.\n *\n * The connection passed is still unchanged; you may figure out about\n * the new connection start / end via the layout hints provided.\n *\n * @param {djs.model.Connection} connection\n * @param {Object} [hints]\n * @param {Point} [hints.connectionStart]\n * @param {Point} [hints.connectionEnd]\n * @param {Point} [hints.source]\n * @param {Point} [hints.target]\n *\n * @return {Array<Point>} the layouted connection waypoints\n */\nBaseLayouter.prototype.layoutConnection = function(connection, hints) {\n\n  hints = hints || {};\n\n  return [\n    hints.connectionStart || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(hints.source || connection.source),\n    hints.connectionEnd || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(hints.target || connection.target)\n  ];\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/BaseLayouter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CroppingConnectionDocking)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n\n\n\n\n\nfunction dockingToPoint(docking) {\n\n  // use the dockings actual point and\n  // retain the original docking\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ original: docking.point.original || docking.point }, docking.actual);\n}\n\n\n/**\n * A {@link ConnectionDocking} that crops connection waypoints based on\n * the path(s) of the connection source and target.\n *\n * @param {djs.core.ElementRegistry} elementRegistry\n */\nfunction CroppingConnectionDocking(elementRegistry, graphicsFactory) {\n  this._elementRegistry = elementRegistry;\n  this._graphicsFactory = graphicsFactory;\n}\n\nCroppingConnectionDocking.$inject = [ 'elementRegistry', 'graphicsFactory' ];\n\n\n/**\n * @inheritDoc ConnectionDocking#getCroppedWaypoints\n */\nCroppingConnectionDocking.prototype.getCroppedWaypoints = function(connection, source, target) {\n\n  source = source || connection.source;\n  target = target || connection.target;\n\n  var sourceDocking = this.getDockingPoint(connection, source, true),\n      targetDocking = this.getDockingPoint(connection, target);\n\n  var croppedWaypoints = connection.waypoints.slice(sourceDocking.idx + 1, targetDocking.idx);\n\n  croppedWaypoints.unshift(dockingToPoint(sourceDocking));\n  croppedWaypoints.push(dockingToPoint(targetDocking));\n\n  return croppedWaypoints;\n};\n\n/**\n * Return the connection docking point on the specified shape\n *\n * @inheritDoc ConnectionDocking#getDockingPoint\n */\nCroppingConnectionDocking.prototype.getDockingPoint = function(connection, shape, dockStart) {\n\n  var waypoints = connection.waypoints,\n      dockingIdx,\n      dockingPoint,\n      croppedPoint;\n\n  dockingIdx = dockStart ? 0 : waypoints.length - 1;\n  dockingPoint = waypoints[dockingIdx];\n\n  croppedPoint = this._getIntersection(shape, connection, dockStart);\n\n  return {\n    point: dockingPoint,\n    actual: croppedPoint || dockingPoint,\n    idx: dockingIdx\n  };\n};\n\n\n// helpers //////////////////////\n\nCroppingConnectionDocking.prototype._getIntersection = function(shape, connection, takeFirst) {\n\n  var shapePath = this._getShapePath(shape),\n      connectionPath = this._getConnectionPath(connection);\n\n  return (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getElementLineIntersection)(shapePath, connectionPath, takeFirst);\n};\n\nCroppingConnectionDocking.prototype._getConnectionPath = function(connection) {\n  return this._graphicsFactory.getConnectionPath(connection);\n};\n\nCroppingConnectionDocking.prototype._getShapePath = function(shape) {\n  return this._graphicsFactory.getShapePath(shape);\n};\n\nCroppingConnectionDocking.prototype._getGfx = function(element) {\n  return this._elementRegistry.getGraphics(element);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/layout/LayoutUtil.js":
  /*!**********************************************************!*\
    !*** ./node_modules/diagram-js/lib/layout/LayoutUtil.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"roundBounds\": () => (/* binding */ roundBounds),\n/* harmony export */   \"roundPoint\": () => (/* binding */ roundPoint),\n/* harmony export */   \"asTRBL\": () => (/* binding */ asTRBL),\n/* harmony export */   \"asBounds\": () => (/* binding */ asBounds),\n/* harmony export */   \"getMid\": () => (/* binding */ getMid),\n/* harmony export */   \"getOrientation\": () => (/* binding */ getOrientation),\n/* harmony export */   \"getElementLineIntersection\": () => (/* binding */ getElementLineIntersection),\n/* harmony export */   \"getIntersections\": () => (/* binding */ getIntersections),\n/* harmony export */   \"filterRedundantWaypoints\": () => (/* binding */ filterRedundantWaypoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-intersection */ \"./node_modules/path-intersection/intersect.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_intersection__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\n\n\n\nfunction roundBounds(bounds) {\n  return {\n    x: Math.round(bounds.x),\n    y: Math.round(bounds.y),\n    width: Math.round(bounds.width),\n    height: Math.round(bounds.height)\n  };\n}\n\n\nfunction roundPoint(point) {\n\n  return {\n    x: Math.round(point.x),\n    y: Math.round(point.y)\n  };\n}\n\n\n/**\n * Convert the given bounds to a { top, left, bottom, right } descriptor.\n *\n * @param {Bounds|Point} bounds\n *\n * @return {Object}\n */\nfunction asTRBL(bounds) {\n  return {\n    top: bounds.y,\n    right: bounds.x + (bounds.width || 0),\n    bottom: bounds.y + (bounds.height || 0),\n    left: bounds.x\n  };\n}\n\n\n/**\n * Convert a { top, left, bottom, right } to an objects bounds.\n *\n * @param {Object} trbl\n *\n * @return {Bounds}\n */\nfunction asBounds(trbl) {\n  return {\n    x: trbl.left,\n    y: trbl.top,\n    width: trbl.right - trbl.left,\n    height: trbl.bottom - trbl.top\n  };\n}\n\n\n/**\n * Get the mid of the given bounds or point.\n *\n * @param {Bounds|Point} bounds\n *\n * @return {Point}\n */\nfunction getMid(bounds) {\n  return roundPoint({\n    x: bounds.x + (bounds.width || 0) / 2,\n    y: bounds.y + (bounds.height || 0) / 2\n  });\n}\n\n\n// orientation utils //////////////////////\n\n/**\n * Get orientation of the given rectangle with respect to\n * the reference rectangle.\n *\n * A padding (positive or negative) may be passed to influence\n * horizontal / vertical orientation and intersection.\n *\n * @param {Bounds} rect\n * @param {Bounds} reference\n * @param {Point|number} padding\n *\n * @return {string} the orientation; one of top, top-left, left, ..., bottom, right or intersect.\n */\nfunction getOrientation(rect, reference, padding) {\n\n  padding = padding || 0;\n\n  // make sure we can use an object, too\n  // for individual { x, y } padding\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isObject)(padding)) {\n    padding = { x: padding, y: padding };\n  }\n\n\n  var rectOrientation = asTRBL(rect),\n      referenceOrientation = asTRBL(reference);\n\n  var top = rectOrientation.bottom + padding.y <= referenceOrientation.top,\n      right = rectOrientation.left - padding.x >= referenceOrientation.right,\n      bottom = rectOrientation.top - padding.y >= referenceOrientation.bottom,\n      left = rectOrientation.right + padding.x <= referenceOrientation.left;\n\n  var vertical = top ? 'top' : (bottom ? 'bottom' : null),\n      horizontal = left ? 'left' : (right ? 'right' : null);\n\n  if (horizontal && vertical) {\n    return vertical + '-' + horizontal;\n  } else {\n    return horizontal || vertical || 'intersect';\n  }\n}\n\n\n// intersection utils //////////////////////\n\n/**\n * Get intersection between an element and a line path.\n *\n * @param {PathDef} elementPath\n * @param {PathDef} linePath\n * @param {boolean} cropStart crop from start or end\n *\n * @return {Point}\n */\nfunction getElementLineIntersection(elementPath, linePath, cropStart) {\n\n  var intersections = getIntersections(elementPath, linePath);\n\n  // recognize intersections\n  // only one -> choose\n  // two close together -> choose first\n  // two or more distinct -> pull out appropriate one\n  // none -> ok (fallback to point itself)\n  if (intersections.length === 1) {\n    return roundPoint(intersections[0]);\n  } else if (intersections.length === 2 && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(intersections[0], intersections[1]) < 1) {\n    return roundPoint(intersections[0]);\n  } else if (intersections.length > 1) {\n\n    // sort by intersections based on connection segment +\n    // distance from start\n    intersections = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.sortBy)(intersections, function(i) {\n      var distance = Math.floor(i.t2 * 100) || 1;\n\n      distance = 100 - distance;\n\n      distance = (distance < 10 ? '0' : '') + distance;\n\n      // create a sort string that makes sure we sort\n      // line segment ASC + line segment position DESC (for cropStart)\n      // line segment ASC + line segment position ASC (for cropEnd)\n      return i.segment2 + '#' + distance;\n    });\n\n    return roundPoint(intersections[cropStart ? 0 : intersections.length - 1]);\n  }\n\n  return null;\n}\n\n\nfunction getIntersections(a, b) {\n  return path_intersection__WEBPACK_IMPORTED_MODULE_0___default()(a, b);\n}\n\n\nfunction filterRedundantWaypoints(waypoints) {\n\n  // alter copy of waypoints, not original\n  waypoints = waypoints.slice();\n\n  var idx = 0,\n      point,\n      previousPoint,\n      nextPoint;\n\n  while (waypoints[idx]) {\n    point = waypoints[idx];\n    previousPoint = waypoints[idx - 1];\n    nextPoint = waypoints[idx + 1];\n\n    if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(point, nextPoint) === 0 ||\n        (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(previousPoint, nextPoint, point)) {\n\n      // remove point, if overlapping with {nextPoint}\n      // or on line with {previousPoint} -> {point} -> {nextPoint}\n      waypoints.splice(idx, 1);\n    } else {\n      idx++;\n    }\n  }\n\n  return waypoints;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/LayoutUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/layout/ManhattanLayout.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/layout/ManhattanLayout.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"connectPoints\": () => (/* binding */ connectPoints),\n/* harmony export */   \"connectRectangles\": () => (/* binding */ connectRectangles),\n/* harmony export */   \"repairConnection\": () => (/* binding */ repairConnection),\n/* harmony export */   \"tryLayoutStraight\": () => (/* binding */ tryLayoutStraight),\n/* harmony export */   \"withoutRedundantPoints\": () => (/* binding */ withoutRedundantPoints)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var _LayoutUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _util_Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n\n\n\n\n\n\nvar MIN_SEGMENT_LENGTH = 20,\n    POINT_ORIENTATION_PADDING = 5;\n\nvar round = Math.round;\n\nvar INTERSECTION_THRESHOLD = 20,\n    ORIENTATION_THRESHOLD = {\n      'h:h': 20,\n      'v:v': 20,\n      'h:v': -10,\n      'v:h': -10\n    };\n\nfunction needsTurn(orientation, startDirection) {\n  return !{\n    t: /top/,\n    r: /right/,\n    b: /bottom/,\n    l: /left/,\n    h: /./,\n    v: /./\n  }[startDirection].test(orientation);\n}\n\nfunction canLayoutStraight(direction, targetOrientation) {\n  return {\n    t: /top/,\n    r: /right/,\n    b: /bottom/,\n    l: /left/,\n    h: /left|right/,\n    v: /top|bottom/\n  }[direction].test(targetOrientation);\n}\n\nfunction getSegmentBendpoints(a, b, directions) {\n  var orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(b, a, POINT_ORIENTATION_PADDING);\n\n  var startDirection = directions.split(':')[0];\n\n  var xmid = round((b.x - a.x) / 2 + a.x),\n      ymid = round((b.y - a.y) / 2 + a.y);\n\n  var segmentEnd, segmentDirections;\n\n  var layoutStraight = canLayoutStraight(startDirection, orientation),\n      layoutHorizontal = /h|r|l/.test(startDirection),\n      layoutTurn = false;\n\n  var turnNextDirections = false;\n\n  if (layoutStraight) {\n    segmentEnd = layoutHorizontal ? { x: xmid, y: a.y } : { x: a.x, y: ymid };\n\n    segmentDirections = layoutHorizontal ? 'h:h' : 'v:v';\n  } else {\n    layoutTurn = needsTurn(orientation, startDirection);\n\n    segmentDirections = layoutHorizontal ? 'h:v' : 'v:h';\n\n    if (layoutTurn) {\n\n      if (layoutHorizontal) {\n        turnNextDirections = ymid === a.y;\n\n        segmentEnd = {\n          x: a.x + MIN_SEGMENT_LENGTH * (/l/.test(startDirection) ? -1 : 1),\n          y: turnNextDirections ? ymid + MIN_SEGMENT_LENGTH : ymid\n        };\n      } else {\n        turnNextDirections = xmid === a.x;\n\n        segmentEnd = {\n          x: turnNextDirections ? xmid + MIN_SEGMENT_LENGTH : xmid,\n          y: a.y + MIN_SEGMENT_LENGTH * (/t/.test(startDirection) ? -1 : 1)\n        };\n      }\n\n    } else {\n      segmentEnd = {\n        x: xmid,\n        y: ymid\n      };\n    }\n  }\n\n  return {\n    waypoints: getBendpoints(a, segmentEnd, segmentDirections).concat(segmentEnd),\n    directions:  segmentDirections,\n    turnNextDirections: turnNextDirections\n  };\n}\n\nfunction getStartSegment(a, b, directions) {\n  return getSegmentBendpoints(a, b, directions);\n}\n\nfunction getEndSegment(a, b, directions) {\n  var invertedSegment = getSegmentBendpoints(b, a, invertDirections(directions));\n\n  return {\n    waypoints: invertedSegment.waypoints.slice().reverse(),\n    directions: invertDirections(invertedSegment.directions),\n    turnNextDirections: invertedSegment.turnNextDirections\n  };\n}\n\nfunction getMidSegment(startSegment, endSegment) {\n\n  var startDirection = startSegment.directions.split(':')[1],\n      endDirection = endSegment.directions.split(':')[0];\n\n  if (startSegment.turnNextDirections) {\n    startDirection = startDirection == 'h' ? 'v' : 'h';\n  }\n\n  if (endSegment.turnNextDirections) {\n    endDirection = endDirection == 'h' ? 'v' : 'h';\n  }\n\n  var directions = startDirection + ':' + endDirection;\n\n  var bendpoints = getBendpoints(\n    startSegment.waypoints[startSegment.waypoints.length - 1],\n    endSegment.waypoints[0],\n    directions\n  );\n\n  return {\n    waypoints: bendpoints,\n    directions: directions\n  };\n}\n\nfunction invertDirections(directions) {\n  return directions.split(':').reverse().join(':');\n}\n\n/**\n * Handle simple layouts with maximum two bendpoints.\n */\nfunction getSimpleBendpoints(a, b, directions) {\n\n  var xmid = round((b.x - a.x) / 2 + a.x),\n      ymid = round((b.y - a.y) / 2 + a.y);\n\n  // one point, right or left from a\n  if (directions === 'h:v') {\n    return [ { x: b.x, y: a.y } ];\n  }\n\n  // one point, above or below a\n  if (directions === 'v:h') {\n    return [ { x: a.x, y: b.y } ];\n  }\n\n  // vertical segment between a and b\n  if (directions === 'h:h') {\n    return [\n      { x: xmid, y: a.y },\n      { x: xmid, y: b.y }\n    ];\n  }\n\n  // horizontal segment between a and b\n  if (directions === 'v:v') {\n    return [\n      { x: a.x, y: ymid },\n      { x: b.x, y: ymid }\n    ];\n  }\n\n  throw new Error('invalid directions: can only handle varians of [hv]:[hv]');\n}\n\n\n/**\n * Returns the mid points for a manhattan connection between two points.\n *\n * @example h:h (horizontal:horizontal)\n *\n * [a]----[x]\n *         |\n *        [x]----[b]\n *\n * @example h:v (horizontal:vertical)\n *\n * [a]----[x]\n *         |\n *        [b]\n *\n * @example h:r (horizontal:right)\n *\n * [a]----[x]\n *         |\n *    [b]-[x]\n *\n * @param  {Point} a\n * @param  {Point} b\n * @param  {string} directions\n *\n * @return {Array<Point>}\n */\nfunction getBendpoints(a, b, directions) {\n  directions = directions || 'h:h';\n\n  if (!isValidDirections(directions)) {\n    throw new Error(\n      'unknown directions: <' + directions + '>: ' +\n      'must be specified as <start>:<end> ' +\n      'with start/end in { h,v,t,r,b,l }'\n    );\n  }\n\n  // compute explicit directions, involving trbl dockings\n  // using a three segmented layouting algorithm\n  if (isExplicitDirections(directions)) {\n    var startSegment = getStartSegment(a, b, directions),\n        endSegment = getEndSegment(a, b, directions),\n        midSegment = getMidSegment(startSegment, endSegment);\n\n    return [].concat(\n      startSegment.waypoints,\n      midSegment.waypoints,\n      endSegment.waypoints\n    );\n  }\n\n  // handle simple [hv]:[hv] cases that can be easily computed\n  return getSimpleBendpoints(a, b, directions);\n}\n\n/**\n * Create a connection between the two points according\n * to the manhattan layout (only horizontal and vertical) edges.\n *\n * @param {Point} a\n * @param {Point} b\n *\n * @param {string} [directions='h:h'] specifies manhattan directions for each point as {adirection}:{bdirection}.\n                   A directionfor a point is either `h` (horizontal) or `v` (vertical)\n *\n * @return {Array<Point>}\n */\nfunction connectPoints(a, b, directions) {\n\n  var points = getBendpoints(a, b, directions);\n\n  points.unshift(a);\n  points.push(b);\n\n  return withoutRedundantPoints(points);\n}\n\n\n/**\n * Connect two rectangles using a manhattan layouted connection.\n *\n * @param {Bounds} source source rectangle\n * @param {Bounds} target target rectangle\n * @param {Point} [start] source docking\n * @param {Point} [end] target docking\n *\n * @param {Object} [hints]\n * @param {string} [hints.preserveDocking=source] preserve docking on selected side\n * @param {Array<string>} [hints.preferredLayouts]\n * @param {Point|boolean} [hints.connectionStart] whether the start changed\n * @param {Point|boolean} [hints.connectionEnd] whether the end changed\n *\n * @return {Array<Point>} connection points\n */\nfunction connectRectangles(source, target, start, end, hints) {\n\n  var preferredLayouts = hints && hints.preferredLayouts || [];\n\n  var preferredLayout = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.without)(preferredLayouts, 'straight')[0] || 'h:h';\n\n  var threshold = ORIENTATION_THRESHOLD[preferredLayout] || 0;\n\n  var orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(source, target, threshold);\n\n  var directions = getDirections(orientation, preferredLayout);\n\n  start = start || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source);\n  end = end || (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(target);\n\n  var directionSplit = directions.split(':');\n\n  // compute actual docking points for start / end\n  // this ensures we properly layout only parts of the\n  // connection that lies in between the two rectangles\n  var startDocking = getDockingPoint(start, source, directionSplit[0], invertOrientation(orientation)),\n      endDocking = getDockingPoint(end, target, directionSplit[1], orientation);\n\n  return connectPoints(startDocking, endDocking, directions);\n}\n\n\n/**\n * Repair the connection between two rectangles, of which one has been updated.\n *\n * @param {Bounds} source\n * @param {Bounds} target\n * @param {Point} [start]\n * @param {Point} [end]\n * @param {Array<Point>} [waypoints]\n * @param {Object} [hints]\n * @param {Array<string>} [hints.preferredLayouts] list of preferred layouts\n * @param {boolean} [hints.connectionStart]\n * @param {boolean} [hints.connectionEnd]\n *\n * @return {Array<Point>} repaired waypoints\n */\nfunction repairConnection(source, target, start, end, waypoints, hints) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_1__.isArray)(start)) {\n    waypoints = start;\n    hints = end;\n\n    start = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(source);\n    end = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getMid)(target);\n  }\n\n  hints = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({ preferredLayouts: [] }, hints);\n  waypoints = waypoints || [];\n\n  var preferredLayouts = hints.preferredLayouts,\n      preferStraight = preferredLayouts.indexOf('straight') !== -1,\n      repairedWaypoints;\n\n  // just layout non-existing or simple connections\n  // attempt to render straight lines, if required\n\n  // attempt to layout a straight line\n  repairedWaypoints = preferStraight && tryLayoutStraight(source, target, start, end, hints);\n\n  if (repairedWaypoints) {\n    return repairedWaypoints;\n  }\n\n  // try to layout from end\n  repairedWaypoints = hints.connectionEnd && tryRepairConnectionEnd(target, source, end, waypoints);\n\n  if (repairedWaypoints) {\n    return repairedWaypoints;\n  }\n\n  // try to layout from start\n  repairedWaypoints = hints.connectionStart && tryRepairConnectionStart(source, target, start, waypoints);\n\n  if (repairedWaypoints) {\n    return repairedWaypoints;\n  }\n\n  // or whether nothing seems to have changed\n  if (!hints.connectionStart && !hints.connectionEnd && waypoints && waypoints.length) {\n    return waypoints;\n  }\n\n  // simply reconnect if nothing else worked\n  return connectRectangles(source, target, start, end, hints);\n}\n\n\nfunction inRange(a, start, end) {\n  return a >= start && a <= end;\n}\n\nfunction isInRange(axis, a, b) {\n  var size = {\n    x: 'width',\n    y: 'height'\n  };\n\n  return inRange(a[axis], b[axis], b[axis] + b[size[axis]]);\n}\n\n/**\n * Layout a straight connection\n *\n * @param {Bounds} source\n * @param {Bounds} target\n * @param {Point} start\n * @param {Point} end\n * @param {Object} [hints]\n *\n * @return {Array<Point>|null} waypoints if straight layout worked\n */\nfunction tryLayoutStraight(source, target, start, end, hints) {\n  var axis = {},\n      primaryAxis,\n      orientation;\n\n  orientation = (0,_LayoutUtil__WEBPACK_IMPORTED_MODULE_0__.getOrientation)(source, target);\n\n  // only layout a straight connection if shapes are\n  // horizontally or vertically aligned\n  if (!/^(top|bottom|left|right)$/.test(orientation)) {\n    return null;\n  }\n\n  if (/top|bottom/.test(orientation)) {\n    primaryAxis = 'x';\n  }\n\n  if (/left|right/.test(orientation)) {\n    primaryAxis = 'y';\n  }\n\n  if (hints.preserveDocking === 'target') {\n\n    if (!isInRange(primaryAxis, end, source)) {\n      return null;\n    }\n\n    axis[primaryAxis] = end[primaryAxis];\n\n    return [\n      {\n        x: axis.x !== undefined ? axis.x : start.x,\n        y: axis.y !== undefined ? axis.y : start.y,\n        original: {\n          x: axis.x !== undefined ? axis.x : start.x,\n          y: axis.y !== undefined ? axis.y : start.y\n        }\n      },\n      {\n        x: end.x,\n        y: end.y\n      }\n    ];\n\n  } else {\n\n    if (!isInRange(primaryAxis, start, target)) {\n      return null;\n    }\n\n    axis[primaryAxis] = start[primaryAxis];\n\n    return [\n      {\n        x: start.x,\n        y: start.y\n      },\n      {\n        x: axis.x !== undefined ? axis.x : end.x,\n        y: axis.y !== undefined ? axis.y : end.y,\n        original: {\n          x: axis.x !== undefined ? axis.x : end.x,\n          y: axis.y !== undefined ? axis.y : end.y\n        }\n      }\n    ];\n  }\n\n}\n\n/**\n * Repair a connection from start.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array<Point>} points originalPoints from moved to other\n *\n * @return {Array<Point>|null} the repaired points between the two rectangles\n */\nfunction tryRepairConnectionStart(moved, other, newDocking, points) {\n  return _tryRepairConnectionSide(moved, other, newDocking, points);\n}\n\n/**\n * Repair a connection from end.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array<Point>} points originalPoints from moved to other\n *\n * @return {Array<Point>|null} the repaired points between the two rectangles\n */\nfunction tryRepairConnectionEnd(moved, other, newDocking, points) {\n  var waypoints = points.slice().reverse();\n\n  waypoints = _tryRepairConnectionSide(moved, other, newDocking, waypoints);\n\n  return waypoints ? waypoints.reverse() : null;\n}\n\n/**\n * Repair a connection from one side that moved.\n *\n * @param {Bounds} moved\n * @param {Bounds} other\n * @param {Point} newDocking\n * @param {Array<Point>} points originalPoints from moved to other\n *\n * @return {Array<Point>} the repaired points between the two rectangles\n */\nfunction _tryRepairConnectionSide(moved, other, newDocking, points) {\n\n  function needsRelayout(points) {\n    if (points.length < 3) {\n      return true;\n    }\n\n    if (points.length > 4) {\n      return false;\n    }\n\n    // relayout if two points overlap\n    // this is most likely due to\n    return !!(0,min_dash__WEBPACK_IMPORTED_MODULE_1__.find)(points, function(p, idx) {\n      var q = points[idx - 1];\n\n      return q && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointDistance)(p, q) < 3;\n    });\n  }\n\n  function repairBendpoint(candidate, oldPeer, newPeer) {\n\n    var alignment = (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(oldPeer, candidate);\n\n    switch (alignment) {\n    case 'v':\n\n      // repair horizontal alignment\n      return { x: newPeer.x, y: candidate.y };\n    case 'h':\n\n      // repair vertical alignment\n      return { x: candidate.x, y: newPeer.y };\n    }\n\n    return { x: candidate.x, y: candidate. y };\n  }\n\n  function removeOverlapping(points, a, b) {\n    var i;\n\n    for (i = points.length - 2; i !== 0; i--) {\n\n      // intersects (?) break, remove all bendpoints up to this one and relayout\n      if ((0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointInRect)(points[i], a, INTERSECTION_THRESHOLD) ||\n          (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointInRect)(points[i], b, INTERSECTION_THRESHOLD)) {\n\n        // return sliced old connection\n        return points.slice(i);\n      }\n    }\n\n    return points;\n  }\n\n  // (0) only repair what has layoutable bendpoints\n\n  // (1) if only one bendpoint and on shape moved onto other shapes axis\n  //     (horizontally / vertically), relayout\n\n  if (needsRelayout(points)) {\n    return null;\n  }\n\n  var oldDocking = points[0],\n      newPoints = points.slice(),\n      slicedPoints;\n\n  // (2) repair only last line segment and only if it was layouted before\n\n  newPoints[0] = newDocking;\n  newPoints[1] = repairBendpoint(newPoints[1], oldDocking, newDocking);\n\n\n  // (3) if shape intersects with any bendpoint after repair,\n  //     remove all segments up to this bendpoint and repair from there\n  slicedPoints = removeOverlapping(newPoints, moved, other);\n\n  if (slicedPoints !== newPoints) {\n    newPoints = _tryRepairConnectionSide(moved, other, newDocking, slicedPoints);\n  }\n\n  // (4) do NOT repair if repaired bendpoints are aligned\n  if (newPoints && (0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsAligned)(newPoints)) {\n    return null;\n  }\n\n  return newPoints;\n}\n\n\n/**\n * Returns the manhattan directions connecting two rectangles\n * with the given orientation.\n *\n * Will always return the default layout, if it is specific\n * regarding sides already (trbl).\n *\n * @example\n *\n * getDirections('top'); // -> 'v:v'\n * getDirections('intersect'); // -> 't:t'\n *\n * getDirections('top-right', 'v:h'); // -> 'v:h'\n * getDirections('top-right', 'h:h'); // -> 'h:h'\n *\n *\n * @param {string} orientation\n * @param {string} defaultLayout\n *\n * @return {string}\n */\nfunction getDirections(orientation, defaultLayout) {\n\n  // don't override specific trbl directions\n  if (isExplicitDirections(defaultLayout)) {\n    return defaultLayout;\n  }\n\n  switch (orientation) {\n  case 'intersect':\n    return 't:t';\n\n  case 'top':\n  case 'bottom':\n    return 'v:v';\n\n  case 'left':\n  case 'right':\n    return 'h:h';\n\n  // 'top-left'\n  // 'top-right'\n  // 'bottom-left'\n  // 'bottom-right'\n  default:\n    return defaultLayout;\n  }\n}\n\nfunction isValidDirections(directions) {\n  return directions && /^h|v|t|r|b|l:h|v|t|r|b|l$/.test(directions);\n}\n\nfunction isExplicitDirections(directions) {\n  return directions && /t|r|b|l/.test(directions);\n}\n\nfunction invertOrientation(orientation) {\n  return {\n    'top': 'bottom',\n    'bottom': 'top',\n    'left': 'right',\n    'right': 'left',\n    'top-left': 'bottom-right',\n    'bottom-right': 'top-left',\n    'top-right': 'bottom-left',\n    'bottom-left': 'top-right',\n  }[orientation];\n}\n\nfunction getDockingPoint(point, rectangle, dockingDirection, targetOrientation) {\n\n  // ensure we end up with a specific docking direction\n  // based on the targetOrientation, if <h|v> is being passed\n\n  if (dockingDirection === 'h') {\n    dockingDirection = /left/.test(targetOrientation) ? 'l' : 'r';\n  }\n\n  if (dockingDirection === 'v') {\n    dockingDirection = /top/.test(targetOrientation) ? 't' : 'b';\n  }\n\n  if (dockingDirection === 't') {\n    return { original: point, x: point.x, y: rectangle.y };\n  }\n\n  if (dockingDirection === 'r') {\n    return { original: point, x: rectangle.x + rectangle.width, y: point.y };\n  }\n\n  if (dockingDirection === 'b') {\n    return { original: point, x: point.x, y: rectangle.y + rectangle.height };\n  }\n\n  if (dockingDirection === 'l') {\n    return { original: point, x: rectangle.x, y: point.y };\n  }\n\n  throw new Error('unexpected dockingDirection: <' + dockingDirection + '>');\n}\n\n\n/**\n * Return list of waypoints with redundant ones filtered out.\n *\n * @example\n *\n * Original points:\n *\n *   [x] ----- [x] ------ [x]\n *                         |\n *                        [x] ----- [x] - [x]\n *\n * Filtered:\n *\n *   [x] ---------------- [x]\n *                         |\n *                        [x] ----------- [x]\n *\n * @param  {Array<Point>} waypoints\n *\n * @return {Array<Point>}\n */\nfunction withoutRedundantPoints(waypoints) {\n  return waypoints.reduce(function(points, p, idx) {\n\n    var previous = points[points.length - 1],\n        next = waypoints[idx + 1];\n\n    if (!(0,_util_Geometry__WEBPACK_IMPORTED_MODULE_2__.pointsOnLine)(previous, next, p, 0)) {\n      points.push(p);\n    }\n\n    return points;\n  }, []);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/layout/ManhattanLayout.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/model/index.js":
  /*!****************************************************!*\
    !*** ./node_modules/diagram-js/lib/model/index.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Base\": () => (/* binding */ Base),\n/* harmony export */   \"Shape\": () => (/* binding */ Shape),\n/* harmony export */   \"Root\": () => (/* binding */ Root),\n/* harmony export */   \"Label\": () => (/* binding */ Label),\n/* harmony export */   \"Connection\": () => (/* binding */ Connection),\n/* harmony export */   \"create\": () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/* harmony import */ var inherits__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(inherits__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! object-refs */ \"./node_modules/object-refs/index.js\");\n/* harmony import */ var object_refs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(object_refs__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\n\n\nvar parentRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'children', enumerable: true, collection: true }, { name: 'parent' }),\n    labelRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'labels', enumerable: true, collection: true }, { name: 'labelTarget' }),\n    attacherRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'attachers', collection: true }, { name: 'host' }),\n    outgoingRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'outgoing', collection: true }, { name: 'source' }),\n    incomingRefs = new (object_refs__WEBPACK_IMPORTED_MODULE_1___default())({ name: 'incoming', collection: true }, { name: 'target' });\n\n/**\n * @namespace djs.model\n */\n\n/**\n * @memberOf djs.model\n */\n\n/**\n * The basic graphical representation\n *\n * @class\n *\n * @abstract\n */\nfunction Base() {\n\n  /**\n   * The object that backs up the shape\n   *\n   * @name Base#businessObject\n   * @type Object\n   */\n  Object.defineProperty(this, 'businessObject', {\n    writable: true\n  });\n\n\n  /**\n   * Single label support, will mapped to multi label array\n   *\n   * @name Base#label\n   * @type Object\n   */\n  Object.defineProperty(this, 'label', {\n    get: function() {\n      return this.labels[0];\n    },\n    set: function(newLabel) {\n\n      var label = this.label,\n          labels = this.labels;\n\n      if (!newLabel && label) {\n        labels.remove(label);\n      } else {\n        labels.add(newLabel, 0);\n      }\n    }\n  });\n\n  /**\n   * The parent shape\n   *\n   * @name Base#parent\n   * @type Shape\n   */\n  parentRefs.bind(this, 'parent');\n\n  /**\n   * The list of labels\n   *\n   * @name Base#labels\n   * @type Label\n   */\n  labelRefs.bind(this, 'labels');\n\n  /**\n   * The list of outgoing connections\n   *\n   * @name Base#outgoing\n   * @type Array<Connection>\n   */\n  outgoingRefs.bind(this, 'outgoing');\n\n  /**\n   * The list of incoming connections\n   *\n   * @name Base#incoming\n   * @type Array<Connection>\n   */\n  incomingRefs.bind(this, 'incoming');\n}\n\n\n/**\n * A graphical object\n *\n * @class\n * @constructor\n *\n * @extends Base\n */\nfunction Shape() {\n  Base.call(this);\n\n  /**\n   * Indicates frame shapes\n   *\n   * @name Shape#isFrame\n   * @type boolean\n   */\n\n  /**\n   * The list of children\n   *\n   * @name Shape#children\n   * @type Array<Base>\n   */\n  parentRefs.bind(this, 'children');\n\n  /**\n   * @name Shape#host\n   * @type Shape\n   */\n  attacherRefs.bind(this, 'host');\n\n  /**\n   * @name Shape#attachers\n   * @type Shape\n   */\n  attacherRefs.bind(this, 'attachers');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Shape, Base);\n\n\n/**\n * A root graphical object\n *\n * @class\n * @constructor\n *\n * @extends Shape\n */\nfunction Root() {\n  Shape.call(this);\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Root, Shape);\n\n\n/**\n * A label for an element\n *\n * @class\n * @constructor\n *\n * @extends Shape\n */\nfunction Label() {\n  Shape.call(this);\n\n  /**\n   * The labeled element\n   *\n   * @name Label#labelTarget\n   * @type Base\n   */\n  labelRefs.bind(this, 'labelTarget');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Label, Shape);\n\n\n/**\n * A connection between two elements\n *\n * @class\n * @constructor\n *\n * @extends Base\n */\nfunction Connection() {\n  Base.call(this);\n\n  /**\n   * The element this connection originates from\n   *\n   * @name Connection#source\n   * @type Base\n   */\n  outgoingRefs.bind(this, 'source');\n\n  /**\n   * The element this connection points to\n   *\n   * @name Connection#target\n   * @type Base\n   */\n  incomingRefs.bind(this, 'target');\n}\n\ninherits__WEBPACK_IMPORTED_MODULE_0___default()(Connection, Base);\n\n\nvar types = {\n  connection: Connection,\n  shape: Shape,\n  label: Label,\n  root: Root\n};\n\n/**\n * Creates a new model element of the specified type\n *\n * @method create\n *\n * @example\n *\n * var shape1 = Model.create('shape', { x: 10, y: 10, width: 100, height: 100 });\n * var shape2 = Model.create('shape', { x: 210, y: 210, width: 100, height: 100 });\n *\n * var connection = Model.create('connection', { waypoints: [ { x: 110, y: 55 }, {x: 210, y: 55 } ] });\n *\n * @param  {string} type lower-cased model name\n * @param  {Object} attrs attributes to initialize the new model instance with\n *\n * @return {Base} the new model instance\n */\nfunction create(type, attrs) {\n  var Type = types[type];\n  if (!Type) {\n    throw new Error('unknown type: <' + type + '>');\n  }\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(new Type(), attrs);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/model/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js ***!
    \******************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ KeyboardMove)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\nvar DEFAULT_CONFIG = {\n  moveSpeed: 50,\n  moveSpeedAccelerated: 200\n};\n\n\n/**\n * A feature that allows users to move the canvas using the keyboard.\n *\n * @param {Object} config\n * @param {number} [config.moveSpeed=50]\n * @param {number} [config.moveSpeedAccelerated=200]\n * @param {Keyboard} keyboard\n * @param {Canvas} canvas\n */\nfunction KeyboardMove(\n    config,\n    keyboard,\n    canvas\n) {\n\n  var self = this;\n\n  this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, DEFAULT_CONFIG, config || {});\n\n  keyboard.addListener(arrowsListener);\n\n\n  function arrowsListener(context) {\n\n    var event = context.keyEvent,\n        config = self._config;\n\n    if (!keyboard.isCmd(event)) {\n      return;\n    }\n\n    if (keyboard.isKey([\n      'ArrowLeft', 'Left',\n      'ArrowUp', 'Up',\n      'ArrowDown', 'Down',\n      'ArrowRight', 'Right'\n    ], event)) {\n\n      var speed = (\n        keyboard.isShift(event) ?\n          config.moveSpeedAccelerated :\n          config.moveSpeed\n      );\n\n      var direction;\n\n      switch (event.key) {\n      case 'ArrowLeft':\n      case 'Left':\n        direction = 'left';\n        break;\n      case 'ArrowUp':\n      case 'Up':\n        direction = 'up';\n        break;\n      case 'ArrowRight':\n      case 'Right':\n        direction = 'right';\n        break;\n      case 'ArrowDown':\n      case 'Down':\n        direction = 'down';\n        break;\n      }\n\n      self.moveCanvas({\n        speed: speed,\n        direction: direction\n      });\n\n      return true;\n    }\n  }\n\n  this.moveCanvas = function(opts) {\n\n    var dx = 0,\n        dy = 0,\n        speed = opts.speed;\n\n    var actualSpeed = speed / Math.min(Math.sqrt(canvas.viewbox().scale), 1);\n\n    switch (opts.direction) {\n    case 'left': // Left\n      dx = actualSpeed;\n      break;\n    case 'up': // Up\n      dy = actualSpeed;\n      break;\n    case 'right': // Right\n      dx = -actualSpeed;\n      break;\n    case 'down': // Down\n      dy = -actualSpeed;\n      break;\n    }\n\n    canvas.scroll({\n      dx: dx,\n      dy: dy\n    });\n  };\n\n}\n\n\nKeyboardMove.$inject = [\n  'config.keyboardMove',\n  'keyboard',\n  'canvas'\n];\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/keyboard-move/index.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/keyboard-move/index.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _features_keyboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../features/keyboard */ \"./node_modules/diagram-js/lib/features/keyboard/index.js\");\n/* harmony import */ var _KeyboardMove__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./KeyboardMove */ \"./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js\");\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _features_keyboard__WEBPACK_IMPORTED_MODULE_0__.default\n  ],\n  __init__: [ 'keyboardMove' ],\n  keyboardMove: [ 'type', _KeyboardMove__WEBPACK_IMPORTED_MODULE_1__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/keyboard-move/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ MoveCanvas)\n/* harmony export */ });\n/* harmony import */ var _util_Cursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Cursor */ \"./node_modules/diagram-js/lib/util/Cursor.js\");\n/* harmony import */ var _util_ClickTrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../util/ClickTrap */ \"./node_modules/diagram-js/lib/util/ClickTrap.js\");\n/* harmony import */ var _util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../util/PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _util_Event__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n\n\n\n\n\n\n\n\n\n\n\nvar THRESHOLD = 15;\n\n\n/**\n * Move the canvas via mouse.\n *\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction MoveCanvas(eventBus, canvas) {\n\n  var context;\n\n\n  // listen for move on element mouse down;\n  // allow others to hook into the event before us though\n  // (dragging / element moving will do this)\n  eventBus.on('element.mousedown', 500, function(e) {\n    return handleStart(e.originalEvent);\n  });\n\n\n  function handleMove(event) {\n\n    var start = context.start,\n        button = context.button,\n        position = (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event),\n        delta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__.delta)(position, start);\n\n    if (!context.dragging && length(delta) > THRESHOLD) {\n      context.dragging = true;\n\n      if (button === 0) {\n        (0,_util_ClickTrap__WEBPACK_IMPORTED_MODULE_2__.install)(eventBus);\n      }\n\n      (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.set)('grab');\n    }\n\n    if (context.dragging) {\n\n      var lastPosition = context.last || context.start;\n\n      delta = (0,_util_PositionUtil__WEBPACK_IMPORTED_MODULE_1__.delta)(position, lastPosition);\n\n      canvas.scroll({\n        dx: delta.x,\n        dy: delta.y\n      });\n\n      context.last = position;\n    }\n\n    // prevent select\n    event.preventDefault();\n  }\n\n\n  function handleEnd(event) {\n    min_dom__WEBPACK_IMPORTED_MODULE_4__.event.unbind(document, 'mousemove', handleMove);\n    min_dom__WEBPACK_IMPORTED_MODULE_4__.event.unbind(document, 'mouseup', handleEnd);\n\n    context = null;\n\n    (0,_util_Cursor__WEBPACK_IMPORTED_MODULE_3__.unset)();\n  }\n\n  function handleStart(event) {\n\n    // event is already handled by '.djs-draggable'\n    if ((0,min_dom__WEBPACK_IMPORTED_MODULE_4__.closest)(event.target, '.djs-draggable')) {\n      return;\n    }\n\n    var button = event.button;\n\n    // reject right mouse button or modifier key\n    if (button >= 2 || event.ctrlKey || event.shiftKey || event.altKey) {\n      return;\n    }\n\n    context = {\n      button: button,\n      start: (0,_util_Event__WEBPACK_IMPORTED_MODULE_0__.toPoint)(event)\n    };\n\n    min_dom__WEBPACK_IMPORTED_MODULE_4__.event.bind(document, 'mousemove', handleMove);\n    min_dom__WEBPACK_IMPORTED_MODULE_4__.event.bind(document, 'mouseup', handleEnd);\n\n    // we've handled the event\n    return true;\n  }\n\n  this.isActive = function() {\n    return !!context;\n  };\n\n}\n\n\nMoveCanvas.$inject = [\n  'eventBus',\n  'canvas'\n];\n\n\n\n// helpers ///////\n\nfunction length(point) {\n  return Math.sqrt(Math.pow(point.x, 2) + Math.pow(point.y, 2));\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/movecanvas/index.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/movecanvas/index.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MoveCanvas__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MoveCanvas */ \"./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'moveCanvas' ],\n  moveCanvas: [ 'type', _MoveCanvas__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/movecanvas/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/touch/index.js":
  /*!***************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/touch/index.js ***!
    \***************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _features_touch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../features/touch */ \"./node_modules/diagram-js/lib/features/touch/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __depends__: [\n    _features_touch__WEBPACK_IMPORTED_MODULE_0__.default\n  ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/touch/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js ***!
    \*************************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ZoomScroll)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var _ZoomUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ZoomUtil */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js\");\n/* harmony import */ var _util_Math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../util/Math */ \"./node_modules/diagram-js/lib/util/Math.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n\n\n\n\n\nvar sign = Math.sign || function(n) {\n  return n >= 0 ? 1 : -1;\n};\n\nvar RANGE = { min: 0.2, max: 4 },\n    NUM_STEPS = 10;\n\nvar DELTA_THRESHOLD = 0.1;\n\nvar DEFAULT_SCALE = 0.75;\n\n/**\n * An implementation of zooming and scrolling within the\n * {@link Canvas} via the mouse wheel.\n *\n * Mouse wheel zooming / scrolling may be disabled using\n * the {@link toggle(enabled)} method.\n *\n * @param {Object} [config]\n * @param {boolean} [config.enabled=true] default enabled state\n * @param {number} [config.scale=.75] scroll sensivity\n * @param {EventBus} eventBus\n * @param {Canvas} canvas\n */\nfunction ZoomScroll(config, eventBus, canvas) {\n\n  config = config || {};\n\n  this._enabled = false;\n\n  this._canvas = canvas;\n  this._container = canvas._container;\n\n  this._handleWheel = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this._handleWheel, this);\n\n  this._totalDelta = 0;\n  this._scale = config.scale || DEFAULT_SCALE;\n\n  var self = this;\n\n  eventBus.on('canvas.init', function(e) {\n    self._init(config.enabled !== false);\n  });\n}\n\nZoomScroll.$inject = [\n  'config.zoomScroll',\n  'eventBus',\n  'canvas'\n];\n\nZoomScroll.prototype.scroll = function scroll(delta) {\n  this._canvas.scroll(delta);\n};\n\n\nZoomScroll.prototype.reset = function reset() {\n  this._canvas.zoom('fit-viewport');\n};\n\n/**\n * Zoom depending on delta.\n *\n * @param {number} delta\n * @param {Object} position\n */\nZoomScroll.prototype.zoom = function zoom(delta, position) {\n\n  // zoom with half the step size of stepZoom\n  var stepSize = (0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.getStepSize)(RANGE, NUM_STEPS * 2);\n\n  // add until threshold reached\n  this._totalDelta += delta;\n\n  if (Math.abs(this._totalDelta) > DELTA_THRESHOLD) {\n    this._zoom(delta, position, stepSize);\n\n    // reset\n    this._totalDelta = 0;\n  }\n};\n\n\nZoomScroll.prototype._handleWheel = function handleWheel(event) {\n\n  // event is already handled by '.djs-scrollable'\n  if ((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.closest)(event.target, '.djs-scrollable', true)) {\n    return;\n  }\n\n  var element = this._container;\n\n  event.preventDefault();\n\n  // pinch to zoom is mapped to wheel + ctrlKey = true\n  // in modern browsers (!)\n\n  var isZoom = event.ctrlKey;\n\n  var isHorizontalScroll = event.shiftKey;\n\n  var factor = -1 * this._scale,\n      delta;\n\n  if (isZoom) {\n    factor *= event.deltaMode === 0 ? 0.020 : 0.32;\n  } else {\n    factor *= event.deltaMode === 0 ? 1.0 : 16.0;\n  }\n\n  if (isZoom) {\n    var elementRect = element.getBoundingClientRect();\n\n    var offset = {\n      x: event.clientX - elementRect.left,\n      y: event.clientY - elementRect.top\n    };\n\n    delta = (\n      Math.sqrt(\n        Math.pow(event.deltaY, 2) +\n        Math.pow(event.deltaX, 2)\n      ) * sign(event.deltaY) * factor\n    );\n\n    // zoom in relative to diagram {x,y} coordinates\n    this.zoom(delta, offset);\n  } else {\n\n    if (isHorizontalScroll) {\n      delta = {\n        dx: factor * event.deltaY,\n        dy: 0\n      };\n    } else {\n      delta = {\n        dx: factor * event.deltaX,\n        dy: factor * event.deltaY\n      };\n    }\n\n    this.scroll(delta);\n  }\n};\n\n/**\n * Zoom with fixed step size.\n *\n * @param {number} delta - Zoom delta (1 for zooming in, -1 for out).\n * @param {Object} position\n */\nZoomScroll.prototype.stepZoom = function stepZoom(delta, position) {\n\n  var stepSize = (0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.getStepSize)(RANGE, NUM_STEPS);\n\n  this._zoom(delta, position, stepSize);\n};\n\n\n/**\n * Zoom in/out given a step size.\n *\n * @param {number} delta\n * @param {Object} position\n * @param {number} stepSize\n */\nZoomScroll.prototype._zoom = function(delta, position, stepSize) {\n  var canvas = this._canvas;\n\n  var direction = delta > 0 ? 1 : -1;\n\n  var currentLinearZoomLevel = (0,_util_Math__WEBPACK_IMPORTED_MODULE_3__.log10)(canvas.zoom());\n\n  // snap to a proximate zoom step\n  var newLinearZoomLevel = Math.round(currentLinearZoomLevel / stepSize) * stepSize;\n\n  // increase or decrease one zoom step in the given direction\n  newLinearZoomLevel += stepSize * direction;\n\n  // calculate the absolute logarithmic zoom level based on the linear zoom level\n  // (e.g. 2 for an absolute x2 zoom)\n  var newLogZoomLevel = Math.pow(10, newLinearZoomLevel);\n\n  canvas.zoom((0,_ZoomUtil__WEBPACK_IMPORTED_MODULE_1__.cap)(RANGE, newLogZoomLevel), position);\n};\n\n\n/**\n * Toggle the zoom scroll ability via mouse wheel.\n *\n * @param  {boolean} [newEnabled] new enabled state\n */\nZoomScroll.prototype.toggle = function toggle(newEnabled) {\n\n  var element = this._container;\n  var handleWheel = this._handleWheel;\n\n  var oldEnabled = this._enabled;\n\n  if (typeof newEnabled === 'undefined') {\n    newEnabled = !oldEnabled;\n  }\n\n  // only react on actual changes\n  if (oldEnabled !== newEnabled) {\n\n    // add or remove wheel listener based on\n    // changed enabled state\n    min_dom__WEBPACK_IMPORTED_MODULE_2__.event[newEnabled ? 'bind' : 'unbind'](element, 'wheel', handleWheel, false);\n  }\n\n  this._enabled = newEnabled;\n\n  return newEnabled;\n};\n\n\nZoomScroll.prototype._init = function(newEnabled) {\n  this.toggle(newEnabled);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js ***!
    \***********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getStepSize\": () => (/* binding */ getStepSize),\n/* harmony export */   \"cap\": () => (/* binding */ cap)\n/* harmony export */ });\n/* harmony import */ var _util_Math__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../util/Math */ \"./node_modules/diagram-js/lib/util/Math.js\");\n\n\n/**\n * Get step size for given range and number of steps.\n *\n * @param {Object} range\n * @param {number} range.min\n * @param {number} range.max\n */\nfunction getStepSize(range, steps) {\n\n  var minLinearRange = (0,_util_Math__WEBPACK_IMPORTED_MODULE_0__.log10)(range.min),\n      maxLinearRange = (0,_util_Math__WEBPACK_IMPORTED_MODULE_0__.log10)(range.max);\n\n  var absoluteLinearRange = Math.abs(minLinearRange) + Math.abs(maxLinearRange);\n\n  return absoluteLinearRange / steps;\n}\n\nfunction cap(range, scale) {\n  return Math.max(range.min, Math.min(range.max, scale));\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/navigation/zoomscroll/index.js":
  /*!********************************************************************!*\
    !*** ./node_modules/diagram-js/lib/navigation/zoomscroll/index.js ***!
    \********************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ZoomScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ZoomScroll */ \"./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  __init__: [ 'zoomScroll' ],\n  zoomScroll: [ 'type', _ZoomScroll__WEBPACK_IMPORTED_MODULE_0__.default ]\n});\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/navigation/zoomscroll/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/AttachUtil.js":
  /*!********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/AttachUtil.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getNewAttachPoint\": () => (/* binding */ getNewAttachPoint),\n/* harmony export */   \"getNewAttachShapeDelta\": () => (/* binding */ getNewAttachShapeDelta)\n/* harmony export */ });\n/* harmony import */ var _layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../layout/LayoutUtil */ \"./node_modules/diagram-js/lib/layout/LayoutUtil.js\");\n/* harmony import */ var _PositionUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n\n\n\n\n\n/**\n * Calculates the absolute point relative to the new element's position\n *\n * @param {point} point [absolute]\n * @param {bounds} oldBounds\n * @param {bounds} newBounds\n *\n * @return {point} point [absolute]\n */\nfunction getNewAttachPoint(point, oldBounds, newBounds) {\n  var oldCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(oldBounds),\n      newCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(newBounds),\n      oldDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(point, oldCenter);\n\n  var newDelta = {\n    x: oldDelta.x * (newBounds.width / oldBounds.width),\n    y: oldDelta.y * (newBounds.height / oldBounds.height)\n  };\n\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundPoint)({\n    x: newCenter.x + newDelta.x,\n    y: newCenter.y + newDelta.y\n  });\n}\n\n\n/**\n * Calculates the shape's delta relative to a new position\n * of a certain element's bounds\n *\n * @param {djs.model.Shape} point [absolute]\n * @param {bounds} oldBounds\n * @param {bounds} newBounds\n *\n * @return {delta} delta\n */\nfunction getNewAttachShapeDelta(shape, oldBounds, newBounds) {\n  var shapeCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(shape),\n      oldCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(oldBounds),\n      newCenter = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.center)(newBounds),\n      shapeDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(shape, shapeCenter),\n      oldCenterDelta = (0,_PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)(shapeCenter, oldCenter),\n      stickyPositionDelta = getStickyPositionDelta(shapeCenter, oldBounds, newBounds);\n\n  if (stickyPositionDelta) {\n    return stickyPositionDelta;\n  }\n\n  var newCenterDelta = {\n    x: oldCenterDelta.x * (newBounds.width / oldBounds.width),\n    y: oldCenterDelta.y * (newBounds.height / oldBounds.height)\n  };\n\n  var newShapeCenter = {\n    x: newCenter.x + newCenterDelta.x,\n    y: newCenter.y + newCenterDelta.y\n  };\n\n  return (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.roundPoint)({\n    x: newShapeCenter.x + shapeDelta.x - shape.x,\n    y: newShapeCenter.y + shapeDelta.y - shape.y\n  });\n}\n\nfunction getStickyPositionDelta(oldShapeCenter, oldBounds, newBounds) {\n  var oldTRBL = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(oldBounds),\n      newTRBL = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.asTRBL)(newBounds);\n\n  if (isMoved(oldTRBL, newTRBL)) {\n    return null;\n  }\n\n  var oldOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(oldBounds, oldShapeCenter),\n      stickyPositionDelta,\n      newShapeCenter,\n      newOrientation;\n\n  if (oldOrientation === 'top') {\n    stickyPositionDelta = {\n      x: 0,\n      y: newTRBL.bottom - oldTRBL.bottom\n    };\n  } else if (oldOrientation === 'bottom') {\n    stickyPositionDelta = {\n      x: 0,\n      y: newTRBL.top - oldTRBL.top\n    };\n  } else if (oldOrientation === 'right') {\n    stickyPositionDelta = {\n      x: newTRBL.left - oldTRBL.left,\n      y: 0\n    };\n  } else if (oldOrientation === 'left') {\n    stickyPositionDelta = {\n      x: newTRBL.right - oldTRBL.right,\n      y: 0\n    };\n  } else {\n\n    // fallback to proportional movement for corner-placed attachments\n    return null;\n  }\n\n  newShapeCenter = {\n    x: oldShapeCenter.x + stickyPositionDelta.x,\n    y: oldShapeCenter.y + stickyPositionDelta.y\n  };\n\n  newOrientation = (0,_layout_LayoutUtil__WEBPACK_IMPORTED_MODULE_1__.getOrientation)(newBounds, newShapeCenter);\n\n  if (newOrientation !== oldOrientation) {\n\n    // fallback to proportional movement if orientation would otherwise change\n    return null;\n  }\n\n  return stickyPositionDelta;\n}\n\nfunction isMoved(oldTRBL, newTRBL) {\n  return isHorizontallyMoved(oldTRBL, newTRBL) || isVerticallyMoved(oldTRBL, newTRBL);\n}\n\nfunction isHorizontallyMoved(oldTRBL, newTRBL) {\n  return oldTRBL.right !== newTRBL.right && oldTRBL.left !== newTRBL.left;\n}\n\nfunction isVerticallyMoved(oldTRBL, newTRBL) {\n  return oldTRBL.top !== newTRBL.top && oldTRBL.bottom !== newTRBL.bottom;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/AttachUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/ClickTrap.js":
  /*!*******************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/ClickTrap.js ***!
    \*******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"install\": () => (/* binding */ install)\n/* harmony export */ });\nvar TRAP_PRIORITY = 5000;\n\n/**\n * Installs a click trap that prevents a ghost click following a dragging operation.\n *\n * @return {Function} a function to immediately remove the installed trap.\n */\nfunction install(eventBus, eventName) {\n\n  eventName = eventName || 'element.click';\n\n  function trap() {\n    return false;\n  }\n\n  eventBus.once(eventName, TRAP_PRIORITY, trap);\n\n  return function() {\n    eventBus.off(eventName, trap);\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/ClickTrap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Collections.js":
  /*!*********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Collections.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"remove\": () => (/* binding */ remove),\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"indexOf\": () => (/* binding */ indexOf)\n/* harmony export */ });\n/**\n * Failsafe remove an element from a collection\n *\n * @param  {Array<Object>} [collection]\n * @param  {Object} [element]\n *\n * @return {number} the previous index of the element\n */\nfunction remove(collection, element) {\n\n  if (!collection || !element) {\n    return -1;\n  }\n\n  var idx = collection.indexOf(element);\n\n  if (idx !== -1) {\n    collection.splice(idx, 1);\n  }\n\n  return idx;\n}\n\n/**\n * Fail save add an element to the given connection, ensuring\n * it does not yet exist.\n *\n * @param {Array<Object>} collection\n * @param {Object} element\n * @param {number} idx\n */\nfunction add(collection, element, idx) {\n\n  if (!collection || !element) {\n    return;\n  }\n\n  if (typeof idx !== 'number') {\n    idx = -1;\n  }\n\n  var currentIdx = collection.indexOf(element);\n\n  if (currentIdx !== -1) {\n\n    if (currentIdx === idx) {\n\n      // nothing to do, position has not changed\n      return;\n    } else {\n\n      if (idx !== -1) {\n\n        // remove from current position\n        collection.splice(currentIdx, 1);\n      } else {\n\n        // already exists in collection\n        return;\n      }\n    }\n  }\n\n  if (idx !== -1) {\n\n    // insert at specified position\n    collection.splice(idx, 0, element);\n  } else {\n\n    // push to end\n    collection.push(element);\n  }\n}\n\n\n/**\n * Fail save get the index of an element in a collection.\n *\n * @param {Array<Object>} collection\n * @param {Object} element\n *\n * @return {number} the index or -1 if collection or element do\n *                  not exist or the element is not contained.\n */\nfunction indexOf(collection, element) {\n\n  if (!collection || !element) {\n    return -1;\n  }\n\n  return collection.indexOf(element);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Collections.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Cursor.js":
  /*!****************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Cursor.js ***!
    \****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"unset\": () => (/* binding */ unset),\n/* harmony export */   \"has\": () => (/* binding */ has)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n\n\nvar CURSOR_CLS_PATTERN = /^djs-cursor-.*$/;\n\n\nfunction set(mode) {\n  var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(document.body);\n\n  classes.removeMatching(CURSOR_CLS_PATTERN);\n\n  if (mode) {\n    classes.add('djs-cursor-' + mode);\n  }\n}\n\nfunction unset() {\n  set(null);\n}\n\nfunction has(mode) {\n  var classes = (0,min_dom__WEBPACK_IMPORTED_MODULE_0__.classes)(document.body);\n\n  return classes.has('djs-cursor-' + mode);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Cursor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Elements.js":
  /*!******************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Elements.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getParents\": () => (/* binding */ getParents),\n/* harmony export */   \"add\": () => (/* binding */ add),\n/* harmony export */   \"eachElement\": () => (/* binding */ eachElement),\n/* harmony export */   \"selfAndChildren\": () => (/* binding */ selfAndChildren),\n/* harmony export */   \"selfAndDirectChildren\": () => (/* binding */ selfAndDirectChildren),\n/* harmony export */   \"selfAndAllChildren\": () => (/* binding */ selfAndAllChildren),\n/* harmony export */   \"getClosure\": () => (/* binding */ getClosure),\n/* harmony export */   \"getBBox\": () => (/* binding */ getBBox),\n/* harmony export */   \"getEnclosedElements\": () => (/* binding */ getEnclosedElements),\n/* harmony export */   \"getType\": () => (/* binding */ getType),\n/* harmony export */   \"isFrameElement\": () => (/* binding */ isFrameElement)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n\n/**\n * Get parent elements.\n *\n * @param {Array<djs.model.base>} elements\n *\n * @returns {Array<djs.model.Base>}\n */\nfunction getParents(elements) {\n\n  // find elements that are not children of any other elements\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.filter)(elements, function(element) {\n    return !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.find)(elements, function(e) {\n      return e !== element && getParent(element, e);\n    });\n  });\n}\n\n\nfunction getParent(element, parent) {\n  if (!parent) {\n    return;\n  }\n\n  if (element === parent) {\n    return parent;\n  }\n\n  if (!element.parent) {\n    return;\n  }\n\n  return getParent(element.parent, parent);\n}\n\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array<Object>} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n  var canAdd = !unique || elements.indexOf(e) === -1;\n\n  if (canAdd) {\n    elements.push(e);\n  }\n\n  return canAdd;\n}\n\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param  {Object|Array<Object>} elements\n * @param  {Function} fn iterator function called with (element, index, recursionDepth)\n * @param  {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n\n  depth = depth || 0;\n\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [ elements ];\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(s, i) {\n    var filter = fn(s, i, depth);\n\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(filter) && filter.length) {\n      eachElement(filter, fn, depth + 1);\n    }\n  });\n}\n\n\n/**\n * Collects self + child elements up to a given depth from a list of elements.\n *\n * @param  {djs.model.Base|Array<djs.model.Base>} elements the elements to select the children from\n * @param  {boolean} unique whether to return a unique result set (no duplicates)\n * @param  {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array<djs.model.Base>} found elements\n */\nfunction selfAndChildren(elements, unique, maxDepth) {\n  var result = [],\n      processedChildren = [];\n\n  eachElement(elements, function(element, i, depth) {\n    add(result, element, unique);\n\n    var children = element.children;\n\n    // max traversal depth not reached yet\n    if (maxDepth === -1 || depth < maxDepth) {\n\n      // children exist && children not yet processed\n      if (children && add(processedChildren, children, unique)) {\n        return children;\n      }\n    }\n  });\n\n  return result;\n}\n\n/**\n * Return self + direct children for a number of elements\n *\n * @param  {Array<djs.model.Base>} elements to query\n * @param  {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array<djs.model.Base>} the collected elements\n */\nfunction selfAndDirectChildren(elements, allowDuplicates) {\n  return selfAndChildren(elements, !allowDuplicates, 1);\n}\n\n\n/**\n * Return self + ALL children for a number of elements\n *\n * @param  {Array<djs.model.Base>} elements to query\n * @param  {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array<djs.model.Base>} the collected elements\n */\nfunction selfAndAllChildren(elements, allowDuplicates) {\n  return selfAndChildren(elements, !allowDuplicates, -1);\n}\n\n\n/**\n * Gets the the closure for all selected elements,\n * their enclosed children and connections.\n *\n * @param {Array<djs.model.Base>} elements\n * @param {boolean} [isTopLevel=true]\n * @param {Object} [existingClosure]\n *\n * @return {Object} newClosure\n */\nfunction getClosure(elements, isTopLevel, closure) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isUndefined)(isTopLevel)) {\n    isTopLevel = true;\n  }\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(isTopLevel)) {\n    closure = isTopLevel;\n    isTopLevel = true;\n  }\n\n\n  closure = closure || {};\n\n  var allShapes = copyObject(closure.allShapes),\n      allConnections = copyObject(closure.allConnections),\n      enclosedElements = copyObject(closure.enclosedElements),\n      enclosedConnections = copyObject(closure.enclosedConnections);\n\n  var topLevel = copyObject(\n    closure.topLevel,\n    isTopLevel && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.groupBy)(elements, function(e) { return e.id; })\n  );\n\n\n  function handleConnection(c) {\n    if (topLevel[c.source.id] && topLevel[c.target.id]) {\n      topLevel[c.id] = [ c ];\n    }\n\n    // not enclosed as a child, but maybe logically\n    // (connecting two moved elements?)\n    if (allShapes[c.source.id] && allShapes[c.target.id]) {\n      enclosedConnections[c.id] = enclosedElements[c.id] = c;\n    }\n\n    allConnections[c.id] = c;\n  }\n\n  function handleElement(element) {\n\n    enclosedElements[element.id] = element;\n\n    if (element.waypoints) {\n\n      // remember connection\n      enclosedConnections[element.id] = allConnections[element.id] = element;\n    } else {\n\n      // remember shape\n      allShapes[element.id] = element;\n\n      // remember all connections\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.incoming, handleConnection);\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(element.outgoing, handleConnection);\n\n      // recurse into children\n      return element.children;\n    }\n  }\n\n  eachElement(elements, handleElement);\n\n  return {\n    allShapes: allShapes,\n    allConnections: allConnections,\n    topLevel: topLevel,\n    enclosedConnections: enclosedConnections,\n    enclosedElements: enclosedElements\n  };\n}\n\n/**\n * Returns the surrounding bbox for all elements in\n * the array or the element primitive.\n *\n * @param {Array<djs.model.Shape>|djs.model.Shape} elements\n * @param {boolean} stopRecursion\n */\nfunction getBBox(elements, stopRecursion) {\n\n  stopRecursion = !!stopRecursion;\n  if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(elements)) {\n    elements = [elements];\n  }\n\n  var minX,\n      minY,\n      maxX,\n      maxY;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    // If element is a connection the bbox must be computed first\n    var bbox = element;\n    if (element.waypoints && !stopRecursion) {\n      bbox = getBBox(element.waypoints, true);\n    }\n\n    var x = bbox.x,\n        y = bbox.y,\n        height = bbox.height || 0,\n        width = bbox.width || 0;\n\n    if (x < minX || minX === undefined) {\n      minX = x;\n    }\n    if (y < minY || minY === undefined) {\n      minY = y;\n    }\n\n    if ((x + width) > maxX || maxX === undefined) {\n      maxX = x + width;\n    }\n    if ((y + height) > maxY || maxY === undefined) {\n      maxY = y + height;\n    }\n  });\n\n  return {\n    x: minX,\n    y: minY,\n    height: maxY - minY,\n    width: maxX - minX\n  };\n}\n\n\n/**\n * Returns all elements that are enclosed from the bounding box.\n *\n *   * If bbox.(width|height) is not specified the method returns\n *     all elements with element.x/y > bbox.x/y\n *   * If only bbox.x or bbox.y is specified, method return all elements with\n *     e.x > bbox.x or e.y > bbox.y\n *\n * @param {Array<djs.model.Shape>} elements List of Elements to search through\n * @param {djs.model.Shape} bbox the enclosing bbox.\n *\n * @return {Array<djs.model.Shape>} enclosed elements\n */\nfunction getEnclosedElements(elements, bbox) {\n\n  var filteredElements = {};\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(elements, function(element) {\n\n    var e = element;\n\n    if (e.waypoints) {\n      e = getBBox(e);\n    }\n\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.y) && (e.x > bbox.x)) {\n      filteredElements[element.id] = element;\n    }\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.x) && (e.y > bbox.y)) {\n      filteredElements[element.id] = element;\n    }\n    if (e.x > bbox.x && e.y > bbox.y) {\n      if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.width) && (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.height) &&\n          e.width + e.x < bbox.width + bbox.x &&\n          e.height + e.y < bbox.height + bbox.y) {\n\n        filteredElements[element.id] = element;\n      } else if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.width) || !(0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isNumber)(bbox.height)) {\n        filteredElements[element.id] = element;\n      }\n    }\n  });\n\n  return filteredElements;\n}\n\n\nfunction getType(element) {\n\n  if ('waypoints' in element) {\n    return 'connection';\n  }\n\n  if ('x' in element) {\n    return 'shape';\n  }\n\n  return 'root';\n}\n\nfunction isFrameElement(element) {\n\n  return !!(element && element.isFrame);\n}\n\n// helpers ///////////////////////////////\n\nfunction copyObject(src1, src2) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, src1 || {}, src2 || {});\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Elements.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/EscapeUtil.js":
  /*!********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/EscapeUtil.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"escapeCSS\": () => (/* reexport default from dynamic */ css_escape__WEBPACK_IMPORTED_MODULE_0___default.a),\n/* harmony export */   \"escapeHTML\": () => (/* binding */ escapeHTML)\n/* harmony export */ });\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! css.escape */ \"./node_modules/css.escape/css.escape.js\");\n/* harmony import */ var css_escape__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(css_escape__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar HTML_ESCAPE_MAP = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\n\nfunction escapeHTML(str) {\n  str = '' + str;\n\n  return str && str.replace(/[&<>\"']/g, function(match) {\n    return HTML_ESCAPE_MAP[match];\n  });\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/EscapeUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Event.js":
  /*!***************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Event.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getOriginal\": () => (/* binding */ getOriginal),\n/* harmony export */   \"stopPropagation\": () => (/* binding */ stopPropagation),\n/* harmony export */   \"toPoint\": () => (/* binding */ toPoint)\n/* harmony export */ });\nfunction __stopPropagation(event) {\n  if (!event || typeof event.stopPropagation !== 'function') {\n    return;\n  }\n\n  event.stopPropagation();\n}\n\n\nfunction getOriginal(event) {\n  return event.originalEvent || event.srcEvent;\n}\n\n\nfunction stopPropagation(event, immediate) {\n  __stopPropagation(event, immediate);\n  __stopPropagation(getOriginal(event), immediate);\n}\n\n\nfunction toPoint(event) {\n\n  if (event.pointers && event.pointers.length) {\n    event = event.pointers[0];\n  }\n\n  if (event.touches && event.touches.length) {\n    event = event.touches[0];\n  }\n\n  return event ? {\n    x: event.clientX,\n    y: event.clientY\n  } : null;\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Event.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Geometry.js":
  /*!******************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Geometry.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"pointDistance\": () => (/* binding */ pointDistance),\n/* harmony export */   \"pointsOnLine\": () => (/* binding */ pointsOnLine),\n/* harmony export */   \"pointsAligned\": () => (/* binding */ pointsAligned),\n/* harmony export */   \"pointsAlignedHorizontally\": () => (/* binding */ pointsAlignedHorizontally),\n/* harmony export */   \"pointsAlignedVertically\": () => (/* binding */ pointsAlignedVertically),\n/* harmony export */   \"pointInRect\": () => (/* binding */ pointInRect),\n/* harmony export */   \"getMidPoint\": () => (/* binding */ getMidPoint)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Computes the distance between two points\n *\n * @param  {Point}  p\n * @param  {Point}  q\n *\n * @return {number}  distance\n */\nfunction pointDistance(a, b) {\n  if (!a || !b) {\n    return -1;\n  }\n\n  return Math.sqrt(\n    Math.pow(a.x - b.x, 2) +\n    Math.pow(a.y - b.y, 2)\n  );\n}\n\n\n/**\n * Returns true if the point r is on the line between p and q\n *\n * @param  {Point}  p\n * @param  {Point}  q\n * @param  {Point}  r\n * @param  {number} [accuracy=5] accuracy for points on line check (lower is better)\n *\n * @return {boolean}\n */\nfunction pointsOnLine(p, q, r, accuracy) {\n\n  if (typeof accuracy === 'undefined') {\n    accuracy = 5;\n  }\n\n  if (!p || !q || !r) {\n    return false;\n  }\n\n  var val = (q.x - p.x) * (r.y - p.y) - (q.y - p.y) * (r.x - p.x),\n      dist = pointDistance(p, q);\n\n  // @see http://stackoverflow.com/a/907491/412190\n  return Math.abs(val / dist) <= accuracy;\n}\n\n\nvar ALIGNED_THRESHOLD = 2;\n\n/**\n * Check whether two points are horizontally or vertically aligned.\n *\n * @param {Array<Point>|Point}\n * @param {Point}\n *\n * @return {string|boolean}\n */\nfunction pointsAligned(a, b) {\n  var points;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n    points = a;\n  } else {\n    points = [ a, b ];\n  }\n\n  if (pointsAlignedHorizontally(points)) {\n    return 'h';\n  }\n\n  if (pointsAlignedVertically(points)) {\n    return 'v';\n  }\n\n  return false;\n}\n\nfunction pointsAlignedHorizontally(a, b) {\n  var points;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n    points = a;\n  } else {\n    points = [ a, b ];\n  }\n\n  var firstPoint = points.slice().shift();\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(points, function(point) {\n    return Math.abs(firstPoint.y - point.y) <= ALIGNED_THRESHOLD;\n  });\n}\n\nfunction pointsAlignedVertically(a, b) {\n  var points;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isArray)(a)) {\n    points = a;\n  } else {\n    points = [ a, b ];\n  }\n\n  var firstPoint = points.slice().shift();\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.every)(points, function(point) {\n    return Math.abs(firstPoint.x - point.x) <= ALIGNED_THRESHOLD;\n  });\n}\n\n\n\n/**\n * Returns true if the point p is inside the rectangle rect\n *\n * @param  {Point}  p\n * @param  {Rect} rect\n * @param  {number} tolerance\n *\n * @return {boolean}\n */\nfunction pointInRect(p, rect, tolerance) {\n  tolerance = tolerance || 0;\n\n  return p.x > rect.x - tolerance &&\n         p.y > rect.y - tolerance &&\n         p.x < rect.x + rect.width + tolerance &&\n         p.y < rect.y + rect.height + tolerance;\n}\n\n/**\n * Returns a point in the middle of points p and q\n *\n * @param  {Point}  p\n * @param  {Point}  q\n *\n * @return {Point} middle point\n */\nfunction getMidPoint(p, q) {\n  return {\n    x: Math.round(p.x + ((q.x - p.x) / 2.0)),\n    y: Math.round(p.y + ((q.y - p.y) / 2.0))\n  };\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Geometry.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/GraphicsUtil.js":
  /*!**********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/GraphicsUtil.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getVisual\": () => (/* binding */ getVisual),\n/* harmony export */   \"getChildren\": () => (/* binding */ getChildren)\n/* harmony export */ });\n/**\n * SVGs for elements are generated by the {@link GraphicsFactory}.\n *\n * This utility gives quick access to the important semantic\n * parts of an element.\n */\n\n/**\n * Returns the visual part of a diagram element\n *\n * @param {Snap<SVGElement>} gfx\n *\n * @return {Snap<SVGElement>}\n */\nfunction getVisual(gfx) {\n  return gfx.childNodes[0];\n}\n\n/**\n * Returns the children for a given diagram element.\n *\n * @param {Snap<SVGElement>} gfx\n * @return {Snap<SVGElement>}\n */\nfunction getChildren(gfx) {\n  return gfx.parentNode.childNodes[1];\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/GraphicsUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/IdGenerator.js":
  /*!*********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/IdGenerator.js ***!
    \*********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ IdGenerator)\n/* harmony export */ });\n/**\n * Util that provides unique IDs.\n *\n * @class djs.util.IdGenerator\n * @constructor\n * @memberOf djs.util\n *\n * The ids can be customized via a given prefix and contain a random value to avoid collisions.\n *\n * @param {string} prefix a prefix to prepend to generated ids (for better readability)\n */\nfunction IdGenerator(prefix) {\n\n  this._counter = 0;\n  this._prefix = (prefix ? prefix + '-' : '') + Math.floor(Math.random() * 1000000000) + '-';\n}\n\n/**\n * Returns a next unique ID.\n *\n * @method djs.util.IdGenerator#next\n *\n * @returns {string} the id\n */\nIdGenerator.prototype.next = function() {\n  return this._prefix + (++this._counter);\n};\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/IdGenerator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/LineIntersection.js":
  /*!**************************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/LineIntersection.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"getApproxIntersection\": () => (/* binding */ getApproxIntersection)\n/* harmony export */ });\n/* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Geometry */ \"./node_modules/diagram-js/lib/util/Geometry.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path-intersection */ \"./node_modules/path-intersection/intersect.js\");\n/* harmony import */ var path_intersection__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path_intersection__WEBPACK_IMPORTED_MODULE_0__);\n\n\n\n\nvar round = Math.round,\n    max = Math.max;\n\n\nfunction circlePath(center, r) {\n  var x = center.x,\n      y = center.y;\n\n  return [\n    ['M', x, y],\n    ['m', 0, -r],\n    ['a', r, r, 0, 1, 1, 0, 2 * r],\n    ['a', r, r, 0, 1, 1, 0, -2 * r],\n    ['z']\n  ];\n}\n\nfunction linePath(points) {\n  var segments = [];\n\n  points.forEach(function(p, idx) {\n    segments.push([ idx === 0 ? 'M' : 'L', p.x, p.y ]);\n  });\n\n  return segments;\n}\n\n\nvar INTERSECTION_THRESHOLD = 10;\n\nfunction getBendpointIntersection(waypoints, reference) {\n\n  var i, w;\n\n  for (i = 0; (w = waypoints[i]); i++) {\n\n    if ((0,_Geometry__WEBPACK_IMPORTED_MODULE_1__.pointDistance)(w, reference) <= INTERSECTION_THRESHOLD) {\n      return {\n        point: waypoints[i],\n        bendpoint: true,\n        index: i\n      };\n    }\n  }\n\n  return null;\n}\n\nfunction getPathIntersection(waypoints, reference) {\n\n  var intersections = path_intersection__WEBPACK_IMPORTED_MODULE_0___default()(circlePath(reference, INTERSECTION_THRESHOLD), linePath(waypoints));\n\n  var a = intersections[0],\n      b = intersections[intersections.length - 1],\n      idx;\n\n  if (!a) {\n\n    // no intersection\n    return null;\n  }\n\n  if (a !== b) {\n\n    if (a.segment2 !== b.segment2) {\n\n      // we use the bendpoint in between both segments\n      // as the intersection point\n\n      idx = max(a.segment2, b.segment2) - 1;\n\n      return {\n        point: waypoints[idx],\n        bendpoint: true,\n        index: idx\n      };\n    }\n\n    return {\n      point: {\n        x: (round(a.x + b.x) / 2),\n        y: (round(a.y + b.y) / 2)\n      },\n      index: a.segment2\n    };\n  }\n\n  return {\n    point: {\n      x: round(a.x),\n      y: round(a.y)\n    },\n    index: a.segment2\n  };\n}\n\n/**\n * Returns the closest point on the connection towards a given reference point.\n *\n * @param  {Array<Point>} waypoints\n * @param  {Point} reference\n *\n * @return {Object} intersection data (segment, point)\n */\nfunction getApproxIntersection(waypoints, reference) {\n  return getBendpointIntersection(waypoints, reference) || getPathIntersection(waypoints, reference);\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/LineIntersection.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Math.js":
  /*!**************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Math.js ***!
    \**************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"log10\": () => (/* binding */ log10),\n/* harmony export */   \"substract\": () => (/* reexport safe */ _PositionUtil__WEBPACK_IMPORTED_MODULE_0__.delta)\n/* harmony export */ });\n/* harmony import */ var _PositionUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PositionUtil */ \"./node_modules/diagram-js/lib/util/PositionUtil.js\");\n/**\n * Get the logarithm of x with base 10\n * @param  {Integer} value\n */\nfunction log10(x) {\n  return Math.log(x) / Math.log(10);\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Math.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Mouse.js":
  /*!***************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Mouse.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isMac\": () => (/* reexport safe */ _Platform__WEBPACK_IMPORTED_MODULE_0__.isMac),\n/* harmony export */   \"isButton\": () => (/* binding */ isButton),\n/* harmony export */   \"isPrimaryButton\": () => (/* binding */ isPrimaryButton),\n/* harmony export */   \"isAuxiliaryButton\": () => (/* binding */ isAuxiliaryButton),\n/* harmony export */   \"isSecondaryButton\": () => (/* binding */ isSecondaryButton),\n/* harmony export */   \"hasPrimaryModifier\": () => (/* binding */ hasPrimaryModifier),\n/* harmony export */   \"hasSecondaryModifier\": () => (/* binding */ hasSecondaryModifier)\n/* harmony export */ });\n/* harmony import */ var _Event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Event */ \"./node_modules/diagram-js/lib/util/Event.js\");\n/* harmony import */ var _Platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Platform */ \"./node_modules/diagram-js/lib/util/Platform.js\");\n\n\n\n\n\n\nfunction isButton(event, button) {\n  return ((0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event).button === button;\n}\n\nfunction isPrimaryButton(event) {\n\n  // button === 0 -> left áka primary mouse button\n  return isButton(event, 0);\n}\n\nfunction isAuxiliaryButton(event) {\n\n  // button === 1 -> auxiliary áka wheel button\n  return isButton(event, 1);\n}\n\nfunction isSecondaryButton(event) {\n\n  // button === 2 -> right áka secondary button\n  return isButton(event, 2);\n}\n\nfunction hasPrimaryModifier(event) {\n  var originalEvent = (0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n\n  if (!isPrimaryButton(event)) {\n    return false;\n  }\n\n  // Use cmd as primary modifier key for mac OS\n  if ((0,_Platform__WEBPACK_IMPORTED_MODULE_0__.isMac)()) {\n    return originalEvent.metaKey;\n  } else {\n    return originalEvent.ctrlKey;\n  }\n}\n\n\nfunction hasSecondaryModifier(event) {\n  var originalEvent = (0,_Event__WEBPACK_IMPORTED_MODULE_1__.getOriginal)(event) || event;\n\n  return isPrimaryButton(event) && originalEvent.shiftKey;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Mouse.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Platform.js":
  /*!******************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Platform.js ***!
    \******************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"isMac\": () => (/* binding */ isMac)\n/* harmony export */ });\nfunction isMac() {\n  return (/mac/i).test(navigator.platform);\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Platform.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/PositionUtil.js":
  /*!**********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/PositionUtil.js ***!
    \**********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"center\": () => (/* binding */ center),\n/* harmony export */   \"delta\": () => (/* binding */ delta)\n/* harmony export */ });\nfunction center(bounds) {\n  return {\n    x: bounds.x + (bounds.width / 2),\n    y: bounds.y + (bounds.height / 2)\n  };\n}\n\n\nfunction delta(a, b) {\n  return {\n    x: a.x - b.x,\n    y: a.y - b.y\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/PositionUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Removal.js":
  /*!*****************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Removal.js ***!
    \*****************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"saveClear\": () => (/* binding */ saveClear)\n/* harmony export */ });\n/**\n * Remove from the beginning of a collection until it is empty.\n *\n * This is a null-safe operation that ensures elements\n * are being removed from the given collection until the\n * collection is empty.\n *\n * The implementation deals with the fact that a remove operation\n * may touch, i.e. remove multiple elements in the collection\n * at a time.\n *\n * @param {Array<Object>} [collection]\n * @param {Function} removeFn\n *\n * @return {Array<Object>} the cleared collection\n */\nfunction saveClear(collection, removeFn) {\n\n  if (typeof removeFn !== 'function') {\n    throw new Error('removeFn iterator must be a function');\n  }\n\n  if (!collection) {\n    return;\n  }\n\n  var e;\n\n  while ((e = collection[0])) {\n    removeFn(e);\n  }\n\n  return collection;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Removal.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/RenderUtil.js":
  /*!********************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/RenderUtil.js ***!
    \********************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"componentsToPath\": () => (/* binding */ componentsToPath),\n/* harmony export */   \"toSVGPoints\": () => (/* binding */ toSVGPoints),\n/* harmony export */   \"createLine\": () => (/* binding */ createLine),\n/* harmony export */   \"updateLine\": () => (/* binding */ updateLine)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\nfunction componentsToPath(elements) {\n  return elements.join(',').replace(/,?([A-z]),?/g, '$1');\n}\n\nfunction toSVGPoints(points) {\n  var result = '';\n\n  for (var i = 0, p; (p = points[i]); i++) {\n    result += p.x + ',' + p.y + ' ';\n  }\n\n  return result;\n}\n\nfunction createLine(points, attrs) {\n\n  var line = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.create)('polyline');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(line, { points: toSVGPoints(points) });\n\n  if (attrs) {\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(line, attrs);\n  }\n\n  return line;\n}\n\nfunction updateLine(gfx, points) {\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.attr)(gfx, { points: toSVGPoints(points) });\n\n  return gfx;\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/RenderUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/SvgTransformUtil.js":
  /*!**************************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/SvgTransformUtil.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"transform\": () => (/* binding */ transform),\n/* harmony export */   \"translate\": () => (/* binding */ translate),\n/* harmony export */   \"rotate\": () => (/* binding */ rotate),\n/* harmony export */   \"scale\": () => (/* binding */ scale)\n/* harmony export */ });\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\r\n\r\n\r\n/**\r\n * @param {<SVGElement>} element\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} angle\r\n * @param {number} amount\r\n */\r\nfunction transform(gfx, x, y, angle, amount) {\r\n  var translate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  translate.setTranslate(x, y);\r\n\r\n  var rotate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  rotate.setRotate(angle || 0, 0, 0);\r\n\r\n  var scale = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  scale.setScale(amount || 1, amount || 1);\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, [ translate, rotate, scale ]);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} x\r\n * @param {number} y\r\n */\r\nfunction translate(gfx, x, y) {\r\n  var translate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  translate.setTranslate(x, y);\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, translate);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} angle\r\n */\r\nfunction rotate(gfx, angle) {\r\n  var rotate = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  rotate.setRotate(angle, 0, 0);\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, rotate);\r\n}\r\n\r\n\r\n/**\r\n * @param {SVGElement} element\r\n * @param {number} amount\r\n */\r\nfunction scale(gfx, amount) {\r\n  var scale = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.createTransform)();\r\n  scale.setScale(amount, amount);\r\n\r\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_0__.transform)(gfx, scale);\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/SvgTransformUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/diagram-js/lib/util/Text.js":
  /*!**************************************************!*\
    !*** ./node_modules/diagram-js/lib/util/Text.js ***!
    \**************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Text)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var tiny_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tiny-svg */ \"./node_modules/tiny-svg/dist/index.esm.js\");\n\n\n\n\nvar DEFAULT_BOX_PADDING = 0;\n\nvar DEFAULT_LABEL_SIZE = {\n  width: 150,\n  height: 50\n};\n\n\nfunction parseAlign(align) {\n\n  var parts = align.split('-');\n\n  return {\n    horizontal: parts[0] || 'center',\n    vertical: parts[1] || 'top'\n  };\n}\n\nfunction parsePadding(padding) {\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(padding)) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({ top: 0, left: 0, right: 0, bottom: 0 }, padding);\n  } else {\n    return {\n      top: padding,\n      left: padding,\n      right: padding,\n      bottom: padding\n    };\n  }\n}\n\nfunction getTextBBox(text, fakeText) {\n\n  fakeText.textContent = text;\n\n  var textBBox;\n\n  try {\n    var bbox,\n        emptyLine = text === '';\n\n    // add dummy text, when line is empty to\n    // determine correct height\n    fakeText.textContent = emptyLine ? 'dummy' : text;\n\n    textBBox = fakeText.getBBox();\n\n    // take text rendering related horizontal\n    // padding into account\n    bbox = {\n      width: textBBox.width + textBBox.x * 2,\n      height: textBBox.height\n    };\n\n    if (emptyLine) {\n\n      // correct width\n      bbox.width = 0;\n    }\n\n    return bbox;\n  } catch (e) {\n    return { width: 0, height: 0 };\n  }\n}\n\n\n/**\n * Layout the next line and return the layouted element.\n *\n * Alters the lines passed.\n *\n * @param  {Array<string>} lines\n * @return {Object} the line descriptor, an object { width, height, text }\n */\nfunction layoutNext(lines, maxWidth, fakeText) {\n\n  var originalLine = lines.shift(),\n      fitLine = originalLine;\n\n  var textBBox;\n\n  for (;;) {\n    textBBox = getTextBBox(fitLine, fakeText);\n\n    textBBox.width = fitLine ? textBBox.width : 0;\n\n    // try to fit\n    if (fitLine === ' ' || fitLine === '' || textBBox.width < Math.round(maxWidth) || fitLine.length < 2) {\n      return fit(lines, fitLine, originalLine, textBBox);\n    }\n\n    fitLine = shortenLine(fitLine, textBBox.width, maxWidth);\n  }\n}\n\nfunction fit(lines, fitLine, originalLine, textBBox) {\n  if (fitLine.length < originalLine.length) {\n    var remainder = originalLine.slice(fitLine.length).trim();\n\n    lines.unshift(remainder);\n  }\n\n  return {\n    width: textBBox.width,\n    height: textBBox.height,\n    text: fitLine\n  };\n}\n\nvar SOFT_BREAK = '\\u00AD';\n\n\n/**\n * Shortens a line based on spacing and hyphens.\n * Returns the shortened result on success.\n *\n * @param  {string} line\n * @param  {number} maxLength the maximum characters of the string\n * @return {string} the shortened string\n */\nfunction semanticShorten(line, maxLength) {\n\n  var parts = line.split(/(\\s|-|\\u00AD)/g),\n      part,\n      shortenedParts = [],\n      length = 0;\n\n  // try to shorten via break chars\n  if (parts.length > 1) {\n\n    while ((part = parts.shift())) {\n      if (part.length + length < maxLength) {\n        shortenedParts.push(part);\n        length += part.length;\n      } else {\n\n        // remove previous part, too if hyphen does not fit anymore\n        if (part === '-' || part === SOFT_BREAK) {\n          shortenedParts.pop();\n        }\n\n        break;\n      }\n    }\n  }\n\n  var last = shortenedParts[shortenedParts.length - 1];\n\n  // translate trailing soft break to actual hyphen\n  if (last && last === SOFT_BREAK) {\n    shortenedParts[shortenedParts.length - 1] = '-';\n  }\n\n  return shortenedParts.join('');\n}\n\n\nfunction shortenLine(line, width, maxWidth) {\n  var length = Math.max(line.length * (maxWidth / width), 1);\n\n  // try to shorten semantically (i.e. based on spaces and hyphens)\n  var shortenedLine = semanticShorten(line, length);\n\n  if (!shortenedLine) {\n\n    // force shorten by cutting the long word\n    shortenedLine = line.slice(0, Math.max(Math.round(length - 1), 1));\n  }\n\n  return shortenedLine;\n}\n\n\nfunction getHelperSvg() {\n  var helperSvg = document.getElementById('helper-svg');\n\n  if (!helperSvg) {\n    helperSvg = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('svg');\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperSvg, {\n      id: 'helper-svg',\n      width: 0,\n      height: 0,\n      style: 'visibility: hidden; position: fixed'\n    });\n\n    document.body.appendChild(helperSvg);\n  }\n\n  return helperSvg;\n}\n\n\n/**\n * Creates a new label utility\n *\n * @param {Object} config\n * @param {Dimensions} config.size\n * @param {number} config.padding\n * @param {Object} config.style\n * @param {string} config.align\n */\nfunction Text(config) {\n\n  this._config = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, {\n    size: DEFAULT_LABEL_SIZE,\n    padding: DEFAULT_BOX_PADDING,\n    style: {},\n    align: 'center-top'\n  }, config || {});\n}\n\n/**\n * Returns the layouted text as an SVG element.\n *\n * @param {string} text\n * @param {Object} options\n *\n * @return {SVGElement}\n */\nText.prototype.createText = function(text, options) {\n  return this.layoutText(text, options).element;\n};\n\n/**\n * Returns a labels layouted dimensions.\n *\n * @param {string} text to layout\n * @param {Object} options\n *\n * @return {Dimensions}\n */\nText.prototype.getDimensions = function(text, options) {\n  return this.layoutText(text, options).dimensions;\n};\n\n/**\n * Creates and returns a label and its bounding box.\n *\n * @method Text#createText\n *\n * @param {string} text the text to render on the label\n * @param {Object} options\n * @param {string} options.align how to align in the bounding box.\n *                               Any of { 'center-middle', 'center-top' },\n *                               defaults to 'center-top'.\n * @param {string} options.style style to be applied to the text\n * @param {boolean} options.fitBox indicates if box will be recalculated to\n *                                 fit text\n *\n * @return {Object} { element, dimensions }\n */\nText.prototype.layoutText = function(text, options) {\n  var box = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._config.size, options.box),\n      style = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, this._config.style, options.style),\n      align = parseAlign(options.align || this._config.align),\n      padding = parsePadding(options.padding !== undefined ? options.padding : this._config.padding),\n      fitBox = options.fitBox || false;\n\n  var lineHeight = getLineHeight(style);\n\n  // we split text by lines and normalize\n  // {soft break} + {line break} => { line break }\n  var lines = text.split(/\\u00AD?\\r?\\n/),\n      layouted = [];\n\n  var maxWidth = box.width - padding.left - padding.right;\n\n  // ensure correct rendering by attaching helper text node to invisible SVG\n  var helperText = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('text');\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperText, { x: 0, y: 0 });\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(helperText, style);\n\n  var helperSvg = getHelperSvg();\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(helperSvg, helperText);\n\n  while (lines.length) {\n    layouted.push(layoutNext(lines, maxWidth, helperText));\n  }\n\n  if (align.vertical === 'middle') {\n    padding.top = padding.bottom = 0;\n  }\n\n  var totalHeight = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(layouted, function(sum, line, idx) {\n    return sum + (lineHeight || line.height);\n  }, 0) + padding.top + padding.bottom;\n\n  var maxLineWidth = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.reduce)(layouted, function(sum, line, idx) {\n    return line.width > sum ? line.width : sum;\n  }, 0);\n\n  // the y position of the next line\n  var y = padding.top;\n\n  if (align.vertical === 'middle') {\n    y += (box.height - totalHeight) / 2;\n  }\n\n  // magic number initial offset\n  y -= (lineHeight || layouted[0].height) / 4;\n\n\n  var textElement = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('text');\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(textElement, style);\n\n  // layout each line taking into account that parent\n  // shape might resize to fit text size\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(layouted, function(line) {\n\n    var x;\n\n    y += (lineHeight || line.height);\n\n    switch (align.horizontal) {\n    case 'left':\n      x = padding.left;\n      break;\n\n    case 'right':\n      x = ((fitBox ? maxLineWidth : maxWidth)\n        - padding.right - line.width);\n      break;\n\n    default:\n\n      // aka center\n      x = Math.max((((fitBox ? maxLineWidth : maxWidth)\n        - line.width) / 2 + padding.left), 0);\n    }\n\n    var tspan = (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.create)('tspan');\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.attr)(tspan, { x: x, y: y });\n\n    tspan.textContent = line.text;\n\n    (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.append)(textElement, tspan);\n  });\n\n  (0,tiny_svg__WEBPACK_IMPORTED_MODULE_1__.remove)(helperText);\n\n  var dimensions = {\n    width: maxLineWidth,\n    height: totalHeight\n  };\n\n  return {\n    dimensions: dimensions,\n    element: textElement\n  };\n};\n\n\nfunction getLineHeight(style) {\n  if ('fontSize' in style && 'lineHeight' in style) {\n    return style.lineHeight * parseInt(style.fontSize, 10);\n  }\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/diagram-js/lib/util/Text.js?");
  
  /***/ }),
  
  /***/ "./node_modules/didi/dist/index.esm.js":
  /*!*********************************************!*\
    !*** ./node_modules/didi/dist/index.esm.js ***!
    \*********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"annotate\": () => (/* binding */ annotate),\n/* harmony export */   \"parseAnnotations\": () => (/* binding */ parseAnnotations),\n/* harmony export */   \"Module\": () => (/* binding */ Module),\n/* harmony export */   \"Injector\": () => (/* binding */ Injector)\n/* harmony export */ });\nvar CLASS_PATTERN = /^class /;\n\nfunction isClass(fn) {\n  return CLASS_PATTERN.test(fn.toString());\n}\n\nfunction isArray(obj) {\n  return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction hasOwnProp(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction annotate() {\n  var args = Array.prototype.slice.call(arguments);\n\n  if (args.length === 1 && isArray(args[0])) {\n    args = args[0];\n  }\n\n  var fn = args.pop();\n\n  fn.$inject = args;\n\n  return fn;\n}\n\n\n// Current limitations:\n// - can't put into \"function arg\" comments\n// function /* (no parenthesis like this) */ (){}\n// function abc( /* xx (no parenthesis like this) */ a, b) {}\n//\n// Just put the comment before function or inside:\n// /* (((this is fine))) */ function(a, b) {}\n// function abc(a) { /* (((this is fine))) */}\n//\n// - can't reliably auto-annotate constructor; we'll match the\n// first constructor(...) pattern found which may be the one\n// of a nested class, too.\n\nvar CONSTRUCTOR_ARGS = /constructor\\s*[^(]*\\(\\s*([^)]*)\\)/m;\nvar FN_ARGS = /^(?:async )?(?:function\\s*)?[^(]*\\(\\s*([^)]*)\\)/m;\nvar FN_ARG = /\\/\\*([^*]*)\\*\\//m;\n\nfunction parseAnnotations(fn) {\n\n  if (typeof fn !== 'function') {\n    throw new Error('Cannot annotate \"' + fn + '\". Expected a function!');\n  }\n\n  var match = fn.toString().match(isClass(fn) ? CONSTRUCTOR_ARGS : FN_ARGS);\n\n  // may parse class without constructor\n  if (!match) {\n    return [];\n  }\n\n  return match[1] && match[1].split(',').map(function(arg) {\n    match = arg.match(FN_ARG);\n    return match ? match[1].trim() : arg.trim();\n  }) || [];\n}\n\nfunction Module() {\n  var providers = [];\n\n  this.factory = function(name, factory) {\n    providers.push([name, 'factory', factory]);\n    return this;\n  };\n\n  this.value = function(name, value) {\n    providers.push([name, 'value', value]);\n    return this;\n  };\n\n  this.type = function(name, type) {\n    providers.push([name, 'type', type]);\n    return this;\n  };\n\n  this.forEach = function(iterator) {\n    providers.forEach(iterator);\n  };\n\n}\n\nfunction Injector(modules, parent) {\n  parent = parent || {\n    get: function(name, strict) {\n      currentlyResolving.push(name);\n\n      if (strict === false) {\n        return null;\n      } else {\n        throw error('No provider for \"' + name + '\"!');\n      }\n    }\n  };\n\n  var currentlyResolving = [];\n  var providers = this._providers = Object.create(parent._providers || null);\n  var instances = this._instances = Object.create(null);\n\n  var self = instances.injector = this;\n\n  var error = function(msg) {\n    var stack = currentlyResolving.join(' -> ');\n    currentlyResolving.length = 0;\n    return new Error(stack ? msg + ' (Resolving: ' + stack + ')' : msg);\n  };\n\n  /**\n   * Return a named service.\n   *\n   * @param {String} name\n   * @param {Boolean} [strict=true] if false, resolve missing services to null\n   *\n   * @return {Object}\n   */\n  var get = function(name, strict) {\n    if (!providers[name] && name.indexOf('.') !== -1) {\n      var parts = name.split('.');\n      var pivot = get(parts.shift());\n\n      while (parts.length) {\n        pivot = pivot[parts.shift()];\n      }\n\n      return pivot;\n    }\n\n    if (hasOwnProp(instances, name)) {\n      return instances[name];\n    }\n\n    if (hasOwnProp(providers, name)) {\n      if (currentlyResolving.indexOf(name) !== -1) {\n        currentlyResolving.push(name);\n        throw error('Cannot resolve circular dependency!');\n      }\n\n      currentlyResolving.push(name);\n      instances[name] = providers[name][0](providers[name][1]);\n      currentlyResolving.pop();\n\n      return instances[name];\n    }\n\n    return parent.get(name, strict);\n  };\n\n  var fnDef = function(fn, locals) {\n\n    if (typeof locals === 'undefined') {\n      locals = {};\n    }\n\n    if (typeof fn !== 'function') {\n      if (isArray(fn)) {\n        fn = annotate(fn.slice());\n      } else {\n        throw new Error('Cannot invoke \"' + fn + '\". Expected a function!');\n      }\n    }\n\n    var inject = fn.$inject || parseAnnotations(fn);\n    var dependencies = inject.map(function(dep) {\n      if (hasOwnProp(locals, dep)) {\n        return locals[dep];\n      } else {\n        return get(dep);\n      }\n    });\n\n    return {\n      fn: fn,\n      dependencies: dependencies\n    };\n  };\n\n  var instantiate = function(Type) {\n    var def = fnDef(Type);\n\n    var fn = def.fn,\n        dependencies = def.dependencies;\n\n    // instantiate var args constructor\n    var Constructor = Function.prototype.bind.apply(fn, [ null ].concat(dependencies));\n\n    return new Constructor();\n  };\n\n  var invoke = function(func, context, locals) {\n    var def = fnDef(func, locals);\n\n    var fn = def.fn,\n        dependencies = def.dependencies;\n\n    return fn.apply(context, dependencies);\n  };\n\n\n  var createPrivateInjectorFactory = function(privateChildInjector) {\n    return annotate(function(key) {\n      return privateChildInjector.get(key);\n    });\n  };\n\n  var createChild = function(modules, forceNewInstances) {\n    if (forceNewInstances && forceNewInstances.length) {\n      var fromParentModule = Object.create(null);\n      var matchedScopes = Object.create(null);\n\n      var privateInjectorsCache = [];\n      var privateChildInjectors = [];\n      var privateChildFactories = [];\n\n      var provider;\n      var cacheIdx;\n      var privateChildInjector;\n      var privateChildInjectorFactory;\n      for (var name in providers) {\n        provider = providers[name];\n\n        if (forceNewInstances.indexOf(name) !== -1) {\n          if (provider[2] === 'private') {\n            cacheIdx = privateInjectorsCache.indexOf(provider[3]);\n            if (cacheIdx === -1) {\n              privateChildInjector = provider[3].createChild([], forceNewInstances);\n              privateChildInjectorFactory = createPrivateInjectorFactory(privateChildInjector);\n              privateInjectorsCache.push(provider[3]);\n              privateChildInjectors.push(privateChildInjector);\n              privateChildFactories.push(privateChildInjectorFactory);\n              fromParentModule[name] = [privateChildInjectorFactory, name, 'private', privateChildInjector];\n            } else {\n              fromParentModule[name] = [privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx]];\n            }\n          } else {\n            fromParentModule[name] = [provider[2], provider[1]];\n          }\n          matchedScopes[name] = true;\n        }\n\n        if ((provider[2] === 'factory' || provider[2] === 'type') && provider[1].$scope) {\n          /* jshint -W083 */\n          forceNewInstances.forEach(function(scope) {\n            if (provider[1].$scope.indexOf(scope) !== -1) {\n              fromParentModule[name] = [provider[2], provider[1]];\n              matchedScopes[scope] = true;\n            }\n          });\n        }\n      }\n\n      forceNewInstances.forEach(function(scope) {\n        if (!matchedScopes[scope]) {\n          throw new Error('No provider for \"' + scope + '\". Cannot use provider from the parent!');\n        }\n      });\n\n      modules.unshift(fromParentModule);\n    }\n\n    return new Injector(modules, self);\n  };\n\n  var factoryMap = {\n    factory: invoke,\n    type: instantiate,\n    value: function(value) {\n      return value;\n    }\n  };\n\n  modules.forEach(function(module) {\n\n    function arrayUnwrap(type, value) {\n      if (type !== 'value' && isArray(value)) {\n        value = annotate(value.slice());\n      }\n\n      return value;\n    }\n\n    // TODO(vojta): handle wrong inputs (modules)\n    if (module instanceof Module) {\n      module.forEach(function(provider) {\n        var name = provider[0];\n        var type = provider[1];\n        var value = provider[2];\n\n        providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];\n      });\n    } else if (typeof module === 'object') {\n      if (module.__exports__) {\n        var clonedModule = Object.keys(module).reduce(function(m, key) {\n          if (key.substring(0, 2) !== '__') {\n            m[key] = module[key];\n          }\n          return m;\n        }, Object.create(null));\n\n        var privateInjector = new Injector((module.__modules__ || []).concat([clonedModule]), self);\n        var getFromPrivateInjector = annotate(function(key) {\n          return privateInjector.get(key);\n        });\n        module.__exports__.forEach(function(key) {\n          providers[key] = [getFromPrivateInjector, key, 'private', privateInjector];\n        });\n      } else {\n        Object.keys(module).forEach(function(name) {\n          if (module[name][2] === 'private') {\n            providers[name] = module[name];\n            return;\n          }\n\n          var type = module[name][0];\n          var value = module[name][1];\n\n          providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];\n        });\n      }\n    }\n  });\n\n  // public API\n  this.get = get;\n  this.invoke = invoke;\n  this.instantiate = instantiate;\n  this.createChild = createChild;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/didi/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/hammerjs/hammer.js":
  /*!*****************************************!*\
    !*** ./node_modules/hammerjs/hammer.js ***!
    \*****************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n  'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n    return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n    if (Array.isArray(arg)) {\n        each(arg, context[fn], context);\n        return true;\n    }\n    return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n    var i;\n\n    if (!obj) {\n        return;\n    }\n\n    if (obj.forEach) {\n        obj.forEach(iterator, context);\n    } else if (obj.length !== undefined) {\n        i = 0;\n        while (i < obj.length) {\n            iterator.call(context, obj[i], i, obj);\n            i++;\n        }\n    } else {\n        for (i in obj) {\n            obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n        }\n    }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n    var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n    return function() {\n        var e = new Error('get-stack-trace');\n        var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n            .replace(/^\\s+at\\s+/gm, '')\n            .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n        var log = window.console && (window.console.warn || window.console.log);\n        if (log) {\n            log.call(window.console, deprecationMessage, stack);\n        }\n        return method.apply(this, arguments);\n    };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n    assign = function assign(target) {\n        if (target === undefined || target === null) {\n            throw new TypeError('Cannot convert undefined or null to object');\n        }\n\n        var output = Object(target);\n        for (var index = 1; index < arguments.length; index++) {\n            var source = arguments[index];\n            if (source !== undefined && source !== null) {\n                for (var nextKey in source) {\n                    if (source.hasOwnProperty(nextKey)) {\n                        output[nextKey] = source[nextKey];\n                    }\n                }\n            }\n        }\n        return output;\n    };\n} else {\n    assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n    var keys = Object.keys(src);\n    var i = 0;\n    while (i < keys.length) {\n        if (!merge || (merge && dest[keys[i]] === undefined)) {\n            dest[keys[i]] = src[keys[i]];\n        }\n        i++;\n    }\n    return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n    return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n    var baseP = base.prototype,\n        childP;\n\n    childP = child.prototype = Object.create(baseP);\n    childP.constructor = child;\n    childP._super = baseP;\n\n    if (properties) {\n        assign(childP, properties);\n    }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n    return function boundFn() {\n        return fn.apply(context, arguments);\n    };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n    if (typeof val == TYPE_FUNCTION) {\n        return val.apply(args ? args[0] || undefined : undefined, args);\n    }\n    return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n    return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n    each(splitStr(types), function(type) {\n        target.addEventListener(type, handler, false);\n    });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n    each(splitStr(types), function(type) {\n        target.removeEventListener(type, handler, false);\n    });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n    while (node) {\n        if (node == parent) {\n            return true;\n        }\n        node = node.parentNode;\n    }\n    return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n    return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n    return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n    if (src.indexOf && !findByKey) {\n        return src.indexOf(find);\n    } else {\n        var i = 0;\n        while (i < src.length) {\n            if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n                return i;\n            }\n            i++;\n        }\n        return -1;\n    }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n    return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n    var results = [];\n    var values = [];\n    var i = 0;\n\n    while (i < src.length) {\n        var val = key ? src[i][key] : src[i];\n        if (inArray(values, val) < 0) {\n            results.push(src[i]);\n        }\n        values[i] = val;\n        i++;\n    }\n\n    if (sort) {\n        if (!key) {\n            results = results.sort();\n        } else {\n            results = results.sort(function sortUniqueArray(a, b) {\n                return a[key] > b[key];\n            });\n        }\n    }\n\n    return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n    var prefix, prop;\n    var camelProp = property[0].toUpperCase() + property.slice(1);\n\n    var i = 0;\n    while (i < VENDOR_PREFIXES.length) {\n        prefix = VENDOR_PREFIXES[i];\n        prop = (prefix) ? prefix + camelProp : property;\n\n        if (prop in obj) {\n            return prop;\n        }\n        i++;\n    }\n    return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n    return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n    var doc = element.ownerDocument || element;\n    return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n    var self = this;\n    this.manager = manager;\n    this.callback = callback;\n    this.element = manager.element;\n    this.target = manager.options.inputTarget;\n\n    // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n    // so when disabled the input events are completely bypassed.\n    this.domHandler = function(ev) {\n        if (boolOrFn(manager.options.enable, [manager])) {\n            self.handler(ev);\n        }\n    };\n\n    this.init();\n\n}\n\nInput.prototype = {\n    /**\n     * should handle the inputEvent data and trigger the callback\n     * @virtual\n     */\n    handler: function() { },\n\n    /**\n     * bind the events\n     */\n    init: function() {\n        this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n        this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n        this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n    },\n\n    /**\n     * unbind the events\n     */\n    destroy: function() {\n        this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n        this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n        this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n    }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n    var Type;\n    var inputClass = manager.options.inputClass;\n\n    if (inputClass) {\n        Type = inputClass;\n    } else if (SUPPORT_POINTER_EVENTS) {\n        Type = PointerEventInput;\n    } else if (SUPPORT_ONLY_TOUCH) {\n        Type = TouchInput;\n    } else if (!SUPPORT_TOUCH) {\n        Type = MouseInput;\n    } else {\n        Type = TouchMouseInput;\n    }\n    return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n    var pointersLen = input.pointers.length;\n    var changedPointersLen = input.changedPointers.length;\n    var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n    var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n    input.isFirst = !!isFirst;\n    input.isFinal = !!isFinal;\n\n    if (isFirst) {\n        manager.session = {};\n    }\n\n    // source event is the normalized value of the domEvents\n    // like 'touchstart, mouseup, pointerdown'\n    input.eventType = eventType;\n\n    // compute scale, rotation etc\n    computeInputData(manager, input);\n\n    // emit secret event\n    manager.emit('hammer.input', input);\n\n    manager.recognize(input);\n    manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n    var session = manager.session;\n    var pointers = input.pointers;\n    var pointersLength = pointers.length;\n\n    // store the first input to calculate the distance and direction\n    if (!session.firstInput) {\n        session.firstInput = simpleCloneInputData(input);\n    }\n\n    // to compute scale and rotation we need to store the multiple touches\n    if (pointersLength > 1 && !session.firstMultiple) {\n        session.firstMultiple = simpleCloneInputData(input);\n    } else if (pointersLength === 1) {\n        session.firstMultiple = false;\n    }\n\n    var firstInput = session.firstInput;\n    var firstMultiple = session.firstMultiple;\n    var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n    var center = input.center = getCenter(pointers);\n    input.timeStamp = now();\n    input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n    input.angle = getAngle(offsetCenter, center);\n    input.distance = getDistance(offsetCenter, center);\n\n    computeDeltaXY(session, input);\n    input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n    var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n    input.overallVelocityX = overallVelocity.x;\n    input.overallVelocityY = overallVelocity.y;\n    input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n    input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n    input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n    input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n        session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n    computeIntervalInputData(session, input);\n\n    // find the correct target\n    var target = manager.element;\n    if (hasParent(input.srcEvent.target, target)) {\n        target = input.srcEvent.target;\n    }\n    input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n    var center = input.center;\n    var offset = session.offsetDelta || {};\n    var prevDelta = session.prevDelta || {};\n    var prevInput = session.prevInput || {};\n\n    if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n        prevDelta = session.prevDelta = {\n            x: prevInput.deltaX || 0,\n            y: prevInput.deltaY || 0\n        };\n\n        offset = session.offsetDelta = {\n            x: center.x,\n            y: center.y\n        };\n    }\n\n    input.deltaX = prevDelta.x + (center.x - offset.x);\n    input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n    var last = session.lastInterval || input,\n        deltaTime = input.timeStamp - last.timeStamp,\n        velocity, velocityX, velocityY, direction;\n\n    if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n        var deltaX = input.deltaX - last.deltaX;\n        var deltaY = input.deltaY - last.deltaY;\n\n        var v = getVelocity(deltaTime, deltaX, deltaY);\n        velocityX = v.x;\n        velocityY = v.y;\n        velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n        direction = getDirection(deltaX, deltaY);\n\n        session.lastInterval = input;\n    } else {\n        // use latest velocity info if it doesn't overtake a minimum period\n        velocity = last.velocity;\n        velocityX = last.velocityX;\n        velocityY = last.velocityY;\n        direction = last.direction;\n    }\n\n    input.velocity = velocity;\n    input.velocityX = velocityX;\n    input.velocityY = velocityY;\n    input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n    // make a simple copy of the pointers because we will get a reference if we don't\n    // we only need clientXY for the calculations\n    var pointers = [];\n    var i = 0;\n    while (i < input.pointers.length) {\n        pointers[i] = {\n            clientX: round(input.pointers[i].clientX),\n            clientY: round(input.pointers[i].clientY)\n        };\n        i++;\n    }\n\n    return {\n        timeStamp: now(),\n        pointers: pointers,\n        center: getCenter(pointers),\n        deltaX: input.deltaX,\n        deltaY: input.deltaY\n    };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n    var pointersLength = pointers.length;\n\n    // no need to loop when only one touch\n    if (pointersLength === 1) {\n        return {\n            x: round(pointers[0].clientX),\n            y: round(pointers[0].clientY)\n        };\n    }\n\n    var x = 0, y = 0, i = 0;\n    while (i < pointersLength) {\n        x += pointers[i].clientX;\n        y += pointers[i].clientY;\n        i++;\n    }\n\n    return {\n        x: round(x / pointersLength),\n        y: round(y / pointersLength)\n    };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n    return {\n        x: x / deltaTime || 0,\n        y: y / deltaTime || 0\n    };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n    if (x === y) {\n        return DIRECTION_NONE;\n    }\n\n    if (abs(x) >= abs(y)) {\n        return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n    }\n    return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n    if (!props) {\n        props = PROPS_XY;\n    }\n    var x = p2[props[0]] - p1[props[0]],\n        y = p2[props[1]] - p1[props[1]];\n\n    return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n    if (!props) {\n        props = PROPS_XY;\n    }\n    var x = p2[props[0]] - p1[props[0]],\n        y = p2[props[1]] - p1[props[1]];\n    return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n    return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n    return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n    mousedown: INPUT_START,\n    mousemove: INPUT_MOVE,\n    mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n    this.evEl = MOUSE_ELEMENT_EVENTS;\n    this.evWin = MOUSE_WINDOW_EVENTS;\n\n    this.pressed = false; // mousedown state\n\n    Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n    /**\n     * handle mouse events\n     * @param {Object} ev\n     */\n    handler: function MEhandler(ev) {\n        var eventType = MOUSE_INPUT_MAP[ev.type];\n\n        // on start we want to have the left mouse button down\n        if (eventType & INPUT_START && ev.button === 0) {\n            this.pressed = true;\n        }\n\n        if (eventType & INPUT_MOVE && ev.which !== 1) {\n            eventType = INPUT_END;\n        }\n\n        // mouse must be down\n        if (!this.pressed) {\n            return;\n        }\n\n        if (eventType & INPUT_END) {\n            this.pressed = false;\n        }\n\n        this.callback(this.manager, eventType, {\n            pointers: [ev],\n            changedPointers: [ev],\n            pointerType: INPUT_TYPE_MOUSE,\n            srcEvent: ev\n        });\n    }\n});\n\nvar POINTER_INPUT_MAP = {\n    pointerdown: INPUT_START,\n    pointermove: INPUT_MOVE,\n    pointerup: INPUT_END,\n    pointercancel: INPUT_CANCEL,\n    pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n    2: INPUT_TYPE_TOUCH,\n    3: INPUT_TYPE_PEN,\n    4: INPUT_TYPE_MOUSE,\n    5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n    POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n    POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n    this.evEl = POINTER_ELEMENT_EVENTS;\n    this.evWin = POINTER_WINDOW_EVENTS;\n\n    Input.apply(this, arguments);\n\n    this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n    /**\n     * handle mouse events\n     * @param {Object} ev\n     */\n    handler: function PEhandler(ev) {\n        var store = this.store;\n        var removePointer = false;\n\n        var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n        var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n        var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n        var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n        // get index of the event in the store\n        var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n        // start and mouse must be down\n        if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n            if (storeIndex < 0) {\n                store.push(ev);\n                storeIndex = store.length - 1;\n            }\n        } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n            removePointer = true;\n        }\n\n        // it not found, so the pointer hasn't been down (so it's probably a hover)\n        if (storeIndex < 0) {\n            return;\n        }\n\n        // update the event in the store\n        store[storeIndex] = ev;\n\n        this.callback(this.manager, eventType, {\n            pointers: store,\n            changedPointers: [ev],\n            pointerType: pointerType,\n            srcEvent: ev\n        });\n\n        if (removePointer) {\n            // remove from the store\n            store.splice(storeIndex, 1);\n        }\n    }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n    touchstart: INPUT_START,\n    touchmove: INPUT_MOVE,\n    touchend: INPUT_END,\n    touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n    this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n    this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n    this.started = false;\n\n    Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n    handler: function TEhandler(ev) {\n        var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n        // should we handle the touch events?\n        if (type === INPUT_START) {\n            this.started = true;\n        }\n\n        if (!this.started) {\n            return;\n        }\n\n        var touches = normalizeSingleTouches.call(this, ev, type);\n\n        // when done, reset the started state\n        if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n            this.started = false;\n        }\n\n        this.callback(this.manager, type, {\n            pointers: touches[0],\n            changedPointers: touches[1],\n            pointerType: INPUT_TYPE_TOUCH,\n            srcEvent: ev\n        });\n    }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n    var all = toArray(ev.touches);\n    var changed = toArray(ev.changedTouches);\n\n    if (type & (INPUT_END | INPUT_CANCEL)) {\n        all = uniqueArray(all.concat(changed), 'identifier', true);\n    }\n\n    return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n    touchstart: INPUT_START,\n    touchmove: INPUT_MOVE,\n    touchend: INPUT_END,\n    touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n    this.evTarget = TOUCH_TARGET_EVENTS;\n    this.targetIds = {};\n\n    Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n    handler: function MTEhandler(ev) {\n        var type = TOUCH_INPUT_MAP[ev.type];\n        var touches = getTouches.call(this, ev, type);\n        if (!touches) {\n            return;\n        }\n\n        this.callback(this.manager, type, {\n            pointers: touches[0],\n            changedPointers: touches[1],\n            pointerType: INPUT_TYPE_TOUCH,\n            srcEvent: ev\n        });\n    }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n    var allTouches = toArray(ev.touches);\n    var targetIds = this.targetIds;\n\n    // when there is only one touch, the process can be simplified\n    if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n        targetIds[allTouches[0].identifier] = true;\n        return [allTouches, allTouches];\n    }\n\n    var i,\n        targetTouches,\n        changedTouches = toArray(ev.changedTouches),\n        changedTargetTouches = [],\n        target = this.target;\n\n    // get target touches from touches\n    targetTouches = allTouches.filter(function(touch) {\n        return hasParent(touch.target, target);\n    });\n\n    // collect touches\n    if (type === INPUT_START) {\n        i = 0;\n        while (i < targetTouches.length) {\n            targetIds[targetTouches[i].identifier] = true;\n            i++;\n        }\n    }\n\n    // filter changed touches to only contain touches that exist in the collected target ids\n    i = 0;\n    while (i < changedTouches.length) {\n        if (targetIds[changedTouches[i].identifier]) {\n            changedTargetTouches.push(changedTouches[i]);\n        }\n\n        // cleanup removed touches\n        if (type & (INPUT_END | INPUT_CANCEL)) {\n            delete targetIds[changedTouches[i].identifier];\n        }\n        i++;\n    }\n\n    if (!changedTargetTouches.length) {\n        return;\n    }\n\n    return [\n        // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n        uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n        changedTargetTouches\n    ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n    Input.apply(this, arguments);\n\n    var handler = bindFn(this.handler, this);\n    this.touch = new TouchInput(this.manager, handler);\n    this.mouse = new MouseInput(this.manager, handler);\n\n    this.primaryTouch = null;\n    this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n    /**\n     * handle mouse and touch events\n     * @param {Hammer} manager\n     * @param {String} inputEvent\n     * @param {Object} inputData\n     */\n    handler: function TMEhandler(manager, inputEvent, inputData) {\n        var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n            isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n        if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n            return;\n        }\n\n        // when we're in a touch event, record touches to  de-dupe synthetic mouse event\n        if (isTouch) {\n            recordTouches.call(this, inputEvent, inputData);\n        } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n            return;\n        }\n\n        this.callback(manager, inputEvent, inputData);\n    },\n\n    /**\n     * remove the event listeners\n     */\n    destroy: function destroy() {\n        this.touch.destroy();\n        this.mouse.destroy();\n    }\n});\n\nfunction recordTouches(eventType, eventData) {\n    if (eventType & INPUT_START) {\n        this.primaryTouch = eventData.changedPointers[0].identifier;\n        setLastTouch.call(this, eventData);\n    } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n        setLastTouch.call(this, eventData);\n    }\n}\n\nfunction setLastTouch(eventData) {\n    var touch = eventData.changedPointers[0];\n\n    if (touch.identifier === this.primaryTouch) {\n        var lastTouch = {x: touch.clientX, y: touch.clientY};\n        this.lastTouches.push(lastTouch);\n        var lts = this.lastTouches;\n        var removeLastTouch = function() {\n            var i = lts.indexOf(lastTouch);\n            if (i > -1) {\n                lts.splice(i, 1);\n            }\n        };\n        setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n    }\n}\n\nfunction isSyntheticEvent(eventData) {\n    var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n    for (var i = 0; i < this.lastTouches.length; i++) {\n        var t = this.lastTouches[i];\n        var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n        if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n            return true;\n        }\n    }\n    return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n    this.manager = manager;\n    this.set(value);\n}\n\nTouchAction.prototype = {\n    /**\n     * set the touchAction value on the element or enable the polyfill\n     * @param {String} value\n     */\n    set: function(value) {\n        // find out the touch-action by the event handlers\n        if (value == TOUCH_ACTION_COMPUTE) {\n            value = this.compute();\n        }\n\n        if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n            this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n        }\n        this.actions = value.toLowerCase().trim();\n    },\n\n    /**\n     * just re-set the touchAction value\n     */\n    update: function() {\n        this.set(this.manager.options.touchAction);\n    },\n\n    /**\n     * compute the value for the touchAction property based on the recognizer's settings\n     * @returns {String} value\n     */\n    compute: function() {\n        var actions = [];\n        each(this.manager.recognizers, function(recognizer) {\n            if (boolOrFn(recognizer.options.enable, [recognizer])) {\n                actions = actions.concat(recognizer.getTouchAction());\n            }\n        });\n        return cleanTouchActions(actions.join(' '));\n    },\n\n    /**\n     * this method is called on each input cycle and provides the preventing of the browser behavior\n     * @param {Object} input\n     */\n    preventDefaults: function(input) {\n        var srcEvent = input.srcEvent;\n        var direction = input.offsetDirection;\n\n        // if the touch action did prevented once this session\n        if (this.manager.session.prevented) {\n            srcEvent.preventDefault();\n            return;\n        }\n\n        var actions = this.actions;\n        var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n        var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n        var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n        if (hasNone) {\n            //do not prevent defaults if this is a tap gesture\n\n            var isTapPointer = input.pointers.length === 1;\n            var isTapMovement = input.distance < 2;\n            var isTapTouchTime = input.deltaTime < 250;\n\n            if (isTapPointer && isTapMovement && isTapTouchTime) {\n                return;\n            }\n        }\n\n        if (hasPanX && hasPanY) {\n            // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n            return;\n        }\n\n        if (hasNone ||\n            (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n            (hasPanX && direction & DIRECTION_VERTICAL)) {\n            return this.preventSrc(srcEvent);\n        }\n    },\n\n    /**\n     * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n     * @param {Object} srcEvent\n     */\n    preventSrc: function(srcEvent) {\n        this.manager.session.prevented = true;\n        srcEvent.preventDefault();\n    }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n    // none\n    if (inStr(actions, TOUCH_ACTION_NONE)) {\n        return TOUCH_ACTION_NONE;\n    }\n\n    var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n    var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n    // if both pan-x and pan-y are set (different recognizers\n    // for different directions, e.g. horizontal pan but vertical swipe?)\n    // we need none (as otherwise with pan-x pan-y combined none of these\n    // recognizers will work, since the browser would handle all panning\n    if (hasPanX && hasPanY) {\n        return TOUCH_ACTION_NONE;\n    }\n\n    // pan-x OR pan-y\n    if (hasPanX || hasPanY) {\n        return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n    }\n\n    // manipulation\n    if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n        return TOUCH_ACTION_MANIPULATION;\n    }\n\n    return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n    if (!NATIVE_TOUCH_ACTION) {\n        return false;\n    }\n    var touchMap = {};\n    var cssSupports = window.CSS && window.CSS.supports;\n    ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n        // If css.supports is not supported but there is native touch-action assume it supports\n        // all values. This is the case for IE 10 and 11.\n        touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n    });\n    return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n *               Possible\n *                  |\n *            +-----+---------------+\n *            |                     |\n *      +-----+-----+               |\n *      |           |               |\n *   Failed      Cancelled          |\n *                          +-------+------+\n *                          |              |\n *                      Recognized       Began\n *                                         |\n *                                      Changed\n *                                         |\n *                                  Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n    this.options = assign({}, this.defaults, options || {});\n\n    this.id = uniqueId();\n\n    this.manager = null;\n\n    // default is enable true\n    this.options.enable = ifUndefined(this.options.enable, true);\n\n    this.state = STATE_POSSIBLE;\n\n    this.simultaneous = {};\n    this.requireFail = [];\n}\n\nRecognizer.prototype = {\n    /**\n     * @virtual\n     * @type {Object}\n     */\n    defaults: {},\n\n    /**\n     * set options\n     * @param {Object} options\n     * @return {Recognizer}\n     */\n    set: function(options) {\n        assign(this.options, options);\n\n        // also update the touchAction, in case something changed about the directions/enabled state\n        this.manager && this.manager.touchAction.update();\n        return this;\n    },\n\n    /**\n     * recognize simultaneous with an other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    recognizeWith: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n            return this;\n        }\n\n        var simultaneous = this.simultaneous;\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        if (!simultaneous[otherRecognizer.id]) {\n            simultaneous[otherRecognizer.id] = otherRecognizer;\n            otherRecognizer.recognizeWith(this);\n        }\n        return this;\n    },\n\n    /**\n     * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    dropRecognizeWith: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n            return this;\n        }\n\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        delete this.simultaneous[otherRecognizer.id];\n        return this;\n    },\n\n    /**\n     * recognizer can only run when an other is failing\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    requireFailure: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n            return this;\n        }\n\n        var requireFail = this.requireFail;\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        if (inArray(requireFail, otherRecognizer) === -1) {\n            requireFail.push(otherRecognizer);\n            otherRecognizer.requireFailure(this);\n        }\n        return this;\n    },\n\n    /**\n     * drop the requireFailure link. it does not remove the link on the other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    dropRequireFailure: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n            return this;\n        }\n\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        var index = inArray(this.requireFail, otherRecognizer);\n        if (index > -1) {\n            this.requireFail.splice(index, 1);\n        }\n        return this;\n    },\n\n    /**\n     * has require failures boolean\n     * @returns {boolean}\n     */\n    hasRequireFailures: function() {\n        return this.requireFail.length > 0;\n    },\n\n    /**\n     * if the recognizer can recognize simultaneous with an other recognizer\n     * @param {Recognizer} otherRecognizer\n     * @returns {Boolean}\n     */\n    canRecognizeWith: function(otherRecognizer) {\n        return !!this.simultaneous[otherRecognizer.id];\n    },\n\n    /**\n     * You should use `tryEmit` instead of `emit` directly to check\n     * that all the needed recognizers has failed before emitting.\n     * @param {Object} input\n     */\n    emit: function(input) {\n        var self = this;\n        var state = this.state;\n\n        function emit(event) {\n            self.manager.emit(event, input);\n        }\n\n        // 'panstart' and 'panmove'\n        if (state < STATE_ENDED) {\n            emit(self.options.event + stateStr(state));\n        }\n\n        emit(self.options.event); // simple 'eventName' events\n\n        if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n            emit(input.additionalEvent);\n        }\n\n        // panend and pancancel\n        if (state >= STATE_ENDED) {\n            emit(self.options.event + stateStr(state));\n        }\n    },\n\n    /**\n     * Check that all the require failure recognizers has failed,\n     * if true, it emits a gesture event,\n     * otherwise, setup the state to FAILED.\n     * @param {Object} input\n     */\n    tryEmit: function(input) {\n        if (this.canEmit()) {\n            return this.emit(input);\n        }\n        // it's failing anyway\n        this.state = STATE_FAILED;\n    },\n\n    /**\n     * can we emit?\n     * @returns {boolean}\n     */\n    canEmit: function() {\n        var i = 0;\n        while (i < this.requireFail.length) {\n            if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n                return false;\n            }\n            i++;\n        }\n        return true;\n    },\n\n    /**\n     * update the recognizer\n     * @param {Object} inputData\n     */\n    recognize: function(inputData) {\n        // make a new copy of the inputData\n        // so we can change the inputData without messing up the other recognizers\n        var inputDataClone = assign({}, inputData);\n\n        // is is enabled and allow recognizing?\n        if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n            this.reset();\n            this.state = STATE_FAILED;\n            return;\n        }\n\n        // reset when we've reached the end\n        if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n            this.state = STATE_POSSIBLE;\n        }\n\n        this.state = this.process(inputDataClone);\n\n        // the recognizer has recognized a gesture\n        // so trigger an event\n        if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n            this.tryEmit(inputDataClone);\n        }\n    },\n\n    /**\n     * return the state of the recognizer\n     * the actual recognizing happens in this method\n     * @virtual\n     * @param {Object} inputData\n     * @returns {Const} STATE\n     */\n    process: function(inputData) { }, // jshint ignore:line\n\n    /**\n     * return the preferred touch-action\n     * @virtual\n     * @returns {Array}\n     */\n    getTouchAction: function() { },\n\n    /**\n     * called when the gesture isn't allowed to recognize\n     * like when another is being recognized or it is disabled\n     * @virtual\n     */\n    reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n    if (state & STATE_CANCELLED) {\n        return 'cancel';\n    } else if (state & STATE_ENDED) {\n        return 'end';\n    } else if (state & STATE_CHANGED) {\n        return 'move';\n    } else if (state & STATE_BEGAN) {\n        return 'start';\n    }\n    return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n    if (direction == DIRECTION_DOWN) {\n        return 'down';\n    } else if (direction == DIRECTION_UP) {\n        return 'up';\n    } else if (direction == DIRECTION_LEFT) {\n        return 'left';\n    } else if (direction == DIRECTION_RIGHT) {\n        return 'right';\n    }\n    return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n    var manager = recognizer.manager;\n    if (manager) {\n        return manager.get(otherRecognizer);\n    }\n    return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n    Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof AttrRecognizer\n     */\n    defaults: {\n        /**\n         * @type {Number}\n         * @default 1\n         */\n        pointers: 1\n    },\n\n    /**\n     * Used to check if it the recognizer receives valid input, like input.distance > 10.\n     * @memberof AttrRecognizer\n     * @param {Object} input\n     * @returns {Boolean} recognized\n     */\n    attrTest: function(input) {\n        var optionPointers = this.options.pointers;\n        return optionPointers === 0 || input.pointers.length === optionPointers;\n    },\n\n    /**\n     * Process the input and return the state for the recognizer\n     * @memberof AttrRecognizer\n     * @param {Object} input\n     * @returns {*} State\n     */\n    process: function(input) {\n        var state = this.state;\n        var eventType = input.eventType;\n\n        var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n        var isValid = this.attrTest(input);\n\n        // on cancel input and we've recognized before, return STATE_CANCELLED\n        if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n            return state | STATE_CANCELLED;\n        } else if (isRecognized || isValid) {\n            if (eventType & INPUT_END) {\n                return state | STATE_ENDED;\n            } else if (!(state & STATE_BEGAN)) {\n                return STATE_BEGAN;\n            }\n            return state | STATE_CHANGED;\n        }\n        return STATE_FAILED;\n    }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n\n    this.pX = null;\n    this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof PanRecognizer\n     */\n    defaults: {\n        event: 'pan',\n        threshold: 10,\n        pointers: 1,\n        direction: DIRECTION_ALL\n    },\n\n    getTouchAction: function() {\n        var direction = this.options.direction;\n        var actions = [];\n        if (direction & DIRECTION_HORIZONTAL) {\n            actions.push(TOUCH_ACTION_PAN_Y);\n        }\n        if (direction & DIRECTION_VERTICAL) {\n            actions.push(TOUCH_ACTION_PAN_X);\n        }\n        return actions;\n    },\n\n    directionTest: function(input) {\n        var options = this.options;\n        var hasMoved = true;\n        var distance = input.distance;\n        var direction = input.direction;\n        var x = input.deltaX;\n        var y = input.deltaY;\n\n        // lock to axis?\n        if (!(direction & options.direction)) {\n            if (options.direction & DIRECTION_HORIZONTAL) {\n                direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n                hasMoved = x != this.pX;\n                distance = Math.abs(input.deltaX);\n            } else {\n                direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n                hasMoved = y != this.pY;\n                distance = Math.abs(input.deltaY);\n            }\n        }\n        input.direction = direction;\n        return hasMoved && distance > options.threshold && direction & options.direction;\n    },\n\n    attrTest: function(input) {\n        return AttrRecognizer.prototype.attrTest.call(this, input) &&\n            (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n    },\n\n    emit: function(input) {\n\n        this.pX = input.deltaX;\n        this.pY = input.deltaY;\n\n        var direction = directionStr(input.direction);\n\n        if (direction) {\n            input.additionalEvent = this.options.event + direction;\n        }\n        this._super.emit.call(this, input);\n    }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof PinchRecognizer\n     */\n    defaults: {\n        event: 'pinch',\n        threshold: 0,\n        pointers: 2\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_NONE];\n    },\n\n    attrTest: function(input) {\n        return this._super.attrTest.call(this, input) &&\n            (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n    },\n\n    emit: function(input) {\n        if (input.scale !== 1) {\n            var inOut = input.scale < 1 ? 'in' : 'out';\n            input.additionalEvent = this.options.event + inOut;\n        }\n        this._super.emit.call(this, input);\n    }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n    Recognizer.apply(this, arguments);\n\n    this._timer = null;\n    this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof PressRecognizer\n     */\n    defaults: {\n        event: 'press',\n        pointers: 1,\n        time: 251, // minimal time of the pointer to be pressed\n        threshold: 9 // a minimal movement is ok, but keep it low\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_AUTO];\n    },\n\n    process: function(input) {\n        var options = this.options;\n        var validPointers = input.pointers.length === options.pointers;\n        var validMovement = input.distance < options.threshold;\n        var validTime = input.deltaTime > options.time;\n\n        this._input = input;\n\n        // we only allow little movement\n        // and we've reached an end event, so a tap is possible\n        if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n            this.reset();\n        } else if (input.eventType & INPUT_START) {\n            this.reset();\n            this._timer = setTimeoutContext(function() {\n                this.state = STATE_RECOGNIZED;\n                this.tryEmit();\n            }, options.time, this);\n        } else if (input.eventType & INPUT_END) {\n            return STATE_RECOGNIZED;\n        }\n        return STATE_FAILED;\n    },\n\n    reset: function() {\n        clearTimeout(this._timer);\n    },\n\n    emit: function(input) {\n        if (this.state !== STATE_RECOGNIZED) {\n            return;\n        }\n\n        if (input && (input.eventType & INPUT_END)) {\n            this.manager.emit(this.options.event + 'up', input);\n        } else {\n            this._input.timeStamp = now();\n            this.manager.emit(this.options.event, this._input);\n        }\n    }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof RotateRecognizer\n     */\n    defaults: {\n        event: 'rotate',\n        threshold: 0,\n        pointers: 2\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_NONE];\n    },\n\n    attrTest: function(input) {\n        return this._super.attrTest.call(this, input) &&\n            (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n    }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof SwipeRecognizer\n     */\n    defaults: {\n        event: 'swipe',\n        threshold: 10,\n        velocity: 0.3,\n        direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n        pointers: 1\n    },\n\n    getTouchAction: function() {\n        return PanRecognizer.prototype.getTouchAction.call(this);\n    },\n\n    attrTest: function(input) {\n        var direction = this.options.direction;\n        var velocity;\n\n        if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n            velocity = input.overallVelocity;\n        } else if (direction & DIRECTION_HORIZONTAL) {\n            velocity = input.overallVelocityX;\n        } else if (direction & DIRECTION_VERTICAL) {\n            velocity = input.overallVelocityY;\n        }\n\n        return this._super.attrTest.call(this, input) &&\n            direction & input.offsetDirection &&\n            input.distance > this.options.threshold &&\n            input.maxPointers == this.options.pointers &&\n            abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n    },\n\n    emit: function(input) {\n        var direction = directionStr(input.offsetDirection);\n        if (direction) {\n            this.manager.emit(this.options.event + direction, input);\n        }\n\n        this.manager.emit(this.options.event, input);\n    }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n    Recognizer.apply(this, arguments);\n\n    // previous time and center,\n    // used for tap counting\n    this.pTime = false;\n    this.pCenter = false;\n\n    this._timer = null;\n    this._input = null;\n    this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof PinchRecognizer\n     */\n    defaults: {\n        event: 'tap',\n        pointers: 1,\n        taps: 1,\n        interval: 300, // max time between the multi-tap taps\n        time: 250, // max time of the pointer to be down (like finger on the screen)\n        threshold: 9, // a minimal movement is ok, but keep it low\n        posThreshold: 10 // a multi-tap can be a bit off the initial position\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_MANIPULATION];\n    },\n\n    process: function(input) {\n        var options = this.options;\n\n        var validPointers = input.pointers.length === options.pointers;\n        var validMovement = input.distance < options.threshold;\n        var validTouchTime = input.deltaTime < options.time;\n\n        this.reset();\n\n        if ((input.eventType & INPUT_START) && (this.count === 0)) {\n            return this.failTimeout();\n        }\n\n        // we only allow little movement\n        // and we've reached an end event, so a tap is possible\n        if (validMovement && validTouchTime && validPointers) {\n            if (input.eventType != INPUT_END) {\n                return this.failTimeout();\n            }\n\n            var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n            var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n            this.pTime = input.timeStamp;\n            this.pCenter = input.center;\n\n            if (!validMultiTap || !validInterval) {\n                this.count = 1;\n            } else {\n                this.count += 1;\n            }\n\n            this._input = input;\n\n            // if tap count matches we have recognized it,\n            // else it has began recognizing...\n            var tapCount = this.count % options.taps;\n            if (tapCount === 0) {\n                // no failing requirements, immediately trigger the tap event\n                // or wait as long as the multitap interval to trigger\n                if (!this.hasRequireFailures()) {\n                    return STATE_RECOGNIZED;\n                } else {\n                    this._timer = setTimeoutContext(function() {\n                        this.state = STATE_RECOGNIZED;\n                        this.tryEmit();\n                    }, options.interval, this);\n                    return STATE_BEGAN;\n                }\n            }\n        }\n        return STATE_FAILED;\n    },\n\n    failTimeout: function() {\n        this._timer = setTimeoutContext(function() {\n            this.state = STATE_FAILED;\n        }, this.options.interval, this);\n        return STATE_FAILED;\n    },\n\n    reset: function() {\n        clearTimeout(this._timer);\n    },\n\n    emit: function() {\n        if (this.state == STATE_RECOGNIZED) {\n            this._input.tapCount = this.count;\n            this.manager.emit(this.options.event, this._input);\n        }\n    }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n    options = options || {};\n    options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n    return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n    /**\n     * set if DOM events are being triggered.\n     * But this is slower and unused by simple implementations, so disabled by default.\n     * @type {Boolean}\n     * @default false\n     */\n    domEvents: false,\n\n    /**\n     * The value for the touchAction property/fallback.\n     * When set to `compute` it will magically set the correct value based on the added recognizers.\n     * @type {String}\n     * @default compute\n     */\n    touchAction: TOUCH_ACTION_COMPUTE,\n\n    /**\n     * @type {Boolean}\n     * @default true\n     */\n    enable: true,\n\n    /**\n     * EXPERIMENTAL FEATURE -- can be removed/changed\n     * Change the parent input target element.\n     * If Null, then it is being set the to main element.\n     * @type {Null|EventTarget}\n     * @default null\n     */\n    inputTarget: null,\n\n    /**\n     * force an input class\n     * @type {Null|Function}\n     * @default null\n     */\n    inputClass: null,\n\n    /**\n     * Default recognizer setup when calling `Hammer()`\n     * When creating a new Manager these will be skipped.\n     * @type {Array}\n     */\n    preset: [\n        // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n        [RotateRecognizer, {enable: false}],\n        [PinchRecognizer, {enable: false}, ['rotate']],\n        [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n        [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n        [TapRecognizer],\n        [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n        [PressRecognizer]\n    ],\n\n    /**\n     * Some CSS properties can be used to improve the working of Hammer.\n     * Add them to this method and they will be set when creating a new Manager.\n     * @namespace\n     */\n    cssProps: {\n        /**\n         * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userSelect: 'none',\n\n        /**\n         * Disable the Windows Phone grippers when pressing an element.\n         * @type {String}\n         * @default 'none'\n         */\n        touchSelect: 'none',\n\n        /**\n         * Disables the default callout shown when you touch and hold a touch target.\n         * On iOS, when you touch and hold a touch target such as a link, Safari displays\n         * a callout containing information about the link. This property allows you to disable that callout.\n         * @type {String}\n         * @default 'none'\n         */\n        touchCallout: 'none',\n\n        /**\n         * Specifies whether zooming is enabled. Used by IE10>\n         * @type {String}\n         * @default 'none'\n         */\n        contentZooming: 'none',\n\n        /**\n         * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userDrag: 'none',\n\n        /**\n         * Overrides the highlight color shown when the user taps a link or a JavaScript\n         * clickable element in iOS. This property obeys the alpha value, if specified.\n         * @type {String}\n         * @default 'rgba(0,0,0,0)'\n         */\n        tapHighlightColor: 'rgba(0,0,0,0)'\n    }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n    this.options = assign({}, Hammer.defaults, options || {});\n\n    this.options.inputTarget = this.options.inputTarget || element;\n\n    this.handlers = {};\n    this.session = {};\n    this.recognizers = [];\n    this.oldCssProps = {};\n\n    this.element = element;\n    this.input = createInputInstance(this);\n    this.touchAction = new TouchAction(this, this.options.touchAction);\n\n    toggleCssProps(this, true);\n\n    each(this.options.recognizers, function(item) {\n        var recognizer = this.add(new (item[0])(item[1]));\n        item[2] && recognizer.recognizeWith(item[2]);\n        item[3] && recognizer.requireFailure(item[3]);\n    }, this);\n}\n\nManager.prototype = {\n    /**\n     * set options\n     * @param {Object} options\n     * @returns {Manager}\n     */\n    set: function(options) {\n        assign(this.options, options);\n\n        // Options that need a little more setup\n        if (options.touchAction) {\n            this.touchAction.update();\n        }\n        if (options.inputTarget) {\n            // Clean up existing event listeners and reinitialize\n            this.input.destroy();\n            this.input.target = options.inputTarget;\n            this.input.init();\n        }\n        return this;\n    },\n\n    /**\n     * stop recognizing for this session.\n     * This session will be discarded, when a new [input]start event is fired.\n     * When forced, the recognizer cycle is stopped immediately.\n     * @param {Boolean} [force]\n     */\n    stop: function(force) {\n        this.session.stopped = force ? FORCED_STOP : STOP;\n    },\n\n    /**\n     * run the recognizers!\n     * called by the inputHandler function on every movement of the pointers (touches)\n     * it walks through all the recognizers and tries to detect the gesture that is being made\n     * @param {Object} inputData\n     */\n    recognize: function(inputData) {\n        var session = this.session;\n        if (session.stopped) {\n            return;\n        }\n\n        // run the touch-action polyfill\n        this.touchAction.preventDefaults(inputData);\n\n        var recognizer;\n        var recognizers = this.recognizers;\n\n        // this holds the recognizer that is being recognized.\n        // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n        // if no recognizer is detecting a thing, it is set to `null`\n        var curRecognizer = session.curRecognizer;\n\n        // reset when the last recognizer is recognized\n        // or when we're in a new session\n        if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n            curRecognizer = session.curRecognizer = null;\n        }\n\n        var i = 0;\n        while (i < recognizers.length) {\n            recognizer = recognizers[i];\n\n            // find out if we are allowed try to recognize the input for this one.\n            // 1.   allow if the session is NOT forced stopped (see the .stop() method)\n            // 2.   allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n            //      that is being recognized.\n            // 3.   allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n            //      this can be setup with the `recognizeWith()` method on the recognizer.\n            if (session.stopped !== FORCED_STOP && ( // 1\n                    !curRecognizer || recognizer == curRecognizer || // 2\n                    recognizer.canRecognizeWith(curRecognizer))) { // 3\n                recognizer.recognize(inputData);\n            } else {\n                recognizer.reset();\n            }\n\n            // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n            // current active recognizer. but only if we don't already have an active recognizer\n            if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n                curRecognizer = session.curRecognizer = recognizer;\n            }\n            i++;\n        }\n    },\n\n    /**\n     * get a recognizer by its event name.\n     * @param {Recognizer|String} recognizer\n     * @returns {Recognizer|Null}\n     */\n    get: function(recognizer) {\n        if (recognizer instanceof Recognizer) {\n            return recognizer;\n        }\n\n        var recognizers = this.recognizers;\n        for (var i = 0; i < recognizers.length; i++) {\n            if (recognizers[i].options.event == recognizer) {\n                return recognizers[i];\n            }\n        }\n        return null;\n    },\n\n    /**\n     * add a recognizer to the manager\n     * existing recognizers with the same event name will be removed\n     * @param {Recognizer} recognizer\n     * @returns {Recognizer|Manager}\n     */\n    add: function(recognizer) {\n        if (invokeArrayArg(recognizer, 'add', this)) {\n            return this;\n        }\n\n        // remove existing\n        var existing = this.get(recognizer.options.event);\n        if (existing) {\n            this.remove(existing);\n        }\n\n        this.recognizers.push(recognizer);\n        recognizer.manager = this;\n\n        this.touchAction.update();\n        return recognizer;\n    },\n\n    /**\n     * remove a recognizer by name or instance\n     * @param {Recognizer|String} recognizer\n     * @returns {Manager}\n     */\n    remove: function(recognizer) {\n        if (invokeArrayArg(recognizer, 'remove', this)) {\n            return this;\n        }\n\n        recognizer = this.get(recognizer);\n\n        // let's make sure this recognizer exists\n        if (recognizer) {\n            var recognizers = this.recognizers;\n            var index = inArray(recognizers, recognizer);\n\n            if (index !== -1) {\n                recognizers.splice(index, 1);\n                this.touchAction.update();\n            }\n        }\n\n        return this;\n    },\n\n    /**\n     * bind event\n     * @param {String} events\n     * @param {Function} handler\n     * @returns {EventEmitter} this\n     */\n    on: function(events, handler) {\n        if (events === undefined) {\n            return;\n        }\n        if (handler === undefined) {\n            return;\n        }\n\n        var handlers = this.handlers;\n        each(splitStr(events), function(event) {\n            handlers[event] = handlers[event] || [];\n            handlers[event].push(handler);\n        });\n        return this;\n    },\n\n    /**\n     * unbind event, leave emit blank to remove all handlers\n     * @param {String} events\n     * @param {Function} [handler]\n     * @returns {EventEmitter} this\n     */\n    off: function(events, handler) {\n        if (events === undefined) {\n            return;\n        }\n\n        var handlers = this.handlers;\n        each(splitStr(events), function(event) {\n            if (!handler) {\n                delete handlers[event];\n            } else {\n                handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n            }\n        });\n        return this;\n    },\n\n    /**\n     * emit event to the listeners\n     * @param {String} event\n     * @param {Object} data\n     */\n    emit: function(event, data) {\n        // we also want to trigger dom events\n        if (this.options.domEvents) {\n            triggerDomEvent(event, data);\n        }\n\n        // no handlers, so skip it all\n        var handlers = this.handlers[event] && this.handlers[event].slice();\n        if (!handlers || !handlers.length) {\n            return;\n        }\n\n        data.type = event;\n        data.preventDefault = function() {\n            data.srcEvent.preventDefault();\n        };\n\n        var i = 0;\n        while (i < handlers.length) {\n            handlers[i](data);\n            i++;\n        }\n    },\n\n    /**\n     * destroy the manager and unbinds all events\n     * it doesn't unbind dom events, that is the user own responsibility\n     */\n    destroy: function() {\n        this.element && toggleCssProps(this, false);\n\n        this.handlers = {};\n        this.session = {};\n        this.input.destroy();\n        this.element = null;\n    }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n    var element = manager.element;\n    if (!element.style) {\n        return;\n    }\n    var prop;\n    each(manager.options.cssProps, function(value, name) {\n        prop = prefixed(element.style, name);\n        if (add) {\n            manager.oldCssProps[prop] = element.style[prop];\n            element.style[prop] = value;\n        } else {\n            element.style[prop] = manager.oldCssProps[prop] || '';\n        }\n    });\n    if (!add) {\n        manager.oldCssProps = {};\n    }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n    var gestureEvent = document.createEvent('Event');\n    gestureEvent.initEvent(event, true, true);\n    gestureEvent.gesture = data;\n    data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n    INPUT_START: INPUT_START,\n    INPUT_MOVE: INPUT_MOVE,\n    INPUT_END: INPUT_END,\n    INPUT_CANCEL: INPUT_CANCEL,\n\n    STATE_POSSIBLE: STATE_POSSIBLE,\n    STATE_BEGAN: STATE_BEGAN,\n    STATE_CHANGED: STATE_CHANGED,\n    STATE_ENDED: STATE_ENDED,\n    STATE_RECOGNIZED: STATE_RECOGNIZED,\n    STATE_CANCELLED: STATE_CANCELLED,\n    STATE_FAILED: STATE_FAILED,\n\n    DIRECTION_NONE: DIRECTION_NONE,\n    DIRECTION_LEFT: DIRECTION_LEFT,\n    DIRECTION_RIGHT: DIRECTION_RIGHT,\n    DIRECTION_UP: DIRECTION_UP,\n    DIRECTION_DOWN: DIRECTION_DOWN,\n    DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n    DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n    DIRECTION_ALL: DIRECTION_ALL,\n\n    Manager: Manager,\n    Input: Input,\n    TouchAction: TouchAction,\n\n    TouchInput: TouchInput,\n    MouseInput: MouseInput,\n    PointerEventInput: PointerEventInput,\n    TouchMouseInput: TouchMouseInput,\n    SingleTouchInput: SingleTouchInput,\n\n    Recognizer: Recognizer,\n    AttrRecognizer: AttrRecognizer,\n    Tap: TapRecognizer,\n    Pan: PanRecognizer,\n    Swipe: SwipeRecognizer,\n    Pinch: PinchRecognizer,\n    Rotate: RotateRecognizer,\n    Press: PressRecognizer,\n\n    on: addEventListeners,\n    off: removeEventListeners,\n    each: each,\n    merge: merge,\n    extend: extend,\n    assign: assign,\n    inherit: inherit,\n    bindFn: bindFn,\n    prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n//  style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n        return Hammer;\n    }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else {}\n\n})(window, document, 'Hammer');\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/hammerjs/hammer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/ids/dist/index.esm.js":
  /*!********************************************!*\
    !*** ./node_modules/ids/dist/index.esm.js ***!
    \********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hat_1 = createCommonjsModule(function (module) {\nvar hat = module.exports = function (bits, base) {\n    if (!base) base = 16;\n    if (bits === undefined) bits = 128;\n    if (bits <= 0) return '0';\n    \n    var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n    for (var i = 2; digits === Infinity; i *= 2) {\n        digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n    }\n    \n    var rem = digits - Math.floor(digits);\n    \n    var res = '';\n    \n    for (var i = 0; i < Math.floor(digits); i++) {\n        var x = Math.floor(Math.random() * base).toString(base);\n        res = x + res;\n    }\n    \n    if (rem) {\n        var b = Math.pow(base, rem);\n        var x = Math.floor(Math.random() * b).toString(base);\n        res = x + res;\n    }\n    \n    var parsed = parseInt(res, base);\n    if (parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n        return hat(bits, base)\n    }\n    else return res;\n};\n\nhat.rack = function (bits, base, expandBy) {\n    var fn = function (data) {\n        var iters = 0;\n        do {\n            if (iters ++ > 10) {\n                if (expandBy) bits += expandBy;\n                else throw new Error('too many ID collisions, use more bits')\n            }\n            \n            var id = hat(bits, base);\n        } while (Object.hasOwnProperty.call(hats, id));\n        \n        hats[id] = data;\n        return id;\n    };\n    var hats = fn.hats = {};\n    \n    fn.get = function (id) {\n        return fn.hats[id];\n    };\n    \n    fn.set = function (id, value) {\n        fn.hats[id] = value;\n        return fn;\n    };\n    \n    fn.bits = bits || 128;\n    fn.base = base || 16;\n    return fn;\n};\n});\n\n/**\n * Create a new id generator / cache instance.\n *\n * You may optionally provide a seed that is used internally.\n *\n * @param {Seed} seed\n */\n\nfunction Ids(seed) {\n  if (!(this instanceof Ids)) {\n    return new Ids(seed);\n  }\n\n  seed = seed || [128, 36, 1];\n  this._seed = seed.length ? hat_1.rack(seed[0], seed[1], seed[2]) : seed;\n}\n/**\n * Generate a next id.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\n\nIds.prototype.next = function (element) {\n  return this._seed(element || true);\n};\n/**\n * Generate a next id with a given prefix.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\n\n\nIds.prototype.nextPrefixed = function (prefix, element) {\n  var id;\n\n  do {\n    id = prefix + this.next(true);\n  } while (this.assigned(id)); // claim {prefix}{random}\n\n\n  this.claim(id, element); // return\n\n  return id;\n};\n/**\n * Manually claim an existing id.\n *\n * @param {String} id\n * @param {String} [element] element the id is claimed by\n */\n\n\nIds.prototype.claim = function (id, element) {\n  this._seed.set(id, element || true);\n};\n/**\n * Returns true if the given id has already been assigned.\n *\n * @param  {String} id\n * @return {Boolean}\n */\n\n\nIds.prototype.assigned = function (id) {\n  return this._seed.get(id) || false;\n};\n/**\n * Unclaim an id.\n *\n * @param  {String} id the id to unclaim\n */\n\n\nIds.prototype.unclaim = function (id) {\n  delete this._seed.hats[id];\n};\n/**\n * Clear all claimed ids.\n */\n\n\nIds.prototype.clear = function () {\n  var hats = this._seed.hats,\n      id;\n\n  for (id in hats) {\n    this.unclaim(id);\n  }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Ids);\n//# sourceMappingURL=index.esm.js.map\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/ids/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/inherits/inherits_browser.js":
  /*!***************************************************!*\
    !*** ./node_modules/inherits/inherits_browser.js ***!
    \***************************************************/
  /***/ ((module) => {
  
  eval("if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/inherits/inherits_browser.js?");
  
  /***/ }),
  
  /***/ "./node_modules/jquery/dist/jquery.js":
  /*!********************************************!*\
    !*** ./node_modules/jquery/dist/jquery.js ***!
    \********************************************/
  /***/ (function(module, exports) {
  
  eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif (  true && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( true ) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n\t\treturn jQuery;\n\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/jquery/dist/jquery.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_DataView.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_DataView.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_DataView.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Hash.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/_Hash.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var hashClear = __webpack_require__(/*! ./_hashClear */ \"./node_modules/lodash/_hashClear.js\"),\n    hashDelete = __webpack_require__(/*! ./_hashDelete */ \"./node_modules/lodash/_hashDelete.js\"),\n    hashGet = __webpack_require__(/*! ./_hashGet */ \"./node_modules/lodash/_hashGet.js\"),\n    hashHas = __webpack_require__(/*! ./_hashHas */ \"./node_modules/lodash/_hashHas.js\"),\n    hashSet = __webpack_require__(/*! ./_hashSet */ \"./node_modules/lodash/_hashSet.js\");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Hash.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_LazyWrapper.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_LazyWrapper.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    baseLodash = __webpack_require__(/*! ./_baseLodash */ \"./node_modules/lodash/_baseLodash.js\");\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n  this.__wrapped__ = value;\n  this.__actions__ = [];\n  this.__dir__ = 1;\n  this.__filtered__ = false;\n  this.__iteratees__ = [];\n  this.__takeCount__ = MAX_ARRAY_LENGTH;\n  this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_LazyWrapper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_ListCache.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_ListCache.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ \"./node_modules/lodash/_listCacheClear.js\"),\n    listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ \"./node_modules/lodash/_listCacheDelete.js\"),\n    listCacheGet = __webpack_require__(/*! ./_listCacheGet */ \"./node_modules/lodash/_listCacheGet.js\"),\n    listCacheHas = __webpack_require__(/*! ./_listCacheHas */ \"./node_modules/lodash/_listCacheHas.js\"),\n    listCacheSet = __webpack_require__(/*! ./_listCacheSet */ \"./node_modules/lodash/_listCacheSet.js\");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_ListCache.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_LodashWrapper.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_LodashWrapper.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    baseLodash = __webpack_require__(/*! ./_baseLodash */ \"./node_modules/lodash/_baseLodash.js\");\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n  this.__wrapped__ = value;\n  this.__actions__ = [];\n  this.__chain__ = !!chainAll;\n  this.__index__ = 0;\n  this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_LodashWrapper.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Map.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/_Map.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Map.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_MapCache.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_MapCache.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ \"./node_modules/lodash/_mapCacheClear.js\"),\n    mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ \"./node_modules/lodash/_mapCacheDelete.js\"),\n    mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ \"./node_modules/lodash/_mapCacheGet.js\"),\n    mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ \"./node_modules/lodash/_mapCacheHas.js\"),\n    mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ \"./node_modules/lodash/_mapCacheSet.js\");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_MapCache.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Promise.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_Promise.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Promise.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Set.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/_Set.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Set.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_SetCache.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_SetCache.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\"),\n    setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ \"./node_modules/lodash/_setCacheAdd.js\"),\n    setCacheHas = __webpack_require__(/*! ./_setCacheHas */ \"./node_modules/lodash/_setCacheHas.js\");\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_SetCache.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Stack.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_Stack.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    stackClear = __webpack_require__(/*! ./_stackClear */ \"./node_modules/lodash/_stackClear.js\"),\n    stackDelete = __webpack_require__(/*! ./_stackDelete */ \"./node_modules/lodash/_stackDelete.js\"),\n    stackGet = __webpack_require__(/*! ./_stackGet */ \"./node_modules/lodash/_stackGet.js\"),\n    stackHas = __webpack_require__(/*! ./_stackHas */ \"./node_modules/lodash/_stackHas.js\"),\n    stackSet = __webpack_require__(/*! ./_stackSet */ \"./node_modules/lodash/_stackSet.js\");\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Stack.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Symbol.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/_Symbol.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Symbol.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_Uint8Array.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_Uint8Array.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_Uint8Array.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_WeakMap.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_WeakMap.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_WeakMap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_apply.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_apply.js ***!
    \***************************************/
  /***/ ((module) => {
  
  eval("/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_apply.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayAggregator.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_arrayAggregator.js ***!
    \*************************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    var value = array[index];\n    setter(accumulator, value, iteratee(value), array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayAggregator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayEach.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_arrayEach.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nmodule.exports = arrayEach;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayEach.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayFilter.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_arrayFilter.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayFilter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayIncludes.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_arrayIncludes.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ \"./node_modules/lodash/_baseIndexOf.js\");\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayIncludes.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayIncludesWith.js":
  /*!***************************************************!*\
    !*** ./node_modules/lodash/_arrayIncludesWith.js ***!
    \***************************************************/
  /***/ ((module) => {
  
  eval("/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayIncludesWith.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayLikeKeys.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./node_modules/lodash/_baseTimes.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayLikeKeys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayMap.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_arrayMap.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayMap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayPush.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_arrayPush.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayPush.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arrayReduce.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_arrayReduce.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayReduce;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arrayReduce.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_arraySome.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_arraySome.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_arraySome.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_assignValue.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_assignValue.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_assignValue.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_assocIndexOf.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_assocIndexOf.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_assocIndexOf.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseAggregator.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_baseAggregator.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\");\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n  baseEach(collection, function(value, key, collection) {\n    setter(accumulator, value, iteratee(value), collection);\n  });\n  return accumulator;\n}\n\nmodule.exports = baseAggregator;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseAggregator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseAssignValue.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseAssignValue.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\");\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseAssignValue.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseCreate.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseCreate.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nmodule.exports = baseCreate;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseCreate.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseDifference.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_baseDifference.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./node_modules/lodash/_arrayIncludes.js\"),\n    arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ \"./node_modules/lodash/_arrayIncludesWith.js\"),\n    arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      isCommon = true,\n      length = array.length,\n      result = [],\n      valuesLength = values.length;\n\n  if (!length) {\n    return result;\n  }\n  if (iteratee) {\n    values = arrayMap(values, baseUnary(iteratee));\n  }\n  if (comparator) {\n    includes = arrayIncludesWith;\n    isCommon = false;\n  }\n  else if (values.length >= LARGE_ARRAY_SIZE) {\n    includes = cacheHas;\n    isCommon = false;\n    values = new SetCache(values);\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee == null ? value : iteratee(value);\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var valuesIndex = valuesLength;\n      while (valuesIndex--) {\n        if (values[valuesIndex] === computed) {\n          continue outer;\n        }\n      }\n      result.push(value);\n    }\n    else if (!includes(values, computed, comparator)) {\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseDifference;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseDifference.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseEach.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseEach.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ \"./node_modules/lodash/_baseForOwn.js\"),\n    createBaseEach = __webpack_require__(/*! ./_createBaseEach */ \"./node_modules/lodash/_createBaseEach.js\");\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseEach.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseFilter.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseFilter.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\");\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n  var result = [];\n  baseEach(collection, function(value, index, collection) {\n    if (predicate(value, index, collection)) {\n      result.push(value);\n    }\n  });\n  return result;\n}\n\nmodule.exports = baseFilter;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseFilter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseFindIndex.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_baseFindIndex.js ***!
    \***********************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseFindIndex.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseFlatten.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseFlatten.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n    isFlattenable = __webpack_require__(/*! ./_isFlattenable */ \"./node_modules/lodash/_isFlattenable.js\");\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseFlatten.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseFor.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseFor.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ \"./node_modules/lodash/_createBaseFor.js\");\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseFor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseForOwn.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseForOwn.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseFor = __webpack_require__(/*! ./_baseFor */ \"./node_modules/lodash/_baseFor.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseForOwn.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseGet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseGet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseGet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseGetAllKeys.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseGetAllKeys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseGetTag.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseGetTag.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    getRawTag = __webpack_require__(/*! ./_getRawTag */ \"./node_modules/lodash/_getRawTag.js\"),\n    objectToString = __webpack_require__(/*! ./_objectToString */ \"./node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseGetTag.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseHasIn.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseHasIn.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseHasIn.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIndexOf.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseIndexOf.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ \"./node_modules/lodash/_baseFindIndex.js\"),\n    baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ \"./node_modules/lodash/_baseIsNaN.js\"),\n    strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ \"./node_modules/lodash/_strictIndexOf.js\");\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIndexOf.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsArguments.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseIsArguments.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsArguments.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsEqual.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseIsEqual.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ \"./node_modules/lodash/_baseIsEqualDeep.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsEqual.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsEqualDeep.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./node_modules/lodash/_equalArrays.js\"),\n    equalByTag = __webpack_require__(/*! ./_equalByTag */ \"./node_modules/lodash/_equalByTag.js\"),\n    equalObjects = __webpack_require__(/*! ./_equalObjects */ \"./node_modules/lodash/_equalObjects.js\"),\n    getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsEqualDeep.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsMatch.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseIsMatch.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./node_modules/lodash/_baseIsEqual.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsMatch.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsNaN.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseIsNaN.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsNaN.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsNative.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_baseIsNative.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isMasked = __webpack_require__(/*! ./_isMasked */ \"./node_modules/lodash/_isMasked.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsNative.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIsTypedArray.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIsTypedArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseIteratee.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_baseIteratee.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseMatches = __webpack_require__(/*! ./_baseMatches */ \"./node_modules/lodash/_baseMatches.js\"),\n    baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ \"./node_modules/lodash/_baseMatchesProperty.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    property = __webpack_require__(/*! ./property */ \"./node_modules/lodash/property.js\");\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseIteratee.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseKeys.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseKeys.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n    nativeKeys = __webpack_require__(/*! ./_nativeKeys */ \"./node_modules/lodash/_nativeKeys.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseKeys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseLodash.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseLodash.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n  // No operation performed.\n}\n\nmodule.exports = baseLodash;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseLodash.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseMap.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseMap.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseMap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseMatches.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseMatches.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ \"./node_modules/lodash/_baseIsMatch.js\"),\n    getMatchData = __webpack_require__(/*! ./_getMatchData */ \"./node_modules/lodash/_getMatchData.js\"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./node_modules/lodash/_matchesStrictComparable.js\");\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseMatches.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseMatchesProperty.js":
  /*!*****************************************************!*\
    !*** ./node_modules/lodash/_baseMatchesProperty.js ***!
    \*****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./node_modules/lodash/_baseIsEqual.js\"),\n    get = __webpack_require__(/*! ./get */ \"./node_modules/lodash/get.js\"),\n    hasIn = __webpack_require__(/*! ./hasIn */ \"./node_modules/lodash/hasIn.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./node_modules/lodash/_isStrictComparable.js\"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./node_modules/lodash/_matchesStrictComparable.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseMatchesProperty.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_basePick.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_basePick.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var basePickBy = __webpack_require__(/*! ./_basePickBy */ \"./node_modules/lodash/_basePickBy.js\"),\n    hasIn = __webpack_require__(/*! ./hasIn */ \"./node_modules/lodash/hasIn.js\");\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n  return basePickBy(object, paths, function(value, path) {\n    return hasIn(object, path);\n  });\n}\n\nmodule.exports = basePick;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_basePick.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_basePickBy.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_basePickBy.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\"),\n    baseSet = __webpack_require__(/*! ./_baseSet */ \"./node_modules/lodash/_baseSet.js\"),\n    castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\");\n\n/**\n * The base implementation of  `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n  var index = -1,\n      length = paths.length,\n      result = {};\n\n  while (++index < length) {\n    var path = paths[index],\n        value = baseGet(object, path);\n\n    if (predicate(value, path)) {\n      baseSet(result, castPath(path, object), value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = basePickBy;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_basePickBy.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseProperty.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_baseProperty.js ***!
    \**********************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseProperty.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_basePropertyDeep.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_basePropertyDeep.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\");\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_basePropertyDeep.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_basePullAt.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_basePullAt.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseUnset = __webpack_require__(/*! ./_baseUnset */ \"./node_modules/lodash/_baseUnset.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n  var length = array ? indexes.length : 0,\n      lastIndex = length - 1;\n\n  while (length--) {\n    var index = indexes[length];\n    if (length == lastIndex || index !== previous) {\n      var previous = index;\n      if (isIndex(index)) {\n        splice.call(array, index, 1);\n      } else {\n        baseUnset(array, index);\n      }\n    }\n  }\n  return array;\n}\n\nmodule.exports = basePullAt;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_basePullAt.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseReduce.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseReduce.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n *  `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n  eachFunc(collection, function(value, index, collection) {\n    accumulator = initAccum\n      ? (initAccum = false, value)\n      : iteratee(accumulator, value, index, collection);\n  });\n  return accumulator;\n}\n\nmodule.exports = baseReduce;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseReduce.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseRest.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseRest.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    overRest = __webpack_require__(/*! ./_overRest */ \"./node_modules/lodash/_overRest.js\"),\n    setToString = __webpack_require__(/*! ./_setToString */ \"./node_modules/lodash/_setToString.js\");\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseRest.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseSet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseSet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n  if (!isObject(object)) {\n    return object;\n  }\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      lastIndex = length - 1,\n      nested = object;\n\n  while (nested != null && ++index < length) {\n    var key = toKey(path[index]),\n        newValue = value;\n\n    if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n      return object;\n    }\n\n    if (index != lastIndex) {\n      var objValue = nested[key];\n      newValue = customizer ? customizer(objValue, key, nested) : undefined;\n      if (newValue === undefined) {\n        newValue = isObject(objValue)\n          ? objValue\n          : (isIndex(path[index + 1]) ? [] : {});\n      }\n    }\n    assignValue(nested, key, newValue);\n    nested = nested[key];\n  }\n  return object;\n}\n\nmodule.exports = baseSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseSetData.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_baseSetData.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    metaMap = __webpack_require__(/*! ./_metaMap */ \"./node_modules/lodash/_metaMap.js\");\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n  metaMap.set(func, data);\n  return func;\n};\n\nmodule.exports = baseSetData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseSetData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseSetToString.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_baseSetToString.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var constant = __webpack_require__(/*! ./constant */ \"./node_modules/lodash/constant.js\"),\n    defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseSetToString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseSlice.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseSlice.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nmodule.exports = baseSlice;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseSlice.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseTimes.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseTimes.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseTimes.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseToString.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_baseToString.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseToString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseTrim.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseTrim.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var trimmedEndIndex = __webpack_require__(/*! ./_trimmedEndIndex */ \"./node_modules/lodash/_trimmedEndIndex.js\");\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseTrim.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseUnary.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseUnary.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseUnary.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseUniq.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_baseUniq.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./node_modules/lodash/_arrayIncludes.js\"),\n    arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ \"./node_modules/lodash/_arrayIncludesWith.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\"),\n    createSet = __webpack_require__(/*! ./_createSet */ \"./node_modules/lodash/_createSet.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      length = array.length,\n      isCommon = true,\n      result = [],\n      seen = result;\n\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith;\n  }\n  else if (length >= LARGE_ARRAY_SIZE) {\n    var set = iteratee ? null : createSet(array);\n    if (set) {\n      return setToArray(set);\n    }\n    isCommon = false;\n    includes = cacheHas;\n    seen = new SetCache;\n  }\n  else {\n    seen = iteratee ? [] : result;\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee ? iteratee(value) : value;\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n    else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseUniq;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseUniq.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseUnset.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_baseUnset.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    last = __webpack_require__(/*! ./last */ \"./node_modules/lodash/last.js\"),\n    parent = __webpack_require__(/*! ./_parent */ \"./node_modules/lodash/_parent.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n  path = castPath(path, object);\n  object = parent(object, path);\n  return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseUnset.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseValues.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_baseValues.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\");\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n  return arrayMap(props, function(key) {\n    return object[key];\n  });\n}\n\nmodule.exports = baseValues;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseValues.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_baseXor.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_baseXor.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseDifference = __webpack_require__(/*! ./_baseDifference */ \"./node_modules/lodash/_baseDifference.js\"),\n    baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"./node_modules/lodash/_baseFlatten.js\"),\n    baseUniq = __webpack_require__(/*! ./_baseUniq */ \"./node_modules/lodash/_baseUniq.js\");\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n  var length = arrays.length;\n  if (length < 2) {\n    return length ? baseUniq(arrays[0]) : [];\n  }\n  var index = -1,\n      result = Array(length);\n\n  while (++index < length) {\n    var array = arrays[index],\n        othIndex = -1;\n\n    while (++othIndex < length) {\n      if (othIndex != index) {\n        result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n      }\n    }\n  }\n  return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_baseXor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_cacheHas.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_cacheHas.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_cacheHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_castFunction.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_castFunction.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n  return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_castFunction.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_castPath.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_castPath.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    stringToPath = __webpack_require__(/*! ./_stringToPath */ \"./node_modules/lodash/_stringToPath.js\"),\n    toString = __webpack_require__(/*! ./toString */ \"./node_modules/lodash/toString.js\");\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_castPath.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_composeArgs.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_composeArgs.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n  var argsIndex = -1,\n      argsLength = args.length,\n      holdersLength = holders.length,\n      leftIndex = -1,\n      leftLength = partials.length,\n      rangeLength = nativeMax(argsLength - holdersLength, 0),\n      result = Array(leftLength + rangeLength),\n      isUncurried = !isCurried;\n\n  while (++leftIndex < leftLength) {\n    result[leftIndex] = partials[leftIndex];\n  }\n  while (++argsIndex < holdersLength) {\n    if (isUncurried || argsIndex < argsLength) {\n      result[holders[argsIndex]] = args[argsIndex];\n    }\n  }\n  while (rangeLength--) {\n    result[leftIndex++] = args[argsIndex++];\n  }\n  return result;\n}\n\nmodule.exports = composeArgs;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_composeArgs.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_composeArgsRight.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_composeArgsRight.js ***!
    \**************************************************/
  /***/ ((module) => {
  
  eval("/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n  var argsIndex = -1,\n      argsLength = args.length,\n      holdersIndex = -1,\n      holdersLength = holders.length,\n      rightIndex = -1,\n      rightLength = partials.length,\n      rangeLength = nativeMax(argsLength - holdersLength, 0),\n      result = Array(rangeLength + rightLength),\n      isUncurried = !isCurried;\n\n  while (++argsIndex < rangeLength) {\n    result[argsIndex] = args[argsIndex];\n  }\n  var offset = argsIndex;\n  while (++rightIndex < rightLength) {\n    result[offset + rightIndex] = partials[rightIndex];\n  }\n  while (++holdersIndex < holdersLength) {\n    if (isUncurried || argsIndex < argsLength) {\n      result[offset + holders[holdersIndex]] = args[argsIndex++];\n    }\n  }\n  return result;\n}\n\nmodule.exports = composeArgsRight;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_composeArgsRight.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_copyArray.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_copyArray.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nmodule.exports = copyArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_copyArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_copyObject.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_copyObject.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\");\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_copyObject.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_coreJsData.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_coreJsData.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_coreJsData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_countHolders.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_countHolders.js ***!
    \**********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n  var length = array.length,\n      result = 0;\n\n  while (length--) {\n    if (array[length] === placeholder) {\n      ++result;\n    }\n  }\n  return result;\n}\n\nmodule.exports = countHolders;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_countHolders.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createAggregator.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/_createAggregator.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayAggregator = __webpack_require__(/*! ./_arrayAggregator */ \"./node_modules/lodash/_arrayAggregator.js\"),\n    baseAggregator = __webpack_require__(/*! ./_baseAggregator */ \"./node_modules/lodash/_baseAggregator.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n  return function(collection, iteratee) {\n    var func = isArray(collection) ? arrayAggregator : baseAggregator,\n        accumulator = initializer ? initializer() : {};\n\n    return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n  };\n}\n\nmodule.exports = createAggregator;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createAggregator.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createAssigner.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_createAssigner.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseRest = __webpack_require__(/*! ./_baseRest */ \"./node_modules/lodash/_baseRest.js\"),\n    isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ \"./node_modules/lodash/_isIterateeCall.js\");\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createAssigner.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createBaseEach.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_createBaseEach.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nmodule.exports = createBaseEach;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createBaseEach.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createBaseFor.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_createBaseFor.js ***!
    \***********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createBaseFor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createBind.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_createBind.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var createCtor = __webpack_require__(/*! ./_createCtor */ \"./node_modules/lodash/_createCtor.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n  var isBind = bitmask & WRAP_BIND_FLAG,\n      Ctor = createCtor(func);\n\n  function wrapper() {\n    var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n    return fn.apply(isBind ? thisArg : this, arguments);\n  }\n  return wrapper;\n}\n\nmodule.exports = createBind;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createBind.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createCtor.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_createCtor.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n  return function() {\n    // Use a `switch` statement to work with class constructors. See\n    // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n    // for more details.\n    var args = arguments;\n    switch (args.length) {\n      case 0: return new Ctor;\n      case 1: return new Ctor(args[0]);\n      case 2: return new Ctor(args[0], args[1]);\n      case 3: return new Ctor(args[0], args[1], args[2]);\n      case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n      case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n      case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n      case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n    }\n    var thisBinding = baseCreate(Ctor.prototype),\n        result = Ctor.apply(thisBinding, args);\n\n    // Mimic the constructor's `return` behavior.\n    // See https://es5.github.io/#x13.2.2 for more details.\n    return isObject(result) ? result : thisBinding;\n  };\n}\n\nmodule.exports = createCtor;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createCtor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createCurry.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_createCurry.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var apply = __webpack_require__(/*! ./_apply */ \"./node_modules/lodash/_apply.js\"),\n    createCtor = __webpack_require__(/*! ./_createCtor */ \"./node_modules/lodash/_createCtor.js\"),\n    createHybrid = __webpack_require__(/*! ./_createHybrid */ \"./node_modules/lodash/_createHybrid.js\"),\n    createRecurry = __webpack_require__(/*! ./_createRecurry */ \"./node_modules/lodash/_createRecurry.js\"),\n    getHolder = __webpack_require__(/*! ./_getHolder */ \"./node_modules/lodash/_getHolder.js\"),\n    replaceHolders = __webpack_require__(/*! ./_replaceHolders */ \"./node_modules/lodash/_replaceHolders.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n  var Ctor = createCtor(func);\n\n  function wrapper() {\n    var length = arguments.length,\n        args = Array(length),\n        index = length,\n        placeholder = getHolder(wrapper);\n\n    while (index--) {\n      args[index] = arguments[index];\n    }\n    var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n      ? []\n      : replaceHolders(args, placeholder);\n\n    length -= holders.length;\n    if (length < arity) {\n      return createRecurry(\n        func, bitmask, createHybrid, wrapper.placeholder, undefined,\n        args, holders, undefined, undefined, arity - length);\n    }\n    var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n    return apply(fn, this, args);\n  }\n  return wrapper;\n}\n\nmodule.exports = createCurry;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createCurry.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createFind.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_createFind.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n  return function(collection, predicate, fromIndex) {\n    var iterable = Object(collection);\n    if (!isArrayLike(collection)) {\n      var iteratee = baseIteratee(predicate, 3);\n      collection = keys(collection);\n      predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n    }\n    var index = findIndexFunc(collection, predicate, fromIndex);\n    return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n  };\n}\n\nmodule.exports = createFind;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createFind.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createHybrid.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_createHybrid.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var composeArgs = __webpack_require__(/*! ./_composeArgs */ \"./node_modules/lodash/_composeArgs.js\"),\n    composeArgsRight = __webpack_require__(/*! ./_composeArgsRight */ \"./node_modules/lodash/_composeArgsRight.js\"),\n    countHolders = __webpack_require__(/*! ./_countHolders */ \"./node_modules/lodash/_countHolders.js\"),\n    createCtor = __webpack_require__(/*! ./_createCtor */ \"./node_modules/lodash/_createCtor.js\"),\n    createRecurry = __webpack_require__(/*! ./_createRecurry */ \"./node_modules/lodash/_createRecurry.js\"),\n    getHolder = __webpack_require__(/*! ./_getHolder */ \"./node_modules/lodash/_getHolder.js\"),\n    reorder = __webpack_require__(/*! ./_reorder */ \"./node_modules/lodash/_reorder.js\"),\n    replaceHolders = __webpack_require__(/*! ./_replaceHolders */ \"./node_modules/lodash/_replaceHolders.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_BIND_KEY_FLAG = 2,\n    WRAP_CURRY_FLAG = 8,\n    WRAP_CURRY_RIGHT_FLAG = 16,\n    WRAP_ARY_FLAG = 128,\n    WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n *  the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n *  to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n  var isAry = bitmask & WRAP_ARY_FLAG,\n      isBind = bitmask & WRAP_BIND_FLAG,\n      isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n      isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n      isFlip = bitmask & WRAP_FLIP_FLAG,\n      Ctor = isBindKey ? undefined : createCtor(func);\n\n  function wrapper() {\n    var length = arguments.length,\n        args = Array(length),\n        index = length;\n\n    while (index--) {\n      args[index] = arguments[index];\n    }\n    if (isCurried) {\n      var placeholder = getHolder(wrapper),\n          holdersCount = countHolders(args, placeholder);\n    }\n    if (partials) {\n      args = composeArgs(args, partials, holders, isCurried);\n    }\n    if (partialsRight) {\n      args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n    }\n    length -= holdersCount;\n    if (isCurried && length < arity) {\n      var newHolders = replaceHolders(args, placeholder);\n      return createRecurry(\n        func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n        args, newHolders, argPos, ary, arity - length\n      );\n    }\n    var thisBinding = isBind ? thisArg : this,\n        fn = isBindKey ? thisBinding[func] : func;\n\n    length = args.length;\n    if (argPos) {\n      args = reorder(args, argPos);\n    } else if (isFlip && length > 1) {\n      args.reverse();\n    }\n    if (isAry && ary < length) {\n      args.length = ary;\n    }\n    if (this && this !== root && this instanceof wrapper) {\n      fn = Ctor || createCtor(fn);\n    }\n    return fn.apply(thisBinding, args);\n  }\n  return wrapper;\n}\n\nmodule.exports = createHybrid;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createHybrid.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createPartial.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_createPartial.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var apply = __webpack_require__(/*! ./_apply */ \"./node_modules/lodash/_apply.js\"),\n    createCtor = __webpack_require__(/*! ./_createCtor */ \"./node_modules/lodash/_createCtor.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n *  the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n  var isBind = bitmask & WRAP_BIND_FLAG,\n      Ctor = createCtor(func);\n\n  function wrapper() {\n    var argsIndex = -1,\n        argsLength = arguments.length,\n        leftIndex = -1,\n        leftLength = partials.length,\n        args = Array(leftLength + argsLength),\n        fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n    while (++leftIndex < leftLength) {\n      args[leftIndex] = partials[leftIndex];\n    }\n    while (argsLength--) {\n      args[leftIndex++] = arguments[++argsIndex];\n    }\n    return apply(fn, isBind ? thisArg : this, args);\n  }\n  return wrapper;\n}\n\nmodule.exports = createPartial;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createPartial.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createRecurry.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_createRecurry.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isLaziable = __webpack_require__(/*! ./_isLaziable */ \"./node_modules/lodash/_isLaziable.js\"),\n    setData = __webpack_require__(/*! ./_setData */ \"./node_modules/lodash/_setData.js\"),\n    setWrapToString = __webpack_require__(/*! ./_setWrapToString */ \"./node_modules/lodash/_setWrapToString.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_BIND_KEY_FLAG = 2,\n    WRAP_CURRY_BOUND_FLAG = 4,\n    WRAP_CURRY_FLAG = 8,\n    WRAP_PARTIAL_FLAG = 32,\n    WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n *  the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n  var isCurry = bitmask & WRAP_CURRY_FLAG,\n      newHolders = isCurry ? holders : undefined,\n      newHoldersRight = isCurry ? undefined : holders,\n      newPartials = isCurry ? partials : undefined,\n      newPartialsRight = isCurry ? undefined : partials;\n\n  bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n  bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n  if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n    bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n  }\n  var newData = [\n    func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n    newHoldersRight, argPos, ary, arity\n  ];\n\n  var result = wrapFunc.apply(undefined, newData);\n  if (isLaziable(func)) {\n    setData(result, newData);\n  }\n  result.placeholder = placeholder;\n  return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createRecurry.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createSet.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_createSet.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n    noop = __webpack_require__(/*! ./noop */ \"./node_modules/lodash/noop.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n  return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_createWrap.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_createWrap.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseSetData = __webpack_require__(/*! ./_baseSetData */ \"./node_modules/lodash/_baseSetData.js\"),\n    createBind = __webpack_require__(/*! ./_createBind */ \"./node_modules/lodash/_createBind.js\"),\n    createCurry = __webpack_require__(/*! ./_createCurry */ \"./node_modules/lodash/_createCurry.js\"),\n    createHybrid = __webpack_require__(/*! ./_createHybrid */ \"./node_modules/lodash/_createHybrid.js\"),\n    createPartial = __webpack_require__(/*! ./_createPartial */ \"./node_modules/lodash/_createPartial.js\"),\n    getData = __webpack_require__(/*! ./_getData */ \"./node_modules/lodash/_getData.js\"),\n    mergeData = __webpack_require__(/*! ./_mergeData */ \"./node_modules/lodash/_mergeData.js\"),\n    setData = __webpack_require__(/*! ./_setData */ \"./node_modules/lodash/_setData.js\"),\n    setWrapToString = __webpack_require__(/*! ./_setWrapToString */ \"./node_modules/lodash/_setWrapToString.js\"),\n    toInteger = __webpack_require__(/*! ./toInteger */ \"./node_modules/lodash/toInteger.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_BIND_KEY_FLAG = 2,\n    WRAP_CURRY_FLAG = 8,\n    WRAP_CURRY_RIGHT_FLAG = 16,\n    WRAP_PARTIAL_FLAG = 32,\n    WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n *    1 - `_.bind`\n *    2 - `_.bindKey`\n *    4 - `_.curry` or `_.curryRight` of a bound function\n *    8 - `_.curry`\n *   16 - `_.curryRight`\n *   32 - `_.partial`\n *   64 - `_.partialRight`\n *  128 - `_.rearg`\n *  256 - `_.ary`\n *  512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n  var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n  if (!isBindKey && typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var length = partials ? partials.length : 0;\n  if (!length) {\n    bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n    partials = holders = undefined;\n  }\n  ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n  arity = arity === undefined ? arity : toInteger(arity);\n  length -= holders ? holders.length : 0;\n\n  if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n    var partialsRight = partials,\n        holdersRight = holders;\n\n    partials = holders = undefined;\n  }\n  var data = isBindKey ? undefined : getData(func);\n\n  var newData = [\n    func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n    argPos, ary, arity\n  ];\n\n  if (data) {\n    mergeData(newData, data);\n  }\n  func = newData[0];\n  bitmask = newData[1];\n  thisArg = newData[2];\n  partials = newData[3];\n  holders = newData[4];\n  arity = newData[9] = newData[9] === undefined\n    ? (isBindKey ? 0 : func.length)\n    : nativeMax(newData[9] - length, 0);\n\n  if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n    bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n  }\n  if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n    var result = createBind(func, bitmask, thisArg);\n  } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n    result = createCurry(func, bitmask, arity);\n  } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n    result = createPartial(func, bitmask, thisArg, partials);\n  } else {\n    result = createHybrid.apply(undefined, newData);\n  }\n  var setter = data ? baseSetData : setData;\n  return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_createWrap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_defineProperty.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_defineProperty.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_defineProperty.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalArrays.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_equalArrays.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arraySome = __webpack_require__(/*! ./_arraySome */ \"./node_modules/lodash/_arraySome.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_equalArrays.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalByTag.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_equalByTag.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./node_modules/lodash/_Uint8Array.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./node_modules/lodash/_equalArrays.js\"),\n    mapToArray = __webpack_require__(/*! ./_mapToArray */ \"./node_modules/lodash/_mapToArray.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_equalByTag.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_equalObjects.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_equalObjects.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./node_modules/lodash/_getAllKeys.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_equalObjects.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_flatRest.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_flatRest.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var flatten = __webpack_require__(/*! ./flatten */ \"./node_modules/lodash/flatten.js\"),\n    overRest = __webpack_require__(/*! ./_overRest */ \"./node_modules/lodash/_overRest.js\"),\n    setToString = __webpack_require__(/*! ./_setToString */ \"./node_modules/lodash/_setToString.js\");\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n  return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_flatRest.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_freeGlobal.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_freeGlobal.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\nmodule.exports = freeGlobal;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_freeGlobal.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getAllKeys.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getAllKeys.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"./node_modules/lodash/_baseGetAllKeys.js\"),\n    getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./node_modules/lodash/_getSymbols.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getAllKeys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getData.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_getData.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var metaMap = __webpack_require__(/*! ./_metaMap */ \"./node_modules/lodash/_metaMap.js\"),\n    noop = __webpack_require__(/*! ./noop */ \"./node_modules/lodash/noop.js\");\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n  return metaMap.get(func);\n};\n\nmodule.exports = getData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getFuncName.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_getFuncName.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var realNames = __webpack_require__(/*! ./_realNames */ \"./node_modules/lodash/_realNames.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n  var result = (func.name + ''),\n      array = realNames[result],\n      length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n  while (length--) {\n    var data = array[length],\n        otherFunc = data.func;\n    if (otherFunc == null || otherFunc == func) {\n      return data.name;\n    }\n  }\n  return result;\n}\n\nmodule.exports = getFuncName;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getFuncName.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getHolder.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_getHolder.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n  var object = func;\n  return object.placeholder;\n}\n\nmodule.exports = getHolder;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getHolder.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getMapData.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getMapData.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isKeyable = __webpack_require__(/*! ./_isKeyable */ \"./node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getMapData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getMatchData.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_getMatchData.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./node_modules/lodash/_isStrictComparable.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getMatchData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getNative.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_getNative.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ \"./node_modules/lodash/_baseIsNative.js\"),\n    getValue = __webpack_require__(/*! ./_getValue */ \"./node_modules/lodash/_getValue.js\");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getNative.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getPrototype.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_getPrototype.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getPrototype.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getRawTag.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_getRawTag.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getRawTag.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getSymbols.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_getSymbols.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./node_modules/lodash/_arrayFilter.js\"),\n    stubArray = __webpack_require__(/*! ./stubArray */ \"./node_modules/lodash/stubArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getSymbols.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getTag.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/_getTag.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var DataView = __webpack_require__(/*! ./_DataView */ \"./node_modules/lodash/_DataView.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n    Promise = __webpack_require__(/*! ./_Promise */ \"./node_modules/lodash/_Promise.js\"),\n    Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n    WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./node_modules/lodash/_WeakMap.js\"),\n    baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getTag.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getValue.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_getValue.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getValue.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_getWrapDetails.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_getWrapDetails.js ***!
    \************************************************/
  /***/ ((module) => {
  
  eval("/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n    reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n  var match = source.match(reWrapDetails);\n  return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_getWrapDetails.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hasPath.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hasPath.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hasPath.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashClear.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_hashClear.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hashClear.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashDelete.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_hashDelete.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hashDelete.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashGet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashGet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hashGet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashHas.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashHas.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hashHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_hashSet.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_hashSet.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_hashSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_insertWrapDetails.js":
  /*!***************************************************!*\
    !*** ./node_modules/lodash/_insertWrapDetails.js ***!
    \***************************************************/
  /***/ ((module) => {
  
  eval("/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n  var length = details.length;\n  if (!length) {\n    return source;\n  }\n  var lastIndex = length - 1;\n  details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n  details = details.join(length > 2 ? ', ' : ' ');\n  return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_insertWrapDetails.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isFlattenable.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_isFlattenable.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isFlattenable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isIndex.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_isIndex.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isIndex.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isIterateeCall.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_isIterateeCall.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isIterateeCall.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isKey.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_isKey.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isKey.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isKeyable.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_isKeyable.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isKeyable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isLaziable.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_isLaziable.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var LazyWrapper = __webpack_require__(/*! ./_LazyWrapper */ \"./node_modules/lodash/_LazyWrapper.js\"),\n    getData = __webpack_require__(/*! ./_getData */ \"./node_modules/lodash/_getData.js\"),\n    getFuncName = __webpack_require__(/*! ./_getFuncName */ \"./node_modules/lodash/_getFuncName.js\"),\n    lodash = __webpack_require__(/*! ./wrapperLodash */ \"./node_modules/lodash/wrapperLodash.js\");\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n *  else `false`.\n */\nfunction isLaziable(func) {\n  var funcName = getFuncName(func),\n      other = lodash[funcName];\n\n  if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n    return false;\n  }\n  if (func === other) {\n    return true;\n  }\n  var data = getData(other);\n  return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isLaziable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isMasked.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_isMasked.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var coreJsData = __webpack_require__(/*! ./_coreJsData */ \"./node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isMasked.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isPrototype.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_isPrototype.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isPrototype.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_isStrictComparable.js":
  /*!****************************************************!*\
    !*** ./node_modules/lodash/_isStrictComparable.js ***!
    \****************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_isStrictComparable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheClear.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_listCacheClear.js ***!
    \************************************************/
  /***/ ((module) => {
  
  eval("/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_listCacheClear.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheDelete.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_listCacheDelete.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_listCacheDelete.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheGet.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheGet.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_listCacheGet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheHas.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheHas.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_listCacheHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_listCacheSet.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_listCacheSet.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_listCacheSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheClear.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_mapCacheClear.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var Hash = __webpack_require__(/*! ./_Hash */ \"./node_modules/lodash/_Hash.js\"),\n    ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapCacheClear.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheDelete.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_mapCacheDelete.js ***!
    \************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapCacheDelete.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheGet.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheGet.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapCacheGet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheHas.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheHas.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapCacheHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapCacheSet.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_mapCacheSet.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapCacheSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mapToArray.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_mapToArray.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mapToArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_matchesStrictComparable.js":
  /*!*********************************************************!*\
    !*** ./node_modules/lodash/_matchesStrictComparable.js ***!
    \*********************************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_matchesStrictComparable.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_memoizeCapped.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_memoizeCapped.js ***!
    \***********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var memoize = __webpack_require__(/*! ./memoize */ \"./node_modules/lodash/memoize.js\");\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_memoizeCapped.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_mergeData.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_mergeData.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var composeArgs = __webpack_require__(/*! ./_composeArgs */ \"./node_modules/lodash/_composeArgs.js\"),\n    composeArgsRight = __webpack_require__(/*! ./_composeArgsRight */ \"./node_modules/lodash/_composeArgsRight.js\"),\n    replaceHolders = __webpack_require__(/*! ./_replaceHolders */ \"./node_modules/lodash/_replaceHolders.js\");\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_BIND_KEY_FLAG = 2,\n    WRAP_CURRY_BOUND_FLAG = 4,\n    WRAP_CURRY_FLAG = 8,\n    WRAP_ARY_FLAG = 128,\n    WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n  var bitmask = data[1],\n      srcBitmask = source[1],\n      newBitmask = bitmask | srcBitmask,\n      isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n  var isCombo =\n    ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n    ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n    ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n  // Exit early if metadata can't be merged.\n  if (!(isCommon || isCombo)) {\n    return data;\n  }\n  // Use source `thisArg` if available.\n  if (srcBitmask & WRAP_BIND_FLAG) {\n    data[2] = source[2];\n    // Set when currying a bound function.\n    newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n  }\n  // Compose partial arguments.\n  var value = source[3];\n  if (value) {\n    var partials = data[3];\n    data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n    data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n  }\n  // Compose partial right arguments.\n  value = source[5];\n  if (value) {\n    partials = data[5];\n    data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n    data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n  }\n  // Use source `argPos` if available.\n  value = source[7];\n  if (value) {\n    data[7] = value;\n  }\n  // Use source `ary` if it's smaller.\n  if (srcBitmask & WRAP_ARY_FLAG) {\n    data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n  }\n  // Use source `arity` if one is not provided.\n  if (data[9] == null) {\n    data[9] = source[9];\n  }\n  // Use source `func` and merge bitmasks.\n  data[0] = source[0];\n  data[1] = newBitmask;\n\n  return data;\n}\n\nmodule.exports = mergeData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_mergeData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_metaMap.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_metaMap.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./node_modules/lodash/_WeakMap.js\");\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_metaMap.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nativeCreate.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_nativeCreate.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_nativeCreate.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nativeKeys.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_nativeKeys.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_nativeKeys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_nodeUtil.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_nodeUtil.js ***!
    \******************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_nodeUtil.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_objectToString.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_objectToString.js ***!
    \************************************************/
  /***/ ((module) => {
  
  eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_objectToString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_overArg.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_overArg.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_overArg.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_overRest.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_overRest.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var apply = __webpack_require__(/*! ./_apply */ \"./node_modules/lodash/_apply.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_overRest.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_parent.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/_parent.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\"),\n    baseSlice = __webpack_require__(/*! ./_baseSlice */ \"./node_modules/lodash/_baseSlice.js\");\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n  return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_parent.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_realNames.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/_realNames.js ***!
    \*******************************************/
  /***/ ((module) => {
  
  eval("/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_realNames.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_reorder.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_reorder.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var copyArray = __webpack_require__(/*! ./_copyArray */ \"./node_modules/lodash/_copyArray.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n  var arrLength = array.length,\n      length = nativeMin(indexes.length, arrLength),\n      oldArray = copyArray(array);\n\n  while (length--) {\n    var index = indexes[length];\n    array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n  }\n  return array;\n}\n\nmodule.exports = reorder;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_reorder.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_replaceHolders.js":
  /*!************************************************!*\
    !*** ./node_modules/lodash/_replaceHolders.js ***!
    \************************************************/
  /***/ ((module) => {
  
  eval("/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n  var index = -1,\n      length = array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (value === placeholder || value === PLACEHOLDER) {\n      array[index] = PLACEHOLDER;\n      result[resIndex++] = index;\n    }\n  }\n  return result;\n}\n\nmodule.exports = replaceHolders;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_replaceHolders.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_root.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/_root.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_root.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setCacheAdd.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setCacheAdd.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setCacheAdd.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setCacheHas.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setCacheHas.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setCacheHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setData.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/_setData.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseSetData = __webpack_require__(/*! ./_baseSetData */ \"./node_modules/lodash/_baseSetData.js\"),\n    shortOut = __webpack_require__(/*! ./_shortOut */ \"./node_modules/lodash/_shortOut.js\");\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setData.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setToArray.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_setToArray.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setToArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setToString.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_setToString.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ \"./node_modules/lodash/_baseSetToString.js\"),\n    shortOut = __webpack_require__(/*! ./_shortOut */ \"./node_modules/lodash/_shortOut.js\");\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setToString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_setWrapToString.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_setWrapToString.js ***!
    \*************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var getWrapDetails = __webpack_require__(/*! ./_getWrapDetails */ \"./node_modules/lodash/_getWrapDetails.js\"),\n    insertWrapDetails = __webpack_require__(/*! ./_insertWrapDetails */ \"./node_modules/lodash/_insertWrapDetails.js\"),\n    setToString = __webpack_require__(/*! ./_setToString */ \"./node_modules/lodash/_setToString.js\"),\n    updateWrapDetails = __webpack_require__(/*! ./_updateWrapDetails */ \"./node_modules/lodash/_updateWrapDetails.js\");\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n  var source = (reference + '');\n  return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_setWrapToString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_shortOut.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_shortOut.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_shortOut.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackClear.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/_stackClear.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\");\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stackClear.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackDelete.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/_stackDelete.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stackDelete.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackGet.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackGet.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stackGet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackHas.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackHas.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stackHas.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stackSet.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_stackSet.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n    MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stackSet.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_strictIndexOf.js":
  /*!***********************************************!*\
    !*** ./node_modules/lodash/_strictIndexOf.js ***!
    \***********************************************/
  /***/ ((module) => {
  
  eval("/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_strictIndexOf.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_stringToPath.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_stringToPath.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"./node_modules/lodash/_memoizeCapped.js\");\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_stringToPath.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_toKey.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/_toKey.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_toKey.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_toSource.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/_toSource.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_toSource.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_trimmedEndIndex.js":
  /*!*************************************************!*\
    !*** ./node_modules/lodash/_trimmedEndIndex.js ***!
    \*************************************************/
  /***/ ((module) => {
  
  eval("/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_trimmedEndIndex.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_updateWrapDetails.js":
  /*!***************************************************!*\
    !*** ./node_modules/lodash/_updateWrapDetails.js ***!
    \***************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n    arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./node_modules/lodash/_arrayIncludes.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_BIND_KEY_FLAG = 2,\n    WRAP_CURRY_FLAG = 8,\n    WRAP_CURRY_RIGHT_FLAG = 16,\n    WRAP_PARTIAL_FLAG = 32,\n    WRAP_PARTIAL_RIGHT_FLAG = 64,\n    WRAP_ARY_FLAG = 128,\n    WRAP_REARG_FLAG = 256,\n    WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n  ['ary', WRAP_ARY_FLAG],\n  ['bind', WRAP_BIND_FLAG],\n  ['bindKey', WRAP_BIND_KEY_FLAG],\n  ['curry', WRAP_CURRY_FLAG],\n  ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n  ['flip', WRAP_FLIP_FLAG],\n  ['partial', WRAP_PARTIAL_FLAG],\n  ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n  ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n  arrayEach(wrapFlags, function(pair) {\n    var value = '_.' + pair[0];\n    if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n      details.push(value);\n    }\n  });\n  return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_updateWrapDetails.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/_wrapperClone.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/_wrapperClone.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var LazyWrapper = __webpack_require__(/*! ./_LazyWrapper */ \"./node_modules/lodash/_LazyWrapper.js\"),\n    LodashWrapper = __webpack_require__(/*! ./_LodashWrapper */ \"./node_modules/lodash/_LodashWrapper.js\"),\n    copyArray = __webpack_require__(/*! ./_copyArray */ \"./node_modules/lodash/_copyArray.js\");\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n  if (wrapper instanceof LazyWrapper) {\n    return wrapper.clone();\n  }\n  var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n  result.__actions__ = copyArray(wrapper.__actions__);\n  result.__index__  = wrapper.__index__;\n  result.__values__ = wrapper.__values__;\n  return result;\n}\n\nmodule.exports = wrapperClone;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/_wrapperClone.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/assign.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/assign.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n    createAssigner = __webpack_require__(/*! ./_createAssigner */ \"./node_modules/lodash/_createAssigner.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * function Bar() {\n *   this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n  if (isPrototype(source) || isArrayLike(source)) {\n    copyObject(source, keys(source), object);\n    return;\n  }\n  for (var key in source) {\n    if (hasOwnProperty.call(source, key)) {\n      assignValue(object, key, source[key]);\n    }\n  }\n});\n\nmodule.exports = assign;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/assign.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/bind.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/bind.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseRest = __webpack_require__(/*! ./_baseRest */ \"./node_modules/lodash/_baseRest.js\"),\n    createWrap = __webpack_require__(/*! ./_createWrap */ \"./node_modules/lodash/_createWrap.js\"),\n    getHolder = __webpack_require__(/*! ./_getHolder */ \"./node_modules/lodash/_getHolder.js\"),\n    replaceHolders = __webpack_require__(/*! ./_replaceHolders */ \"./node_modules/lodash/_replaceHolders.js\");\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n    WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n *   return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n  var bitmask = WRAP_BIND_FLAG;\n  if (partials.length) {\n    var holders = replaceHolders(partials, getHolder(bind));\n    bitmask |= WRAP_PARTIAL_FLAG;\n  }\n  return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nmodule.exports = bind;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/bind.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/constant.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/constant.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/constant.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/debounce.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/debounce.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    now = __webpack_require__(/*! ./now */ \"./node_modules/lodash/now.js\"),\n    toNumber = __webpack_require__(/*! ./toNumber */ \"./node_modules/lodash/toNumber.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/debounce.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/eq.js":
  /*!***********************************!*\
    !*** ./node_modules/lodash/eq.js ***!
    \***********************************/
  /***/ ((module) => {
  
  eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/eq.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/filter.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/filter.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./node_modules/lodash/_arrayFilter.js\"),\n    baseFilter = __webpack_require__(/*! ./_baseFilter */ \"./node_modules/lodash/_baseFilter.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n *   { 'user': 'barney', 'age': 36, 'active': true },\n *   { 'user': 'fred',   'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n  var func = isArray(collection) ? arrayFilter : baseFilter;\n  return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/filter.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/find.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/find.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var createFind = __webpack_require__(/*! ./_createFind */ \"./node_modules/lodash/_createFind.js\"),\n    findIndex = __webpack_require__(/*! ./findIndex */ \"./node_modules/lodash/findIndex.js\");\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n *   { 'user': 'barney',  'age': 36, 'active': true },\n *   { 'user': 'fred',    'age': 40, 'active': false },\n *   { 'user': 'pebbles', 'age': 1,  'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/find.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/findIndex.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/findIndex.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ \"./node_modules/lodash/_baseFindIndex.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    toInteger = __webpack_require__(/*! ./toInteger */ \"./node_modules/lodash/toInteger.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n *   { 'user': 'barney',  'active': false },\n *   { 'user': 'fred',    'active': false },\n *   { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n  var length = array == null ? 0 : array.length;\n  if (!length) {\n    return -1;\n  }\n  var index = fromIndex == null ? 0 : toInteger(fromIndex);\n  if (index < 0) {\n    index = nativeMax(length + index, 0);\n  }\n  return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/findIndex.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/flatten.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/flatten.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"./node_modules/lodash/_baseFlatten.js\");\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/flatten.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/flattenDeep.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/flattenDeep.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"./node_modules/lodash/_baseFlatten.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/flattenDeep.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/forEach.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/forEach.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n    baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\"),\n    castFunction = __webpack_require__(/*! ./_castFunction */ \"./node_modules/lodash/_castFunction.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n *   console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n *   console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n  var func = isArray(collection) ? arrayEach : baseEach;\n  return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/forEach.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/get.js":
  /*!************************************!*\
    !*** ./node_modules/lodash/get.js ***!
    \************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\");\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/get.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/hasIn.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/hasIn.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ \"./node_modules/lodash/_baseHasIn.js\"),\n    hasPath = __webpack_require__(/*! ./_hasPath */ \"./node_modules/lodash/_hasPath.js\");\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/hasIn.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/identity.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/identity.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/identity.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArguments.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/isArguments.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"./node_modules/lodash/_baseIsArguments.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isArguments.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArray.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/isArray.js ***!
    \****************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArrayLike.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/isArrayLike.js ***!
    \********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\");\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isArrayLike.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isArrayLikeObject.js":
  /*!**************************************************!*\
    !*** ./node_modules/lodash/isArrayLikeObject.js ***!
    \**************************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isArrayLikeObject.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isBoolean.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/isBoolean.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n  return value === true || value === false ||\n    (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isBoolean.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isBuffer.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isBuffer.js ***!
    \*****************************************/
  /***/ ((module, exports, __webpack_require__) => {
  
  eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\"),\n    stubFalse = __webpack_require__(/*! ./stubFalse */ \"./node_modules/lodash/stubFalse.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isBuffer.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isEmpty.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/isEmpty.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./node_modules/lodash/_baseKeys.js\"),\n    getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n  if (value == null) {\n    return true;\n  }\n  if (isArrayLike(value) &&\n      (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n        isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n    return !value.length;\n  }\n  var tag = getTag(value);\n  if (tag == mapTag || tag == setTag) {\n    return !value.size;\n  }\n  if (isPrototype(value)) {\n    return !baseKeys(value).length;\n  }\n  for (var key in value) {\n    if (hasOwnProperty.call(value, key)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nmodule.exports = isEmpty;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isEmpty.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isFunction.js":
  /*!*******************************************!*\
    !*** ./node_modules/lodash/isFunction.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isFunction.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isLength.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isLength.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isLength.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isNull.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/isNull.js ***!
    \***************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n  return value === null;\n}\n\nmodule.exports = isNull;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isNull.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isObject.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isObject.js ***!
    \*****************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isObject.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isObjectLike.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/isObjectLike.js ***!
    \*********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isObjectLike.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isString.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isString.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n  return typeof value == 'string' ||\n    (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isSymbol.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/isSymbol.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isSymbol.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isTypedArray.js":
  /*!*********************************************!*\
    !*** ./node_modules/lodash/isTypedArray.js ***!
    \*********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ \"./node_modules/lodash/_baseIsTypedArray.js\"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isTypedArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/isUndefined.js":
  /*!********************************************!*\
    !*** ./node_modules/lodash/isUndefined.js ***!
    \********************************************/
  /***/ ((module) => {
  
  eval("/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n  return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/isUndefined.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/keyBy.js":
  /*!**************************************!*\
    !*** ./node_modules/lodash/keyBy.js ***!
    \**************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n    createAggregator = __webpack_require__(/*! ./_createAggregator */ \"./node_modules/lodash/_createAggregator.js\");\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n *   { 'dir': 'left', 'code': 97 },\n *   { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n *   return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n  baseAssignValue(result, key, value);\n});\n\nmodule.exports = keyBy;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/keyBy.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/keys.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/keys.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n    baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./node_modules/lodash/_baseKeys.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/keys.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/last.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/last.js ***!
    \*************************************/
  /***/ ((module) => {
  
  eval("/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/last.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/map.js":
  /*!************************************!*\
    !*** ./node_modules/lodash/map.js ***!
    \************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    baseMap = __webpack_require__(/*! ./_baseMap */ \"./node_modules/lodash/_baseMap.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n *   return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n *   { 'user': 'barney' },\n *   { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n  var func = isArray(collection) ? arrayMap : baseMap;\n  return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/map.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/memoize.js":
  /*!****************************************!*\
    !*** ./node_modules/lodash/memoize.js ***!
    \****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/memoize.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/noop.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/noop.js ***!
    \*************************************/
  /***/ ((module) => {
  
  eval("/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n  // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/noop.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/now.js":
  /*!************************************!*\
    !*** ./node_modules/lodash/now.js ***!
    \************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/now.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/pick.js":
  /*!*************************************!*\
    !*** ./node_modules/lodash/pick.js ***!
    \*************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var basePick = __webpack_require__(/*! ./_basePick */ \"./node_modules/lodash/_basePick.js\"),\n    flatRest = __webpack_require__(/*! ./_flatRest */ \"./node_modules/lodash/_flatRest.js\");\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n  return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/pick.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/property.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/property.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseProperty = __webpack_require__(/*! ./_baseProperty */ \"./node_modules/lodash/_baseProperty.js\"),\n    basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ \"./node_modules/lodash/_basePropertyDeep.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/property.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/reduce.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/reduce.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayReduce = __webpack_require__(/*! ./_arrayReduce */ \"./node_modules/lodash/_arrayReduce.js\"),\n    baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    baseReduce = __webpack_require__(/*! ./_baseReduce */ \"./node_modules/lodash/_baseReduce.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n *   return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n *   (result[value] || (result[value] = [])).push(key);\n *   return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n  var func = isArray(collection) ? arrayReduce : baseReduce,\n      initAccum = arguments.length < 3;\n\n  return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/reduce.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/remove.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/remove.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    basePullAt = __webpack_require__(/*! ./_basePullAt */ \"./node_modules/lodash/_basePullAt.js\");\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n *   return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n  var result = [];\n  if (!(array && array.length)) {\n    return result;\n  }\n  var index = -1,\n      indexes = [],\n      length = array.length;\n\n  predicate = baseIteratee(predicate, 3);\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result.push(value);\n      indexes.push(index);\n    }\n  }\n  basePullAt(array, indexes);\n  return result;\n}\n\nmodule.exports = remove;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/remove.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/stubArray.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/stubArray.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/stubArray.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/stubFalse.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/stubFalse.js ***!
    \******************************************/
  /***/ ((module) => {
  
  eval("/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/stubFalse.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/toFinite.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/toFinite.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var toNumber = __webpack_require__(/*! ./toNumber */ \"./node_modules/lodash/toNumber.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/toFinite.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/toInteger.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/toInteger.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var toFinite = __webpack_require__(/*! ./toFinite */ \"./node_modules/lodash/toFinite.js\");\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/toInteger.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/toNumber.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/toNumber.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseTrim = __webpack_require__(/*! ./_baseTrim */ \"./node_modules/lodash/_baseTrim.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/toNumber.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/toString.js":
  /*!*****************************************!*\
    !*** ./node_modules/lodash/toString.js ***!
    \*****************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseToString = __webpack_require__(/*! ./_baseToString */ \"./node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/toString.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/transform.js":
  /*!******************************************!*\
    !*** ./node_modules/lodash/transform.js ***!
    \******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n    baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    baseForOwn = __webpack_require__(/*! ./_baseForOwn */ \"./node_modules/lodash/_baseForOwn.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n *   result.push(n *= n);\n *   return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n *   (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n  var isArr = isArray(object),\n      isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n  iteratee = baseIteratee(iteratee, 4);\n  if (accumulator == null) {\n    var Ctor = object && object.constructor;\n    if (isArrLike) {\n      accumulator = isArr ? new Ctor : [];\n    }\n    else if (isObject(object)) {\n      accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n    }\n    else {\n      accumulator = {};\n    }\n  }\n  (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n    return iteratee(accumulator, value, index, object);\n  });\n  return accumulator;\n}\n\nmodule.exports = transform;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/transform.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/values.js":
  /*!***************************************!*\
    !*** ./node_modules/lodash/values.js ***!
    \***************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var baseValues = __webpack_require__(/*! ./_baseValues */ \"./node_modules/lodash/_baseValues.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n  return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/values.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/wrapperLodash.js":
  /*!**********************************************!*\
    !*** ./node_modules/lodash/wrapperLodash.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var LazyWrapper = __webpack_require__(/*! ./_LazyWrapper */ \"./node_modules/lodash/_LazyWrapper.js\"),\n    LodashWrapper = __webpack_require__(/*! ./_LodashWrapper */ \"./node_modules/lodash/_LodashWrapper.js\"),\n    baseLodash = __webpack_require__(/*! ./_baseLodash */ \"./node_modules/lodash/_baseLodash.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\"),\n    wrapperClone = __webpack_require__(/*! ./_wrapperClone */ \"./node_modules/lodash/_wrapperClone.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n *   return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n  if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n    if (value instanceof LodashWrapper) {\n      return value;\n    }\n    if (hasOwnProperty.call(value, '__wrapped__')) {\n      return wrapperClone(value);\n    }\n  }\n  return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/wrapperLodash.js?");
  
  /***/ }),
  
  /***/ "./node_modules/lodash/xor.js":
  /*!************************************!*\
    !*** ./node_modules/lodash/xor.js ***!
    \************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./node_modules/lodash/_arrayFilter.js\"),\n    baseRest = __webpack_require__(/*! ./_baseRest */ \"./node_modules/lodash/_baseRest.js\"),\n    baseXor = __webpack_require__(/*! ./_baseXor */ \"./node_modules/lodash/_baseXor.js\"),\n    isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ \"./node_modules/lodash/isArrayLikeObject.js\");\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n  return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nmodule.exports = xor;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/lodash/xor.js?");
  
  /***/ }),
  
  /***/ "./node_modules/min-dash/dist/index.esm.js":
  /*!*************************************************!*\
    !*** ./node_modules/min-dash/dist/index.esm.js ***!
    \*************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"assign\": () => (/* binding */ assign),\n/* harmony export */   \"bind\": () => (/* binding */ bind),\n/* harmony export */   \"debounce\": () => (/* binding */ debounce),\n/* harmony export */   \"ensureArray\": () => (/* binding */ ensureArray),\n/* harmony export */   \"every\": () => (/* binding */ every),\n/* harmony export */   \"filter\": () => (/* binding */ filter),\n/* harmony export */   \"find\": () => (/* binding */ find),\n/* harmony export */   \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */   \"flatten\": () => (/* binding */ flatten),\n/* harmony export */   \"forEach\": () => (/* binding */ forEach),\n/* harmony export */   \"get\": () => (/* binding */ get),\n/* harmony export */   \"groupBy\": () => (/* binding */ groupBy),\n/* harmony export */   \"has\": () => (/* binding */ has),\n/* harmony export */   \"isArray\": () => (/* binding */ isArray),\n/* harmony export */   \"isDefined\": () => (/* binding */ isDefined),\n/* harmony export */   \"isFunction\": () => (/* binding */ isFunction),\n/* harmony export */   \"isNil\": () => (/* binding */ isNil),\n/* harmony export */   \"isNumber\": () => (/* binding */ isNumber),\n/* harmony export */   \"isObject\": () => (/* binding */ isObject),\n/* harmony export */   \"isString\": () => (/* binding */ isString),\n/* harmony export */   \"isUndefined\": () => (/* binding */ isUndefined),\n/* harmony export */   \"keys\": () => (/* binding */ keys),\n/* harmony export */   \"map\": () => (/* binding */ map),\n/* harmony export */   \"matchPattern\": () => (/* binding */ matchPattern),\n/* harmony export */   \"merge\": () => (/* binding */ merge),\n/* harmony export */   \"omit\": () => (/* binding */ omit),\n/* harmony export */   \"pick\": () => (/* binding */ pick),\n/* harmony export */   \"reduce\": () => (/* binding */ reduce),\n/* harmony export */   \"set\": () => (/* binding */ set),\n/* harmony export */   \"size\": () => (/* binding */ size),\n/* harmony export */   \"some\": () => (/* binding */ some),\n/* harmony export */   \"sortBy\": () => (/* binding */ sortBy),\n/* harmony export */   \"throttle\": () => (/* binding */ throttle),\n/* harmony export */   \"unionBy\": () => (/* binding */ unionBy),\n/* harmony export */   \"uniqueBy\": () => (/* binding */ uniqueBy),\n/* harmony export */   \"values\": () => (/* binding */ values),\n/* harmony export */   \"without\": () => (/* binding */ without)\n/* harmony export */ });\n/**\n * Flatten array, one level deep.\n *\n * @param {Array<?>} arr\n *\n * @return {Array<?>}\n */\nfunction flatten(arr) {\n  return Array.prototype.concat.apply([], arr);\n}\n\nvar nativeToString = Object.prototype.toString;\nvar nativeHasOwnProperty = Object.prototype.hasOwnProperty;\nfunction isUndefined(obj) {\n  return obj === undefined;\n}\nfunction isDefined(obj) {\n  return obj !== undefined;\n}\nfunction isNil(obj) {\n  return obj == null;\n}\nfunction isArray(obj) {\n  return nativeToString.call(obj) === '[object Array]';\n}\nfunction isObject(obj) {\n  return nativeToString.call(obj) === '[object Object]';\n}\nfunction isNumber(obj) {\n  return nativeToString.call(obj) === '[object Number]';\n}\nfunction isFunction(obj) {\n  var tag = nativeToString.call(obj);\n  return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object AsyncGeneratorFunction]' || tag === '[object Proxy]';\n}\nfunction isString(obj) {\n  return nativeToString.call(obj) === '[object String]';\n}\n/**\n * Ensure collection is an array.\n *\n * @param {Object} obj\n */\n\nfunction ensureArray(obj) {\n  if (isArray(obj)) {\n    return;\n  }\n\n  throw new Error('must supply array');\n}\n/**\n * Return true, if target owns a property with the given key.\n *\n * @param {Object} target\n * @param {String} key\n *\n * @return {Boolean}\n */\n\nfunction has(target, key) {\n  return nativeHasOwnProperty.call(target, key);\n}\n\n/**\n * Find element in collection.\n *\n * @param  {Array|Object} collection\n * @param  {Function|Object} matcher\n *\n * @return {Object}\n */\n\nfunction find(collection, matcher) {\n  matcher = toMatcher(matcher);\n  var match;\n  forEach(collection, function (val, key) {\n    if (matcher(val, key)) {\n      match = val;\n      return false;\n    }\n  });\n  return match;\n}\n/**\n * Find element index in collection.\n *\n * @param  {Array|Object} collection\n * @param  {Function} matcher\n *\n * @return {Object}\n */\n\nfunction findIndex(collection, matcher) {\n  matcher = toMatcher(matcher);\n  var idx = isArray(collection) ? -1 : undefined;\n  forEach(collection, function (val, key) {\n    if (matcher(val, key)) {\n      idx = key;\n      return false;\n    }\n  });\n  return idx;\n}\n/**\n * Find element in collection.\n *\n * @param  {Array|Object} collection\n * @param  {Function} matcher\n *\n * @return {Array} result\n */\n\nfunction filter(collection, matcher) {\n  var result = [];\n  forEach(collection, function (val, key) {\n    if (matcher(val, key)) {\n      result.push(val);\n    }\n  });\n  return result;\n}\n/**\n * Iterate over collection; returning something\n * (non-undefined) will stop iteration.\n *\n * @param  {Array|Object} collection\n * @param  {Function} iterator\n *\n * @return {Object} return result that stopped the iteration\n */\n\nfunction forEach(collection, iterator) {\n  var val, result;\n\n  if (isUndefined(collection)) {\n    return;\n  }\n\n  var convertKey = isArray(collection) ? toNum : identity;\n\n  for (var key in collection) {\n    if (has(collection, key)) {\n      val = collection[key];\n      result = iterator(val, convertKey(key));\n\n      if (result === false) {\n        return val;\n      }\n    }\n  }\n}\n/**\n * Return collection without element.\n *\n * @param  {Array} arr\n * @param  {Function} matcher\n *\n * @return {Array}\n */\n\nfunction without(arr, matcher) {\n  if (isUndefined(arr)) {\n    return [];\n  }\n\n  ensureArray(arr);\n  matcher = toMatcher(matcher);\n  return arr.filter(function (el, idx) {\n    return !matcher(el, idx);\n  });\n}\n/**\n * Reduce collection, returning a single result.\n *\n * @param  {Object|Array} collection\n * @param  {Function} iterator\n * @param  {Any} result\n *\n * @return {Any} result returned from last iterator\n */\n\nfunction reduce(collection, iterator, result) {\n  forEach(collection, function (value, idx) {\n    result = iterator(result, value, idx);\n  });\n  return result;\n}\n/**\n * Return true if every element in the collection\n * matches the criteria.\n *\n * @param  {Object|Array} collection\n * @param  {Function} matcher\n *\n * @return {Boolean}\n */\n\nfunction every(collection, matcher) {\n  return !!reduce(collection, function (matches, val, key) {\n    return matches && matcher(val, key);\n  }, true);\n}\n/**\n * Return true if some elements in the collection\n * match the criteria.\n *\n * @param  {Object|Array} collection\n * @param  {Function} matcher\n *\n * @return {Boolean}\n */\n\nfunction some(collection, matcher) {\n  return !!find(collection, matcher);\n}\n/**\n * Transform a collection into another collection\n * by piping each member through the given fn.\n *\n * @param  {Object|Array}   collection\n * @param  {Function} fn\n *\n * @return {Array} transformed collection\n */\n\nfunction map(collection, fn) {\n  var result = [];\n  forEach(collection, function (val, key) {\n    result.push(fn(val, key));\n  });\n  return result;\n}\n/**\n * Get the collections keys.\n *\n * @param  {Object|Array} collection\n *\n * @return {Array}\n */\n\nfunction keys(collection) {\n  return collection && Object.keys(collection) || [];\n}\n/**\n * Shorthand for `keys(o).length`.\n *\n * @param  {Object|Array} collection\n *\n * @return {Number}\n */\n\nfunction size(collection) {\n  return keys(collection).length;\n}\n/**\n * Get the values in the collection.\n *\n * @param  {Object|Array} collection\n *\n * @return {Array}\n */\n\nfunction values(collection) {\n  return map(collection, function (val) {\n    return val;\n  });\n}\n/**\n * Group collection members by attribute.\n *\n * @param  {Object|Array} collection\n * @param  {Function} extractor\n *\n * @return {Object} map with { attrValue => [ a, b, c ] }\n */\n\nfunction groupBy(collection, extractor) {\n  var grouped = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  extractor = toExtractor(extractor);\n  forEach(collection, function (val) {\n    var discriminator = extractor(val) || '_';\n    var group = grouped[discriminator];\n\n    if (!group) {\n      group = grouped[discriminator] = [];\n    }\n\n    group.push(val);\n  });\n  return grouped;\n}\nfunction uniqueBy(extractor) {\n  extractor = toExtractor(extractor);\n  var grouped = {};\n\n  for (var _len = arguments.length, collections = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    collections[_key - 1] = arguments[_key];\n  }\n\n  forEach(collections, function (c) {\n    return groupBy(c, extractor, grouped);\n  });\n  var result = map(grouped, function (val, key) {\n    return val[0];\n  });\n  return result;\n}\nvar unionBy = uniqueBy;\n/**\n * Sort collection by criteria.\n *\n * @param  {Object|Array} collection\n * @param  {String|Function} extractor\n *\n * @return {Array}\n */\n\nfunction sortBy(collection, extractor) {\n  extractor = toExtractor(extractor);\n  var sorted = [];\n  forEach(collection, function (value, key) {\n    var disc = extractor(value, key);\n    var entry = {\n      d: disc,\n      v: value\n    };\n\n    for (var idx = 0; idx < sorted.length; idx++) {\n      var d = sorted[idx].d;\n\n      if (disc < d) {\n        sorted.splice(idx, 0, entry);\n        return;\n      }\n    } // not inserted, append (!)\n\n\n    sorted.push(entry);\n  });\n  return map(sorted, function (e) {\n    return e.v;\n  });\n}\n/**\n * Create an object pattern matcher.\n *\n * @example\n *\n * const matcher = matchPattern({ id: 1 });\n *\n * var element = find(elements, matcher);\n *\n * @param  {Object} pattern\n *\n * @return {Function} matcherFn\n */\n\nfunction matchPattern(pattern) {\n  return function (el) {\n    return every(pattern, function (val, key) {\n      return el[key] === val;\n    });\n  };\n}\n\nfunction toExtractor(extractor) {\n  return isFunction(extractor) ? extractor : function (e) {\n    return e[extractor];\n  };\n}\n\nfunction toMatcher(matcher) {\n  return isFunction(matcher) ? matcher : function (e) {\n    return e === matcher;\n  };\n}\n\nfunction identity(arg) {\n  return arg;\n}\n\nfunction toNum(arg) {\n  return Number(arg);\n}\n\n/**\n * Debounce fn, calling it only once if\n * the given time elapsed between calls.\n *\n * @param  {Function} fn\n * @param  {Number} timeout\n *\n * @return {Function} debounced function\n */\nfunction debounce(fn, timeout) {\n  var timer;\n  var lastArgs;\n  var lastThis;\n  var lastNow;\n\n  function fire() {\n    var now = Date.now();\n    var scheduledDiff = lastNow + timeout - now;\n\n    if (scheduledDiff > 0) {\n      return schedule(scheduledDiff);\n    }\n\n    fn.apply(lastThis, lastArgs);\n    timer = lastNow = lastArgs = lastThis = undefined;\n  }\n\n  function schedule(timeout) {\n    timer = setTimeout(fire, timeout);\n  }\n\n  return function () {\n    lastNow = Date.now();\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    lastArgs = args;\n    lastThis = this; // ensure an execution is scheduled\n\n    if (!timer) {\n      schedule(timeout);\n    }\n  };\n}\n/**\n * Throttle fn, calling at most once\n * in the given interval.\n *\n * @param  {Function} fn\n * @param  {Number} interval\n *\n * @return {Function} throttled function\n */\n\nfunction throttle(fn, interval) {\n  var throttling = false;\n  return function () {\n    if (throttling) {\n      return;\n    }\n\n    fn.apply(void 0, arguments);\n    throttling = true;\n    setTimeout(function () {\n      throttling = false;\n    }, interval);\n  };\n}\n/**\n * Bind function against target <this>.\n *\n * @param  {Function} fn\n * @param  {Object}   target\n *\n * @return {Function} bound function\n */\n\nfunction bind(fn, target) {\n  return fn.bind(target);\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/**\n * Convenience wrapper for `Object.assign`.\n *\n * @param {Object} target\n * @param {...Object} others\n *\n * @return {Object} the target\n */\n\nfunction assign(target) {\n  for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    others[_key - 1] = arguments[_key];\n  }\n\n  return _extends.apply(void 0, [target].concat(others));\n}\n/**\n * Sets a nested property of a given object to the specified value.\n *\n * This mutates the object and returns it.\n *\n * @param {Object} target The target of the set operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} value The value to set.\n */\n\nfunction set(target, path, value) {\n  var currentTarget = target;\n  forEach(path, function (key, idx) {\n    if (key === '__proto__') {\n      throw new Error('illegal key: __proto__');\n    }\n\n    var nextKey = path[idx + 1];\n    var nextTarget = currentTarget[key];\n\n    if (isDefined(nextKey) && isNil(nextTarget)) {\n      nextTarget = currentTarget[key] = isNaN(+nextKey) ? {} : [];\n    }\n\n    if (isUndefined(nextKey)) {\n      if (isUndefined(value)) {\n        delete currentTarget[key];\n      } else {\n        currentTarget[key] = value;\n      }\n    } else {\n      currentTarget = nextTarget;\n    }\n  });\n  return target;\n}\n/**\n * Gets a nested property of a given object.\n *\n * @param {Object} target The target of the get operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} [defaultValue] The value to return if no value exists.\n */\n\nfunction get(target, path, defaultValue) {\n  var currentTarget = target;\n  forEach(path, function (key) {\n    // accessing nil property yields <undefined>\n    if (isNil(currentTarget)) {\n      currentTarget = undefined;\n      return false;\n    }\n\n    currentTarget = currentTarget[key];\n  });\n  return isUndefined(currentTarget) ? defaultValue : currentTarget;\n}\n/**\n * Pick given properties from the target object.\n *\n * @param {Object} target\n * @param {Array} properties\n *\n * @return {Object} target\n */\n\nfunction pick(target, properties) {\n  var result = {};\n  var obj = Object(target);\n  forEach(properties, function (prop) {\n    if (prop in obj) {\n      result[prop] = target[prop];\n    }\n  });\n  return result;\n}\n/**\n * Pick all target properties, excluding the given ones.\n *\n * @param {Object} target\n * @param {Array} properties\n *\n * @return {Object} target\n */\n\nfunction omit(target, properties) {\n  var result = {};\n  var obj = Object(target);\n  forEach(obj, function (prop, key) {\n    if (properties.indexOf(key) === -1) {\n      result[key] = prop;\n    }\n  });\n  return result;\n}\n/**\n * Recursively merge `...sources` into given target.\n *\n * Does support merging objects; does not support merging arrays.\n *\n * @param {Object} target\n * @param {...Object} sources\n *\n * @return {Object} the target\n */\n\nfunction merge(target) {\n  for (var _len2 = arguments.length, sources = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    sources[_key2 - 1] = arguments[_key2];\n  }\n\n  if (!sources.length) {\n    return target;\n  }\n\n  forEach(sources, function (source) {\n    // skip non-obj sources, i.e. null\n    if (!source || !isObject(source)) {\n      return;\n    }\n\n    forEach(source, function (sourceVal, key) {\n      if (key === '__proto__') {\n        return;\n      }\n\n      var targetVal = target[key];\n\n      if (isObject(sourceVal)) {\n        if (!isObject(targetVal)) {\n          // override target[key] with object\n          targetVal = {};\n        }\n\n        target[key] = merge(targetVal, sourceVal);\n      } else {\n        target[key] = sourceVal;\n      }\n    });\n  });\n  return target;\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/min-dash/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/min-dom/dist/index.esm.js":
  /*!************************************************!*\
    !*** ./node_modules/min-dom/dist/index.esm.js ***!
    \************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"attr\": () => (/* binding */ attr),\n/* harmony export */   \"classes\": () => (/* binding */ classes),\n/* harmony export */   \"clear\": () => (/* binding */ clear),\n/* harmony export */   \"closest\": () => (/* binding */ closest),\n/* harmony export */   \"delegate\": () => (/* binding */ delegate),\n/* harmony export */   \"domify\": () => (/* binding */ domify),\n/* harmony export */   \"event\": () => (/* binding */ componentEvent),\n/* harmony export */   \"matches\": () => (/* binding */ matchesSelector),\n/* harmony export */   \"query\": () => (/* binding */ query),\n/* harmony export */   \"queryAll\": () => (/* binding */ all),\n/* harmony export */   \"remove\": () => (/* binding */ remove)\n/* harmony export */ });\n/**\n * Set attribute `name` to `val`, or get attr `name`.\n *\n * @param {Element} el\n * @param {String} name\n * @param {String} [val]\n * @api public\n */\nfunction attr(el, name, val) {\n  // get\n  if (arguments.length == 2) {\n    return el.getAttribute(name);\n  }\n\n  // remove\n  if (val === null) {\n    return el.removeAttribute(name);\n  }\n\n  // set\n  el.setAttribute(name, val);\n\n  return el;\n}\n\nvar indexOf = [].indexOf;\n\nvar indexof = function(arr, obj){\n  if (indexOf) return arr.indexOf(obj);\n  for (var i = 0; i < arr.length; ++i) {\n    if (arr[i] === obj) return i;\n  }\n  return -1;\n};\n\n/**\n * Taken from https://github.com/component/classes\n *\n * Without the component bits.\n */\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nfunction classes(el) {\n  return new ClassList(el);\n}\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n  if (!el || !el.nodeType) {\n    throw new Error('A DOM element reference is required');\n  }\n  this.el = el;\n  this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function (name) {\n  // classList\n  if (this.list) {\n    this.list.add(name);\n    return this;\n  }\n\n  // fallback\n  var arr = this.array();\n  var i = indexof(arr, name);\n  if (!~i) arr.push(name);\n  this.el.className = arr.join(' ');\n  return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function (name) {\n  if ('[object RegExp]' == toString.call(name)) {\n    return this.removeMatching(name);\n  }\n\n  // classList\n  if (this.list) {\n    this.list.remove(name);\n    return this;\n  }\n\n  // fallback\n  var arr = this.array();\n  var i = indexof(arr, name);\n  if (~i) arr.splice(i, 1);\n  this.el.className = arr.join(' ');\n  return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function (re) {\n  var arr = this.array();\n  for (var i = 0; i < arr.length; i++) {\n    if (re.test(arr[i])) {\n      this.remove(arr[i]);\n    }\n  }\n  return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function (name, force) {\n  // classList\n  if (this.list) {\n    if ('undefined' !== typeof force) {\n      if (force !== this.list.toggle(name, force)) {\n        this.list.toggle(name); // toggle again to correct\n      }\n    } else {\n      this.list.toggle(name);\n    }\n    return this;\n  }\n\n  // fallback\n  if ('undefined' !== typeof force) {\n    if (!force) {\n      this.remove(name);\n    } else {\n      this.add(name);\n    }\n  } else {\n    if (this.has(name)) {\n      this.remove(name);\n    } else {\n      this.add(name);\n    }\n  }\n\n  return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function () {\n  var className = this.el.getAttribute('class') || '';\n  var str = className.replace(/^\\s+|\\s+$/g, '');\n  var arr = str.split(re);\n  if ('' === arr[0]) arr.shift();\n  return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has = ClassList.prototype.contains = function (name) {\n  return this.list ? this.list.contains(name) : !!~indexof(this.array(), name);\n};\n\n/**\n * Remove all children from the given element.\n */\nfunction clear(el) {\n\n  var c;\n\n  while (el.childNodes.length) {\n    c = el.childNodes[0];\n    el.removeChild(c);\n  }\n\n  return el;\n}\n\nvar proto = typeof Element !== 'undefined' ? Element.prototype : {};\nvar vendor = proto.matches\n  || proto.matchesSelector\n  || proto.webkitMatchesSelector\n  || proto.mozMatchesSelector\n  || proto.msMatchesSelector\n  || proto.oMatchesSelector;\n\nvar matchesSelector = match;\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match(el, selector) {\n  if (!el || el.nodeType !== 1) return false;\n  if (vendor) return vendor.call(el, selector);\n  var nodes = el.parentNode.querySelectorAll(selector);\n  for (var i = 0; i < nodes.length; i++) {\n    if (nodes[i] == el) return true;\n  }\n  return false;\n}\n\n/**\n * Closest\n *\n * @param {Element} el\n * @param {String} selector\n * @param {Boolean} checkYourSelf (optional)\n */\nfunction closest (element, selector, checkYourSelf) {\n  var currentElem = checkYourSelf ? element : element.parentNode;\n\n  while (currentElem && currentElem.nodeType !== document.DOCUMENT_NODE && currentElem.nodeType !== document.DOCUMENT_FRAGMENT_NODE) {\n\n    if (matchesSelector(currentElem, selector)) {\n      return currentElem;\n    }\n\n    currentElem = currentElem.parentNode;\n  }\n\n  return matchesSelector(currentElem, selector) ? currentElem : null;\n}\n\nvar bind = window.addEventListener ? 'addEventListener' : 'attachEvent',\n    unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',\n    prefix = bind !== 'addEventListener' ? 'on' : '';\n\n/**\n * Bind `el` event `type` to `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nvar bind_1 = function(el, type, fn, capture){\n  el[bind](prefix + type, fn, capture || false);\n  return fn;\n};\n\n/**\n * Unbind `el` event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nvar unbind_1 = function(el, type, fn, capture){\n  el[unbind](prefix + type, fn, capture || false);\n  return fn;\n};\n\nvar componentEvent = {\n\tbind: bind_1,\n\tunbind: unbind_1\n};\n\n/**\n * Module dependencies.\n */\n\n/**\n * Delegate event `type` to `selector`\n * and invoke `fn(e)`. A callback function\n * is returned which may be passed to `.unbind()`.\n *\n * @param {Element} el\n * @param {String} selector\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\n// Some events don't bubble, so we want to bind to the capture phase instead\n// when delegating.\nvar forceCaptureEvents = ['focus', 'blur'];\n\nfunction bind$1(el, selector, type, fn, capture) {\n  if (forceCaptureEvents.indexOf(type) !== -1) {\n    capture = true;\n  }\n\n  return componentEvent.bind(el, type, function (e) {\n    var target = e.target || e.srcElement;\n    e.delegateTarget = closest(target, selector, true, el);\n    if (e.delegateTarget) {\n      fn.call(el, e);\n    }\n  }, capture);\n}\n\n/**\n * Unbind event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\nfunction unbind$1(el, type, fn, capture) {\n  if (forceCaptureEvents.indexOf(type) !== -1) {\n    capture = true;\n  }\n\n  return componentEvent.unbind(el, type, fn, capture);\n}\n\nvar delegate = {\n  bind: bind$1,\n  unbind: unbind$1\n};\n\n/**\n * Expose `parse`.\n */\n\nvar domify = parse;\n\n/**\n * Tests for browser support.\n */\n\nvar innerHTMLBug = false;\nvar bugTestDiv;\nif (typeof document !== 'undefined') {\n  bugTestDiv = document.createElement('div');\n  // Setup\n  bugTestDiv.innerHTML = '  <link/><table></table><a href=\"/a\">a</a><input type=\"checkbox\"/>';\n  // Make sure that link elements get serialized correctly by innerHTML\n  // This requires a wrapper element in IE\n  innerHTMLBug = !bugTestDiv.getElementsByTagName('link').length;\n  bugTestDiv = undefined;\n}\n\n/**\n * Wrap map from jquery.\n */\n\nvar map = {\n  legend: [1, '<fieldset>', '</fieldset>'],\n  tr: [2, '<table><tbody>', '</tbody></table>'],\n  col: [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n  // for script/link/style tags to work in IE6-8, you have to wrap\n  // in a div with a non-whitespace character in front, ha!\n  _default: innerHTMLBug ? [1, 'X<div>', '</div>'] : [0, '', '']\n};\n\nmap.td =\nmap.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nmap.option =\nmap.optgroup = [1, '<select multiple=\"multiple\">', '</select>'];\n\nmap.thead =\nmap.tbody =\nmap.colgroup =\nmap.caption =\nmap.tfoot = [1, '<table>', '</table>'];\n\nmap.polyline =\nmap.ellipse =\nmap.polygon =\nmap.circle =\nmap.text =\nmap.line =\nmap.path =\nmap.rect =\nmap.g = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">','</svg>'];\n\n/**\n * Parse `html` and return a DOM Node instance, which could be a TextNode,\n * HTML DOM Node of some kind (<div> for example), or a DocumentFragment\n * instance, depending on the contents of the `html` string.\n *\n * @param {String} html - HTML string to \"domify\"\n * @param {Document} doc - The `document` instance to create the Node for\n * @return {DOMNode} the TextNode, DOM Node, or DocumentFragment instance\n * @api private\n */\n\nfunction parse(html, doc) {\n  if ('string' != typeof html) throw new TypeError('String expected');\n\n  // default to the global `document` object\n  if (!doc) doc = document;\n\n  // tag name\n  var m = /<([\\w:]+)/.exec(html);\n  if (!m) return doc.createTextNode(html);\n\n  html = html.replace(/^\\s+|\\s+$/g, ''); // Remove leading/trailing whitespace\n\n  var tag = m[1];\n\n  // body support\n  if (tag == 'body') {\n    var el = doc.createElement('html');\n    el.innerHTML = html;\n    return el.removeChild(el.lastChild);\n  }\n\n  // wrap map\n  var wrap = map[tag] || map._default;\n  var depth = wrap[0];\n  var prefix = wrap[1];\n  var suffix = wrap[2];\n  var el = doc.createElement('div');\n  el.innerHTML = prefix + html + suffix;\n  while (depth--) el = el.lastChild;\n\n  // one element\n  if (el.firstChild == el.lastChild) {\n    return el.removeChild(el.firstChild);\n  }\n\n  // several elements\n  var fragment = doc.createDocumentFragment();\n  while (el.firstChild) {\n    fragment.appendChild(el.removeChild(el.firstChild));\n  }\n\n  return fragment;\n}\n\nfunction query(selector, el) {\n  el = el || document;\n\n  return el.querySelector(selector);\n}\n\nfunction all(selector, el) {\n  el = el || document;\n\n  return el.querySelectorAll(selector);\n}\n\nfunction remove(el) {\n  el.parentNode && el.parentNode.removeChild(el);\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/min-dom/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/mitt/dist/mitt.es.js":
  /*!*******************************************!*\
    !*** ./node_modules/mitt/dist/mitt.es.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n//      \n// An event handler can take an optional event argument\n// and should not return a value\n                                          \n                                                               \n\n// An array of all currently registered event handlers for a type\n                                            \n                                                            \n// A map of event types and their corresponding event handlers.\n                        \n                                 \n                                   \n  \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n *  @name mitt\n *  @returns {Mitt}\n */\nfunction mitt(all                 ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param  {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type        , handler              ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param  {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param  {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type        , handler              ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type  The event type to invoke\n\t\t * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type        , evt     ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mitt);\n//# sourceMappingURL=mitt.es.js.map\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/mitt/dist/mitt.es.js?");
  
  /***/ }),
  
  /***/ "./node_modules/moddle-xml/dist/index.esm.js":
  /*!***************************************************!*\
    !*** ./node_modules/moddle-xml/dist/index.esm.js ***!
    \***************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Reader\": () => (/* binding */ Reader),\n/* harmony export */   \"Writer\": () => (/* binding */ Writer)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var saxen__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! saxen */ \"./node_modules/saxen/dist/index.esm.js\");\n/* harmony import */ var moddle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! moddle */ \"./node_modules/moddle/dist/index.esm.js\");\n\n\n\n\nfunction hasLowerCaseAlias(pkg) {\n  return pkg.xml && pkg.xml.tagAlias === 'lowerCase';\n}\n\nvar DEFAULT_NS_MAP = {\n  'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n  'xml': 'http://www.w3.org/XML/1998/namespace'\n};\n\nvar XSI_TYPE = 'xsi:type';\n\nfunction serializeFormat(element) {\n  return element.xml && element.xml.serialize;\n}\n\nfunction serializeAsType(element) {\n  return serializeFormat(element) === XSI_TYPE;\n}\n\nfunction serializeAsProperty(element) {\n  return serializeFormat(element) === 'property';\n}\n\nfunction capitalize(str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nfunction aliasToName(aliasNs, pkg) {\n\n  if (!hasLowerCaseAlias(pkg)) {\n    return aliasNs.name;\n  }\n\n  return aliasNs.prefix + ':' + capitalize(aliasNs.localName);\n}\n\nfunction prefixedToName(nameNs, pkg) {\n\n  var name = nameNs.name,\n      localName = nameNs.localName;\n\n  var typePrefix = pkg.xml && pkg.xml.typePrefix;\n\n  if (typePrefix && localName.indexOf(typePrefix) === 0) {\n    return nameNs.prefix + ':' + localName.slice(typePrefix.length);\n  } else {\n    return name;\n  }\n}\n\nfunction normalizeXsiTypeName(name, model) {\n\n  var nameNs = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name);\n  var pkg = model.getPackage(nameNs.prefix);\n\n  return prefixedToName(nameNs, pkg);\n}\n\nfunction error(message) {\n  return new Error(message);\n}\n\n/**\n * Get the moddle descriptor for a given instance or type.\n *\n * @param  {ModdleElement|Function} element\n *\n * @return {Object} the moddle descriptor\n */\nfunction getModdleDescriptor(element) {\n  return element.$descriptor;\n}\n\n\n/**\n * A parse context.\n *\n * @class\n *\n * @param {Object} options\n * @param {ElementHandler} options.rootHandler the root handler for parsing a document\n * @param {boolean} [options.lax=false] whether or not to ignore invalid elements\n */\nfunction Context(options) {\n\n  /**\n   * @property {ElementHandler} rootHandler\n   */\n\n  /**\n   * @property {Boolean} lax\n   */\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(this, options);\n\n  this.elementsById = {};\n  this.references = [];\n  this.warnings = [];\n\n  /**\n   * Add an unresolved reference.\n   *\n   * @param {Object} reference\n   */\n  this.addReference = function(reference) {\n    this.references.push(reference);\n  };\n\n  /**\n   * Add a processed element.\n   *\n   * @param {ModdleElement} element\n   */\n  this.addElement = function(element) {\n\n    if (!element) {\n      throw error('expected element');\n    }\n\n    var elementsById = this.elementsById;\n\n    var descriptor = getModdleDescriptor(element);\n\n    var idProperty = descriptor.idProperty,\n        id;\n\n    if (idProperty) {\n      id = element.get(idProperty.name);\n\n      if (id) {\n\n        // for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar\n        if (!/^([a-z][\\w-.]*:)?[a-z_][\\w-.]*$/i.test(id)) {\n          throw new Error('illegal ID <' + id + '>');\n        }\n\n        if (elementsById[id]) {\n          throw error('duplicate ID <' + id + '>');\n        }\n\n        elementsById[id] = element;\n      }\n    }\n  };\n\n  /**\n   * Add an import warning.\n   *\n   * @param {Object} warning\n   * @param {String} warning.message\n   * @param {Error} [warning.error]\n   */\n  this.addWarning = function(warning) {\n    this.warnings.push(warning);\n  };\n}\n\nfunction BaseHandler() {}\n\nBaseHandler.prototype.handleEnd = function() {};\nBaseHandler.prototype.handleText = function() {};\nBaseHandler.prototype.handleNode = function() {};\n\n\n/**\n * A simple pass through handler that does nothing except for\n * ignoring all input it receives.\n *\n * This is used to ignore unknown elements and\n * attributes.\n */\nfunction NoopHandler() { }\n\nNoopHandler.prototype = Object.create(BaseHandler.prototype);\n\nNoopHandler.prototype.handleNode = function() {\n  return this;\n};\n\nfunction BodyHandler() {}\n\nBodyHandler.prototype = Object.create(BaseHandler.prototype);\n\nBodyHandler.prototype.handleText = function(text) {\n  this.body = (this.body || '') + text;\n};\n\nfunction ReferenceHandler(property, context) {\n  this.property = property;\n  this.context = context;\n}\n\nReferenceHandler.prototype = Object.create(BodyHandler.prototype);\n\nReferenceHandler.prototype.handleNode = function(node) {\n\n  if (this.element) {\n    throw error('expected no sub nodes');\n  } else {\n    this.element = this.createReference(node);\n  }\n\n  return this;\n};\n\nReferenceHandler.prototype.handleEnd = function() {\n  this.element.id = this.body;\n};\n\nReferenceHandler.prototype.createReference = function(node) {\n  return {\n    property: this.property.ns.name,\n    id: ''\n  };\n};\n\nfunction ValueHandler(propertyDesc, element) {\n  this.element = element;\n  this.propertyDesc = propertyDesc;\n}\n\nValueHandler.prototype = Object.create(BodyHandler.prototype);\n\nValueHandler.prototype.handleEnd = function() {\n\n  var value = this.body || '',\n      element = this.element,\n      propertyDesc = this.propertyDesc;\n\n  value = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.coerceType)(propertyDesc.type, value);\n\n  if (propertyDesc.isMany) {\n    element.get(propertyDesc.name).push(value);\n  } else {\n    element.set(propertyDesc.name, value);\n  }\n};\n\n\nfunction BaseElementHandler() {}\n\nBaseElementHandler.prototype = Object.create(BodyHandler.prototype);\n\nBaseElementHandler.prototype.handleNode = function(node) {\n  var parser = this,\n      element = this.element;\n\n  if (!element) {\n    element = this.element = this.createElement(node);\n\n    this.context.addElement(element);\n  } else {\n    parser = this.handleChild(node);\n  }\n\n  return parser;\n};\n\n/**\n * @class Reader.ElementHandler\n *\n */\nfunction ElementHandler(model, typeName, context) {\n  this.model = model;\n  this.type = model.getType(typeName);\n  this.context = context;\n}\n\nElementHandler.prototype = Object.create(BaseElementHandler.prototype);\n\nElementHandler.prototype.addReference = function(reference) {\n  this.context.addReference(reference);\n};\n\nElementHandler.prototype.handleText = function(text) {\n\n  var element = this.element,\n      descriptor = getModdleDescriptor(element),\n      bodyProperty = descriptor.bodyProperty;\n\n  if (!bodyProperty) {\n    throw error('unexpected body text <' + text + '>');\n  }\n\n  BodyHandler.prototype.handleText.call(this, text);\n};\n\nElementHandler.prototype.handleEnd = function() {\n\n  var value = this.body,\n      element = this.element,\n      descriptor = getModdleDescriptor(element),\n      bodyProperty = descriptor.bodyProperty;\n\n  if (bodyProperty && value !== undefined) {\n    value = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.coerceType)(bodyProperty.type, value);\n    element.set(bodyProperty.name, value);\n  }\n};\n\n/**\n * Create an instance of the model from the given node.\n *\n * @param  {Element} node the xml node\n */\nElementHandler.prototype.createElement = function(node) {\n  var attributes = node.attributes,\n      Type = this.type,\n      descriptor = getModdleDescriptor(Type),\n      context = this.context,\n      instance = new Type({}),\n      model = this.model,\n      propNameNs;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attributes, function(value, name) {\n\n    var prop = descriptor.propertiesByName[name],\n        values;\n\n    if (prop && prop.isReference) {\n\n      if (!prop.isMany) {\n        context.addReference({\n          element: instance,\n          property: prop.ns.name,\n          id: value\n        });\n      } else {\n\n        // IDREFS: parse references as whitespace-separated list\n        values = value.split(' ');\n\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(values, function(v) {\n          context.addReference({\n            element: instance,\n            property: prop.ns.name,\n            id: v\n          });\n        });\n      }\n\n    } else {\n      if (prop) {\n        value = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.coerceType)(prop.type, value);\n      } else\n      if (name !== 'xmlns') {\n        propNameNs = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name, descriptor.ns.prefix);\n\n        // check whether attribute is defined in a well-known namespace\n        // if that is the case we emit a warning to indicate potential misuse\n        if (model.getPackage(propNameNs.prefix)) {\n\n          context.addWarning({\n            message: 'unknown attribute <' + name + '>',\n            element: instance,\n            property: name,\n            value: value\n          });\n        }\n      }\n\n      instance.set(name, value);\n    }\n  });\n\n  return instance;\n};\n\nElementHandler.prototype.getPropertyForNode = function(node) {\n\n  var name = node.name;\n  var nameNs = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name);\n\n  var type = this.type,\n      model = this.model,\n      descriptor = getModdleDescriptor(type);\n\n  var propertyName = nameNs.name,\n      property = descriptor.propertiesByName[propertyName],\n      elementTypeName,\n      elementType;\n\n  // search for properties by name first\n\n  if (property && !property.isAttr) {\n\n    if (serializeAsType(property)) {\n      elementTypeName = node.attributes[XSI_TYPE];\n\n      // xsi type is optional, if it does not exists the\n      // default type is assumed\n      if (elementTypeName) {\n\n        // take possible type prefixes from XML\n        // into account, i.e.: xsi:type=\"t{ActualType}\"\n        elementTypeName = normalizeXsiTypeName(elementTypeName, model);\n\n        elementType = model.getType(elementTypeName);\n\n        return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, property, {\n          effectiveType: getModdleDescriptor(elementType).name\n        });\n      }\n    }\n\n    // search for properties by name first\n    return property;\n  }\n\n  var pkg = model.getPackage(nameNs.prefix);\n\n  if (pkg) {\n    elementTypeName = aliasToName(nameNs, pkg);\n    elementType = model.getType(elementTypeName);\n\n    // search for collection members later\n    property = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(descriptor.properties, function(p) {\n      return !p.isVirtual && !p.isReference && !p.isAttribute && elementType.hasType(p.type);\n    });\n\n    if (property) {\n      return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, property, {\n        effectiveType: getModdleDescriptor(elementType).name\n      });\n    }\n  } else {\n\n    // parse unknown element (maybe extension)\n    property = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.find)(descriptor.properties, function(p) {\n      return !p.isReference && !p.isAttribute && p.type === 'Element';\n    });\n\n    if (property) {\n      return property;\n    }\n  }\n\n  throw error('unrecognized element <' + nameNs.name + '>');\n};\n\nElementHandler.prototype.toString = function() {\n  return 'ElementDescriptor[' + getModdleDescriptor(this.type).name + ']';\n};\n\nElementHandler.prototype.valueHandler = function(propertyDesc, element) {\n  return new ValueHandler(propertyDesc, element);\n};\n\nElementHandler.prototype.referenceHandler = function(propertyDesc) {\n  return new ReferenceHandler(propertyDesc, this.context);\n};\n\nElementHandler.prototype.handler = function(type) {\n  if (type === 'Element') {\n    return new GenericElementHandler(this.model, type, this.context);\n  } else {\n    return new ElementHandler(this.model, type, this.context);\n  }\n};\n\n/**\n * Handle the child element parsing\n *\n * @param  {Element} node the xml node\n */\nElementHandler.prototype.handleChild = function(node) {\n  var propertyDesc, type, element, childHandler;\n\n  propertyDesc = this.getPropertyForNode(node);\n  element = this.element;\n\n  type = propertyDesc.effectiveType || propertyDesc.type;\n\n  if ((0,moddle__WEBPACK_IMPORTED_MODULE_1__.isSimpleType)(type)) {\n    return this.valueHandler(propertyDesc, element);\n  }\n\n  if (propertyDesc.isReference) {\n    childHandler = this.referenceHandler(propertyDesc).handleNode(node);\n  } else {\n    childHandler = this.handler(type).handleNode(node);\n  }\n\n  var newElement = childHandler.element;\n\n  // child handles may decide to skip elements\n  // by not returning anything\n  if (newElement !== undefined) {\n\n    if (propertyDesc.isMany) {\n      element.get(propertyDesc.name).push(newElement);\n    } else {\n      element.set(propertyDesc.name, newElement);\n    }\n\n    if (propertyDesc.isReference) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(newElement, {\n        element: element\n      });\n\n      this.context.addReference(newElement);\n    } else {\n\n      // establish child -> parent relationship\n      newElement.$parent = element;\n    }\n  }\n\n  return childHandler;\n};\n\n/**\n * An element handler that performs special validation\n * to ensure the node it gets initialized with matches\n * the handlers type (namespace wise).\n *\n * @param {Moddle} model\n * @param {String} typeName\n * @param {Context} context\n */\nfunction RootElementHandler(model, typeName, context) {\n  ElementHandler.call(this, model, typeName, context);\n}\n\nRootElementHandler.prototype = Object.create(ElementHandler.prototype);\n\nRootElementHandler.prototype.createElement = function(node) {\n\n  var name = node.name,\n      nameNs = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name),\n      model = this.model,\n      type = this.type,\n      pkg = model.getPackage(nameNs.prefix),\n      typeName = pkg && aliasToName(nameNs, pkg) || name;\n\n  // verify the correct namespace if we parse\n  // the first element in the handler tree\n  //\n  // this ensures we don't mistakenly import wrong namespace elements\n  if (!type.hasType(typeName)) {\n    throw error('unexpected element <' + node.originalName + '>');\n  }\n\n  return ElementHandler.prototype.createElement.call(this, node);\n};\n\n\nfunction GenericElementHandler(model, typeName, context) {\n  this.model = model;\n  this.context = context;\n}\n\nGenericElementHandler.prototype = Object.create(BaseElementHandler.prototype);\n\nGenericElementHandler.prototype.createElement = function(node) {\n\n  var name = node.name,\n      ns = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name),\n      prefix = ns.prefix,\n      uri = node.ns[prefix + '$uri'],\n      attributes = node.attributes;\n\n  return this.model.createAny(name, uri, attributes);\n};\n\nGenericElementHandler.prototype.handleChild = function(node) {\n\n  var handler = new GenericElementHandler(this.model, 'Element', this.context).handleNode(node),\n      element = this.element;\n\n  var newElement = handler.element,\n      children;\n\n  if (newElement !== undefined) {\n    children = element.$children = element.$children || [];\n    children.push(newElement);\n\n    // establish child -> parent relationship\n    newElement.$parent = element;\n  }\n\n  return handler;\n};\n\nGenericElementHandler.prototype.handleEnd = function() {\n  if (this.body) {\n    this.element.$body = this.body;\n  }\n};\n\n/**\n * A reader for a meta-model\n *\n * @param {Object} options\n * @param {Model} options.model used to read xml files\n * @param {Boolean} options.lax whether to make parse errors warnings\n */\nfunction Reader(options) {\n\n  if (options instanceof moddle__WEBPACK_IMPORTED_MODULE_1__.Moddle) {\n    options = {\n      model: options\n    };\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)(this, { lax: false }, options);\n}\n\n/**\n * The fromXML result.\n *\n * @typedef {Object} ParseResult\n *\n * @property {ModdleElement} rootElement\n * @property {Array<Object>} references\n * @property {Array<Error>} warnings\n * @property {Object} elementsById - a mapping containing each ID -> ModdleElement\n */\n\n/**\n * The fromXML result.\n *\n * @typedef {Error} ParseError\n *\n * @property {Array<Error>} warnings\n */\n\n/**\n * Parse the given XML into a moddle document tree.\n *\n * @param {String} xml\n * @param {ElementHandler|Object} options or rootHandler\n *\n * @returns {Promise<ParseResult, ParseError>}\n */\nReader.prototype.fromXML = function(xml, options, done) {\n\n  var rootHandler = options.rootHandler;\n\n  if (options instanceof ElementHandler) {\n\n    // root handler passed via (xml, { rootHandler: ElementHandler }, ...)\n    rootHandler = options;\n    options = {};\n  } else {\n    if (typeof options === 'string') {\n\n      // rootHandler passed via (xml, 'someString', ...)\n      rootHandler = this.handler(options);\n      options = {};\n    } else if (typeof rootHandler === 'string') {\n\n      // rootHandler passed via (xml, { rootHandler: 'someString' }, ...)\n      rootHandler = this.handler(rootHandler);\n    }\n  }\n\n  var model = this.model,\n      lax = this.lax;\n\n  var context = new Context((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({}, options, { rootHandler: rootHandler })),\n      parser = new saxen__WEBPACK_IMPORTED_MODULE_0__.Parser({ proxy: true }),\n      stack = createStack();\n\n  rootHandler.context = context;\n\n  // push root handler\n  stack.push(rootHandler);\n\n\n  /**\n   * Handle error.\n   *\n   * @param  {Error} err\n   * @param  {Function} getContext\n   * @param  {boolean} lax\n   *\n   * @return {boolean} true if handled\n   */\n  function handleError(err, getContext, lax) {\n\n    var ctx = getContext();\n\n    var line = ctx.line,\n        column = ctx.column,\n        data = ctx.data;\n\n    // we receive the full context data here,\n    // for elements trim down the information\n    // to the tag name, only\n    if (data.charAt(0) === '<' && data.indexOf(' ') !== -1) {\n      data = data.slice(0, data.indexOf(' ')) + '>';\n    }\n\n    var message =\n      'unparsable content ' + (data ? data + ' ' : '') + 'detected\\n\\t' +\n        'line: ' + line + '\\n\\t' +\n        'column: ' + column + '\\n\\t' +\n        'nested error: ' + err.message;\n\n    if (lax) {\n      context.addWarning({\n        message: message,\n        error: err\n      });\n\n      return true;\n    } else {\n      throw error(message);\n    }\n  }\n\n  function handleWarning(err, getContext) {\n\n    // just like handling errors in <lax=true> mode\n    return handleError(err, getContext, true);\n  }\n\n  /**\n   * Resolve collected references on parse end.\n   */\n  function resolveReferences() {\n\n    var elementsById = context.elementsById;\n    var references = context.references;\n\n    var i, r;\n\n    for (i = 0; (r = references[i]); i++) {\n      var element = r.element;\n      var reference = elementsById[r.id];\n      var property = getModdleDescriptor(element).propertiesByName[r.property];\n\n      if (!reference) {\n        context.addWarning({\n          message: 'unresolved reference <' + r.id + '>',\n          element: r.element,\n          property: r.property,\n          value: r.id\n        });\n      }\n\n      if (property.isMany) {\n        var collection = element.get(property.name),\n            idx = collection.indexOf(r);\n\n        // we replace an existing place holder (idx != -1) or\n        // append to the collection instead\n        if (idx === -1) {\n          idx = collection.length;\n        }\n\n        if (!reference) {\n\n          // remove unresolvable reference\n          collection.splice(idx, 1);\n        } else {\n\n          // add or update reference in collection\n          collection[idx] = reference;\n        }\n      } else {\n        element.set(property.name, reference);\n      }\n    }\n  }\n\n  function handleClose() {\n    stack.pop().handleEnd();\n  }\n\n  var PREAMBLE_START_PATTERN = /^<\\?xml /i;\n\n  var ENCODING_PATTERN = / encoding=\"([^\"]+)\"/i;\n\n  var UTF_8_PATTERN = /^utf-8$/i;\n\n  function handleQuestion(question) {\n\n    if (!PREAMBLE_START_PATTERN.test(question)) {\n      return;\n    }\n\n    var match = ENCODING_PATTERN.exec(question);\n    var encoding = match && match[1];\n\n    if (!encoding || UTF_8_PATTERN.test(encoding)) {\n      return;\n    }\n\n    context.addWarning({\n      message:\n        'unsupported document encoding <' + encoding + '>, ' +\n        'falling back to UTF-8'\n    });\n  }\n\n  function handleOpen(node, getContext) {\n    var handler = stack.peek();\n\n    try {\n      stack.push(handler.handleNode(node));\n    } catch (err) {\n\n      if (handleError(err, getContext, lax)) {\n        stack.push(new NoopHandler());\n      }\n    }\n  }\n\n  function handleCData(text, getContext) {\n\n    try {\n      stack.peek().handleText(text);\n    } catch (err) {\n      handleWarning(err, getContext);\n    }\n  }\n\n  function handleText(text, getContext) {\n\n    // strip whitespace only nodes, i.e. before\n    // <!CDATA[ ... ]> sections and in between tags\n\n    if (!text.trim()) {\n      return;\n    }\n\n    handleCData(text, getContext);\n  }\n\n  var uriMap = model.getPackages().reduce(function(uriMap, p) {\n    uriMap[p.uri] = p.prefix;\n\n    return uriMap;\n  }, {\n    'http://www.w3.org/XML/1998/namespace': 'xml' // add default xml ns\n  });\n  parser\n    .ns(uriMap)\n    .on('openTag', function(obj, decodeStr, selfClosing, getContext) {\n\n      // gracefully handle unparsable attributes (attrs=false)\n      var attrs = obj.attrs || {};\n\n      var decodedAttrs = Object.keys(attrs).reduce(function(d, key) {\n        var value = decodeStr(attrs[key]);\n\n        d[key] = value;\n\n        return d;\n      }, {});\n\n      var node = {\n        name: obj.name,\n        originalName: obj.originalName,\n        attributes: decodedAttrs,\n        ns: obj.ns\n      };\n\n      handleOpen(node, getContext);\n    })\n    .on('question', handleQuestion)\n    .on('closeTag', handleClose)\n    .on('cdata', handleCData)\n    .on('text', function(text, decodeEntities, getContext) {\n      handleText(decodeEntities(text), getContext);\n    })\n    .on('error', handleError)\n    .on('warn', handleWarning);\n\n  // async XML parsing to make sure the execution environment\n  // (node or brower) is kept responsive and that certain optimization\n  // strategies can kick in.\n  return new Promise(function(resolve, reject) {\n\n    var err;\n\n    try {\n      parser.parse(xml);\n\n      resolveReferences();\n    } catch (e) {\n      err = e;\n    }\n\n    var rootElement = rootHandler.element;\n\n    if (!err && !rootElement) {\n      err = error('failed to parse document as <' + rootHandler.type.$descriptor.name + '>');\n    }\n\n    var warnings = context.warnings;\n    var references = context.references;\n    var elementsById = context.elementsById;\n\n    if (err) {\n      err.warnings = warnings;\n\n      return reject(err);\n    } else {\n      return resolve({\n        rootElement: rootElement,\n        elementsById: elementsById,\n        references: references,\n        warnings: warnings\n      });\n    }\n  });\n};\n\nReader.prototype.handler = function(name) {\n  return new RootElementHandler(this.model, name);\n};\n\n\n// helpers //////////////////////////\n\nfunction createStack() {\n  var stack = [];\n\n  Object.defineProperty(stack, 'peek', {\n    value: function() {\n      return this[this.length - 1];\n    }\n  });\n\n  return stack;\n}\n\nvar XML_PREAMBLE = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n';\n\nvar ESCAPE_ATTR_CHARS = /<|>|'|\"|&|\\n\\r|\\n/g;\nvar ESCAPE_CHARS = /<|>|&/g;\n\n\nfunction Namespaces(parent) {\n\n  var prefixMap = {};\n  var uriMap = {};\n  var used = {};\n\n  var wellknown = [];\n  var custom = [];\n\n  // API\n\n  this.byUri = function(uri) {\n    return uriMap[uri] || (\n      parent && parent.byUri(uri)\n    );\n  };\n\n  this.add = function(ns, isWellknown) {\n\n    uriMap[ns.uri] = ns;\n\n    if (isWellknown) {\n      wellknown.push(ns);\n    } else {\n      custom.push(ns);\n    }\n\n    this.mapPrefix(ns.prefix, ns.uri);\n  };\n\n  this.uriByPrefix = function(prefix) {\n    return prefixMap[prefix || 'xmlns'];\n  };\n\n  this.mapPrefix = function(prefix, uri) {\n    prefixMap[prefix || 'xmlns'] = uri;\n  };\n\n  this.getNSKey = function(ns) {\n    return (ns.prefix !== undefined) ? (ns.uri + '|' + ns.prefix) : ns.uri;\n  };\n\n  this.logUsed = function(ns) {\n\n    var uri = ns.uri;\n    var nsKey = this.getNSKey(ns);\n\n    used[nsKey] = this.byUri(uri);\n\n    // Inform parent recursively about the usage of this NS\n    if (parent) {\n      parent.logUsed(ns);\n    }\n  };\n\n  this.getUsed = function(ns) {\n\n    function isUsed(ns) {\n      var nsKey = self.getNSKey(ns);\n\n      return used[nsKey];\n    }\n\n    var self = this;\n\n    var allNs = [].concat(wellknown, custom);\n\n    return allNs.filter(isUsed);\n  };\n\n}\n\nfunction lower(string) {\n  return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nfunction nameToAlias(name, pkg) {\n  if (hasLowerCaseAlias(pkg)) {\n    return lower(name);\n  } else {\n    return name;\n  }\n}\n\nfunction inherits(ctor, superCtor) {\n  ctor.super_ = superCtor;\n  ctor.prototype = Object.create(superCtor.prototype, {\n    constructor: {\n      value: ctor,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n}\n\nfunction nsName(ns) {\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(ns)) {\n    return ns;\n  } else {\n    return (ns.prefix ? ns.prefix + ':' : '') + ns.localName;\n  }\n}\n\nfunction getNsAttrs(namespaces) {\n\n  return namespaces.getUsed().filter(function(ns) {\n\n    // do not serialize built in <xml> namespace\n    return ns.prefix !== 'xml';\n  }).map(function(ns) {\n    var name = 'xmlns' + (ns.prefix ? ':' + ns.prefix : '');\n    return { name: name, value: ns.uri };\n  });\n\n}\n\nfunction getElementNs(ns, descriptor) {\n  if (descriptor.isGeneric) {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ localName: descriptor.ns.localName }, ns);\n  } else {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ localName: nameToAlias(descriptor.ns.localName, descriptor.$pkg) }, ns);\n  }\n}\n\nfunction getPropertyNs(ns, descriptor) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ localName: descriptor.ns.localName }, ns);\n}\n\nfunction getSerializableProperties(element) {\n  var descriptor = element.$descriptor;\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(descriptor.properties, function(p) {\n    var name = p.name;\n\n    if (p.isVirtual) {\n      return false;\n    }\n\n    // do not serialize defaults\n    if (!(0,min_dash__WEBPACK_IMPORTED_MODULE_2__.has)(element, name)) {\n      return false;\n    }\n\n    var value = element[name];\n\n    // do not serialize default equals\n    if (value === p.default) {\n      return false;\n    }\n\n    // do not serialize null properties\n    if (value === null) {\n      return false;\n    }\n\n    return p.isMany ? value.length : true;\n  });\n}\n\nvar ESCAPE_ATTR_MAP = {\n  '\\n': '#10',\n  '\\n\\r': '#10',\n  '\"': '#34',\n  '\\'': '#39',\n  '<': '#60',\n  '>': '#62',\n  '&': '#38'\n};\n\nvar ESCAPE_MAP = {\n  '<': 'lt',\n  '>': 'gt',\n  '&': 'amp'\n};\n\nfunction escape(str, charPattern, replaceMap) {\n\n  // ensure we are handling strings here\n  str = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(str) ? str : '' + str;\n\n  return str.replace(charPattern, function(s) {\n    return '&' + replaceMap[s] + ';';\n  });\n}\n\n/**\n * Escape a string attribute to not contain any bad values (line breaks, '\"', ...)\n *\n * @param {String} str the string to escape\n * @return {String} the escaped string\n */\nfunction escapeAttr(str) {\n  return escape(str, ESCAPE_ATTR_CHARS, ESCAPE_ATTR_MAP);\n}\n\nfunction escapeBody(str) {\n  return escape(str, ESCAPE_CHARS, ESCAPE_MAP);\n}\n\nfunction filterAttributes(props) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(props, function(p) { return p.isAttr; });\n}\n\nfunction filterContained(props) {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.filter)(props, function(p) { return !p.isAttr; });\n}\n\n\nfunction ReferenceSerializer(tagName) {\n  this.tagName = tagName;\n}\n\nReferenceSerializer.prototype.build = function(element) {\n  this.element = element;\n  return this;\n};\n\nReferenceSerializer.prototype.serializeTo = function(writer) {\n  writer\n    .appendIndent()\n    .append('<' + this.tagName + '>' + this.element.id + '</' + this.tagName + '>')\n    .appendNewLine();\n};\n\nfunction BodySerializer() {}\n\nBodySerializer.prototype.serializeValue =\nBodySerializer.prototype.serializeTo = function(writer) {\n  writer.append(\n    this.escape\n      ? escapeBody(this.value)\n      : this.value\n  );\n};\n\nBodySerializer.prototype.build = function(prop, value) {\n  this.value = value;\n\n  if (prop.type === 'String' && value.search(ESCAPE_CHARS) !== -1) {\n    this.escape = true;\n  }\n\n  return this;\n};\n\nfunction ValueSerializer(tagName) {\n  this.tagName = tagName;\n}\n\ninherits(ValueSerializer, BodySerializer);\n\nValueSerializer.prototype.serializeTo = function(writer) {\n\n  writer\n    .appendIndent()\n    .append('<' + this.tagName + '>');\n\n  this.serializeValue(writer);\n\n  writer\n    .append('</' + this.tagName + '>')\n    .appendNewLine();\n};\n\nfunction ElementSerializer(parent, propertyDescriptor) {\n  this.body = [];\n  this.attrs = [];\n\n  this.parent = parent;\n  this.propertyDescriptor = propertyDescriptor;\n}\n\nElementSerializer.prototype.build = function(element) {\n  this.element = element;\n\n  var elementDescriptor = element.$descriptor,\n      propertyDescriptor = this.propertyDescriptor;\n\n  var otherAttrs,\n      properties;\n\n  var isGeneric = elementDescriptor.isGeneric;\n\n  if (isGeneric) {\n    otherAttrs = this.parseGeneric(element);\n  } else {\n    otherAttrs = this.parseNsAttributes(element);\n  }\n\n  if (propertyDescriptor) {\n    this.ns = this.nsPropertyTagName(propertyDescriptor);\n  } else {\n    this.ns = this.nsTagName(elementDescriptor);\n  }\n\n  // compute tag name\n  this.tagName = this.addTagName(this.ns);\n\n  if (!isGeneric) {\n    properties = getSerializableProperties(element);\n\n    this.parseAttributes(filterAttributes(properties));\n    this.parseContainments(filterContained(properties));\n  }\n\n  this.parseGenericAttributes(element, otherAttrs);\n\n  return this;\n};\n\nElementSerializer.prototype.nsTagName = function(descriptor) {\n  var effectiveNs = this.logNamespaceUsed(descriptor.ns);\n  return getElementNs(effectiveNs, descriptor);\n};\n\nElementSerializer.prototype.nsPropertyTagName = function(descriptor) {\n  var effectiveNs = this.logNamespaceUsed(descriptor.ns);\n  return getPropertyNs(effectiveNs, descriptor);\n};\n\nElementSerializer.prototype.isLocalNs = function(ns) {\n  return ns.uri === this.ns.uri;\n};\n\n/**\n * Get the actual ns attribute name for the given element.\n *\n * @param {Object} element\n * @param {Boolean} [element.inherited=false]\n *\n * @return {Object} nsName\n */\nElementSerializer.prototype.nsAttributeName = function(element) {\n\n  var ns;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(element)) {\n    ns = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(element);\n  } else {\n    ns = element.ns;\n  }\n\n  // return just local name for inherited attributes\n  if (element.inherited) {\n    return { localName: ns.localName };\n  }\n\n  // parse + log effective ns\n  var effectiveNs = this.logNamespaceUsed(ns);\n\n  // LOG ACTUAL namespace use\n  this.getNamespaces().logUsed(effectiveNs);\n\n  // strip prefix if same namespace like parent\n  if (this.isLocalNs(effectiveNs)) {\n    return { localName: ns.localName };\n  } else {\n    return (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ localName: ns.localName }, effectiveNs);\n  }\n};\n\nElementSerializer.prototype.parseGeneric = function(element) {\n\n  var self = this,\n      body = this.body;\n\n  var attributes = [];\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(element, function(val, key) {\n\n    var nonNsAttr;\n\n    if (key === '$body') {\n      body.push(new BodySerializer().build({ type: 'String' }, val));\n    } else\n    if (key === '$children') {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(val, function(child) {\n        body.push(new ElementSerializer(self).build(child));\n      });\n    } else\n    if (key.indexOf('$') !== 0) {\n      nonNsAttr = self.parseNsAttribute(element, key, val);\n\n      if (nonNsAttr) {\n        attributes.push({ name: key, value: val });\n      }\n    }\n  });\n\n  return attributes;\n};\n\nElementSerializer.prototype.parseNsAttribute = function(element, name, value) {\n  var model = element.$model;\n\n  var nameNs = (0,moddle__WEBPACK_IMPORTED_MODULE_1__.parseNameNS)(name);\n\n  var ns;\n\n  // parse xmlns:foo=\"http://foo.bar\"\n  if (nameNs.prefix === 'xmlns') {\n    ns = { prefix: nameNs.localName, uri: value };\n  }\n\n  // parse xmlns=\"http://foo.bar\"\n  if (!nameNs.prefix && nameNs.localName === 'xmlns') {\n    ns = { uri: value };\n  }\n\n  if (!ns) {\n    return {\n      name: name,\n      value: value\n    };\n  }\n\n  if (model && model.getPackage(value)) {\n\n    // register well known namespace\n    this.logNamespace(ns, true, true);\n  } else {\n\n    // log custom namespace directly as used\n    var actualNs = this.logNamespaceUsed(ns, true);\n\n    this.getNamespaces().logUsed(actualNs);\n  }\n};\n\n\n/**\n * Parse namespaces and return a list of left over generic attributes\n *\n * @param  {Object} element\n * @return {Array<Object>}\n */\nElementSerializer.prototype.parseNsAttributes = function(element, attrs) {\n  var self = this;\n\n  var genericAttrs = element.$attrs;\n\n  var attributes = [];\n\n  // parse namespace attributes first\n  // and log them. push non namespace attributes to a list\n  // and process them later\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(genericAttrs, function(value, name) {\n\n    var nonNsAttr = self.parseNsAttribute(element, name, value);\n\n    if (nonNsAttr) {\n      attributes.push(nonNsAttr);\n    }\n  });\n\n  return attributes;\n};\n\nElementSerializer.prototype.parseGenericAttributes = function(element, attributes) {\n\n  var self = this;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attributes, function(attr) {\n\n    // do not serialize xsi:type attribute\n    // it is set manually based on the actual implementation type\n    if (attr.name === XSI_TYPE) {\n      return;\n    }\n\n    try {\n      self.addAttribute(self.nsAttributeName(attr.name), attr.value);\n    } catch (e) {\n      console.warn(\n        'missing namespace information for ',\n        attr.name, '=', attr.value, 'on', element,\n        e);\n    }\n  });\n};\n\nElementSerializer.prototype.parseContainments = function(properties) {\n\n  var self = this,\n      body = this.body,\n      element = this.element;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(properties, function(p) {\n    var value = element.get(p.name),\n        isReference = p.isReference,\n        isMany = p.isMany;\n\n    if (!isMany) {\n      value = [ value ];\n    }\n\n    if (p.isBody) {\n      body.push(new BodySerializer().build(p, value[0]));\n    } else\n    if ((0,moddle__WEBPACK_IMPORTED_MODULE_1__.isSimpleType)(p.type)) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(value, function(v) {\n        body.push(new ValueSerializer(self.addTagName(self.nsPropertyTagName(p))).build(p, v));\n      });\n    } else\n    if (isReference) {\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(value, function(v) {\n        body.push(new ReferenceSerializer(self.addTagName(self.nsPropertyTagName(p))).build(v));\n      });\n    } else {\n\n      // allow serialization via type\n      // rather than element name\n      var asType = serializeAsType(p),\n          asProperty = serializeAsProperty(p);\n\n      (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(value, function(v) {\n        var serializer;\n\n        if (asType) {\n          serializer = new TypeSerializer(self, p);\n        } else\n        if (asProperty) {\n          serializer = new ElementSerializer(self, p);\n        } else {\n          serializer = new ElementSerializer(self);\n        }\n\n        body.push(serializer.build(v));\n      });\n    }\n  });\n};\n\nElementSerializer.prototype.getNamespaces = function(local) {\n\n  var namespaces = this.namespaces,\n      parent = this.parent,\n      parentNamespaces;\n\n  if (!namespaces) {\n    parentNamespaces = parent && parent.getNamespaces();\n\n    if (local || !parentNamespaces) {\n      this.namespaces = namespaces = new Namespaces(parentNamespaces);\n    } else {\n      namespaces = parentNamespaces;\n    }\n  }\n\n  return namespaces;\n};\n\nElementSerializer.prototype.logNamespace = function(ns, wellknown, local) {\n  var namespaces = this.getNamespaces(local);\n\n  var nsUri = ns.uri,\n      nsPrefix = ns.prefix;\n\n  var existing = namespaces.byUri(nsUri);\n\n  if (!existing || local) {\n    namespaces.add(ns, wellknown);\n  }\n\n  namespaces.mapPrefix(nsPrefix, nsUri);\n\n  return ns;\n};\n\nElementSerializer.prototype.logNamespaceUsed = function(ns, local) {\n  var element = this.element,\n      model = element.$model,\n      namespaces = this.getNamespaces(local);\n\n  // ns may be\n  //\n  //   * prefix only\n  //   * prefix:uri\n  //   * localName only\n\n  var prefix = ns.prefix,\n      uri = ns.uri,\n      newPrefix, idx,\n      wellknownUri;\n\n  // handle anonymous namespaces (elementForm=unqualified), cf. #23\n  if (!prefix && !uri) {\n    return { localName: ns.localName };\n  }\n\n  wellknownUri = DEFAULT_NS_MAP[prefix] || model && (model.getPackage(prefix) || {}).uri;\n\n  uri = uri || wellknownUri || namespaces.uriByPrefix(prefix);\n\n  if (!uri) {\n    throw new Error('no namespace uri given for prefix <' + prefix + '>');\n  }\n\n  ns = namespaces.byUri(uri);\n\n  if (!ns) {\n    newPrefix = prefix;\n    idx = 1;\n\n    // find a prefix that is not mapped yet\n    while (namespaces.uriByPrefix(newPrefix)) {\n      newPrefix = prefix + '_' + idx++;\n    }\n\n    ns = this.logNamespace({ prefix: newPrefix, uri: uri }, wellknownUri === uri);\n  }\n\n  if (prefix) {\n    namespaces.mapPrefix(prefix, uri);\n  }\n\n  return ns;\n};\n\nElementSerializer.prototype.parseAttributes = function(properties) {\n  var self = this,\n      element = this.element;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(properties, function(p) {\n\n    var value = element.get(p.name);\n\n    if (p.isReference) {\n\n      if (!p.isMany) {\n        value = value.id;\n      }\n      else {\n        var values = [];\n        (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(value, function(v) {\n          values.push(v.id);\n        });\n\n        // IDREFS is a whitespace-separated list of references.\n        value = values.join(' ');\n      }\n\n    }\n\n    self.addAttribute(self.nsAttributeName(p), value);\n  });\n};\n\nElementSerializer.prototype.addTagName = function(nsTagName) {\n  var actualNs = this.logNamespaceUsed(nsTagName);\n\n  this.getNamespaces().logUsed(actualNs);\n\n  return nsName(nsTagName);\n};\n\nElementSerializer.prototype.addAttribute = function(name, value) {\n  var attrs = this.attrs;\n\n  if ((0,min_dash__WEBPACK_IMPORTED_MODULE_2__.isString)(value)) {\n    value = escapeAttr(value);\n  }\n\n  attrs.push({ name: name, value: value });\n};\n\nElementSerializer.prototype.serializeAttributes = function(writer) {\n  var attrs = this.attrs,\n      namespaces = this.namespaces;\n\n  if (namespaces) {\n    attrs = getNsAttrs(namespaces).concat(attrs);\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(attrs, function(a) {\n    writer\n      .append(' ')\n      .append(nsName(a.name)).append('=\"').append(a.value).append('\"');\n  });\n};\n\nElementSerializer.prototype.serializeTo = function(writer) {\n  var firstBody = this.body[0],\n      indent = firstBody && firstBody.constructor !== BodySerializer;\n\n  writer\n    .appendIndent()\n    .append('<' + this.tagName);\n\n  this.serializeAttributes(writer);\n\n  writer.append(firstBody ? '>' : ' />');\n\n  if (firstBody) {\n\n    if (indent) {\n      writer\n        .appendNewLine()\n        .indent();\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.forEach)(this.body, function(b) {\n      b.serializeTo(writer);\n    });\n\n    if (indent) {\n      writer\n        .unindent()\n        .appendIndent();\n    }\n\n    writer.append('</' + this.tagName + '>');\n  }\n\n  writer.appendNewLine();\n};\n\n/**\n * A serializer for types that handles serialization of data types\n */\nfunction TypeSerializer(parent, propertyDescriptor) {\n  ElementSerializer.call(this, parent, propertyDescriptor);\n}\n\ninherits(TypeSerializer, ElementSerializer);\n\nTypeSerializer.prototype.parseNsAttributes = function(element) {\n\n  // extracted attributes\n  var attributes = ElementSerializer.prototype.parseNsAttributes.call(this, element);\n\n  var descriptor = element.$descriptor;\n\n  // only serialize xsi:type if necessary\n  if (descriptor.name === this.propertyDescriptor.type) {\n    return attributes;\n  }\n\n  var typeNs = this.typeNs = this.nsTagName(descriptor);\n  this.getNamespaces().logUsed(this.typeNs);\n\n  // add xsi:type attribute to represent the elements\n  // actual type\n\n  var pkg = element.$model.getPackage(typeNs.uri),\n      typePrefix = (pkg.xml && pkg.xml.typePrefix) || '';\n\n  this.addAttribute(\n    this.nsAttributeName(XSI_TYPE),\n    (typeNs.prefix ? typeNs.prefix + ':' : '') + typePrefix + descriptor.ns.localName\n  );\n\n  return attributes;\n};\n\nTypeSerializer.prototype.isLocalNs = function(ns) {\n  return ns.uri === (this.typeNs || this.ns).uri;\n};\n\nfunction SavingWriter() {\n  this.value = '';\n\n  this.write = function(str) {\n    this.value += str;\n  };\n}\n\nfunction FormatingWriter(out, format) {\n\n  var indent = [''];\n\n  this.append = function(str) {\n    out.write(str);\n\n    return this;\n  };\n\n  this.appendNewLine = function() {\n    if (format) {\n      out.write('\\n');\n    }\n\n    return this;\n  };\n\n  this.appendIndent = function() {\n    if (format) {\n      out.write(indent.join('  '));\n    }\n\n    return this;\n  };\n\n  this.indent = function() {\n    indent.push('');\n    return this;\n  };\n\n  this.unindent = function() {\n    indent.pop();\n    return this;\n  };\n}\n\n/**\n * A writer for meta-model backed document trees\n *\n * @param {Object} options output options to pass into the writer\n */\nfunction Writer(options) {\n\n  options = (0,min_dash__WEBPACK_IMPORTED_MODULE_2__.assign)({ format: false, preamble: true }, options || {});\n\n  function toXML(tree, writer) {\n    var internalWriter = writer || new SavingWriter();\n    var formatingWriter = new FormatingWriter(internalWriter, options.format);\n\n    if (options.preamble) {\n      formatingWriter.append(XML_PREAMBLE);\n    }\n\n    new ElementSerializer().build(tree).serializeTo(formatingWriter);\n\n    if (!writer) {\n      return internalWriter.value;\n    }\n  }\n\n  return {\n    toXML: toXML\n  };\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/moddle-xml/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/moddle/dist/index.esm.js":
  /*!***********************************************!*\
    !*** ./node_modules/moddle/dist/index.esm.js ***!
    \***********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Moddle\": () => (/* binding */ Moddle),\n/* harmony export */   \"coerceType\": () => (/* binding */ coerceType),\n/* harmony export */   \"isBuiltInType\": () => (/* binding */ isBuiltIn),\n/* harmony export */   \"isSimpleType\": () => (/* binding */ isSimple),\n/* harmony export */   \"parseNameNS\": () => (/* binding */ parseName)\n/* harmony export */ });\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n\n\n/**\n * Moddle base element.\n */\nfunction Base() { }\n\nBase.prototype.get = function(name) {\n  return this.$model.properties.get(this, name);\n};\n\nBase.prototype.set = function(name, value) {\n  this.$model.properties.set(this, name, value);\n};\n\n/**\n * A model element factory.\n *\n * @param {Moddle} model\n * @param {Properties} properties\n */\nfunction Factory(model, properties) {\n  this.model = model;\n  this.properties = properties;\n}\n\n\nFactory.prototype.createType = function(descriptor) {\n\n  var model = this.model;\n\n  var props = this.properties,\n      prototype = Object.create(Base.prototype);\n\n  // initialize default values\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(descriptor.properties, function(p) {\n    if (!p.isMany && p.default !== undefined) {\n      prototype[p.name] = p.default;\n    }\n  });\n\n  props.defineModel(prototype, model);\n  props.defineDescriptor(prototype, descriptor);\n\n  var name = descriptor.ns.name;\n\n  /**\n   * The new type constructor\n   */\n  function ModdleElement(attrs) {\n    props.define(this, '$type', { value: name, enumerable: true });\n    props.define(this, '$attrs', { value: {} });\n    props.define(this, '$parent', { writable: true });\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(attrs, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(function(val, key) {\n      this.set(key, val);\n    }, this));\n  }\n\n  ModdleElement.prototype = prototype;\n\n  ModdleElement.hasType = prototype.$instanceOf = this.model.hasType;\n\n  // static links\n  props.defineModel(ModdleElement, model);\n  props.defineDescriptor(ModdleElement, descriptor);\n\n  return ModdleElement;\n};\n\n/**\n * Built-in moddle types\n */\nvar BUILTINS = {\n  String: true,\n  Boolean: true,\n  Integer: true,\n  Real: true,\n  Element: true\n};\n\n/**\n * Converters for built in types from string representations\n */\nvar TYPE_CONVERTERS = {\n  String: function(s) { return s; },\n  Boolean: function(s) { return s === 'true'; },\n  Integer: function(s) { return parseInt(s, 10); },\n  Real: function(s) { return parseFloat(s); }\n};\n\n/**\n * Convert a type to its real representation\n */\nfunction coerceType(type, value) {\n\n  var converter = TYPE_CONVERTERS[type];\n\n  if (converter) {\n    return converter(value);\n  } else {\n    return value;\n  }\n}\n\n/**\n * Return whether the given type is built-in\n */\nfunction isBuiltIn(type) {\n  return !!BUILTINS[type];\n}\n\n/**\n * Return whether the given type is simple\n */\nfunction isSimple(type) {\n  return !!TYPE_CONVERTERS[type];\n}\n\n/**\n * Parses a namespaced attribute name of the form (ns:)localName to an object,\n * given a default prefix to assume in case no explicit namespace is given.\n *\n * @param {String} name\n * @param {String} [defaultPrefix] the default prefix to take, if none is present.\n *\n * @return {Object} the parsed name\n */\nfunction parseName(name, defaultPrefix) {\n  var parts = name.split(/:/),\n      localName, prefix;\n\n  // no prefix (i.e. only local name)\n  if (parts.length === 1) {\n    localName = name;\n    prefix = defaultPrefix;\n  } else\n  // prefix + local name\n  if (parts.length === 2) {\n    localName = parts[1];\n    prefix = parts[0];\n  } else {\n    throw new Error('expected <prefix:localName> or <localName>, got ' + name);\n  }\n\n  name = (prefix ? prefix + ':' : '') + localName;\n\n  return {\n    name: name,\n    prefix: prefix,\n    localName: localName\n  };\n}\n\n/**\n * A utility to build element descriptors.\n */\nfunction DescriptorBuilder(nameNs) {\n  this.ns = nameNs;\n  this.name = nameNs.name;\n  this.allTypes = [];\n  this.allTypesByName = {};\n  this.properties = [];\n  this.propertiesByName = {};\n}\n\n\nDescriptorBuilder.prototype.build = function() {\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.pick)(this, [\n    'ns',\n    'name',\n    'allTypes',\n    'allTypesByName',\n    'properties',\n    'propertiesByName',\n    'bodyProperty',\n    'idProperty'\n  ]);\n};\n\n/**\n * Add property at given index.\n *\n * @param {Object} p\n * @param {Number} [idx]\n * @param {Boolean} [validate=true]\n */\nDescriptorBuilder.prototype.addProperty = function(p, idx, validate) {\n\n  if (typeof idx === 'boolean') {\n    validate = idx;\n    idx = undefined;\n  }\n\n  this.addNamedProperty(p, validate !== false);\n\n  var properties = this.properties;\n\n  if (idx !== undefined) {\n    properties.splice(idx, 0, p);\n  } else {\n    properties.push(p);\n  }\n};\n\n\nDescriptorBuilder.prototype.replaceProperty = function(oldProperty, newProperty, replace) {\n  var oldNameNs = oldProperty.ns;\n\n  var props = this.properties,\n      propertiesByName = this.propertiesByName,\n      rename = oldProperty.name !== newProperty.name;\n\n  if (oldProperty.isId) {\n    if (!newProperty.isId) {\n      throw new Error(\n        'property <' + newProperty.ns.name + '> must be id property ' +\n        'to refine <' + oldProperty.ns.name + '>');\n    }\n\n    this.setIdProperty(newProperty, false);\n  }\n\n  if (oldProperty.isBody) {\n\n    if (!newProperty.isBody) {\n      throw new Error(\n        'property <' + newProperty.ns.name + '> must be body property ' +\n        'to refine <' + oldProperty.ns.name + '>');\n    }\n\n    // TODO: Check compatibility\n    this.setBodyProperty(newProperty, false);\n  }\n\n  // validate existence and get location of old property\n  var idx = props.indexOf(oldProperty);\n  if (idx === -1) {\n    throw new Error('property <' + oldNameNs.name + '> not found in property list');\n  }\n\n  // remove old property\n  props.splice(idx, 1);\n\n  // replacing the named property is intentional\n  //\n  //  * validate only if this is a \"rename\" operation\n  //  * add at specific index unless we \"replace\"\n  //\n  this.addProperty(newProperty, replace ? undefined : idx, rename);\n\n  // make new property available under old name\n  propertiesByName[oldNameNs.name] = propertiesByName[oldNameNs.localName] = newProperty;\n};\n\n\nDescriptorBuilder.prototype.redefineProperty = function(p, targetPropertyName, replace) {\n\n  var nsPrefix = p.ns.prefix;\n  var parts = targetPropertyName.split('#');\n\n  var name = parseName(parts[0], nsPrefix);\n  var attrName = parseName(parts[1], name.prefix).name;\n\n  var redefinedProperty = this.propertiesByName[attrName];\n  if (!redefinedProperty) {\n    throw new Error('refined property <' + attrName + '> not found');\n  } else {\n    this.replaceProperty(redefinedProperty, p, replace);\n  }\n\n  delete p.redefines;\n};\n\nDescriptorBuilder.prototype.addNamedProperty = function(p, validate) {\n  var ns = p.ns,\n      propsByName = this.propertiesByName;\n\n  if (validate) {\n    this.assertNotDefined(p, ns.name);\n    this.assertNotDefined(p, ns.localName);\n  }\n\n  propsByName[ns.name] = propsByName[ns.localName] = p;\n};\n\nDescriptorBuilder.prototype.removeNamedProperty = function(p) {\n  var ns = p.ns,\n      propsByName = this.propertiesByName;\n\n  delete propsByName[ns.name];\n  delete propsByName[ns.localName];\n};\n\nDescriptorBuilder.prototype.setBodyProperty = function(p, validate) {\n\n  if (validate && this.bodyProperty) {\n    throw new Error(\n      'body property defined multiple times ' +\n      '(<' + this.bodyProperty.ns.name + '>, <' + p.ns.name + '>)');\n  }\n\n  this.bodyProperty = p;\n};\n\nDescriptorBuilder.prototype.setIdProperty = function(p, validate) {\n\n  if (validate && this.idProperty) {\n    throw new Error(\n      'id property defined multiple times ' +\n      '(<' + this.idProperty.ns.name + '>, <' + p.ns.name + '>)');\n  }\n\n  this.idProperty = p;\n};\n\nDescriptorBuilder.prototype.assertNotDefined = function(p, name) {\n  var propertyName = p.name,\n      definedProperty = this.propertiesByName[propertyName];\n\n  if (definedProperty) {\n    throw new Error(\n      'property <' + propertyName + '> already defined; ' +\n      'override of <' + definedProperty.definedBy.ns.name + '#' + definedProperty.ns.name + '> by ' +\n      '<' + p.definedBy.ns.name + '#' + p.ns.name + '> not allowed without redefines');\n  }\n};\n\nDescriptorBuilder.prototype.hasProperty = function(name) {\n  return this.propertiesByName[name];\n};\n\nDescriptorBuilder.prototype.addTrait = function(t, inherited) {\n\n  var typesByName = this.allTypesByName,\n      types = this.allTypes;\n\n  var typeName = t.name;\n\n  if (typeName in typesByName) {\n    return;\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(t.properties, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(function(p) {\n\n    // clone property to allow extensions\n    p = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, p, {\n      name: p.ns.localName,\n      inherited: inherited\n    });\n\n    Object.defineProperty(p, 'definedBy', {\n      value: t\n    });\n\n    var replaces = p.replaces,\n        redefines = p.redefines;\n\n    // add replace/redefine support\n    if (replaces || redefines) {\n      this.redefineProperty(p, replaces || redefines, replaces);\n    } else {\n      if (p.isBody) {\n        this.setBodyProperty(p);\n      }\n      if (p.isId) {\n        this.setIdProperty(p);\n      }\n      this.addProperty(p);\n    }\n  }, this));\n\n  types.push(t);\n  typesByName[typeName] = t;\n};\n\n/**\n * A registry of Moddle packages.\n *\n * @param {Array<Package>} packages\n * @param {Properties} properties\n */\nfunction Registry(packages, properties) {\n  this.packageMap = {};\n  this.typeMap = {};\n\n  this.packages = [];\n\n  this.properties = properties;\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(packages, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(this.registerPackage, this));\n}\n\n\nRegistry.prototype.getPackage = function(uriOrPrefix) {\n  return this.packageMap[uriOrPrefix];\n};\n\nRegistry.prototype.getPackages = function() {\n  return this.packages;\n};\n\n\nRegistry.prototype.registerPackage = function(pkg) {\n\n  // copy package\n  pkg = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, pkg);\n\n  var pkgMap = this.packageMap;\n\n  ensureAvailable(pkgMap, pkg, 'prefix');\n  ensureAvailable(pkgMap, pkg, 'uri');\n\n  // register types\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(pkg.types, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(function(descriptor) {\n    this.registerType(descriptor, pkg);\n  }, this));\n\n  pkgMap[pkg.uri] = pkgMap[pkg.prefix] = pkg;\n  this.packages.push(pkg);\n};\n\n\n/**\n * Register a type from a specific package with us\n */\nRegistry.prototype.registerType = function(type, pkg) {\n\n  type = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)({}, type, {\n    superClass: (type.superClass || []).slice(),\n    extends: (type.extends || []).slice(),\n    properties: (type.properties || []).slice(),\n    meta: (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)((type.meta || {}))\n  });\n\n  var ns = parseName(type.name, pkg.prefix),\n      name = ns.name,\n      propertiesByName = {};\n\n  // parse properties\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(type.properties, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(function(p) {\n\n    // namespace property names\n    var propertyNs = parseName(p.name, ns.prefix),\n        propertyName = propertyNs.name;\n\n    // namespace property types\n    if (!isBuiltIn(p.type)) {\n      p.type = parseName(p.type, propertyNs.prefix).name;\n    }\n\n    (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(p, {\n      ns: propertyNs,\n      name: propertyName\n    });\n\n    propertiesByName[propertyName] = p;\n  }, this));\n\n  // update ns + name\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.assign)(type, {\n    ns: ns,\n    name: name,\n    propertiesByName: propertiesByName\n  });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(type.extends, (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.bind)(function(extendsName) {\n    var extended = this.typeMap[extendsName];\n\n    extended.traits = extended.traits || [];\n    extended.traits.push(name);\n  }, this));\n\n  // link to package\n  this.definePackage(type, pkg);\n\n  // register\n  this.typeMap[name] = type;\n};\n\n\n/**\n * Traverse the type hierarchy from bottom to top,\n * calling iterator with (type, inherited) for all elements in\n * the inheritance chain.\n *\n * @param {Object} nsName\n * @param {Function} iterator\n * @param {Boolean} [trait=false]\n */\nRegistry.prototype.mapTypes = function(nsName, iterator, trait) {\n\n  var type = isBuiltIn(nsName.name) ? { name: nsName.name } : this.typeMap[nsName.name];\n\n  var self = this;\n\n  /**\n   * Traverse the selected trait.\n   *\n   * @param {String} cls\n   */\n  function traverseTrait(cls) {\n    return traverseSuper(cls, true);\n  }\n\n  /**\n   * Traverse the selected super type or trait\n   *\n   * @param {String} cls\n   * @param {Boolean} [trait=false]\n   */\n  function traverseSuper(cls, trait) {\n    var parentNs = parseName(cls, isBuiltIn(cls) ? '' : nsName.prefix);\n    self.mapTypes(parentNs, iterator, trait);\n  }\n\n  if (!type) {\n    throw new Error('unknown type <' + nsName.name + '>');\n  }\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(type.superClass, trait ? traverseTrait : traverseSuper);\n\n  // call iterator with (type, inherited=!trait)\n  iterator(type, !trait);\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(type.traits, traverseTrait);\n};\n\n\n/**\n * Returns the effective descriptor for a type.\n *\n * @param  {String} type the namespaced name (ns:localName) of the type\n *\n * @return {Descriptor} the resulting effective descriptor\n */\nRegistry.prototype.getEffectiveDescriptor = function(name) {\n\n  var nsName = parseName(name);\n\n  var builder = new DescriptorBuilder(nsName);\n\n  this.mapTypes(nsName, function(type, inherited) {\n    builder.addTrait(type, inherited);\n  });\n\n  var descriptor = builder.build();\n\n  // define package link\n  this.definePackage(descriptor, descriptor.allTypes[descriptor.allTypes.length - 1].$pkg);\n\n  return descriptor;\n};\n\n\nRegistry.prototype.definePackage = function(target, pkg) {\n  this.properties.define(target, '$pkg', { value: pkg });\n};\n\n\n\n///////// helpers ////////////////////////////\n\nfunction ensureAvailable(packageMap, pkg, identifierKey) {\n\n  var value = pkg[identifierKey];\n\n  if (value in packageMap) {\n    throw new Error('package with ' + identifierKey + ' <' + value + '> already defined');\n  }\n}\n\n/**\n * A utility that gets and sets properties of model elements.\n *\n * @param {Model} model\n */\nfunction Properties(model) {\n  this.model = model;\n}\n\n\n/**\n * Sets a named property on the target element.\n * If the value is undefined, the property gets deleted.\n *\n * @param {Object} target\n * @param {String} name\n * @param {Object} value\n */\nProperties.prototype.set = function(target, name, value) {\n\n  var property = this.model.getPropertyDescriptor(target, name);\n\n  var propertyName = property && property.name;\n\n  if (isUndefined(value)) {\n    // unset the property, if the specified value is undefined;\n    // delete from $attrs (for extensions) or the target itself\n    if (property) {\n      delete target[propertyName];\n    } else {\n      delete target.$attrs[name];\n    }\n  } else {\n    // set the property, defining well defined properties on the fly\n    // or simply updating them in target.$attrs (for extensions)\n    if (property) {\n      if (propertyName in target) {\n        target[propertyName] = value;\n      } else {\n        defineProperty(target, property, value);\n      }\n    } else {\n      target.$attrs[name] = value;\n    }\n  }\n};\n\n/**\n * Returns the named property of the given element\n *\n * @param  {Object} target\n * @param  {String} name\n *\n * @return {Object}\n */\nProperties.prototype.get = function(target, name) {\n\n  var property = this.model.getPropertyDescriptor(target, name);\n\n  if (!property) {\n    return target.$attrs[name];\n  }\n\n  var propertyName = property.name;\n\n  // check if access to collection property and lazily initialize it\n  if (!target[propertyName] && property.isMany) {\n    defineProperty(target, property, []);\n  }\n\n  return target[propertyName];\n};\n\n\n/**\n * Define a property on the target element\n *\n * @param  {Object} target\n * @param  {String} name\n * @param  {Object} options\n */\nProperties.prototype.define = function(target, name, options) {\n  Object.defineProperty(target, name, options);\n};\n\n\n/**\n * Define the descriptor for an element\n */\nProperties.prototype.defineDescriptor = function(target, descriptor) {\n  this.define(target, '$descriptor', { value: descriptor });\n};\n\n/**\n * Define the model for an element\n */\nProperties.prototype.defineModel = function(target, model) {\n  this.define(target, '$model', { value: model });\n};\n\n\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\nfunction defineProperty(target, property, value) {\n  Object.defineProperty(target, property.name, {\n    enumerable: !property.isReference,\n    writable: true,\n    value: value,\n    configurable: true\n  });\n}\n\n//// Moddle implementation /////////////////////////////////////////////////\n\n/**\n * @class Moddle\n *\n * A model that can be used to create elements of a specific type.\n *\n * @example\n *\n * var Moddle = require('moddle');\n *\n * var pkg = {\n *   name: 'mypackage',\n *   prefix: 'my',\n *   types: [\n *     { name: 'Root' }\n *   ]\n * };\n *\n * var moddle = new Moddle([pkg]);\n *\n * @param {Array<Package>} packages the packages to contain\n */\nfunction Moddle(packages) {\n\n  this.properties = new Properties(this);\n\n  this.factory = new Factory(this, this.properties);\n  this.registry = new Registry(packages, this.properties);\n\n  this.typeCache = {};\n}\n\n\n/**\n * Create an instance of the specified type.\n *\n * @method Moddle#create\n *\n * @example\n *\n * var foo = moddle.create('my:Foo');\n * var bar = moddle.create('my:Bar', { id: 'BAR_1' });\n *\n * @param  {String|Object} descriptor the type descriptor or name know to the model\n * @param  {Object} attrs   a number of attributes to initialize the model instance with\n * @return {Object}         model instance\n */\nModdle.prototype.create = function(descriptor, attrs) {\n  var Type = this.getType(descriptor);\n\n  if (!Type) {\n    throw new Error('unknown type <' + descriptor + '>');\n  }\n\n  return new Type(attrs);\n};\n\n\n/**\n * Returns the type representing a given descriptor\n *\n * @method Moddle#getType\n *\n * @example\n *\n * var Foo = moddle.getType('my:Foo');\n * var foo = new Foo({ 'id' : 'FOO_1' });\n *\n * @param  {String|Object} descriptor the type descriptor or name know to the model\n * @return {Object}         the type representing the descriptor\n */\nModdle.prototype.getType = function(descriptor) {\n\n  var cache = this.typeCache;\n\n  var name = (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isString)(descriptor) ? descriptor : descriptor.ns.name;\n\n  var type = cache[name];\n\n  if (!type) {\n    descriptor = this.registry.getEffectiveDescriptor(name);\n    type = cache[name] = this.factory.createType(descriptor);\n  }\n\n  return type;\n};\n\n\n/**\n * Creates an any-element type to be used within model instances.\n *\n * This can be used to create custom elements that lie outside the meta-model.\n * The created element contains all the meta-data required to serialize it\n * as part of meta-model elements.\n *\n * @method Moddle#createAny\n *\n * @example\n *\n * var foo = moddle.createAny('vendor:Foo', 'http://vendor', {\n *   value: 'bar'\n * });\n *\n * var container = moddle.create('my:Container', 'http://my', {\n *   any: [ foo ]\n * });\n *\n * // go ahead and serialize the stuff\n *\n *\n * @param  {String} name  the name of the element\n * @param  {String} nsUri the namespace uri of the element\n * @param  {Object} [properties] a map of properties to initialize the instance with\n * @return {Object} the any type instance\n */\nModdle.prototype.createAny = function(name, nsUri, properties) {\n\n  var nameNs = parseName(name);\n\n  var element = {\n    $type: name,\n    $instanceOf: function(type) {\n      return type === this.$type;\n    }\n  };\n\n  var descriptor = {\n    name: name,\n    isGeneric: true,\n    ns: {\n      prefix: nameNs.prefix,\n      localName: nameNs.localName,\n      uri: nsUri\n    }\n  };\n\n  this.properties.defineDescriptor(element, descriptor);\n  this.properties.defineModel(element, this);\n  this.properties.define(element, '$parent', { enumerable: false, writable: true });\n  this.properties.define(element, '$instanceOf', { enumerable: false, writable: true });\n\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_0__.forEach)(properties, function(a, key) {\n    if ((0,min_dash__WEBPACK_IMPORTED_MODULE_0__.isObject)(a) && a.value !== undefined) {\n      element[a.name] = a.value;\n    } else {\n      element[key] = a;\n    }\n  });\n\n  return element;\n};\n\n/**\n * Returns a registered package by uri or prefix\n *\n * @return {Object} the package\n */\nModdle.prototype.getPackage = function(uriOrPrefix) {\n  return this.registry.getPackage(uriOrPrefix);\n};\n\n/**\n * Returns a snapshot of all known packages\n *\n * @return {Object} the package\n */\nModdle.prototype.getPackages = function() {\n  return this.registry.getPackages();\n};\n\n/**\n * Returns the descriptor for an element\n */\nModdle.prototype.getElementDescriptor = function(element) {\n  return element.$descriptor;\n};\n\n/**\n * Returns true if the given descriptor or instance\n * represents the given type.\n *\n * May be applied to this, if element is omitted.\n */\nModdle.prototype.hasType = function(element, type) {\n  if (type === undefined) {\n    type = element;\n    element = this;\n  }\n\n  var descriptor = element.$model.getElementDescriptor(element);\n\n  return (type in descriptor.allTypesByName);\n};\n\n/**\n * Returns the descriptor of an elements named property\n */\nModdle.prototype.getPropertyDescriptor = function(element, property) {\n  return this.getElementDescriptor(element).propertiesByName[property];\n};\n\n/**\n * Returns a mapped type's descriptor\n */\nModdle.prototype.getTypeDescriptor = function(type) {\n  return this.registry.typeMap[type];\n};\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/moddle/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/object-refs/index.js":
  /*!*******************************************!*\
    !*** ./node_modules/object-refs/index.js ***!
    \*******************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  eval("module.exports = __webpack_require__(/*! ./lib/refs */ \"./node_modules/object-refs/lib/refs.js\");\n\nmodule.exports.Collection = __webpack_require__(/*! ./lib/collection */ \"./node_modules/object-refs/lib/collection.js\");\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/object-refs/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/object-refs/lib/collection.js":
  /*!****************************************************!*\
    !*** ./node_modules/object-refs/lib/collection.js ***!
    \****************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\n/**\n * An empty collection stub. Use {@link RefsCollection.extend} to extend a\n * collection with ref semantics.\n *\n * @class RefsCollection\n */\n\n/**\n * Extends a collection with {@link Refs} aware methods\n *\n * @memberof RefsCollection\n * @static\n *\n * @param  {Array<Object>} collection\n * @param  {Refs} refs instance\n * @param  {Object} property represented by the collection\n * @param  {Object} target object the collection is attached to\n *\n * @return {RefsCollection<Object>} the extended array\n */\nfunction extend(collection, refs, property, target) {\n\n  var inverseProperty = property.inverse;\n\n  /**\n   * Removes the given element from the array and returns it.\n   *\n   * @method RefsCollection#remove\n   *\n   * @param {Object} element the element to remove\n   */\n  Object.defineProperty(collection, 'remove', {\n    value: function(element) {\n      var idx = this.indexOf(element);\n      if (idx !== -1) {\n        this.splice(idx, 1);\n\n        // unset inverse\n        refs.unset(element, inverseProperty, target);\n      }\n\n      return element;\n    }\n  });\n\n  /**\n   * Returns true if the collection contains the given element\n   *\n   * @method RefsCollection#contains\n   *\n   * @param {Object} element the element to check for\n   */\n  Object.defineProperty(collection, 'contains', {\n    value: function(element) {\n      return this.indexOf(element) !== -1;\n    }\n  });\n\n  /**\n   * Adds an element to the array, unless it exists already (set semantics).\n   *\n   * @method RefsCollection#add\n   *\n   * @param {Object} element the element to add\n   * @param {Number} optional index to add element to\n   *                 (possibly moving other elements around)\n   */\n  Object.defineProperty(collection, 'add', {\n    value: function(element, idx) {\n\n      var currentIdx = this.indexOf(element);\n\n      if (typeof idx === 'undefined') {\n\n        if (currentIdx !== -1) {\n          // element already in collection (!)\n          return;\n        }\n\n        // add to end of array, as no idx is specified\n        idx = this.length;\n      }\n\n      // handle already in collection\n      if (currentIdx !== -1) {\n\n        // remove element from currentIdx\n        this.splice(currentIdx, 1);\n      }\n\n      // add element at idx\n      this.splice(idx, 0, element);\n\n      if (currentIdx === -1) {\n        // set inverse, unless element was\n        // in collection already\n        refs.set(element, inverseProperty, target);\n      }\n    }\n  });\n\n  // a simple marker, identifying this element\n  // as being a refs collection\n  Object.defineProperty(collection, '__refs_collection', {\n    value: true\n  });\n\n  return collection;\n}\n\n\nfunction isExtended(collection) {\n  return collection.__refs_collection === true;\n}\n\nmodule.exports.extend = extend;\n\nmodule.exports.isExtended = isExtended;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/object-refs/lib/collection.js?");
  
  /***/ }),
  
  /***/ "./node_modules/object-refs/lib/refs.js":
  /*!**********************************************!*\
    !*** ./node_modules/object-refs/lib/refs.js ***!
    \**********************************************/
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
  
  "use strict";
  eval("\n\nvar Collection = __webpack_require__(/*! ./collection */ \"./node_modules/object-refs/lib/collection.js\");\n\nfunction hasOwnProperty(e, property) {\n  return Object.prototype.hasOwnProperty.call(e, property.name || property);\n}\n\nfunction defineCollectionProperty(ref, property, target) {\n\n  var collection = Collection.extend(target[property.name] || [], ref, property, target);\n\n  Object.defineProperty(target, property.name, {\n    enumerable: property.enumerable,\n    value: collection\n  });\n\n  if (collection.length) {\n\n    collection.forEach(function(o) {\n      ref.set(o, property.inverse, target);\n    });\n  }\n}\n\n\nfunction defineProperty(ref, property, target) {\n\n  var inverseProperty = property.inverse;\n\n  var _value = target[property.name];\n\n  Object.defineProperty(target, property.name, {\n    configurable: property.configurable,\n    enumerable: property.enumerable,\n\n    get: function() {\n      return _value;\n    },\n\n    set: function(value) {\n\n      // return if we already performed all changes\n      if (value === _value) {\n        return;\n      }\n\n      var old = _value;\n\n      // temporary set null\n      _value = null;\n\n      if (old) {\n        ref.unset(old, inverseProperty, target);\n      }\n\n      // set new value\n      _value = value;\n\n      // set inverse value\n      ref.set(_value, inverseProperty, target);\n    }\n  });\n\n}\n\n/**\n * Creates a new references object defining two inversly related\n * attribute descriptors a and b.\n *\n * <p>\n *   When bound to an object using {@link Refs#bind} the references\n *   get activated and ensure that add and remove operations are applied\n *   reversely, too.\n * </p>\n *\n * <p>\n *   For attributes represented as collections {@link Refs} provides the\n *   {@link RefsCollection#add}, {@link RefsCollection#remove} and {@link RefsCollection#contains} extensions\n *   that must be used to properly hook into the inverse change mechanism.\n * </p>\n *\n * @class Refs\n *\n * @classdesc A bi-directional reference between two attributes.\n *\n * @param {Refs.AttributeDescriptor} a property descriptor\n * @param {Refs.AttributeDescriptor} b property descriptor\n *\n * @example\n *\n * var refs = Refs({ name: 'wheels', collection: true, enumerable: true }, { name: 'car' });\n *\n * var car = { name: 'toyota' };\n * var wheels = [{ pos: 'front-left' }, { pos: 'front-right' }];\n *\n * refs.bind(car, 'wheels');\n *\n * car.wheels // []\n * car.wheels.add(wheels[0]);\n * car.wheels.add(wheels[1]);\n *\n * car.wheels // [{ pos: 'front-left' }, { pos: 'front-right' }]\n *\n * wheels[0].car // { name: 'toyota' };\n * car.wheels.remove(wheels[0]);\n *\n * wheels[0].car // undefined\n */\nfunction Refs(a, b) {\n\n  if (!(this instanceof Refs)) {\n    return new Refs(a, b);\n  }\n\n  // link\n  a.inverse = b;\n  b.inverse = a;\n\n  this.props = {};\n  this.props[a.name] = a;\n  this.props[b.name] = b;\n}\n\n/**\n * Binds one side of a bi-directional reference to a\n * target object.\n *\n * @memberOf Refs\n *\n * @param  {Object} target\n * @param  {String} property\n */\nRefs.prototype.bind = function(target, property) {\n  if (typeof property === 'string') {\n    if (!this.props[property]) {\n      throw new Error('no property <' + property + '> in ref');\n    }\n    property = this.props[property];\n  }\n\n  if (property.collection) {\n    defineCollectionProperty(this, property, target);\n  } else {\n    defineProperty(this, property, target);\n  }\n};\n\nRefs.prototype.ensureRefsCollection = function(target, property) {\n\n  var collection = target[property.name];\n\n  if (!Collection.isExtended(collection)) {\n    defineCollectionProperty(this, property, target);\n  }\n\n  return collection;\n};\n\nRefs.prototype.ensureBound = function(target, property) {\n  if (!hasOwnProperty(target, property)) {\n    this.bind(target, property);\n  }\n};\n\nRefs.prototype.unset = function(target, property, value) {\n\n  if (target) {\n    this.ensureBound(target, property);\n\n    if (property.collection) {\n      this.ensureRefsCollection(target, property).remove(value);\n    } else {\n      target[property.name] = undefined;\n    }\n  }\n};\n\nRefs.prototype.set = function(target, property, value) {\n\n  if (target) {\n    this.ensureBound(target, property);\n\n    if (property.collection) {\n      this.ensureRefsCollection(target, property).add(value);\n    } else {\n      target[property.name] = value;\n    }\n  }\n};\n\nmodule.exports = Refs;\n\n\n/**\n * An attribute descriptor to be used specify an attribute in a {@link Refs} instance\n *\n * @typedef {Object} Refs.AttributeDescriptor\n * @property {String} name\n * @property {boolean} [collection=false]\n * @property {boolean} [enumerable=false]\n */\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/object-refs/lib/refs.js?");
  
  /***/ }),
  
  /***/ "./node_modules/path-intersection/intersect.js":
  /*!*****************************************************!*\
    !*** ./node_modules/path-intersection/intersect.js ***!
    \*****************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\n/**\n * This file contains source code adapted from Snap.svg (licensed Apache-2.0).\n *\n * @see https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js\n */\n\n/* eslint no-fallthrough: \"off\" */\n\nvar p2s = /,?([a-z]),?/gi,\n    toFloat = parseFloat,\n    math = Math,\n    PI = math.PI,\n    mmin = math.min,\n    mmax = math.max,\n    pow = math.pow,\n    abs = math.abs,\n    pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n    pathValues = /(-?\\d*\\.?\\d*(?:e[-+]?\\d+)?)[\\s]*,?[\\s]*/ig;\n\nvar isArray = Array.isArray || function(o) { return o instanceof Array; };\n\nfunction hasProperty(obj, property) {\n  return Object.prototype.hasOwnProperty.call(obj, property);\n}\n\nfunction clone(obj) {\n\n  if (typeof obj == 'function' || Object(obj) !== obj) {\n    return obj;\n  }\n\n  var res = new obj.constructor;\n\n  for (var key in obj) {\n    if (hasProperty(obj, key)) {\n      res[key] = clone(obj[key]);\n    }\n  }\n\n  return res;\n}\n\nfunction repush(array, item) {\n  for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n    return array.push(array.splice(i, 1)[0]);\n  }\n}\n\nfunction cacher(f) {\n\n  function newf() {\n\n    var arg = Array.prototype.slice.call(arguments, 0),\n        args = arg.join('\\u2400'),\n        cache = newf.cache = newf.cache || {},\n        count = newf.count = newf.count || [];\n\n    if (hasProperty(cache, args)) {\n      repush(count, args);\n      return cache[args];\n    }\n\n    count.length >= 1e3 && delete cache[count.shift()];\n    count.push(args);\n    cache[args] = f.apply(0, arg);\n\n    return cache[args];\n  }\n  return newf;\n}\n\nfunction parsePathString(pathString) {\n\n  if (!pathString) {\n    return null;\n  }\n\n  var pth = paths(pathString);\n\n  if (pth.arr) {\n    return clone(pth.arr);\n  }\n\n  var paramCounts = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 },\n      data = [];\n\n  if (isArray(pathString) && isArray(pathString[0])) { // rough assumption\n    data = clone(pathString);\n  }\n\n  if (!data.length) {\n\n    String(pathString).replace(pathCommand, function(a, b, c) {\n      var params = [],\n          name = b.toLowerCase();\n\n      c.replace(pathValues, function(a, b) {\n        b && params.push(+b);\n      });\n\n      if (name == 'm' && params.length > 2) {\n        data.push([b].concat(params.splice(0, 2)));\n        name = 'l';\n        b = b == 'm' ? 'l' : 'L';\n      }\n\n      while (params.length >= paramCounts[name]) {\n        data.push([b].concat(params.splice(0, paramCounts[name])));\n        if (!paramCounts[name]) {\n          break;\n        }\n      }\n    });\n  }\n\n  data.toString = paths.toString;\n  pth.arr = clone(data);\n\n  return data;\n}\n\nfunction paths(ps) {\n  var p = paths.ps = paths.ps || {};\n\n  if (p[ps]) {\n    p[ps].sleep = 100;\n  } else {\n    p[ps] = {\n      sleep: 100\n    };\n  }\n\n  setTimeout(function() {\n    for (var key in p) {\n      if (hasProperty(p, key) && key != ps) {\n        p[key].sleep--;\n        !p[key].sleep && delete p[key];\n      }\n    }\n  });\n\n  return p[ps];\n}\n\nfunction rectBBox(x, y, width, height) {\n\n  if (arguments.length === 1) {\n    y = x.y;\n    width = x.width;\n    height = x.height;\n    x = x.x;\n  }\n\n  return {\n    x: x,\n    y: y,\n    width: width,\n    height: height,\n    x2: x + width,\n    y2: y + height\n  };\n}\n\nfunction pathToString() {\n  return this.join(',').replace(p2s, '$1');\n}\n\nfunction pathClone(pathArray) {\n  var res = clone(pathArray);\n  res.toString = pathToString;\n  return res;\n}\n\nfunction findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n  var t1 = 1 - t,\n      t13 = pow(t1, 3),\n      t12 = pow(t1, 2),\n      t2 = t * t,\n      t3 = t2 * t,\n      x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n      y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y;\n\n  return {\n    x: fixError(x),\n    y: fixError(y)\n  };\n}\n\nfunction bezierBBox(points) {\n\n  var bbox = curveBBox.apply(null, points);\n\n  return rectBBox(\n    bbox.x0,\n    bbox.y0,\n    bbox.x1 - bbox.x0,\n    bbox.y1 - bbox.y0\n  );\n}\n\nfunction isPointInsideBBox(bbox, x, y) {\n  return x >= bbox.x &&\n    x <= bbox.x + bbox.width &&\n    y >= bbox.y &&\n    y <= bbox.y + bbox.height;\n}\n\nfunction isBBoxIntersect(bbox1, bbox2) {\n  bbox1 = rectBBox(bbox1);\n  bbox2 = rectBBox(bbox2);\n  return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n    || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n    || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n    || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n    || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n    || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n    || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n    || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n    || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n        || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n    && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n        || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n}\n\nfunction base3(t, p1, p2, p3, p4) {\n  var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n      t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n  return t * t2 - 3 * p1 + 3 * p2;\n}\n\nfunction bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n\n  if (z == null) {\n    z = 1;\n  }\n\n  z = z > 1 ? 1 : z < 0 ? 0 : z;\n\n  var z2 = z / 2,\n      n = 12,\n      Tvalues = [-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],\n      Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],\n      sum = 0;\n\n  for (var i = 0; i < n; i++) {\n    var ct = z2 * Tvalues[i] + z2,\n        xbase = base3(ct, x1, x2, x3, x4),\n        ybase = base3(ct, y1, y2, y3, y4),\n        comb = xbase * xbase + ybase * ybase;\n\n    sum += Cvalues[i] * math.sqrt(comb);\n  }\n\n  return z2 * sum;\n}\n\n\nfunction intersectLines(x1, y1, x2, y2, x3, y3, x4, y4) {\n\n  if (\n    mmax(x1, x2) < mmin(x3, x4) ||\n      mmin(x1, x2) > mmax(x3, x4) ||\n      mmax(y1, y2) < mmin(y3, y4) ||\n      mmin(y1, y2) > mmax(y3, y4)\n  ) {\n    return;\n  }\n\n  var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n      ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n      denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n  if (!denominator) {\n    return;\n  }\n\n  var px = fixError(nx / denominator),\n      py = fixError(ny / denominator),\n      px2 = +px.toFixed(2),\n      py2 = +py.toFixed(2);\n\n  if (\n    px2 < +mmin(x1, x2).toFixed(2) ||\n      px2 > +mmax(x1, x2).toFixed(2) ||\n      px2 < +mmin(x3, x4).toFixed(2) ||\n      px2 > +mmax(x3, x4).toFixed(2) ||\n      py2 < +mmin(y1, y2).toFixed(2) ||\n      py2 > +mmax(y1, y2).toFixed(2) ||\n      py2 < +mmin(y3, y4).toFixed(2) ||\n      py2 > +mmax(y3, y4).toFixed(2)\n  ) {\n    return;\n  }\n\n  return { x: px, y: py };\n}\n\nfunction fixError(number) {\n  return Math.round(number * 100000000000) / 100000000000;\n}\n\nfunction findBezierIntersections(bez1, bez2, justCount) {\n  var bbox1 = bezierBBox(bez1),\n      bbox2 = bezierBBox(bez2);\n\n  if (!isBBoxIntersect(bbox1, bbox2)) {\n    return justCount ? 0 : [];\n  }\n\n  // As an optimization, lines will have only 1 segment\n\n  var l1 = bezlen.apply(0, bez1),\n      l2 = bezlen.apply(0, bez2),\n      n1 = isLine(bez1) ? 1 : ~~(l1 / 5) || 1,\n      n2 = isLine(bez2) ? 1 : ~~(l2 / 5) || 1,\n      dots1 = [],\n      dots2 = [],\n      xy = {},\n      res = justCount ? 0 : [];\n\n  for (var i = 0; i < n1 + 1; i++) {\n    var p = findDotsAtSegment.apply(0, bez1.concat(i / n1));\n    dots1.push({ x: p.x, y: p.y, t: i / n1 });\n  }\n\n  for (i = 0; i < n2 + 1; i++) {\n    p = findDotsAtSegment.apply(0, bez2.concat(i / n2));\n    dots2.push({ x: p.x, y: p.y, t: i / n2 });\n  }\n\n  for (i = 0; i < n1; i++) {\n\n    for (var j = 0; j < n2; j++) {\n      var di = dots1[i],\n          di1 = dots1[i + 1],\n          dj = dots2[j],\n          dj1 = dots2[j + 1],\n          ci = abs(di1.x - di.x) < .01 ? 'y' : 'x',\n          cj = abs(dj1.x - dj.x) < .01 ? 'y' : 'x',\n          is = intersectLines(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y),\n          key;\n\n      if (is) {\n        key = is.x.toFixed(9) + '#' + is.y.toFixed(9);\n\n        if (xy[key]) {\n          continue;\n        }\n\n        xy[key] = true;\n\n        var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n            t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n\n        if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n\n          if (justCount) {\n            res++;\n          } else {\n            res.push({\n              x: is.x,\n              y: is.y,\n              t1: t1,\n              t2: t2\n            });\n          }\n        }\n      }\n    }\n  }\n\n  return res;\n}\n\n\n/**\n * Find or counts the intersections between two SVG paths.\n *\n * Returns a number in counting mode and a list of intersections otherwise.\n *\n * A single intersection entry contains the intersection coordinates (x, y)\n * as well as additional information regarding the intersecting segments\n * on each path (segment1, segment2) and the relative location of the\n * intersection on these segments (t1, t2).\n *\n * The path may be an SVG path string or a list of path components\n * such as `[ [ 'M', 0, 10 ], [ 'L', 20, 0 ] ]`.\n *\n * @example\n *\n * var intersections = findPathIntersections(\n *   'M0,0L100,100',\n *   [ [ 'M', 0, 100 ], [ 'L', 100, 0 ] ]\n * );\n *\n * // intersections = [\n * //   { x: 50, y: 50, segment1: 1, segment2: 1, t1: 0.5, t2: 0.5 }\n * // ]\n *\n * @param {String|Array<PathDef>} path1\n * @param {String|Array<PathDef>} path2\n * @param {Boolean} [justCount=false]\n *\n * @return {Array<Intersection>|Number}\n */\nfunction findPathIntersections(path1, path2, justCount) {\n  path1 = pathToCurve(path1);\n  path2 = pathToCurve(path2);\n\n  var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n      res = justCount ? 0 : [];\n\n  for (var i = 0, ii = path1.length; i < ii; i++) {\n    var pi = path1[i];\n\n    if (pi[0] == 'M') {\n      x1 = x1m = pi[1];\n      y1 = y1m = pi[2];\n    } else {\n\n      if (pi[0] == 'C') {\n        bez1 = [x1, y1].concat(pi.slice(1));\n        x1 = bez1[6];\n        y1 = bez1[7];\n      } else {\n        bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];\n        x1 = x1m;\n        y1 = y1m;\n      }\n\n      for (var j = 0, jj = path2.length; j < jj; j++) {\n        var pj = path2[j];\n\n        if (pj[0] == 'M') {\n          x2 = x2m = pj[1];\n          y2 = y2m = pj[2];\n        } else {\n\n          if (pj[0] == 'C') {\n            bez2 = [x2, y2].concat(pj.slice(1));\n            x2 = bez2[6];\n            y2 = bez2[7];\n          } else {\n            bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];\n            x2 = x2m;\n            y2 = y2m;\n          }\n\n          var intr = findBezierIntersections(bez1, bez2, justCount);\n\n          if (justCount) {\n            res += intr;\n          } else {\n\n            for (var k = 0, kk = intr.length; k < kk; k++) {\n              intr[k].segment1 = i;\n              intr[k].segment2 = j;\n              intr[k].bez1 = bez1;\n              intr[k].bez2 = bez2;\n            }\n\n            res = res.concat(intr);\n          }\n        }\n      }\n    }\n  }\n\n  return res;\n}\n\n\nfunction pathToAbsolute(pathArray) {\n  var pth = paths(pathArray);\n\n  if (pth.abs) {\n    return pathClone(pth.abs);\n  }\n\n  if (!isArray(pathArray) || !isArray(pathArray && pathArray[0])) { // rough assumption\n    pathArray = parsePathString(pathArray);\n  }\n\n  if (!pathArray || !pathArray.length) {\n    return [['M', 0, 0]];\n  }\n\n  var res = [],\n      x = 0,\n      y = 0,\n      mx = 0,\n      my = 0,\n      start = 0,\n      pa0;\n\n  if (pathArray[0][0] == 'M') {\n    x = +pathArray[0][1];\n    y = +pathArray[0][2];\n    mx = x;\n    my = y;\n    start++;\n    res[0] = ['M', x, y];\n  }\n\n  for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n    res.push(r = []);\n    pa = pathArray[i];\n    pa0 = pa[0];\n\n    if (pa0 != pa0.toUpperCase()) {\n      r[0] = pa0.toUpperCase();\n\n      switch (r[0]) {\n      case 'A':\n        r[1] = pa[1];\n        r[2] = pa[2];\n        r[3] = pa[3];\n        r[4] = pa[4];\n        r[5] = pa[5];\n        r[6] = +pa[6] + x;\n        r[7] = +pa[7] + y;\n        break;\n      case 'V':\n        r[1] = +pa[1] + y;\n        break;\n      case 'H':\n        r[1] = +pa[1] + x;\n        break;\n      case 'M':\n        mx = +pa[1] + x;\n        my = +pa[2] + y;\n      default:\n        for (var j = 1, jj = pa.length; j < jj; j++) {\n          r[j] = +pa[j] + ((j % 2) ? x : y);\n        }\n      }\n    } else {\n      for (var k = 0, kk = pa.length; k < kk; k++) {\n        r[k] = pa[k];\n      }\n    }\n    pa0 = pa0.toUpperCase();\n\n    switch (r[0]) {\n    case 'Z':\n      x = +mx;\n      y = +my;\n      break;\n    case 'H':\n      x = r[1];\n      break;\n    case 'V':\n      y = r[1];\n      break;\n    case 'M':\n      mx = r[r.length - 2];\n      my = r[r.length - 1];\n    default:\n      x = r[r.length - 2];\n      y = r[r.length - 1];\n    }\n  }\n\n  res.toString = pathToString;\n  pth.abs = pathClone(res);\n\n  return res;\n}\n\nfunction isLine(bez) {\n  return (\n    bez[0] === bez[2] &&\n    bez[1] === bez[3] &&\n    bez[4] === bez[6] &&\n    bez[5] === bez[7]\n  );\n}\n\nfunction lineToCurve(x1, y1, x2, y2) {\n  return [\n    x1, y1, x2,\n    y2, x2, y2\n  ];\n}\n\nfunction qubicToCurve(x1, y1, ax, ay, x2, y2) {\n  var _13 = 1 / 3,\n      _23 = 2 / 3;\n\n  return [\n    _13 * x1 + _23 * ax,\n    _13 * y1 + _23 * ay,\n    _13 * x2 + _23 * ax,\n    _13 * y2 + _23 * ay,\n    x2,\n    y2\n  ];\n}\n\nfunction arcToCurve(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n\n  // for more information of where this math came from visit:\n  // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n  var _120 = PI * 120 / 180,\n      rad = PI / 180 * (+angle || 0),\n      res = [],\n      xy,\n      rotate = cacher(function(x, y, rad) {\n        var X = x * math.cos(rad) - y * math.sin(rad),\n            Y = x * math.sin(rad) + y * math.cos(rad);\n\n        return { x: X, y: Y };\n      });\n\n  if (!recursive) {\n    xy = rotate(x1, y1, -rad);\n    x1 = xy.x;\n    y1 = xy.y;\n    xy = rotate(x2, y2, -rad);\n    x2 = xy.x;\n    y2 = xy.y;\n\n    var x = (x1 - x2) / 2,\n        y = (y1 - y2) / 2;\n\n    var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n\n    if (h > 1) {\n      h = math.sqrt(h);\n      rx = h * rx;\n      ry = h * ry;\n    }\n\n    var rx2 = rx * rx,\n        ry2 = ry * ry,\n        k = (large_arc_flag == sweep_flag ? -1 : 1) *\n            math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n        cx = k * rx * y / ry + (x1 + x2) / 2,\n        cy = k * -ry * x / rx + (y1 + y2) / 2,\n        f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n        f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n    f1 = x1 < cx ? PI - f1 : f1;\n    f2 = x2 < cx ? PI - f2 : f2;\n    f1 < 0 && (f1 = PI * 2 + f1);\n    f2 < 0 && (f2 = PI * 2 + f2);\n\n    if (sweep_flag && f1 > f2) {\n      f1 = f1 - PI * 2;\n    }\n    if (!sweep_flag && f2 > f1) {\n      f2 = f2 - PI * 2;\n    }\n  } else {\n    f1 = recursive[0];\n    f2 = recursive[1];\n    cx = recursive[2];\n    cy = recursive[3];\n  }\n\n  var df = f2 - f1;\n\n  if (abs(df) > _120) {\n    var f2old = f2,\n        x2old = x2,\n        y2old = y2;\n\n    f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n    x2 = cx + rx * math.cos(f2);\n    y2 = cy + ry * math.sin(f2);\n    res = arcToCurve(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n  }\n\n  df = f2 - f1;\n\n  var c1 = math.cos(f1),\n      s1 = math.sin(f1),\n      c2 = math.cos(f2),\n      s2 = math.sin(f2),\n      t = math.tan(df / 4),\n      hx = 4 / 3 * rx * t,\n      hy = 4 / 3 * ry * t,\n      m1 = [x1, y1],\n      m2 = [x1 + hx * s1, y1 - hy * c1],\n      m3 = [x2 + hx * s2, y2 - hy * c2],\n      m4 = [x2, y2];\n\n  m2[0] = 2 * m1[0] - m2[0];\n  m2[1] = 2 * m1[1] - m2[1];\n\n  if (recursive) {\n    return [m2, m3, m4].concat(res);\n  } else {\n    res = [m2, m3, m4].concat(res).join().split(',');\n    var newres = [];\n\n    for (var i = 0, ii = res.length; i < ii; i++) {\n      newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n    }\n\n    return newres;\n  }\n}\n\n// Returns bounding box of cubic bezier curve.\n// Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n// Original version: NISHIO Hirokazu\n// Modifications: https://github.com/timo22345\nfunction curveBBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n  var tvalues = [],\n      bounds = [[], []],\n      a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n  for (var i = 0; i < 2; ++i) {\n\n    if (i == 0) {\n      b = 6 * x0 - 12 * x1 + 6 * x2;\n      a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n      c = 3 * x1 - 3 * x0;\n    } else {\n      b = 6 * y0 - 12 * y1 + 6 * y2;\n      a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n      c = 3 * y1 - 3 * y0;\n    }\n\n    if (abs(a) < 1e-12) {\n\n      if (abs(b) < 1e-12) {\n        continue;\n      }\n\n      t = -c / b;\n\n      if (0 < t && t < 1) {\n        tvalues.push(t);\n      }\n\n      continue;\n    }\n\n    b2ac = b * b - 4 * c * a;\n    sqrtb2ac = math.sqrt(b2ac);\n\n    if (b2ac < 0) {\n      continue;\n    }\n\n    t1 = (-b + sqrtb2ac) / (2 * a);\n\n    if (0 < t1 && t1 < 1) {\n      tvalues.push(t1);\n    }\n\n    t2 = (-b - sqrtb2ac) / (2 * a);\n\n    if (0 < t2 && t2 < 1) {\n      tvalues.push(t2);\n    }\n  }\n\n  var j = tvalues.length,\n      jlen = j,\n      mt;\n\n  while (j--) {\n    t = tvalues[j];\n    mt = 1 - t;\n    bounds[0][j] = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3);\n    bounds[1][j] = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3);\n  }\n\n  bounds[0][jlen] = x0;\n  bounds[1][jlen] = y0;\n  bounds[0][jlen + 1] = x3;\n  bounds[1][jlen + 1] = y3;\n  bounds[0].length = bounds[1].length = jlen + 2;\n\n  return {\n    x0: mmin.apply(0, bounds[0]),\n    y0: mmin.apply(0, bounds[1]),\n    x1: mmax.apply(0, bounds[0]),\n    y1: mmax.apply(0, bounds[1])\n  };\n}\n\nfunction pathToCurve(path) {\n\n  var pth = paths(path);\n\n  // return cached curve, if existing\n  if (pth.curve) {\n    return pathClone(pth.curve);\n  }\n\n  var curvedPath = pathToAbsolute(path),\n      attrs = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null },\n      processPath = function(path, d, pathCommand) {\n        var nx, ny;\n\n        if (!path) {\n          return ['C', d.x, d.y, d.x, d.y, d.x, d.y];\n        }\n\n        !(path[0] in { T: 1, Q: 1 }) && (d.qx = d.qy = null);\n\n        switch (path[0]) {\n        case 'M':\n          d.X = path[1];\n          d.Y = path[2];\n          break;\n        case 'A':\n          path = ['C'].concat(arcToCurve.apply(0, [d.x, d.y].concat(path.slice(1))));\n          break;\n        case 'S':\n          if (pathCommand == 'C' || pathCommand == 'S') {\n\n            // In 'S' case we have to take into account, if the previous command is C/S.\n            nx = d.x * 2 - d.bx;\n\n            // And reflect the previous\n            ny = d.y * 2 - d.by;\n\n            // command's control point relative to the current point.\n          }\n          else {\n\n            // or some else or nothing\n            nx = d.x;\n            ny = d.y;\n          }\n          path = ['C', nx, ny].concat(path.slice(1));\n          break;\n        case 'T':\n          if (pathCommand == 'Q' || pathCommand == 'T') {\n\n            // In 'T' case we have to take into account, if the previous command is Q/T.\n            d.qx = d.x * 2 - d.qx;\n\n            // And make a reflection similar\n            d.qy = d.y * 2 - d.qy;\n\n            // to case 'S'.\n          }\n          else {\n\n            // or something else or nothing\n            d.qx = d.x;\n            d.qy = d.y;\n          }\n          path = ['C'].concat(qubicToCurve(d.x, d.y, d.qx, d.qy, path[1], path[2]));\n          break;\n        case 'Q':\n          d.qx = path[1];\n          d.qy = path[2];\n          path = ['C'].concat(qubicToCurve(d.x, d.y, path[1], path[2], path[3], path[4]));\n          break;\n        case 'L':\n          path = ['C'].concat(lineToCurve(d.x, d.y, path[1], path[2]));\n          break;\n        case 'H':\n          path = ['C'].concat(lineToCurve(d.x, d.y, path[1], d.y));\n          break;\n        case 'V':\n          path = ['C'].concat(lineToCurve(d.x, d.y, d.x, path[1]));\n          break;\n        case 'Z':\n          path = ['C'].concat(lineToCurve(d.x, d.y, d.X, d.Y));\n          break;\n        }\n\n        return path;\n      },\n\n      fixArc = function(pp, i) {\n\n        if (pp[i].length > 7) {\n          pp[i].shift();\n          var pi = pp[i];\n\n          while (pi.length) {\n            pathCommands[i] = 'A'; // if created multiple C:s, their original seg is saved\n            pp.splice(i++, 0, ['C'].concat(pi.splice(0, 6)));\n          }\n\n          pp.splice(i, 1);\n          ii = curvedPath.length;\n        }\n      },\n\n      pathCommands = [], // path commands of original path p\n      pfirst = '', // temporary holder for original path command\n      pathCommand = ''; // holder for previous path command of original path\n\n  for (var i = 0, ii = curvedPath.length; i < ii; i++) {\n    curvedPath[i] && (pfirst = curvedPath[i][0]); // save current path command\n\n    if (pfirst != 'C') // C is not saved yet, because it may be result of conversion\n    {\n      pathCommands[i] = pfirst; // Save current path command\n      i && (pathCommand = pathCommands[i - 1]); // Get previous path command pathCommand\n    }\n    curvedPath[i] = processPath(curvedPath[i], attrs, pathCommand); // Previous path command is inputted to processPath\n\n    if (pathCommands[i] != 'A' && pfirst == 'C') pathCommands[i] = 'C'; // A is the only command\n    // which may produce multiple C:s\n    // so we have to make sure that C is also C in original path\n\n    fixArc(curvedPath, i); // fixArc adds also the right amount of A:s to pathCommands\n\n    var seg = curvedPath[i],\n        seglen = seg.length;\n\n    attrs.x = seg[seglen - 2];\n    attrs.y = seg[seglen - 1];\n    attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n    attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n  }\n\n  // cache curve\n  pth.curve = pathClone(curvedPath);\n\n  return curvedPath;\n}\n\nmodule.exports = findPathIntersections;\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/path-intersection/intersect.js?");
  
  /***/ }),
  
  /***/ "./resources/newDiagram.bpmn":
  /*!***********************************!*\
    !*** ./resources/newDiagram.bpmn ***!
    \***********************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\r\\n<bpmn2:definitions xmlns:xsi=\\\"http://www.w3.org/2001/XMLSchema-instance\\\" xmlns:bpmn2=\\\"http://www.omg.org/spec/BPMN/20100524/MODEL\\\" xmlns:bpmndi=\\\"http://www.omg.org/spec/BPMN/20100524/DI\\\" xmlns:dc=\\\"http://www.omg.org/spec/DD/20100524/DC\\\" xmlns:di=\\\"http://www.omg.org/spec/DD/20100524/DI\\\" xsi:schemaLocation=\\\"http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd\\\" id=\\\"sample-diagram\\\" targetNamespace=\\\"http://bpmn.io/schema/bpmn\\\">\\r\\n  <bpmn2:process id=\\\"Process_1\\\" isExecutable=\\\"false\\\">\\r\\n    <bpmn2:startEvent id=\\\"StartEvent_1\\\"/>\\r\\n  </bpmn2:process>\\r\\n  <bpmndi:BPMNDiagram id=\\\"BPMNDiagram_1\\\">\\r\\n    <bpmndi:BPMNPlane id=\\\"BPMNPlane_1\\\" bpmnElement=\\\"Process_1\\\">\\r\\n      <bpmndi:BPMNShape id=\\\"_BPMNShape_StartEvent_2\\\" bpmnElement=\\\"StartEvent_1\\\">\\r\\n        <dc:Bounds height=\\\"36.0\\\" width=\\\"36.0\\\" x=\\\"412.0\\\" y=\\\"240.0\\\"/>\\r\\n      </bpmndi:BPMNShape>\\r\\n    </bpmndi:BPMNPlane>\\r\\n  </bpmndi:BPMNDiagram>\\r\\n</bpmn2:definitions>\");\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./resources/newDiagram.bpmn?");
  
  /***/ }),
  
  /***/ "./node_modules/saxen/dist/index.esm.js":
  /*!**********************************************!*\
    !*** ./node_modules/saxen/dist/index.esm.js ***!
    \**********************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"Parser\": () => (/* binding */ Parser),\n/* harmony export */   \"decode\": () => (/* binding */ decodeEntities)\n/* harmony export */ });\nvar fromCharCode = String.fromCharCode;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar ENTITY_PATTERN = /&#(\\d+);|&#x([0-9a-f]+);|&(\\w+);/ig;\n\nvar ENTITY_MAPPING = {\n  'amp': '&',\n  'apos': '\\'',\n  'gt': '>',\n  'lt': '<',\n  'quot': '\"'\n};\n\n// map UPPERCASE variants of supported special chars\nObject.keys(ENTITY_MAPPING).forEach(function(k) {\n  ENTITY_MAPPING[k.toUpperCase()] = ENTITY_MAPPING[k];\n});\n\n\nfunction replaceEntities(_, d, x, z) {\n\n  // reserved names, i.e. &nbsp;\n  if (z) {\n    if (hasOwnProperty.call(ENTITY_MAPPING, z)) {\n      return ENTITY_MAPPING[z];\n    } else {\n\n      // fall back to original value\n      return '&' + z + ';';\n    }\n  }\n\n  // decimal encoded char\n  if (d) {\n    return fromCharCode(d);\n  }\n\n  // hex encoded char\n  return fromCharCode(parseInt(x, 16));\n}\n\n\n/**\n * A basic entity decoder that can decode a minimal\n * sub-set of reserved names (&amp;) as well as\n * hex (&#xaaf;) and decimal (&#1231;) encoded characters.\n *\n * @param {string} str\n *\n * @return {string} decoded string\n */\nfunction decodeEntities(s) {\n  if (s.length > 3 && s.indexOf('&') !== -1) {\n    return s.replace(ENTITY_PATTERN, replaceEntities);\n  }\n\n  return s;\n}\n\nvar XSI_URI = 'http://www.w3.org/2001/XMLSchema-instance';\nvar XSI_PREFIX = 'xsi';\nvar XSI_TYPE = 'xsi:type';\n\nvar NON_WHITESPACE_OUTSIDE_ROOT_NODE = 'non-whitespace outside of root node';\n\nfunction error(msg) {\n  return new Error(msg);\n}\n\nfunction missingNamespaceForPrefix(prefix) {\n  return 'missing namespace for prefix <' + prefix + '>';\n}\n\nfunction getter(getFn) {\n  return {\n    'get': getFn,\n    'enumerable': true\n  };\n}\n\nfunction cloneNsMatrix(nsMatrix) {\n  var clone = {}, key;\n  for (key in nsMatrix) {\n    clone[key] = nsMatrix[key];\n  }\n  return clone;\n}\n\nfunction uriPrefix(prefix) {\n  return prefix + '$uri';\n}\n\nfunction buildNsMatrix(nsUriToPrefix) {\n  var nsMatrix = {},\n      uri,\n      prefix;\n\n  for (uri in nsUriToPrefix) {\n    prefix = nsUriToPrefix[uri];\n    nsMatrix[prefix] = prefix;\n    nsMatrix[uriPrefix(prefix)] = uri;\n  }\n\n  return nsMatrix;\n}\n\nfunction noopGetContext() {\n  return { 'line': 0, 'column': 0 };\n}\n\nfunction throwFunc(err) {\n  throw err;\n}\n\n/**\n * Creates a new parser with the given options.\n *\n * @constructor\n *\n * @param  {!Object<string, ?>=} options\n */\nfunction Parser(options) {\n\n  if (!this) {\n    return new Parser(options);\n  }\n\n  var proxy = options && options['proxy'];\n\n  var onText,\n      onOpenTag,\n      onCloseTag,\n      onCDATA,\n      onError = throwFunc,\n      onWarning,\n      onComment,\n      onQuestion,\n      onAttention;\n\n  var getContext = noopGetContext;\n\n  /**\n   * Do we need to parse the current elements attributes for namespaces?\n   *\n   * @type {boolean}\n   */\n  var maybeNS = false;\n\n  /**\n   * Do we process namespaces at all?\n   *\n   * @type {boolean}\n   */\n  var isNamespace = false;\n\n  /**\n   * The caught error returned on parse end\n   *\n   * @type {Error}\n   */\n  var returnError = null;\n\n  /**\n   * Should we stop parsing?\n   *\n   * @type {boolean}\n   */\n  var parseStop = false;\n\n  /**\n   * A map of { uri: prefix } used by the parser.\n   *\n   * This map will ensure we can normalize prefixes during processing;\n   * for each uri, only one prefix will be exposed to the handlers.\n   *\n   * @type {!Object<string, string>}}\n   */\n  var nsUriToPrefix;\n\n  /**\n   * Handle parse error.\n   *\n   * @param  {string|Error} err\n   */\n  function handleError(err) {\n    if (!(err instanceof Error)) {\n      err = error(err);\n    }\n\n    returnError = err;\n\n    onError(err, getContext);\n  }\n\n  /**\n   * Handle parse error.\n   *\n   * @param  {string|Error} err\n   */\n  function handleWarning(err) {\n\n    if (!onWarning) {\n      return;\n    }\n\n    if (!(err instanceof Error)) {\n      err = error(err);\n    }\n\n    onWarning(err, getContext);\n  }\n\n  /**\n   * Register parse listener.\n   *\n   * @param  {string}   name\n   * @param  {Function} cb\n   *\n   * @return {Parser}\n   */\n  this['on'] = function(name, cb) {\n\n    if (typeof cb !== 'function') {\n      throw error('required args <name, cb>');\n    }\n\n    switch (name) {\n    case 'openTag': onOpenTag = cb; break;\n    case 'text': onText = cb; break;\n    case 'closeTag': onCloseTag = cb; break;\n    case 'error': onError = cb; break;\n    case 'warn': onWarning = cb; break;\n    case 'cdata': onCDATA = cb; break;\n    case 'attention': onAttention = cb; break; // <!XXXXX zzzz=\"eeee\">\n    case 'question': onQuestion = cb; break; // <? ....  ?>\n    case 'comment': onComment = cb; break;\n    default:\n      throw error('unsupported event: ' + name);\n    }\n\n    return this;\n  };\n\n  /**\n   * Set the namespace to prefix mapping.\n   *\n   * @example\n   *\n   * parser.ns({\n   *   'http://foo': 'foo',\n   *   'http://bar': 'bar'\n   * });\n   *\n   * @param  {!Object<string, string>} nsMap\n   *\n   * @return {Parser}\n   */\n  this['ns'] = function(nsMap) {\n\n    if (typeof nsMap === 'undefined') {\n      nsMap = {};\n    }\n\n    if (typeof nsMap !== 'object') {\n      throw error('required args <nsMap={}>');\n    }\n\n    var _nsUriToPrefix = {}, k;\n\n    for (k in nsMap) {\n      _nsUriToPrefix[k] = nsMap[k];\n    }\n\n    // FORCE default mapping for schema instance\n    _nsUriToPrefix[XSI_URI] = XSI_PREFIX;\n\n    isNamespace = true;\n    nsUriToPrefix = _nsUriToPrefix;\n\n    return this;\n  };\n\n  /**\n   * Parse xml string.\n   *\n   * @param  {string} xml\n   *\n   * @return {Error} returnError, if not thrown\n   */\n  this['parse'] = function(xml) {\n    if (typeof xml !== 'string') {\n      throw error('required args <xml=string>');\n    }\n\n    returnError = null;\n\n    parse(xml);\n\n    getContext = noopGetContext;\n    parseStop = false;\n\n    return returnError;\n  };\n\n  /**\n   * Stop parsing.\n   */\n  this['stop'] = function() {\n    parseStop = true;\n  };\n\n  /**\n   * Parse string, invoking configured listeners on element.\n   *\n   * @param  {string} xml\n   */\n  function parse(xml) {\n    var nsMatrixStack = isNamespace ? [] : null,\n        nsMatrix = isNamespace ? buildNsMatrix(nsUriToPrefix) : null,\n        _nsMatrix,\n        nodeStack = [],\n        anonymousNsCount = 0,\n        tagStart = false,\n        tagEnd = false,\n        i = 0, j = 0,\n        x, y, q, w, v,\n        xmlns,\n        elementName,\n        _elementName,\n        elementProxy\n        ;\n\n    var attrsString = '',\n        attrsStart = 0,\n        cachedAttrs // false = parsed with errors, null = needs parsing\n        ;\n\n    /**\n     * Parse attributes on demand and returns the parsed attributes.\n     *\n     * Return semantics: (1) `false` on attribute parse error,\n     * (2) object hash on extracted attrs.\n     *\n     * @return {boolean|Object}\n     */\n    function getAttrs() {\n      if (cachedAttrs !== null) {\n        return cachedAttrs;\n      }\n\n      var nsUri,\n          nsUriPrefix,\n          nsName,\n          defaultAlias = isNamespace && nsMatrix['xmlns'],\n          attrList = isNamespace && maybeNS ? [] : null,\n          i = attrsStart,\n          s = attrsString,\n          l = s.length,\n          hasNewMatrix,\n          newalias,\n          value,\n          alias,\n          name,\n          attrs = {},\n          seenAttrs = {},\n          skipAttr,\n          w,\n          j;\n\n      parseAttr:\n      for (; i < l; i++) {\n        skipAttr = false;\n        w = s.charCodeAt(i);\n\n        if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE={ \\f\\n\\r\\t\\v}\n          continue;\n        }\n\n        // wait for non whitespace character\n        if (w < 65 || w > 122 || (w > 90 && w < 97)) {\n          if (w !== 95 && w !== 58) { // char 95\"_\" 58\":\"\n            handleWarning('illegal first char attribute name');\n            skipAttr = true;\n          }\n        }\n\n        // parse attribute name\n        for (j = i + 1; j < l; j++) {\n          w = s.charCodeAt(j);\n\n          if (\n            w > 96 && w < 123 ||\n            w > 64 && w < 91 ||\n            w > 47 && w < 59 ||\n            w === 46 || // '.'\n            w === 45 || // '-'\n            w === 95 // '_'\n          ) {\n            continue;\n          }\n\n          // unexpected whitespace\n          if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n            handleWarning('missing attribute value');\n            i = j;\n\n            continue parseAttr;\n          }\n\n          // expected \"=\"\n          if (w === 61) { // \"=\" == 61\n            break;\n          }\n\n          handleWarning('illegal attribute name char');\n          skipAttr = true;\n        }\n\n        name = s.substring(i, j);\n\n        if (name === 'xmlns:xmlns') {\n          handleWarning('illegal declaration of xmlns');\n          skipAttr = true;\n        }\n\n        w = s.charCodeAt(j + 1);\n\n        if (w === 34) { // '\"'\n          j = s.indexOf('\"', i = j + 2);\n\n          if (j === -1) {\n            j = s.indexOf('\\'', i);\n\n            if (j !== -1) {\n              handleWarning('attribute value quote missmatch');\n              skipAttr = true;\n            }\n          }\n\n        } else if (w === 39) { // \"'\"\n          j = s.indexOf('\\'', i = j + 2);\n\n          if (j === -1) {\n            j = s.indexOf('\"', i);\n\n            if (j !== -1) {\n              handleWarning('attribute value quote missmatch');\n              skipAttr = true;\n            }\n          }\n\n        } else {\n          handleWarning('missing attribute value quotes');\n          skipAttr = true;\n\n          // skip to next space\n          for (j = j + 1; j < l; j++) {\n            w = s.charCodeAt(j + 1);\n\n            if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n              break;\n            }\n          }\n\n        }\n\n        if (j === -1) {\n          handleWarning('missing closing quotes');\n\n          j = l;\n          skipAttr = true;\n        }\n\n        if (!skipAttr) {\n          value = s.substring(i, j);\n        }\n\n        i = j;\n\n        // ensure SPACE follows attribute\n        // skip illegal content otherwise\n        // example a=\"b\"c\n        for (; j + 1 < l; j++) {\n          w = s.charCodeAt(j + 1);\n\n          if (w === 32 || (w < 14 && w > 8)) { // WHITESPACE\n            break;\n          }\n\n          // FIRST ILLEGAL CHAR\n          if (i === j) {\n            handleWarning('illegal character after attribute end');\n            skipAttr = true;\n          }\n        }\n\n        // advance cursor to next attribute\n        i = j + 1;\n\n        if (skipAttr) {\n          continue parseAttr;\n        }\n\n        // check attribute re-declaration\n        if (name in seenAttrs) {\n          handleWarning('attribute <' + name + '> already defined');\n          continue;\n        }\n\n        seenAttrs[name] = true;\n\n        if (!isNamespace) {\n          attrs[name] = value;\n          continue;\n        }\n\n        // try to extract namespace information\n        if (maybeNS) {\n          newalias = (\n            name === 'xmlns'\n              ? 'xmlns'\n              : (name.charCodeAt(0) === 120 && name.substr(0, 6) === 'xmlns:')\n                ? name.substr(6)\n                : null\n          );\n\n          // handle xmlns(:alias) assignment\n          if (newalias !== null) {\n            nsUri = decodeEntities(value);\n            nsUriPrefix = uriPrefix(newalias);\n\n            alias = nsUriToPrefix[nsUri];\n\n            if (!alias) {\n\n              // no prefix defined or prefix collision\n              if (\n                (newalias === 'xmlns') ||\n                (nsUriPrefix in nsMatrix && nsMatrix[nsUriPrefix] !== nsUri)\n              ) {\n\n                // alocate free ns prefix\n                do {\n                  alias = 'ns' + (anonymousNsCount++);\n                } while (typeof nsMatrix[alias] !== 'undefined');\n              } else {\n                alias = newalias;\n              }\n\n              nsUriToPrefix[nsUri] = alias;\n            }\n\n            if (nsMatrix[newalias] !== alias) {\n              if (!hasNewMatrix) {\n                nsMatrix = cloneNsMatrix(nsMatrix);\n                hasNewMatrix = true;\n              }\n\n              nsMatrix[newalias] = alias;\n              if (newalias === 'xmlns') {\n                nsMatrix[uriPrefix(alias)] = nsUri;\n                defaultAlias = alias;\n              }\n\n              nsMatrix[nsUriPrefix] = nsUri;\n            }\n\n            // expose xmlns(:asd)=\"...\" in attributes\n            attrs[name] = value;\n            continue;\n          }\n\n          // collect attributes until all namespace\n          // declarations are processed\n          attrList.push(name, value);\n          continue;\n\n        } /** end if (maybeNs) */\n\n        // handle attributes on element without\n        // namespace declarations\n        w = name.indexOf(':');\n        if (w === -1) {\n          attrs[name] = value;\n          continue;\n        }\n\n        // normalize ns attribute name\n        if (!(nsName = nsMatrix[name.substring(0, w)])) {\n          handleWarning(missingNamespaceForPrefix(name.substring(0, w)));\n          continue;\n        }\n\n        name = defaultAlias === nsName\n          ? name.substr(w + 1)\n          : nsName + name.substr(w);\n\n        // end: normalize ns attribute name\n\n        // normalize xsi:type ns attribute value\n        if (name === XSI_TYPE) {\n          w = value.indexOf(':');\n\n          if (w !== -1) {\n            nsName = value.substring(0, w);\n\n            // handle default prefixes, i.e. xs:String gracefully\n            nsName = nsMatrix[nsName] || nsName;\n            value = nsName + value.substring(w);\n          } else {\n            value = defaultAlias + ':' + value;\n          }\n        }\n\n        // end: normalize xsi:type ns attribute value\n\n        attrs[name] = value;\n      }\n\n\n      // handle deferred, possibly namespaced attributes\n      if (maybeNS) {\n\n        // normalize captured attributes\n        for (i = 0, l = attrList.length; i < l; i++) {\n\n          name = attrList[i++];\n          value = attrList[i];\n\n          w = name.indexOf(':');\n\n          if (w !== -1) {\n\n            // normalize ns attribute name\n            if (!(nsName = nsMatrix[name.substring(0, w)])) {\n              handleWarning(missingNamespaceForPrefix(name.substring(0, w)));\n              continue;\n            }\n\n            name = defaultAlias === nsName\n              ? name.substr(w + 1)\n              : nsName + name.substr(w);\n\n            // end: normalize ns attribute name\n\n            // normalize xsi:type ns attribute value\n            if (name === XSI_TYPE) {\n              w = value.indexOf(':');\n\n              if (w !== -1) {\n                nsName = value.substring(0, w);\n\n                // handle default prefixes, i.e. xs:String gracefully\n                nsName = nsMatrix[nsName] || nsName;\n                value = nsName + value.substring(w);\n              } else {\n                value = defaultAlias + ':' + value;\n              }\n            }\n\n            // end: normalize xsi:type ns attribute value\n          }\n\n          attrs[name] = value;\n        }\n\n        // end: normalize captured attributes\n      }\n\n      return cachedAttrs = attrs;\n    }\n\n    /**\n     * Extract the parse context { line, column, part }\n     * from the current parser position.\n     *\n     * @return {Object} parse context\n     */\n    function getParseContext() {\n      var splitsRe = /(\\r\\n|\\r|\\n)/g;\n\n      var line = 0;\n      var column = 0;\n      var startOfLine = 0;\n      var endOfLine = j;\n      var match;\n      var data;\n\n      while (i >= startOfLine) {\n\n        match = splitsRe.exec(xml);\n\n        if (!match) {\n          break;\n        }\n\n        // end of line = (break idx + break chars)\n        endOfLine = match[0].length + match.index;\n\n        if (endOfLine > i) {\n          break;\n        }\n\n        // advance to next line\n        line += 1;\n\n        startOfLine = endOfLine;\n      }\n\n      // EOF errors\n      if (i == -1) {\n        column = endOfLine;\n        data = xml.substring(j);\n      } else\n\n      // start errors\n      if (j === 0) {\n        data = xml.substring(j, i);\n      }\n\n      // other errors\n      else {\n        column = i - startOfLine;\n        data = (j == -1 ? xml.substring(i) : xml.substring(i, j + 1));\n      }\n\n      return {\n        'data': data,\n        'line': line,\n        'column': column\n      };\n    }\n\n    getContext = getParseContext;\n\n\n    if (proxy) {\n      elementProxy = Object.create({}, {\n        'name': getter(function() {\n          return elementName;\n        }),\n        'originalName': getter(function() {\n          return _elementName;\n        }),\n        'attrs': getter(getAttrs),\n        'ns': getter(function() {\n          return nsMatrix;\n        })\n      });\n    }\n\n    // actual parse logic\n    while (j !== -1) {\n\n      if (xml.charCodeAt(j) === 60) { // \"<\"\n        i = j;\n      } else {\n        i = xml.indexOf('<', j);\n      }\n\n      // parse end\n      if (i === -1) {\n        if (nodeStack.length) {\n          return handleError('unexpected end of file');\n        }\n\n        if (j === 0) {\n          return handleError('missing start tag');\n        }\n\n        if (j < xml.length) {\n          if (xml.substring(j).trim()) {\n            handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\n          }\n        }\n\n        return;\n      }\n\n      // parse text\n      if (j !== i) {\n\n        if (nodeStack.length) {\n          if (onText) {\n            onText(xml.substring(j, i), decodeEntities, getContext);\n\n            if (parseStop) {\n              return;\n            }\n          }\n        } else {\n          if (xml.substring(j, i).trim()) {\n            handleWarning(NON_WHITESPACE_OUTSIDE_ROOT_NODE);\n\n            if (parseStop) {\n              return;\n            }\n          }\n        }\n      }\n\n      w = xml.charCodeAt(i+1);\n\n      // parse comments + CDATA\n      if (w === 33) { // \"!\"\n        q = xml.charCodeAt(i+2);\n\n        // CDATA section\n        if (q === 91 && xml.substr(i + 3, 6) === 'CDATA[') { // 91 == \"[\"\n          j = xml.indexOf(']]>', i);\n          if (j === -1) {\n            return handleError('unclosed cdata');\n          }\n\n          if (onCDATA) {\n            onCDATA(xml.substring(i + 9, j), getContext);\n            if (parseStop) {\n              return;\n            }\n          }\n\n          j += 3;\n          continue;\n        }\n\n        // comment\n        if (q === 45 && xml.charCodeAt(i + 3) === 45) { // 45 == \"-\"\n          j = xml.indexOf('-->', i);\n          if (j === -1) {\n            return handleError('unclosed comment');\n          }\n\n\n          if (onComment) {\n            onComment(xml.substring(i + 4, j), decodeEntities, getContext);\n            if (parseStop) {\n              return;\n            }\n          }\n\n          j += 3;\n          continue;\n        }\n      }\n\n      // parse question <? ... ?>\n      if (w === 63) { // \"?\"\n        j = xml.indexOf('?>', i);\n        if (j === -1) {\n          return handleError('unclosed question');\n        }\n\n        if (onQuestion) {\n          onQuestion(xml.substring(i, j + 2), getContext);\n          if (parseStop) {\n            return;\n          }\n        }\n\n        j += 2;\n        continue;\n      }\n\n      // find matching closing tag for attention or standard tags\n      // for that we must skip through attribute values\n      // (enclosed in single or double quotes)\n      for (x = i + 1; ; x++) {\n        v = xml.charCodeAt(x);\n        if (isNaN(v)) {\n          j = -1;\n          return handleError('unclosed tag');\n        }\n\n        // [10] AttValue ::= '\"' ([^<&\"] | Reference)* '\"' | \"'\" ([^<&'] | Reference)* \"'\"\n        // skips the quoted string\n        // (double quotes) does not appear in a literal enclosed by (double quotes)\n        // (single quote) does not appear in a literal enclosed by (single quote)\n        if (v === 34) { //  '\"'\n          q = xml.indexOf('\"', x + 1);\n          x = q !== -1 ? q : x;\n        } else if (v === 39) { // \"'\"\n          q = xml.indexOf(\"'\", x + 1);\n          x = q !== -1 ? q : x;\n        } else if (v === 62) { // '>'\n          j = x;\n          break;\n        }\n      }\n\n\n      // parse attention <! ...>\n      // previously comment and CDATA have already been parsed\n      if (w === 33) { // \"!\"\n\n        if (onAttention) {\n          onAttention(xml.substring(i, j + 1), decodeEntities, getContext);\n          if (parseStop) {\n            return;\n          }\n        }\n\n        j += 1;\n        continue;\n      }\n\n      // don't process attributes;\n      // there are none\n      cachedAttrs = {};\n\n      // if (xml.charCodeAt(i+1) === 47) { // </...\n      if (w === 47) { // </...\n        tagStart = false;\n        tagEnd = true;\n\n        if (!nodeStack.length) {\n          return handleError('missing open tag');\n        }\n\n        // verify open <-> close tag match\n        x = elementName = nodeStack.pop();\n        q = i + 2 + x.length;\n\n        if (xml.substring(i + 2, q) !== x) {\n          return handleError('closing tag mismatch');\n        }\n\n        // verify chars in close tag\n        for (; q < j; q++) {\n          w = xml.charCodeAt(q);\n\n          if (w === 32 || (w > 8 && w < 14)) { // \\f\\n\\r\\t\\v space\n            continue;\n          }\n\n          return handleError('close tag');\n        }\n\n      } else {\n        if (xml.charCodeAt(j - 1) === 47) { // .../>\n          x = elementName = xml.substring(i + 1, j - 1);\n\n          tagStart = true;\n          tagEnd = true;\n\n        } else {\n          x = elementName = xml.substring(i + 1, j);\n\n          tagStart = true;\n          tagEnd = false;\n        }\n\n        if (!(w > 96 && w < 123 || w > 64 && w < 91 || w === 95 || w === 58)) { // char 95\"_\" 58\":\"\n          return handleError('illegal first char nodeName');\n        }\n\n        for (q = 1, y = x.length; q < y; q++) {\n          w = x.charCodeAt(q);\n\n          if (w > 96 && w < 123 || w > 64 && w < 91 || w > 47 && w < 59 || w === 45 || w === 95 || w == 46) {\n            continue;\n          }\n\n          if (w === 32 || (w < 14 && w > 8)) { // \\f\\n\\r\\t\\v space\n            elementName = x.substring(0, q);\n\n            // maybe there are attributes\n            cachedAttrs = null;\n            break;\n          }\n\n          return handleError('invalid nodeName');\n        }\n\n        if (!tagEnd) {\n          nodeStack.push(elementName);\n        }\n      }\n\n      if (isNamespace) {\n\n        _nsMatrix = nsMatrix;\n\n        if (tagStart) {\n\n          // remember old namespace\n          // unless we're self-closing\n          if (!tagEnd) {\n            nsMatrixStack.push(_nsMatrix);\n          }\n\n          if (cachedAttrs === null) {\n\n            // quick check, whether there may be namespace\n            // declarations on the node; if that is the case\n            // we need to eagerly parse the node attributes\n            if ((maybeNS = x.indexOf('xmlns', q) !== -1)) {\n              attrsStart = q;\n              attrsString = x;\n\n              getAttrs();\n\n              maybeNS = false;\n            }\n          }\n        }\n\n        _elementName = elementName;\n\n        w = elementName.indexOf(':');\n        if (w !== -1) {\n          xmlns = nsMatrix[elementName.substring(0, w)];\n\n          // prefix given; namespace must exist\n          if (!xmlns) {\n            return handleError('missing namespace on <' + _elementName + '>');\n          }\n\n          elementName = elementName.substr(w + 1);\n        } else {\n          xmlns = nsMatrix['xmlns'];\n\n          // if no default namespace is defined,\n          // we'll import the element as anonymous.\n          //\n          // it is up to users to correct that to the document defined\n          // targetNamespace, or whatever their undersanding of the\n          // XML spec mandates.\n        }\n\n        // adjust namespace prefixs as configured\n        if (xmlns) {\n          elementName = xmlns + ':' + elementName;\n        }\n\n      }\n\n      if (tagStart) {\n        attrsStart = q;\n        attrsString = x;\n\n        if (onOpenTag) {\n          if (proxy) {\n            onOpenTag(elementProxy, decodeEntities, tagEnd, getContext);\n          } else {\n            onOpenTag(elementName, getAttrs, decodeEntities, tagEnd, getContext);\n          }\n\n          if (parseStop) {\n            return;\n          }\n        }\n\n      }\n\n      if (tagEnd) {\n\n        if (onCloseTag) {\n          onCloseTag(proxy ? elementProxy : elementName, decodeEntities, tagStart, getContext);\n\n          if (parseStop) {\n            return;\n          }\n        }\n\n        // restore old namespace\n        if (isNamespace) {\n          if (!tagStart) {\n            nsMatrix = nsMatrixStack.pop();\n          } else {\n            nsMatrix = _nsMatrix;\n          }\n        }\n      }\n\n      j += 1;\n    }\n  } /** end parse */\n\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/saxen/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./node_modules/scroll-tabs/index.js":
  /*!*******************************************!*\
    !*** ./node_modules/scroll-tabs/index.js ***!
    \*******************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ create)\n/* harmony export */ });\n/* harmony import */ var min_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! min-dom */ \"./node_modules/min-dom/dist/index.esm.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var mitt__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mitt */ \"./node_modules/mitt/dist/mitt.es.js\");\n\n\n\n\n\n\nvar DEFAULT_OPTIONS = {\n  scrollSymbolLeft: '‹',\n  scrollSymbolRight: '›'\n};\n\n\n/**\n * This component adds the functionality to scroll over a list of tabs.\n *\n * It adds scroll buttons on the left and right side of the tabs container\n * if not all tabs are visible. It also adds a mouse wheel listener on the\n * container.\n *\n * If either a button is clicked or the mouse wheel is used over the tabs,\n * a 'scroll' event is being fired. This event contains the node elements\n * of the new and old active tab, and the direction in which the tab has\n * changed relative to the old active tab.\n *\n * @example:\n * (1) provide a tabs-container:\n *\n * var $el = (\n *   <div>\n *     <!-- button added by scrollTabs -->\n *     <span class=\"scroll-tabs-button scroll-tabs-left\"></span>\n *     <ul class=\"my-tabs-container\">\n *       <li class=\"my-tab i-am-active\"></li>\n *       <li class=\"my-tab\"></li>\n *       <li class=\"my-tab ignore-me\"></li>\n *     </ul>\n *     <!-- button added by scrollTabs -->\n *     <span class=\"scroll-tabs-button scroll-tabs-right\"></span>\n *   </div>\n * );\n *\n *\n * (2) initialize scrollTabs:\n *\n *  var scroller = scrollTabs(tabBarNode, {\n *    selectors: {\n *      tabsContainer: '.my-tabs-container',\n *      tab: '.my-tab',\n *      ignore: '.ignore-me',\n *      active: '.i-am-active'\n *    }\n *  });\n *\n *\n * (3) listen to the scroll event:\n *\n * scroller.on('scroll', function(newActiveNode, oldActiveNode, direction) {\n *   // direction is any of (-1: left, 1: right)\n *   // activate the new active tab\n * });\n *\n *\n * (4) update the scroller if tabs change and or the tab container resizes:\n *\n * scroller.update();\n *\n *\n * @param  {DOMElement} el\n * @param  {Object} options\n * @param  {Object} options.selectors\n * @param  {String} options.selectors.tabsContainer the container all tabs are contained in\n * @param  {String} options.selectors.tab a single tab inside the tab container\n * @param  {String} options.selectors.ignore tabs that should be ignored during scroll left/right\n * @param  {String} options.selectors.active selector for the current active tab\n * @param  {String} [options.scrollSymbolLeft]\n * @param  {String} [options.scrollSymbolRight]\n */\nfunction ScrollTabs($el, options) {\n\n  // we are an event emitter\n  (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)(this, (0,mitt__WEBPACK_IMPORTED_MODULE_0__.default)());\n\n  this.options = options = (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.assign)({}, DEFAULT_OPTIONS, options);\n  this.container = $el;\n\n  this._createScrollButtons($el, options);\n\n  this._bindEvents($el);\n}\n\n\n/**\n * Create a clickable scroll button\n *\n * @param {Object} options\n * @param {String} options.className\n * @param {String} options.label\n * @param {Number} options.direction\n *\n * @return {DOMElement} The created scroll button node\n */\nScrollTabs.prototype._createButton = function(parentNode, options) {\n\n  var className = options.className,\n      direction = options.direction;\n\n\n  var button = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)('.' + className, parentNode);\n\n  if (!button) {\n    button = (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.domify)('<span class=\"scroll-tabs-button ' + className + '\">' +\n                                options.label +\n                              '</span>');\n\n    parentNode.insertBefore(button, parentNode.childNodes[0]);\n  }\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.attr)(button, 'data-direction', direction);\n\n  return button;\n};\n\n/**\n * Create both scroll buttons\n *\n * @param  {DOMElement} parentNode\n * @param  {Object} options\n * @param  {String} options.scrollSymbolLeft\n * @param  {String} options.scrollSymbolRight\n */\nScrollTabs.prototype._createScrollButtons = function(parentNode, options) {\n\n  // Create a button that scrolls to the tab left to the currently active tab\n  this._createButton(parentNode, {\n    className: 'scroll-tabs-left',\n    label: options.scrollSymbolLeft,\n    direction: -1\n  });\n\n  // Create a button that scrolls to the tab right to the currently active tab\n  this._createButton(parentNode, {\n    className: 'scroll-tabs-right',\n    label: options.scrollSymbolRight,\n    direction: 1\n  });\n};\n\n/**\n * Get the current active tab\n *\n * @return {DOMElement}\n */\nScrollTabs.prototype.getActiveTabNode = function() {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)(this.options.selectors.active, this.container);\n};\n\n\n/**\n * Get the container all tabs are contained in\n *\n * @return {DOMElement}\n */\nScrollTabs.prototype.getTabsContainerNode = function() {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.query)(this.options.selectors.tabsContainer, this.container);\n};\n\n\n/**\n * Get all tabs (visible and invisible ones)\n *\n * @return {Array<DOMElement>}\n */\nScrollTabs.prototype.getAllTabNodes = function() {\n  return (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.queryAll)(this.options.selectors.tab, this.container);\n};\n\n\n/**\n * Gets all tabs that don't have the ignore class set\n *\n * @return {Array<DOMElement>}\n */\nScrollTabs.prototype.getVisibleTabs = function() {\n  var allTabs = this.getAllTabNodes();\n\n  var ignore = this.options.selectors.ignore;\n\n  return (0,min_dash__WEBPACK_IMPORTED_MODULE_1__.filter)(allTabs, function(tabNode) {\n    return !(0,min_dom__WEBPACK_IMPORTED_MODULE_2__.matches)(tabNode, ignore);\n  });\n};\n\n\n/**\n * Get a tab relative to a reference tab.\n *\n * @param  {DOMElement} referenceTabNode\n * @param  {Number} n gets the nth tab next or previous to the reference tab\n *\n * @return {DOMElement}\n *\n * @example:\n * Visible tabs: [ A | B | C | D | E ]\n * Assume tab 'C' is the reference tab:\n * If direction === -1, it returns tab 'B',\n * if direction ===  2, it returns tab 'E'\n */\nScrollTabs.prototype.getAdjacentTab = function(referenceTabNode, n) {\n  var visibleTabs = this.getVisibleTabs();\n\n  var index = visibleTabs.indexOf(referenceTabNode);\n\n  return visibleTabs[index + n];\n};\n\nScrollTabs.prototype._bindEvents = function(node) {\n  this._bindWheelEvent(node);\n  this._bindTabClickEvents(node);\n  this._bindScrollButtonEvents(node);\n};\n\n/**\n *  Bind a click listener to a DOM node.\n *  Make sure a tab link is entirely visible after onClick.\n *\n * @param {DOMElement} node\n */\nScrollTabs.prototype._bindTabClickEvents = function(node) {\n  var selector = this.options.selectors.tab;\n\n  var self = this;\n\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.delegate.bind(node, selector, 'click', function onClick(event) {\n    self.scrollToTabNode(event.delegateTarget);\n  });\n};\n\n\n/**\n * Bind the wheel event listener to a DOM node\n *\n * @param {DOMElement} node\n */\nScrollTabs.prototype._bindWheelEvent = function(node) {\n  var self = this;\n\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.event.bind(node, 'wheel', function(e) {\n\n    // scroll direction (-1: left, 1: right)\n    var direction = Math.sign(e.deltaY);\n\n    var oldActiveTab = self.getActiveTabNode();\n\n    var newActiveTab = self.getAdjacentTab(oldActiveTab, direction);\n\n    if (newActiveTab) {\n      self.scrollToTabNode(newActiveTab);\n      self.emit('scroll', newActiveTab, oldActiveTab, direction);\n    }\n\n    e.preventDefault();\n  });\n};\n\n/**\n * Bind scroll button events to a DOM node\n *\n * @param  {DOMElement} node\n */\nScrollTabs.prototype._bindScrollButtonEvents = function(node) {\n\n  var self = this;\n\n  min_dom__WEBPACK_IMPORTED_MODULE_2__.delegate.bind(node, '.scroll-tabs-button', 'click', function(event) {\n\n    var target = event.delegateTarget;\n\n    // data-direction is either -1 or 1\n    var direction = parseInt((0,min_dom__WEBPACK_IMPORTED_MODULE_2__.attr)(target, 'data-direction'), 10);\n\n    var oldActiveTabNode = self.getActiveTabNode();\n\n    var newActiveTabNode = self.getAdjacentTab(oldActiveTabNode, direction);\n\n    if (newActiveTabNode) {\n      self.scrollToTabNode(newActiveTabNode);\n      self.emit('scroll', newActiveTabNode, oldActiveTabNode, direction);\n    }\n\n    event.preventDefault();\n  });\n};\n\n\n/**\n* Scroll to a tab if it is not entirely visible\n*\n* @param  {DOMElement} tabNode tab node to scroll to\n*/\nScrollTabs.prototype.scrollToTabNode = function(tabNode) {\n  if (!tabNode) {\n    return;\n  }\n\n  var tabsContainerNode = tabNode.parentNode;\n\n  var tabWidth = tabNode.offsetWidth,\n      tabOffsetLeft = tabNode.offsetLeft,\n      tabOffsetRight = tabOffsetLeft + tabWidth,\n      containerWidth = tabsContainerNode.offsetWidth,\n      containerScrollLeft = tabsContainerNode.scrollLeft;\n\n  if (containerScrollLeft > tabOffsetLeft) {\n    // scroll to the left, if the tab is overflowing on the left side\n    tabsContainerNode.scrollLeft = 0;\n  } else if (tabOffsetRight > containerWidth) {\n    // scroll to the right, if the tab is overflowing on the right side\n    tabsContainerNode.scrollLeft = tabOffsetRight - containerWidth;\n  }\n};\n\n\n/**\n * React on tab changes from outside (resize/show/hide/add/remove),\n * update scroll button visibility.\n */\nScrollTabs.prototype.update = function() {\n\n  var tabsContainerNode = this.getTabsContainerNode();\n\n  // check if tabs fit in container\n  var overflow = tabsContainerNode.scrollWidth > tabsContainerNode.offsetWidth;\n\n  // TODO(nikku): distinguish overflow left / overflow right?\n  var overflowClass = 'scroll-tabs-overflow';\n\n  (0,min_dom__WEBPACK_IMPORTED_MODULE_2__.classes)(this.container).toggle(overflowClass, overflow);\n\n  if (overflow) {\n    // make sure the current active tab is always visible\n    this.scrollToTabNode(this.getActiveTabNode());\n  }\n};\n\n\n// exports ////////////////\n\n/**\n * Create a scrollTabs instance on the given element.\n *\n * @param {DOMElement} $el\n * @param {Object} options\n *\n * @return {ScrollTabs}\n */\nfunction create($el, options) {\n\n  var scrollTabs = get($el);\n\n  if (!scrollTabs) {\n    scrollTabs = new ScrollTabs($el, options);\n\n    $el.__scrollTabs = scrollTabs;\n  }\n\n  return scrollTabs;\n}\n\n\n/**\n * Return the scrollTabs instance that has been previously\n * initialized on the element.\n *\n * @param {DOMElement} $el\n * @return {ScrollTabs}\n */\nfunction get($el) {\n  return $el.__scrollTabs;\n}\n\ncreate.get = get;\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/scroll-tabs/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/selection-update/index.js":
  /*!************************************************!*\
    !*** ./node_modules/selection-update/index.js ***!
    \************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("\n\n/**\n * Calculate the selection update for the given\n * current and new input values.\n *\n * @param {Object} currentSelection as {start, end}\n * @param {String} currentValue\n * @param {String} newValue\n *\n * @return {Object} newSelection as {start, end}\n */\nfunction calculateUpdate(currentSelection, currentValue, newValue) {\n\n  var currentCursor = currentSelection.start,\n      newCursor = currentCursor,\n      diff = newValue.length - currentValue.length,\n      idx;\n\n  var lengthDelta = newValue.length - currentValue.length;\n\n  var currentTail = currentValue.substring(currentCursor);\n\n  // check if we can remove common ending from the equation\n  // to be able to properly detect a selection change for\n  // the following scenarios:\n  //\n  //  * (AAATTT|TF) => (AAAT|TF)\n  //  * (AAAT|TF) =>  (AAATTT|TF)\n  //\n  if (newValue.lastIndexOf(currentTail) === newValue.length - currentTail.length) {\n    currentValue = currentValue.substring(0, currentValue.length - currentTail.length);\n    newValue = newValue.substring(0, newValue.length - currentTail.length);\n  }\n\n  // diff\n  var diff = createDiff(currentValue, newValue);\n\n  if (diff) {\n    if (diff.type === 'remove') {\n      newCursor = diff.newStart;\n    } else {\n      newCursor = diff.newEnd;\n    }\n  }\n\n  return range(newCursor);\n}\n\nmodule.exports = calculateUpdate;\n\n\nfunction createDiff(currentValue, newValue) {\n\n  var insert;\n\n  var l_str, l_char, l_idx = 0,\n      s_str, s_char, s_idx = 0;\n\n  if (newValue.length > currentValue.length) {\n    l_str = newValue;\n    s_str = currentValue;\n  } else {\n    l_str = currentValue;\n    s_str = newValue;\n  }\n\n  // assume there will be only one insert / remove and\n  // detect that _first_ edit operation only\n  while (l_idx < l_str.length) {\n\n    l_char = l_str.charAt(l_idx);\n    s_char = s_str.charAt(s_idx);\n\n    // chars no not equal\n    if (l_char !== s_char) {\n\n      if (!insert) {\n        insert = {\n          l_start: l_idx,\n          s_start: s_idx\n        };\n      }\n\n      l_idx++;\n    }\n\n    // chars equal (again?)\n    else {\n\n      if (insert && !insert.complete) {\n        insert.l_end = l_idx;\n        insert.s_end = s_idx;\n        insert.complete = true;\n      }\n\n      s_idx++;\n      l_idx++;\n    }\n  }\n\n  if (insert && !insert.complete) {\n    insert.complete = true;\n    insert.s_end = s_str.length;\n    insert.l_end = l_str.length;\n  }\n\n  // no diff\n  if (!insert) {\n    return;\n  }\n\n  if (newValue.length > currentValue.length) {\n    return {\n      newStart: insert.l_start,\n      newEnd: insert.l_end,\n      type: 'add'\n    };\n  } else {\n    return {\n      newStart: insert.s_start,\n      newEnd: insert.s_end,\n      type: newValue.length < currentValue.length ? 'remove' : 'replace'\n    };\n  }\n}\n\n/**\n * Utility method for creating a new selection range {start, end} object.\n *\n * @param {Number} start\n * @param {Number} [end]\n *\n * @return {Object} selection range as {start, end}\n */\nfunction range(start, end) {\n  return {\n    start: start,\n    end: end === undefined ? start : end\n  };\n}\n\nmodule.exports.range = range;\n\n\nfunction splitStr(str, position) {\n  return {\n    before: str.substring(0, position),\n    after: str.substring(position)\n  };\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/selection-update/index.js?");
  
  /***/ }),
  
  /***/ "./node_modules/semver/semver.js":
  /*!***************************************!*\
    !*** ./node_modules/semver/semver.js ***!
    \***************************************/
  /***/ ((module, exports) => {
  
  eval("exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n    process.env &&\n    process.env.NODE_DEBUG &&\n    /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n  debug = function () {\n    var args = Array.prototype.slice.call(arguments, 0)\n    args.unshift('SEMVER')\n    console.log.apply(console, args)\n  }\n} else {\n  debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n  /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n  t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n                   '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n                   '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n                        '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n                            '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n                                 '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n                  '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n                       '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n             '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n                  src[t.PRERELEASE] + '?' +\n                  src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n                  src[t.PRERELEASELOOSE] + '?' +\n                  src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n                   '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n                   '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n                   '(?:' + src[t.PRERELEASE] + ')?' +\n                   src[t.BUILD] + '?' +\n                   ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n                        '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n                        src[t.BUILD] + '?' +\n                        ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n              '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n              '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n              '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n              '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n                      '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n                   '\\\\s+-\\\\s+' +\n                   '(' + src[t.XRANGEPLAIN] + ')' +\n                   '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n                        '\\\\s+-\\\\s+' +\n                        '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n                        '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n  debug(i, src[i])\n  if (!re[i]) {\n    re[i] = new RegExp(src[i])\n  }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  if (version.length > MAX_LENGTH) {\n    return null\n  }\n\n  var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n  if (!r.test(version)) {\n    return null\n  }\n\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    return null\n  }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n  var v = parse(version, options)\n  return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n  var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n  if (version instanceof SemVer) {\n    if (version.loose === options.loose) {\n      return version\n    } else {\n      version = version.version\n    }\n  } else if (typeof version !== 'string') {\n    throw new TypeError('Invalid Version: ' + version)\n  }\n\n  if (version.length > MAX_LENGTH) {\n    throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n  }\n\n  if (!(this instanceof SemVer)) {\n    return new SemVer(version, options)\n  }\n\n  debug('SemVer', version, options)\n  this.options = options\n  this.loose = !!options.loose\n\n  var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n  if (!m) {\n    throw new TypeError('Invalid Version: ' + version)\n  }\n\n  this.raw = version\n\n  // these are actually numbers\n  this.major = +m[1]\n  this.minor = +m[2]\n  this.patch = +m[3]\n\n  if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n    throw new TypeError('Invalid major version')\n  }\n\n  if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n    throw new TypeError('Invalid minor version')\n  }\n\n  if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n    throw new TypeError('Invalid patch version')\n  }\n\n  // numberify any prerelease numeric ids\n  if (!m[4]) {\n    this.prerelease = []\n  } else {\n    this.prerelease = m[4].split('.').map(function (id) {\n      if (/^[0-9]+$/.test(id)) {\n        var num = +id\n        if (num >= 0 && num < MAX_SAFE_INTEGER) {\n          return num\n        }\n      }\n      return id\n    })\n  }\n\n  this.build = m[5] ? m[5].split('.') : []\n  this.format()\n}\n\nSemVer.prototype.format = function () {\n  this.version = this.major + '.' + this.minor + '.' + this.patch\n  if (this.prerelease.length) {\n    this.version += '-' + this.prerelease.join('.')\n  }\n  return this.version\n}\n\nSemVer.prototype.toString = function () {\n  return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n  debug('SemVer.compare', this.version, this.options, other)\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  return compareIdentifiers(this.major, other.major) ||\n         compareIdentifiers(this.minor, other.minor) ||\n         compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  // NOT having a prerelease is > having one\n  if (this.prerelease.length && !other.prerelease.length) {\n    return -1\n  } else if (!this.prerelease.length && other.prerelease.length) {\n    return 1\n  } else if (!this.prerelease.length && !other.prerelease.length) {\n    return 0\n  }\n\n  var i = 0\n  do {\n    var a = this.prerelease[i]\n    var b = other.prerelease[i]\n    debug('prerelease compare', i, a, b)\n    if (a === undefined && b === undefined) {\n      return 0\n    } else if (b === undefined) {\n      return 1\n    } else if (a === undefined) {\n      return -1\n    } else if (a === b) {\n      continue\n    } else {\n      return compareIdentifiers(a, b)\n    }\n  } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n  if (!(other instanceof SemVer)) {\n    other = new SemVer(other, this.options)\n  }\n\n  var i = 0\n  do {\n    var a = this.build[i]\n    var b = other.build[i]\n    debug('prerelease compare', i, a, b)\n    if (a === undefined && b === undefined) {\n      return 0\n    } else if (b === undefined) {\n      return 1\n    } else if (a === undefined) {\n      return -1\n    } else if (a === b) {\n      continue\n    } else {\n      return compareIdentifiers(a, b)\n    }\n  } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n  switch (release) {\n    case 'premajor':\n      this.prerelease.length = 0\n      this.patch = 0\n      this.minor = 0\n      this.major++\n      this.inc('pre', identifier)\n      break\n    case 'preminor':\n      this.prerelease.length = 0\n      this.patch = 0\n      this.minor++\n      this.inc('pre', identifier)\n      break\n    case 'prepatch':\n      // If this is already a prerelease, it will bump to the next version\n      // drop any prereleases that might already exist, since they are not\n      // relevant at this point.\n      this.prerelease.length = 0\n      this.inc('patch', identifier)\n      this.inc('pre', identifier)\n      break\n    // If the input is a non-prerelease version, this acts the same as\n    // prepatch.\n    case 'prerelease':\n      if (this.prerelease.length === 0) {\n        this.inc('patch', identifier)\n      }\n      this.inc('pre', identifier)\n      break\n\n    case 'major':\n      // If this is a pre-major version, bump up to the same major version.\n      // Otherwise increment major.\n      // 1.0.0-5 bumps to 1.0.0\n      // 1.1.0 bumps to 2.0.0\n      if (this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0) {\n        this.major++\n      }\n      this.minor = 0\n      this.patch = 0\n      this.prerelease = []\n      break\n    case 'minor':\n      // If this is a pre-minor version, bump up to the same minor version.\n      // Otherwise increment minor.\n      // 1.2.0-5 bumps to 1.2.0\n      // 1.2.1 bumps to 1.3.0\n      if (this.patch !== 0 || this.prerelease.length === 0) {\n        this.minor++\n      }\n      this.patch = 0\n      this.prerelease = []\n      break\n    case 'patch':\n      // If this is not a pre-release version, it will increment the patch.\n      // If it is a pre-release it will bump up to the same patch version.\n      // 1.2.0-5 patches to 1.2.0\n      // 1.2.0 patches to 1.2.1\n      if (this.prerelease.length === 0) {\n        this.patch++\n      }\n      this.prerelease = []\n      break\n    // This probably shouldn't be used publicly.\n    // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n    case 'pre':\n      if (this.prerelease.length === 0) {\n        this.prerelease = [0]\n      } else {\n        var i = this.prerelease.length\n        while (--i >= 0) {\n          if (typeof this.prerelease[i] === 'number') {\n            this.prerelease[i]++\n            i = -2\n          }\n        }\n        if (i === -1) {\n          // didn't increment anything\n          this.prerelease.push(0)\n        }\n      }\n      if (identifier) {\n        // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n        // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n        if (this.prerelease[0] === identifier) {\n          if (isNaN(this.prerelease[1])) {\n            this.prerelease = [identifier, 0]\n          }\n        } else {\n          this.prerelease = [identifier, 0]\n        }\n      }\n      break\n\n    default:\n      throw new Error('invalid increment argument: ' + release)\n  }\n  this.format()\n  this.raw = this.version\n  return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n  if (typeof (loose) === 'string') {\n    identifier = loose\n    loose = undefined\n  }\n\n  try {\n    return new SemVer(version, loose).inc(release, identifier).version\n  } catch (er) {\n    return null\n  }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n  if (eq(version1, version2)) {\n    return null\n  } else {\n    var v1 = parse(version1)\n    var v2 = parse(version2)\n    var prefix = ''\n    if (v1.prerelease.length || v2.prerelease.length) {\n      prefix = 'pre'\n      var defaultResult = 'prerelease'\n    }\n    for (var key in v1) {\n      if (key === 'major' || key === 'minor' || key === 'patch') {\n        if (v1[key] !== v2[key]) {\n          return prefix + key\n        }\n      }\n    }\n    return defaultResult // may be undefined\n  }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n  var anum = numeric.test(a)\n  var bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n  return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n  return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n  return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n  return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n  return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n  return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n  var versionA = new SemVer(a, loose)\n  var versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n  return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n  return list.sort(function (a, b) {\n    return exports.compareBuild(a, b, loose)\n  })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n  return list.sort(function (a, b) {\n    return exports.compareBuild(b, a, loose)\n  })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n  return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n  return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n  return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n  return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n  return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n  return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object')\n        a = a.version\n      if (typeof b === 'object')\n        b = b.version\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError('Invalid operator: ' + op)\n  }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (comp instanceof Comparator) {\n    if (comp.loose === !!options.loose) {\n      return comp\n    } else {\n      comp = comp.value\n    }\n  }\n\n  if (!(this instanceof Comparator)) {\n    return new Comparator(comp, options)\n  }\n\n  debug('comparator', comp, options)\n  this.options = options\n  this.loose = !!options.loose\n  this.parse(comp)\n\n  if (this.semver === ANY) {\n    this.value = ''\n  } else {\n    this.value = this.operator + this.semver.version\n  }\n\n  debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n  var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n  var m = comp.match(r)\n\n  if (!m) {\n    throw new TypeError('Invalid comparator: ' + comp)\n  }\n\n  this.operator = m[1] !== undefined ? m[1] : ''\n  if (this.operator === '=') {\n    this.operator = ''\n  }\n\n  // if it literally is just '>' or '' then allow anything.\n  if (!m[2]) {\n    this.semver = ANY\n  } else {\n    this.semver = new SemVer(m[2], this.options.loose)\n  }\n}\n\nComparator.prototype.toString = function () {\n  return this.value\n}\n\nComparator.prototype.test = function (version) {\n  debug('Comparator.test', version, this.options.loose)\n\n  if (this.semver === ANY || version === ANY) {\n    return true\n  }\n\n  if (typeof version === 'string') {\n    try {\n      version = new SemVer(version, this.options)\n    } catch (er) {\n      return false\n    }\n  }\n\n  return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n  if (!(comp instanceof Comparator)) {\n    throw new TypeError('a Comparator is required')\n  }\n\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  var rangeTmp\n\n  if (this.operator === '') {\n    if (this.value === '') {\n      return true\n    }\n    rangeTmp = new Range(comp.value, options)\n    return satisfies(this.value, rangeTmp, options)\n  } else if (comp.operator === '') {\n    if (comp.value === '') {\n      return true\n    }\n    rangeTmp = new Range(this.value, options)\n    return satisfies(comp.semver, rangeTmp, options)\n  }\n\n  var sameDirectionIncreasing =\n    (this.operator === '>=' || this.operator === '>') &&\n    (comp.operator === '>=' || comp.operator === '>')\n  var sameDirectionDecreasing =\n    (this.operator === '<=' || this.operator === '<') &&\n    (comp.operator === '<=' || comp.operator === '<')\n  var sameSemVer = this.semver.version === comp.semver.version\n  var differentDirectionsInclusive =\n    (this.operator === '>=' || this.operator === '<=') &&\n    (comp.operator === '>=' || comp.operator === '<=')\n  var oppositeDirectionsLessThan =\n    cmp(this.semver, '<', comp.semver, options) &&\n    ((this.operator === '>=' || this.operator === '>') &&\n    (comp.operator === '<=' || comp.operator === '<'))\n  var oppositeDirectionsGreaterThan =\n    cmp(this.semver, '>', comp.semver, options) &&\n    ((this.operator === '<=' || this.operator === '<') &&\n    (comp.operator === '>=' || comp.operator === '>'))\n\n  return sameDirectionIncreasing || sameDirectionDecreasing ||\n    (sameSemVer && differentDirectionsInclusive) ||\n    oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n  if (!options || typeof options !== 'object') {\n    options = {\n      loose: !!options,\n      includePrerelease: false\n    }\n  }\n\n  if (range instanceof Range) {\n    if (range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease) {\n      return range\n    } else {\n      return new Range(range.raw, options)\n    }\n  }\n\n  if (range instanceof Comparator) {\n    return new Range(range.value, options)\n  }\n\n  if (!(this instanceof Range)) {\n    return new Range(range, options)\n  }\n\n  this.options = options\n  this.loose = !!options.loose\n  this.includePrerelease = !!options.includePrerelease\n\n  // First, split based on boolean or ||\n  this.raw = range\n  this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n    return this.parseRange(range.trim())\n  }, this).filter(function (c) {\n    // throw out any that are not relevant for whatever reason\n    return c.length\n  })\n\n  if (!this.set.length) {\n    throw new TypeError('Invalid SemVer Range: ' + range)\n  }\n\n  this.format()\n}\n\nRange.prototype.format = function () {\n  this.range = this.set.map(function (comps) {\n    return comps.join(' ').trim()\n  }).join('||').trim()\n  return this.range\n}\n\nRange.prototype.toString = function () {\n  return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n  var loose = this.options.loose\n  range = range.trim()\n  // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n  var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n  range = range.replace(hr, hyphenReplace)\n  debug('hyphen replace', range)\n  // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n  range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n  debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n  // `~ 1.2.3` => `~1.2.3`\n  range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n  // `^ 1.2.3` => `^1.2.3`\n  range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n  // normalize spaces\n  range = range.split(/\\s+/).join(' ')\n\n  // At this point, the range is completely trimmed and\n  // ready to be split into comparators.\n\n  var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n  var set = range.split(' ').map(function (comp) {\n    return parseComparator(comp, this.options)\n  }, this).join(' ').split(/\\s+/)\n  if (this.options.loose) {\n    // in loose mode, throw out any that are not valid comparators\n    set = set.filter(function (comp) {\n      return !!comp.match(compRe)\n    })\n  }\n  set = set.map(function (comp) {\n    return new Comparator(comp, this.options)\n  }, this)\n\n  return set\n}\n\nRange.prototype.intersects = function (range, options) {\n  if (!(range instanceof Range)) {\n    throw new TypeError('a Range is required')\n  }\n\n  return this.set.some(function (thisComparators) {\n    return (\n      isSatisfiable(thisComparators, options) &&\n      range.set.some(function (rangeComparators) {\n        return (\n          isSatisfiable(rangeComparators, options) &&\n          thisComparators.every(function (thisComparator) {\n            return rangeComparators.every(function (rangeComparator) {\n              return thisComparator.intersects(rangeComparator, options)\n            })\n          })\n        )\n      })\n    )\n  })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n  var result = true\n  var remainingComparators = comparators.slice()\n  var testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every(function (otherComparator) {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n  return new Range(range, options).set.map(function (comp) {\n    return comp.map(function (c) {\n      return c.value\n    }).join(' ').trim().split(' ')\n  })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nfunction isX (id) {\n  return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n  return comp.trim().split(/\\s+/).map(function (comp) {\n    return replaceTilde(comp, options)\n  }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n  var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  return comp.replace(r, function (_, M, m, p, pr) {\n    debug('tilde', comp, _, M, m, p, pr)\n    var ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0\n      ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n            ' <' + M + '.' + (+m + 1) + '.0'\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0\n      ret = '>=' + M + '.' + m + '.' + p +\n            ' <' + M + '.' + (+m + 1) + '.0'\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n  return comp.trim().split(/\\s+/).map(function (comp) {\n    return replaceCaret(comp, options)\n  }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n  debug('caret', comp, options)\n  var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  return comp.replace(r, function (_, M, m, p, pr) {\n    debug('caret', comp, _, M, m, p, pr)\n    var ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n      } else {\n        ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n                ' <' + M + '.' + m + '.' + (+p + 1)\n        } else {\n          ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n                ' <' + M + '.' + (+m + 1) + '.0'\n        }\n      } else {\n        ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n              ' <' + (+M + 1) + '.0.0'\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = '>=' + M + '.' + m + '.' + p +\n                ' <' + M + '.' + m + '.' + (+p + 1)\n        } else {\n          ret = '>=' + M + '.' + m + '.' + p +\n                ' <' + M + '.' + (+m + 1) + '.0'\n        }\n      } else {\n        ret = '>=' + M + '.' + m + '.' + p +\n              ' <' + (+M + 1) + '.0.0'\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nfunction replaceXRanges (comp, options) {\n  debug('replaceXRanges', comp, options)\n  return comp.split(/\\s+/).map(function (comp) {\n    return replaceXRange(comp, options)\n  }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n  comp = comp.trim()\n  var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    var xM = isX(M)\n    var xm = xM || isX(m)\n    var xp = xm || isX(p)\n    var anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        // >1.2.3 => >= 1.2.4\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      ret = gtlt + M + '.' + m + '.' + p + pr\n    } else if (xm) {\n      ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n    } else if (xp) {\n      ret = '>=' + M + '.' + m + '.0' + pr +\n        ' <' + M + '.' + (+m + 1) + '.0' + pr\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr, tb) {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = '>=' + fM + '.0.0'\n  } else if (isX(fp)) {\n    from = '>=' + fM + '.' + fm + '.0'\n  } else {\n    from = '>=' + from\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = '<' + (+tM + 1) + '.0.0'\n  } else if (isX(tp)) {\n    to = '<' + tM + '.' + (+tm + 1) + '.0'\n  } else if (tpr) {\n    to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n  } else {\n    to = '<=' + to\n  }\n\n  return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n  if (!version) {\n    return false\n  }\n\n  if (typeof version === 'string') {\n    try {\n      version = new SemVer(version, this.options)\n    } catch (er) {\n      return false\n    }\n  }\n\n  for (var i = 0; i < this.set.length; i++) {\n    if (testSet(this.set[i], version, this.options)) {\n      return true\n    }\n  }\n  return false\n}\n\nfunction testSet (set, version, options) {\n  for (var i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        var allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n  var max = null\n  var maxSV = null\n  try {\n    var rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach(function (v) {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n  var min = null\n  var minSV = null\n  try {\n    var rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach(function (v) {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n  range = new Range(range, loose)\n\n  var minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (var i = 0; i < range.set.length; ++i) {\n    var comparators = range.set[i]\n\n    comparators.forEach(function (comparator) {\n      // Clone to avoid manipulating the comparator's semver object.\n      var compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!minver || gt(minver, compver)) {\n            minver = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error('Unexpected operation: ' + comparator.operator)\n      }\n    })\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n  return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n  return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  var gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisifes the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (var i = 0; i < range.set.length; ++i) {\n    var comparators = range.set[i]\n\n    var high = null\n    var low = null\n\n    comparators.forEach(function (comparator) {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n  var parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  var match = null\n  if (!options.rtl) {\n    match = version.match(re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    var next\n    while ((next = re[t.COERCERTL].exec(version)) &&\n      (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n          next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    re[t.COERCERTL].lastIndex = -1\n  }\n\n  if (match === null) {\n    return null\n  }\n\n  return parse(match[2] +\n    '.' + (match[3] || '0') +\n    '.' + (match[4] || '0'), options)\n}\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/semver/semver.js?");
  
  /***/ }),
  
  /***/ "./node_modules/tiny-svg/dist/index.esm.js":
  /*!*************************************************!*\
    !*** ./node_modules/tiny-svg/dist/index.esm.js ***!
    \*************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"append\": () => (/* binding */ append),\n/* harmony export */   \"appendTo\": () => (/* binding */ appendTo),\n/* harmony export */   \"attr\": () => (/* binding */ attr),\n/* harmony export */   \"classes\": () => (/* binding */ classes),\n/* harmony export */   \"clear\": () => (/* binding */ clear),\n/* harmony export */   \"clone\": () => (/* binding */ clone),\n/* harmony export */   \"create\": () => (/* binding */ create),\n/* harmony export */   \"innerSVG\": () => (/* binding */ innerSVG),\n/* harmony export */   \"prepend\": () => (/* binding */ prepend),\n/* harmony export */   \"prependTo\": () => (/* binding */ prependTo),\n/* harmony export */   \"remove\": () => (/* binding */ remove),\n/* harmony export */   \"replace\": () => (/* binding */ replace),\n/* harmony export */   \"transform\": () => (/* binding */ transform),\n/* harmony export */   \"on\": () => (/* binding */ on),\n/* harmony export */   \"off\": () => (/* binding */ off),\n/* harmony export */   \"createPoint\": () => (/* binding */ createPoint),\n/* harmony export */   \"createMatrix\": () => (/* binding */ createMatrix),\n/* harmony export */   \"createTransform\": () => (/* binding */ createTransform),\n/* harmony export */   \"select\": () => (/* binding */ select),\n/* harmony export */   \"selectAll\": () => (/* binding */ selectAll)\n/* harmony export */ });\nfunction ensureImported(element, target) {\n\n  if (element.ownerDocument !== target.ownerDocument) {\n    try {\n      // may fail on webkit\n      return target.ownerDocument.importNode(element, true);\n    } catch (e) {\n      // ignore\n    }\n  }\n\n  return element;\n}\n\n/**\n * appendTo utility\n */\n\n/**\n * Append a node to a target element and return the appended node.\n *\n * @param  {SVGElement} element\n * @param  {SVGElement} target\n *\n * @return {SVGElement} the appended node\n */\nfunction appendTo(element, target) {\n  return target.appendChild(ensureImported(element, target));\n}\n\n/**\n * append utility\n */\n\n/**\n * Append a node to an element\n *\n * @param  {SVGElement} element\n * @param  {SVGElement} node\n *\n * @return {SVGElement} the element\n */\nfunction append(target, node) {\n  appendTo(node, target);\n  return target;\n}\n\n/**\n * attribute accessor utility\n */\n\nvar LENGTH_ATTR = 2;\n\nvar CSS_PROPERTIES = {\n  'alignment-baseline': 1,\n  'baseline-shift': 1,\n  'clip': 1,\n  'clip-path': 1,\n  'clip-rule': 1,\n  'color': 1,\n  'color-interpolation': 1,\n  'color-interpolation-filters': 1,\n  'color-profile': 1,\n  'color-rendering': 1,\n  'cursor': 1,\n  'direction': 1,\n  'display': 1,\n  'dominant-baseline': 1,\n  'enable-background': 1,\n  'fill': 1,\n  'fill-opacity': 1,\n  'fill-rule': 1,\n  'filter': 1,\n  'flood-color': 1,\n  'flood-opacity': 1,\n  'font': 1,\n  'font-family': 1,\n  'font-size': LENGTH_ATTR,\n  'font-size-adjust': 1,\n  'font-stretch': 1,\n  'font-style': 1,\n  'font-variant': 1,\n  'font-weight': 1,\n  'glyph-orientation-horizontal': 1,\n  'glyph-orientation-vertical': 1,\n  'image-rendering': 1,\n  'kerning': 1,\n  'letter-spacing': 1,\n  'lighting-color': 1,\n  'marker': 1,\n  'marker-end': 1,\n  'marker-mid': 1,\n  'marker-start': 1,\n  'mask': 1,\n  'opacity': 1,\n  'overflow': 1,\n  'pointer-events': 1,\n  'shape-rendering': 1,\n  'stop-color': 1,\n  'stop-opacity': 1,\n  'stroke': 1,\n  'stroke-dasharray': 1,\n  'stroke-dashoffset': 1,\n  'stroke-linecap': 1,\n  'stroke-linejoin': 1,\n  'stroke-miterlimit': 1,\n  'stroke-opacity': 1,\n  'stroke-width': LENGTH_ATTR,\n  'text-anchor': 1,\n  'text-decoration': 1,\n  'text-rendering': 1,\n  'unicode-bidi': 1,\n  'visibility': 1,\n  'word-spacing': 1,\n  'writing-mode': 1\n};\n\n\nfunction getAttribute(node, name) {\n  if (CSS_PROPERTIES[name]) {\n    return node.style[name];\n  } else {\n    return node.getAttributeNS(null, name);\n  }\n}\n\nfunction setAttribute(node, name, value) {\n  var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n\n  var type = CSS_PROPERTIES[hyphenated];\n\n  if (type) {\n    // append pixel unit, unless present\n    if (type === LENGTH_ATTR && typeof value === 'number') {\n      value = String(value) + 'px';\n    }\n\n    node.style[hyphenated] = value;\n  } else {\n    node.setAttributeNS(null, name, value);\n  }\n}\n\nfunction setAttributes(node, attrs) {\n\n  var names = Object.keys(attrs), i, name;\n\n  for (i = 0, name; (name = names[i]); i++) {\n    setAttribute(node, name, attrs[name]);\n  }\n}\n\n/**\n * Gets or sets raw attributes on a node.\n *\n * @param  {SVGElement} node\n * @param  {Object} [attrs]\n * @param  {String} [name]\n * @param  {String} [value]\n *\n * @return {String}\n */\nfunction attr(node, name, value) {\n  if (typeof name === 'string') {\n    if (value !== undefined) {\n      setAttribute(node, name, value);\n    } else {\n      return getAttribute(node, name);\n    }\n  } else {\n    setAttributes(node, name);\n  }\n\n  return node;\n}\n\n/**\r\n * Clear utility\r\n */\r\nfunction index(arr, obj) {\r\n  if (arr.indexOf) {\r\n    return arr.indexOf(obj);\r\n  }\r\n\r\n\r\n  for (var i = 0; i < arr.length; ++i) {\r\n    if (arr[i] === obj) {\r\n      return i;\r\n    }\r\n  }\r\n\r\n  return -1;\r\n}\r\n\r\nvar re = /\\s+/;\r\n\r\nvar toString = Object.prototype.toString;\r\n\r\nfunction defined(o) {\r\n  return typeof o !== 'undefined';\r\n}\r\n\r\n/**\r\n * Wrap `el` in a `ClassList`.\r\n *\r\n * @param {Element} el\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nfunction classes(el) {\r\n  return new ClassList(el);\r\n}\r\n\r\nfunction ClassList(el) {\r\n  if (!el || !el.nodeType) {\r\n    throw new Error('A DOM element reference is required');\r\n  }\r\n  this.el = el;\r\n  this.list = el.classList;\r\n}\r\n\r\n/**\r\n * Add class `name` if not already present.\r\n *\r\n * @param {String} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.add = function(name) {\r\n\r\n  // classList\r\n  if (this.list) {\r\n    this.list.add(name);\r\n    return this;\r\n  }\r\n\r\n  // fallback\r\n  var arr = this.array();\r\n  var i = index(arr, name);\r\n  if (!~i) {\r\n    arr.push(name);\r\n  }\r\n\r\n  if (defined(this.el.className.baseVal)) {\r\n    this.el.className.baseVal = arr.join(' ');\r\n  } else {\r\n    this.el.className = arr.join(' ');\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove class `name` when present, or\r\n * pass a regular expression to remove\r\n * any which match.\r\n *\r\n * @param {String|RegExp} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.remove = function(name) {\r\n  if ('[object RegExp]' === toString.call(name)) {\r\n    return this.removeMatching(name);\r\n  }\r\n\r\n  // classList\r\n  if (this.list) {\r\n    this.list.remove(name);\r\n    return this;\r\n  }\r\n\r\n  // fallback\r\n  var arr = this.array();\r\n  var i = index(arr, name);\r\n  if (~i) {\r\n    arr.splice(i, 1);\r\n  }\r\n  this.el.className.baseVal = arr.join(' ');\r\n  return this;\r\n};\r\n\r\n/**\r\n * Remove all classes matching `re`.\r\n *\r\n * @param {RegExp} re\r\n * @return {ClassList}\r\n * @api private\r\n */\r\n\r\nClassList.prototype.removeMatching = function(re) {\r\n  var arr = this.array();\r\n  for (var i = 0; i < arr.length; i++) {\r\n    if (re.test(arr[i])) {\r\n      this.remove(arr[i]);\r\n    }\r\n  }\r\n  return this;\r\n};\r\n\r\n/**\r\n * Toggle class `name`, can force state via `force`.\r\n *\r\n * For browsers that support classList, but do not support `force` yet,\r\n * the mistake will be detected and corrected.\r\n *\r\n * @param {String} name\r\n * @param {Boolean} force\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.toggle = function(name, force) {\r\n  // classList\r\n  if (this.list) {\r\n    if (defined(force)) {\r\n      if (force !== this.list.toggle(name, force)) {\r\n        this.list.toggle(name); // toggle again to correct\r\n      }\r\n    } else {\r\n      this.list.toggle(name);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  // fallback\r\n  if (defined(force)) {\r\n    if (!force) {\r\n      this.remove(name);\r\n    } else {\r\n      this.add(name);\r\n    }\r\n  } else {\r\n    if (this.has(name)) {\r\n      this.remove(name);\r\n    } else {\r\n      this.add(name);\r\n    }\r\n  }\r\n\r\n  return this;\r\n};\r\n\r\n/**\r\n * Return an array of classes.\r\n *\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.array = function() {\r\n  var className = this.el.getAttribute('class') || '';\r\n  var str = className.replace(/^\\s+|\\s+$/g, '');\r\n  var arr = str.split(re);\r\n  if ('' === arr[0]) {\r\n    arr.shift();\r\n  }\r\n  return arr;\r\n};\r\n\r\n/**\r\n * Check if class `name` is present.\r\n *\r\n * @param {String} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.has =\r\nClassList.prototype.contains = function(name) {\r\n  return (\r\n    this.list ?\r\n      this.list.contains(name) :\r\n      !! ~index(this.array(), name)\r\n  );\r\n};\n\nfunction remove(element) {\n  var parent = element.parentNode;\n\n  if (parent) {\n    parent.removeChild(element);\n  }\n\n  return element;\n}\n\n/**\n * Clear utility\n */\n\n/**\n * Removes all children from the given element\n *\n * @param  {DOMElement} element\n * @return {DOMElement} the element (for chaining)\n */\nfunction clear(element) {\n  var child;\n\n  while ((child = element.firstChild)) {\n    remove(child);\n  }\n\n  return element;\n}\n\nfunction clone(element) {\n  return element.cloneNode(true);\n}\n\nvar ns = {\n  svg: 'http://www.w3.org/2000/svg'\n};\n\n/**\n * DOM parsing utility\n */\n\nvar SVG_START = '<svg xmlns=\"' + ns.svg + '\"';\n\nfunction parse(svg) {\n\n  var unwrap = false;\n\n  // ensure we import a valid svg document\n  if (svg.substring(0, 4) === '<svg') {\n    if (svg.indexOf(ns.svg) === -1) {\n      svg = SVG_START + svg.substring(4);\n    }\n  } else {\n    // namespace svg\n    svg = SVG_START + '>' + svg + '</svg>';\n    unwrap = true;\n  }\n\n  var parsed = parseDocument(svg);\n\n  if (!unwrap) {\n    return parsed;\n  }\n\n  var fragment = document.createDocumentFragment();\n\n  var parent = parsed.firstChild;\n\n  while (parent.firstChild) {\n    fragment.appendChild(parent.firstChild);\n  }\n\n  return fragment;\n}\n\nfunction parseDocument(svg) {\n\n  var parser;\n\n  // parse\n  parser = new DOMParser();\n  parser.async = false;\n\n  return parser.parseFromString(svg, 'text/xml');\n}\n\n/**\n * Create utility for SVG elements\n */\n\n\n/**\n * Create a specific type from name or SVG markup.\n *\n * @param {String} name the name or markup of the element\n * @param {Object} [attrs] attributes to set on the element\n *\n * @returns {SVGElement}\n */\nfunction create(name, attrs) {\n  var element;\n\n  if (name.charAt(0) === '<') {\n    element = parse(name).firstChild;\n    element = document.importNode(element, true);\n  } else {\n    element = document.createElementNS(ns.svg, name);\n  }\n\n  if (attrs) {\n    attr(element, attrs);\n  }\n\n  return element;\n}\n\n/**\n * Events handling utility\n */\n\nfunction on(node, event, listener, useCapture) {\n  node.addEventListener(event, listener, useCapture);\n}\n\nfunction off(node, event, listener, useCapture) {\n  node.removeEventListener(event, listener, useCapture);\n}\n\n/**\n * Geometry helpers\n */\n\n// fake node used to instantiate svg geometry elements\nvar node = create('svg');\n\nfunction extend(object, props) {\n  var i, k, keys = Object.keys(props);\n\n  for (i = 0; (k = keys[i]); i++) {\n    object[k] = props[k];\n  }\n\n  return object;\n}\n\n\nfunction createPoint(x, y) {\n  var point = node.createSVGPoint();\n\n  switch (arguments.length) {\n  case 0:\n    return point;\n  case 2:\n    x = {\n      x: x,\n      y: y\n    };\n    break;\n  }\n\n  return extend(point, x);\n}\n\n/**\n * Create matrix via args.\n *\n * @example\n *\n * createMatrix({ a: 1, b: 1 });\n * createMatrix();\n * createMatrix(1, 2, 0, 0, 30, 20);\n *\n * @return {SVGMatrix}\n */\nfunction createMatrix(a, b, c, d, e, f) {\n  var matrix = node.createSVGMatrix();\n\n  switch (arguments.length) {\n  case 0:\n    return matrix;\n  case 1:\n    return extend(matrix, a);\n  case 6:\n    return extend(matrix, {\n      a: a,\n      b: b,\n      c: c,\n      d: d,\n      e: e,\n      f: f\n    });\n  }\n}\n\nfunction createTransform(matrix) {\n  if (matrix) {\n    return node.createSVGTransformFromMatrix(matrix);\n  } else {\n    return node.createSVGTransform();\n  }\n}\n\n/**\n * Serialization util\n */\n\nvar TEXT_ENTITIES = /([&<>]{1})/g;\nvar ATTR_ENTITIES = /([\\n\\r\"]{1})/g;\n\nvar ENTITY_REPLACEMENT = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '\\''\n};\n\nfunction escape(str, pattern) {\n\n  function replaceFn(match, entity) {\n    return ENTITY_REPLACEMENT[entity] || entity;\n  }\n\n  return str.replace(pattern, replaceFn);\n}\n\nfunction serialize(node, output) {\n\n  var i, len, attrMap, attrNode, childNodes;\n\n  switch (node.nodeType) {\n  // TEXT\n  case 3:\n    // replace special XML characters\n    output.push(escape(node.textContent, TEXT_ENTITIES));\n    break;\n\n  // ELEMENT\n  case 1:\n    output.push('<', node.tagName);\n\n    if (node.hasAttributes()) {\n      attrMap = node.attributes;\n      for (i = 0, len = attrMap.length; i < len; ++i) {\n        attrNode = attrMap.item(i);\n        output.push(' ', attrNode.name, '=\"', escape(attrNode.value, ATTR_ENTITIES), '\"');\n      }\n    }\n\n    if (node.hasChildNodes()) {\n      output.push('>');\n      childNodes = node.childNodes;\n      for (i = 0, len = childNodes.length; i < len; ++i) {\n        serialize(childNodes.item(i), output);\n      }\n      output.push('</', node.tagName, '>');\n    } else {\n      output.push('/>');\n    }\n    break;\n\n  // COMMENT\n  case 8:\n    output.push('<!--', escape(node.nodeValue, TEXT_ENTITIES), '-->');\n    break;\n\n  // CDATA\n  case 4:\n    output.push('<![CDATA[', node.nodeValue, ']]>');\n    break;\n\n  default:\n    throw new Error('unable to handle node ' + node.nodeType);\n  }\n\n  return output;\n}\n\n/**\n * innerHTML like functionality for SVG elements.\n * based on innerSVG (https://code.google.com/p/innersvg)\n */\n\n\nfunction set(element, svg) {\n\n  var parsed = parse(svg);\n\n  // clear element contents\n  clear(element);\n\n  if (!svg) {\n    return;\n  }\n\n  if (!isFragment(parsed)) {\n    // extract <svg> from parsed document\n    parsed = parsed.documentElement;\n  }\n\n  var nodes = slice(parsed.childNodes);\n\n  // import + append each node\n  for (var i = 0; i < nodes.length; i++) {\n    appendTo(nodes[i], element);\n  }\n\n}\n\nfunction get(element) {\n  var child = element.firstChild,\n      output = [];\n\n  while (child) {\n    serialize(child, output);\n    child = child.nextSibling;\n  }\n\n  return output.join('');\n}\n\nfunction isFragment(node) {\n  return node.nodeName === '#document-fragment';\n}\n\nfunction innerSVG(element, svg) {\n\n  if (svg !== undefined) {\n\n    try {\n      set(element, svg);\n    } catch (e) {\n      throw new Error('error parsing SVG: ' + e.message);\n    }\n\n    return element;\n  } else {\n    return get(element);\n  }\n}\n\n\nfunction slice(arr) {\n  return Array.prototype.slice.call(arr);\n}\n\n/**\n * Selection utilities\n */\n\nfunction select(node, selector) {\n  return node.querySelector(selector);\n}\n\nfunction selectAll(node, selector) {\n  var nodes = node.querySelectorAll(selector);\n\n  return [].map.call(nodes, function(element) {\n    return element;\n  });\n}\n\n/**\n * prependTo utility\n */\n\n/**\n * Prepend a node to a target element and return the prepended node.\n *\n * @param  {SVGElement} node\n * @param  {SVGElement} target\n *\n * @return {SVGElement} the prepended node\n */\nfunction prependTo(node, target) {\n  return target.insertBefore(ensureImported(node, target), target.firstChild || null);\n}\n\n/**\n * prepend utility\n */\n\n/**\n * Prepend a node to a target element\n *\n * @param  {SVGElement} target\n * @param  {SVGElement} node\n *\n * @return {SVGElement} the target element\n */\nfunction prepend(target, node) {\n  prependTo(node, target);\n  return target;\n}\n\n/**\n * Replace utility\n */\n\nfunction replace(element, replacement) {\n  element.parentNode.replaceChild(ensureImported(replacement, element), element);\n  return replacement;\n}\n\n/**\n * transform accessor utility\n */\n\nfunction wrapMatrix(transformList, transform) {\n  if (transform instanceof SVGMatrix) {\n    return transformList.createSVGTransformFromMatrix(transform);\n  }\n\n  return transform;\n}\n\n\nfunction setTransforms(transformList, transforms) {\n  var i, t;\n\n  transformList.clear();\n\n  for (i = 0; (t = transforms[i]); i++) {\n    transformList.appendItem(wrapMatrix(transformList, t));\n  }\n}\n\n/**\n * Get or set the transforms on the given node.\n *\n * @param {SVGElement} node\n * @param  {SVGTransform|SVGMatrix|Array<SVGTransform|SVGMatrix>} [transforms]\n *\n * @return {SVGTransform} the consolidated transform\n */\nfunction transform(node, transforms) {\n  var transformList = node.transform.baseVal;\n\n  if (transforms) {\n\n    if (!Array.isArray(transforms)) {\n      transforms = [ transforms ];\n    }\n\n    setTransforms(transformList, transforms);\n  }\n\n  return transformList.consolidate();\n}\n\n\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/tiny-svg/dist/index.esm.js?");
  
  /***/ }),
  
  /***/ "./src/app.js":
  /*!********************!*\
    !*** ./src/app.js ***!
    \********************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"./node_modules/jquery/dist/jquery.js\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! bpmn-js/lib/Modeler */ \"./node_modules/bpmn-js/lib/Modeler.js\");\n/* harmony import */ var min_dash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! min-dash */ \"./node_modules/min-dash/dist/index.esm.js\");\n/* harmony import */ var bpmn_js_properties_panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! bpmn-js-properties-panel */ \"./node_modules/bpmn-js-properties-panel/index.js\");\n/* harmony import */ var bpmn_js_properties_panel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bpmn_js_properties_panel__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var bpmn_js_properties_panel_lib_provider_camunda__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bpmn-js-properties-panel/lib/provider/camunda */ \"./node_modules/bpmn-js-properties-panel/lib/provider/camunda/index.js\");\n/* harmony import */ var bpmn_js_properties_panel_lib_provider_camunda__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bpmn_js_properties_panel_lib_provider_camunda__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var camunda_bpmn_moddle_resources_camunda_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! camunda-bpmn-moddle/resources/camunda.json */ \"./node_modules/camunda-bpmn-moddle/resources/camunda.json\");\n/* harmony import */ var _resources_newDiagram_bpmn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../resources/newDiagram.bpmn */ \"./resources/newDiagram.bpmn\");\n/* harmony import */ var _customTranslate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./customTranslate */ \"./src/customTranslate.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#js-drop-zone');\r\n\r\nvar canvas = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#js-canvas');\r\n\r\n//汉化处理\r\nconst customTranslateModule = {\r\n  translate: [\"value\", _customTranslate__WEBPACK_IMPORTED_MODULE_5__.default]\r\n}\r\n\r\nvar bpmnModeler = new bpmn_js_lib_Modeler__WEBPACK_IMPORTED_MODULE_6__.default({\r\n  container: canvas,\r\n  propertiesPanel: {\r\n    parent: '#js-properties-panel'\r\n  },\r\n  additionalModules: [\r\n    (bpmn_js_properties_panel__WEBPACK_IMPORTED_MODULE_1___default()),\r\n    (bpmn_js_properties_panel_lib_provider_camunda__WEBPACK_IMPORTED_MODULE_2___default()),\r\n    customTranslateModule\r\n  ],\r\n  moddleExtensions: {\r\n    camunda: camunda_bpmn_moddle_resources_camunda_json__WEBPACK_IMPORTED_MODULE_3__\r\n  }\r\n});\r\ncontainer.removeClass('with-diagram');\r\n\r\nconst eventBus = bpmnModeler.get('eventBus');\r\nconst eventType = ['element.click', 'element.changed'] // 需要监听的事件集合\r\neventType.forEach(eventType => {\r\n  eventBus.on(eventType, e => {\r\n    // console.log('元素被点击', e);\r\n    // document.querySelector('#cam-condition').onclick=function(){console.log(123)};\r\n    _elementEvent(e)\r\n  })\r\n})\r\n\r\nfunction createNewDiagram(_xml) {\r\n  if (_xml) {\r\n    openDiagram(_xml);\r\n  } else {\r\n    openDiagram(_resources_newDiagram_bpmn__WEBPACK_IMPORTED_MODULE_4__.default);\r\n  }\r\n}\r\n\r\nasync function openDiagram(xml) {\r\n\r\n  try {\r\n\r\n    await bpmnModeler.importXML(xml);\r\n\r\n    container\r\n      .removeClass('with-error')\r\n      .addClass('with-diagram');\r\n  } catch (err) {\r\n\r\n    container\r\n      .removeClass('with-diagram')\r\n      .addClass('with-error');\r\n\r\n    container.find('.error pre').text(err.message);\r\n\r\n    console.error(err);\r\n  }\r\n}\r\n\r\nfunction registerFileDrop(container, callback) {\r\n\r\n  function handleFileSelect(e) {\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n\r\n    var files = e.dataTransfer.files;\r\n\r\n    var file = files[0];\r\n\r\n    var reader = new FileReader();\r\n\r\n    reader.onload = function (e) {\r\n\r\n      var xml = e.target.result;\r\n\r\n      callback(xml);\r\n    };\r\n\r\n    reader.readAsText(file);\r\n  }\r\n\r\n  function handleDragOver(e) {\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n\r\n    e.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy.\r\n  }\r\n\r\n  container.get(0).addEventListener('dragover', handleDragOver, false);\r\n  container.get(0).addEventListener('drop', handleFileSelect, false);\r\n}\r\n\r\n\r\n////// file drag / drop ///////////////////////\r\n\r\n// check file api availability\r\nif (!window.FileList || !window.FileReader) {\r\n  window.alert(\r\n    'Looks like you use an older browser that does not support drag and drop. ' +\r\n    'Try using Chrome, Firefox or the Internet Explorer > 10.');\r\n} else {\r\n  registerFileDrop(container, openDiagram);\r\n}\r\n\r\n// bootstrap diagram functions\r\n\r\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\r\n\r\n  // $('#js-create-diagram').click(function(e) {\r\n  //   e.stopPropagation();\r\n  //   e.preventDefault();\r\n\r\n  //   createNewDiagram();\r\n  // });\r\n\r\n  window.initBpmnjs = function (_xml) {\r\n    createNewDiagram(_xml);\r\n  }\r\n\r\n\r\n\r\n  var downloadLink = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#js-download-diagram');\r\n  var downloadSvgLink = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#js-download-svg');\r\n  var saveDiagram = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#js-save-diagram');\r\n\r\n  jquery__WEBPACK_IMPORTED_MODULE_0___default()('.buttons a').click(function (e) {\r\n    if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is('.active')) {\r\n      e.preventDefault();\r\n      e.stopPropagation();\r\n    }\r\n  });\r\n\r\n  /**\r\n   * 保存\r\n   * document.body.addEventListener('saveDiagram', (_data) => { console.log(_data); });\r\n   */\r\n  saveDiagram.click(async function (e) {\r\n    const { svg } = await bpmnModeler.saveSVG();\r\n    const { xml } = await bpmnModeler.saveXML({ format: true });\r\n    let _param = {\r\n      svg: svg,\r\n      xml: xml\r\n    }\r\n    document.body.dispatchEvent(new CustomEvent('saveDiagram', { detail: _param }));\r\n  });\r\n\r\n  function setEncoded(link, name, data) {\r\n    var encodedData = encodeURIComponent(data);\r\n\r\n    if (data) {\r\n      link.addClass('active').attr({\r\n        'href': 'data:application/bpmn20-xml;charset=UTF-8,' + encodedData,\r\n        'download': name\r\n      });\r\n    } else {\r\n      link.removeClass('active');\r\n    }\r\n  }\r\n\r\n  var exportArtifacts = (0,min_dash__WEBPACK_IMPORTED_MODULE_7__.debounce)(async function () {\r\n\r\n    try {\r\n\r\n      const { svg } = await bpmnModeler.saveSVG();\r\n\r\n      setEncoded(downloadSvgLink, 'diagram.svg', svg);\r\n    } catch (err) {\r\n\r\n      console.error('Error happened saving SVG: ', err);\r\n\r\n      setEncoded(downloadSvgLink, 'diagram.svg', null);\r\n    }\r\n\r\n    try {\r\n\r\n      const { xml } = await bpmnModeler.saveXML({ format: true });\r\n\r\n      setEncoded(downloadLink, 'diagram.bpmn', xml);\r\n    } catch (err) {\r\n\r\n      console.log('Error happened saving XML: ', err);\r\n\r\n      setEncoded(downloadLink, 'diagram.bpmn', null);\r\n    }\r\n\r\n  }, 500);\r\n\r\n  bpmnModeler.on('commandStack.changed', exportArtifacts);\r\n});\r\n\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./src/app.js?");
  
  /***/ }),
  
  /***/ "./src/customTranslate.js":
  /*!********************************!*\
    !*** ./src/customTranslate.js ***!
    \********************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ customTranslate)\n/* harmony export */ });\n/* harmony import */ var _translationsGerman__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./translationsGerman */ \"./src/translationsGerman.js\");\n\r\n\r\n\r\nfunction customTranslate(template, replacements) {\r\n  replacements = replacements || {};\r\n\r\n  // Translate\r\n  template = _translationsGerman__WEBPACK_IMPORTED_MODULE_0__.default[template] || template;\r\n\r\n  // Replace\r\n  return template.replace(/{([^}]+)}/g, function(_, key) {\r\n\r\n\t var str=replacements[key];\r\n\t  if(_translationsGerman__WEBPACK_IMPORTED_MODULE_0__.default[replacements[key]]!=null&&_translationsGerman__WEBPACK_IMPORTED_MODULE_0__.default[replacements[key]]!='undefined'){\r\n\t\t  str=_translationsGerman__WEBPACK_IMPORTED_MODULE_0__.default[replacements[key]];\r\n\t  }\r\n    return  str || '{' + key + '}';\r\n  \r\n  });\r\n}\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./src/customTranslate.js?");
  
  /***/ }),
  
  /***/ "./src/translationsGerman.js":
  /*!***********************************!*\
    !*** ./src/translationsGerman.js ***!
    \***********************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  "use strict";
  eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\r\n\r\n    // Labels\r\n    'Activate the global connect tool' : '激活全局连接工具',\r\n    'Append {type}': '添加 {type}',\r\n    'Add Lane above': '在上面添加道',\r\n    'Divide into two Lanes': '分割成两个道',\r\n    'Divide into three Lanes': '分割成三个道',\r\n    'Add Lane below': '在下面添加道',\r\n    'Append compensation activity': '追加补偿活动',\r\n    'Change type': '修改类型',\r\n    'Connect using Association': '使用关联连接',\r\n    'Connect using Sequence/MessageFlow or Association': '使用顺序/消息流或者关联连接',\r\n    'Connect using DataInputAssociation': '使用数据输入关联连接',\r\n    'Remove': '移除',\r\n    'Activate the hand tool': '激活抓手工具',\r\n    'Activate the lasso tool': '激活套索工具',\r\n    'Activate the create/remove space tool': '激活创建/删除空间工具',\r\n    'Create expanded SubProcess': '创建扩展子过程',\r\n    'Create IntermediateThrowEvent/BoundaryEvent' : '创建中间抛出事件/边界事件',\r\n    'Create Pool/Participant': '创建池/参与者',\r\n    'Parallel Multi Instance': '并行多重事件',\r\n    'Sequential Multi Instance': '时序多重事件',\r\n    'DataObjectReference':'数据对象参考',\r\n    'DataStoreReference':'数据存储参考',\r\n    'Loop': '循环',\r\n    'Ad-hoc': '即席',\r\n    'Create {type}': '创建 {type}',\r\n    'Task': '任务',\r\n    'Send Task': '发送任务',\r\n    'Receive Task': '接收任务',\r\n    'User Task': '用户任务',\r\n    'Manual Task': '手工任务',\r\n    'Business Rule Task': '业务规则任务',\r\n    'Service Task': '服务任务',\r\n    'Script Task': '脚本任务',\r\n    'Call Activity': '调用活动',\r\n    'Sub Process (collapsed)': '子流程(折叠的)',\r\n    'Sub Process (expanded)': '子流程(展开的)',\r\n    'Start Event': '开始事件',\r\n     'StartEvent': '开始事件',\r\n    'Intermediate Throw Event': '中间事件',\r\n    'End Event': '结束事件',\r\n      'EndEvent': '结束事件',\r\n      'Create Gateway': '创建网关',\r\n      'Create Intermediate/Boundary Event': '创建中间/边界事件',\r\n    'Message Start Event': '消息开始事件',\r\n    'Timer Start Event': '定时开始事件',\r\n    'Conditional Start Event': '条件开始事件',\r\n    'Signal Start Event': '信号开始事件',\r\n    'Error Start Event': '错误开始事件',\r\n    'Escalation Start Event': '升级开始事件',\r\n    'Compensation Start Event': '补偿开始事件',\r\n    'Message Start Event (non-interrupting)': '消息开始事件(非中断)',\r\n    'Timer Start Event (non-interrupting)': '定时开始事件(非中断)',\r\n    'Conditional Start Event (non-interrupting)': '条件开始事件(非中断)',\r\n    'Signal Start Event (non-interrupting)': '信号开始事件(非中断)',\r\n    'Escalation Start Event (non-interrupting)': '升级开始事件(非中断)',\r\n    'Message Intermediate Catch Event': '消息中间捕获事件',\r\n    'Message Intermediate Throw Event': '消息中间抛出事件',\r\n    'Timer Intermediate Catch Event': '定时中间捕获事件',\r\n    'Escalation Intermediate Throw Event': '升级中间抛出事件',\r\n    'Conditional Intermediate Catch Event': '条件中间捕获事件',\r\n    'Link Intermediate Catch Event': '链接中间捕获事件',\r\n    'Link Intermediate Throw Event': '链接中间抛出事件',\r\n    'Compensation Intermediate Throw Event': '补偿中间抛出事件',\r\n    'Signal Intermediate Catch Event': '信号中间捕获事件',\r\n    'Signal Intermediate Throw Event': '信号中间抛出事件',\r\n    'Message End Event': '消息结束事件',\r\n    'Escalation End Event': '定时结束事件',\r\n    'Error End Event': '错误结束事件',\r\n    'Cancel End Event': '取消结束事件',\r\n    'Compensation End Event': '补偿结束事件',\r\n    'Signal End Event': '信号结束事件',\r\n    'Terminate End Event': '终止结束事件',\r\n    'Message Boundary Event': '消息边界事件',\r\n    'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)',\r\n    'Timer Boundary Event': '定时边界事件',\r\n    'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)',\r\n    'Escalation Boundary Event': '升级边界事件',\r\n    'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)',\r\n    'Conditional Boundary Event': '条件边界事件',\r\n    'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)',\r\n    'Error Boundary Event': '错误边界事件',\r\n    'Cancel Boundary Event': '取消边界事件',\r\n    'Signal Boundary Event': '信号边界事件',\r\n    'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)',\r\n    'Compensation Boundary Event': '补偿边界事件',\r\n    'Exclusive Gateway': '互斥网关',\r\n    'Parallel Gateway': '并行网关',\r\n    'Inclusive Gateway': '相容网关',\r\n    'Complex Gateway': '复杂网关',\r\n    'Event based Gateway': '事件网关',\r\n    'Transaction': '转运',\r\n    'Sub Process': '子流程',\r\n    'Event Sub Process': '事件子流程',\r\n    'Collapsed Pool': '折叠池',\r\n    'Expanded Pool': '展开池',\r\n  \r\n    // Errors\r\n    'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',\r\n    'no shape type specified': '没有指定的形状类型',\r\n    'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',\r\n    'out of bounds release': 'out of bounds release',\r\n    'more than {count} child lanes': '子道大于{count} ',\r\n    'element required': '元素不能为空',\r\n    'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',\r\n    'no diagram to display': '没有可展示的流程图',\r\n    'no process or collaboration to display': '没有可展示的流程/协作',\r\n    'element {element} referenced by {referenced}#{property} not yet drawn': '由{referenced}#{property}引用的{element}元素仍未绘制',\r\n    'already rendered {element}': '{element} 已被渲染',\r\n    'failed to import {element}': '导入{element}失败',\r\n    //属性面板的参数\r\n    'Id':'编号',\r\n    'Name':'名称',\r\n    'General':'常规',\r\n    'Details':'详情',\r\n    'Message Name':'消息名称',\r\n    'Message':'消息',\r\n    'Initiator':'创建者',\r\n    'Asynchronous Continuations':'持续异步',\r\n    'Asynchronous Before':'异步前',\r\n    'Asynchronous After':'异步后',\r\n     'Job Configuration':'工作配置',\r\n    'Exclusive':'排除',\r\n    'Job Priority':'工作优先级',\r\n    'Retry Time Cycle':'重试时间周期',\r\n    'Documentation':'文档',\r\n    'Element Documentation':'元素文档',\r\n    'History Configuration':'历史配置',\r\n    'History Time To Live':'历史的生存时间',\r\n    'Forms':'表单',\r\n    'Form Key':'表单key',\r\n    'Form Fields':'表单字段',\r\n    'Business Key':'业务key',\r\n    'Form Field':'表单字段',\r\n    'ID':'编号',\r\n    'Type':'类型',\r\n    'Label':'名称',\r\n    'Default Value':'默认值',\r\n    'Validation':'校验',\r\n    'Add Constraint':'添加约束',\r\n    'Config':'配置',\r\n    'Properties':'属性',\r\n    'Add Property':'添加属性',\r\n    'Value':'值',\r\n    'Listeners':'监听器',\r\n    'Execution Listener':'执行监听',\r\n    'Event Type':'事件类型',\r\n    'Listener Type':'监听器类型',\r\n    'Java Class':'Java类',\r\n    'Expression':'表达式',\r\n     'Must provide a value':'必须提供一个值',\r\n     'Delegate Expression':'代理表达式',\r\n     'Script':'脚本',\r\n     'Script Format':'脚本格式',\r\n     'Script Type':'脚本类型',\r\n     'Inline Script':'内联脚本',\r\n     'External Script':'外部脚本',\r\n      'Resource':'资源',\r\n      'Field Injection':'字段注入',\r\n      'Extensions':'扩展',\r\n      'Input/Output':'输入/输出',\r\n      'Input Parameters':'输入参数',\r\n      'Output Parameters':'输出参数',\r\n      'Parameters':'参数',\r\n      'Output Parameter':'输出参数',\r\n      'Timer Definition Type':'定时器定义类型',\r\n      'Timer Definition':'定时器定义',\r\n      'Date':'日期',\r\n      'Duration':'持续',\r\n      'Cycle':'循环',\r\n      'Signal':'信号',\r\n      'Signal Name':'信号名称',\r\n      'Escalation':'升级',\r\n      'Error':'错误',\r\n      'Link Name':'链接名称',\r\n      'Condition':'条件名称',\r\n      'Variable Name':'变量名称',\r\n      'Variable Event':'变量事件',\r\n      'Specify more than one variable change event as a comma separated list.':'多个变量事件以逗号隔开',\r\n      'Wait for Completion':'等待完成',\r\n      'Activity Ref':'活动参考',\r\n      'Version Tag':'版本标签',\r\n      'Executable':'可执行文件',\r\n      'External Task Configuration':'扩展任务配置',\r\n      'Task Priority':'任务优先级',\r\n      'External':'外部',\r\n      'Connector':'连接器',\r\n      'Must configure Connector':'必须配置连接器',\r\n      'Connector Id':'连接器编号',\r\n      'Implementation':'实现方式',\r\n      'Field Injections':'字段注入',\r\n  'Fields':'字段',\r\n  'Result Variable':'结果变量',\r\n  'Topic':'主题',\r\n  'Configure Connector':'配置连接器',\r\n  'Input Parameter':'输入参数',\r\n  'Assignee':'代理人',\r\n  'Candidate Users':'候选用户',\r\n  'Candidate Groups':'候选组',\r\n  'Due Date':'到期时间',\r\n  'Follow Up Date':'跟踪日期',\r\n  'Priority':'优先级',\r\n  'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':'跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n  'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':'跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n  'Variables':'变量',\r\n  \r\n  });\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./src/translationsGerman.js?");
  
  /***/ }),
  
  /***/ "./node_modules/camunda-bpmn-moddle/resources/camunda.json":
  /*!*****************************************************************!*\
    !*** ./node_modules/camunda-bpmn-moddle/resources/camunda.json ***!
    \*****************************************************************/
  /***/ ((module) => {
  
  "use strict";
  eval("module.exports = JSON.parse('{\"name\":\"Camunda\",\"uri\":\"http://camunda.org/schema/1.0/bpmn\",\"prefix\":\"camunda\",\"xml\":{\"tagAlias\":\"lowerCase\"},\"associations\":[],\"types\":[{\"name\":\"Definitions\",\"isAbstract\":true,\"extends\":[\"bpmn:Definitions\"],\"properties\":[{\"name\":\"diagramRelationId\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"InOutBinding\",\"superClass\":[\"Element\"],\"isAbstract\":true,\"properties\":[{\"name\":\"source\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"sourceExpression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"target\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"businessKey\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"local\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":false},{\"name\":\"variables\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"In\",\"superClass\":[\"InOutBinding\"],\"meta\":{\"allowedIn\":[\"bpmn:CallActivity\",\"bpmn:SignalEventDefinition\"]}},{\"name\":\"Out\",\"superClass\":[\"InOutBinding\"],\"meta\":{\"allowedIn\":[\"bpmn:CallActivity\"]}},{\"name\":\"AsyncCapable\",\"isAbstract\":true,\"extends\":[\"bpmn:Activity\",\"bpmn:Gateway\",\"bpmn:Event\"],\"properties\":[{\"name\":\"async\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":false},{\"name\":\"asyncBefore\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":false},{\"name\":\"asyncAfter\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":false},{\"name\":\"exclusive\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":true}]},{\"name\":\"JobPriorized\",\"isAbstract\":true,\"extends\":[\"bpmn:Process\",\"camunda:AsyncCapable\"],\"properties\":[{\"name\":\"jobPriority\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"SignalEventDefinitionExtension\",\"isAbstract\":true,\"extends\":[\"bpmn:SignalEventDefinition\"],\"properties\":[{\"name\":\"async\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":false}]},{\"name\":\"ErrorEventDefinitionExtension\",\"isAbstract\":true,\"extends\":[\"bpmn:ErrorEventDefinition\"],\"properties\":[{\"name\":\"errorCodeVariable\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"errorMessageVariable\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"ErrorEventDefinition\",\"superClass\":[\"bpmn:ErrorEventDefinition\",\"Element\"],\"properties\":[{\"name\":\"expression\",\"isAttr\":true,\"type\":\"String\"}],\"meta\":{\"allowedIn\":[\"bpmn:ServiceTask\"]}},{\"name\":\"Error\",\"isAbstract\":true,\"extends\":[\"bpmn:Error\"],\"properties\":[{\"name\":\"camunda:errorMessage\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"PotentialStarter\",\"superClass\":[\"Element\"],\"properties\":[{\"name\":\"resourceAssignmentExpression\",\"type\":\"bpmn:ResourceAssignmentExpression\"}]},{\"name\":\"FormSupported\",\"isAbstract\":true,\"extends\":[\"bpmn:StartEvent\",\"bpmn:UserTask\"],\"properties\":[{\"name\":\"formHandlerClass\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"formKey\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"TemplateSupported\",\"isAbstract\":true,\"extends\":[\"bpmn:Collaboration\",\"bpmn:Process\",\"bpmn:FlowElement\"],\"properties\":[{\"name\":\"modelerTemplate\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"modelerTemplateVersion\",\"isAttr\":true,\"type\":\"Integer\"}]},{\"name\":\"Initiator\",\"isAbstract\":true,\"extends\":[\"bpmn:StartEvent\"],\"properties\":[{\"name\":\"initiator\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"ScriptTask\",\"isAbstract\":true,\"extends\":[\"bpmn:ScriptTask\"],\"properties\":[{\"name\":\"resultVariable\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"resource\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"Process\",\"isAbstract\":true,\"extends\":[\"bpmn:Process\"],\"properties\":[{\"name\":\"candidateStarterGroups\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"candidateStarterUsers\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"versionTag\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"historyTimeToLive\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"isStartableInTasklist\",\"isAttr\":true,\"type\":\"Boolean\",\"default\":true}]},{\"name\":\"EscalationEventDefinitionExtension\",\"isAbstract\":true,\"extends\":[\"bpmn:EscalationEventDefinition\"],\"properties\":[{\"name\":\"escalationCodeVariable\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"FormalExpression\",\"isAbstract\":true,\"extends\":[\"bpmn:FormalExpression\"],\"properties\":[{\"name\":\"resource\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"Assignable\",\"extends\":[\"bpmn:UserTask\"],\"properties\":[{\"name\":\"assignee\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"candidateUsers\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"candidateGroups\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"dueDate\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"followUpDate\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"priority\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"CallActivity\",\"extends\":[\"bpmn:CallActivity\"],\"properties\":[{\"name\":\"calledElementBinding\",\"isAttr\":true,\"type\":\"String\",\"default\":\"latest\"},{\"name\":\"calledElementVersion\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"calledElementVersionTag\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"calledElementTenantId\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"caseRef\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"caseBinding\",\"isAttr\":true,\"type\":\"String\",\"default\":\"latest\"},{\"name\":\"caseVersion\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"caseTenantId\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"variableMappingClass\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"variableMappingDelegateExpression\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"ServiceTaskLike\",\"extends\":[\"bpmn:ServiceTask\",\"bpmn:BusinessRuleTask\",\"bpmn:SendTask\",\"bpmn:MessageEventDefinition\"],\"properties\":[{\"name\":\"expression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"class\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"delegateExpression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"resultVariable\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"DmnCapable\",\"extends\":[\"bpmn:BusinessRuleTask\"],\"properties\":[{\"name\":\"decisionRef\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"decisionRefBinding\",\"isAttr\":true,\"type\":\"String\",\"default\":\"latest\"},{\"name\":\"decisionRefVersion\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"mapDecisionResult\",\"isAttr\":true,\"type\":\"String\",\"default\":\"resultList\"},{\"name\":\"decisionRefTenantId\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"ExternalCapable\",\"extends\":[\"camunda:ServiceTaskLike\"],\"properties\":[{\"name\":\"type\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"topic\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"TaskPriorized\",\"extends\":[\"bpmn:Process\",\"camunda:ExternalCapable\"],\"properties\":[{\"name\":\"taskPriority\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"Properties\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"*\"]},\"properties\":[{\"name\":\"values\",\"type\":\"Property\",\"isMany\":true}]},{\"name\":\"Property\",\"superClass\":[\"Element\"],\"properties\":[{\"name\":\"id\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"name\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"value\",\"type\":\"String\",\"isAttr\":true}]},{\"name\":\"Connector\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"camunda:ServiceTaskLike\"]},\"properties\":[{\"name\":\"inputOutput\",\"type\":\"InputOutput\"},{\"name\":\"connectorId\",\"type\":\"String\"}]},{\"name\":\"InputOutput\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"bpmn:FlowNode\",\"camunda:Connector\"]},\"properties\":[{\"name\":\"inputOutput\",\"type\":\"InputOutput\"},{\"name\":\"connectorId\",\"type\":\"String\"},{\"name\":\"inputParameters\",\"isMany\":true,\"type\":\"InputParameter\"},{\"name\":\"outputParameters\",\"isMany\":true,\"type\":\"OutputParameter\"}]},{\"name\":\"InputOutputParameter\",\"properties\":[{\"name\":\"name\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"value\",\"isBody\":true,\"type\":\"String\"},{\"name\":\"definition\",\"type\":\"InputOutputParameterDefinition\"}]},{\"name\":\"InputOutputParameterDefinition\",\"isAbstract\":true},{\"name\":\"List\",\"superClass\":[\"InputOutputParameterDefinition\"],\"properties\":[{\"name\":\"items\",\"isMany\":true,\"type\":\"InputOutputParameterDefinition\"}]},{\"name\":\"Map\",\"superClass\":[\"InputOutputParameterDefinition\"],\"properties\":[{\"name\":\"entries\",\"isMany\":true,\"type\":\"Entry\"}]},{\"name\":\"Entry\",\"properties\":[{\"name\":\"key\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"value\",\"isBody\":true,\"type\":\"String\"},{\"name\":\"definition\",\"type\":\"InputOutputParameterDefinition\"}]},{\"name\":\"Value\",\"superClass\":[\"InputOutputParameterDefinition\"],\"properties\":[{\"name\":\"id\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"name\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"value\",\"isBody\":true,\"type\":\"String\"}]},{\"name\":\"Script\",\"superClass\":[\"InputOutputParameterDefinition\"],\"properties\":[{\"name\":\"scriptFormat\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"resource\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"value\",\"isBody\":true,\"type\":\"String\"}]},{\"name\":\"Field\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"camunda:ServiceTaskLike\",\"camunda:ExecutionListener\",\"camunda:TaskListener\"]},\"properties\":[{\"name\":\"name\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"expression\",\"type\":\"String\"},{\"name\":\"stringValue\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"string\",\"type\":\"String\"}]},{\"name\":\"InputParameter\",\"superClass\":[\"InputOutputParameter\"]},{\"name\":\"OutputParameter\",\"superClass\":[\"InputOutputParameter\"]},{\"name\":\"Collectable\",\"isAbstract\":true,\"extends\":[\"bpmn:MultiInstanceLoopCharacteristics\"],\"superClass\":[\"camunda:AsyncCapable\"],\"properties\":[{\"name\":\"collection\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"elementVariable\",\"isAttr\":true,\"type\":\"String\"}]},{\"name\":\"FailedJobRetryTimeCycle\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"camunda:AsyncCapable\",\"bpmn:MultiInstanceLoopCharacteristics\"]},\"properties\":[{\"name\":\"body\",\"isBody\":true,\"type\":\"String\"}]},{\"name\":\"ExecutionListener\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"bpmn:Task\",\"bpmn:ServiceTask\",\"bpmn:UserTask\",\"bpmn:BusinessRuleTask\",\"bpmn:ScriptTask\",\"bpmn:ReceiveTask\",\"bpmn:ManualTask\",\"bpmn:ExclusiveGateway\",\"bpmn:SequenceFlow\",\"bpmn:ParallelGateway\",\"bpmn:InclusiveGateway\",\"bpmn:EventBasedGateway\",\"bpmn:StartEvent\",\"bpmn:IntermediateCatchEvent\",\"bpmn:IntermediateThrowEvent\",\"bpmn:EndEvent\",\"bpmn:BoundaryEvent\",\"bpmn:CallActivity\",\"bpmn:SubProcess\",\"bpmn:Process\"]},\"properties\":[{\"name\":\"expression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"class\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"delegateExpression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"event\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"script\",\"type\":\"Script\"},{\"name\":\"fields\",\"type\":\"Field\",\"isMany\":true}]},{\"name\":\"TaskListener\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"bpmn:UserTask\"]},\"properties\":[{\"name\":\"expression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"class\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"delegateExpression\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"event\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"script\",\"type\":\"Script\"},{\"name\":\"fields\",\"type\":\"Field\",\"isMany\":true},{\"name\":\"id\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"eventDefinitions\",\"type\":\"bpmn:TimerEventDefinition\",\"isMany\":true}]},{\"name\":\"FormProperty\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"bpmn:StartEvent\",\"bpmn:UserTask\"]},\"properties\":[{\"name\":\"id\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"name\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"type\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"required\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"readable\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"writable\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"variable\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"expression\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"datePattern\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"default\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"values\",\"type\":\"Value\",\"isMany\":true}]},{\"name\":\"FormData\",\"superClass\":[\"Element\"],\"meta\":{\"allowedIn\":[\"bpmn:StartEvent\",\"bpmn:UserTask\"]},\"properties\":[{\"name\":\"fields\",\"type\":\"FormField\",\"isMany\":true},{\"name\":\"businessKey\",\"type\":\"String\",\"isAttr\":true}]},{\"name\":\"FormField\",\"superClass\":[\"Element\"],\"properties\":[{\"name\":\"id\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"label\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"type\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"datePattern\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"defaultValue\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"properties\",\"type\":\"Properties\"},{\"name\":\"validation\",\"type\":\"Validation\"},{\"name\":\"values\",\"type\":\"Value\",\"isMany\":true}]},{\"name\":\"Validation\",\"superClass\":[\"Element\"],\"properties\":[{\"name\":\"constraints\",\"type\":\"Constraint\",\"isMany\":true}]},{\"name\":\"Constraint\",\"superClass\":[\"Element\"],\"properties\":[{\"name\":\"name\",\"type\":\"String\",\"isAttr\":true},{\"name\":\"config\",\"type\":\"String\",\"isAttr\":true}]},{\"name\":\"ConditionalEventDefinitionExtension\",\"isAbstract\":true,\"extends\":[\"bpmn:ConditionalEventDefinition\"],\"properties\":[{\"name\":\"variableName\",\"isAttr\":true,\"type\":\"String\"},{\"name\":\"variableEvents\",\"isAttr\":true,\"type\":\"String\"}]}],\"emumerations\":[]}');\n\n//# sourceURL=webpack://bpmn-js-example-properties-panel/./node_modules/camunda-bpmn-moddle/resources/camunda.json?");
  
  /***/ })
  
  /******/ 	});
  /************************************************************************/
  /******/ 	// The module cache
  /******/ 	var __webpack_module_cache__ = {};
  /******/ 	
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/ 		// Check if module is in cache
  /******/ 		var cachedModule = __webpack_module_cache__[moduleId];
  /******/ 		if (cachedModule !== undefined) {
  /******/ 			return cachedModule.exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = __webpack_module_cache__[moduleId] = {
  /******/ 			id: moduleId,
  /******/ 			loaded: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/ 	
  /******/ 		// Execute the module function
  /******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/ 	
  /******/ 		// Flag the module as loaded
  /******/ 		module.loaded = true;
  /******/ 	
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/ 	
  /************************************************************************/
  /******/ 	/* webpack/runtime/compat get default export */
  /******/ 	(() => {
  /******/ 		// getDefaultExport function for compatibility with non-harmony modules
  /******/ 		__webpack_require__.n = (module) => {
  /******/ 			var getter = module && module.__esModule ?
  /******/ 				() => (module['default']) :
  /******/ 				() => (module);
  /******/ 			__webpack_require__.d(getter, { a: getter });
  /******/ 			return getter;
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/define property getters */
  /******/ 	(() => {
  /******/ 		// define getter functions for harmony exports
  /******/ 		__webpack_require__.d = (exports, definition) => {
  /******/ 			for(var key in definition) {
  /******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  /******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  /******/ 				}
  /******/ 			}
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/global */
  /******/ 	(() => {
  /******/ 		__webpack_require__.g = (function() {
  /******/ 			if (typeof globalThis === 'object') return globalThis;
  /******/ 			try {
  /******/ 				return this || new Function('return this')();
  /******/ 			} catch (e) {
  /******/ 				if (typeof window === 'object') return window;
  /******/ 			}
  /******/ 		})();
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/hasOwnProperty shorthand */
  /******/ 	(() => {
  /******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/make namespace object */
  /******/ 	(() => {
  /******/ 		// define __esModule on exports
  /******/ 		__webpack_require__.r = (exports) => {
  /******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  /******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  /******/ 			}
  /******/ 			Object.defineProperty(exports, '__esModule', { value: true });
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /******/ 	/* webpack/runtime/node module decorator */
  /******/ 	(() => {
  /******/ 		__webpack_require__.nmd = (module) => {
  /******/ 			module.paths = [];
  /******/ 			if (!module.children) module.children = [];
  /******/ 			return module;
  /******/ 		};
  /******/ 	})();
  /******/ 	
  /************************************************************************/
  /******/ 	
  /******/ 	// startup
  /******/ 	// Load entry module and return exports
  /******/ 	// This entry module can't be inlined because the eval devtool is used.
  /******/ 	var __webpack_exports__ = __webpack_require__("./src/app.js");
  /******/ 	
  /******/ })()
  ;