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 '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\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 <{templateId}> 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 '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\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. \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 (&) as well as\n * hex (ય) and decimal (ӏ) 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 '&': '&',\n '<': '<',\n '>': '>',\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");
/******/
/******/ })()
;