index.esm.js 677 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398
  1. import { useContext, useState, useEffect, useMemo, useCallback } from '@bpmn-io/properties-panel/preact/hooks';
  2. import { reduce, isArray, find, forEach, sortBy, without, isDefined, isUndefined, has, findIndex, filter, map, keys, flatten, groupBy } from 'min-dash';
  3. import { PropertiesPanel, DebounceInputModule, FeelPopupModule, usePrevious, SelectEntry, isCheckboxEntryEdited, isSelectEntryEdited, CheckboxEntry, isTextAreaEntryEdited, TextAreaEntry, isTextFieldEntryEdited, TextFieldEntry, Group, FeelEntry as FeelEntry$1, isFeelEntryEdited, isToggleSwitchEntryEdited, ToggleSwitchEntry, ListGroup, ListEntry, SimpleEntry, CollapsibleEntry } from '@bpmn-io/properties-panel';
  4. import { createContext, render } from '@bpmn-io/properties-panel/preact';
  5. import { getLabel } from 'bpmn-js/lib/features/label-editing/LabelUtil';
  6. import { is, getBusinessObject, isAny as isAny$1 } from 'bpmn-js/lib/util/ModelUtil';
  7. import { isInterrupting as isInterrupting$1, isEventSubProcess, isExpanded } from 'bpmn-js/lib/util/DiUtil';
  8. import React from '@bpmn-io/properties-panel/preact/compat';
  9. import { jsx, jsxs } from '@bpmn-io/properties-panel/preact/jsx-runtime';
  10. import { isUndo, isRedo } from 'diagram-js/lib/features/keyboard/KeyboardUtil';
  11. import { domify, query, event } from 'min-dom';
  12. import { isAny } from 'bpmn-js/lib/features/modeling/util/ModelingUtil';
  13. import Ids from 'ids';
  14. import { add } from 'diagram-js/lib/util/Collections';
  15. import { getVariablesForElement } from '@bpmn-io/extract-process-variables/zeebe';
  16. import { mutate } from 'array-move';
  17. import { getVariablesForScope } from '@bpmn-io/extract-process-variables';
  18. const BpmnPropertiesPanelContext = createContext({
  19. selectedElement: null,
  20. injector: null,
  21. getService() {
  22. return null;
  23. }
  24. });
  25. function useService(type, strict) {
  26. const {
  27. getService
  28. } = useContext(BpmnPropertiesPanelContext);
  29. return getService(type, strict);
  30. }
  31. function _extends$1o() { _extends$1o = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1o.apply(this, arguments); }
  32. var AssociationIcon = (({
  33. styles = {},
  34. ...props
  35. }) => /*#__PURE__*/React.createElement("svg", _extends$1o({
  36. width: "32",
  37. height: "32",
  38. xmlns: "http://www.w3.org/2000/svg"
  39. }, props), /*#__PURE__*/React.createElement("path", {
  40. stroke: "#000",
  41. strokeWidth: "2",
  42. fill: "none",
  43. strokeDasharray: "3.3,6",
  44. strokeLinecap: "square",
  45. d: "M1.5 30.5l29-29"
  46. })));
  47. function _extends$1n() { _extends$1n = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1n.apply(this, arguments); }
  48. var BusinessRuleTaskIcon = (({
  49. styles = {},
  50. ...props
  51. }) => /*#__PURE__*/React.createElement("svg", _extends$1n({
  52. xmlns: "http://www.w3.org/2000/svg",
  53. width: "32",
  54. height: "32"
  55. }, props), /*#__PURE__*/React.createElement("path", {
  56. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.296 7.398v12.665h16.87V7.398H5.296zm.718 4.386h15.433v3.44H9.985v-3.432h-.719v3.431H6.014v-3.44zm0 4.158h3.252v3.403H6.014v-3.403zm3.97 0h11.463v3.403H9.985v-3.403z"
  57. }), /*#__PURE__*/React.createElement("path", {
  58. d: "M6.079 8.209v3.587H21.44V8.209z"
  59. })));
  60. function _extends$1m() { _extends$1m = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1m.apply(this, arguments); }
  61. var CallActivityIcon = (({
  62. styles = {},
  63. ...props
  64. }) => /*#__PURE__*/React.createElement("svg", _extends$1m({
  65. xmlns: "http://www.w3.org/2000/svg",
  66. width: "32",
  67. height: "32"
  68. }, props), /*#__PURE__*/React.createElement("path", {
  69. d: "M24.978 3c3.761 0 6.89 2.979 7.018 6.695l.004.238V22.4c0 3.747-3.05 6.804-6.783 6.93l-.24.003H7.023c-3.761 0-6.89-2.978-7.018-6.695L0 22.4V9.933C0 6.187 3.05 3.13 6.783 3.004L7.023 3h17.955zm0 3.667H7.022c-1.842 0-3.255 1.344-3.35 3.079l-.005.187V22.4c0 1.761 1.35 3.167 3.16 3.262l.195.005L10 25.666V15h12v10.666h2.978c1.842 0 3.255-1.344 3.35-3.079l.005-.187V9.933c0-1.761-1.35-3.166-3.16-3.261l-.195-.005zm-3.732 9.087H10.754v9.912h10.491v-9.912zm-4.475 1.817v2.658h2.658v1.542H16.77v2.658H15.23V21.77H12.57V20.23h2.658V17.57h1.542z"
  70. })));
  71. function _extends$1l() { _extends$1l = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1l.apply(this, arguments); }
  72. var CollaborationIcon = (({
  73. styles = {},
  74. ...props
  75. }) => /*#__PURE__*/React.createElement("svg", _extends$1l({
  76. xmlns: "http://www.w3.org/2000/svg",
  77. width: "32",
  78. height: "32"
  79. }, props), /*#__PURE__*/React.createElement("g", {
  80. fillRule: "evenodd"
  81. }, /*#__PURE__*/React.createElement("path", {
  82. fillRule: "nonzero",
  83. d: "M0 0v8.62h32V0H0zm1.655 7.054v-5.37h28.62v5.37H1.656zM0 23.38V32h32v-8.62H0zm1.655 7.054v-5.37h28.62v5.37H1.656z"
  84. }), /*#__PURE__*/React.createElement("path", {
  85. d: "M24 8l4 7h-8l4-7zm0 2l-2.28 4h4.56L24 10zM23.5 21h1v3h-1zM23.5 15h1v3h-1zM8 24l-4-7h8l-4 7zm0-2l2.28-4H5.72L8 22zM7.5 8h1v3h-1zM7.5 14h1v3h-1z"
  86. }))));
  87. function _extends$1k() { _extends$1k = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1k.apply(this, arguments); }
  88. var ConditionalFlowIcon = (({
  89. styles = {},
  90. ...props
  91. }) => /*#__PURE__*/React.createElement("svg", _extends$1k({
  92. xmlns: "http://www.w3.org/2000/svg",
  93. width: "32",
  94. height: "32"
  95. }, props), /*#__PURE__*/React.createElement("path", {
  96. d: "M32 .041S20.42 5.95 14.537 8.713c1.26 1.15 2.432 2.392 3.648 3.588-5.703 5.78-3.15 3.303-8.087 8.316l-8.472 1.377L0 32l10.006-1.626.098-.598 1.279-7.873c4.975-5.052 2.403-2.555 8.118-8.346 1.218 1.214 2.43 2.435 3.648 3.648C26.29 11.018 32 .041 32 .041zM9.603 22.397L8.54 28.91 2.03 29.97l1.061-6.515 6.512-1.058z"
  97. })));
  98. function _extends$1j() { _extends$1j = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1j.apply(this, arguments); }
  99. var ConnectionIcon = (({
  100. styles = {},
  101. ...props
  102. }) => /*#__PURE__*/React.createElement("svg", _extends$1j({
  103. xmlns: "http://www.w3.org/2000/svg",
  104. width: "32",
  105. height: "32"
  106. }, props), /*#__PURE__*/React.createElement("path", {
  107. d: "M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L0 30.734 1.325 32l18.08-18.32c1.227 1.223 2.448 2.453 3.676 3.676C26.247 11.12 32 .06 32 .06z"
  108. })));
  109. function _extends$1i() { _extends$1i = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1i.apply(this, arguments); }
  110. var DataInputOutputAssociationIcon = (({
  111. styles = {},
  112. ...props
  113. }) => /*#__PURE__*/React.createElement("svg", _extends$1i({
  114. width: "32",
  115. height: "32",
  116. xmlns: "http://www.w3.org/2000/svg"
  117. }, props), /*#__PURE__*/React.createElement("path", {
  118. stroke: "#000",
  119. strokeWidth: "2",
  120. strokeLinecap: "round",
  121. strokeDasharray: "1.1,4.3",
  122. d: "M1.5 30.5L27 5"
  123. }), /*#__PURE__*/React.createElement("path", {
  124. d: "M31.803.197L26.5 16.107l-1.52-1.52 3.783-11.35-11.35 3.783-1.52-1.52z"
  125. })));
  126. function _extends$1h() { _extends$1h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1h.apply(this, arguments); }
  127. var DataInputIcon = (({
  128. styles = {},
  129. ...props
  130. }) => /*#__PURE__*/React.createElement("svg", _extends$1h({
  131. xmlns: "http://www.w3.org/2000/svg",
  132. width: "32",
  133. height: "32"
  134. }, props), /*#__PURE__*/React.createElement("path", {
  135. d: "M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354zm.808 1.868l3.711 3.487-3.71 3.487V9.329H7.888V7.723h4.283V5.039z"
  136. })));
  137. function _extends$1g() { _extends$1g = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1g.apply(this, arguments); }
  138. var DataObjectIcon = (({
  139. styles = {},
  140. ...props
  141. }) => /*#__PURE__*/React.createElement("svg", _extends$1g({
  142. xmlns: "http://www.w3.org/2000/svg",
  143. width: "32",
  144. height: "32"
  145. }, props), /*#__PURE__*/React.createElement("path", {
  146. d: "M21.345 0H4v32h24.512V7.36L21.345 0zM19.24 1.818v7.507h7.454v20.857H5.818V1.818H19.24zm1.818.493l5.06 5.196h-5.06V2.311z"
  147. })));
  148. function _extends$1f() { _extends$1f = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1f.apply(this, arguments); }
  149. var DataOutputIcon = (({
  150. styles = {},
  151. ...props
  152. }) => /*#__PURE__*/React.createElement("svg", _extends$1f({
  153. xmlns: "http://www.w3.org/2000/svg",
  154. width: "32",
  155. height: "32"
  156. }, props), /*#__PURE__*/React.createElement("path", {
  157. d: "M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354z"
  158. })));
  159. function _extends$1e() { _extends$1e = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1e.apply(this, arguments); }
  160. var DataStoreIcon = (({
  161. styles = {},
  162. ...props
  163. }) => /*#__PURE__*/React.createElement("svg", _extends$1e({
  164. xmlns: "http://www.w3.org/2000/svg",
  165. width: "32",
  166. height: "32"
  167. }, props), /*#__PURE__*/React.createElement("path", {
  168. d: "M16.008 1c-3.712 0-7.417.306-10.319.939-1.45.316-2.7.71-3.68 1.226C1.065 3.662.297 4.304.061 5.23a.823.823 0 00-.035.15L0 5.502l.017.084c-.012 7.41 0 14.46 0 22.08l.017.082c.203.985.995 1.656 1.975 2.172.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.98-.516 1.772-1.187 1.975-2.172l.017-.082V5.541a.825.825 0 000-.106v-.016l-.002-.013a.823.823 0 00-.046-.197c-.244-.916-1.007-1.55-1.943-2.044-.98-.516-2.23-.91-3.68-1.226C23.423 1.306 19.718 1 16.006 1zm0 1.646c3.62 0 7.245.308 9.968.901 1.36.297 2.497.67 3.263 1.074.612.323.932.643 1.063.882-.131.24-.451.56-1.063.882-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.901-1.361-.297-2.497-.67-3.264-1.074-.611-.322-.931-.642-1.062-.882.13-.24.451-.56 1.062-.882.767-.403 1.903-.777 3.264-1.074 2.723-.593 6.348-.9 9.968-.9zM1.664 7.647c.112.067.227.132.345.194.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.119-.062.234-.127.346-.194v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.671-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.187c.112.067.227.132.345.195.98.516 2.23.91 3.68 1.226 2.902.632 6.607.938 10.319.938 3.711 0 7.416-.306 10.318-.938 1.451-.317 2.701-.71 3.68-1.226.119-.063.234-.128.346-.195v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.67-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.188c.112.067.227.131.345.194.98.516 2.23.91 3.68 1.226 2.902.633 6.607.939 10.319.939 3.711 0 7.416-.306 10.318-.94 1.451-.316 2.701-.709 3.68-1.225.119-.063.234-.127.346-.194V27.47c-.08.245-.398.618-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.9-9.968.9-3.62 0-7.245-.306-9.968-.9-1.361-.297-2.497-.67-3.264-1.074-.714-.377-1.032-.75-1.112-.995V16.022z"
  169. })));
  170. function _extends$1d() { _extends$1d = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1d.apply(this, arguments); }
  171. var DefaultFlowIcon = (({
  172. styles = {},
  173. ...props
  174. }) => /*#__PURE__*/React.createElement("svg", _extends$1d({
  175. xmlns: "http://www.w3.org/2000/svg",
  176. width: "32",
  177. height: "32"
  178. }, props), /*#__PURE__*/React.createElement("path", {
  179. d: "M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L6.84 23.804H.046v1.755h5.063L0 30.735 1.325 32l6.357-6.441h7.145v-1.756H9.414l9.99-10.123c1.228 1.223 2.45 2.453 3.677 3.676C26.247 11.12 32 .06 32 .06z"
  180. })));
  181. function _extends$1c() { _extends$1c = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1c.apply(this, arguments); }
  182. var EndEventCancelIcon = (({
  183. styles = {},
  184. ...props
  185. }) => /*#__PURE__*/React.createElement("svg", _extends$1c({
  186. xmlns: "http://www.w3.org/2000/svg",
  187. width: "32",
  188. height: "32"
  189. }, props), /*#__PURE__*/React.createElement("path", {
  190. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-3.955 3.918L8.94 12.072l3.985 3.985-3.913 3.913 3.048 3.047 3.913-3.913 3.987 3.987 3.096-3.096-3.987-3.987 3.913-3.913-3.047-3.048-3.913 3.913-3.985-3.985z"
  191. })));
  192. function _extends$1b() { _extends$1b = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1b.apply(this, arguments); }
  193. var EndEventCompensationIcon = (({
  194. styles = {},
  195. ...props
  196. }) => /*#__PURE__*/React.createElement("svg", _extends$1b({
  197. xmlns: "http://www.w3.org/2000/svg",
  198. width: "32",
  199. height: "32"
  200. }, props), /*#__PURE__*/React.createElement("path", {
  201. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-.56 5.744l-7.407 5.23 7.408 5.234v-5.057c2.384 1.687 4.771 3.371 7.157 5.057V10.801l-7.157 5.054v-5.054z"
  202. })));
  203. function _extends$1a() { _extends$1a = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1a.apply(this, arguments); }
  204. var EndEventErrorIcon = (({
  205. styles = {},
  206. ...props
  207. }) => /*#__PURE__*/React.createElement("svg", _extends$1a({
  208. xmlns: "http://www.w3.org/2000/svg",
  209. width: "32",
  210. height: "32"
  211. }, props), /*#__PURE__*/React.createElement("path", {
  212. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm6.132 4.166l-3.633 7.363-4.516-5.874-4.102 12.131 4.599-5.91 4.743 5.427 2.909-13.137z"
  213. })));
  214. function _extends$19() { _extends$19 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$19.apply(this, arguments); }
  215. var EndEventEscalationIcon = (({
  216. styles = {},
  217. ...props
  218. }) => /*#__PURE__*/React.createElement("svg", _extends$19({
  219. xmlns: "http://www.w3.org/2000/svg",
  220. width: "32",
  221. height: "32"
  222. }, props), /*#__PURE__*/React.createElement("path", {
  223. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.9c-1.672 4.653-2.733 9.5-4.406 14.153 1.535-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.497-4.71-2.91-9.445-4.406-14.155z"
  224. })));
  225. function _extends$18() { _extends$18 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$18.apply(this, arguments); }
  226. var EndEventLinkIcon = (({
  227. styles = {},
  228. ...props
  229. }) => /*#__PURE__*/React.createElement("svg", _extends$18({
  230. xmlns: "http://www.w3.org/2000/svg",
  231. width: "32",
  232. height: "32"
  233. }, props), /*#__PURE__*/React.createElement("path", {
  234. d: "M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm1.78 4.065v3.555H9.779v6.713h7.994v3.554l5.828-6.91-5.828-6.912z"
  235. })));
  236. function _extends$17() { _extends$17 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$17.apply(this, arguments); }
  237. var EndEventMessageIcon = (({
  238. styles = {},
  239. ...props
  240. }) => /*#__PURE__*/React.createElement("svg", _extends$17({
  241. xmlns: "http://www.w3.org/2000/svg",
  242. width: "32",
  243. height: "32"
  244. }, props), /*#__PURE__*/React.createElement("path", {
  245. d: "M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-5.91 5.448l6.041 4.9 6.04-4.9H10.084zm-1.34 1.137v9.92h14.513v-9.718l-7.132 5.786-7.381-5.988z"
  246. })));
  247. function _extends$16() { _extends$16 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$16.apply(this, arguments); }
  248. var EndEventMultipleIcon = (({
  249. styles = {},
  250. ...props
  251. }) => /*#__PURE__*/React.createElement("svg", _extends$16({
  252. xmlns: "http://www.w3.org/2000/svg",
  253. width: "32",
  254. height: "32"
  255. }, props), /*#__PURE__*/React.createElement("path", {
  256. d: "M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.529 18.529 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.011 3.039l-7.619 5.53 2.91 8.95h9.418l2.91-8.95-7.619-5.53z"
  257. })));
  258. function _extends$15() { _extends$15 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$15.apply(this, arguments); }
  259. var EndEventNoneIcon = (({
  260. styles = {},
  261. ...props
  262. }) => /*#__PURE__*/React.createElement("svg", _extends$15({
  263. xmlns: "http://www.w3.org/2000/svg",
  264. width: "32",
  265. height: "32"
  266. }, props), /*#__PURE__*/React.createElement("path", {
  267. d: "M15.84.042C8.654-.01 1.913 5.437.4 12.454-1.057 18.62 1.554 25.495 6.784 29.09c5.076 3.636 12.31 3.92 17.59.544 5.309-3.251 8.435-9.744 7.445-15.921C30.91 7.307 25.795 1.738 19.442.422a16.064 16.064 0 00-3.602-.38zm.382 5.01c5.28-.017 10.13 4.353 10.669 9.61.687 5.025-2.552 10.281-7.423 11.792-4.754 1.617-10.486-.447-12.962-4.856-2.74-4.575-1.574-11.094 2.768-14.27a11.05 11.05 0 016.948-2.276z"
  268. })));
  269. function _extends$14() { _extends$14 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$14.apply(this, arguments); }
  270. var EndEventSignalIcon = (({
  271. styles = {},
  272. ...props
  273. }) => /*#__PURE__*/React.createElement("svg", _extends$14({
  274. xmlns: "http://www.w3.org/2000/svg",
  275. width: "32",
  276. height: "32"
  277. }, props), /*#__PURE__*/React.createElement("path", {
  278. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.492c-2.261 4.07-4.532 8.136-6.797 12.204h13.595L15.999 8.55z"
  279. })));
  280. function _extends$13() { _extends$13 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$13.apply(this, arguments); }
  281. var EndEventTerminateIcon = (({
  282. styles = {},
  283. ...props
  284. }) => /*#__PURE__*/React.createElement("svg", _extends$13({
  285. xmlns: "http://www.w3.org/2000/svg",
  286. width: "32",
  287. height: "32"
  288. }, props), /*#__PURE__*/React.createElement("path", {
  289. d: "M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 2.859c-5.264-.2-9.495 5.551-7.755 10.516 1.366 5.085 8.108 7.436 12.339 4.301 4.455-2.807 4.708-9.943.462-13.058A8.128 8.128 0 0016 7.915z"
  290. })));
  291. function _extends$12() { _extends$12 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$12.apply(this, arguments); }
  292. var EventSubProcessExpandedIcon = (({
  293. styles = {},
  294. ...props
  295. }) => /*#__PURE__*/React.createElement("svg", _extends$12({
  296. xmlns: "http://www.w3.org/2000/svg",
  297. width: "32",
  298. height: "32"
  299. }, props), /*#__PURE__*/React.createElement("path", {
  300. d: "M7.295 4.78h1.779V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.78V4.78zm3.557 0h1.78V3.003h-1.78V4.78zm3.558 0h1.78V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.779V4.78zm3.558 0c.55.014 1.106-.034 1.654.045l.245-1.762c-.629-.096-1.266-.05-1.9-.061V4.78zM5.732 3.004a5.933 5.933 0 00-.915.093c.111.582.226 1.164.315 1.75.358-.101.947.098.746-.483-.096-.382.164-1.208-.146-1.36zm22.372 2.281c.427.234.812.547 1.13.915.42-.4 1.002-.777 1.33-1.18a5.863 5.863 0 00-1.593-1.289l-.867 1.554zm-25.27-1.44c-.587.354-1.11.811-1.539 1.345.47.333.96.86 1.417 1.077.299-.362.66-.673 1.065-.913-.328-.493-.55-1.055-.944-1.509zM30.515 7.26c-.563.046-.557.342-.378.784.154.25-.097.862.25.85.525-.023 1.14.043 1.612-.032a5.891 5.891 0 00-.362-2.027l-1.122.425zM.268 7.114A6.042 6.042 0 000 9.052h1.78c-.013-.5.047-1.003.208-1.478L.296 7.027l-.026.079-.002.008zM30.22 12.45H32v-1.779h-1.779v1.779zm-30.22.16h1.78v-1.779H0v1.78zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.779H0v1.779zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.78H0v1.78zm30.22 3.397H32v-1.779h-1.779v1.78zm-30.22.16h1.78v-1.778H0v1.778zm30.137 1.47a4.059 4.059 0 01-.522 1.32c.506.283 1.046.715 1.53.908a5.836 5.836 0 00.744-1.918c-.576-.094-1.209-.264-1.752-.31zm-29.984.51c.157.676.435 1.325.82 1.904l1.486-.977a4.065 4.065 0 01-.577-1.347l-1.73.42zm28.427 1.943c-.371.277-.79.49-1.234.627l.548 1.693a5.84 5.84 0 001.835-.96l-1.082-1.412-.066.05-.001.002zm-26.164 1.47c.567.413 1.21.722 1.886.907.14-.569.343-1.175.444-1.722a4.062 4.062 0 01-1.283-.624l-1.047 1.438zm3.88 1.119h1.779v-1.78h-1.78v1.78zm3.55 0h1.787v-1.78H9.846v1.78zm3.565 0h1.78v-1.78h-1.78v1.78zm3.558 0h1.78v-1.78h-1.78v1.78zm3.451 0h1.743v-1.78h-1.743v1.78zm3.665 0h1.779v-1.78h-1.78v1.78zm-1.922-.545V16.776H9.846V29.25h12.318zM10.967 17.905h10.068V27.97H10.967V17.905zm1.336 3.998v1.711h7.396v-1.711h-7.396z",
  301. opacity: ".97"
  302. })));
  303. function _extends$11() { _extends$11 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$11.apply(this, arguments); }
  304. var GatewayComplexIcon = (({
  305. styles = {},
  306. ...props
  307. }) => /*#__PURE__*/React.createElement("svg", _extends$11({
  308. xmlns: "http://www.w3.org/2000/svg",
  309. width: "32",
  310. height: "32"
  311. }, props), /*#__PURE__*/React.createElement("path", {
  312. d: "M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.327 6.79v.007l-.145.027-.118.08-.083.123-.028.145v4.954L11.793 10.8l-.125-.08-.14-.029-.144.027-.122.082-.46.46-.085.125-.026.142.028.14.08.125 3.505 3.505H9.347l-.001-.002-.145.032-.118.08-.083.122-.028.146v.652l.029.147.082.119.12.08.144.032h4.956L10.8 20.207v-.001l-.084.124-.026.142.028.14.08.124.46.461.126.082.14.029.143-.027.124-.084L15.3 17.69v4.964-.001l.028.147.082.12.12.08.144.031h.652l.148-.03.118-.08.083-.12.028-.146v-4.962l3.505 3.505.126.082.14.027.142-.027.124-.084.461-.46.083-.123s.028-.144.027-.146l-.028-.14-.082-.126-3.496-3.496h4.948l.148-.03.119-.08.082-.12.028-.147v-.652l-.028-.145-.083-.122-.119-.08s-.147-.033-.147-.031h-4.964l3.512-3.512.082-.122.029-.144-.028-.14-.084-.124-.46-.461-.123-.082-.14-.027-.145.027-.122.082-3.507 3.507V9.348l-.028-.146-.082-.122-.12-.08-.147-.029h-.652z"
  313. })));
  314. function _extends$10() { _extends$10 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$10.apply(this, arguments); }
  315. var GatewayEventBasedIcon = (({
  316. styles = {},
  317. ...props
  318. }) => /*#__PURE__*/React.createElement("svg", _extends$10({
  319. xmlns: "http://www.w3.org/2000/svg",
  320. width: "32",
  321. height: "32"
  322. }, props), /*#__PURE__*/React.createElement("path", {
  323. d: "M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm0 5.876l-.254.185-7.377 5.355 2.915 8.964h9.433l2.915-8.964-7.631-5.54zm0 1.07l6.614 4.8-2.526 7.769h-8.175l-2.526-7.768 6.614-4.802z"
  324. })));
  325. function _extends$$() { _extends$$ = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$$.apply(this, arguments); }
  326. var GatewayNoneIcon = (({
  327. styles = {},
  328. ...props
  329. }) => /*#__PURE__*/React.createElement("svg", _extends$$({
  330. xmlns: "http://www.w3.org/2000/svg",
  331. width: "32",
  332. height: "32"
  333. }, props), /*#__PURE__*/React.createElement("path", {
  334. d: "M.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.373a1.313 1.313 0 00-1.833 0L.373 15.084zm1.806.918L16 2.182l13.821 13.82L16 29.823 2.179 16.003z"
  335. })));
  336. function _extends$_() { _extends$_ = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$_.apply(this, arguments); }
  337. var GatewayOrIcon = (({
  338. styles = {},
  339. ...props
  340. }) => /*#__PURE__*/React.createElement("svg", _extends$_({
  341. xmlns: "http://www.w3.org/2000/svg",
  342. width: "32",
  343. height: "32"
  344. }, props), /*#__PURE__*/React.createElement("path", {
  345. d: "M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm0 6.379a7.447 7.447 0 00-7.44 7.441A7.447 7.447 0 0016 23.443 7.447 7.447 0 0023.443 16a7.447 7.447 0 00-7.441-7.441zm0 .825a6.61 6.61 0 016.617 6.616A6.61 6.61 0 0116 22.618 6.61 6.61 0 019.385 16 6.61 6.61 0 0116 9.385z"
  346. })));
  347. function _extends$Z() { _extends$Z = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Z.apply(this, arguments); }
  348. var GatewayParallelIcon = (({
  349. styles = {},
  350. ...props
  351. }) => /*#__PURE__*/React.createElement("svg", _extends$Z({
  352. xmlns: "http://www.w3.org/2000/svg",
  353. width: "32",
  354. height: "32"
  355. }, props), /*#__PURE__*/React.createElement("path", {
  356. d: "M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.377 5.708l-.168.032-.136.092-.096.14-.032.168v6.868h-6.87l-.002-.002-.166.037-.137.092v-.002l-.095.141-.033.167v.753s.032.169.034.17l.094.138.138.092.167.036h6.87v6.867l-.001-.001.033.17.095.138.138.092s.166.035.167.037h.752l.17-.036.137-.092.095-.137.033-.17v-6.867h6.868l.17-.035.137-.092.095-.137.033-.17v-.753s-.033-.165-.032-.167l-.096-.14-.138-.093s-.17-.037-.17-.035H16.81V8.323l-.033-.168-.094-.14-.138-.092-.17-.034h-.752z"
  357. })));
  358. function _extends$Y() { _extends$Y = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Y.apply(this, arguments); }
  359. var GatewayXorIcon = (({
  360. styles = {},
  361. ...props
  362. }) => /*#__PURE__*/React.createElement("svg", _extends$Y({
  363. xmlns: "http://www.w3.org/2000/svg",
  364. width: "32",
  365. height: "32"
  366. }, props), /*#__PURE__*/React.createElement("path", {
  367. d: "M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm-5.162 7.69l-.166.032-.141.096-.532.532s-.097.142-.097.144l-.03.164.032.162.093.144 4.857 4.858-4.855 4.855v-.001L9.9 21l-.03.164.032.162s.093.142.093.144l.531.532.146.095.162.032.164-.03.144-.097 4.855-4.856 4.857 4.857.145.095.162.032.164-.03.144-.097.531-.532.095-.14.033-.168-.033-.162-.095-.146L17.144 16 22 11.144l.095-.14.033-.166-.033-.163-.097-.144-.532-.532-.14-.095-.163-.032-.166.032-.141.095L16 14.855l-4.858-4.858v-.002l-.144-.092-.162-.032z"
  368. })));
  369. function _extends$X() { _extends$X = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$X.apply(this, arguments); }
  370. var GroupIcon = (({
  371. styles = {},
  372. ...props
  373. }) => /*#__PURE__*/React.createElement("svg", _extends$X({
  374. xmlns: "http://www.w3.org/2000/svg",
  375. width: "32",
  376. height: "32"
  377. }, props), /*#__PURE__*/React.createElement("path", {
  378. d: "M6.34.016c-2.333.025-4.684 1.77-5.29 4.17C.608 5.848.88 7.608.804 9.314v2.922h2.041c.038-2.332-.076-4.673.062-7C3.14 3.355 4.869 1.938 6.643 2.04h8.956V.009c-3.086 0-6.173-.02-9.258 0v.007zm13.094 2.023h1.92V.009h-1.92v2.03zm5.756 0c1.265-.069 2.66.045 3.602 1.055 1.036.983 1.201 2.523 1.122 3.91v6.313h2.078c-.03-2.677.062-5.36-.047-8.032-.17-2.743-2.62-5.111-5.215-5.236-.511-.064-1.027-.02-1.54-.033v2.023zM.803 18.319h2.041v-2.026H.804v2.026zm29.11 1.084h2.08v-2.03h-2.08v2.03zM.804 26.148c.004 2.218 1.393 4.366 3.313 5.28 1.728.853 3.681.448 5.521.544.43-.112 1.29.231 1.435-.183v-1.847c-1.788-.043-3.584.094-5.365-.082-1.67-.354-2.919-2.048-2.863-3.844v-3.644H.804v3.777zm29.11-.068c.04 1.961-1.508 3.787-3.381 3.842-1.954.06-3.914.02-5.87.026v2.03c2.118-.042 4.242.08 6.355-.063 2.524-.264 4.818-2.644 4.94-5.323.08-1.039.014-2.085.035-3.126h-2.078v2.613zm-15.006 5.898h1.92v-2.03h-1.92v2.03z"
  379. })));
  380. function _extends$W() { _extends$W = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$W.apply(this, arguments); }
  381. var IntermediateEventCatchCancelIcon = (({
  382. styles = {},
  383. ...props
  384. }) => /*#__PURE__*/React.createElement("svg", _extends$W({
  385. xmlns: "http://www.w3.org/2000/svg",
  386. width: "32",
  387. height: "32"
  388. }, props), /*#__PURE__*/React.createElement("path", {
  389. d: "M15.975.049C8.195-.111.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.454 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 5.021zm-3.956 3.946l-3.096 3.097 3.985 3.985-3.913 3.913 3.047 3.048 3.913-3.913 3.988 3.987 3.097-3.096L19.076 16l3.914-3.913-3.048-3.048-3.913 3.913-3.986-3.985zm-.002 1.222l3.988 3.987 3.913-3.913 1.826 1.826-3.913 3.913 3.985 3.986-1.873 1.873-3.985-3.985-3.913 3.913-1.827-1.827 3.914-3.913-3.988-3.987 1.873-1.873z"
  390. })));
  391. function _extends$V() { _extends$V = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$V.apply(this, arguments); }
  392. var IntermediateEventCatchCompensationIcon = (({
  393. styles = {},
  394. ...props
  395. }) => /*#__PURE__*/React.createElement("svg", _extends$V({
  396. xmlns: "http://www.w3.org/2000/svg",
  397. width: "32",
  398. height: "32"
  399. }, props), /*#__PURE__*/React.createElement("path", {
  400. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.793l-7.157 5.055v-5.055zm-.865 1.665v7.125l-5.048-3.562 5.048-3.563zm7.161 0v7.132l-5.048-3.566 5.048-3.566z"
  401. })));
  402. function _extends$U() { _extends$U = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$U.apply(this, arguments); }
  403. var IntermediateEventCatchConditionIcon = (({
  404. styles = {},
  405. ...props
  406. }) => /*#__PURE__*/React.createElement("svg", _extends$U({
  407. xmlns: "http://www.w3.org/2000/svg",
  408. width: "32",
  409. height: "32"
  410. }, props), /*#__PURE__*/React.createElement("path", {
  411. d: "M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-5.352 4.266V22.761h10.716V9.279H10.642zm.863.866h8.987v11.75h-8.987v-11.75zm.927 1.323v.862h7.133v-.862h-7.133zm0 2.602v.866h7.133v-.866h-7.133zm0 3.008v.862h7.133v-.862h-7.133zm0 2.717v.863h7.133v-.863h-7.133z"
  412. })));
  413. function _extends$T() { _extends$T = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$T.apply(this, arguments); }
  414. var IntermediateEventCatchErrorIcon = (({
  415. styles = {},
  416. ...props
  417. }) => /*#__PURE__*/React.createElement("svg", _extends$T({
  418. xmlns: "http://www.w3.org/2000/svg",
  419. width: "32",
  420. height: "32"
  421. }, props), /*#__PURE__*/React.createElement("path", {
  422. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm6.132 4.194c-1.21 2.455-2.422 4.91-3.633 7.364l-4.516-5.875-4.103 12.133 4.6-5.912c1.58 1.81 3.162 3.619 4.744 5.429L22.13 9.215zM14.383 13.1l4.295 5.445 1.073-2.387-1.027 4.131-4.384-5.157-1.778 2.75 1.821-4.782z"
  423. })));
  424. function _extends$S() { _extends$S = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$S.apply(this, arguments); }
  425. var IntermediateEventCatchEscalationIcon = (({
  426. styles = {},
  427. ...props
  428. }) => /*#__PURE__*/React.createElement("svg", _extends$S({
  429. xmlns: "http://www.w3.org/2000/svg",
  430. width: "32",
  431. height: "32"
  432. }, props), /*#__PURE__*/React.createElement("path", {
  433. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156zm.032 2.929c.822 2.586 1.598 5.186 2.42 7.771l-2.42-2.612c-.682.597-2.452 2.884-2.338 2.388.87-2.487 1.447-5.067 2.338-7.547z"
  434. })));
  435. function _extends$R() { _extends$R = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$R.apply(this, arguments); }
  436. var IntermediateEventCatchLinkIcon = (({
  437. styles = {},
  438. ...props
  439. }) => /*#__PURE__*/React.createElement("svg", _extends$R({
  440. xmlns: "http://www.w3.org/2000/svg",
  441. width: "32",
  442. height: "32"
  443. }, props), /*#__PURE__*/React.createElement("path", {
  444. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912zm.974 2.584l3.61 4.295-3.61 4.294v-1.933h-7.88v-4.688h7.88v-1.968z"
  445. })));
  446. function _extends$Q() { _extends$Q = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$Q.apply(this, arguments); }
  447. var IntermediateEventCatchMessageIcon = (({
  448. styles = {},
  449. ...props
  450. }) => /*#__PURE__*/React.createElement("svg", _extends$Q({
  451. xmlns: "http://www.w3.org/2000/svg",
  452. width: "32",
  453. height: "32"
  454. }, props), /*#__PURE__*/React.createElement("path", {
  455. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-7.245 5.475v11.06h14.502v-11.06H8.754zm3.222 1.728h8.057c-1.427.878-2.854 2.806-4.281 3.016l-3.776-3.016zm9.554 1.017v6.587H10.48V13.24l5.524 4.414 5.526-4.414z"
  456. })));
  457. function _extends$P() { _extends$P = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$P.apply(this, arguments); }
  458. var IntermediateEventCatchMultipleIcon = (({
  459. styles = {},
  460. ...props
  461. }) => /*#__PURE__*/React.createElement("svg", _extends$P({
  462. xmlns: "http://www.w3.org/2000/svg",
  463. width: "32",
  464. height: "32"
  465. }, props), /*#__PURE__*/React.createElement("path", {
  466. d: "M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.531 2.91 8.95h9.42l2.91-8.95-7.62-5.53zm0 1.067l6.604 4.794-2.523 7.757h-8.162l-2.522-7.757 6.603-4.794z"
  467. })));
  468. function _extends$O() { _extends$O = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$O.apply(this, arguments); }
  469. var IntermediateEventCatchNonInterruptingConditionIcon = (({
  470. styles = {},
  471. ...props
  472. }) => /*#__PURE__*/React.createElement("svg", _extends$O({
  473. xmlns: "http://www.w3.org/2000/svg",
  474. width: "32",
  475. height: "32"
  476. }, props), /*#__PURE__*/React.createElement("path", {
  477. d: "M10.638 9.563V23.056h10.724V9.563H10.638zm.863.866h8.995v11.76H11.5V10.43zm.928 1.324v.862h7.139v-.862h-7.14zm0 2.605v.866h7.139v-.866h-7.14zm0 3.01v.863h7.139v-.863h-7.14zm0 2.72v.863h7.139v-.864h-7.14zM15.999.308h-.004l-.188.001h-.011l-.188.004h-.011L15.41.32h-.011l-.187.008h-.005L15.2.33l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.37h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003.178-.001h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 1.023l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.62h-.005l-.005-.002-.182-.035h-.006L18.938.58l-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.43 17.783.41l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.37h-.005L17.38.368l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.328h-.011L16.6.32h-.011l-.187-.006h-.011L16.204.31h-.011L16.005.31H16zm9.016 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zm-18.381.344l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003L4.682 5l-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.595h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01L16.32 3.6h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 13.135l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187V16.7l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zm-30.21.572l-.161.001-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158-.074-.155-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178-.001-.177v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057-.159-.028zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14v-.005l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 23.019l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 27.127l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z"
  478. })));
  479. function _extends$N() { _extends$N = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$N.apply(this, arguments); }
  480. var IntermediateEventCatchNonInterruptingEscalationIcon = (({
  481. styles = {},
  482. ...props
  483. }) => /*#__PURE__*/React.createElement("svg", _extends$N({
  484. xmlns: "http://www.w3.org/2000/svg",
  485. width: "32",
  486. height: "32"
  487. }, props), /*#__PURE__*/React.createElement("path", {
  488. d: "M16.012 9.222c-1.673 4.657-2.735 9.508-4.409 14.164 1.536-1.526 2.874-3.236 4.41-4.762l4.408 4.762c-1.497-4.712-2.911-9.451-4.409-14.164zm.032 2.93c.823 2.588 1.599 5.19 2.421 7.777l-2.42-2.614c-.683.598-2.454 2.886-2.34 2.39.871-2.489 1.448-5.07 2.34-7.552zM16.012.312c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"
  489. })));
  490. function _extends$M() { _extends$M = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$M.apply(this, arguments); }
  491. var IntermediateEventCatchNonInterruptingMessageIcon = (({
  492. styles = {},
  493. ...props
  494. }) => /*#__PURE__*/React.createElement("svg", _extends$M({
  495. xmlns: "http://www.w3.org/2000/svg",
  496. width: "32",
  497. height: "32"
  498. }, props), /*#__PURE__*/React.createElement("path", {
  499. d: "M8.742 10.464v11.072h14.516V10.464H8.742zm3.224 1.73h8.066a69569 69569 0 00-4.034 3.22l-4.032-3.22zm9.565 1.018v6.594H10.469v-6.593L16 17.63l5.532-4.419zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z"
  500. })));
  501. function _extends$L() { _extends$L = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$L.apply(this, arguments); }
  502. var IntermediateEventCatchNonInterruptingMultipleIcon = (({
  503. styles = {},
  504. ...props
  505. }) => /*#__PURE__*/React.createElement("svg", _extends$L({
  506. xmlns: "http://www.w3.org/2000/svg",
  507. width: "32",
  508. height: "32"
  509. }, props), /*#__PURE__*/React.createElement("path", {
  510. d: "M23.637 13.902l-7.625-5.535-7.624 5.535 2.912 8.956h9.425l2.912-8.956zm-1.017.33l-2.524 7.762H11.93l-2.524-7.762 6.607-4.796 6.608 4.796zM16.012.311c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"
  511. })));
  512. function _extends$K() { _extends$K = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$K.apply(this, arguments); }
  513. var IntermediateEventCatchNonInterruptingParallelIcon = (({
  514. styles = {},
  515. ...props
  516. }) => /*#__PURE__*/React.createElement("svg", _extends$K({
  517. xmlns: "http://www.w3.org/2000/svg",
  518. width: "32",
  519. height: "32"
  520. }, props), /*#__PURE__*/React.createElement("path", {
  521. d: "M13.51 9.081v4.428H9.08v4.982h4.428v4.428h4.982V18.49h4.428v-4.982H18.49V9.081h-4.982zm.83.83h3.32v4.428h4.429v3.322H17.66v4.428h-3.32v-4.454H9.91v-3.296h4.428V9.911zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z",
  522. opacity: ".98"
  523. })));
  524. function _extends$J() { _extends$J = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$J.apply(this, arguments); }
  525. var IntermediateEventCatchNonInterruptingSignalIcon = (({
  526. styles = {},
  527. ...props
  528. }) => /*#__PURE__*/React.createElement("svg", _extends$J({
  529. xmlns: "http://www.w3.org/2000/svg",
  530. width: "32",
  531. height: "32"
  532. }, props), /*#__PURE__*/React.createElement("path", {
  533. d: "M16.012 8.816L9.21 21.026h13.606l-6.803-12.21zm0 1.776l5.332 9.57H10.681l5.331-9.57zm0-10.281c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"
  534. })));
  535. function _extends$I() { _extends$I = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$I.apply(this, arguments); }
  536. var IntermediateEventCatchNonInterruptingTimerIcon = (({
  537. styles = {},
  538. ...props
  539. }) => /*#__PURE__*/React.createElement("svg", _extends$I({
  540. xmlns: "http://www.w3.org/2000/svg",
  541. width: "32",
  542. height: "32"
  543. }, props), /*#__PURE__*/React.createElement("path", {
  544. d: "M15.998 8.406c-3.018-.041-5.92 1.926-7.031 4.727-1.138 2.695-.51 6.012 1.537 8.103 1.99 2.141 5.268 2.93 8.014 1.927 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.88-4.3-7.137a7.552 7.552 0 00-3.288-.75zm0 1.384c2.759-.052 5.373 1.973 6.015 4.655.704 2.578-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.086-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86zm1.962 1.765l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.615c-.252-.14-.505-.278-.757-.417zm-1.965-8.268h-.158l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.048.12.047.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.138-.107-.121-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.005-.002-.006-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.141-.031-.006-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.001-.143-.026-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.01l-.148-.001h-.01zM10.357 4.66l-.156.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.004.003-.005.004-.11.096-.004.004-.004.003-.109.098-.004.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.003.004-.004.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.005-.086.117-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.029.15-.058.138-.085.119-.108.082-.106.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022-.16.008zm13.91 2.116l-.158.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.026.159.054.152.082.139.086.102.09.09.094.098.093.099.092.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.115.068.117.067.115.065.118.064.117.062.118.061.12.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.049.127.046.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.086.137.109.119.129.096.145.07.155.043.16.013.161-.017.155-.046.143-.074.126-.1.106-.122.082-.138.055-.152.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.059-.132-.002-.005-.002-.004-.061-.132-.003-.004-.002-.005-.062-.13-.003-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.073-.125-.003-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.08-.12-.004-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.117-.003-.005-.003-.004-.088-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.093-.113-.004-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.109-.004-.004-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023-.16.008zM4.288 12.828l-.158.032-.15.06-.135.088-.117.11-.095.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.006-.019.144v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.006l-.001.005-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.006.033.14v.006l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.103.102-.126.076-.142.049-.153.02-.16-.01-.161-.032-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.132-.024-.134-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.132.01-.139.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029-.16.002zm23.286 4.202l-.156.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.134-.026.132-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.062.119-.063.116-.067.119-.066.116-.068.115-.07.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.108-.085.109-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.082-.12.003-.005.002-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.004.003-.005.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.003-.005.002-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.002-.006.04-.138.002-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.141.001-.006.001-.005.031-.141.002-.006v-.005l.03-.142.001-.005.001-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022-.16.007zM6.681 22.734l-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.11.04.047.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.106.004.003.004.004.103.105.004.004.004.004.105.103.004.004.003.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.005.004.004.003.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.003.126.072.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.068.005.002.004.002.13.066.004.003.005.002.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.003.133.056.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.161-.015.155-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.158-.061-.15-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.079-.11-.08-.109-.082-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm15.063 2.691l-.156.044-.12.057-.06.034-.12.066-.116.064-.119.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.036-.13.035-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021h.005l.006-.002.143-.022h.006l.005-.002.143-.024h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.036.005-.002.005-.001.14-.038.005-.001.005-.002.14-.04h.005l.005-.002.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.056.005-.003.005-.002.132-.057.005-.002.005-.003.132-.059.005-.002.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.002.005-.003.129-.066.004-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.002.065-.038.132-.093.112-.115.089-.135.062-.149.034-.157.004-.161-.027-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.045-.16-.017-.161.014zM15.994 0l-.187.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.01L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.184.027h-.006l-.005.001-.184.029h-.005l-.005.001-.183.031-.005.001-.006.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.177.027.17.03.173.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.088-.135.06-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.144-.073-.129-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.005-.001-.184-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06 17.385.06h-.005l-.187-.015h-.005l-.005-.001-.187-.013h-.01L16.799.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0h-.01zm8.86 2.939l-.157.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.127.125.123.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.085.152.083.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.161-.016.155-.046.143-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.002-.005-.003-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.002-.005-.102-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.004-.003-.005-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.003-.004-.004-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.003-.004-.133-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027-.16.004zm-18.381.348l-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.005-.003.004-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.005-.003.004-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023-.161.008zm24.514 11.15l-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.024.175-.027.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.161-.061.164-.063.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.078.158-.081.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.12.13.096.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.004.002-.005.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.17.002-.006.001-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.18.001-.006.001-.005.038-.182v-.005l.002-.005.035-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02-.161.009zM.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.005.074.169.002.005.002.004.076.169.002.005.002.004.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.156-.07-.162-.068-.16-.067-.164-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15 .777 15zM6.17 26.842l-.152.052-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.005.003.004.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.003.162.088.005.002.004.002.164.087.005.002.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.169.076.004.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.061.005.002.005.001.175.06.005.001.005.002.176.057.005.001.005.002.177.055.005.001.005.002.177.052.005.002.005.001.178.051.005.001.005.002.178.048.006.002h.005l.179.047.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.169-.044-.17-.045-.166-.048-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm19.214.073l-.156.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.157.073-.158.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.048-.17.045-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.008.133-.017.115-.024h.005l.005-.002.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002h.005l.18-.047.004-.001.005-.002.179-.048.005-.002.005-.001.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.005-.002.004-.002.172-.068.005-.001.005-.002.171-.07.005-.002.005-.002.17-.072.005-.002.005-.002.169-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.002.167-.08.004-.003.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.002.163-.087.005-.002.005-.002.162-.088.005-.003.005-.003.161-.09.005-.002.004-.003.16-.092.005-.002.005-.003.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.002.155-.102.005-.003.004-.003.154-.104.004-.003.005-.003.152-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.111.004-.004.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02-.16.009z"
  545. })));
  546. function _extends$H() { _extends$H = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$H.apply(this, arguments); }
  547. var IntermediateEventCatchParallelMultipleIcon = (({
  548. styles = {},
  549. ...props
  550. }) => /*#__PURE__*/React.createElement("svg", _extends$H({
  551. xmlns: "http://www.w3.org/2000/svg",
  552. width: "32",
  553. height: "32"
  554. }, props), /*#__PURE__*/React.createElement("path", {
  555. d: "M15.975.003C8.195-.157.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.408 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 4.975zm-2.15 3.281v5.534H8.213v4.38h5.636v5.534h4.31V18.17h5.639v-4.38h-5.64V8.256h-4.31zm.865.865h2.583v5.534h5.635v2.65h-5.635v5.533h-2.583v-5.534h-5.64v-2.649h5.64V9.121z"
  556. })));
  557. function _extends$G() { _extends$G = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$G.apply(this, arguments); }
  558. var IntermediateEventCatchSignalIcon = (({
  559. styles = {},
  560. ...props
  561. }) => /*#__PURE__*/React.createElement("svg", _extends$G({
  562. xmlns: "http://www.w3.org/2000/svg",
  563. width: "32",
  564. height: "32"
  565. }, props), /*#__PURE__*/React.createElement("path", {
  566. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.521L9.206 20.745h13.598L16.005 8.542zm0 1.775l5.329 9.564H10.677l5.328-9.564z"
  567. })));
  568. function _extends$F() { _extends$F = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$F.apply(this, arguments); }
  569. var IntermediateEventCatchTimerIcon = (({
  570. styles = {},
  571. ...props
  572. }) => /*#__PURE__*/React.createElement("svg", _extends$F({
  573. xmlns: "http://www.w3.org/2000/svg",
  574. width: "32",
  575. height: "32"
  576. }, props), /*#__PURE__*/React.createElement("path", {
  577. d: "M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-.137 3.42c-2.965.02-5.792 1.968-6.884 4.722-1.137 2.693-.509 6.007 1.536 8.096 1.988 2.14 5.263 2.929 8.007 1.926 2.875-.98 4.987-3.824 5.063-6.865.154-2.954-1.622-5.875-4.295-7.13a7.545 7.545 0 00-3.427-.75zm.27 1.381c2.708.013 5.249 2.014 5.88 4.652.704 2.576-.481 5.512-2.788 6.862-2.356 1.478-5.677 1.084-7.611-.918-2.042-1.97-2.405-5.376-.839-7.738 1.11-1.762 3.146-2.877 5.229-2.857h.13zm1.831 1.764l-2.072 3.76c-.64.068-.792 1.039-.202 1.298.39.27.696-.18 1.051-.164h3.168v-.864h-3.18l1.992-3.612-.757-.418z"
  578. })));
  579. function _extends$E() { _extends$E = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$E.apply(this, arguments); }
  580. var IntermediateEventNoneIcon = (({
  581. styles = {},
  582. ...props
  583. }) => /*#__PURE__*/React.createElement("svg", _extends$E({
  584. xmlns: "http://www.w3.org/2000/svg",
  585. width: "32",
  586. height: "32"
  587. }, props), /*#__PURE__*/React.createElement("path", {
  588. d: "M15.848.001C8.113-.093.931 6.281.125 13.983c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.207C29.105 4.938 23.55.48 17.367.06A16.448 16.448 0 0015.848 0v.001zm.293 1.727c7.113-.099 13.662 5.97 14.077 13.08.56 6.299-3.516 12.735-9.582 14.679-5.798 2.004-12.806-.12-16.283-5.237C.717 19.159.874 11.638 5.016 6.876 7.722 3.638 11.902 1.63 16.14 1.728zm-.415 1.555C9.157 3.258 3.256 9.156 3.278 15.729c-.16 5.965 4.365 11.725 10.293 12.737 5.409 1.065 11.37-1.744 13.775-6.753 2.534-4.986 1.386-11.627-2.953-15.251-2.364-2.077-5.512-3.27-8.667-3.18zm.507 1.692c5.82-.026 11.013 5.318 10.79 11.143-.024 5.3-4.313 10.267-9.636 10.803-5.075.667-10.426-2.588-11.885-7.553-1.535-4.744.494-10.46 4.925-12.885a11.072 11.072 0 015.806-1.508z"
  589. })));
  590. function _extends$D() { _extends$D = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$D.apply(this, arguments); }
  591. var IntermediateEventThrowCompensationIcon = (({
  592. styles = {},
  593. ...props
  594. }) => /*#__PURE__*/React.createElement("svg", _extends$D({
  595. xmlns: "http://www.w3.org/2000/svg",
  596. width: "32",
  597. height: "32"
  598. }, props), /*#__PURE__*/React.createElement("path", {
  599. d: "M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.747l-7.157 5.055v-5.055z"
  600. })));
  601. function _extends$C() { _extends$C = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$C.apply(this, arguments); }
  602. var IntermediateEventThrowEscalationIcon = (({
  603. styles = {},
  604. ...props
  605. }) => /*#__PURE__*/React.createElement("svg", _extends$C({
  606. xmlns: "http://www.w3.org/2000/svg",
  607. width: "32",
  608. height: "32"
  609. }, props), /*#__PURE__*/React.createElement("path", {
  610. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156z"
  611. })));
  612. function _extends$B() { _extends$B = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$B.apply(this, arguments); }
  613. var IntermediateEventThrowLinkIcon = (({
  614. styles = {},
  615. ...props
  616. }) => /*#__PURE__*/React.createElement("svg", _extends$B({
  617. xmlns: "http://www.w3.org/2000/svg",
  618. width: "32",
  619. height: "32"
  620. }, props), /*#__PURE__*/React.createElement("path", {
  621. d: "M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912z"
  622. })));
  623. function _extends$A() { _extends$A = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$A.apply(this, arguments); }
  624. var IntermediateEventThrowMessageIcon = (({
  625. styles = {},
  626. ...props
  627. }) => /*#__PURE__*/React.createElement("svg", _extends$A({
  628. xmlns: "http://www.w3.org/2000/svg",
  629. width: "32",
  630. height: "32"
  631. }, props), /*#__PURE__*/React.createElement("path", {
  632. d: "M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-5.91 5.475l6.04 4.901 6.042-4.9H10.088zm-1.341 1.138v9.921h14.514V11.79l-7.132 5.787-7.382-5.99z"
  633. })));
  634. function _extends$z() { _extends$z = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$z.apply(this, arguments); }
  635. var IntermediateEventThrowMultipleIcon = (({
  636. styles = {},
  637. ...props
  638. }) => /*#__PURE__*/React.createElement("svg", _extends$z({
  639. xmlns: "http://www.w3.org/2000/svg",
  640. width: "32",
  641. height: "32"
  642. }, props), /*#__PURE__*/React.createElement("path", {
  643. d: "M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.532 2.91 8.95h9.42l2.91-8.95-7.62-5.532z"
  644. })));
  645. function _extends$y() { _extends$y = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$y.apply(this, arguments); }
  646. var IntermediateEventThrowSignalIcon = (({
  647. styles = {},
  648. ...props
  649. }) => /*#__PURE__*/React.createElement("svg", _extends$y({
  650. xmlns: "http://www.w3.org/2000/svg",
  651. width: "32",
  652. height: "32"
  653. }, props), /*#__PURE__*/React.createElement("path", {
  654. d: "M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.52c-2.261 4.07-4.533 8.136-6.798 12.205h13.596L16.005 8.495z"
  655. })));
  656. function _extends$x() { _extends$x = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); }
  657. var LaneIcon = (({
  658. styles = {},
  659. ...props
  660. }) => /*#__PURE__*/React.createElement("svg", _extends$x({
  661. xmlns: "http://www.w3.org/2000/svg",
  662. width: "32",
  663. height: "32"
  664. }, props), /*#__PURE__*/React.createElement("path", {
  665. d: "M0 7v18.62h32V7H0zm1.655 17.056V8.684h28.62v15.372H1.656z"
  666. })));
  667. function _extends$w() { _extends$w = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); }
  668. var ManualTaskIcon = (({
  669. styles = {},
  670. ...props
  671. }) => /*#__PURE__*/React.createElement("svg", _extends$w({
  672. xmlns: "http://www.w3.org/2000/svg",
  673. width: "32",
  674. height: "32"
  675. }, props), /*#__PURE__*/React.createElement("path", {
  676. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm4.43 1.328c-.222.005-.43.09-.606.203-.985.638-4.356 2.977-5.096 3.486-.67.46-1.12 1.153-1.38 1.974-.27.858-.235 1.793-.232 2.576.002.59.016 1.104.17 1.727.22.908.634 1.63 1.23 2.118.597.49 1.363.732 2.23.734 3.038.012 6.078.016 9.119 0 .327-.002.645-.127.848-.37.204-.241.287-.56.291-.914a1.732 1.732 0 00-.097-.625h.327c.335 0 .641-.11.852-.316.21-.206.317-.475.374-.754a1.783 1.783 0 00-.126-1.143 1.18 1.18 0 00.877-.521c.196-.306.257-.666.258-1.025.001-.375-.088-.738-.293-1.033a1.179 1.179 0 00-.958-.512h-.478c.108-.237.156-.505.155-.782-.003-.373-.098-.721-.316-.99a1.21 1.21 0 00-.943-.43c-2.273-.004-4.236.018-6.412.012l-.19-.001c.102-.104.202-.205.312-.314.337-.336.662-.652.83-.869.4-.516.46-1.215.123-1.729-.178-.272-.439-.456-.72-.494a.93.93 0 00-.148-.008zm.029.728l.022.001c.055.008.115.027.209.172.132.201.126.606-.09.884-.079.102-.431.465-.767.8-.337.334-.657.643-.815.836-.153.186-.096.338-.056.435.04.096.085.212.298.263.063.014.066.01.086.012l.066.003c2.429.027 4.986-.004 7.223-.003.194 0 .293.056.379.162.086.105.151.286.153.533 0 .257-.065.467-.155.59-.09.124-.183.182-.37.183-1.706-.001-3.411-.005-5.117-.009v.731c2.23.004 4.461.01 6.692.012.17 0 .265.06.361.2.096.138.164.364.163.615 0 .268-.058.501-.143.634-.085.132-.162.193-.385.195-2.32-.001-4.554-.006-6.688-.003v.73c1.905 0 3.809.003 5.713.001.194.005.316.09.416.26.102.173.151.442.093.728-.04.193-.102.313-.17.38-.067.065-.148.108-.343.108h-5.71l.002.734c1.445 0 2.89-.01 4.334-.001.162 0 .232.041.297.123.064.081.123.238.12.488-.003.244-.061.385-.12.455-.06.07-.127.11-.296.11-3.037.016-6.076.012-9.113 0-.735-.002-1.316-.196-1.77-.568-.454-.372-.793-.935-.986-1.728-.134-.546-.146-.978-.148-1.558-.003-.796-.018-1.664.199-2.354.222-.705.582-1.24 1.096-1.593.75-.515 4.14-2.866 5.079-3.474a.504.504 0 01.241-.087z"
  677. })));
  678. function _extends$v() { _extends$v = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); }
  679. var MessageFlowIcon = (({
  680. styles = {},
  681. ...props
  682. }) => /*#__PURE__*/React.createElement("svg", _extends$v({
  683. xmlns: "http://www.w3.org/2000/svg",
  684. width: "32",
  685. height: "32"
  686. }, props), /*#__PURE__*/React.createElement("path", {
  687. d: "M4.073 26.607l1.295 1.296L1.325 32l-.662-.633L0 30.735l4.073-4.128zm6.953-7.046l1.296 1.296L1.325 32l7.555-7.656-1.295-1.296 1.455-1.474 1.986-2.013zM32 .06s-2.699 5.189-5.417 10.462l-.326.633c-1.14 2.214-2.265 4.407-3.176 6.2-1.228-1.222-2.449-2.452-3.676-3.675l-3.57 3.618-1.297-1.296 3.541-3.588c-.98-.964-1.932-1.958-2.923-2.91l-.753-.706c2.68-1.258 6.533-3.165 9.95-4.876l.617-.309C28.838 1.673 32 .06 32 .06zm-4.126 4.06l-.015.007-.115.057-.048.024-.115.057L17.7 9.172l5.017 4.948 5.157-10z"
  688. })));
  689. function _extends$u() { _extends$u = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); }
  690. var ParticipantIcon = (({
  691. styles = {},
  692. ...props
  693. }) => /*#__PURE__*/React.createElement("svg", _extends$u({
  694. xmlns: "http://www.w3.org/2000/svg",
  695. width: "32",
  696. height: "32"
  697. }, props), /*#__PURE__*/React.createElement("path", {
  698. d: "M0 5v22.069h32V5H0zm30.276 1.684v18.82H6.62V6.684h23.655zm-28.62 0h3.31v18.82h-3.31V6.684z"
  699. })));
  700. function _extends$t() { _extends$t = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); }
  701. var ProcessIcon = (({
  702. styles = {},
  703. ...props
  704. }) => /*#__PURE__*/React.createElement("svg", _extends$t({
  705. xmlns: "http://www.w3.org/2000/svg",
  706. width: "32",
  707. height: "32"
  708. }, props), /*#__PURE__*/React.createElement("path", {
  709. fillRule: "evenodd",
  710. d: "M16.177 0l.137.002c.452.009.9.037 1.342.082.346.036.62.303.68.646l.437 2.536c.055.319.296.57.608.655.986.269 1.923.653 2.796 1.14.28.155.624.145.885-.039l2.083-1.47a.775.775 0 01.937.022c.86.699 1.645 1.484 2.343 2.343.22.27.223.653.023.937l-1.439 2.038a.833.833 0 00-.031.896c.512.889.92 1.846 1.204 2.855a.833.833 0 00.653.601l2.435.42c.342.059.61.333.645.679a15.928 15.928 0 01.08 2.064l-.003.114c-.012.382-.038.76-.077 1.134a.775.775 0 01-.645.68l-2.396.412a.835.835 0 00-.656.61 12.511 12.511 0 01-1.2 2.917.832.832 0 00.034.892l1.396 1.978c.2.284.196.667-.023.936a16.104 16.104 0 01-2.343 2.343.775.775 0 01-.937.023l-1.99-1.404a.833.833 0 00-.88-.026c-.907.516-1.886.922-2.916 1.2a.833.833 0 00-.61.656l-.414 2.396a.775.775 0 01-.679.646 16.096 16.096 0 01-3.312 0 .775.775 0 01-.679-.646l-.423-2.452a.834.834 0 00-.598-.636 12.474 12.474 0 01-1.468-.514 12.49 12.49 0 01-1.417-.68.833.833 0 00-.878.03l-2.026 1.43a.775.775 0 01-.937-.023 16.069 16.069 0 01-2.342-2.342.774.774 0 01-.024-.936l1.402-1.986a.833.833 0 00.032-.896 12.507 12.507 0 01-1.214-2.911.833.833 0 00-.655-.606l-2.386-.412a.775.775 0 01-.646-.678 16.097 16.097 0 010-3.314.775.775 0 01.646-.678l2.386-.412a.833.833 0 00.655-.606 12.507 12.507 0 011.214-2.911.833.833 0 00-.032-.896L3.552 6.853a.774.774 0 01.023-.936 16.091 16.091 0 012.343-2.343.775.775 0 01.937-.023l2.03 1.433c.26.177.6.182.874.028.915-.512 1.88-.9 2.87-1.167a.833.833 0 00.612-.656l.424-2.46a.775.775 0 01.679-.645C14.845.032 15.348.004 15.85 0h.326zM16 6.4c-5.302 0-9.6 4.297-9.6 9.599 0 5.302 4.298 9.6 9.6 9.6s9.6-4.298 9.6-9.6-4.298-9.6-9.6-9.6zm-3 4.283c0-1.425 1.637-2.203 2.715-1.29l5.69 4.815c.794.672.794 1.91 0 2.583l-5.69 4.815c-1.078.913-2.715.134-2.715-1.29z"
  711. })));
  712. function _extends$s() { _extends$s = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); }
  713. var ReceiveTaskIcon = (({
  714. styles = {},
  715. ...props
  716. }) => /*#__PURE__*/React.createElement("svg", _extends$s({
  717. xmlns: "http://www.w3.org/2000/svg",
  718. width: "32",
  719. height: "32"
  720. }, props), /*#__PURE__*/React.createElement("path", {
  721. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.23 7.764v11.577h17.55V7.764H5.23zm1.816.758h13.917l-6.959 4.577-6.958-4.577zm-1.06.21l8.018 5.274 8.018-5.275v9.853H5.987V8.73z"
  722. })));
  723. function _extends$r() { _extends$r = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); }
  724. var ScriptTaskIcon = (({
  725. styles = {},
  726. ...props
  727. }) => /*#__PURE__*/React.createElement("svg", _extends$r({
  728. xmlns: "http://www.w3.org/2000/svg",
  729. width: "32",
  730. height: "32"
  731. }, props), /*#__PURE__*/React.createElement("path", {
  732. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm2.99 3.077l-.077.045-.026.015c-1.09.646-1.84 1.239-2.336 1.818-.496.579-.735 1.162-.742 1.725-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.324.408-.911.897-1.85 1.445l-1.388.808h8.56l.101-.059c.996-.58 1.667-1.116 2.094-1.655.429-.54.603-1.107.547-1.638-.11-1.052-.967-1.818-1.688-2.556-.721-.739-1.306-1.436-1.298-2.092.004-.331.132-.7.535-1.171.402-.47 1.08-1.02 2.119-1.636l1.362-.806h-8.54zm.241.867h5.271a6.83 6.83 0 00-1.113 1.01c-.496.58-.736 1.163-.743 1.726-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.312.393-.872.862-1.753 1.386H8.728c.367-.286.658-.566.88-.847.43-.54.604-1.107.548-1.638-.11-1.052-.968-1.818-1.688-2.556-.721-.739-1.306-1.435-1.298-2.092.004-.331.132-.7.534-1.171.389-.454 1.04-.984 2.021-1.575zm-1.233 1.48v.4h4.12v-.4h-4.12zm-.154 2.158v.4H12.6v-.4H8.34zm1.931 2.158v.4h4.126v-.4H10.27zm.59 2.158v.4h4.276v-.4h-4.276z"
  733. })));
  734. function _extends$q() { _extends$q = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); }
  735. var SendTaskIcon = (({
  736. styles = {},
  737. ...props
  738. }) => /*#__PURE__*/React.createElement("svg", _extends$q({
  739. xmlns: "http://www.w3.org/2000/svg",
  740. width: "32",
  741. height: "32"
  742. }, props), /*#__PURE__*/React.createElement("path", {
  743. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm-1.38 3.16l8.332 4.717L21.78 8.16H5.114zm.021 1.745v9.309H21.8V9.905l-8.353 4.655-8.31-4.655z"
  744. })));
  745. function _extends$p() { _extends$p = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); }
  746. var ServiceTaskIcon = (({
  747. styles = {},
  748. ...props
  749. }) => /*#__PURE__*/React.createElement("svg", _extends$p({
  750. xmlns: "http://www.w3.org/2000/svg",
  751. width: "32",
  752. height: "32"
  753. }, props), /*#__PURE__*/React.createElement("path", {
  754. d: "M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm1.22 1.681V7.84c-.329.093-.63.223-.914.382l-.83-.82-1.554 1.561.83.82c-.16.288-.285.594-.372.911l-1.177.002v2.2l1.189-.004c.109.431.345.819.58 1.165v-1.898l-1.038.004v-.737l1.034-.002.058-.294c.084-.429.252-.838.493-1.203l.165-.25-.727-.718.523-.526.728.719.247-.165c.379-.25.793-.417 1.206-.505l.291-.06-.002-1.01h.75L9.19 8.417H11.16c-.185-.221-.951-.508-1.237-.588L9.93 6.68H7.713zm2.078 2.105l.003 1.158a4.19 4.19 0 00-.915.383l-.83-.821-1.553 1.562.83.82c-.16.288-.286.593-.373.91l-1.176.003v2.2l1.188-.004c.094.326.224.624.383.905l-.85.847 1.57 1.543.847-.843c.29.161.599.286.919.373v1.198c.756.006 1.56.003 2.206.003V17.81a4.19 4.19 0 00.915-.383l.847.835 1.554-1.56-.848-.836c.16-.288.286-.594.373-.912l1.152-.007V12.75l-1.165.007a4.09 4.09 0 00-.382-.905l.805-.807-1.57-1.546-.804.806a4.16 4.16 0 00-.915-.372l.007-1.147H9.792zm.732.73h.751l-.006 1.005.297.058c.43.085.844.252 1.21.492l.25.162.701-.704.528.52-.702.704.169.25c.248.374.412.779.505 1.196l.061.292 1.016-.006v.737l-1.01.006-.058.292c-.085.43-.252.838-.494 1.205l-.165.25.744.733-.523.525-.743-.734-.248.165c-.378.247-.789.418-1.203.503l-.294.058v1.067h-.745v-1.059l-.295-.057a3.395 3.395 0 01-1.21-.492l-.248-.162-.747.743-.528-.52.747-.744-.17-.25a3.546 3.546 0 01-.506-1.196l-.06-.291-1.04.004v-.738l1.034-.002.058-.294c.085-.428.252-.837.493-1.203l.165-.25-.726-.718.522-.526.728.72.248-.166a3.546 3.546 0 011.205-.504l.292-.06-.003-1.01zm.388 2.685a1.65 1.65 0 00-1.645 1.645c0 .904.74 1.645 1.645 1.645a1.65 1.65 0 001.645-1.645 1.65 1.65 0 00-1.645-1.645zm0 .73a.91.91 0 01.915.915.91.91 0 01-.915.914.91.91 0 01-.915-.914.91.91 0 01.915-.915z"
  755. })));
  756. function _extends$o() { _extends$o = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); }
  757. var StartEventCompensationIcon = (({
  758. styles = {},
  759. ...props
  760. }) => /*#__PURE__*/React.createElement("svg", _extends$o({
  761. xmlns: "http://www.w3.org/2000/svg",
  762. width: "32",
  763. height: "32"
  764. }, props), /*#__PURE__*/React.createElement("path", {
  765. d: "M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-.566 9.03l-7.415 5.235 7.415 5.238v-5.062c2.386 1.689 4.775 3.375 7.163 5.062V10.761l-7.163 5.058v-5.058zm-.866 1.666v7.13L9.51 15.993l5.052-3.565zm7.166 0v7.137l-5.052-3.568 5.052-3.569z"
  766. })));
  767. function _extends$n() { _extends$n = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); }
  768. var StartEventConditionIcon = (({
  769. styles = {},
  770. ...props
  771. }) => /*#__PURE__*/React.createElement("svg", _extends$n({
  772. xmlns: "http://www.w3.org/2000/svg",
  773. width: "32",
  774. height: "32"
  775. }, props), /*#__PURE__*/React.createElement("path", {
  776. d: "M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-5.362 7.523v13.493h10.724V9.253H10.638zm.863.866h8.995V21.88H11.501V10.12zm.928 1.324v.863h7.139v-.863h-7.139zm0 2.605v.867h7.139v-.867h-7.139zm0 3.01v.864h7.139v-.863h-7.139zm0 2.72v.863h7.139v-.863h-7.139z"
  777. })));
  778. function _extends$m() { _extends$m = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
  779. var StartEventErrorIcon = (({
  780. styles = {},
  781. ...props
  782. }) => /*#__PURE__*/React.createElement("svg", _extends$m({
  783. xmlns: "http://www.w3.org/2000/svg",
  784. width: "32",
  785. height: "32"
  786. }, props), /*#__PURE__*/React.createElement("path", {
  787. d: "M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm6.13 7.45l-3.635 7.37-4.52-5.88c-1.37 4.048-2.738 8.095-4.106 12.143l4.603-5.917 4.748 5.433 2.91-13.149zm-7.754 3.889l4.299 5.449 1.073-2.39-1.028 4.135-4.387-5.16-1.78 2.75 1.823-4.784z"
  788. })));
  789. function _extends$l() { _extends$l = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
  790. var StartEventEscalationIcon = (({
  791. styles = {},
  792. ...props
  793. }) => /*#__PURE__*/React.createElement("svg", _extends$l({
  794. xmlns: "http://www.w3.org/2000/svg",
  795. width: "32",
  796. height: "32"
  797. }, props), /*#__PURE__*/React.createElement("path", {
  798. d: "M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 7.183c-1.674 4.658-2.736 9.509-4.41 14.166 1.535-1.526 2.874-3.236 4.41-4.763l4.41 4.763c-1.499-4.713-2.913-9.453-4.41-14.166zm.032 2.931c.822 2.588 1.598 5.19 2.42 7.778l-2.42-2.615c-.683.598-2.455 2.887-2.34 2.39.871-2.489 1.448-5.07 2.34-7.553z"
  799. })));
  800. function _extends$k() { _extends$k = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
  801. var StartEventMessageIcon = (({
  802. styles = {},
  803. ...props
  804. }) => /*#__PURE__*/React.createElement("svg", _extends$k({
  805. xmlns: "http://www.w3.org/2000/svg",
  806. width: "32",
  807. height: "32"
  808. }, props), /*#__PURE__*/React.createElement("path", {
  809. d: "M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-7.257 8.732v11.069h14.513v-11.07H8.738zm3.224 1.73h8.064c-1.428.878-2.857 2.807-4.285 3.018l-3.779-3.019zm9.562 1.017v6.593H10.465V13.21l5.528 4.417 5.53-4.418z"
  810. })));
  811. function _extends$j() { _extends$j = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
  812. var StartEventMultipleIcon = (({
  813. styles = {},
  814. ...props
  815. }) => /*#__PURE__*/React.createElement("svg", _extends$j({
  816. xmlns: "http://www.w3.org/2000/svg",
  817. width: "32",
  818. height: "32"
  819. }, props), /*#__PURE__*/React.createElement("path", {
  820. d: "M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 6.328l-7.626 5.536c.97 2.986 1.942 5.971 2.913 8.957h9.426l2.912-8.957-7.625-5.536zm0 1.068l6.609 4.798-2.525 7.763H11.91l-2.524-7.763 6.609-4.798z"
  821. })));
  822. function _extends$i() { _extends$i = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
  823. var StartEventNonInterruptingConditionIcon = (({
  824. styles = {},
  825. ...props
  826. }) => /*#__PURE__*/React.createElement("svg", _extends$i({
  827. xmlns: "http://www.w3.org/2000/svg",
  828. width: "32",
  829. height: "32"
  830. }, props), /*#__PURE__*/React.createElement("path", {
  831. d: "M10.632 9.189V22.68h10.723V9.189H10.632zm.862.865h8.994v11.76H11.494v-11.76zm.928 1.324v.863h7.138v-.863h-7.138zm0 2.605v.866h7.138v-.866h-7.138zm0 3.01v.863h7.138v-.863h-7.138zm0 2.72v.862h7.138v-.863h-7.138zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z"
  832. })));
  833. function _extends$h() { _extends$h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
  834. var StartEventNonInterruptingEscalationIcon = (({
  835. styles = {},
  836. ...props
  837. }) => /*#__PURE__*/React.createElement("svg", _extends$h({
  838. xmlns: "http://www.w3.org/2000/svg",
  839. width: "32",
  840. height: "32"
  841. }, props), /*#__PURE__*/React.createElement("path", {
  842. d: "M16 9.209c-1.674 4.655-2.735 9.504-4.408 14.16 1.534-1.526 2.873-3.235 4.407-4.761l4.408 4.76c-1.497-4.71-2.91-9.448-4.408-14.16zm.031 2.93c.822 2.586 1.598 5.187 2.42 7.774l-2.42-2.614c-.682.598-2.453 2.886-2.34 2.389.873-2.488 1.45-5.068 2.34-7.55zM16.132.364c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.564c-.734.078-1.196.762-1.735 1.206C3.552 6.02 2.55 7.511 1.681 9.053c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786A15.932 15.932 0 011.728 16a.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"
  843. })));
  844. function _extends$g() { _extends$g = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
  845. var StartEventNonInterruptingMessageIcon = (({
  846. styles = {},
  847. ...props
  848. }) => /*#__PURE__*/React.createElement("svg", _extends$g({
  849. xmlns: "http://www.w3.org/2000/svg",
  850. width: "32",
  851. height: "32"
  852. }, props), /*#__PURE__*/React.createElement("path", {
  853. d: "M8.746 10.393v11.064h14.506V10.393H8.746zm3.223 1.728h8.06c-1.428.879-2.856 2.807-4.283 3.018l-3.777-3.018zm9.557 1.018v6.59H10.473v-6.59l5.525 4.416 5.528-4.416zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"
  854. })));
  855. function _extends$f() { _extends$f = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); }
  856. var StartEventNonInterruptingMultipleIcon = (({
  857. styles = {},
  858. ...props
  859. }) => /*#__PURE__*/React.createElement("svg", _extends$f({
  860. xmlns: "http://www.w3.org/2000/svg",
  861. width: "32",
  862. height: "32"
  863. }, props), /*#__PURE__*/React.createElement("path", {
  864. d: "M23.621 13.524L16 7.99l-7.622 5.534 2.911 8.952h9.422l2.911-8.952zm-1.016.33l-2.523 7.759h-8.165l-2.524-7.76L16 9.059l6.606 4.796zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"
  865. })));
  866. function _extends$e() { _extends$e = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$e.apply(this, arguments); }
  867. var StartEventNonInterruptingParallelMultipleIcon = (({
  868. styles = {},
  869. ...props
  870. }) => /*#__PURE__*/React.createElement("svg", _extends$e({
  871. xmlns: "http://www.w3.org/2000/svg",
  872. width: "32",
  873. height: "32"
  874. }, props), /*#__PURE__*/React.createElement("path", {
  875. d: "M13.503 9.016v4.428H9.075v4.98h4.428v4.428h4.98v-4.427h4.428v-4.981h-4.427V9.016h-4.981zm.83.83h3.32v4.428h4.428v3.32h-4.428v4.428h-3.32v-4.454H9.905v-3.294h4.428V9.846zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z",
  876. opacity: ".98"
  877. })));
  878. function _extends$d() { _extends$d = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$d.apply(this, arguments); }
  879. var StartEventNonInterruptingSignalIcon = (({
  880. styles = {},
  881. ...props
  882. }) => /*#__PURE__*/React.createElement("svg", _extends$d({
  883. xmlns: "http://www.w3.org/2000/svg",
  884. width: "32",
  885. height: "32"
  886. }, props), /*#__PURE__*/React.createElement("path", {
  887. d: "M16.007 8.82L9.21 21.022h13.596L16.007 8.82zm0 1.775l5.328 9.563H10.68l5.327-9.563zM16.14.386c-1.571.236-4.195-.284-4.9 1.381.619 1.703 2.745.069 4.085.365 1.421-.13 2.84.2 4.235.259C21.27.784 18.19.344 17 .413a20.456 20.456 0 00-.86-.027zM25 3.162c-2.19.694.401 2.26 1.181 3.094 1.083 1.152 1.954 2.484 2.715 3.864 1.48 1.005 1.845-1.26.81-2.03-1.158-1.897-2.613-3.704-4.513-4.89l-.192-.038zm-18.438.423c-1.793.712-2.909 2.548-4.01 4.061-.773.814-2.211 3.653.005 3.211 1.123-1.469 1.87-3.306 3.267-4.614.664-.7 2.73-2.013.738-2.658zm24.57 11.072c-1.659.435-.468 2.667-.99 3.895a13.427 13.427 0 01-1.497 4.435c-.23 1.659 1.991 1.165 2.018-.199a14.277 14.277 0 001.254-7.552.865.865 0 00-.785-.579zm-30.18.666c-1.677.386-.633 2.667-.608 3.876.371 1.623.792 3.35 1.79 4.696 2.382.321.571-2.338.292-3.492a15.92 15.92 0 01-.684-4.39.877.877 0 00-.79-.69zm24.558 11.81c-1.755.865-3.303 2.266-5.274 2.765-1.162-.016-3.074 1.271-1.331 2.102 2.66-.447 5.163-1.733 7.236-3.445.472-.506.06-1.432-.631-1.421zm-19.151.043c-2.004.786.416 2.405 1.43 2.913 1.608.904 3.379 1.636 5.208 1.877 1.77-.804-.228-2.094-1.357-2.073-1.75-.537-3.403-1.396-4.798-2.586l-.227-.104-.256-.027z"
  888. })));
  889. function _extends$c() { _extends$c = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$c.apply(this, arguments); }
  890. var StartEventNonInterruptingTimerIcon = (({
  891. styles = {},
  892. ...props
  893. }) => /*#__PURE__*/React.createElement("svg", _extends$c({
  894. xmlns: "http://www.w3.org/2000/svg",
  895. width: "32",
  896. height: "32"
  897. }, props), /*#__PURE__*/React.createElement("path", {
  898. d: "M15.991 8.7c-3.018-.042-5.92 1.925-7.03 4.725-1.138 2.695-.509 6.011 1.537 8.102 1.99 2.142 5.267 2.93 8.013 1.927 2.877-.98 4.99-3.826 5.067-6.87.153-2.956-1.624-5.88-4.299-7.135a7.551 7.551 0 00-3.288-.75zm0 1.383c2.758-.052 5.372 1.972 6.014 4.654.704 2.578-.482 5.516-2.79 6.867-2.358 1.48-5.682 1.085-7.617-.919-2.043-1.97-2.407-5.38-.84-7.743 1.11-1.764 3.149-2.88 5.233-2.86zm1.962 1.764l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.614-.757-.418zM16.12.358h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136L19.823.9l-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006L19.135.64l-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006L17.512.42l-.22-.017-.005-.001h-.006l-.22-.015h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012l-.221-.003h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zm-18.458.426l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1V9.5l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114V16.5l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V16.308l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z"
  899. })));
  900. function _extends$b() { _extends$b = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$b.apply(this, arguments); }
  901. var StartEventNoneIcon = (({
  902. styles = {},
  903. ...props
  904. }) => /*#__PURE__*/React.createElement("svg", _extends$b({
  905. xmlns: "http://www.w3.org/2000/svg",
  906. width: "32",
  907. height: "32"
  908. }, props), /*#__PURE__*/React.createElement("path", {
  909. d: "M15.847.004C9.61-.016 3.624 4.014 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846.004zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625-4.814-3.84-6.538-10.94-4.067-16.57 2.14-5.206 7.515-8.775 13.147-8.71.097-.001.194-.002.29-.001z"
  910. })));
  911. function _extends$a() { _extends$a = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$a.apply(this, arguments); }
  912. var StartEventParallelMultipleIcon = (({
  913. styles = {},
  914. ...props
  915. }) => /*#__PURE__*/React.createElement("svg", _extends$a({
  916. xmlns: "http://www.w3.org/2000/svg",
  917. width: "32",
  918. height: "32"
  919. }, props), /*#__PURE__*/React.createElement("path", {
  920. d: "M15.847 0C9.61-.02 3.624 4.01 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846 0zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625C2.101 23.17.377 16.07 2.848 10.44c2.134-5.2 7.522-8.78 13.147-8.71.097-.001.194-.002.29-.001zM13.504 9.08v4.427H9.077v4.98h4.427v4.427h4.98v-4.427h4.428v-4.98h-4.427V9.08h-4.98zm.83.83h3.32v4.427h4.428v3.32h-4.427v4.427h-3.32v-4.453H9.906v-3.294h4.427V9.91z"
  921. })));
  922. function _extends$9() { _extends$9 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$9.apply(this, arguments); }
  923. var StartEventSignalIcon = (({
  924. styles = {},
  925. ...props
  926. }) => /*#__PURE__*/React.createElement("svg", _extends$9({
  927. xmlns: "http://www.w3.org/2000/svg",
  928. width: "32",
  929. height: "32"
  930. }, props), /*#__PURE__*/React.createElement("path", {
  931. d: "M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm0 6.776L9.19 20.724H22.8L15.995 8.511zm0 1.777l5.332 9.572H10.662l5.333-9.572z"
  932. })));
  933. function _extends$8() { _extends$8 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$8.apply(this, arguments); }
  934. var StartEventTimerIcon = (({
  935. styles = {},
  936. ...props
  937. }) => /*#__PURE__*/React.createElement("svg", _extends$8({
  938. xmlns: "http://www.w3.org/2000/svg",
  939. width: "32",
  940. height: "32"
  941. }, props), /*#__PURE__*/React.createElement("path", {
  942. d: "M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-.143 6.676c-2.967.02-5.797 1.97-6.89 4.727-1.138 2.695-.51 6.012 1.537 8.102 1.99 2.142 5.268 2.932 8.014 1.928 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.881-4.3-7.137a7.552 7.552 0 00-3.43-.75zm.27 1.383c2.71.012 5.254 2.015 5.886 4.656.704 2.577-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.085-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86h.13zm1.833 1.765l-2.074 3.763c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.181l1.992-3.615-.757-.418z"
  943. })));
  944. function _extends$7() { _extends$7 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$7.apply(this, arguments); }
  945. var SubprocessCollapsedIcon = (({
  946. styles = {},
  947. ...props
  948. }) => /*#__PURE__*/React.createElement("svg", _extends$7({
  949. xmlns: "http://www.w3.org/2000/svg",
  950. width: "32",
  951. height: "32"
  952. }, props), /*#__PURE__*/React.createElement("path", {
  953. d: "M5.637 3A5.644 5.644 0 000 8.637v15.417a5.644 5.644 0 005.637 5.637h20.726A5.644 5.644 0 0032 24.054V8.637A5.644 5.644 0 0026.363 3H5.637zm0 1.778h20.726a3.83 3.83 0 013.859 3.859v15.417a3.83 3.83 0 01-3.859 3.858h-4.201V16.695H9.838v11.217H5.637a3.83 3.83 0 01-3.859-3.858V8.637a3.83 3.83 0 013.859-3.859zm5.33 13.046h10.066v10.065H10.967V17.824zm4.189 1.431V22.06H12.35v1.689h2.804V26.554h1.69V23.749h2.804V22.06h-2.804V19.255h-1.69z"
  954. })));
  955. function _extends$6() { _extends$6 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$6.apply(this, arguments); }
  956. var SubprocessExpandedIcon = (({
  957. styles = {},
  958. ...props
  959. }) => /*#__PURE__*/React.createElement("svg", _extends$6({
  960. xmlns: "http://www.w3.org/2000/svg",
  961. width: "32",
  962. height: "32"
  963. }, props), /*#__PURE__*/React.createElement("path", {
  964. d: "M5.636 3A5.642 5.642 0 000 8.636v15.418a5.643 5.643 0 005.636 5.636h20.728A5.643 5.643 0 0032 24.054V8.636A5.642 5.642 0 0026.364 3H5.636zm0 1.778h20.728a3.83 3.83 0 013.858 3.858v15.418a3.83 3.83 0 01-3.858 3.858h-4.203V16.723H9.84v11.189H5.636a3.83 3.83 0 01-3.858-3.858V8.636a3.83 3.83 0 013.858-3.858zm5.331 13.074h10.066v10.06H10.967v-10.06zm1.336 3.996v1.711h7.394v-1.71h-7.394z"
  965. })));
  966. function _extends$5() { _extends$5 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$5.apply(this, arguments); }
  967. var TaskNoneIcon = (({
  968. styles = {},
  969. ...props
  970. }) => /*#__PURE__*/React.createElement("svg", _extends$5({
  971. xmlns: "http://www.w3.org/2000/svg",
  972. width: "32",
  973. height: "32"
  974. }, props), /*#__PURE__*/React.createElement("path", {
  975. d: "M6.494 2.667C2.916 2.667 0 5.57 0 9.142v13.383C0 26.097 2.916 29 6.494 29h19.012C29.084 29 32 26.097 32 22.525V9.142c0-3.572-2.916-6.475-6.494-6.475H6.494zm0 2h19.012c2.509 0 4.494 1.98 4.494 4.475v13.383C30 25.02 28.015 27 25.506 27H6.494C3.985 27 2 25.02 2 22.525V9.142c0-2.495 1.985-4.475 4.494-4.475z"
  976. })));
  977. function _extends$4() { _extends$4 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$4.apply(this, arguments); }
  978. var TextAnnotationicon = (({
  979. styles = {},
  980. ...props
  981. }) => /*#__PURE__*/React.createElement("svg", _extends$4({
  982. xmlns: "http://www.w3.org/2000/svg",
  983. width: "32",
  984. height: "32"
  985. }, props), /*#__PURE__*/React.createElement("path", {
  986. d: "M22.087 0v31.647H32v-1.788h-8.125V1.788H32V0h-9.913zm-2.924 13.999l-2.737 2.167 2.167 2.738 2.738-2.167-2.168-2.738zm-5.475 4.335L10.95 20.5l2.168 2.738 2.737-2.168-2.167-2.737zm-5.475 4.335l-2.738 2.167 2.168 2.738 2.737-2.168-2.167-2.737zm-5.476 4.335L0 29.17l2.167 2.738 2.738-2.168-2.168-2.737z"
  987. })));
  988. function _extends$3() { _extends$3 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3.apply(this, arguments); }
  989. var TransactionIcon = (({
  990. styles = {},
  991. ...props
  992. }) => /*#__PURE__*/React.createElement("svg", _extends$3({
  993. xmlns: "http://www.w3.org/2000/svg",
  994. width: "32",
  995. height: "32"
  996. }, props), /*#__PURE__*/React.createElement("path", {
  997. d: "M5.422 3A5.424 5.424 0 000 8.422v15.822a5.424 5.424 0 005.422 5.423h21.156A5.424 5.424 0 0032 24.244V8.422A5.424 5.424 0 0026.578 3H5.422zm0 1.244h21.156a4.155 4.155 0 014.178 4.178v15.822a4.155 4.155 0 01-4.178 4.178H5.422a4.155 4.155 0 01-4.178-4.178V8.422a4.155 4.155 0 014.178-4.178zm1.056 1.778a3.373 3.373 0 00-3.367 3.366v13.89a3.373 3.373 0 003.367 3.366h19.044a3.373 3.373 0 003.367-3.366V9.388a3.373 3.373 0 00-3.367-3.366H6.478zm0 1.245h19.044c1.187 0 2.122.935 2.122 2.121v13.89a2.104 2.104 0 01-2.122 2.122H6.478a2.104 2.104 0 01-2.122-2.122V9.388c0-1.186.935-2.121 2.122-2.121z"
  998. })));
  999. function _extends$2() { _extends$2 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
  1000. var UserTaskIcon = (({
  1001. styles = {},
  1002. ...props
  1003. }) => /*#__PURE__*/React.createElement("svg", _extends$2({
  1004. xmlns: "http://www.w3.org/2000/svg",
  1005. width: "32",
  1006. height: "32"
  1007. }, props), /*#__PURE__*/React.createElement("path", {
  1008. fillRule: "evenodd",
  1009. d: "M10.263 7.468c-1.698 0-2.912 1.305-2.915 2.791v.001c0 .45.121.924.311 1.352.138.309.308.593.516.82-1.235.423-2.683 1.119-3.414 2.49l-.04.075v4.44h11.083v-4.44l-.04-.074c-.72-1.352-2.136-2.047-3.36-2.471.597-.608.774-1.392.774-2.192-.004-1.487-1.218-2.792-2.915-2.792zm-1.16 1.583c.08 0 .165.003.26.008.757.045 1.012.181 1.207.31.196.13.334.252.851.268.404-.016.598-.087.737-.169.056-.033.103-.067.152-.1.128.275.197.578.198.893 0 .894-.154 1.52-.975 2.034l.08.604c.171.052.348.11.527.171.025.105.054.242.073.387.02.153.029.311.016.43a.422.422 0 01-.056.19c-.417.417-1.157.66-1.908.66-.75 0-1.49-.243-1.908-.66a.422.422 0 01-.056-.19 1.949 1.949 0 01.016-.43c.02-.146.049-.284.074-.388.177-.062.352-.118.521-.17l.048-.648a.616.616 0 00-.126-.118c-.183-.138-.405-.44-.562-.793-.157-.353-.254-.757-.254-1.08 0-.387.105-.758.297-1.079l.11-.04c.143-.046.339-.09.679-.09zm-1.448 4.304l-.002.014c-.025.185-.04.387-.018.589.021.202.074.42.248.593.595.594 1.494.857 2.382.857.889 0 1.788-.263 2.382-.857.174-.174.227-.391.249-.593a2.496 2.496 0 00-.018-.59l-.002-.01c.903.396 1.776.963 2.258 1.81v3.599H13.53v-2.538h-.67v2.538H7.651v-2.538h-.67v2.538H5.39v-3.599c.483-.849 1.359-1.416 2.264-1.813zM6.495 3C2.914 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.01C28.016 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5z"
  1010. })));
  1011. var iconsByType = {
  1012. 'Association': AssociationIcon,
  1013. 'BusinessRuleTask': BusinessRuleTaskIcon,
  1014. 'CallActivity': CallActivityIcon,
  1015. 'Collaboration': CollaborationIcon,
  1016. 'ConditionalFlow': ConditionalFlowIcon,
  1017. 'SequenceFlow': ConnectionIcon,
  1018. 'DataInput': DataInputIcon,
  1019. 'DataInputAssociation': DataInputOutputAssociationIcon,
  1020. 'DataOutput': DataOutputIcon,
  1021. 'DataOutputAssociation': DataInputOutputAssociationIcon,
  1022. 'DataObjectReference': DataObjectIcon,
  1023. 'DataStoreReference': DataStoreIcon,
  1024. 'DefaultFlow': DefaultFlowIcon,
  1025. 'CancelEndEvent': EndEventCancelIcon,
  1026. 'CompensateEndEvent': EndEventCompensationIcon,
  1027. 'ErrorEndEvent': EndEventErrorIcon,
  1028. 'EscalationEndEvent': EndEventEscalationIcon,
  1029. 'LinkEndEvent': EndEventLinkIcon,
  1030. 'MessageEndEvent': EndEventMessageIcon,
  1031. 'MultipleEndEvent': EndEventMultipleIcon,
  1032. 'EndEvent': EndEventNoneIcon,
  1033. 'SignalEndEvent': EndEventSignalIcon,
  1034. 'TerminateEndEvent': EndEventTerminateIcon,
  1035. 'EventSubProcess': EventSubProcessExpandedIcon,
  1036. 'ComplexGateway': GatewayComplexIcon,
  1037. 'EventBasedGateway': GatewayEventBasedIcon,
  1038. 'ExclusiveGateway': GatewayXorIcon,
  1039. 'Gateway': GatewayNoneIcon,
  1040. 'InclusiveGateway': GatewayOrIcon,
  1041. 'ParallelGateway': GatewayParallelIcon,
  1042. 'Group': GroupIcon,
  1043. 'CancelIntermediateCatchEvent': IntermediateEventCatchCancelIcon,
  1044. 'CompensateIntermediateCatchEvent': IntermediateEventCatchCompensationIcon,
  1045. 'ConditionalIntermediateCatchEvent': IntermediateEventCatchConditionIcon,
  1046. 'ErrorIntermediateCatchEvent': IntermediateEventCatchErrorIcon,
  1047. 'EscalationIntermediateCatchEvent': IntermediateEventCatchEscalationIcon,
  1048. 'LinkIntermediateCatchEvent': IntermediateEventCatchLinkIcon,
  1049. 'MessageIntermediateCatchEvent': IntermediateEventCatchMessageIcon,
  1050. 'MultipleIntermediateCatchEvent': IntermediateEventCatchMultipleIcon,
  1051. 'ConditionalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,
  1052. 'EscalationIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,
  1053. 'MessageIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,
  1054. 'MultipleIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,
  1055. 'ParallelIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,
  1056. 'SignalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,
  1057. 'TimerIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,
  1058. 'ParallelMultipleIntermediateCatchEvent': IntermediateEventCatchParallelMultipleIcon,
  1059. 'SignalIntermediateCatchEvent': IntermediateEventCatchSignalIcon,
  1060. 'TimerIntermediateCatchEvent': IntermediateEventCatchTimerIcon,
  1061. 'IntermediateThrowEvent': IntermediateEventNoneIcon,
  1062. 'CompensateIntermediateThrowEvent': IntermediateEventThrowCompensationIcon,
  1063. 'EscalationIntermediateThrowEvent': IntermediateEventThrowEscalationIcon,
  1064. 'LinkIntermediateThrowEvent': IntermediateEventThrowLinkIcon,
  1065. 'MessageIntermediateThrowEvent': IntermediateEventThrowMessageIcon,
  1066. 'MultipleIntermediateThrowEvent': IntermediateEventThrowMultipleIcon,
  1067. 'SignalIntermediateThrowEvent': IntermediateEventThrowSignalIcon,
  1068. 'Lane': LaneIcon,
  1069. 'ManualTask': ManualTaskIcon,
  1070. 'MessageFlow': MessageFlowIcon,
  1071. 'Participant': ParticipantIcon,
  1072. 'Process': ProcessIcon,
  1073. 'ReceiveTask': ReceiveTaskIcon,
  1074. 'ScriptTask': ScriptTaskIcon,
  1075. 'SendTask': SendTaskIcon,
  1076. 'ServiceTask': ServiceTaskIcon,
  1077. 'CompensateStartEvent': StartEventCompensationIcon,
  1078. 'ConditionalStartEvent': StartEventConditionIcon,
  1079. 'ErrorStartEvent': StartEventErrorIcon,
  1080. 'EscalationStartEvent': StartEventEscalationIcon,
  1081. 'MessageStartEvent': StartEventMessageIcon,
  1082. 'MultipleStartEvent': StartEventMultipleIcon,
  1083. 'ConditionalStartEventNonInterrupting': StartEventNonInterruptingConditionIcon,
  1084. 'EscalationStartEventNonInterrupting': StartEventNonInterruptingEscalationIcon,
  1085. 'MessageStartEventNonInterrupting': StartEventNonInterruptingMessageIcon,
  1086. 'MultipleStartEventNonInterrupting': StartEventNonInterruptingMultipleIcon,
  1087. 'ParallelMultipleStartEventNonInterrupting': StartEventNonInterruptingParallelMultipleIcon,
  1088. 'SignalStartEventNonInterrupting': StartEventNonInterruptingSignalIcon,
  1089. 'TimerStartEventNonInterrupting': StartEventNonInterruptingTimerIcon,
  1090. 'CancelBoundaryEvent': IntermediateEventCatchCancelIcon,
  1091. 'CompensateBoundaryEvent': IntermediateEventCatchCompensationIcon,
  1092. 'ConditionalBoundaryEvent': IntermediateEventCatchConditionIcon,
  1093. 'ErrorBoundaryEvent': IntermediateEventCatchErrorIcon,
  1094. 'EscalationBoundaryEvent': IntermediateEventCatchEscalationIcon,
  1095. 'LinkBoundaryEvent': IntermediateEventCatchLinkIcon,
  1096. 'MessageBoundaryEvent': IntermediateEventCatchMessageIcon,
  1097. 'MultipleBoundaryEvent': IntermediateEventCatchMultipleIcon,
  1098. 'BoundaryEvent': IntermediateEventNoneIcon,
  1099. 'ConditionalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,
  1100. 'EscalationBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,
  1101. 'MessageBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,
  1102. 'MultipleBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,
  1103. 'ParallelBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,
  1104. 'SignalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,
  1105. 'TimerBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,
  1106. 'ParallelMultipleBoundaryEvent': IntermediateEventCatchParallelMultipleIcon,
  1107. 'SignalBoundaryEvent': IntermediateEventCatchSignalIcon,
  1108. 'TimerBoundaryEvent': IntermediateEventCatchTimerIcon,
  1109. 'StartEvent': StartEventNoneIcon,
  1110. 'ParallelMultipleStartEvent': StartEventParallelMultipleIcon,
  1111. 'SignalStartEvent': StartEventSignalIcon,
  1112. 'TimerStartEvent': StartEventTimerIcon,
  1113. 'CollapsedSubProcess': SubprocessCollapsedIcon,
  1114. 'CollapsedAdHocSubProcess': SubprocessCollapsedIcon,
  1115. 'ExpandedSubProcess': SubprocessExpandedIcon,
  1116. 'ExpandedAdHocSubProcess': SubprocessExpandedIcon,
  1117. 'Task': TaskNoneIcon,
  1118. 'TextAnnotation': TextAnnotationicon,
  1119. 'Transaction': TransactionIcon,
  1120. 'UserTask': UserTaskIcon
  1121. };
  1122. function getConcreteType(element) {
  1123. const {
  1124. type: elementType
  1125. } = element;
  1126. let type = getRawType(elementType);
  1127. // (1) event definition types
  1128. const eventDefinition = getEventDefinition$2(element);
  1129. if (eventDefinition) {
  1130. type = `${getEventDefinitionPrefix(eventDefinition)}${type}`;
  1131. // (1.1) interrupting / non interrupting
  1132. if (is(element, 'bpmn:StartEvent') && !isInterrupting$1(element) || is(element, 'bpmn:BoundaryEvent') && !isCancelActivity(element)) {
  1133. type = `${type}NonInterrupting`;
  1134. }
  1135. return type;
  1136. }
  1137. // (2) sub process types
  1138. if (is(element, 'bpmn:SubProcess') && !is(element, 'bpmn:Transaction')) {
  1139. if (isEventSubProcess(element)) {
  1140. type = `Event${type}`;
  1141. } else {
  1142. const expanded = isExpanded(element) && !isPlane(element);
  1143. type = `${expanded ? 'Expanded' : 'Collapsed'}${type}`;
  1144. }
  1145. }
  1146. // (3) conditional + default flows
  1147. if (isDefaultFlow(element)) {
  1148. type = 'DefaultFlow';
  1149. }
  1150. if (isConditionalFlow(element)) {
  1151. type = 'ConditionalFlow';
  1152. }
  1153. return type;
  1154. }
  1155. const PanelHeaderProvider = {
  1156. getDocumentationRef: element => {
  1157. const elementTemplates = getTemplatesService();
  1158. if (elementTemplates) {
  1159. return getTemplateDocumentation(element, elementTemplates);
  1160. }
  1161. },
  1162. getElementLabel: element => {
  1163. if (is(element, 'bpmn:Process')) {
  1164. return getBusinessObject(element).name;
  1165. }
  1166. return getLabel(element);
  1167. },
  1168. getElementIcon: element => {
  1169. const concreteType = getConcreteType(element);
  1170. const elementTemplates = getTemplatesService();
  1171. if (elementTemplates) {
  1172. const template = getTemplate(element, elementTemplates);
  1173. if (template && template.icon) {
  1174. return () => jsx("img", {
  1175. class: "bio-properties-panel-header-template-icon",
  1176. width: "32",
  1177. height: "32",
  1178. src: template.icon.contents
  1179. });
  1180. }
  1181. }
  1182. return iconsByType[concreteType];
  1183. },
  1184. getTypeLabel: element => {
  1185. const elementTemplates = getTemplatesService();
  1186. if (elementTemplates) {
  1187. const template = getTemplate(element, elementTemplates);
  1188. if (template && template.name) {
  1189. return template.name;
  1190. }
  1191. }
  1192. const concreteType = getConcreteType(element);
  1193. return concreteType.replace(/(\B[A-Z])/g, ' $1').replace(/(\bNon Interrupting)/g, '($1)');
  1194. }
  1195. };
  1196. // helpers ///////////////////////
  1197. function isCancelActivity(element) {
  1198. const businessObject = getBusinessObject(element);
  1199. return businessObject && businessObject.cancelActivity !== false;
  1200. }
  1201. function getEventDefinition$2(element) {
  1202. const businessObject = getBusinessObject(element),
  1203. eventDefinitions = businessObject.eventDefinitions;
  1204. return eventDefinitions && eventDefinitions[0];
  1205. }
  1206. function getRawType(type) {
  1207. return type.split(':')[1];
  1208. }
  1209. function getEventDefinitionPrefix(eventDefinition) {
  1210. const rawType = getRawType(eventDefinition.$type);
  1211. return rawType.replace('EventDefinition', '');
  1212. }
  1213. function isDefaultFlow(element) {
  1214. const businessObject = getBusinessObject(element);
  1215. const sourceBusinessObject = getBusinessObject(element.source);
  1216. if (!is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {
  1217. return false;
  1218. }
  1219. return sourceBusinessObject.default && sourceBusinessObject.default === businessObject && (is(sourceBusinessObject, 'bpmn:Gateway') || is(sourceBusinessObject, 'bpmn:Activity'));
  1220. }
  1221. function isConditionalFlow(element) {
  1222. const businessObject = getBusinessObject(element);
  1223. const sourceBusinessObject = getBusinessObject(element.source);
  1224. if (!is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {
  1225. return false;
  1226. }
  1227. return businessObject.conditionExpression && is(sourceBusinessObject, 'bpmn:Activity');
  1228. }
  1229. function isPlane(element) {
  1230. // Backwards compatibility for bpmn-js<8
  1231. const di = element && (element.di || getBusinessObject(element).di);
  1232. return is(di, 'bpmndi:BPMNPlane');
  1233. }
  1234. function getTemplatesService() {
  1235. // eslint-disable-next-line react-hooks/rules-of-hooks
  1236. return useService('elementTemplates', false);
  1237. }
  1238. function getTemplate(element, elementTemplates) {
  1239. return elementTemplates.get(element);
  1240. }
  1241. function getTemplateDocumentation(element, elementTemplates) {
  1242. const template = getTemplate(element, elementTemplates);
  1243. return template && template.documentationRef;
  1244. }
  1245. function _extends$1() { _extends$1 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
  1246. var EmptyIcon = (({
  1247. styles = {},
  1248. ...props
  1249. }) => /*#__PURE__*/React.createElement("svg", _extends$1({
  1250. xmlns: "http://www.w3.org/2000/svg",
  1251. xmlnsXlink: "http://www.w3.org/1999/xlink",
  1252. width: "64",
  1253. height: "64"
  1254. }, props), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("rect", {
  1255. id: "a",
  1256. width: "57",
  1257. height: "47",
  1258. x: "3",
  1259. y: "8",
  1260. rx: "7"
  1261. }), /*#__PURE__*/React.createElement("mask", {
  1262. id: "b",
  1263. width: "57",
  1264. height: "47",
  1265. x: "0",
  1266. y: "0",
  1267. fill: "#fff",
  1268. maskContentUnits: "userSpaceOnUse",
  1269. maskUnits: "objectBoundingBox"
  1270. }, /*#__PURE__*/React.createElement("use", {
  1271. xlinkHref: "#a"
  1272. }))), /*#__PURE__*/React.createElement("g", {
  1273. fill: "none",
  1274. fillRule: "evenodd"
  1275. }, /*#__PURE__*/React.createElement("path", {
  1276. fill: "#818798",
  1277. d: "M52 11a5 5 0 015 5v31a5 5 0 01-5 5H11a5 5 0 01-5-5V16a5 5 0 015-5h41zm0 2H11a3 3 0 00-2.995 2.824L8 16v31a3 3 0 002.824 2.995L11 50h41a3 3 0 002.995-2.824L55 47V16a3 3 0 00-2.824-2.995L52 13z"
  1278. }), /*#__PURE__*/React.createElement("path", {
  1279. fill: "#D5D7DD",
  1280. d: "M16 24h31v6H16zM21 33h21v6H21z"
  1281. }), /*#__PURE__*/React.createElement("use", {
  1282. stroke: "#B9BCC6",
  1283. strokeDasharray: "5 2",
  1284. strokeWidth: "2",
  1285. mask: "url(#b)",
  1286. xlinkHref: "#a"
  1287. }))));
  1288. function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  1289. var MultipleIcon = (({
  1290. styles = {},
  1291. ...props
  1292. }) => /*#__PURE__*/React.createElement("svg", _extends({
  1293. xmlns: "http://www.w3.org/2000/svg",
  1294. xmlnsXlink: "http://www.w3.org/1999/xlink",
  1295. width: "128",
  1296. height: "64"
  1297. }, props), /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("path", {
  1298. id: "a",
  1299. d: "M9 9h110v47H9z"
  1300. }), /*#__PURE__*/React.createElement("mask", {
  1301. id: "b",
  1302. width: "110",
  1303. height: "47",
  1304. x: "0",
  1305. y: "0",
  1306. fill: "#fff",
  1307. maskContentUnits: "userSpaceOnUse",
  1308. maskUnits: "objectBoundingBox"
  1309. }, /*#__PURE__*/React.createElement("use", {
  1310. xlinkHref: "#a"
  1311. }))), /*#__PURE__*/React.createElement("g", {
  1312. fill: "none",
  1313. fillRule: "evenodd"
  1314. }, /*#__PURE__*/React.createElement("path", {
  1315. fill: "#818798",
  1316. d: "M25 20.272L37.728 33 25 45.728 12.272 33 25 20.272zm0 2.829L15.1 33l9.9 9.9 9.9-9.9-9.9-9.9z"
  1317. }), /*#__PURE__*/React.createElement("path", {
  1318. fill: "#D5D7DD",
  1319. d: "M17 47h16v6H17z"
  1320. }), /*#__PURE__*/React.createElement("path", {
  1321. fill: "#818798",
  1322. d: "M35 32h27v2H35z"
  1323. }), /*#__PURE__*/React.createElement("path", {
  1324. fill: "#818798",
  1325. d: "M60 30v6l6-3z"
  1326. }), /*#__PURE__*/React.createElement("path", {
  1327. fill: "#D5D7DD",
  1328. d: "M80 34h21v6H80z"
  1329. }), /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
  1330. fill: "#818798",
  1331. d: "M111 12a5 5 0 015 5v31a5 5 0 01-5 5H70a5 5 0 01-5-5V17a5 5 0 015-5h41zm0 2H70a3 3 0 00-3 3v31a3 3 0 003 3h41a3 3 0 003-3V17a3 3 0 00-3-3z"
  1332. }), /*#__PURE__*/React.createElement("path", {
  1333. fill: "#D5D7DD",
  1334. d: "M75 25h31v6H75z"
  1335. })), /*#__PURE__*/React.createElement("use", {
  1336. stroke: "#B9BCC6",
  1337. strokeDasharray: "5 2",
  1338. strokeWidth: "2",
  1339. mask: "url(#b)",
  1340. xlinkHref: "#a"
  1341. }))));
  1342. const PanelPlaceholderProvider = translate => {
  1343. if (!translate) translate = text => text;
  1344. return {
  1345. getEmpty: () => {
  1346. return {
  1347. text: translate('Select an element to edit its properties.'),
  1348. icon: EmptyIcon
  1349. };
  1350. },
  1351. getMultiple: () => {
  1352. return {
  1353. text: translate('Multiple elements are selected. Select a single element to edit its properties.'),
  1354. icon: MultipleIcon
  1355. };
  1356. }
  1357. };
  1358. };
  1359. function BpmnPropertiesPanel(props) {
  1360. const {
  1361. element,
  1362. injector,
  1363. getProviders,
  1364. layoutConfig: initialLayoutConfig,
  1365. descriptionConfig,
  1366. tooltipConfig,
  1367. feelPopupContainer
  1368. } = props;
  1369. const canvas = injector.get('canvas');
  1370. const elementRegistry = injector.get('elementRegistry');
  1371. const eventBus = injector.get('eventBus');
  1372. const translate = injector.get('translate');
  1373. const [state, setState] = useState({
  1374. selectedElement: element
  1375. });
  1376. const selectedElement = state.selectedElement;
  1377. /**
  1378. * @param {djs.model.Base | Array<djs.model.Base>} element
  1379. */
  1380. const _update = element => {
  1381. if (!element) {
  1382. return;
  1383. }
  1384. let newSelectedElement = element;
  1385. // handle labels
  1386. if (newSelectedElement && newSelectedElement.type === 'label') {
  1387. newSelectedElement = newSelectedElement.labelTarget;
  1388. }
  1389. setState({
  1390. ...state,
  1391. selectedElement: newSelectedElement
  1392. });
  1393. // notify interested parties on property panel updates
  1394. eventBus.fire('propertiesPanel.updated', {
  1395. element: newSelectedElement
  1396. });
  1397. };
  1398. // (2) react on element changes
  1399. // (2a) selection changed
  1400. useEffect(() => {
  1401. const onSelectionChanged = e => {
  1402. const {
  1403. newSelection = []
  1404. } = e;
  1405. if (newSelection.length > 1) {
  1406. return _update(newSelection);
  1407. }
  1408. const newElement = newSelection[0];
  1409. const rootElement = canvas.getRootElement();
  1410. if (isImplicitRoot$1(rootElement)) {
  1411. return;
  1412. }
  1413. _update(newElement || rootElement);
  1414. };
  1415. eventBus.on('selection.changed', onSelectionChanged);
  1416. return () => {
  1417. eventBus.off('selection.changed', onSelectionChanged);
  1418. };
  1419. }, []);
  1420. // (2b) selected element changed
  1421. useEffect(() => {
  1422. const onElementsChanged = e => {
  1423. const elements = e.elements;
  1424. const updatedElement = findElement(elements, selectedElement);
  1425. if (updatedElement && elementExists(updatedElement, elementRegistry)) {
  1426. _update(updatedElement);
  1427. }
  1428. };
  1429. eventBus.on('elements.changed', onElementsChanged);
  1430. return () => {
  1431. eventBus.off('elements.changed', onElementsChanged);
  1432. };
  1433. }, [selectedElement]);
  1434. // (2c) root element changed
  1435. useEffect(() => {
  1436. const onRootAdded = e => {
  1437. const element = e.element;
  1438. _update(element);
  1439. };
  1440. eventBus.on('root.added', onRootAdded);
  1441. return () => {
  1442. eventBus.off('root.added', onRootAdded);
  1443. };
  1444. }, [selectedElement]);
  1445. // (2d) provided entries changed
  1446. useEffect(() => {
  1447. const onProvidersChanged = () => {
  1448. _update(selectedElement);
  1449. };
  1450. eventBus.on('propertiesPanel.providersChanged', onProvidersChanged);
  1451. return () => {
  1452. eventBus.off('propertiesPanel.providersChanged', onProvidersChanged);
  1453. };
  1454. }, [selectedElement]);
  1455. // (2e) element templates changed
  1456. useEffect(() => {
  1457. const onTemplatesChanged = () => {
  1458. _update(selectedElement);
  1459. };
  1460. eventBus.on('elementTemplates.changed', onTemplatesChanged);
  1461. return () => {
  1462. eventBus.off('elementTemplates.changed', onTemplatesChanged);
  1463. };
  1464. }, [selectedElement]);
  1465. // (3) create properties panel context
  1466. const bpmnPropertiesPanelContext = {
  1467. selectedElement,
  1468. injector,
  1469. getService(type, strict) {
  1470. return injector.get(type, strict);
  1471. }
  1472. };
  1473. // (4) retrieve groups for selected element
  1474. const providers = getProviders(selectedElement);
  1475. const groups = useMemo(() => {
  1476. return reduce(providers, function (groups, provider) {
  1477. // do not collect groups for multi element state
  1478. if (isArray(selectedElement)) {
  1479. return [];
  1480. }
  1481. const updater = provider.getGroups(selectedElement);
  1482. return updater(groups);
  1483. }, []);
  1484. }, [providers, selectedElement]);
  1485. // (5) notify layout changes
  1486. const [layoutConfig, setLayoutConfig] = useState(initialLayoutConfig || {});
  1487. const onLayoutChanged = useCallback(newLayout => {
  1488. eventBus.fire('propertiesPanel.layoutChanged', {
  1489. layout: newLayout
  1490. });
  1491. }, [eventBus]);
  1492. // React to external layout changes
  1493. useEffect(() => {
  1494. const cb = e => {
  1495. const {
  1496. layout
  1497. } = e;
  1498. setLayoutConfig(layout);
  1499. };
  1500. eventBus.on('propertiesPanel.setLayout', cb);
  1501. return () => eventBus.off('propertiesPanel.setLayout', cb);
  1502. }, [eventBus, setLayoutConfig]);
  1503. // (6) notify description changes
  1504. const onDescriptionLoaded = description => {
  1505. eventBus.fire('propertiesPanel.descriptionLoaded', {
  1506. description
  1507. });
  1508. };
  1509. // (7) notify tooltip changes
  1510. const onTooltipLoaded = tooltip => {
  1511. eventBus.fire('propertiesPanel.tooltipLoaded', {
  1512. tooltip
  1513. });
  1514. };
  1515. return jsx(BpmnPropertiesPanelContext.Provider, {
  1516. value: bpmnPropertiesPanelContext,
  1517. children: jsx(PropertiesPanel, {
  1518. element: selectedElement,
  1519. headerProvider: PanelHeaderProvider,
  1520. placeholderProvider: PanelPlaceholderProvider(translate),
  1521. groups: groups,
  1522. layoutConfig: layoutConfig,
  1523. layoutChanged: onLayoutChanged,
  1524. descriptionConfig: descriptionConfig,
  1525. descriptionLoaded: onDescriptionLoaded,
  1526. tooltipConfig: tooltipConfig,
  1527. tooltipLoaded: onTooltipLoaded,
  1528. feelPopupContainer: feelPopupContainer,
  1529. eventBus: eventBus
  1530. })
  1531. });
  1532. }
  1533. // helpers //////////////////////////
  1534. function isImplicitRoot$1(element) {
  1535. // Backwards compatibility for diagram-js<7.4.0, see https://github.com/bpmn-io/bpmn-properties-panel/pull/102
  1536. return element && (element.isImplicit || element.id === '__implicitroot');
  1537. }
  1538. function findElement(elements, element) {
  1539. return find(elements, e => e === element);
  1540. }
  1541. function elementExists(element, elementRegistry) {
  1542. return element && elementRegistry.get(element.id);
  1543. }
  1544. const DEFAULT_PRIORITY = 1000;
  1545. /**
  1546. * @typedef { import('@bpmn-io/properties-panel').GroupDefinition } GroupDefinition
  1547. * @typedef { import('@bpmn-io/properties-panel').ListGroupDefinition } ListGroupDefinition
  1548. * @typedef { { getGroups: (ModdleElement) => (Array{GroupDefinition|ListGroupDefinition}) => Array{GroupDefinition|ListGroupDefinition}) } PropertiesProvider
  1549. */
  1550. class BpmnPropertiesPanelRenderer {
  1551. constructor(config, injector, eventBus) {
  1552. const {
  1553. parent,
  1554. layout: layoutConfig,
  1555. description: descriptionConfig,
  1556. tooltip: tooltipConfig,
  1557. feelPopupContainer
  1558. } = config || {};
  1559. this._eventBus = eventBus;
  1560. this._injector = injector;
  1561. this._layoutConfig = layoutConfig;
  1562. this._descriptionConfig = descriptionConfig;
  1563. this._tooltipConfig = tooltipConfig;
  1564. this._feelPopupContainer = feelPopupContainer;
  1565. this._container = domify('<div style="height: 100%" class="bio-properties-panel-container"></div>');
  1566. var commandStack = injector.get('commandStack', false);
  1567. commandStack && setupKeyboard(this._container, eventBus, commandStack);
  1568. eventBus.on('diagram.init', () => {
  1569. if (parent) {
  1570. this.attachTo(parent);
  1571. }
  1572. });
  1573. eventBus.on('diagram.destroy', () => {
  1574. this.detach();
  1575. });
  1576. eventBus.on('root.added', event => {
  1577. const {
  1578. element
  1579. } = event;
  1580. this._render(element);
  1581. });
  1582. }
  1583. /**
  1584. * Attach the properties panel to a parent node.
  1585. *
  1586. * @param {HTMLElement} container
  1587. */
  1588. attachTo(container) {
  1589. if (!container) {
  1590. throw new Error('container required');
  1591. }
  1592. // unwrap jQuery if provided
  1593. if (container.get && container.constructor.prototype.jquery) {
  1594. container = container.get(0);
  1595. }
  1596. if (typeof container === 'string') {
  1597. container = query(container);
  1598. }
  1599. // (1) detach from old parent
  1600. this.detach();
  1601. // (2) append to parent container
  1602. container.appendChild(this._container);
  1603. // (3) notify interested parties
  1604. this._eventBus.fire('propertiesPanel.attach');
  1605. }
  1606. /**
  1607. * Detach the properties panel from its parent node.
  1608. */
  1609. detach() {
  1610. const parentNode = this._container.parentNode;
  1611. if (parentNode) {
  1612. parentNode.removeChild(this._container);
  1613. this._eventBus.fire('propertiesPanel.detach');
  1614. }
  1615. }
  1616. /**
  1617. * Register a new properties provider to the properties panel.
  1618. *
  1619. * @param {Number} [priority]
  1620. * @param {PropertiesProvider} provider
  1621. */
  1622. registerProvider(priority, provider) {
  1623. if (!provider) {
  1624. provider = priority;
  1625. priority = DEFAULT_PRIORITY;
  1626. }
  1627. if (typeof provider.getGroups !== 'function') {
  1628. console.error('Properties provider does not implement #getGroups(element) API');
  1629. return;
  1630. }
  1631. this._eventBus.on('propertiesPanel.getProviders', priority, function (event) {
  1632. event.providers.push(provider);
  1633. });
  1634. this._eventBus.fire('propertiesPanel.providersChanged');
  1635. }
  1636. /**
  1637. * Updates the layout of the properties panel.
  1638. * @param {Object} layout
  1639. */
  1640. setLayout(layout) {
  1641. this._eventBus.fire('propertiesPanel.setLayout', {
  1642. layout
  1643. });
  1644. }
  1645. _getProviders() {
  1646. const event = this._eventBus.createEvent({
  1647. type: 'propertiesPanel.getProviders',
  1648. providers: []
  1649. });
  1650. this._eventBus.fire(event);
  1651. return event.providers;
  1652. }
  1653. _render(element) {
  1654. const canvas = this._injector.get('canvas');
  1655. if (!element) {
  1656. element = canvas.getRootElement();
  1657. }
  1658. if (isImplicitRoot(element)) {
  1659. return;
  1660. }
  1661. render(jsx(BpmnPropertiesPanel, {
  1662. element: element,
  1663. injector: this._injector,
  1664. getProviders: this._getProviders.bind(this),
  1665. layoutConfig: this._layoutConfig,
  1666. descriptionConfig: this._descriptionConfig,
  1667. tooltipConfig: this._tooltipConfig,
  1668. feelPopupContainer: this._feelPopupContainer
  1669. }), this._container);
  1670. this._eventBus.fire('propertiesPanel.rendered');
  1671. }
  1672. _destroy() {
  1673. if (this._container) {
  1674. render(null, this._container);
  1675. this._eventBus.fire('propertiesPanel.destroyed');
  1676. }
  1677. }
  1678. }
  1679. BpmnPropertiesPanelRenderer.$inject = ['config.propertiesPanel', 'injector', 'eventBus'];
  1680. // helpers ///////////////////////
  1681. function isImplicitRoot(element) {
  1682. // Backwards compatibility for diagram-js<7.4.0, see https://github.com/bpmn-io/bpmn-properties-panel/pull/102
  1683. return element && (element.isImplicit || element.id === '__implicitroot');
  1684. }
  1685. /**
  1686. * Setup keyboard bindings (undo, redo) on the given container.
  1687. *
  1688. * @param {Element} container
  1689. * @param {EventBus} eventBus
  1690. * @param {CommandStack} commandStack
  1691. */
  1692. function setupKeyboard(container, eventBus, commandStack) {
  1693. function cancel(event) {
  1694. event.preventDefault();
  1695. event.stopPropagation();
  1696. }
  1697. function handleKeys(event) {
  1698. if (isUndo(event)) {
  1699. commandStack.undo();
  1700. return cancel(event);
  1701. }
  1702. if (isRedo(event)) {
  1703. commandStack.redo();
  1704. return cancel(event);
  1705. }
  1706. }
  1707. eventBus.on('keyboard.bind', function () {
  1708. event.bind(container, 'keydown', handleKeys);
  1709. });
  1710. eventBus.on('keyboard.unbind', function () {
  1711. event.unbind(container, 'keydown', handleKeys);
  1712. });
  1713. }
  1714. /**
  1715. * A handler that combines and executes multiple commands.
  1716. *
  1717. * All updates are bundled on the command stack and executed in one step.
  1718. * This also makes it possible to revert the changes in one step.
  1719. *
  1720. * Example use case: remove the camunda:formKey attribute and in addition
  1721. * add all form fields needed for the camunda:formData property.
  1722. */
  1723. class MultiCommandHandler {
  1724. constructor(commandStack) {
  1725. this._commandStack = commandStack;
  1726. }
  1727. preExecute(context) {
  1728. const commandStack = this._commandStack;
  1729. forEach(context, function (command) {
  1730. commandStack.execute(command.cmd, command.context);
  1731. });
  1732. }
  1733. }
  1734. MultiCommandHandler.$inject = ['commandStack'];
  1735. const HANDLERS = {
  1736. 'properties-panel.multi-command-executor': MultiCommandHandler
  1737. };
  1738. function CommandInitializer(eventBus, commandStack) {
  1739. eventBus.on('diagram.init', function () {
  1740. forEach(HANDLERS, function (handler, id) {
  1741. commandStack.registerHandler(id, handler);
  1742. });
  1743. });
  1744. }
  1745. CommandInitializer.$inject = ['eventBus', 'commandStack'];
  1746. var Commands = {
  1747. __init__: [CommandInitializer]
  1748. };
  1749. var index$3 = {
  1750. __depends__: [Commands, DebounceInputModule, FeelPopupModule],
  1751. __init__: ['propertiesPanel'],
  1752. propertiesPanel: ['type', BpmnPropertiesPanelRenderer]
  1753. };
  1754. function ReferenceSelectEntry(props) {
  1755. const {
  1756. autoFocusEntry,
  1757. element,
  1758. getOptions
  1759. } = props;
  1760. const options = getOptions(element);
  1761. const prevOptions = usePrevious(options);
  1762. // auto focus specifc other entry when options changed
  1763. useEffect(() => {
  1764. if (autoFocusEntry && prevOptions && options.length > prevOptions.length) {
  1765. const entry = query(`[data-entry-id="${autoFocusEntry}"]`);
  1766. const focusableInput = query('.bio-properties-panel-input', entry);
  1767. if (focusableInput) {
  1768. focusableInput.select();
  1769. }
  1770. }
  1771. }, [options]);
  1772. return jsx(SelectEntry, {
  1773. ...props
  1774. });
  1775. }
  1776. function isErrorSupported(element) {
  1777. return isAny(element, ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:EndEvent']) && !!getErrorEventDefinition(element);
  1778. }
  1779. function getErrorEventDefinition(element) {
  1780. return getEventDefinition$1(element, 'bpmn:ErrorEventDefinition');
  1781. }
  1782. function getTimerEventDefinition$1(element) {
  1783. return getEventDefinition$1(element, 'bpmn:TimerEventDefinition');
  1784. }
  1785. function getError(element) {
  1786. const errorEventDefinition = getErrorEventDefinition(element);
  1787. return errorEventDefinition && errorEventDefinition.get('errorRef');
  1788. }
  1789. function getEventDefinition$1(element, eventType) {
  1790. const businessObject = getBusinessObject(element);
  1791. const eventDefinitions = businessObject.get('eventDefinitions') || [];
  1792. return find(eventDefinitions, function (definition) {
  1793. return is(definition, eventType);
  1794. });
  1795. }
  1796. function isMessageSupported(element) {
  1797. return is(element, 'bpmn:ReceiveTask') || isAny(element, ['bpmn:StartEvent', 'bpmn:EndEvent', 'bpmn:IntermediateThrowEvent', 'bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent']) && !!getMessageEventDefinition(element);
  1798. }
  1799. function getMessageEventDefinition(element) {
  1800. if (is(element, 'bpmn:ReceiveTask')) {
  1801. return getBusinessObject(element);
  1802. }
  1803. return getEventDefinition$1(element, 'bpmn:MessageEventDefinition');
  1804. }
  1805. function getMessage(element) {
  1806. const messageEventDefinition = getMessageEventDefinition(element);
  1807. return messageEventDefinition && messageEventDefinition.get('messageRef');
  1808. }
  1809. function getLinkEventDefinition(element) {
  1810. return getEventDefinition$1(element, 'bpmn:LinkEventDefinition');
  1811. }
  1812. function getSignalEventDefinition$1(element) {
  1813. return getEventDefinition$1(element, 'bpmn:SignalEventDefinition');
  1814. }
  1815. function isLinkSupported(element) {
  1816. return isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent']) && !!getLinkEventDefinition(element);
  1817. }
  1818. function isSignalSupported$1(element) {
  1819. return is(element, 'bpmn:Event') && !!getSignalEventDefinition$1(element);
  1820. }
  1821. function getSignal$1(element) {
  1822. const signalEventDefinition = getSignalEventDefinition$1(element);
  1823. return signalEventDefinition && signalEventDefinition.get('signalRef');
  1824. }
  1825. function getEscalationEventDefinition(element) {
  1826. return getEventDefinition$1(element, 'bpmn:EscalationEventDefinition');
  1827. }
  1828. function isEscalationSupported(element) {
  1829. return is(element, 'bpmn:Event') && !!getEscalationEventDefinition(element);
  1830. }
  1831. function getEscalation(element) {
  1832. const escalationEventDefinition = getEscalationEventDefinition(element);
  1833. return escalationEventDefinition && escalationEventDefinition.get('escalationRef');
  1834. }
  1835. function isCompensationSupported(element) {
  1836. return isAny(element, ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']) && !!getCompensateEventDefinition(element);
  1837. }
  1838. function getCompensateEventDefinition(element) {
  1839. return getEventDefinition$1(element, 'bpmn:CompensateEventDefinition');
  1840. }
  1841. function getCompensateActivity(element) {
  1842. const compensateEventDefinition = getCompensateEventDefinition(element);
  1843. return compensateEventDefinition && compensateEventDefinition.get('activityRef');
  1844. }
  1845. /**
  1846. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  1847. */
  1848. /**
  1849. * @returns {Array<Entry>} entries
  1850. */
  1851. function CompensationProps(props) {
  1852. const {
  1853. element
  1854. } = props;
  1855. if (!isCompensationSupported(element)) {
  1856. return [];
  1857. }
  1858. return [{
  1859. id: 'waitForCompletion',
  1860. component: WaitForCompletion,
  1861. isEdited: isCheckboxEntryEdited
  1862. }, {
  1863. id: 'activityRef',
  1864. component: ActivityRef,
  1865. isEdited: isSelectEntryEdited
  1866. }];
  1867. }
  1868. function WaitForCompletion(props) {
  1869. const {
  1870. element
  1871. } = props;
  1872. const commandStack = useService('commandStack');
  1873. const translate = useService('translate');
  1874. const compensateEventDefinition = getCompensateEventDefinition(element);
  1875. const getValue = () => {
  1876. return compensateEventDefinition.get('waitForCompletion');
  1877. };
  1878. const setValue = value => {
  1879. commandStack.execute('element.updateModdleProperties', {
  1880. element,
  1881. moddleElement: compensateEventDefinition,
  1882. properties: {
  1883. waitForCompletion: value
  1884. }
  1885. });
  1886. };
  1887. return CheckboxEntry({
  1888. element,
  1889. id: 'waitForCompletion',
  1890. label: translate('Wait for completion'),
  1891. getValue,
  1892. setValue
  1893. });
  1894. }
  1895. function ActivityRef(props) {
  1896. const {
  1897. element
  1898. } = props;
  1899. const commandStack = useService('commandStack');
  1900. const elementRegistry = useService('elementRegistry');
  1901. const translate = useService('translate');
  1902. const compensateEventDefinition = getCompensateEventDefinition(element);
  1903. const getValue = () => {
  1904. const activityRef = getCompensateActivity(element);
  1905. return activityRef && activityRef.get('id');
  1906. };
  1907. const setValue = value => {
  1908. // update (or remove) activityRef
  1909. const activityRef = value ? getBusinessObject(elementRegistry.get(value)) : undefined;
  1910. commandStack.execute('element.updateModdleProperties', {
  1911. element,
  1912. moddleElement: compensateEventDefinition,
  1913. properties: {
  1914. activityRef
  1915. }
  1916. });
  1917. };
  1918. const getOptions = () => {
  1919. let options = [{
  1920. value: '',
  1921. label: translate('<none>')
  1922. }];
  1923. const activities = findActivityRefs(element);
  1924. sortByName$6(activities).forEach(function (activity) {
  1925. options.push({
  1926. value: activity.id,
  1927. label: createOptionLabel(activity)
  1928. });
  1929. });
  1930. return options;
  1931. };
  1932. return ReferenceSelectEntry({
  1933. element,
  1934. id: 'activityRef',
  1935. label: translate('Activity reference'),
  1936. getValue,
  1937. setValue,
  1938. getOptions
  1939. });
  1940. }
  1941. // helper /////////////////////////
  1942. function getFlowElements(element, type) {
  1943. const {
  1944. flowElements
  1945. } = element;
  1946. return flowElements.filter(function (flowElement) {
  1947. return is(flowElement, type);
  1948. });
  1949. }
  1950. function getContainedActivities(element) {
  1951. return getFlowElements(element, 'bpmn:Activity');
  1952. }
  1953. function getContainedBoundaryEvents(element) {
  1954. return getFlowElements(element, 'bpmn:BoundaryEvent');
  1955. }
  1956. /**
  1957. * Checks whether an Activity is attaching a CompensateEvent of the parent container.
  1958. *
  1959. * @param {ModdleElement} activity
  1960. * @param {Array<ModdleElement>} boundaryEvents
  1961. * @returns {Boolean}
  1962. */
  1963. function hasCompensationEventAttached(activity, boundaryEvents) {
  1964. const {
  1965. id: activityId
  1966. } = activity;
  1967. return !!find(boundaryEvents, function (boundaryEvent) {
  1968. const {
  1969. attachedToRef
  1970. } = boundaryEvent;
  1971. const compensateEventDefinition = getCompensateEventDefinition(boundaryEvent);
  1972. return attachedToRef && compensateEventDefinition && attachedToRef.id === activityId;
  1973. });
  1974. }
  1975. /**
  1976. * Checks whether an Activity can be compensated. That's the case when it is
  1977. * a) a CallActivity
  1978. * b) a SubProcess, when it is not event based and not a compensation
  1979. * c) any other Activity, when it is attaching a CompensateEvent of the parent container
  1980. *
  1981. * @param {ModdleElement} activity
  1982. * @param {Array<ModdleElement>} boundaryEvents
  1983. * @returns {Boolean}
  1984. */
  1985. function canBeCompensated(activity, boundaryEvents) {
  1986. return is(activity, 'bpmn:CallActivity') || is(activity, 'bpmn:SubProcess') && !activity.triggeredByEvent && !activity.isForCompensation || hasCompensationEventAttached(activity, boundaryEvents);
  1987. }
  1988. function getActivitiesForCompensation(element) {
  1989. const activities = getContainedActivities(element);
  1990. const boundaryEvents = getContainedBoundaryEvents(element);
  1991. return activities.filter(function (activity) {
  1992. return canBeCompensated(activity, boundaryEvents);
  1993. });
  1994. }
  1995. /**
  1996. * Retrieves all possible activities to reference for a Compensation.
  1997. *
  1998. * @param {djs.model.Base} element
  1999. * @returns {Array<ModdleElement>}
  2000. */
  2001. function findActivityRefs(element) {
  2002. const businessObject = getBusinessObject(element);
  2003. let parent = businessObject.$parent;
  2004. // (1) get all activities in parent container
  2005. let activities = getActivitiesForCompensation(parent);
  2006. // (2) if throwing compensation event is inside an EventSubProcess,
  2007. // also get all activities outside of the event sub process
  2008. if (is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent) {
  2009. parent = parent.$parent;
  2010. if (parent) {
  2011. activities = [...activities, ...getActivitiesForCompensation(parent)];
  2012. }
  2013. }
  2014. return activities;
  2015. }
  2016. /**
  2017. * Retrieves an option label in the form
  2018. * a) with name: "my Task (id=Task_1)"
  2019. * b) without name: "(id=Task_1)"
  2020. *
  2021. * @param {ModdleElement} activity
  2022. * @returns {String}
  2023. */
  2024. function createOptionLabel(activity) {
  2025. const {
  2026. id,
  2027. name
  2028. } = activity;
  2029. return `${name ? name + ' ' : ''}(id=${id})`;
  2030. }
  2031. function sortByName$6(elements) {
  2032. return sortBy(elements, e => (e.name || '').toLowerCase());
  2033. }
  2034. const DOCUMENTATION_TEXT_FORMAT = 'text/plain';
  2035. /**
  2036. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2037. */
  2038. /**
  2039. * @returns {Array<Entry>} entries
  2040. */
  2041. function DocumentationProps(props) {
  2042. const {
  2043. element
  2044. } = props;
  2045. const entries = [{
  2046. id: 'documentation',
  2047. component: ElementDocumentationProperty,
  2048. isEdited: isTextAreaEntryEdited
  2049. }];
  2050. if (hasProcessRef$2(element)) {
  2051. entries.push({
  2052. id: 'processDocumentation',
  2053. component: ProcessDocumentationProperty,
  2054. isEdited: isTextAreaEntryEdited
  2055. });
  2056. }
  2057. return entries;
  2058. }
  2059. function ElementDocumentationProperty(props) {
  2060. const {
  2061. element
  2062. } = props;
  2063. const bpmnFactory = useService('bpmnFactory');
  2064. const commandStack = useService('commandStack');
  2065. const translate = useService('translate');
  2066. const debounce = useService('debounceInput');
  2067. const getValue = getDocumentation(getBusinessObject(element));
  2068. const setValue = setDocumentation(element, getBusinessObject(element), bpmnFactory, commandStack);
  2069. return TextAreaEntry({
  2070. element,
  2071. id: 'documentation',
  2072. label: translate('Element documentation'),
  2073. getValue,
  2074. setValue,
  2075. debounce
  2076. });
  2077. }
  2078. function ProcessDocumentationProperty(props) {
  2079. const {
  2080. element
  2081. } = props;
  2082. const bpmnFactory = useService('bpmnFactory');
  2083. const commandStack = useService('commandStack');
  2084. const translate = useService('translate');
  2085. const debounce = useService('debounceInput');
  2086. const processRef = getBusinessObject(element).processRef;
  2087. const getValue = getDocumentation(processRef);
  2088. const setValue = setDocumentation(element, processRef, bpmnFactory, commandStack);
  2089. return TextAreaEntry({
  2090. element,
  2091. id: 'processDocumentation',
  2092. label: translate('Process documentation'),
  2093. getValue,
  2094. setValue,
  2095. debounce
  2096. });
  2097. }
  2098. // helper ////////////////////////////
  2099. function hasProcessRef$2(element) {
  2100. return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
  2101. }
  2102. function findDocumentation(docs) {
  2103. return docs.find(function (d) {
  2104. return (d.textFormat || DOCUMENTATION_TEXT_FORMAT) === DOCUMENTATION_TEXT_FORMAT;
  2105. });
  2106. }
  2107. /**
  2108. * Retrieves a documentation element from a given moddle element.
  2109. *
  2110. * @param {ModdleElement} businessObject
  2111. *
  2112. * @returns {ModdleElement} documentation element inside the given moddle element.
  2113. */
  2114. function getDocumentation(businessObject) {
  2115. return function () {
  2116. const documentation = findDocumentation(businessObject && businessObject.get('documentation'));
  2117. return documentation && documentation.text;
  2118. };
  2119. }
  2120. /**
  2121. * Sets a documentation element for a given moddle element.
  2122. *
  2123. * @param {ModdleElement} businessObject
  2124. */
  2125. function setDocumentation(element, businessObject, bpmnFactory, commandStack) {
  2126. return function (value) {
  2127. let documentation = findDocumentation(businessObject && businessObject.get('documentation'));
  2128. // (1) update or removing existing documentation
  2129. if (documentation) {
  2130. if (value) {
  2131. return commandStack.execute('element.updateModdleProperties', {
  2132. element,
  2133. moddleElement: documentation,
  2134. properties: {
  2135. text: value
  2136. }
  2137. });
  2138. } else {
  2139. return commandStack.execute('element.updateModdleProperties', {
  2140. element,
  2141. moddleElement: businessObject,
  2142. properties: {
  2143. documentation: without(businessObject.get('documentation'), documentation)
  2144. }
  2145. });
  2146. }
  2147. }
  2148. // (2) create new documentation entry
  2149. if (value) {
  2150. documentation = bpmnFactory.create('bpmn:Documentation', {
  2151. text: value
  2152. });
  2153. return commandStack.execute('element.updateModdleProperties', {
  2154. element,
  2155. moddleElement: businessObject,
  2156. properties: {
  2157. documentation: [...businessObject.get('documentation'), documentation]
  2158. }
  2159. });
  2160. }
  2161. };
  2162. }
  2163. /**
  2164. * Create a new element and (optionally) set its parent.
  2165. *
  2166. * @param {string} type
  2167. * @param {Object} properties
  2168. * @param {import('bpmn-js/lib/model/Types').ModdleElement} parent
  2169. * @param {import('bpmn-js/lib/features/modeling/BpmnFactory').default} bpmnFactory
  2170. *
  2171. * @returns {import('bpmn-js/lib/model/Types').ModdleElement}
  2172. */
  2173. function createElement(type, properties, parent, bpmnFactory) {
  2174. const element = bpmnFactory.create(type, properties);
  2175. if (parent) {
  2176. element.$parent = parent;
  2177. }
  2178. return element;
  2179. }
  2180. /**
  2181. * generate a semantic id with given prefix
  2182. */
  2183. function nextId(prefix) {
  2184. const ids = new Ids([32, 32, 1]);
  2185. return ids.nextPrefixed(prefix);
  2186. }
  2187. function getRoot(businessObject) {
  2188. let parent = businessObject;
  2189. while (parent.$parent) {
  2190. parent = parent.$parent;
  2191. }
  2192. return parent;
  2193. }
  2194. function filterElementsByType(objectList, type) {
  2195. const list = objectList || [];
  2196. return list.filter(element => is(element, type));
  2197. }
  2198. function findRootElementsByType(businessObject, referencedType) {
  2199. const root = getRoot(businessObject);
  2200. return filterElementsByType(root.get('rootElements'), referencedType);
  2201. }
  2202. function findRootElementById(businessObject, type, id) {
  2203. const elements = findRootElementsByType(businessObject, type);
  2204. return elements.find(element => element.id === id);
  2205. }
  2206. const EMPTY_OPTION$4 = '';
  2207. const CREATE_NEW_OPTION$4 = 'create-new';
  2208. /**
  2209. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2210. */
  2211. /**
  2212. * @returns {Array<Entry>} entries
  2213. */
  2214. function ErrorProps$2(props) {
  2215. const {
  2216. element
  2217. } = props;
  2218. if (!isErrorSupported(element)) {
  2219. return [];
  2220. }
  2221. const error = getError(element);
  2222. let entries = [{
  2223. id: 'errorRef',
  2224. component: ErrorRef$1,
  2225. isEdited: isSelectEntryEdited
  2226. }];
  2227. if (error) {
  2228. entries = [...entries, {
  2229. id: 'errorName',
  2230. component: ErrorName$1,
  2231. isEdited: isTextFieldEntryEdited
  2232. }, {
  2233. id: 'errorCode',
  2234. component: ErrorCode$2,
  2235. isEdited: isTextFieldEntryEdited
  2236. }];
  2237. }
  2238. return entries;
  2239. }
  2240. function ErrorRef$1(props) {
  2241. const {
  2242. element
  2243. } = props;
  2244. const bpmnFactory = useService('bpmnFactory');
  2245. const commandStack = useService('commandStack');
  2246. const translate = useService('translate');
  2247. const errorEventDefinition = getErrorEventDefinition(element);
  2248. const getValue = () => {
  2249. const error = getError(element);
  2250. if (error) {
  2251. return error.get('id');
  2252. }
  2253. return EMPTY_OPTION$4;
  2254. };
  2255. const setValue = value => {
  2256. const root = getRoot(errorEventDefinition);
  2257. const commands = [];
  2258. let error;
  2259. // (1) create new error
  2260. if (value === CREATE_NEW_OPTION$4) {
  2261. error = createElement('bpmn:Error', {
  2262. name: nextId('Error_')
  2263. }, root, bpmnFactory);
  2264. value = error.get('id');
  2265. commands.push({
  2266. cmd: 'element.updateModdleProperties',
  2267. context: {
  2268. element,
  2269. moddleElement: root,
  2270. properties: {
  2271. rootElements: [...root.get('rootElements'), error]
  2272. }
  2273. }
  2274. });
  2275. }
  2276. // (2) update (or remove) errorRef
  2277. error = error || findRootElementById(errorEventDefinition, 'bpmn:Error', value);
  2278. commands.push({
  2279. cmd: 'element.updateModdleProperties',
  2280. context: {
  2281. element,
  2282. moddleElement: errorEventDefinition,
  2283. properties: {
  2284. errorRef: error
  2285. }
  2286. }
  2287. });
  2288. // (3) commit all updates
  2289. return commandStack.execute('properties-panel.multi-command-executor', commands);
  2290. };
  2291. const getOptions = () => {
  2292. let options = [{
  2293. value: EMPTY_OPTION$4,
  2294. label: translate('<none>')
  2295. }, {
  2296. value: CREATE_NEW_OPTION$4,
  2297. label: translate('Create new ...')
  2298. }];
  2299. const errors = findRootElementsByType(getBusinessObject(element), 'bpmn:Error');
  2300. sortByName$5(errors).forEach(error => {
  2301. options.push({
  2302. value: error.get('id'),
  2303. label: error.get('name')
  2304. });
  2305. });
  2306. return options;
  2307. };
  2308. return ReferenceSelectEntry({
  2309. element,
  2310. id: 'errorRef',
  2311. label: translate('Global error reference'),
  2312. autoFocusEntry: 'errorName',
  2313. getValue,
  2314. setValue,
  2315. getOptions
  2316. });
  2317. }
  2318. function ErrorName$1(props) {
  2319. const {
  2320. element
  2321. } = props;
  2322. const commandStack = useService('commandStack');
  2323. const translate = useService('translate');
  2324. const debounce = useService('debounceInput');
  2325. const error = getError(element);
  2326. const getValue = () => {
  2327. return error.get('name');
  2328. };
  2329. const setValue = value => {
  2330. return commandStack.execute('element.updateModdleProperties', {
  2331. element,
  2332. moddleElement: error,
  2333. properties: {
  2334. name: value
  2335. }
  2336. });
  2337. };
  2338. return TextFieldEntry({
  2339. element,
  2340. id: 'errorName',
  2341. label: translate('Name'),
  2342. getValue,
  2343. setValue,
  2344. debounce
  2345. });
  2346. }
  2347. function ErrorCode$2(props) {
  2348. const {
  2349. element
  2350. } = props;
  2351. const commandStack = useService('commandStack');
  2352. const translate = useService('translate');
  2353. const debounce = useService('debounceInput');
  2354. const error = getError(element);
  2355. const getValue = () => {
  2356. return error.get('errorCode');
  2357. };
  2358. const setValue = value => {
  2359. return commandStack.execute('element.updateModdleProperties', {
  2360. element,
  2361. moddleElement: error,
  2362. properties: {
  2363. errorCode: value
  2364. }
  2365. });
  2366. };
  2367. return TextFieldEntry({
  2368. element,
  2369. id: 'errorCode',
  2370. label: translate('Code'),
  2371. getValue,
  2372. setValue,
  2373. debounce
  2374. });
  2375. }
  2376. // helper /////////////////////////
  2377. function sortByName$5(elements) {
  2378. return sortBy(elements, e => (e.name || '').toLowerCase());
  2379. }
  2380. const CREATE_NEW_OPTION$3 = 'create-new';
  2381. /**
  2382. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2383. */
  2384. /**
  2385. * @returns {Array<Entry>} entries
  2386. */
  2387. function EscalationProps$2(props) {
  2388. const {
  2389. element
  2390. } = props;
  2391. if (!isEscalationSupported(element)) {
  2392. return [];
  2393. }
  2394. const escalation = getEscalation(element);
  2395. let entries = [{
  2396. id: 'escalationRef',
  2397. component: EscalationRef,
  2398. isEdited: isSelectEntryEdited
  2399. }];
  2400. if (escalation) {
  2401. entries = [...entries, {
  2402. id: 'escalationName',
  2403. component: EscalationName,
  2404. isEdited: isTextFieldEntryEdited
  2405. }, {
  2406. id: 'escalationCode',
  2407. component: EscalationCode$1,
  2408. isEdited: isTextFieldEntryEdited
  2409. }];
  2410. }
  2411. return entries;
  2412. }
  2413. function EscalationRef(props) {
  2414. const {
  2415. element
  2416. } = props;
  2417. const bpmnFactory = useService('bpmnFactory');
  2418. const commandStack = useService('commandStack');
  2419. const translate = useService('translate');
  2420. const escalationEventDefinition = getEscalationEventDefinition(element);
  2421. const getValue = () => {
  2422. const escalation = getEscalation(element);
  2423. return escalation && escalation.get('id');
  2424. };
  2425. const setValue = value => {
  2426. const root = getRoot(escalationEventDefinition);
  2427. const commands = [];
  2428. let escalation;
  2429. // (1) create new escalation
  2430. if (value === CREATE_NEW_OPTION$3) {
  2431. const id = nextId('Escalation_');
  2432. escalation = createElement('bpmn:Escalation', {
  2433. id,
  2434. name: id
  2435. }, root, bpmnFactory);
  2436. value = escalation.get('id');
  2437. commands.push({
  2438. cmd: 'element.updateModdleProperties',
  2439. context: {
  2440. element,
  2441. moddleElement: root,
  2442. properties: {
  2443. rootElements: [...root.get('rootElements'), escalation]
  2444. }
  2445. }
  2446. });
  2447. }
  2448. // (2) update (or remove) escalationRef
  2449. escalation = escalation || findRootElementById(escalationEventDefinition, 'bpmn:Escalation', value);
  2450. commands.push({
  2451. cmd: 'element.updateModdleProperties',
  2452. context: {
  2453. element,
  2454. moddleElement: escalationEventDefinition,
  2455. properties: {
  2456. escalationRef: escalation
  2457. }
  2458. }
  2459. });
  2460. // (3) commit all updates
  2461. return commandStack.execute('properties-panel.multi-command-executor', commands);
  2462. };
  2463. const getOptions = () => {
  2464. let options = [{
  2465. value: '',
  2466. label: translate('<none>')
  2467. }, {
  2468. value: CREATE_NEW_OPTION$3,
  2469. label: translate('Create new ...')
  2470. }];
  2471. const escalations = findRootElementsByType(getBusinessObject(element), 'bpmn:Escalation');
  2472. sortByName$4(escalations).forEach(escalation => {
  2473. options.push({
  2474. value: escalation.get('id'),
  2475. label: escalation.get('name')
  2476. });
  2477. });
  2478. return options;
  2479. };
  2480. return ReferenceSelectEntry({
  2481. element,
  2482. id: 'escalationRef',
  2483. label: translate('Global escalation reference'),
  2484. autoFocusEntry: 'escalationName',
  2485. getValue,
  2486. setValue,
  2487. getOptions
  2488. });
  2489. }
  2490. function EscalationName(props) {
  2491. const {
  2492. element
  2493. } = props;
  2494. const commandStack = useService('commandStack');
  2495. const translate = useService('translate');
  2496. const debounce = useService('debounceInput');
  2497. const escalation = getEscalation(element);
  2498. const getValue = () => {
  2499. return escalation.get('name');
  2500. };
  2501. const setValue = value => {
  2502. return commandStack.execute('element.updateModdleProperties', {
  2503. element,
  2504. moddleElement: escalation,
  2505. properties: {
  2506. name: value
  2507. }
  2508. });
  2509. };
  2510. return TextFieldEntry({
  2511. element,
  2512. id: 'escalationName',
  2513. label: translate('Name'),
  2514. getValue,
  2515. setValue,
  2516. debounce
  2517. });
  2518. }
  2519. function EscalationCode$1(props) {
  2520. const {
  2521. element
  2522. } = props;
  2523. const commandStack = useService('commandStack');
  2524. const translate = useService('translate');
  2525. const debounce = useService('debounceInput');
  2526. const escalation = getEscalation(element);
  2527. const getValue = () => {
  2528. return escalation.get('escalationCode');
  2529. };
  2530. const setValue = value => {
  2531. return commandStack.execute('element.updateModdleProperties', {
  2532. element,
  2533. moddleElement: escalation,
  2534. properties: {
  2535. escalationCode: value
  2536. }
  2537. });
  2538. };
  2539. return TextFieldEntry({
  2540. element,
  2541. id: 'escalationCode',
  2542. label: translate('Code'),
  2543. getValue,
  2544. setValue,
  2545. debounce
  2546. });
  2547. }
  2548. // helper /////////////////////////
  2549. function sortByName$4(elements) {
  2550. return sortBy(elements, e => (e.name || '').toLowerCase());
  2551. }
  2552. /**
  2553. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2554. */
  2555. /**
  2556. * @returns {Array<Entry>} entries
  2557. */
  2558. function ExecutableProps(props) {
  2559. const {
  2560. element
  2561. } = props;
  2562. if (!is(element, 'bpmn:Process') && !hasProcessRef$1(element)) {
  2563. return [];
  2564. }
  2565. return [{
  2566. id: 'isExecutable',
  2567. component: Executable,
  2568. isEdited: isCheckboxEntryEdited
  2569. }];
  2570. }
  2571. function Executable(props) {
  2572. const {
  2573. element
  2574. } = props;
  2575. const modeling = useService('modeling');
  2576. const commandStack = useService('commandStack');
  2577. const translate = useService('translate');
  2578. let getValue, setValue;
  2579. setValue = value => {
  2580. modeling.updateProperties(element, {
  2581. isExecutable: value
  2582. });
  2583. };
  2584. getValue = element => {
  2585. return element.businessObject.isExecutable;
  2586. };
  2587. // handle properties on processRef level for participants
  2588. if (is(element, 'bpmn:Participant')) {
  2589. const process = element.businessObject.get('processRef');
  2590. setValue = value => {
  2591. commandStack.execute('element.updateModdleProperties', {
  2592. element,
  2593. moddleElement: process,
  2594. properties: {
  2595. isExecutable: value
  2596. }
  2597. });
  2598. };
  2599. getValue = () => {
  2600. return process.get('isExecutable');
  2601. };
  2602. }
  2603. return CheckboxEntry({
  2604. element,
  2605. id: 'isExecutable',
  2606. label: translate('Executable'),
  2607. getValue,
  2608. setValue
  2609. });
  2610. }
  2611. // helper /////////////////////
  2612. function hasProcessRef$1(element) {
  2613. return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
  2614. }
  2615. const SPACE_REGEX = /\s/;
  2616. // for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar
  2617. const QNAME_REGEX = /^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i;
  2618. // for ID validation as per BPMN Schema (QName - Namespace)
  2619. const ID_REGEX = /^[a-z_][\w-.]*$/i;
  2620. /**
  2621. * checks whether the id value is valid
  2622. *
  2623. * @param {ModdleElement} element
  2624. * @param {String} idValue
  2625. * @param {Function} translate
  2626. *
  2627. * @return {String} error message
  2628. */
  2629. function isIdValid(element, idValue, translate) {
  2630. const assigned = element.$model.ids.assigned(idValue);
  2631. const idAlreadyExists = assigned && assigned !== element;
  2632. if (!idValue) {
  2633. return translate('ID must not be empty.');
  2634. }
  2635. if (idAlreadyExists) {
  2636. return translate('ID must be unique.');
  2637. }
  2638. return validateId(idValue, translate);
  2639. }
  2640. function validateId(idValue, translate) {
  2641. if (containsSpace(idValue)) {
  2642. return translate('ID must not contain spaces.');
  2643. }
  2644. if (!ID_REGEX.test(idValue)) {
  2645. if (QNAME_REGEX.test(idValue)) {
  2646. return translate('ID must not contain prefix.');
  2647. }
  2648. return translate('ID must be a valid QName.');
  2649. }
  2650. }
  2651. function containsSpace(value) {
  2652. return SPACE_REGEX.test(value);
  2653. }
  2654. /**
  2655. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2656. */
  2657. /**
  2658. * @returns {Array<Entry>} entries
  2659. */
  2660. function IdProps() {
  2661. return [{
  2662. id: 'id',
  2663. component: Id$3,
  2664. isEdited: isTextFieldEntryEdited
  2665. }];
  2666. }
  2667. function Id$3(props) {
  2668. const {
  2669. element
  2670. } = props;
  2671. const modeling = useService('modeling');
  2672. const debounce = useService('debounceInput');
  2673. const translate = useService('translate');
  2674. const setValue = (value, error) => {
  2675. if (error) {
  2676. return;
  2677. }
  2678. modeling.updateProperties(element, {
  2679. id: value
  2680. });
  2681. };
  2682. const getValue = element => {
  2683. return element.businessObject.id;
  2684. };
  2685. const validate = value => {
  2686. const businessObject = getBusinessObject(element);
  2687. return isIdValid(businessObject, value, translate);
  2688. };
  2689. return TextFieldEntry({
  2690. element,
  2691. id: 'id',
  2692. label: translate(is(element, 'bpmn:Participant') ? 'Participant ID' : 'ID'),
  2693. getValue,
  2694. setValue,
  2695. debounce,
  2696. validate
  2697. });
  2698. }
  2699. /**
  2700. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2701. */
  2702. /**
  2703. * @returns {Array<Entry>} entries
  2704. */
  2705. function LinkProps(props) {
  2706. const {
  2707. element
  2708. } = props;
  2709. if (!isLinkSupported(element)) {
  2710. return [];
  2711. }
  2712. return [{
  2713. id: 'linkName',
  2714. component: LinkName,
  2715. isEdited: isTextFieldEntryEdited
  2716. }];
  2717. }
  2718. function LinkName(props) {
  2719. const {
  2720. element
  2721. } = props;
  2722. const commandStack = useService('commandStack');
  2723. const translate = useService('translate');
  2724. const debounce = useService('debounceInput');
  2725. const linkEventDefinition = getLinkEventDefinition(element);
  2726. const getValue = () => {
  2727. return linkEventDefinition.get('name');
  2728. };
  2729. const setValue = value => {
  2730. commandStack.execute('element.updateModdleProperties', {
  2731. element,
  2732. moddleElement: linkEventDefinition,
  2733. properties: {
  2734. name: value
  2735. }
  2736. });
  2737. };
  2738. return TextFieldEntry({
  2739. element,
  2740. id: 'linkName',
  2741. label: translate('Name'),
  2742. getValue,
  2743. setValue,
  2744. debounce
  2745. });
  2746. }
  2747. const EMPTY_OPTION$3 = '';
  2748. const CREATE_NEW_OPTION$2 = 'create-new';
  2749. /**
  2750. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2751. */
  2752. /**
  2753. * @returns {Array<Entry>} entries
  2754. */
  2755. function MessageProps$1(props) {
  2756. const {
  2757. element
  2758. } = props;
  2759. if (!isMessageSupported(element)) {
  2760. return [];
  2761. }
  2762. const message = getMessage(element);
  2763. let entries = [{
  2764. id: 'messageRef',
  2765. component: MessageRef,
  2766. isEdited: isSelectEntryEdited
  2767. }];
  2768. if (message) {
  2769. entries = [...entries, {
  2770. id: 'messageName',
  2771. component: MessageName$1,
  2772. isEdited: isTextFieldEntryEdited
  2773. }];
  2774. }
  2775. return entries;
  2776. }
  2777. function MessageRef(props) {
  2778. const {
  2779. element
  2780. } = props;
  2781. const bpmnFactory = useService('bpmnFactory');
  2782. const commandStack = useService('commandStack');
  2783. const translate = useService('translate');
  2784. const messageEventDefinition = getMessageEventDefinition(element);
  2785. const getValue = () => {
  2786. const message = getMessage(element);
  2787. if (message) {
  2788. return message.get('id');
  2789. }
  2790. return EMPTY_OPTION$3;
  2791. };
  2792. const setValue = value => {
  2793. const root = getRoot(messageEventDefinition);
  2794. const commands = [];
  2795. let message;
  2796. // (1) create new message
  2797. if (value === CREATE_NEW_OPTION$2) {
  2798. const id = nextId('Message_');
  2799. message = createElement('bpmn:Message', {
  2800. id,
  2801. name: id
  2802. }, root, bpmnFactory);
  2803. value = message.get('id');
  2804. commands.push({
  2805. cmd: 'element.updateModdleProperties',
  2806. context: {
  2807. element,
  2808. moddleElement: root,
  2809. properties: {
  2810. rootElements: [...root.get('rootElements'), message]
  2811. }
  2812. }
  2813. });
  2814. }
  2815. // (2) update (or remove) messageRef
  2816. message = message || findRootElementById(messageEventDefinition, 'bpmn:Message', value);
  2817. commands.push({
  2818. cmd: 'element.updateModdleProperties',
  2819. context: {
  2820. element,
  2821. moddleElement: messageEventDefinition,
  2822. properties: {
  2823. messageRef: message
  2824. }
  2825. }
  2826. });
  2827. // (3) commit all updates
  2828. return commandStack.execute('properties-panel.multi-command-executor', commands);
  2829. };
  2830. const getOptions = () => {
  2831. let options = [{
  2832. value: EMPTY_OPTION$3,
  2833. label: translate('<none>')
  2834. }, {
  2835. value: CREATE_NEW_OPTION$2,
  2836. label: translate('Create new ...')
  2837. }];
  2838. const messages = findRootElementsByType(getBusinessObject(element), 'bpmn:Message');
  2839. sortByName$3(messages).forEach(message => {
  2840. options.push({
  2841. value: message.get('id'),
  2842. label: message.get('name')
  2843. });
  2844. });
  2845. return options;
  2846. };
  2847. return ReferenceSelectEntry({
  2848. element,
  2849. id: 'messageRef',
  2850. label: translate('Global message reference'),
  2851. autoFocusEntry: 'messageName',
  2852. getValue,
  2853. setValue,
  2854. getOptions
  2855. });
  2856. }
  2857. function MessageName$1(props) {
  2858. const {
  2859. element
  2860. } = props;
  2861. const commandStack = useService('commandStack');
  2862. const translate = useService('translate');
  2863. const debounce = useService('debounceInput');
  2864. const message = getMessage(element);
  2865. const getValue = () => {
  2866. return message.get('name');
  2867. };
  2868. const setValue = value => {
  2869. return commandStack.execute('element.updateModdleProperties', {
  2870. element,
  2871. moddleElement: message,
  2872. properties: {
  2873. name: value
  2874. }
  2875. });
  2876. };
  2877. return TextFieldEntry({
  2878. element,
  2879. id: 'messageName',
  2880. label: translate('Name'),
  2881. getValue,
  2882. setValue,
  2883. debounce
  2884. });
  2885. }
  2886. // helper /////////////////////////
  2887. function sortByName$3(elements) {
  2888. return sortBy(elements, e => (e.name || '').toLowerCase());
  2889. }
  2890. /**
  2891. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  2892. */
  2893. /**
  2894. * @returns {Array<Entry>} entries
  2895. */
  2896. function MultiInstanceProps$2(props) {
  2897. const {
  2898. element
  2899. } = props;
  2900. if (!isMultiInstanceSupported$1(element)) {
  2901. return [];
  2902. }
  2903. const entries = [{
  2904. id: 'loopCardinality',
  2905. component: LoopCardinality,
  2906. isEdited: isTextFieldEntryEdited
  2907. }, {
  2908. id: 'completionCondition',
  2909. component: CompletionCondition$1,
  2910. isEdited: isTextFieldEntryEdited
  2911. }];
  2912. return entries;
  2913. }
  2914. function LoopCardinality(props) {
  2915. const {
  2916. element
  2917. } = props;
  2918. const bpmnFactory = useService('bpmnFactory');
  2919. const debounce = useService('debounceInput');
  2920. const commandStack = useService('commandStack');
  2921. const translate = useService('translate');
  2922. const getValue = () => {
  2923. return getLoopCardinalityValue(element);
  2924. };
  2925. const setValue = value => {
  2926. return commandStack.execute('element.updateModdleProperties', updateFormalExpression(element, 'loopCardinality', value, bpmnFactory));
  2927. };
  2928. return TextFieldEntry({
  2929. element,
  2930. id: 'loopCardinality',
  2931. label: translate('Loop cardinality'),
  2932. getValue,
  2933. setValue,
  2934. debounce
  2935. });
  2936. }
  2937. function CompletionCondition$1(props) {
  2938. const {
  2939. element
  2940. } = props;
  2941. const bpmnFactory = useService('bpmnFactory');
  2942. const debounce = useService('debounceInput');
  2943. const commandStack = useService('commandStack');
  2944. const translate = useService('translate');
  2945. const getValue = () => {
  2946. return getCompletionConditionValue(element);
  2947. };
  2948. const setValue = value => {
  2949. return commandStack.execute('element.updateModdleProperties', updateFormalExpression(element, 'completionCondition', value, bpmnFactory));
  2950. };
  2951. return TextFieldEntry({
  2952. element,
  2953. id: 'completionCondition',
  2954. label: translate('Completion condition'),
  2955. getValue,
  2956. setValue,
  2957. debounce
  2958. });
  2959. }
  2960. // helper ////////////////////////////
  2961. // generic ///////////////////////////
  2962. /**
  2963. * isMultiInstanceSupported - check whether given element supports MultiInstanceLoopCharacteristics.
  2964. *
  2965. * @param {djs.model.Base} element
  2966. * @return {boolean}
  2967. */
  2968. function isMultiInstanceSupported$1(element) {
  2969. const loopCharacteristics = getLoopCharacteristics$2(element);
  2970. return !!loopCharacteristics && is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics');
  2971. }
  2972. /**
  2973. * getBody - get the body of a given expression.
  2974. *
  2975. * @param {ModdleElement<bpmn:FormalExpression>} expression
  2976. * @return {string} the body (value) of the expression
  2977. */
  2978. function getBody(expression) {
  2979. return expression && expression.get('body');
  2980. }
  2981. /**
  2982. * getProperty - get a property value of the loop characteristics.
  2983. *
  2984. * @param {djs.model.Base} element
  2985. * @param {string} propertyName
  2986. *
  2987. * @return {any} the property value
  2988. */
  2989. function getProperty$2(element, propertyName) {
  2990. const loopCharacteristics = getLoopCharacteristics$2(element);
  2991. return loopCharacteristics && loopCharacteristics.get(propertyName);
  2992. }
  2993. /**
  2994. * getLoopCharacteristics - get loopCharacteristics of a given element.
  2995. *
  2996. * @param {djs.model.Base} element
  2997. * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}
  2998. */
  2999. function getLoopCharacteristics$2(element) {
  3000. const bo = getBusinessObject(element);
  3001. return bo.loopCharacteristics;
  3002. }
  3003. /**
  3004. * createFormalExpression - creates a 'bpmn:FormalExpression' element.
  3005. *
  3006. * @param {ModdleElement} parent
  3007. * @param {string} body
  3008. * @param {BpmnFactory} bpmnFactory
  3009. *
  3010. * @result {ModdleElement<bpmn:FormalExpression>} a formal expression
  3011. */
  3012. function createFormalExpression$1(parent, body, bpmnFactory) {
  3013. return createElement('bpmn:FormalExpression', {
  3014. body: body
  3015. }, parent, bpmnFactory);
  3016. }
  3017. /**
  3018. * updateFormalExpression - updates a specific formal expression of the loop characteristics.
  3019. *
  3020. * @param {djs.model.Base} element
  3021. * @param {string} propertyName
  3022. * @param {string} newValue
  3023. * @param {BpmnFactory} bpmnFactory
  3024. */
  3025. function updateFormalExpression(element, propertyName, newValue, bpmnFactory) {
  3026. const loopCharacteristics = getLoopCharacteristics$2(element);
  3027. const expressionProps = {};
  3028. if (!newValue) {
  3029. // remove formal expression
  3030. expressionProps[propertyName] = undefined;
  3031. return {
  3032. element,
  3033. moddleElement: loopCharacteristics,
  3034. properties: expressionProps
  3035. };
  3036. }
  3037. const existingExpression = loopCharacteristics.get(propertyName);
  3038. if (!existingExpression) {
  3039. // add formal expression
  3040. expressionProps[propertyName] = createFormalExpression$1(loopCharacteristics, newValue, bpmnFactory);
  3041. return {
  3042. element,
  3043. moddleElement: loopCharacteristics,
  3044. properties: expressionProps
  3045. };
  3046. }
  3047. // edit existing formal expression
  3048. return {
  3049. element,
  3050. moddleElement: existingExpression,
  3051. properties: {
  3052. body: newValue
  3053. }
  3054. };
  3055. }
  3056. // loopCardinality
  3057. /**
  3058. * getLoopCardinality - get the loop cardinality of the loop characteristics.
  3059. *
  3060. * @param {djs.model.Base} element
  3061. *
  3062. * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the loop cardinality
  3063. */
  3064. function getLoopCardinality(element) {
  3065. return getProperty$2(element, 'loopCardinality');
  3066. }
  3067. /**
  3068. * getLoopCardinalityValue - get the loop cardinality value of the loop characteristics.
  3069. *
  3070. * @param {djs.model.Base} element
  3071. *
  3072. * @return {string} the loop cardinality value
  3073. */
  3074. function getLoopCardinalityValue(element) {
  3075. const loopCardinality = getLoopCardinality(element);
  3076. return getBody(loopCardinality);
  3077. }
  3078. // completionCondition /////////////////////
  3079. /**
  3080. * getCompletionCondition - get the completion condition of the loop characteristics.
  3081. *
  3082. * @param {djs.model.Base} element
  3083. *
  3084. * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the completion condition
  3085. */
  3086. function getCompletionCondition$1(element) {
  3087. return getProperty$2(element, 'completionCondition');
  3088. }
  3089. /**
  3090. * getCompletionConditionValue - get the completion condition value of the loop characteristics.
  3091. *
  3092. * @param {djs.model.Base} element
  3093. *
  3094. * @return {string} the completion condition value
  3095. */
  3096. function getCompletionConditionValue(element) {
  3097. const completionCondition = getCompletionCondition$1(element);
  3098. return getBody(completionCondition);
  3099. }
  3100. /**
  3101. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  3102. */
  3103. /**
  3104. * @returns {Array<Entry>} entries
  3105. */
  3106. function NameProps(props) {
  3107. const {
  3108. element
  3109. } = props;
  3110. if (isAny(element, ['bpmn:Collaboration', 'bpmn:DataAssociation', 'bpmn:Association'])) {
  3111. return [];
  3112. }
  3113. return [{
  3114. id: 'name',
  3115. component: Name$3,
  3116. isEdited: isTextAreaEntryEdited
  3117. }];
  3118. }
  3119. function Name$3(props) {
  3120. const {
  3121. element
  3122. } = props;
  3123. const modeling = useService('modeling');
  3124. const debounce = useService('debounceInput');
  3125. const canvas = useService('canvas');
  3126. const bpmnFactory = useService('bpmnFactory');
  3127. const translate = useService('translate');
  3128. // (1) default: name
  3129. let options = {
  3130. element,
  3131. id: 'name',
  3132. label: translate('Name'),
  3133. debounce,
  3134. setValue: value => {
  3135. modeling.updateProperties(element, {
  3136. name: value
  3137. });
  3138. },
  3139. getValue: element => {
  3140. return element.businessObject.name;
  3141. },
  3142. autoResize: true
  3143. };
  3144. // (2) text annotations
  3145. if (is(element, 'bpmn:TextAnnotation')) {
  3146. options = {
  3147. ...options,
  3148. setValue: value => {
  3149. modeling.updateProperties(element, {
  3150. text: value
  3151. });
  3152. },
  3153. getValue: element => {
  3154. return element.businessObject.text;
  3155. }
  3156. };
  3157. }
  3158. // (3) groups
  3159. else if (is(element, 'bpmn:Group')) {
  3160. options = {
  3161. ...options,
  3162. setValue: value => {
  3163. const businessObject = getBusinessObject(element),
  3164. categoryValueRef = businessObject.categoryValueRef;
  3165. if (!categoryValueRef) {
  3166. initializeCategory(businessObject, canvas.getRootElement(), bpmnFactory);
  3167. }
  3168. modeling.updateLabel(element, value);
  3169. },
  3170. getValue: element => {
  3171. const businessObject = getBusinessObject(element),
  3172. categoryValueRef = businessObject.categoryValueRef;
  3173. return categoryValueRef && categoryValueRef.value;
  3174. }
  3175. };
  3176. }
  3177. // (4) participants (only update label)
  3178. else if (is(element, 'bpmn:Participant')) {
  3179. options.label = translate('Participant Name');
  3180. }
  3181. return TextAreaEntry(options);
  3182. }
  3183. // helpers ////////////////////////
  3184. function initializeCategory(businessObject, rootElement, bpmnFactory) {
  3185. const definitions = getBusinessObject(rootElement).$parent;
  3186. const categoryValue = createCategoryValue(definitions, bpmnFactory);
  3187. businessObject.categoryValueRef = categoryValue;
  3188. }
  3189. function createCategoryValue(definitions, bpmnFactory) {
  3190. const categoryValue = bpmnFactory.create('bpmn:CategoryValue');
  3191. const category = bpmnFactory.create('bpmn:Category', {
  3192. categoryValue: [categoryValue]
  3193. });
  3194. // add to correct place
  3195. add(definitions.get('rootElements'), category);
  3196. getBusinessObject(category).$parent = definitions;
  3197. getBusinessObject(categoryValue).$parent = category;
  3198. return categoryValue;
  3199. }
  3200. /**
  3201. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  3202. */
  3203. /**
  3204. * @returns {Array<Entry>} entries
  3205. */
  3206. function ProcessProps(props) {
  3207. const {
  3208. element
  3209. } = props;
  3210. if (!hasProcessRef(element)) {
  3211. return [];
  3212. }
  3213. return [{
  3214. id: 'processId',
  3215. component: ProcessId,
  3216. isEdited: isTextFieldEntryEdited
  3217. }, {
  3218. id: 'processName',
  3219. component: ProcessName,
  3220. isEdited: isTextFieldEntryEdited
  3221. }];
  3222. }
  3223. function ProcessName(props) {
  3224. const {
  3225. element
  3226. } = props;
  3227. const commandStack = useService('commandStack');
  3228. const translate = useService('translate');
  3229. const debounce = useService('debounceInput');
  3230. const process = element.businessObject.get('processRef');
  3231. const getValue = () => {
  3232. return process.get('name');
  3233. };
  3234. const setValue = value => {
  3235. commandStack.execute('element.updateModdleProperties', {
  3236. element,
  3237. moddleElement: process,
  3238. properties: {
  3239. name: value
  3240. }
  3241. });
  3242. };
  3243. return TextFieldEntry({
  3244. element,
  3245. id: 'processName',
  3246. label: translate('Process name'),
  3247. getValue,
  3248. setValue,
  3249. debounce
  3250. });
  3251. }
  3252. function ProcessId(props) {
  3253. const {
  3254. element
  3255. } = props;
  3256. const commandStack = useService('commandStack');
  3257. const translate = useService('translate');
  3258. const debounce = useService('debounceInput');
  3259. const process = element.businessObject.get('processRef');
  3260. const getValue = () => {
  3261. return process.get('id');
  3262. };
  3263. const setValue = (value, error) => {
  3264. if (error) {
  3265. return;
  3266. }
  3267. commandStack.execute('element.updateModdleProperties', {
  3268. element,
  3269. moddleElement: process,
  3270. properties: {
  3271. id: value
  3272. }
  3273. });
  3274. };
  3275. const validate = value => {
  3276. return isIdValid(process, value, translate);
  3277. };
  3278. return TextFieldEntry({
  3279. element,
  3280. id: 'processId',
  3281. label: translate('Process ID'),
  3282. getValue,
  3283. setValue,
  3284. debounce,
  3285. validate
  3286. });
  3287. }
  3288. // helper ////////////////
  3289. function hasProcessRef(element) {
  3290. return is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
  3291. }
  3292. /**
  3293. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  3294. */
  3295. const EMPTY_OPTION$2 = '';
  3296. const CREATE_NEW_OPTION$1 = 'create-new';
  3297. /**
  3298. * @returns {Entry[]}
  3299. */
  3300. function SignalProps$1(props) {
  3301. const {
  3302. element
  3303. } = props;
  3304. if (!isSignalSupported$1(element)) {
  3305. return [];
  3306. }
  3307. const signal = getSignal$1(element);
  3308. let entries = [{
  3309. id: 'signalRef',
  3310. component: SignalRef,
  3311. isEdited: isSelectEntryEdited
  3312. }];
  3313. if (signal) {
  3314. entries = [...entries, {
  3315. id: 'signalName',
  3316. component: SignalName$1,
  3317. isEdited: isTextFieldEntryEdited
  3318. }];
  3319. }
  3320. return entries;
  3321. }
  3322. function SignalRef(props) {
  3323. const {
  3324. element
  3325. } = props;
  3326. const bpmnFactory = useService('bpmnFactory');
  3327. const commandStack = useService('commandStack');
  3328. const translate = useService('translate');
  3329. const signalEventDefinition = getSignalEventDefinition$1(element);
  3330. const getValue = () => {
  3331. const signal = getSignal$1(element);
  3332. if (signal) {
  3333. return signal.get('id');
  3334. }
  3335. return EMPTY_OPTION$2;
  3336. };
  3337. const setValue = value => {
  3338. const root = getRoot(signalEventDefinition);
  3339. const commands = [];
  3340. let signal;
  3341. // (1) create new signal
  3342. if (value === CREATE_NEW_OPTION$1) {
  3343. const id = nextId('Signal_');
  3344. signal = createElement('bpmn:Signal', {
  3345. id,
  3346. name: id
  3347. }, root, bpmnFactory);
  3348. value = signal.get('id');
  3349. commands.push({
  3350. cmd: 'element.updateModdleProperties',
  3351. context: {
  3352. element,
  3353. moddleElement: root,
  3354. properties: {
  3355. rootElements: [...root.get('rootElements'), signal]
  3356. }
  3357. }
  3358. });
  3359. }
  3360. // (2) update (or remove) signalRef
  3361. signal = signal || findRootElementById(signalEventDefinition, 'bpmn:Signal', value);
  3362. commands.push({
  3363. cmd: 'element.updateModdleProperties',
  3364. context: {
  3365. element,
  3366. moddleElement: signalEventDefinition,
  3367. properties: {
  3368. signalRef: signal
  3369. }
  3370. }
  3371. });
  3372. // (3) commit all updates
  3373. return commandStack.execute('properties-panel.multi-command-executor', commands);
  3374. };
  3375. const getOptions = () => {
  3376. let options = [{
  3377. value: EMPTY_OPTION$2,
  3378. label: translate('<none>')
  3379. }, {
  3380. value: CREATE_NEW_OPTION$1,
  3381. label: translate('Create new ...')
  3382. }];
  3383. const signals = findRootElementsByType(getBusinessObject(element), 'bpmn:Signal');
  3384. sortByName$2(signals).forEach(signal => {
  3385. options.push({
  3386. value: signal.get('id'),
  3387. label: signal.get('name')
  3388. });
  3389. });
  3390. return options;
  3391. };
  3392. return ReferenceSelectEntry({
  3393. element,
  3394. id: 'signalRef',
  3395. label: translate('Global signal reference'),
  3396. autoFocusEntry: 'signalName',
  3397. getValue,
  3398. setValue,
  3399. getOptions
  3400. });
  3401. }
  3402. function SignalName$1(props) {
  3403. const {
  3404. element
  3405. } = props;
  3406. const commandStack = useService('commandStack');
  3407. const translate = useService('translate');
  3408. const debounce = useService('debounceInput');
  3409. const signal = getSignal$1(element);
  3410. const getValue = () => {
  3411. return signal.get('name');
  3412. };
  3413. const setValue = value => {
  3414. return commandStack.execute('element.updateModdleProperties', {
  3415. element,
  3416. moddleElement: signal,
  3417. properties: {
  3418. name: value
  3419. }
  3420. });
  3421. };
  3422. return TextFieldEntry({
  3423. element,
  3424. id: 'signalName',
  3425. label: translate('Name'),
  3426. getValue,
  3427. setValue,
  3428. debounce
  3429. });
  3430. }
  3431. // helper /////////////////////////
  3432. function sortByName$2(elements) {
  3433. return sortBy(elements, e => (e.name || '').toLowerCase());
  3434. }
  3435. function isTimerSupported(element) {
  3436. return isAny(element, ['bpmn:StartEvent', 'bpmn:IntermediateCatchEvent', 'bpmn:BoundaryEvent']) && !!getTimerEventDefinition(element);
  3437. }
  3438. /**
  3439. * Get the timer definition type for a given timer event definition.
  3440. *
  3441. * @param {ModdleElement<bpmn:TimerEventDefinition>} timer
  3442. *
  3443. * @return {string|undefined} the timer definition type
  3444. */
  3445. function getTimerDefinitionType(timer) {
  3446. if (!timer) {
  3447. return;
  3448. }
  3449. const timeDate = timer.get('timeDate');
  3450. if (typeof timeDate !== 'undefined') {
  3451. return 'timeDate';
  3452. }
  3453. const timeCycle = timer.get('timeCycle');
  3454. if (typeof timeCycle !== 'undefined') {
  3455. return 'timeCycle';
  3456. }
  3457. const timeDuration = timer.get('timeDuration');
  3458. if (typeof timeDuration !== 'undefined') {
  3459. return 'timeDuration';
  3460. }
  3461. }
  3462. function getTimerEventDefinition(element) {
  3463. return getEventDefinition(element, 'bpmn:TimerEventDefinition');
  3464. }
  3465. function getEventDefinition(element, eventType) {
  3466. const businessObject = getBusinessObject(element);
  3467. const eventDefinitions = businessObject.get('eventDefinitions') || [];
  3468. return find(eventDefinitions, function (definition) {
  3469. return is(definition, eventType);
  3470. });
  3471. }
  3472. function getSignalEventDefinition(element) {
  3473. return getEventDefinition(element, 'bpmn:SignalEventDefinition');
  3474. }
  3475. function isSignalSupported(element) {
  3476. return is(element, 'bpmn:Event') && !!getSignalEventDefinition(element);
  3477. }
  3478. function getSignal(element) {
  3479. const signalEventDefinition = getSignalEventDefinition(element);
  3480. return signalEventDefinition && signalEventDefinition.get('signalRef');
  3481. }
  3482. function TimerProps$2(props) {
  3483. const {
  3484. element,
  3485. idPrefix
  3486. } = props;
  3487. let {
  3488. timerEventDefinition
  3489. } = props;
  3490. if (!timerEventDefinition) {
  3491. const businessObject = getBusinessObject(element);
  3492. timerEventDefinition = getTimerEventDefinition(businessObject);
  3493. }
  3494. const timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);
  3495. // (1) Only show for supported elements
  3496. if (!isTimerSupported(element)) {
  3497. return [];
  3498. }
  3499. // (2) Provide entries, have a value only if selection was made
  3500. const entries = [];
  3501. entries.push({
  3502. id: getId$1(idPrefix, 'timerEventDefinitionType'),
  3503. component: TimerEventDefinitionType$2,
  3504. isEdited: isSelectEntryEdited,
  3505. timerEventDefinition,
  3506. timerEventDefinitionType
  3507. });
  3508. if (timerEventDefinitionType) {
  3509. entries.push({
  3510. id: getId$1(idPrefix, 'timerEventDefinitionValue'),
  3511. component: TimerEventDefinitionValue$2,
  3512. isEdited: isTextFieldEntryEdited,
  3513. timerEventDefinition,
  3514. timerEventDefinitionType
  3515. });
  3516. }
  3517. return entries;
  3518. }
  3519. /**
  3520. * TimerEventDefinitionType - Generic select entry allowing to select a specific
  3521. * timerEventDefintionType. To be used together with timerEventDefinitionValue.
  3522. *
  3523. * @param {type} props
  3524. * @return {SelectEntry}
  3525. */
  3526. function TimerEventDefinitionType$2(props) {
  3527. const {
  3528. element,
  3529. timerEventDefinition,
  3530. timerEventDefinitionType
  3531. } = props;
  3532. const commandStack = useService('commandStack'),
  3533. bpmnFactory = useService('bpmnFactory'),
  3534. translate = useService('translate');
  3535. const getValue = () => {
  3536. return timerEventDefinitionType || '';
  3537. };
  3538. const setValue = value => {
  3539. // (1) Check if value is different to current type
  3540. if (value === timerEventDefinitionType) {
  3541. return;
  3542. }
  3543. // (2) Create empty formalExpression element
  3544. const formalExpression = bpmnFactory.create('bpmn:FormalExpression', {
  3545. body: undefined
  3546. });
  3547. formalExpression.$parent = timerEventDefinition;
  3548. // (3) Set the value for selected timerEventDefinitionType
  3549. const newProps = {
  3550. timeDuration: undefined,
  3551. timeDate: undefined,
  3552. timeCycle: undefined
  3553. };
  3554. if (value !== '') {
  3555. newProps[value] = formalExpression;
  3556. }
  3557. // (4) Execute businessObject update
  3558. commandStack.execute('element.updateModdleProperties', {
  3559. element,
  3560. moddleElement: timerEventDefinition,
  3561. properties: newProps
  3562. });
  3563. };
  3564. const getOptions = element => {
  3565. return [{
  3566. value: '',
  3567. label: translate('<none>')
  3568. }, {
  3569. value: 'timeDate',
  3570. label: translate('Date')
  3571. }, {
  3572. value: 'timeDuration',
  3573. label: translate('Duration')
  3574. }, {
  3575. value: 'timeCycle',
  3576. label: translate('Cycle')
  3577. }];
  3578. };
  3579. return SelectEntry({
  3580. element,
  3581. id: 'timerEventDefinitionType',
  3582. label: translate('Type'),
  3583. getValue,
  3584. setValue,
  3585. getOptions
  3586. });
  3587. }
  3588. /**
  3589. * TimerEventDefinitionValue - Generic textField entry allowing to specify the
  3590. * timerEventDefintionValue based on the set timerEventDefintionType. To be used
  3591. * together with timerEventDefinitionType.
  3592. *
  3593. * @param {type} props
  3594. * @return {TextFieldEntry}
  3595. */
  3596. function TimerEventDefinitionValue$2(props) {
  3597. const {
  3598. element,
  3599. timerEventDefinition,
  3600. timerEventDefinitionType
  3601. } = props;
  3602. const commandStack = useService('commandStack'),
  3603. translate = useService('translate'),
  3604. debounce = useService('debounceInput');
  3605. const timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);
  3606. const getValue = () => {
  3607. return timerEventFormalExpression && timerEventFormalExpression.get('body');
  3608. };
  3609. const setValue = value => {
  3610. commandStack.execute('element.updateModdleProperties', {
  3611. element,
  3612. moddleElement: timerEventFormalExpression,
  3613. properties: {
  3614. body: value
  3615. }
  3616. });
  3617. };
  3618. return TextFieldEntry({
  3619. element,
  3620. id: 'timerEventDefinitionValue',
  3621. label: translate('Value'),
  3622. getValue,
  3623. setValue,
  3624. debounce,
  3625. tooltip: getTimerEventDefinitionValueDescription$2(timerEventDefinitionType, translate)
  3626. });
  3627. }
  3628. // helper //////////////////////////
  3629. function getTimerEventDefinitionValueDescription$2(timerDefinitionType, translate) {
  3630. switch (timerDefinitionType) {
  3631. case 'timeDate':
  3632. return jsxs("div", {
  3633. children: [jsx("p", {
  3634. children: translate('A specific point in time defined as ISO 8601 combined date and time representation.')
  3635. }), jsxs("ul", {
  3636. children: [jsxs("li", {
  3637. children: [jsx("code", {
  3638. children: "2019-10-01T12:00:00Z"
  3639. }), " - ", translate('UTC time')]
  3640. }), jsxs("li", {
  3641. children: [jsx("code", {
  3642. children: "2019-10-02T08:09:40+02:00"
  3643. }), " - ", translate('UTC plus 2 hours zone offset')]
  3644. })]
  3645. }), jsx("a", {
  3646. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date",
  3647. target: "_blank",
  3648. rel: "noopener",
  3649. children: translate('Documentation: Timer events')
  3650. })]
  3651. });
  3652. case 'timeCycle':
  3653. return jsxs("div", {
  3654. children: [jsx("p", {
  3655. children: translate('A cycle defined as ISO 8601 repeating intervals format.')
  3656. }), jsxs("ul", {
  3657. children: [jsxs("li", {
  3658. children: [jsx("code", {
  3659. children: "R5/PT10S"
  3660. }), " - ", translate('every 10 seconds, up to 5 times')]
  3661. }), jsxs("li", {
  3662. children: [jsx("code", {
  3663. children: "R/P1D"
  3664. }), " - ", translate('every day, infinitely')]
  3665. })]
  3666. }), jsx("a", {
  3667. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle",
  3668. target: "_blank",
  3669. rel: "noopener",
  3670. children: translate('Documentation: Timer events')
  3671. })]
  3672. });
  3673. case 'timeDuration':
  3674. return jsxs("div", {
  3675. children: [jsx("p", {
  3676. children: translate('A time duration defined as ISO 8601 durations format.')
  3677. }), jsxs("ul", {
  3678. children: [jsxs("li", {
  3679. children: [jsx("code", {
  3680. children: "PT15S"
  3681. }), " - ", translate('15 seconds')]
  3682. }), jsxs("li", {
  3683. children: [jsx("code", {
  3684. children: "PT1H30M"
  3685. }), " - ", translate('1 hour and 30 minutes')]
  3686. }), jsxs("li", {
  3687. children: [jsx("code", {
  3688. children: "P14D"
  3689. }), " - ", translate('14 days')]
  3690. })]
  3691. }), jsx("a", {
  3692. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration",
  3693. target: "_blank",
  3694. rel: "noopener",
  3695. children: translate('Documentation: Timer events')
  3696. })]
  3697. });
  3698. }
  3699. }
  3700. function getId$1(idPrefix, id) {
  3701. return idPrefix ? idPrefix + id : id;
  3702. }
  3703. function GeneralGroup(element, injector) {
  3704. const translate = injector.get('translate');
  3705. const entries = [...NameProps({
  3706. element
  3707. }), ...IdProps(), ...ProcessProps({
  3708. element
  3709. }), ...ExecutableProps({
  3710. element
  3711. })];
  3712. return {
  3713. id: 'general',
  3714. label: translate('General'),
  3715. entries,
  3716. component: Group
  3717. };
  3718. }
  3719. function CompensationGroup(element, injector) {
  3720. const translate = injector.get('translate');
  3721. const group = {
  3722. label: translate('Compensation'),
  3723. id: 'compensation',
  3724. component: Group,
  3725. entries: [...CompensationProps({
  3726. element
  3727. })]
  3728. };
  3729. if (group.entries.length) {
  3730. return group;
  3731. }
  3732. return null;
  3733. }
  3734. function DocumentationGroup(element, injector) {
  3735. const translate = injector.get('translate');
  3736. const entries = [...DocumentationProps({
  3737. element
  3738. })];
  3739. return {
  3740. id: 'documentation',
  3741. label: translate('Documentation'),
  3742. entries,
  3743. component: Group
  3744. };
  3745. }
  3746. function ErrorGroup(element, injector) {
  3747. const translate = injector.get('translate');
  3748. const group = {
  3749. id: 'error',
  3750. label: translate('Error'),
  3751. component: Group,
  3752. entries: [...ErrorProps$2({
  3753. element
  3754. })]
  3755. };
  3756. if (group.entries.length) {
  3757. return group;
  3758. }
  3759. return null;
  3760. }
  3761. function MessageGroup(element, injector) {
  3762. const translate = injector.get('translate');
  3763. const group = {
  3764. id: 'message',
  3765. label: translate('Message'),
  3766. component: Group,
  3767. entries: [...MessageProps$1({
  3768. element
  3769. })]
  3770. };
  3771. if (group.entries.length) {
  3772. return group;
  3773. }
  3774. return null;
  3775. }
  3776. function SignalGroup(element, injector) {
  3777. const translate = injector.get('translate');
  3778. const group = {
  3779. id: 'signal',
  3780. label: translate('Signal'),
  3781. component: Group,
  3782. entries: [...SignalProps$1({
  3783. element
  3784. })]
  3785. };
  3786. if (group.entries.length) {
  3787. return group;
  3788. }
  3789. return null;
  3790. }
  3791. function LinkGroup(element, injector) {
  3792. const translate = injector.get('translate');
  3793. const group = {
  3794. label: translate('Link'),
  3795. id: 'link',
  3796. component: Group,
  3797. entries: [...LinkProps({
  3798. element
  3799. })]
  3800. };
  3801. if (group.entries.length) {
  3802. return group;
  3803. }
  3804. return null;
  3805. }
  3806. function EscalationGroup(element, injector) {
  3807. const translate = injector.get('translate');
  3808. const group = {
  3809. id: 'escalation',
  3810. label: translate('Escalation'),
  3811. component: Group,
  3812. entries: [...EscalationProps$2({
  3813. element
  3814. })]
  3815. };
  3816. if (group.entries.length) {
  3817. return group;
  3818. }
  3819. return null;
  3820. }
  3821. function TimerGroup(element, injector) {
  3822. const translate = injector.get('translate');
  3823. const group = {
  3824. label: translate('Timer'),
  3825. id: 'timer',
  3826. component: Group,
  3827. entries: [...TimerProps$2({
  3828. element
  3829. })]
  3830. };
  3831. if (group.entries.length) {
  3832. return group;
  3833. }
  3834. return null;
  3835. }
  3836. function MultiInstanceGroup(element, injector) {
  3837. const translate = injector.get('translate');
  3838. const group = {
  3839. label: translate('Multi-instance'),
  3840. id: 'multiInstance',
  3841. component: Group,
  3842. entries: [...MultiInstanceProps$2({
  3843. element
  3844. })]
  3845. };
  3846. if (group.entries.length) {
  3847. return group;
  3848. }
  3849. return null;
  3850. }
  3851. function getGroups(element, injector) {
  3852. const groups = [GeneralGroup(element, injector), DocumentationGroup(element, injector), CompensationGroup(element, injector), ErrorGroup(element, injector), LinkGroup(element, injector), MessageGroup(element, injector), MultiInstanceGroup(element, injector), SignalGroup(element, injector), EscalationGroup(element, injector), TimerGroup(element, injector)];
  3853. // contract: if a group returns null, it should not be displayed at all
  3854. return groups.filter(group => group !== null);
  3855. }
  3856. class BpmnPropertiesProvider {
  3857. constructor(propertiesPanel, injector) {
  3858. propertiesPanel.registerProvider(this);
  3859. this._injector = injector;
  3860. }
  3861. getGroups(element) {
  3862. return groups => {
  3863. groups = groups.concat(getGroups(element, this._injector));
  3864. return groups;
  3865. };
  3866. }
  3867. }
  3868. BpmnPropertiesProvider.$inject = ['propertiesPanel', 'injector'];
  3869. var index$2 = {
  3870. __init__: ['bpmnPropertiesProvider'],
  3871. bpmnPropertiesProvider: ['type', BpmnPropertiesProvider]
  3872. };
  3873. /**
  3874. * Get extension elements of business object. Optionally filter by type.
  3875. *
  3876. * @param {ModdleElement} businessObject
  3877. * @param {string} [type=undefined]
  3878. * @returns {Array<ModdleElement>}
  3879. */
  3880. function getExtensionElementsList(businessObject, type = undefined) {
  3881. const extensionElements = businessObject.get('extensionElements');
  3882. if (!extensionElements) {
  3883. return [];
  3884. }
  3885. const values = extensionElements.get('values');
  3886. if (!values || !values.length) {
  3887. return [];
  3888. }
  3889. if (type) {
  3890. return values.filter(value => is(value, type));
  3891. }
  3892. return values;
  3893. }
  3894. /**
  3895. * Add one or more extension elements. Create bpmn:ExtensionElements if it doesn't exist.
  3896. *
  3897. * @param {ModdleElement} element
  3898. * @param {ModdleElement} businessObject
  3899. * @param {ModdleElement|Array<ModdleElement>} extensionElementsToAdd
  3900. * @param {CommandStack} commandStack
  3901. */
  3902. function addExtensionElements(element, businessObject, extensionElementToAdd, bpmnFactory, commandStack) {
  3903. const commands = [];
  3904. let extensionElements = businessObject.get('extensionElements');
  3905. // (1) create bpmn:ExtensionElements if it doesn't exist
  3906. if (!extensionElements) {
  3907. extensionElements = createElement('bpmn:ExtensionElements', {
  3908. values: []
  3909. }, businessObject, bpmnFactory);
  3910. commands.push({
  3911. cmd: 'element.updateModdleProperties',
  3912. context: {
  3913. element,
  3914. moddleElement: businessObject,
  3915. properties: {
  3916. extensionElements
  3917. }
  3918. }
  3919. });
  3920. }
  3921. extensionElementToAdd.$parent = extensionElements;
  3922. // (2) add extension element to list
  3923. commands.push({
  3924. cmd: 'element.updateModdleProperties',
  3925. context: {
  3926. element,
  3927. moddleElement: extensionElements,
  3928. properties: {
  3929. values: [...extensionElements.get('values'), extensionElementToAdd]
  3930. }
  3931. }
  3932. });
  3933. commandStack.execute('properties-panel.multi-command-executor', commands);
  3934. }
  3935. /**
  3936. * Remove one or more extension elements. Remove bpmn:ExtensionElements afterwards if it's empty.
  3937. *
  3938. * @param {ModdleElement} element
  3939. * @param {ModdleElement} businessObject
  3940. * @param {ModdleElement|Array<ModdleElement>} extensionElementsToRemove
  3941. * @param {CommandStack} commandStack
  3942. */
  3943. function removeExtensionElements(element, businessObject, extensionElementsToRemove, commandStack) {
  3944. if (!isArray(extensionElementsToRemove)) {
  3945. extensionElementsToRemove = [extensionElementsToRemove];
  3946. }
  3947. const extensionElements = businessObject.get('extensionElements'),
  3948. values = extensionElements.get('values').filter(value => !extensionElementsToRemove.includes(value));
  3949. commandStack.execute('element.updateModdleProperties', {
  3950. element,
  3951. moddleElement: extensionElements,
  3952. properties: {
  3953. values
  3954. }
  3955. });
  3956. }
  3957. const fallbackResolver = {
  3958. getVariablesForElement: bo => getVariablesForElement(bo)
  3959. };
  3960. function withVariableContext(Component) {
  3961. return props => {
  3962. const {
  3963. bpmnElement,
  3964. element
  3965. } = props;
  3966. const bo = (bpmnElement || element).businessObject;
  3967. const [variables, setVariables] = useState([]);
  3968. const eventBus = useService('eventBus');
  3969. const variableResolver = useServiceIfAvailable('variableResolver', fallbackResolver);
  3970. useEffect(() => {
  3971. const extractVariables = async () => {
  3972. const variables = await variableResolver.getVariablesForElement(bo, element);
  3973. setVariables(variables.map(variable => {
  3974. return {
  3975. ...variable,
  3976. info: variable.info || variable.origin && 'Written in ' + variable.origin.map(origin => origin.name || origin.id).join(', ')
  3977. };
  3978. }));
  3979. };
  3980. // The callback must return undefined, so the event propagation is not canceled.
  3981. // Cf. https://github.com/camunda/camunda-modeler/issues/3392
  3982. const callback = () => {
  3983. extractVariables();
  3984. };
  3985. eventBus.on('commandStack.changed', callback);
  3986. callback();
  3987. return () => {
  3988. eventBus.off('commandStack.changed', callback);
  3989. };
  3990. }, [bo]);
  3991. return jsx(Component, {
  3992. ...props,
  3993. variables: variables
  3994. });
  3995. };
  3996. }
  3997. // helpers //////////
  3998. function useServiceIfAvailable(service, fallback) {
  3999. const resolved = useService(service, false);
  4000. if (!resolved) {
  4001. return fallback;
  4002. }
  4003. return resolved;
  4004. }
  4005. function withTooltipContainer(Component) {
  4006. return props => {
  4007. const tooltipContainer = useMemo(() => {
  4008. const config = useService('config');
  4009. return config && config.propertiesPanel && config.propertiesPanel.feelTooltipContainer;
  4010. }, []);
  4011. return jsx(Component, {
  4012. ...props,
  4013. tooltipContainer: tooltipContainer
  4014. });
  4015. };
  4016. }
  4017. const FeelEntry = withTooltipContainer(FeelEntry$1);
  4018. const FeelEntryWithVariableContext = withVariableContext(FeelEntry);
  4019. function AssignmentDefinitionProps(props) {
  4020. const {
  4021. element
  4022. } = props;
  4023. if (!is(element, 'bpmn:UserTask')) {
  4024. return [];
  4025. }
  4026. return [{
  4027. id: 'assignmentDefinitionAssignee',
  4028. component: Assignee$1,
  4029. isEdited: isFeelEntryEdited
  4030. }, {
  4031. id: 'assignmentDefinitionCandidateGroups',
  4032. component: CandidateGroups$1,
  4033. isEdited: isFeelEntryEdited
  4034. }, {
  4035. id: 'assignmentDefinitionCandidateUsers',
  4036. component: CandidateUsers$1,
  4037. isEdited: isFeelEntryEdited
  4038. }];
  4039. }
  4040. function Assignee$1(props) {
  4041. const {
  4042. element
  4043. } = props;
  4044. const commandStack = useService('commandStack');
  4045. const bpmnFactory = useService('bpmnFactory');
  4046. const translate = useService('translate');
  4047. const debounce = useService('debounceInput');
  4048. const getValue = () => {
  4049. return (getAssignmentDefinition(element) || {}).assignee;
  4050. };
  4051. const setValue = value => {
  4052. const commands = [];
  4053. const businessObject = getBusinessObject(element);
  4054. let extensionElements = businessObject.get('extensionElements');
  4055. // (1) ensure extension elements
  4056. if (!extensionElements) {
  4057. extensionElements = createElement('bpmn:ExtensionElements', {
  4058. values: []
  4059. }, businessObject, bpmnFactory);
  4060. commands.push({
  4061. cmd: 'element.updateModdleProperties',
  4062. context: {
  4063. element,
  4064. moddleElement: businessObject,
  4065. properties: {
  4066. extensionElements
  4067. }
  4068. }
  4069. });
  4070. }
  4071. // (2) ensure AssignmentDefinition
  4072. let assignmentDefinition = getAssignmentDefinition(element);
  4073. if (!assignmentDefinition) {
  4074. assignmentDefinition = createElement('zeebe:AssignmentDefinition', {}, extensionElements, bpmnFactory);
  4075. commands.push({
  4076. cmd: 'element.updateModdleProperties',
  4077. context: {
  4078. element,
  4079. moddleElement: extensionElements,
  4080. properties: {
  4081. values: [...extensionElements.get('values'), assignmentDefinition]
  4082. }
  4083. }
  4084. });
  4085. }
  4086. // (3) update assignee definition type
  4087. commands.push({
  4088. cmd: 'element.updateModdleProperties',
  4089. context: {
  4090. element,
  4091. moddleElement: assignmentDefinition,
  4092. properties: {
  4093. assignee: value
  4094. }
  4095. }
  4096. });
  4097. // (4) commit all updates
  4098. commandStack.execute('properties-panel.multi-command-executor', commands);
  4099. };
  4100. return FeelEntryWithVariableContext({
  4101. element,
  4102. id: 'assignmentDefinitionAssignee',
  4103. label: translate('Assignee'),
  4104. feel: 'optional',
  4105. getValue,
  4106. setValue,
  4107. debounce
  4108. });
  4109. }
  4110. function CandidateGroups$1(props) {
  4111. const {
  4112. element
  4113. } = props;
  4114. const commandStack = useService('commandStack');
  4115. const bpmnFactory = useService('bpmnFactory');
  4116. const translate = useService('translate');
  4117. const debounce = useService('debounceInput');
  4118. const getValue = () => {
  4119. return (getAssignmentDefinition(element) || {}).candidateGroups;
  4120. };
  4121. const setValue = value => {
  4122. let commands = [];
  4123. const businessObject = getBusinessObject(element);
  4124. let extensionElements = businessObject.get('extensionElements');
  4125. // (1) ensure extension elements
  4126. if (!extensionElements) {
  4127. extensionElements = createElement('bpmn:ExtensionElements', {
  4128. values: []
  4129. }, businessObject, bpmnFactory);
  4130. commands.push({
  4131. cmd: 'element.updateModdleProperties',
  4132. context: {
  4133. element,
  4134. moddleElement: businessObject,
  4135. properties: {
  4136. extensionElements
  4137. }
  4138. }
  4139. });
  4140. }
  4141. // (2) ensure assignmentDefinition
  4142. let assignmentDefinition = getAssignmentDefinition(element);
  4143. if (!assignmentDefinition) {
  4144. assignmentDefinition = createElement('zeebe:AssignmentDefinition', {}, extensionElements, bpmnFactory);
  4145. commands.push({
  4146. cmd: 'element.updateModdleProperties',
  4147. context: {
  4148. element,
  4149. moddleElement: extensionElements,
  4150. properties: {
  4151. values: [...extensionElements.get('values'), assignmentDefinition]
  4152. }
  4153. }
  4154. });
  4155. }
  4156. // (3) update candidateGroups
  4157. commands.push({
  4158. cmd: 'element.updateModdleProperties',
  4159. context: {
  4160. element,
  4161. moddleElement: assignmentDefinition,
  4162. properties: {
  4163. candidateGroups: value
  4164. }
  4165. }
  4166. });
  4167. commandStack.execute('properties-panel.multi-command-executor', commands);
  4168. };
  4169. return FeelEntryWithVariableContext({
  4170. element,
  4171. id: 'assignmentDefinitionCandidateGroups',
  4172. label: translate('Candidate groups'),
  4173. feel: 'optional',
  4174. getValue,
  4175. setValue,
  4176. debounce
  4177. });
  4178. }
  4179. function CandidateUsers$1(props) {
  4180. const {
  4181. element
  4182. } = props;
  4183. const commandStack = useService('commandStack');
  4184. const bpmnFactory = useService('bpmnFactory');
  4185. const translate = useService('translate');
  4186. const debounce = useService('debounceInput');
  4187. const getValue = () => {
  4188. return (getAssignmentDefinition(element) || {}).candidateUsers;
  4189. };
  4190. const setValue = value => {
  4191. let commands = [];
  4192. const businessObject = getBusinessObject(element);
  4193. let extensionElements = businessObject.get('extensionElements');
  4194. // (1) ensure extension elements
  4195. if (!extensionElements) {
  4196. extensionElements = createElement('bpmn:ExtensionElements', {
  4197. values: []
  4198. }, businessObject, bpmnFactory);
  4199. commands.push({
  4200. cmd: 'element.updateModdleProperties',
  4201. context: {
  4202. element,
  4203. moddleElement: businessObject,
  4204. properties: {
  4205. extensionElements
  4206. }
  4207. }
  4208. });
  4209. }
  4210. // (2) ensure assignmentDefinition
  4211. let assignmentDefinition = getAssignmentDefinition(element);
  4212. if (!assignmentDefinition) {
  4213. assignmentDefinition = createElement('zeebe:AssignmentDefinition', {}, extensionElements, bpmnFactory);
  4214. commands.push({
  4215. cmd: 'element.updateModdleProperties',
  4216. context: {
  4217. element,
  4218. moddleElement: extensionElements,
  4219. properties: {
  4220. values: [...extensionElements.get('values'), assignmentDefinition]
  4221. }
  4222. }
  4223. });
  4224. }
  4225. // (3) update candidateUsers
  4226. commands.push({
  4227. cmd: 'element.updateModdleProperties',
  4228. context: {
  4229. element,
  4230. moddleElement: assignmentDefinition,
  4231. properties: {
  4232. candidateUsers: value
  4233. }
  4234. }
  4235. });
  4236. commandStack.execute('properties-panel.multi-command-executor', commands);
  4237. };
  4238. return FeelEntryWithVariableContext({
  4239. element,
  4240. id: 'assignmentDefinitionCandidateUsers',
  4241. label: translate('Candidate users'),
  4242. feel: 'optional',
  4243. getValue,
  4244. setValue,
  4245. debounce
  4246. });
  4247. }
  4248. // helper ///////////////////////
  4249. function getAssignmentDefinition(element) {
  4250. const businessObject = getBusinessObject(element);
  4251. return getExtensionElementsList(businessObject, 'zeebe:AssignmentDefinition')[0];
  4252. }
  4253. function isZeebeServiceTask(element) {
  4254. if (!is(element, 'zeebe:ZeebeServiceTask')) return false;
  4255. if (is(element, 'bpmn:EndEvent') || is(element, 'bpmn:IntermediateThrowEvent')) {
  4256. return !!getMessageEventDefinition(element);
  4257. }
  4258. // BusinessRuleTask and ScriptTask are ServiceTasks only if they have a TaskDefinition
  4259. // (ie. if the implementation is set to ==JobWorker)
  4260. if (isAny$1(element, ['bpmn:BusinessRuleTask', 'bpmn:ScriptTask']) && !getTaskDefinition$3(element)) {
  4261. return false;
  4262. }
  4263. return true;
  4264. }
  4265. function isMessageEndEvent(element) {
  4266. return is(element, 'bpmn:EndEvent') && !!getMessageEventDefinition(element);
  4267. }
  4268. function isMessageThrowEvent(element) {
  4269. return is(element, 'bpmn:IntermediateThrowEvent') && !!getMessageEventDefinition(element);
  4270. }
  4271. // helper ////////////////
  4272. function getTaskDefinition$3(element) {
  4273. const businessObject = getBusinessObject(element);
  4274. return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
  4275. }
  4276. function areHeadersSupported(element) {
  4277. return is(element, 'bpmn:UserTask') || isZeebeServiceTask(element);
  4278. }
  4279. /**
  4280. * Get first zeebe:TaskHeaders element for a specific element.
  4281. *
  4282. * @param {ModdleElement} element
  4283. *
  4284. * @return {ModdleElement} a zeebe:TaskHeader element
  4285. */
  4286. function getTaskHeaders$1(element) {
  4287. const businessObject = getBusinessObject(element);
  4288. return getExtensionElementsList(businessObject, 'zeebe:TaskHeaders')[0];
  4289. }
  4290. /**
  4291. * Retrieve all zeebe:Header elements for a specific element.
  4292. *
  4293. * @param {ModdleElement} element
  4294. *
  4295. * @return {Array<ModdleElement>} a list of zeebe:Header elements
  4296. */
  4297. function getHeaders(element) {
  4298. const taskHeaders = getTaskHeaders$1(element);
  4299. return taskHeaders ? taskHeaders.get('values') : [];
  4300. }
  4301. const DMN_IMPLEMENTATION_OPTION = 'dmn',
  4302. JOB_WORKER_IMPLEMENTATION_OPTION$1 = 'jobWorker',
  4303. DEFAULT_IMPLEMENTATION_OPTION$1 = '';
  4304. function BusinessRuleImplementationProps(props) {
  4305. const {
  4306. element
  4307. } = props;
  4308. if (!is(element, 'bpmn:BusinessRuleTask')) {
  4309. return [];
  4310. }
  4311. return [{
  4312. id: 'businessRuleImplementation',
  4313. component: BusinessRuleImplementation,
  4314. isEdited: () => isBusinessRuleImplementationEdited(element)
  4315. }];
  4316. }
  4317. function BusinessRuleImplementation(props) {
  4318. const {
  4319. element,
  4320. id
  4321. } = props;
  4322. const commandStack = useService('commandStack');
  4323. const bpmnFactory = useService('bpmnFactory');
  4324. const translate = useService('translate');
  4325. const getValue = () => {
  4326. if (getCalledDecision$1(element)) {
  4327. return DMN_IMPLEMENTATION_OPTION;
  4328. }
  4329. if (getTaskDefinition$2(element)) {
  4330. return JOB_WORKER_IMPLEMENTATION_OPTION$1;
  4331. }
  4332. return DEFAULT_IMPLEMENTATION_OPTION$1;
  4333. };
  4334. /**
  4335. * Set value by either creating a zeebe:calledDecision or a zeebe:taskDefintion
  4336. * extension element. Note that they must not exist both at the same time, however
  4337. * this will be ensured by a bpmn-js behavior (and not by the propPanel).
  4338. */
  4339. const setValue = value => {
  4340. let extensionElement, extensionElementType;
  4341. if (value === DMN_IMPLEMENTATION_OPTION) {
  4342. extensionElement = getCalledDecision$1(element);
  4343. extensionElementType = 'zeebe:CalledDecision';
  4344. } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION$1) {
  4345. extensionElement = getTaskDefinition$2(element);
  4346. extensionElementType = 'zeebe:TaskDefinition';
  4347. } else {
  4348. resetElement$1(element, commandStack);
  4349. }
  4350. if (!extensionElement && extensionElementType) {
  4351. extensionElement = createElement(extensionElementType, {}, null, bpmnFactory);
  4352. updateExtensionElements$1(element, extensionElement, bpmnFactory, commandStack);
  4353. }
  4354. };
  4355. const getOptions = () => {
  4356. const options = [{
  4357. value: DEFAULT_IMPLEMENTATION_OPTION$1,
  4358. label: translate('<none>')
  4359. }, {
  4360. value: DMN_IMPLEMENTATION_OPTION,
  4361. label: translate('DMN decision')
  4362. }, {
  4363. value: JOB_WORKER_IMPLEMENTATION_OPTION$1,
  4364. label: translate('Job worker')
  4365. }];
  4366. return options;
  4367. };
  4368. return SelectEntry({
  4369. element,
  4370. id,
  4371. label: translate('Implementation'),
  4372. getValue,
  4373. setValue,
  4374. getOptions
  4375. });
  4376. }
  4377. // helper ///////////////////////
  4378. function getTaskDefinition$2(element) {
  4379. const businessObject = getBusinessObject(element);
  4380. return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
  4381. }
  4382. function getCalledDecision$1(element) {
  4383. const businessObject = getBusinessObject(element);
  4384. return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];
  4385. }
  4386. function isBusinessRuleImplementationEdited(element) {
  4387. return getTaskDefinition$2(element);
  4388. }
  4389. function resetElement$1(element, commandStack) {
  4390. const businessObject = getBusinessObject(element);
  4391. const toRemove = [getTaskDefinition$2(element), getTaskHeaders$1(element), getCalledDecision$1(element)].filter(Boolean);
  4392. removeExtensionElements(element, businessObject, toRemove, commandStack);
  4393. }
  4394. function updateExtensionElements$1(element, extensionElementToAdd, bpmnFactory, commandStack) {
  4395. const businessObject = getBusinessObject(element);
  4396. const commands = [];
  4397. let extensionElements = businessObject.get('extensionElements');
  4398. let extensionElementValues;
  4399. // (1) create bpmn:ExtensionElements if it doesn't exist
  4400. if (!extensionElements) {
  4401. extensionElements = createElement('bpmn:ExtensionElements', {
  4402. values: []
  4403. }, businessObject, bpmnFactory);
  4404. commands.push({
  4405. cmd: 'element.updateModdleProperties',
  4406. context: {
  4407. element,
  4408. moddleElement: businessObject,
  4409. properties: {
  4410. extensionElements
  4411. }
  4412. }
  4413. });
  4414. }
  4415. extensionElementToAdd.$parent = extensionElements;
  4416. // (2) remove old exension element from extensionElements
  4417. if (is(extensionElementToAdd, 'zeebe:TaskDefinition')) {
  4418. extensionElementValues = without(extensionElements.get('values'), getCalledDecision$1(element));
  4419. } else if (is(extensionElementToAdd, 'zeebe:CalledDecision')) {
  4420. extensionElementValues = without(extensionElements.get('values'), getTaskDefinition$2(element));
  4421. }
  4422. // (3) add extension element to list
  4423. commands.push({
  4424. cmd: 'element.updateModdleProperties',
  4425. context: {
  4426. element,
  4427. moddleElement: extensionElements,
  4428. properties: {
  4429. values: [...extensionElementValues, extensionElementToAdd]
  4430. }
  4431. }
  4432. });
  4433. commandStack.execute('properties-panel.multi-command-executor', commands);
  4434. }
  4435. function CalledDecisionProps(props) {
  4436. const {
  4437. element
  4438. } = props;
  4439. if (!is(element, 'bpmn:BusinessRuleTask') || !getCalledDecision(element)) {
  4440. return [];
  4441. }
  4442. return [{
  4443. id: 'decisionId',
  4444. component: DecisionID,
  4445. isEdited: isFeelEntryEdited
  4446. }, {
  4447. id: 'resultVariable',
  4448. component: ResultVariable$4,
  4449. isEdited: isTextFieldEntryEdited
  4450. }];
  4451. }
  4452. function DecisionID(props) {
  4453. const {
  4454. element,
  4455. id
  4456. } = props;
  4457. const commandStack = useService('commandStack');
  4458. const bpmnFactory = useService('bpmnFactory');
  4459. const translate = useService('translate');
  4460. const debounce = useService('debounceInput');
  4461. const getValue = () => {
  4462. return (getCalledDecision(element) || {}).decisionId;
  4463. };
  4464. const setValue = value => {
  4465. const commands = [];
  4466. const businessObject = getBusinessObject(element);
  4467. let extensionElements = businessObject.get('extensionElements');
  4468. // (1) ensure extension elements
  4469. if (!extensionElements) {
  4470. extensionElements = createElement('bpmn:ExtensionElements', {
  4471. values: []
  4472. }, businessObject, bpmnFactory);
  4473. commands.push({
  4474. cmd: 'element.updateModdleProperties',
  4475. context: {
  4476. element,
  4477. moddleElement: businessObject,
  4478. properties: {
  4479. extensionElements
  4480. }
  4481. }
  4482. });
  4483. }
  4484. // (2) ensure calledDecision
  4485. let calledDecision = getCalledDecision(element);
  4486. if (!calledDecision) {
  4487. calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
  4488. commands.push({
  4489. cmd: 'element.updateModdleProperties',
  4490. context: {
  4491. element,
  4492. moddleElement: extensionElements,
  4493. properties: {
  4494. values: [...extensionElements.get('values'), calledDecision]
  4495. }
  4496. }
  4497. });
  4498. }
  4499. // (3) update caledDecision.decisionId
  4500. commands.push({
  4501. cmd: 'element.updateModdleProperties',
  4502. context: {
  4503. element,
  4504. moddleElement: calledDecision,
  4505. properties: {
  4506. decisionId: value
  4507. }
  4508. }
  4509. });
  4510. // (4) commit all updates
  4511. commandStack.execute('properties-panel.multi-command-executor', commands);
  4512. };
  4513. return FeelEntryWithVariableContext({
  4514. element,
  4515. id,
  4516. label: translate('Decision ID'),
  4517. feel: 'optional',
  4518. getValue,
  4519. setValue,
  4520. debounce
  4521. });
  4522. }
  4523. function ResultVariable$4(props) {
  4524. const {
  4525. element,
  4526. id
  4527. } = props;
  4528. const commandStack = useService('commandStack');
  4529. const bpmnFactory = useService('bpmnFactory');
  4530. const translate = useService('translate');
  4531. const debounce = useService('debounceInput');
  4532. const getValue = () => {
  4533. return (getCalledDecision(element) || {}).resultVariable;
  4534. };
  4535. const setValue = value => {
  4536. const commands = [];
  4537. const businessObject = getBusinessObject(element);
  4538. let extensionElements = businessObject.get('extensionElements');
  4539. // (1) ensure extension elements
  4540. if (!extensionElements) {
  4541. extensionElements = createElement('bpmn:ExtensionElements', {
  4542. values: []
  4543. }, businessObject, bpmnFactory);
  4544. commands.push({
  4545. cmd: 'element.updateModdleProperties',
  4546. context: {
  4547. element,
  4548. moddleElement: businessObject,
  4549. properties: {
  4550. extensionElements
  4551. }
  4552. }
  4553. });
  4554. }
  4555. // (2) ensure calledDecision
  4556. let calledDecision = getCalledDecision(element);
  4557. if (!calledDecision) {
  4558. calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
  4559. commands.push({
  4560. cmd: 'element.updateModdleProperties',
  4561. context: {
  4562. element,
  4563. moddleElement: extensionElements,
  4564. properties: {
  4565. values: [...extensionElements.get('values'), calledDecision]
  4566. }
  4567. }
  4568. });
  4569. }
  4570. // (3) update caledDecision.decisionId
  4571. commands.push({
  4572. cmd: 'element.updateModdleProperties',
  4573. context: {
  4574. element,
  4575. moddleElement: calledDecision,
  4576. properties: {
  4577. resultVariable: value
  4578. }
  4579. }
  4580. });
  4581. // (4) commit all updates
  4582. commandStack.execute('properties-panel.multi-command-executor', commands);
  4583. };
  4584. return TextFieldEntry({
  4585. element,
  4586. id,
  4587. label: translate('Result variable'),
  4588. getValue,
  4589. setValue,
  4590. debounce
  4591. });
  4592. }
  4593. // helper ///////////////////////
  4594. function getCalledDecision(element) {
  4595. const businessObject = getBusinessObject(element);
  4596. return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];
  4597. }
  4598. function ConditionProps$1(props) {
  4599. const {
  4600. element
  4601. } = props;
  4602. if (!is(element, 'bpmn:SequenceFlow')) {
  4603. return [];
  4604. }
  4605. const conditionProps = [];
  4606. if (isConditionalSource$1(element.source)) {
  4607. conditionProps.push({
  4608. id: 'conditionExpression',
  4609. component: ConditionExpression$1,
  4610. isEdited: isFeelEntryEdited
  4611. });
  4612. }
  4613. return conditionProps;
  4614. }
  4615. function ConditionExpression$1(props) {
  4616. const {
  4617. element
  4618. } = props;
  4619. const commandStack = useService('commandStack'),
  4620. bpmnFactory = useService('bpmnFactory'),
  4621. translate = useService('translate'),
  4622. debounce = useService('debounceInput');
  4623. const getValue = () => {
  4624. return getConditionExpression$1(element);
  4625. };
  4626. const setValue = value => {
  4627. const commands = [];
  4628. const businessObject = getBusinessObject(element);
  4629. // (1) If we set value to a default flow, make it a non-default flow
  4630. // by updating the element source
  4631. const source = element.source;
  4632. if (source.businessObject.default === businessObject) {
  4633. commands.push({
  4634. cmd: 'element.updateProperties',
  4635. context: {
  4636. element: source,
  4637. properties: {
  4638. 'default': undefined
  4639. }
  4640. }
  4641. });
  4642. }
  4643. // (2) Create and set formalExpression element containing the conditionExpression,
  4644. // unless the provided value is empty
  4645. const formalExpressionElement = value && value != '' ? createElement('bpmn:FormalExpression', {
  4646. body: value
  4647. }, businessObject, bpmnFactory) : undefined;
  4648. commands.push({
  4649. cmd: 'element.updateProperties',
  4650. context: {
  4651. element: element,
  4652. properties: {
  4653. conditionExpression: formalExpressionElement
  4654. }
  4655. }
  4656. });
  4657. // (3) Execute the commands
  4658. commandStack.execute('properties-panel.multi-command-executor', commands);
  4659. };
  4660. return FeelEntryWithVariableContext({
  4661. element,
  4662. id: 'conditionExpression',
  4663. label: translate('Condition expression'),
  4664. feel: 'required',
  4665. getValue,
  4666. setValue,
  4667. debounce
  4668. });
  4669. }
  4670. // helper //////////////////////////
  4671. const CONDITIONAL_SOURCES$1 = ['bpmn:Activity', 'bpmn:ExclusiveGateway', 'bpmn:InclusiveGateway'];
  4672. function isConditionalSource$1(element) {
  4673. return isAny(element, CONDITIONAL_SOURCES$1);
  4674. }
  4675. /**
  4676. * getConditionExpression - get the body value of a condition expression for a given element
  4677. *
  4678. * @param {ModdleElement} element
  4679. *
  4680. * @return {string|undefined}
  4681. */
  4682. function getConditionExpression$1(element) {
  4683. const businessObject = getBusinessObject(element);
  4684. const conditionExpression = businessObject.conditionExpression;
  4685. if (conditionExpression) {
  4686. return conditionExpression.get('body');
  4687. }
  4688. }
  4689. function ErrorProps$1(props) {
  4690. const {
  4691. element
  4692. } = props;
  4693. const error = getError(element);
  4694. const entries = [];
  4695. if (error && is(element, 'bpmn:ThrowEvent')) {
  4696. entries.push({
  4697. id: 'errorCode',
  4698. component: ErrorCode$1,
  4699. isEdited: isFeelEntryEdited
  4700. });
  4701. }
  4702. return entries;
  4703. }
  4704. function ErrorCode$1(props) {
  4705. const {
  4706. element
  4707. } = props;
  4708. const commandStack = useService('commandStack');
  4709. const translate = useService('translate');
  4710. const debounce = useService('debounceInput');
  4711. const error = getError(element);
  4712. const getValue = () => {
  4713. return error.get('errorCode');
  4714. };
  4715. const setValue = value => {
  4716. return commandStack.execute('element.updateModdleProperties', {
  4717. element,
  4718. moddleElement: error,
  4719. properties: {
  4720. errorCode: value
  4721. }
  4722. });
  4723. };
  4724. return FeelEntryWithVariableContext({
  4725. element,
  4726. id: 'errorCode',
  4727. label: translate('Code'),
  4728. feel: 'optional',
  4729. getValue,
  4730. setValue,
  4731. debounce
  4732. });
  4733. }
  4734. /**
  4735. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  4736. */
  4737. /**
  4738. * @returns {Array<Entry>} entries
  4739. */
  4740. function EscalationProps$1(props) {
  4741. const {
  4742. element
  4743. } = props;
  4744. // update throw events only
  4745. if (!is(element, 'bpmn:ThrowEvent')) {
  4746. return [];
  4747. }
  4748. const escalation = getEscalation(element);
  4749. const entries = [];
  4750. if (escalation) {
  4751. entries.push({
  4752. id: 'escalationCode',
  4753. component: EscalationCode,
  4754. isEdited: isFeelEntryEdited
  4755. });
  4756. }
  4757. return entries;
  4758. }
  4759. function EscalationCode(props) {
  4760. const {
  4761. element
  4762. } = props;
  4763. const commandStack = useService('commandStack');
  4764. const translate = useService('translate');
  4765. const debounce = useService('debounceInput');
  4766. const escalation = getEscalation(element);
  4767. const getValue = () => {
  4768. return escalation.get('escalationCode');
  4769. };
  4770. const setValue = value => {
  4771. return commandStack.execute('element.updateModdleProperties', {
  4772. element,
  4773. moddleElement: escalation,
  4774. properties: {
  4775. escalationCode: value
  4776. }
  4777. });
  4778. };
  4779. return FeelEntryWithVariableContext({
  4780. element,
  4781. id: 'escalationCode',
  4782. label: translate('Code'),
  4783. feel: 'optional',
  4784. getValue,
  4785. setValue,
  4786. debounce
  4787. });
  4788. }
  4789. const FORM_KEY_PREFIX = 'camunda-forms:bpmn:',
  4790. USER_TASK_FORM_ID_PREFIX = 'UserTaskForm_';
  4791. const FORM_TYPES = {
  4792. CAMUNDA_FORM_EMBEDDED: 'camunda-form-embedded',
  4793. CAMUNDA_FORM_LINKED: 'camunda-form-linked',
  4794. CUSTOM_FORM: 'custom-form'
  4795. };
  4796. function getFormDefinition(element) {
  4797. const businessObject = getBusinessObject(element);
  4798. const formDefinitions = getExtensionElementsList(businessObject, 'zeebe:FormDefinition');
  4799. return formDefinitions[0];
  4800. }
  4801. function getUserTaskForm(element, rootElement) {
  4802. rootElement = rootElement || getRootElement$1(element);
  4803. const formDefinition = getFormDefinition(element);
  4804. if (!formDefinition) {
  4805. return;
  4806. }
  4807. const formKey = formDefinition.get('formKey');
  4808. const userTaskForms = getExtensionElementsList(rootElement, 'zeebe:UserTaskForm');
  4809. return userTaskForms.find(userTaskForm => {
  4810. return userTaskFormIdToFormKey(userTaskForm.get('id')) === formKey;
  4811. });
  4812. }
  4813. function userTaskFormIdToFormKey(userTaskFormId) {
  4814. return `${FORM_KEY_PREFIX}${userTaskFormId}`;
  4815. }
  4816. function createUserTaskFormId() {
  4817. return nextId(USER_TASK_FORM_ID_PREFIX);
  4818. }
  4819. function getRootElement$1(element) {
  4820. const businessObject = getBusinessObject(element);
  4821. let parent = businessObject;
  4822. while (parent.$parent && !is(parent, 'bpmn:Process')) {
  4823. parent = parent.$parent;
  4824. }
  4825. return parent;
  4826. }
  4827. function getFormType$1(element) {
  4828. const formDefinition = getFormDefinition(element);
  4829. if (!formDefinition) {
  4830. return;
  4831. }
  4832. const formId = formDefinition.get('formId'),
  4833. formKey = formDefinition.get('formKey');
  4834. if (isDefined(formId)) {
  4835. return FORM_TYPES.CAMUNDA_FORM_LINKED;
  4836. }
  4837. if (isDefined(formKey)) {
  4838. if (getUserTaskForm(element)) {
  4839. return FORM_TYPES.CAMUNDA_FORM_EMBEDDED;
  4840. }
  4841. return FORM_TYPES.CUSTOM_FORM;
  4842. }
  4843. }
  4844. function FormProps$1(props) {
  4845. const {
  4846. element
  4847. } = props;
  4848. if (!is(element, 'bpmn:UserTask')) {
  4849. return [];
  4850. }
  4851. const entries = [{
  4852. id: 'formType',
  4853. component: FormType$1,
  4854. isEdited: isSelectEntryEdited
  4855. }];
  4856. const formType = getFormType$1(element);
  4857. if (formType === FORM_TYPES.CAMUNDA_FORM_EMBEDDED) {
  4858. entries.push({
  4859. id: 'formConfiguration',
  4860. component: FormConfiguration,
  4861. isEdited: isTextAreaEntryEdited
  4862. });
  4863. } else if (formType === FORM_TYPES.CAMUNDA_FORM_LINKED) {
  4864. entries.push({
  4865. id: 'formId',
  4866. component: FormId,
  4867. isEdited: isTextFieldEntryEdited
  4868. });
  4869. } else if (formType === FORM_TYPES.CUSTOM_FORM) {
  4870. entries.push({
  4871. id: 'customFormKey',
  4872. component: CustomFormKey,
  4873. isEdited: isTextFieldEntryEdited
  4874. });
  4875. }
  4876. return entries;
  4877. }
  4878. function FormType$1(props) {
  4879. const {
  4880. element
  4881. } = props;
  4882. const injector = useService('injector'),
  4883. translate = useService('translate');
  4884. const getValue = () => {
  4885. return getFormType$1(element) || '';
  4886. };
  4887. const setValue = value => {
  4888. if (value === FORM_TYPES.CAMUNDA_FORM_EMBEDDED) {
  4889. setUserTaskForm(injector, element, '');
  4890. } else if (value === FORM_TYPES.CAMUNDA_FORM_LINKED) {
  4891. setFormId(injector, element, '');
  4892. } else if (value === FORM_TYPES.CUSTOM_FORM) {
  4893. setCustomFormKey(injector, element, '');
  4894. } else {
  4895. removeFormDefinition(injector, element);
  4896. }
  4897. };
  4898. const getOptions = () => {
  4899. return [{
  4900. value: '',
  4901. label: translate('<none>')
  4902. }, {
  4903. value: FORM_TYPES.CAMUNDA_FORM_LINKED,
  4904. label: translate('Camunda Form (linked)')
  4905. }, {
  4906. value: FORM_TYPES.CAMUNDA_FORM_EMBEDDED,
  4907. label: translate('Camunda Form (embedded)')
  4908. }, {
  4909. value: FORM_TYPES.CUSTOM_FORM,
  4910. label: translate('Custom form key')
  4911. }];
  4912. };
  4913. return SelectEntry({
  4914. element,
  4915. id: 'formType',
  4916. label: translate('Type'),
  4917. getValue,
  4918. setValue,
  4919. getOptions
  4920. });
  4921. }
  4922. function FormConfiguration(props) {
  4923. const {
  4924. element
  4925. } = props;
  4926. const debounce = useService('debounceInput'),
  4927. injector = useService('injector'),
  4928. translate = useService('translate');
  4929. const getValue = () => {
  4930. return getUserTaskForm(element).get('body');
  4931. };
  4932. const setValue = value => {
  4933. setUserTaskForm(injector, element, isUndefined(value) ? '' : value);
  4934. };
  4935. return TextAreaEntry({
  4936. element,
  4937. id: 'formConfiguration',
  4938. label: translate('Form JSON configuration'),
  4939. rows: 4,
  4940. getValue,
  4941. setValue,
  4942. debounce
  4943. });
  4944. }
  4945. function FormId(props) {
  4946. const {
  4947. element
  4948. } = props;
  4949. const debounce = useService('debounceInput'),
  4950. injector = useService('injector'),
  4951. translate = useService('translate');
  4952. const getValue = () => {
  4953. return getFormDefinition(element).get('formId');
  4954. };
  4955. const setValue = value => {
  4956. setFormId(injector, element, isUndefined(value) ? '' : value);
  4957. };
  4958. return TextFieldEntry({
  4959. element,
  4960. id: 'formId',
  4961. label: translate('Form ID'),
  4962. getValue,
  4963. setValue,
  4964. debounce
  4965. });
  4966. }
  4967. function CustomFormKey(props) {
  4968. const {
  4969. element
  4970. } = props;
  4971. const debounce = useService('debounceInput'),
  4972. injector = useService('injector'),
  4973. translate = useService('translate');
  4974. const getValue = () => {
  4975. return getFormDefinition(element).get('formKey');
  4976. };
  4977. const setValue = value => {
  4978. setCustomFormKey(injector, element, isUndefined(value) ? '' : value);
  4979. };
  4980. return TextFieldEntry({
  4981. element,
  4982. id: 'customFormKey',
  4983. label: translate('Form key'),
  4984. getValue,
  4985. setValue,
  4986. debounce
  4987. });
  4988. }
  4989. // helpers /////////////
  4990. /**
  4991. * @typedef { { cmd: string, context: Object } } Command
  4992. * @typedef {Command[]} Commands
  4993. *
  4994. * @typedef {import('diagram-js/lib/model/Types').Element} Element
  4995. * @typedef {import('bpmn-js/lib/model/Types').ModdleElement} ModdleElement
  4996. *
  4997. * @param {import('didi').Injector} Injector
  4998. */
  4999. /**
  5000. * @param {Injector} injector
  5001. * @param {Element} element
  5002. *
  5003. * @returns { {
  5004. * commands: Commands,
  5005. * extensionElements: ModdleElement
  5006. * } }
  5007. */
  5008. function getOrCreateExtensionElements(injector, element, moddleElement) {
  5009. const businessObject = moddleElement || getBusinessObject(element);
  5010. let extensionElements = businessObject.get('extensionElements');
  5011. if (extensionElements) {
  5012. return {
  5013. commands: [],
  5014. extensionElements
  5015. };
  5016. }
  5017. const bpmnFactory = injector.get('bpmnFactory');
  5018. extensionElements = createElement('bpmn:ExtensionElements', {
  5019. values: []
  5020. }, businessObject, bpmnFactory);
  5021. return {
  5022. commands: [createUpdateModdlePropertiesCommand(element, businessObject, {
  5023. extensionElements
  5024. })],
  5025. extensionElements
  5026. };
  5027. }
  5028. /**
  5029. * @param {Injector} injector
  5030. * @param {Element} element
  5031. *
  5032. * @returns { {
  5033. * commands: Commands,
  5034. * formDefinition: ModdleElement
  5035. * } }
  5036. */
  5037. function getOrCreateFormDefintition(injector, element) {
  5038. let formDefinition = getFormDefinition(element);
  5039. if (formDefinition) {
  5040. return {
  5041. commands: [],
  5042. formDefinition
  5043. };
  5044. }
  5045. const {
  5046. extensionElements,
  5047. commands
  5048. } = getOrCreateExtensionElements(injector, element);
  5049. formDefinition = createFormDefinition(injector, {}, extensionElements);
  5050. return {
  5051. commands: [...commands, createUpdateModdlePropertiesCommand(element, extensionElements, {
  5052. values: [...extensionElements.get('values'), formDefinition]
  5053. })],
  5054. formDefinition
  5055. };
  5056. }
  5057. /**
  5058. * @param {Injector} injector
  5059. * @param {Element} element
  5060. *
  5061. * @returns { {
  5062. * commands: Commands,
  5063. * formDefinition: ModdleElement,
  5064. * userTaskForm: ModdleElement
  5065. * } }
  5066. */
  5067. function getOrCreateUserTaskForm(injector, element) {
  5068. let userTaskForm = getUserTaskForm(element);
  5069. if (userTaskForm) {
  5070. return {
  5071. commands: [],
  5072. formDefinition: getFormDefinition(element),
  5073. userTaskForm
  5074. };
  5075. }
  5076. const rootElement = getRootElement$1(element);
  5077. const {
  5078. extensionElements,
  5079. commands: extensionElementsCommands
  5080. } = getOrCreateExtensionElements(injector, element, rootElement);
  5081. const {
  5082. formDefinition,
  5083. commands: formDefinitionCommands
  5084. } = getOrCreateFormDefintition(injector, element);
  5085. const formId = createUserTaskFormId();
  5086. userTaskForm = createUserTaskForm(injector, {
  5087. id: formId
  5088. }, extensionElements);
  5089. return {
  5090. commands: [...extensionElementsCommands, ...formDefinitionCommands, createUpdateModdlePropertiesCommand(element, extensionElements, {
  5091. values: [...extensionElements.get('values'), userTaskForm]
  5092. }), createUpdateModdlePropertiesCommand(element, formDefinition, {
  5093. formKey: userTaskFormIdToFormKey(formId)
  5094. })],
  5095. formDefinition,
  5096. userTaskForm
  5097. };
  5098. }
  5099. function setFormId(injector, element, formId) {
  5100. let {
  5101. commands,
  5102. formDefinition
  5103. } = getOrCreateFormDefintition(injector, element);
  5104. const commandStack = injector.get('commandStack');
  5105. commandStack.execute('properties-panel.multi-command-executor', [...commands, createUpdateModdlePropertiesCommand(element, formDefinition, {
  5106. formId
  5107. })]);
  5108. }
  5109. function setCustomFormKey(injector, element, formKey) {
  5110. let {
  5111. commands,
  5112. formDefinition
  5113. } = getOrCreateFormDefintition(injector, element);
  5114. const commandStack = injector.get('commandStack');
  5115. commandStack.execute('properties-panel.multi-command-executor', [...commands, createUpdateModdlePropertiesCommand(element, formDefinition, {
  5116. formKey
  5117. })]);
  5118. }
  5119. function setUserTaskForm(injector, element, body) {
  5120. let {
  5121. commands,
  5122. userTaskForm
  5123. } = getOrCreateUserTaskForm(injector, element);
  5124. const commandStack = injector.get('commandStack');
  5125. commandStack.execute('properties-panel.multi-command-executor', [...commands, createUpdateModdlePropertiesCommand(element, userTaskForm, {
  5126. body
  5127. })]);
  5128. }
  5129. function removeFormDefinition(injector, element) {
  5130. const formDefinition = getFormDefinition(element);
  5131. /**
  5132. * @type {import('bpmn-js/lib/features/modeling/Modeling').default}
  5133. */
  5134. const modeling = injector.get('modeling');
  5135. if (formDefinition) {
  5136. const businessObject = getBusinessObject(element),
  5137. extensionElements = businessObject.get('extensionElements');
  5138. modeling.updateModdleProperties(element, extensionElements, {
  5139. values: without(extensionElements.get('values'), formDefinition)
  5140. });
  5141. }
  5142. }
  5143. /**
  5144. * @param {Injector} injector
  5145. * @param {Object} properties
  5146. * @param {ModdleElement} parent
  5147. *
  5148. * @returns {ModdleElement}
  5149. */
  5150. function createFormDefinition(injector, properties, parent) {
  5151. const bpmnFactory = injector.get('bpmnFactory');
  5152. return createElement('zeebe:FormDefinition', properties, parent, bpmnFactory);
  5153. }
  5154. /**
  5155. * @param {Injector} injector
  5156. * @param {Object} properties
  5157. * @param {ModdleElement} parent
  5158. *
  5159. * @returns {ModdleElement}
  5160. */
  5161. function createUserTaskForm(injector, properties, parent) {
  5162. const bpmnFactory = injector.get('bpmnFactory');
  5163. return createElement('zeebe:UserTaskForm', properties, parent, bpmnFactory);
  5164. }
  5165. /**
  5166. * @param {Element} element
  5167. * @param {ModdleElement} moddleElement
  5168. * @param {Object} properties
  5169. *
  5170. * @returns {Command}
  5171. */
  5172. function createUpdateModdlePropertiesCommand(element, moddleElement, properties) {
  5173. return {
  5174. cmd: 'element.updateModdleProperties',
  5175. context: {
  5176. element,
  5177. moddleElement,
  5178. properties
  5179. }
  5180. };
  5181. }
  5182. function Header(props) {
  5183. const {
  5184. idPrefix,
  5185. header
  5186. } = props;
  5187. const entries = [{
  5188. id: idPrefix + '-key',
  5189. component: KeyProperty,
  5190. header,
  5191. idPrefix
  5192. }, {
  5193. id: idPrefix + '-value',
  5194. component: ValueProperty$2,
  5195. header,
  5196. idPrefix
  5197. }];
  5198. return entries;
  5199. }
  5200. function KeyProperty(props) {
  5201. const {
  5202. idPrefix,
  5203. element,
  5204. header
  5205. } = props;
  5206. const commandStack = useService('commandStack');
  5207. const translate = useService('translate');
  5208. const debounce = useService('debounceInput');
  5209. const setValue = value => {
  5210. commandStack.execute('element.updateModdleProperties', {
  5211. element,
  5212. moddleElement: header,
  5213. properties: {
  5214. key: value
  5215. }
  5216. });
  5217. };
  5218. const getValue = header => {
  5219. return header.key;
  5220. };
  5221. return TextFieldEntry({
  5222. element: header,
  5223. id: idPrefix + '-key',
  5224. label: translate('Key'),
  5225. getValue,
  5226. setValue,
  5227. debounce
  5228. });
  5229. }
  5230. function ValueProperty$2(props) {
  5231. const {
  5232. idPrefix,
  5233. element,
  5234. header
  5235. } = props;
  5236. const commandStack = useService('commandStack');
  5237. const translate = useService('translate');
  5238. const debounce = useService('debounceInput');
  5239. const setValue = value => {
  5240. commandStack.execute('element.updateModdleProperties', {
  5241. element,
  5242. moddleElement: header,
  5243. properties: {
  5244. value
  5245. }
  5246. });
  5247. };
  5248. const getValue = header => {
  5249. return header.value;
  5250. };
  5251. return TextFieldEntry({
  5252. element: header,
  5253. id: idPrefix + '-value',
  5254. label: translate('Value'),
  5255. getValue,
  5256. setValue,
  5257. debounce
  5258. });
  5259. }
  5260. function HeaderProps({
  5261. element,
  5262. injector
  5263. }) {
  5264. if (!areHeadersSupported(element)) {
  5265. return null;
  5266. }
  5267. const headers = getHeaders(element) || [];
  5268. const bpmnFactory = injector.get('bpmnFactory'),
  5269. commandStack = injector.get('commandStack');
  5270. const items = headers.map((header, index) => {
  5271. const id = element.id + '-header-' + index;
  5272. return {
  5273. id,
  5274. label: header.get('key') || '',
  5275. entries: Header({
  5276. idPrefix: id,
  5277. element,
  5278. header
  5279. }),
  5280. autoFocusEntry: id + '-key',
  5281. remove: removeFactory$c({
  5282. commandStack,
  5283. element,
  5284. header
  5285. })
  5286. };
  5287. });
  5288. return {
  5289. items,
  5290. add: addFactory$9({
  5291. bpmnFactory,
  5292. commandStack,
  5293. element
  5294. }),
  5295. shouldSort: false
  5296. };
  5297. }
  5298. function removeFactory$c({
  5299. commandStack,
  5300. element,
  5301. header
  5302. }) {
  5303. return function (event) {
  5304. event.stopPropagation();
  5305. let commands = [];
  5306. const taskHeaders = getTaskHeaders$1(element);
  5307. if (!taskHeaders) {
  5308. return;
  5309. }
  5310. const newTaskHeaders = without(taskHeaders.get('values'), header);
  5311. commands.push({
  5312. cmd: 'element.updateModdleProperties',
  5313. context: {
  5314. element,
  5315. moddleElement: taskHeaders,
  5316. properties: {
  5317. values: newTaskHeaders
  5318. }
  5319. }
  5320. });
  5321. // remove zeebe:TaskHeaders if there are no headers anymore
  5322. if (!newTaskHeaders.length) {
  5323. const businessObject = getBusinessObject(element),
  5324. extensionElements = businessObject.get('extensionElements');
  5325. commands.push({
  5326. cmd: 'element.updateModdleProperties',
  5327. context: {
  5328. element,
  5329. moddleElement: extensionElements,
  5330. properties: {
  5331. values: without(extensionElements.get('values'), taskHeaders)
  5332. }
  5333. }
  5334. });
  5335. }
  5336. commandStack.execute('properties-panel.multi-command-executor', commands);
  5337. };
  5338. }
  5339. function addFactory$9({
  5340. bpmnFactory,
  5341. commandStack,
  5342. element
  5343. }) {
  5344. return function (event) {
  5345. event.stopPropagation();
  5346. let commands = [];
  5347. const businessObject = getBusinessObject(element);
  5348. let extensionElements = businessObject.get('extensionElements');
  5349. // (1) ensure extension elements
  5350. if (!extensionElements) {
  5351. extensionElements = createElement('bpmn:ExtensionElements', {
  5352. values: []
  5353. }, businessObject, bpmnFactory);
  5354. commands.push({
  5355. cmd: 'element.updateModdleProperties',
  5356. context: {
  5357. element,
  5358. moddleElement: businessObject,
  5359. properties: {
  5360. extensionElements
  5361. }
  5362. }
  5363. });
  5364. }
  5365. // (2) ensure zeebe:TaskHeaders
  5366. let taskHeaders = getTaskHeaders$1(element);
  5367. if (!taskHeaders) {
  5368. const parent = extensionElements;
  5369. taskHeaders = createElement('zeebe:TaskHeaders', {
  5370. values: []
  5371. }, parent, bpmnFactory);
  5372. commands.push({
  5373. cmd: 'element.updateModdleProperties',
  5374. context: {
  5375. element,
  5376. moddleElement: extensionElements,
  5377. properties: {
  5378. values: [...extensionElements.get('values'), taskHeaders]
  5379. }
  5380. }
  5381. });
  5382. }
  5383. // (3) create header
  5384. const header = createElement('zeebe:Header', {}, taskHeaders, bpmnFactory);
  5385. // (4) add header to list
  5386. commands.push({
  5387. cmd: 'element.updateModdleProperties',
  5388. context: {
  5389. element,
  5390. moddleElement: taskHeaders,
  5391. properties: {
  5392. values: [...taskHeaders.get('values'), header]
  5393. }
  5394. }
  5395. });
  5396. commandStack.execute('properties-panel.multi-command-executor', commands);
  5397. };
  5398. }
  5399. function getProcessId(element) {
  5400. const calledElement = getCalledElement(element);
  5401. return calledElement ? calledElement.get('processId') : '';
  5402. }
  5403. function getCalledElement(element) {
  5404. const calledElements = getCalledElements(element);
  5405. return calledElements[0];
  5406. }
  5407. function getCalledElements(element) {
  5408. const bo = getBusinessObject(element);
  5409. const extElements = getExtensionElementsList(bo, 'zeebe:CalledElement');
  5410. return extElements;
  5411. }
  5412. function InputPropagationProps(props) {
  5413. const {
  5414. element
  5415. } = props;
  5416. if (!is(element, 'bpmn:CallActivity')) {
  5417. return [];
  5418. }
  5419. return [{
  5420. id: 'propagateAllParentVariables',
  5421. component: PropagateAllParentVariables,
  5422. isEdited: isToggleSwitchEntryEdited
  5423. }];
  5424. }
  5425. function PropagateAllParentVariables(props) {
  5426. const {
  5427. element
  5428. } = props;
  5429. const commandStack = useService('commandStack'),
  5430. bpmnFactory = useService('bpmnFactory'),
  5431. translate = useService('translate');
  5432. const propagateAllParentVariables = isPropagateAllParentVariables(element);
  5433. const getValue = () => {
  5434. return propagateAllParentVariables;
  5435. };
  5436. const setValue = value => {
  5437. const commands = [];
  5438. const businessObject = getBusinessObject(element);
  5439. // (1) ensure extension elements
  5440. let extensionElements = businessObject.get('extensionElements');
  5441. if (!extensionElements) {
  5442. extensionElements = createElement('bpmn:ExtensionElements', {
  5443. values: []
  5444. }, businessObject, bpmnFactory);
  5445. commands.push({
  5446. cmd: 'element.updateModdleProperties',
  5447. context: {
  5448. element,
  5449. moddleElement: businessObject,
  5450. properties: {
  5451. extensionElements
  5452. }
  5453. }
  5454. });
  5455. }
  5456. // (2) ensure zeebe:calledElement
  5457. let calledElement = getCalledElement(businessObject);
  5458. if (!calledElement) {
  5459. calledElement = createElement('zeebe:CalledElement', {}, extensionElements, bpmnFactory);
  5460. commands.push({
  5461. cmd: 'element.updateModdleProperties',
  5462. context: {
  5463. element,
  5464. moddleElement: extensionElements,
  5465. properties: {
  5466. values: [...extensionElements.get('values'), calledElement]
  5467. }
  5468. }
  5469. });
  5470. }
  5471. // (3) Update propagateAllParentVariables attribute
  5472. commands.push({
  5473. cmd: 'element.updateModdleProperties',
  5474. context: {
  5475. element,
  5476. moddleElement: calledElement,
  5477. properties: {
  5478. propagateAllParentVariables: value
  5479. }
  5480. }
  5481. });
  5482. // (4) Execute the commands
  5483. commandStack.execute('properties-panel.multi-command-executor', commands);
  5484. };
  5485. return ToggleSwitchEntry({
  5486. id: 'propagateAllParentVariables',
  5487. label: translate('Propagate all variables'),
  5488. switcherLabel: propagateAllParentVariables ? translate('On') : translate('Off'),
  5489. tooltip: jsxs("div", {
  5490. children: [jsx("p", {
  5491. children: translate('If turned on, all variables from this process instance will be propagated to the child process instance.')
  5492. }), jsx("p", {
  5493. children: translate('Otherwise, only variables defined via input mappings will be propagated.')
  5494. })]
  5495. }),
  5496. getValue,
  5497. setValue
  5498. });
  5499. }
  5500. // helper //////////////////////////
  5501. /**
  5502. * Check whether the propagateAllParentVariables attribute is set on an element.
  5503. * @param {Object} element
  5504. *
  5505. * @returns {boolean}
  5506. */
  5507. function isPropagateAllParentVariables(element) {
  5508. if (!is(element, 'bpmn:CallActivity')) {
  5509. return undefined;
  5510. }
  5511. const bo = getBusinessObject(element),
  5512. calledElement = getCalledElement(bo);
  5513. return calledElement && has(calledElement, 'propagateAllParentVariables') ? calledElement.get('propagateAllParentVariables') : /* default value */true;
  5514. }
  5515. function InputOutputParameter$1(props) {
  5516. const {
  5517. idPrefix,
  5518. parameter
  5519. } = props;
  5520. const entries = [{
  5521. id: idPrefix + '-target',
  5522. component: TargetProperty,
  5523. idPrefix,
  5524. parameter
  5525. }, {
  5526. id: idPrefix + '-source',
  5527. component: SourceProperty,
  5528. idPrefix,
  5529. parameter
  5530. }];
  5531. return entries;
  5532. }
  5533. function TargetProperty(props) {
  5534. const {
  5535. idPrefix,
  5536. element,
  5537. parameter
  5538. } = props;
  5539. const commandStack = useService('commandStack');
  5540. const translate = useService('translate');
  5541. const debounce = useService('debounceInput');
  5542. const setValue = value => {
  5543. commandStack.execute('element.updateModdleProperties', {
  5544. element,
  5545. moddleElement: parameter,
  5546. properties: {
  5547. target: value
  5548. }
  5549. });
  5550. };
  5551. const getValue = parameter => {
  5552. return parameter.target;
  5553. };
  5554. return TextFieldEntry({
  5555. element: parameter,
  5556. id: idPrefix + '-target',
  5557. label: translate(is(parameter, 'zeebe:Input') ? 'Local variable name' : 'Process variable name'),
  5558. getValue,
  5559. setValue,
  5560. debounce
  5561. });
  5562. }
  5563. function SourceProperty(props) {
  5564. const {
  5565. idPrefix,
  5566. element,
  5567. parameter
  5568. } = props;
  5569. const commandStack = useService('commandStack');
  5570. const translate = useService('translate');
  5571. const debounce = useService('debounceInput');
  5572. const setValue = value => {
  5573. commandStack.execute('element.updateModdleProperties', {
  5574. element,
  5575. moddleElement: parameter,
  5576. properties: {
  5577. source: value
  5578. }
  5579. });
  5580. };
  5581. const getValue = parameter => {
  5582. return parameter.source;
  5583. };
  5584. return FeelEntryWithVariableContext({
  5585. bpmnElement: element,
  5586. element: parameter,
  5587. id: idPrefix + '-source',
  5588. label: translate('Variable assignment value'),
  5589. feel: 'required',
  5590. getValue,
  5591. setValue,
  5592. debounce
  5593. });
  5594. }
  5595. function getElements$1(bo, type, prop) {
  5596. const elems = getExtensionElementsList(bo, type);
  5597. return !prop ? elems : (elems[0] || {})[prop] || [];
  5598. }
  5599. function getParameters$1(element, prop) {
  5600. const ioMapping = getIoMapping(element);
  5601. return ioMapping && ioMapping.get(prop) || [];
  5602. }
  5603. /**
  5604. * Get a ioMapping from the business object
  5605. *
  5606. * @param {djs.model.Base} element
  5607. *
  5608. * @return {ModdleElement} the ioMapping object
  5609. */
  5610. function getIoMapping(element) {
  5611. const bo = getBusinessObject(element);
  5612. return (getElements$1(bo, 'zeebe:IoMapping') || [])[0];
  5613. }
  5614. /**
  5615. * Return all input parameters existing in the business object, and
  5616. * an empty array if none exist.
  5617. *
  5618. * @param {djs.model.Base} element
  5619. *
  5620. * @return {Array} a list of input parameter objects
  5621. */
  5622. function getInputParameters$1(element) {
  5623. return getParameters$1.apply(this, [element, 'inputParameters']);
  5624. }
  5625. /**
  5626. * Return all output parameters existing in the business object, and
  5627. * an empty array if none exist.
  5628. *
  5629. * @param {djs.model.Base} element
  5630. *
  5631. * @return {Array} a list of output parameter objects
  5632. */
  5633. function getOutputParameters$1(element) {
  5634. return getParameters$1.apply(this, [element, 'outputParameters']);
  5635. }
  5636. function areInputParametersSupported$1(element) {
  5637. return isAny(element, ['bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:CallActivity', 'bpmn:BusinessRuleTask', 'bpmn:ScriptTask']) || isZeebeServiceTask(element) || isSignalThrowEvent(element);
  5638. }
  5639. function areOutputParametersSupported$1(element) {
  5640. if (is(element, 'bpmn:EndEvent') && getErrorEventDefinition(element)) {
  5641. return false;
  5642. }
  5643. return isAny(element, ['zeebe:ZeebeServiceTask', 'bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:ReceiveTask', 'bpmn:CallActivity', 'bpmn:Event', 'bpmn:BusinessRuleTask']);
  5644. }
  5645. function createIOMapping(properties, parent, bpmnFactory) {
  5646. return createElement('zeebe:IoMapping', properties, parent, bpmnFactory);
  5647. }
  5648. function isSignalThrowEvent(element) {
  5649. if (!isAny(element, ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'])) {
  5650. return false;
  5651. }
  5652. return !!getEventDefinition$1(element, 'bpmn:SignalEventDefinition');
  5653. }
  5654. function InputProps$1({
  5655. element,
  5656. injector
  5657. }) {
  5658. if (!areInputParametersSupported$1(element)) {
  5659. return null;
  5660. }
  5661. const inputParameters = getInputParameters$1(element) || [];
  5662. const bpmnFactory = injector.get('bpmnFactory'),
  5663. commandStack = injector.get('commandStack');
  5664. const items = inputParameters.map((parameter, index) => {
  5665. const id = element.id + '-input-' + index;
  5666. return {
  5667. id,
  5668. label: parameter.get('target') || '',
  5669. entries: InputOutputParameter$1({
  5670. idPrefix: id,
  5671. element,
  5672. parameter
  5673. }),
  5674. autoFocusEntry: id + '-target',
  5675. remove: removeFactory$b({
  5676. commandStack,
  5677. element,
  5678. parameter
  5679. })
  5680. };
  5681. });
  5682. return {
  5683. items,
  5684. add: addFactory$8({
  5685. element,
  5686. bpmnFactory,
  5687. commandStack
  5688. }),
  5689. shouldSort: false
  5690. };
  5691. }
  5692. function removeFactory$b({
  5693. commandStack,
  5694. element,
  5695. parameter
  5696. }) {
  5697. return function (event) {
  5698. event.stopPropagation();
  5699. const commands = [];
  5700. const ioMapping = getIoMapping(element);
  5701. if (!ioMapping) {
  5702. return;
  5703. }
  5704. const inputParameters = without(ioMapping.get('inputParameters'), parameter);
  5705. commands.push({
  5706. cmd: 'element.updateModdleProperties',
  5707. context: {
  5708. element,
  5709. moddleElement: ioMapping,
  5710. properties: {
  5711. inputParameters
  5712. }
  5713. }
  5714. });
  5715. const businessObject = getBusinessObject(element),
  5716. extensionElements = businessObject.get('extensionElements'),
  5717. values = without(extensionElements.get('values'), ioMapping);
  5718. // remove ioMapping if there are no input/output parameters anymore
  5719. if (!inputParameters.length && !ioMapping.get('outputParameters').length) {
  5720. commands.push({
  5721. cmd: 'element.updateModdleProperties',
  5722. context: {
  5723. element,
  5724. moddleElement: extensionElements,
  5725. properties: {
  5726. values
  5727. }
  5728. }
  5729. });
  5730. }
  5731. commandStack.execute('properties-panel.multi-command-executor', commands);
  5732. };
  5733. }
  5734. function addFactory$8({
  5735. element,
  5736. bpmnFactory,
  5737. commandStack
  5738. }) {
  5739. return function (event) {
  5740. event.stopPropagation();
  5741. const commands = [];
  5742. const businessObject = getBusinessObject(element);
  5743. let extensionElements = businessObject.get('extensionElements');
  5744. // (1) ensure extension elements
  5745. if (!extensionElements) {
  5746. extensionElements = createElement('bpmn:ExtensionElements', {
  5747. values: []
  5748. }, businessObject, bpmnFactory);
  5749. commands.push({
  5750. cmd: 'element.updateModdleProperties',
  5751. context: {
  5752. element,
  5753. moddleElement: businessObject,
  5754. properties: {
  5755. extensionElements
  5756. }
  5757. }
  5758. });
  5759. }
  5760. // (2) ensure IoMapping
  5761. let ioMapping = getIoMapping(element);
  5762. if (!ioMapping) {
  5763. ioMapping = createIOMapping({
  5764. inputParameters: [],
  5765. outputParameters: []
  5766. }, extensionElements, bpmnFactory);
  5767. commands.push({
  5768. cmd: 'element.updateModdleProperties',
  5769. context: {
  5770. element,
  5771. moddleElement: extensionElements,
  5772. properties: {
  5773. values: [...extensionElements.get('values'), ioMapping]
  5774. }
  5775. }
  5776. });
  5777. }
  5778. // (3) create parameter
  5779. const newParameter = createElement('zeebe:Input', {
  5780. target: nextId('InputVariable_')
  5781. }, ioMapping, bpmnFactory);
  5782. // (4) add parameter to list
  5783. commands.push({
  5784. cmd: 'element.updateModdleProperties',
  5785. context: {
  5786. element,
  5787. moddleElement: ioMapping,
  5788. properties: {
  5789. inputParameters: [...ioMapping.get('inputParameters'), newParameter]
  5790. }
  5791. }
  5792. });
  5793. commandStack.execute('properties-panel.multi-command-executor', commands);
  5794. };
  5795. }
  5796. function MessageProps(props) {
  5797. const {
  5798. element
  5799. } = props;
  5800. const message = getMessage(element);
  5801. const entries = [];
  5802. if (message) {
  5803. entries.push({
  5804. id: 'messageName',
  5805. component: MessageName,
  5806. isEdited: isFeelEntryEdited
  5807. });
  5808. }
  5809. if (message && canHaveSubscriptionCorrelationKey(element)) {
  5810. entries.push({
  5811. id: 'messageSubscriptionCorrelationKey',
  5812. component: SubscriptionCorrelationKey,
  5813. isEdited: isFeelEntryEdited
  5814. });
  5815. }
  5816. return entries;
  5817. }
  5818. function MessageName(props) {
  5819. const {
  5820. element
  5821. } = props;
  5822. const commandStack = useService('commandStack');
  5823. const translate = useService('translate');
  5824. const debounce = useService('debounceInput');
  5825. const message = getMessage(element);
  5826. const getValue = () => {
  5827. return message.get('name');
  5828. };
  5829. const setValue = value => {
  5830. return commandStack.execute('element.updateModdleProperties', {
  5831. element,
  5832. moddleElement: message,
  5833. properties: {
  5834. name: value
  5835. }
  5836. });
  5837. };
  5838. return FeelEntryWithVariableContext({
  5839. element,
  5840. id: 'messageName',
  5841. label: translate('Name'),
  5842. feel: 'optional',
  5843. getValue,
  5844. setValue,
  5845. debounce
  5846. });
  5847. }
  5848. function SubscriptionCorrelationKey(props) {
  5849. const {
  5850. element
  5851. } = props;
  5852. const bpmnFactory = useService('bpmnFactory');
  5853. const commandStack = useService('commandStack');
  5854. const translate = useService('translate');
  5855. const debounce = useService('debounceInput');
  5856. const getValue = () => {
  5857. return getCorrelationKey(element);
  5858. };
  5859. const setValue = value => {
  5860. const commands = [];
  5861. const properties = {
  5862. correlationKey: value
  5863. };
  5864. const message = getMessage(element);
  5865. let extensionElements = message.get('extensionElements');
  5866. // (1) ensure extension elements
  5867. if (!extensionElements) {
  5868. extensionElements = createElement('bpmn:ExtensionElements', {
  5869. values: []
  5870. }, message, bpmnFactory);
  5871. commands.push({
  5872. cmd: 'element.updateModdleProperties',
  5873. context: {
  5874. element,
  5875. moddleElement: message,
  5876. properties: {
  5877. extensionElements
  5878. }
  5879. }
  5880. });
  5881. }
  5882. let subscription = getSubscription(element);
  5883. // (2a) add subscription with correlation key
  5884. if (!subscription) {
  5885. subscription = createElement('zeebe:Subscription', properties, extensionElements, bpmnFactory);
  5886. commands.push({
  5887. cmd: 'element.updateModdleProperties',
  5888. context: {
  5889. element,
  5890. moddleElement: extensionElements,
  5891. properties: {
  5892. values: [...extensionElements.get('values'), subscription]
  5893. }
  5894. }
  5895. });
  5896. } else {
  5897. // (2b) update existing subscription's correlation key
  5898. commands.push({
  5899. cmd: 'element.updateModdleProperties',
  5900. context: {
  5901. element,
  5902. properties,
  5903. moddleElement: subscription
  5904. }
  5905. });
  5906. }
  5907. // (3) commit all updates
  5908. commandStack.execute('properties-panel.multi-command-executor', commands);
  5909. };
  5910. return FeelEntryWithVariableContext({
  5911. element,
  5912. id: 'messageSubscriptionCorrelationKey',
  5913. label: translate('Subscription correlation key'),
  5914. feel: 'required',
  5915. getValue,
  5916. setValue,
  5917. debounce
  5918. });
  5919. }
  5920. // helper ///////////////////////
  5921. function canHaveSubscriptionCorrelationKey(element) {
  5922. // (1) allow for receive task
  5923. if (is(element, 'bpmn:ReceiveTask')) {
  5924. return true;
  5925. }
  5926. // (2) allow for non start events
  5927. if (!is(element, 'bpmn:StartEvent')) {
  5928. return true;
  5929. }
  5930. // (3) allow for start events inside event sub processes
  5931. if (is(element, 'bpmn:StartEvent') && isEventSubProcess(element.parent)) {
  5932. return true;
  5933. }
  5934. return false;
  5935. }
  5936. function getCorrelationKey(element) {
  5937. const subscription = getSubscription(element);
  5938. return subscription ? subscription.get('correlationKey') : '';
  5939. }
  5940. function getSubscription(element) {
  5941. const message = getMessage(element);
  5942. const subscriptions = getSubscriptions(message);
  5943. return subscriptions[0];
  5944. }
  5945. function getSubscriptions(message) {
  5946. const extensionElements = getExtensionElementsList(message, 'zeebe:Subscription');
  5947. return extensionElements;
  5948. }
  5949. function MultiInstanceProps$1(props) {
  5950. const {
  5951. element
  5952. } = props;
  5953. if (!supportsMultiInstances(element)) {
  5954. return [];
  5955. }
  5956. return [{
  5957. id: 'multiInstance-inputCollection',
  5958. component: InputCollection,
  5959. isEdited: isFeelEntryEdited
  5960. }, {
  5961. id: 'multiInstance-inputElement',
  5962. component: InputElement,
  5963. isEdited: isTextFieldEntryEdited
  5964. }, {
  5965. id: 'multiInstance-outputCollection',
  5966. component: OutputCollection,
  5967. isEdited: isTextFieldEntryEdited
  5968. }, {
  5969. id: 'multiInstance-outputElement',
  5970. component: OutputElement,
  5971. isEdited: isFeelEntryEdited
  5972. }, {
  5973. id: 'multiInstance-completionCondition',
  5974. component: CompletionCondition,
  5975. isEdited: isFeelEntryEdited
  5976. }];
  5977. }
  5978. function InputCollection(props) {
  5979. const {
  5980. element
  5981. } = props;
  5982. const commandStack = useService('commandStack');
  5983. const bpmnFactory = useService('bpmnFactory');
  5984. const translate = useService('translate');
  5985. const debounce = useService('debounceInput');
  5986. const getValue = () => {
  5987. return getProperty$1(element, 'inputCollection');
  5988. };
  5989. const setValue = value => {
  5990. return setProperty(element, 'inputCollection', value, commandStack, bpmnFactory);
  5991. };
  5992. return FeelEntryWithVariableContext({
  5993. element,
  5994. id: 'multiInstance-inputCollection',
  5995. label: translate('Input collection'),
  5996. feel: 'required',
  5997. getValue,
  5998. setValue,
  5999. debounce
  6000. });
  6001. }
  6002. function InputElement(props) {
  6003. const {
  6004. element
  6005. } = props;
  6006. const commandStack = useService('commandStack');
  6007. const bpmnFactory = useService('bpmnFactory');
  6008. const translate = useService('translate');
  6009. const debounce = useService('debounceInput');
  6010. const getValue = () => {
  6011. return getProperty$1(element, 'inputElement');
  6012. };
  6013. const setValue = value => {
  6014. return setProperty(element, 'inputElement', value, commandStack, bpmnFactory);
  6015. };
  6016. return TextFieldEntry({
  6017. element,
  6018. id: 'multiInstance-inputElement',
  6019. label: translate('Input element'),
  6020. getValue,
  6021. setValue,
  6022. debounce
  6023. });
  6024. }
  6025. function OutputCollection(props) {
  6026. const {
  6027. element
  6028. } = props;
  6029. const commandStack = useService('commandStack');
  6030. const bpmnFactory = useService('bpmnFactory');
  6031. const translate = useService('translate');
  6032. const debounce = useService('debounceInput');
  6033. const getValue = () => {
  6034. return getProperty$1(element, 'outputCollection');
  6035. };
  6036. const setValue = value => {
  6037. return setProperty(element, 'outputCollection', value, commandStack, bpmnFactory);
  6038. };
  6039. return TextFieldEntry({
  6040. element,
  6041. id: 'multiInstance-outputCollection',
  6042. label: translate('Output collection'),
  6043. getValue,
  6044. setValue,
  6045. debounce
  6046. });
  6047. }
  6048. function OutputElement(props) {
  6049. const {
  6050. element
  6051. } = props;
  6052. const commandStack = useService('commandStack');
  6053. const bpmnFactory = useService('bpmnFactory');
  6054. const translate = useService('translate');
  6055. const debounce = useService('debounceInput');
  6056. const getValue = () => {
  6057. return getProperty$1(element, 'outputElement');
  6058. };
  6059. const setValue = value => {
  6060. return setProperty(element, 'outputElement', value, commandStack, bpmnFactory);
  6061. };
  6062. return FeelEntryWithVariableContext({
  6063. element,
  6064. id: 'multiInstance-outputElement',
  6065. label: translate('Output element'),
  6066. feel: 'required',
  6067. getValue,
  6068. setValue,
  6069. debounce
  6070. });
  6071. }
  6072. function CompletionCondition(props) {
  6073. const {
  6074. element
  6075. } = props;
  6076. const commandStack = useService('commandStack');
  6077. const bpmnFactory = useService('bpmnFactory');
  6078. const translate = useService('translate');
  6079. const debounce = useService('debounceInput');
  6080. const getValue = () => {
  6081. const completionCondition = getCompletionCondition(element);
  6082. return completionCondition && completionCondition.get('body');
  6083. };
  6084. const setValue = value => {
  6085. if (value && value !== '') {
  6086. const loopCharacteristics = getLoopCharacteristics$1(element);
  6087. const completionCondition = createElement('bpmn:FormalExpression', {
  6088. body: value
  6089. }, loopCharacteristics, bpmnFactory);
  6090. setCompletionCondition(element, commandStack, completionCondition);
  6091. } else {
  6092. setCompletionCondition(element, commandStack, undefined);
  6093. }
  6094. };
  6095. return FeelEntryWithVariableContext({
  6096. element,
  6097. id: 'multiInstance-completionCondition',
  6098. label: translate('Completion condition'),
  6099. feel: 'required',
  6100. getValue,
  6101. setValue,
  6102. debounce
  6103. });
  6104. }
  6105. // helper ///////////////////////
  6106. function getLoopCharacteristics$1(element) {
  6107. const businessObject = getBusinessObject(element);
  6108. return businessObject.get('loopCharacteristics');
  6109. }
  6110. function getZeebeLoopCharacteristics(loopCharacteristics) {
  6111. const extensionElements = getExtensionElementsList(loopCharacteristics, 'zeebe:LoopCharacteristics');
  6112. return extensionElements && extensionElements[0];
  6113. }
  6114. function supportsMultiInstances(element) {
  6115. return !!getLoopCharacteristics$1(element);
  6116. }
  6117. function getCompletionCondition(element) {
  6118. return getLoopCharacteristics$1(element).get('completionCondition');
  6119. }
  6120. function setCompletionCondition(element, commandStack, completionCondition = undefined) {
  6121. commandStack.execute('element.updateModdleProperties', {
  6122. element,
  6123. moddleElement: getLoopCharacteristics$1(element),
  6124. properties: {
  6125. completionCondition
  6126. }
  6127. });
  6128. }
  6129. function getProperty$1(element, propertyName) {
  6130. const loopCharacteristics = getLoopCharacteristics$1(element),
  6131. zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);
  6132. return zeebeLoopCharacteristics && zeebeLoopCharacteristics.get(propertyName);
  6133. }
  6134. function setProperty(element, propertyName, value, commandStack, bpmnFactory) {
  6135. const loopCharacteristics = getLoopCharacteristics$1(element);
  6136. const commands = [];
  6137. // (1) ensure extension elements
  6138. let extensionElements = loopCharacteristics.get('extensionElements');
  6139. if (!extensionElements) {
  6140. extensionElements = createElement('bpmn:ExtensionElements', {
  6141. values: []
  6142. }, loopCharacteristics, bpmnFactory);
  6143. commands.push({
  6144. cmd: 'element.updateModdleProperties',
  6145. context: {
  6146. element,
  6147. moddleElement: loopCharacteristics,
  6148. properties: {
  6149. extensionElements
  6150. }
  6151. }
  6152. });
  6153. }
  6154. // (2) ensure zeebe loop characteristics
  6155. let zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);
  6156. if (!zeebeLoopCharacteristics) {
  6157. zeebeLoopCharacteristics = createElement('zeebe:LoopCharacteristics', {}, extensionElements, bpmnFactory);
  6158. commands.push({
  6159. cmd: 'element.updateModdleProperties',
  6160. context: {
  6161. element,
  6162. moddleElement: extensionElements,
  6163. properties: {
  6164. values: [...extensionElements.get('values'), zeebeLoopCharacteristics]
  6165. }
  6166. }
  6167. });
  6168. }
  6169. // (3) update defined property
  6170. commands.push({
  6171. cmd: 'element.updateModdleProperties',
  6172. context: {
  6173. element,
  6174. moddleElement: zeebeLoopCharacteristics,
  6175. properties: {
  6176. [propertyName]: value
  6177. }
  6178. }
  6179. });
  6180. // (4) commit all updates
  6181. commandStack.execute('properties-panel.multi-command-executor', commands);
  6182. }
  6183. function OutputPropagationProps(props) {
  6184. const {
  6185. element
  6186. } = props;
  6187. if (!is(element, 'bpmn:CallActivity')) {
  6188. return [];
  6189. }
  6190. return [{
  6191. id: 'propagateAllChildVariables',
  6192. component: PropagateAllChildVariables,
  6193. isEdited: isToggleSwitchEntryEdited
  6194. }];
  6195. }
  6196. function PropagateAllChildVariables(props) {
  6197. const {
  6198. element
  6199. } = props;
  6200. const commandStack = useService('commandStack'),
  6201. bpmnFactory = useService('bpmnFactory'),
  6202. translate = useService('translate');
  6203. const propagateAllChildVariables = isPropagateAllChildVariables(element);
  6204. const getValue = () => {
  6205. return propagateAllChildVariables;
  6206. };
  6207. const setValue = value => {
  6208. const commands = [];
  6209. const businessObject = getBusinessObject(element);
  6210. // (1) ensure extension elements
  6211. let extensionElements = businessObject.get('extensionElements');
  6212. if (!extensionElements) {
  6213. extensionElements = createElement('bpmn:ExtensionElements', {
  6214. values: []
  6215. }, businessObject, bpmnFactory);
  6216. commands.push({
  6217. cmd: 'element.updateModdleProperties',
  6218. context: {
  6219. element,
  6220. moddleElement: businessObject,
  6221. properties: {
  6222. extensionElements
  6223. }
  6224. }
  6225. });
  6226. }
  6227. // (2) ensure zeebe:calledElement
  6228. let calledElement = getCalledElement(businessObject);
  6229. if (!calledElement) {
  6230. calledElement = createElement('zeebe:CalledElement', {}, extensionElements, bpmnFactory);
  6231. commands.push({
  6232. cmd: 'element.updateModdleProperties',
  6233. context: {
  6234. element,
  6235. moddleElement: extensionElements,
  6236. properties: {
  6237. values: [...extensionElements.get('values'), calledElement]
  6238. }
  6239. }
  6240. });
  6241. }
  6242. // (3) Update propagateAllChildVariables attribute
  6243. commands.push({
  6244. cmd: 'element.updateModdleProperties',
  6245. context: {
  6246. element,
  6247. moddleElement: calledElement,
  6248. properties: {
  6249. propagateAllChildVariables: value
  6250. }
  6251. }
  6252. });
  6253. // (4) Execute the commands
  6254. commandStack.execute('properties-panel.multi-command-executor', commands);
  6255. };
  6256. return ToggleSwitchEntry({
  6257. id: 'propagateAllChildVariables',
  6258. label: translate('Propagate all child process variables'),
  6259. switcherLabel: propagateAllChildVariables ? translate('On') : translate('Off'),
  6260. tooltip: jsxs("div", {
  6261. children: [jsx("p", {
  6262. children: translate('If turned on, all variables from the child process instance will be propagated to the parent process instance.')
  6263. }), jsx("p", {
  6264. children: translate('Otherwise, only variables defined via output mappings will be propagated.')
  6265. })]
  6266. }),
  6267. getValue,
  6268. setValue
  6269. });
  6270. }
  6271. // helper //////////////////////////
  6272. /**
  6273. * Determine default value for propagateAllChildVariables attribute
  6274. * @param {Object} element representing a bpmn:CallActivity
  6275. *
  6276. * @returns {boolean}
  6277. */
  6278. function determinePropAllChildVariablesDefault(element) {
  6279. const outputParameters = getOutputParameters$1(element);
  6280. if (outputParameters) {
  6281. return outputParameters.length > 0 ? false : true;
  6282. }
  6283. }
  6284. /**
  6285. * Check whether the propagateAllChildVariables attribute is set on an element.
  6286. * Note that a default logic will be determine if it is not explicitly set.
  6287. * @param {Object} element
  6288. *
  6289. * @returns {boolean}
  6290. */
  6291. function isPropagateAllChildVariables(element) {
  6292. if (!is(element, 'bpmn:CallActivity')) {
  6293. return undefined;
  6294. }
  6295. const bo = getBusinessObject(element),
  6296. calledElement = getCalledElement(bo);
  6297. return calledElement && has(calledElement, 'propagateAllChildVariables') ? calledElement.get('propagateAllChildVariables') : determinePropAllChildVariablesDefault(element);
  6298. }
  6299. function OutputProps$1({
  6300. element,
  6301. injector
  6302. }) {
  6303. if (!areOutputParametersSupported$1(element)) {
  6304. return null;
  6305. }
  6306. const outputParameters = getOutputParameters$1(element) || [];
  6307. const bpmnFactory = injector.get('bpmnFactory'),
  6308. commandStack = injector.get('commandStack');
  6309. const items = outputParameters.map((parameter, index) => {
  6310. const id = element.id + '-output-' + index;
  6311. return {
  6312. id,
  6313. label: parameter.get('target') || '',
  6314. entries: InputOutputParameter$1({
  6315. idPrefix: id,
  6316. element,
  6317. parameter
  6318. }),
  6319. autoFocusEntry: id + '-target',
  6320. remove: removeFactory$a({
  6321. commandStack,
  6322. element,
  6323. parameter
  6324. })
  6325. };
  6326. });
  6327. return {
  6328. items,
  6329. add: addFactory$7({
  6330. element,
  6331. bpmnFactory,
  6332. commandStack
  6333. }),
  6334. shouldSort: false
  6335. };
  6336. }
  6337. function removeFactory$a({
  6338. commandStack,
  6339. element,
  6340. parameter
  6341. }) {
  6342. return function (event) {
  6343. event.stopPropagation();
  6344. let commands = [];
  6345. const ioMapping = getIoMapping(element);
  6346. if (!ioMapping) {
  6347. return;
  6348. }
  6349. const outputParameters = without(ioMapping.get('outputParameters'), parameter);
  6350. commands.push({
  6351. cmd: 'element.updateModdleProperties',
  6352. context: {
  6353. element,
  6354. moddleElement: ioMapping,
  6355. properties: {
  6356. outputParameters
  6357. }
  6358. }
  6359. });
  6360. // remove ioMapping if there are no input/output parameters anymore
  6361. if (!ioMapping.get('inputParameters').length && !outputParameters.length) {
  6362. const businessObject = getBusinessObject(element),
  6363. extensionElements = businessObject.get('extensionElements'),
  6364. values = without(extensionElements.get('values'), ioMapping);
  6365. commands.push({
  6366. cmd: 'element.updateModdleProperties',
  6367. context: {
  6368. element,
  6369. moddleElement: extensionElements,
  6370. properties: {
  6371. values
  6372. }
  6373. }
  6374. });
  6375. }
  6376. commandStack.execute('properties-panel.multi-command-executor', commands);
  6377. };
  6378. }
  6379. function addFactory$7({
  6380. element,
  6381. bpmnFactory,
  6382. commandStack
  6383. }) {
  6384. return function (event) {
  6385. event.stopPropagation();
  6386. let commands = [];
  6387. const businessObject = getBusinessObject(element);
  6388. let extensionElements = businessObject.get('extensionElements');
  6389. // (1) ensure extension elements
  6390. if (!extensionElements) {
  6391. extensionElements = createElement('bpmn:ExtensionElements', {
  6392. values: []
  6393. }, businessObject, bpmnFactory);
  6394. commands.push({
  6395. cmd: 'element.updateModdleProperties',
  6396. context: {
  6397. element,
  6398. moddleElement: businessObject,
  6399. properties: {
  6400. extensionElements
  6401. }
  6402. }
  6403. });
  6404. }
  6405. // (2) ensure IoMapping
  6406. let ioMapping = getIoMapping(element);
  6407. if (!ioMapping) {
  6408. const parent = extensionElements;
  6409. ioMapping = createIOMapping({
  6410. inputParameters: [],
  6411. outputParameters: []
  6412. }, parent, bpmnFactory);
  6413. commands.push({
  6414. cmd: 'element.updateModdleProperties',
  6415. context: {
  6416. element,
  6417. moddleElement: extensionElements,
  6418. properties: {
  6419. values: [...extensionElements.get('values'), ioMapping]
  6420. }
  6421. }
  6422. });
  6423. }
  6424. // (3) create parameter
  6425. const newParameter = createElement('zeebe:Output', {
  6426. target: nextId('OutputVariable_')
  6427. }, ioMapping, bpmnFactory);
  6428. // (4) add parameter to list
  6429. commands.push({
  6430. cmd: 'element.updateModdleProperties',
  6431. context: {
  6432. element,
  6433. moddleElement: ioMapping,
  6434. properties: {
  6435. outputParameters: [...ioMapping.get('outputParameters'), newParameter]
  6436. }
  6437. }
  6438. });
  6439. commandStack.execute('properties-panel.multi-command-executor', commands);
  6440. };
  6441. }
  6442. const SCRIPT_IMPLEMENTATION_OPTION = 'script',
  6443. JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker',
  6444. DEFAULT_IMPLEMENTATION_OPTION = '';
  6445. function ScriptImplementationProps(props) {
  6446. const {
  6447. element
  6448. } = props;
  6449. if (!is(element, 'bpmn:ScriptTask')) {
  6450. return [];
  6451. }
  6452. return [{
  6453. id: 'scriptImplementation',
  6454. component: ScriptImplementation,
  6455. isEdited: () => isScriptImplementationEdited(element)
  6456. }];
  6457. }
  6458. function ScriptImplementation(props) {
  6459. const {
  6460. element,
  6461. id
  6462. } = props;
  6463. const commandStack = useService('commandStack');
  6464. const bpmnFactory = useService('bpmnFactory');
  6465. const translate = useService('translate');
  6466. const getValue = () => {
  6467. if (getScript$1(element)) {
  6468. return SCRIPT_IMPLEMENTATION_OPTION;
  6469. }
  6470. if (getTaskDefinition$1(element)) {
  6471. return JOB_WORKER_IMPLEMENTATION_OPTION;
  6472. }
  6473. return DEFAULT_IMPLEMENTATION_OPTION;
  6474. };
  6475. /**
  6476. * Set value by either creating a zeebe:script or a zeebe:taskDefintion
  6477. * extension element. Note that they must not exist both at the same time, however
  6478. * this will be ensured by a bpmn-js behavior (and not by the propPanel).
  6479. */
  6480. const setValue = value => {
  6481. let extensionElement, extensionElementType;
  6482. if (value === SCRIPT_IMPLEMENTATION_OPTION) {
  6483. extensionElement = getScript$1(element);
  6484. extensionElementType = 'zeebe:Script';
  6485. } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {
  6486. extensionElement = getTaskDefinition$1(element);
  6487. extensionElementType = 'zeebe:TaskDefinition';
  6488. } else {
  6489. resetElement(element, commandStack);
  6490. }
  6491. if (!extensionElement && extensionElementType) {
  6492. extensionElement = createElement(extensionElementType, {}, null, bpmnFactory);
  6493. updateExtensionElements(element, extensionElement, bpmnFactory, commandStack);
  6494. }
  6495. };
  6496. const getOptions = () => {
  6497. const options = [{
  6498. value: DEFAULT_IMPLEMENTATION_OPTION,
  6499. label: translate('<none>')
  6500. }, {
  6501. value: SCRIPT_IMPLEMENTATION_OPTION,
  6502. label: translate('FEEL expression')
  6503. }, {
  6504. value: JOB_WORKER_IMPLEMENTATION_OPTION,
  6505. label: translate('Job worker')
  6506. }];
  6507. return options;
  6508. };
  6509. return SelectEntry({
  6510. element,
  6511. id,
  6512. label: translate('Implementation'),
  6513. getValue,
  6514. setValue,
  6515. getOptions
  6516. });
  6517. }
  6518. // helper ///////////////////////
  6519. function getTaskDefinition$1(element) {
  6520. const businessObject = getBusinessObject(element);
  6521. return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
  6522. }
  6523. function getScript$1(element) {
  6524. const businessObject = getBusinessObject(element);
  6525. return getExtensionElementsList(businessObject, 'zeebe:Script')[0];
  6526. }
  6527. function getTaskHeaders(element) {
  6528. const businessObject = getBusinessObject(element);
  6529. return getExtensionElementsList(businessObject, 'zeebe:TaskHeaders');
  6530. }
  6531. function isScriptImplementationEdited(element) {
  6532. return getTaskDefinition$1(element) || getScript$1(element);
  6533. }
  6534. function resetElement(element, commandStack) {
  6535. const businessObject = getBusinessObject(element);
  6536. const taskDefinition = getTaskDefinition$1(element);
  6537. const taskHeaders = getTaskHeaders(element);
  6538. const script = getScript$1(element);
  6539. if (taskDefinition) {
  6540. const removed = [taskDefinition, taskHeaders].filter(Boolean);
  6541. removeExtensionElements(element, businessObject, removed, commandStack);
  6542. return;
  6543. }
  6544. if (script) {
  6545. removeExtensionElements(element, businessObject, script, commandStack);
  6546. }
  6547. }
  6548. function updateExtensionElements(element, extensionElementToAdd, bpmnFactory, commandStack) {
  6549. const businessObject = getBusinessObject(element);
  6550. const commands = [];
  6551. let extensionElements = businessObject.get('extensionElements');
  6552. let extensionElementValues;
  6553. // (1) create bpmn:ExtensionElements if it doesn't exist
  6554. if (!extensionElements) {
  6555. extensionElements = createElement('bpmn:ExtensionElements', {
  6556. values: []
  6557. }, businessObject, bpmnFactory);
  6558. commands.push({
  6559. cmd: 'element.updateModdleProperties',
  6560. context: {
  6561. element,
  6562. moddleElement: businessObject,
  6563. properties: {
  6564. extensionElements
  6565. }
  6566. }
  6567. });
  6568. }
  6569. extensionElementToAdd.$parent = extensionElements;
  6570. // (2) remove old exension element from extensionElements
  6571. if (is(extensionElementToAdd, 'zeebe:TaskDefinition')) {
  6572. extensionElementValues = without(extensionElements.get('values'), getScript$1(element));
  6573. } else if (is(extensionElementToAdd, 'zeebe:Script')) {
  6574. const matcher = extension => isAny$1(extension, ['zeebe:TaskDefinition', 'zeebe:TaskHeaders']);
  6575. extensionElementValues = without(extensionElements.get('values'), matcher);
  6576. }
  6577. // (3) add extension element to list
  6578. commands.push({
  6579. cmd: 'element.updateModdleProperties',
  6580. context: {
  6581. element,
  6582. moddleElement: extensionElements,
  6583. properties: {
  6584. values: [...extensionElementValues, extensionElementToAdd]
  6585. }
  6586. }
  6587. });
  6588. commandStack.execute('properties-panel.multi-command-executor', commands);
  6589. }
  6590. function ScriptProps$1(props) {
  6591. const {
  6592. element
  6593. } = props;
  6594. if (!is(element, 'bpmn:ScriptTask') || !getScript(element)) {
  6595. return [];
  6596. }
  6597. return [{
  6598. id: 'resultVariable',
  6599. component: ResultVariable$3,
  6600. isEdited: isTextFieldEntryEdited
  6601. }, {
  6602. id: 'scriptExpression',
  6603. component: Expression$2,
  6604. isEdited: isFeelEntryEdited
  6605. }];
  6606. }
  6607. function Expression$2(props) {
  6608. const {
  6609. element,
  6610. id
  6611. } = props;
  6612. const commandStack = useService('commandStack');
  6613. const bpmnFactory = useService('bpmnFactory');
  6614. const translate = useService('translate');
  6615. const debounce = useService('debounceInput');
  6616. const getValue = () => {
  6617. return (getScript(element) || {}).get('expression');
  6618. };
  6619. const setValue = value => {
  6620. const commands = [];
  6621. const businessObject = getBusinessObject(element);
  6622. let extensionElements = businessObject.get('extensionElements');
  6623. // (1) ensure extension elements
  6624. if (!extensionElements) {
  6625. extensionElements = createElement('bpmn:ExtensionElements', {
  6626. values: []
  6627. }, businessObject, bpmnFactory);
  6628. commands.push({
  6629. cmd: 'element.updateModdleProperties',
  6630. context: {
  6631. element,
  6632. moddleElement: businessObject,
  6633. properties: {
  6634. extensionElements
  6635. }
  6636. }
  6637. });
  6638. }
  6639. // (2) ensure script
  6640. let script = getScript(element);
  6641. if (!script) {
  6642. script = createElement('zeebe:Script', {}, extensionElements, bpmnFactory);
  6643. commands.push({
  6644. cmd: 'element.updateModdleProperties',
  6645. context: {
  6646. element,
  6647. moddleElement: extensionElements,
  6648. properties: {
  6649. values: [...extensionElements.get('values'), script]
  6650. }
  6651. }
  6652. });
  6653. }
  6654. // (3) update script.expression
  6655. commands.push({
  6656. cmd: 'element.updateModdleProperties',
  6657. context: {
  6658. element,
  6659. moddleElement: script,
  6660. properties: {
  6661. expression: value
  6662. }
  6663. }
  6664. });
  6665. // (4) commit all updates
  6666. commandStack.execute('properties-panel.multi-command-executor', commands);
  6667. };
  6668. return FeelEntryWithVariableContext({
  6669. element,
  6670. id,
  6671. label: translate('FEEL expression'),
  6672. feel: 'required',
  6673. getValue,
  6674. setValue,
  6675. debounce
  6676. });
  6677. }
  6678. function ResultVariable$3(props) {
  6679. const {
  6680. element,
  6681. id
  6682. } = props;
  6683. const commandStack = useService('commandStack');
  6684. const bpmnFactory = useService('bpmnFactory');
  6685. const translate = useService('translate');
  6686. const debounce = useService('debounceInput');
  6687. const getValue = () => {
  6688. return (getScript(element) || {}).resultVariable;
  6689. };
  6690. const setValue = value => {
  6691. const commands = [];
  6692. const businessObject = getBusinessObject(element);
  6693. let extensionElements = businessObject.get('extensionElements');
  6694. // (1) ensure extension elements
  6695. if (!extensionElements) {
  6696. extensionElements = createElement('bpmn:ExtensionElements', {
  6697. values: []
  6698. }, businessObject, bpmnFactory);
  6699. commands.push({
  6700. cmd: 'element.updateModdleProperties',
  6701. context: {
  6702. element,
  6703. moddleElement: businessObject,
  6704. properties: {
  6705. extensionElements
  6706. }
  6707. }
  6708. });
  6709. }
  6710. // (2) ensure script
  6711. let script = getScript(element);
  6712. if (!script) {
  6713. script = createElement('zeebe:Script', {}, extensionElements, bpmnFactory);
  6714. commands.push({
  6715. cmd: 'element.updateModdleProperties',
  6716. context: {
  6717. element,
  6718. moddleElement: extensionElements,
  6719. properties: {
  6720. values: [...extensionElements.get('values'), script]
  6721. }
  6722. }
  6723. });
  6724. }
  6725. // (3) update script.resultVariable
  6726. commands.push({
  6727. cmd: 'element.updateModdleProperties',
  6728. context: {
  6729. element,
  6730. moddleElement: script,
  6731. properties: {
  6732. resultVariable: value
  6733. }
  6734. }
  6735. });
  6736. // (4) commit all updates
  6737. commandStack.execute('properties-panel.multi-command-executor', commands);
  6738. };
  6739. return TextFieldEntry({
  6740. element,
  6741. id,
  6742. label: translate('Result variable'),
  6743. getValue,
  6744. setValue,
  6745. debounce
  6746. });
  6747. }
  6748. // helper ///////////////////////
  6749. function getScript(element) {
  6750. const businessObject = getBusinessObject(element);
  6751. return getExtensionElementsList(businessObject, 'zeebe:Script')[0];
  6752. }
  6753. /**
  6754. * @returns {Entry[]}
  6755. */
  6756. function SignalProps(props) {
  6757. const {
  6758. element
  6759. } = props;
  6760. if (!isSignalSupported(element)) {
  6761. return [];
  6762. }
  6763. const signal = getSignal(element);
  6764. let entries = [];
  6765. if (signal) {
  6766. entries = [...entries, {
  6767. id: 'signalName',
  6768. component: SignalName,
  6769. isEdited: isFeelEntryEdited
  6770. }];
  6771. }
  6772. return entries;
  6773. }
  6774. function SignalName(props) {
  6775. const {
  6776. element
  6777. } = props;
  6778. const commandStack = useService('commandStack');
  6779. const translate = useService('translate');
  6780. const debounce = useService('debounceInput');
  6781. const signal = getSignal(element);
  6782. const getValue = () => {
  6783. return signal.get('name');
  6784. };
  6785. const setValue = value => {
  6786. return commandStack.execute('element.updateModdleProperties', {
  6787. element,
  6788. moddleElement: signal,
  6789. properties: {
  6790. name: value
  6791. }
  6792. });
  6793. };
  6794. return FeelEntryWithVariableContext({
  6795. element,
  6796. id: 'signalName',
  6797. label: translate('Name'),
  6798. feel: 'optional',
  6799. getValue,
  6800. setValue,
  6801. debounce
  6802. });
  6803. }
  6804. function TargetProps(props) {
  6805. const {
  6806. element
  6807. } = props;
  6808. if (!is(element, 'bpmn:CallActivity')) {
  6809. return [];
  6810. }
  6811. return [{
  6812. id: 'targetProcessId',
  6813. component: TargetProcessId,
  6814. isEdited: isFeelEntryEdited
  6815. }];
  6816. }
  6817. function TargetProcessId(props) {
  6818. const {
  6819. element,
  6820. id
  6821. } = props;
  6822. const commandStack = useService('commandStack'),
  6823. bpmnFactory = useService('bpmnFactory'),
  6824. translate = useService('translate'),
  6825. debounce = useService('debounceInput');
  6826. const getValue = () => {
  6827. return getProcessId(element);
  6828. };
  6829. const setValue = value => {
  6830. const commands = [];
  6831. const businessObject = getBusinessObject(element);
  6832. // (1) ensure extension elements
  6833. let extensionElements = businessObject.get('extensionElements');
  6834. if (!extensionElements) {
  6835. extensionElements = createElement('bpmn:ExtensionElements', {
  6836. values: []
  6837. }, businessObject, bpmnFactory);
  6838. commands.push({
  6839. cmd: 'element.updateModdleProperties',
  6840. context: {
  6841. element,
  6842. moddleElement: businessObject,
  6843. properties: {
  6844. extensionElements
  6845. }
  6846. }
  6847. });
  6848. }
  6849. // (2) ensure zeebe:calledElement
  6850. let calledElement = getCalledElement(businessObject);
  6851. if (!calledElement) {
  6852. calledElement = createElement('zeebe:CalledElement', {}, extensionElements, bpmnFactory);
  6853. commands.push({
  6854. cmd: 'element.updateModdleProperties',
  6855. context: {
  6856. element,
  6857. moddleElement: extensionElements,
  6858. properties: {
  6859. values: [...extensionElements.get('values'), calledElement]
  6860. }
  6861. }
  6862. });
  6863. }
  6864. // (3) Update processId attribute
  6865. commands.push({
  6866. cmd: 'element.updateModdleProperties',
  6867. context: {
  6868. element,
  6869. moddleElement: calledElement,
  6870. properties: {
  6871. processId: value
  6872. }
  6873. }
  6874. });
  6875. // (4) Execute the commands
  6876. commandStack.execute('properties-panel.multi-command-executor', commands);
  6877. };
  6878. return FeelEntryWithVariableContext({
  6879. element,
  6880. id,
  6881. label: translate('Process ID'),
  6882. feel: 'optional',
  6883. getValue,
  6884. setValue,
  6885. debounce
  6886. });
  6887. }
  6888. function TaskDefinitionProps(props) {
  6889. const {
  6890. element
  6891. } = props;
  6892. if (!isZeebeServiceTask(element)) {
  6893. return [];
  6894. }
  6895. return [{
  6896. id: 'taskDefinitionType',
  6897. component: TaskDefinitionType,
  6898. isEdited: isFeelEntryEdited
  6899. }, {
  6900. id: 'taskDefinitionRetries',
  6901. component: TaskDefinitionRetries,
  6902. isEdited: isFeelEntryEdited
  6903. }];
  6904. }
  6905. function TaskDefinitionType(props) {
  6906. const {
  6907. element,
  6908. id
  6909. } = props;
  6910. const commandStack = useService('commandStack');
  6911. const bpmnFactory = useService('bpmnFactory');
  6912. const translate = useService('translate');
  6913. const debounce = useService('debounceInput');
  6914. const getValue = () => {
  6915. return (getTaskDefinition(element) || {}).type;
  6916. };
  6917. const setValue = value => {
  6918. const commands = [];
  6919. const businessObject = getBusinessObject(element);
  6920. let extensionElements = businessObject.get('extensionElements');
  6921. // (1) ensure extension elements
  6922. if (!extensionElements) {
  6923. extensionElements = createElement('bpmn:ExtensionElements', {
  6924. values: []
  6925. }, businessObject, bpmnFactory);
  6926. commands.push({
  6927. cmd: 'element.updateModdleProperties',
  6928. context: {
  6929. element,
  6930. moddleElement: businessObject,
  6931. properties: {
  6932. extensionElements
  6933. }
  6934. }
  6935. });
  6936. }
  6937. // (2) ensure task definition
  6938. let taskDefinition = getTaskDefinition(element);
  6939. if (!taskDefinition) {
  6940. taskDefinition = createElement('zeebe:TaskDefinition', {}, extensionElements, bpmnFactory);
  6941. commands.push({
  6942. cmd: 'element.updateModdleProperties',
  6943. context: {
  6944. element,
  6945. moddleElement: extensionElements,
  6946. properties: {
  6947. values: [...extensionElements.get('values'), taskDefinition]
  6948. }
  6949. }
  6950. });
  6951. }
  6952. // (3) update task definition type
  6953. commands.push({
  6954. cmd: 'element.updateModdleProperties',
  6955. context: {
  6956. element,
  6957. moddleElement: taskDefinition,
  6958. properties: {
  6959. type: value
  6960. }
  6961. }
  6962. });
  6963. // (4) commit all updates
  6964. commandStack.execute('properties-panel.multi-command-executor', commands);
  6965. };
  6966. return FeelEntryWithVariableContext({
  6967. element,
  6968. id,
  6969. label: translate('Type'),
  6970. feel: 'optional',
  6971. getValue,
  6972. setValue,
  6973. debounce
  6974. });
  6975. }
  6976. function TaskDefinitionRetries(props) {
  6977. const {
  6978. element,
  6979. id
  6980. } = props;
  6981. const commandStack = useService('commandStack');
  6982. const bpmnFactory = useService('bpmnFactory');
  6983. const translate = useService('translate');
  6984. const debounce = useService('debounceInput');
  6985. const getValue = () => {
  6986. return (getTaskDefinition(element) || {}).retries;
  6987. };
  6988. const setValue = value => {
  6989. let commands = [];
  6990. const businessObject = getBusinessObject(element);
  6991. let extensionElements = businessObject.get('extensionElements');
  6992. // (1) ensure extension elements
  6993. if (!extensionElements) {
  6994. extensionElements = createElement('bpmn:ExtensionElements', {
  6995. values: []
  6996. }, businessObject, bpmnFactory);
  6997. commands.push({
  6998. cmd: 'element.updateModdleProperties',
  6999. context: {
  7000. element,
  7001. moddleElement: businessObject,
  7002. properties: {
  7003. extensionElements
  7004. }
  7005. }
  7006. });
  7007. }
  7008. // (2) ensure task definition
  7009. let taskDefinition = getTaskDefinition(element);
  7010. if (!taskDefinition) {
  7011. taskDefinition = createElement('zeebe:TaskDefinition', {}, extensionElements, bpmnFactory);
  7012. commands.push({
  7013. cmd: 'element.updateModdleProperties',
  7014. context: {
  7015. element,
  7016. moddleElement: extensionElements,
  7017. properties: {
  7018. values: [...extensionElements.get('values'), taskDefinition]
  7019. }
  7020. }
  7021. });
  7022. }
  7023. // (3) update task definition retries
  7024. commands.push({
  7025. cmd: 'element.updateModdleProperties',
  7026. context: {
  7027. element,
  7028. moddleElement: taskDefinition,
  7029. properties: {
  7030. retries: value
  7031. }
  7032. }
  7033. });
  7034. commandStack.execute('properties-panel.multi-command-executor', commands);
  7035. };
  7036. return FeelEntryWithVariableContext({
  7037. element,
  7038. id,
  7039. label: translate('Retries'),
  7040. feel: 'optional',
  7041. getValue,
  7042. setValue,
  7043. debounce,
  7044. tooltip: translate('Specifies the number of times the job is retried when a worker signals failure. The default is three.')
  7045. });
  7046. }
  7047. // helper ///////////////////////
  7048. function getTaskDefinition(element) {
  7049. const businessObject = getBusinessObject(element);
  7050. return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
  7051. }
  7052. function TaskScheduleProps(props) {
  7053. const {
  7054. element
  7055. } = props;
  7056. if (!is(element, 'bpmn:UserTask')) {
  7057. return [];
  7058. }
  7059. return [{
  7060. id: 'taskScheduleDueDate',
  7061. component: DueDate$1,
  7062. isEdited: isFeelEntryEdited
  7063. }, {
  7064. id: 'taskScheduleFollowUpDate',
  7065. component: FollowUpDate$1,
  7066. isEdited: isFeelEntryEdited
  7067. }];
  7068. }
  7069. function DueDate$1(props) {
  7070. const {
  7071. element
  7072. } = props;
  7073. const commandStack = useService('commandStack');
  7074. const bpmnFactory = useService('bpmnFactory');
  7075. const translate = useService('translate');
  7076. const debounce = useService('debounceInput');
  7077. const getValue = () => {
  7078. const taskSchedule = getTaskSchedule(element);
  7079. if (!taskSchedule) {
  7080. return;
  7081. }
  7082. return taskSchedule.get('dueDate');
  7083. };
  7084. const setValue = value => {
  7085. let commands = [];
  7086. const businessObject = getBusinessObject(element);
  7087. let extensionElements = businessObject.get('extensionElements');
  7088. // (1) ensure extension elements
  7089. if (!extensionElements) {
  7090. extensionElements = createElement('bpmn:ExtensionElements', {
  7091. values: []
  7092. }, businessObject, bpmnFactory);
  7093. commands.push({
  7094. cmd: 'element.updateModdleProperties',
  7095. context: {
  7096. element,
  7097. moddleElement: businessObject,
  7098. properties: {
  7099. extensionElements
  7100. }
  7101. }
  7102. });
  7103. }
  7104. // (2) ensure zeebe:TaskSchedule
  7105. let taskSchedule = getTaskSchedule(element);
  7106. if (!taskSchedule) {
  7107. taskSchedule = createElement('zeebe:TaskSchedule', {}, extensionElements, bpmnFactory);
  7108. commands.push({
  7109. cmd: 'element.updateModdleProperties',
  7110. context: {
  7111. element,
  7112. moddleElement: extensionElements,
  7113. properties: {
  7114. values: [...extensionElements.get('values'), taskSchedule]
  7115. }
  7116. }
  7117. });
  7118. }
  7119. // (3) update zeebe:dueDate
  7120. commands.push({
  7121. cmd: 'element.updateModdleProperties',
  7122. context: {
  7123. element,
  7124. moddleElement: taskSchedule,
  7125. properties: {
  7126. dueDate: value
  7127. }
  7128. }
  7129. });
  7130. commandStack.execute('properties-panel.multi-command-executor', commands);
  7131. };
  7132. return FeelEntryWithVariableContext({
  7133. element,
  7134. id: 'taskScheduleDueDate',
  7135. label: translate('Due date'),
  7136. feel: 'optional',
  7137. getValue,
  7138. setValue,
  7139. debounce
  7140. });
  7141. }
  7142. function FollowUpDate$1(props) {
  7143. const {
  7144. element
  7145. } = props;
  7146. const commandStack = useService('commandStack');
  7147. const bpmnFactory = useService('bpmnFactory');
  7148. const translate = useService('translate');
  7149. const debounce = useService('debounceInput');
  7150. const getValue = () => {
  7151. const taskSchedule = getTaskSchedule(element);
  7152. if (!taskSchedule) {
  7153. return;
  7154. }
  7155. return taskSchedule.get('followUpDate');
  7156. };
  7157. const setValue = value => {
  7158. let commands = [];
  7159. const businessObject = getBusinessObject(element);
  7160. let extensionElements = businessObject.get('extensionElements');
  7161. // (1) ensure extension elements
  7162. if (!extensionElements) {
  7163. extensionElements = createElement('bpmn:ExtensionElements', {
  7164. values: []
  7165. }, businessObject, bpmnFactory);
  7166. commands.push({
  7167. cmd: 'element.updateModdleProperties',
  7168. context: {
  7169. element,
  7170. moddleElement: businessObject,
  7171. properties: {
  7172. extensionElements
  7173. }
  7174. }
  7175. });
  7176. }
  7177. // (2) ensure zeebe:TaskSchedule
  7178. let taskSchedule = getTaskSchedule(element);
  7179. if (!taskSchedule) {
  7180. taskSchedule = createElement('zeebe:TaskSchedule', {}, extensionElements, bpmnFactory);
  7181. commands.push({
  7182. cmd: 'element.updateModdleProperties',
  7183. context: {
  7184. element,
  7185. moddleElement: extensionElements,
  7186. properties: {
  7187. values: [...extensionElements.get('values'), taskSchedule]
  7188. }
  7189. }
  7190. });
  7191. }
  7192. // (3) update zeebe:followUpDate
  7193. commands.push({
  7194. cmd: 'element.updateModdleProperties',
  7195. context: {
  7196. element,
  7197. moddleElement: taskSchedule,
  7198. properties: {
  7199. followUpDate: value
  7200. }
  7201. }
  7202. });
  7203. commandStack.execute('properties-panel.multi-command-executor', commands);
  7204. };
  7205. return FeelEntryWithVariableContext({
  7206. element,
  7207. id: 'taskScheduleFollowUpDate',
  7208. label: translate('Follow up date'),
  7209. feel: 'optional',
  7210. getValue,
  7211. setValue,
  7212. debounce
  7213. });
  7214. }
  7215. // helper ///////////////////////
  7216. function getTaskSchedule(element) {
  7217. const businessObject = getBusinessObject(element);
  7218. return getExtensionElementsList(businessObject, 'zeebe:TaskSchedule')[0];
  7219. }
  7220. /**
  7221. * Check whether a given timer expression type is supported for a given element.
  7222. *
  7223. * @param {string} type
  7224. * @param {Element|ModdleElement} element
  7225. *
  7226. * @return {boolean}
  7227. */
  7228. function isTimerExpressionTypeSupported(type, element) {
  7229. const businessObject = getBusinessObject(element);
  7230. switch (type) {
  7231. case 'timeDate':
  7232. return isAny$1(element, ['bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent', 'bpmn:StartEvent']);
  7233. case 'timeCycle':
  7234. if (is(element, 'bpmn:StartEvent') && !hasParentEventSubProcess(businessObject) || !isInterrupting(businessObject)) {
  7235. return true;
  7236. }
  7237. if (is(element, 'bpmn:BoundaryEvent') && !isInterrupting(businessObject)) {
  7238. return true;
  7239. }
  7240. return false;
  7241. case 'timeDuration':
  7242. if (isAny$1(element, ['bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent'])) {
  7243. return true;
  7244. }
  7245. if (is(element, 'bpmn:StartEvent') && hasParentEventSubProcess(businessObject)) {
  7246. return true;
  7247. }
  7248. return false;
  7249. default:
  7250. return false;
  7251. }
  7252. }
  7253. function isInterrupting(businessObject) {
  7254. if (is(businessObject, 'bpmn:BoundaryEvent')) {
  7255. return businessObject.get('cancelActivity') !== false;
  7256. }
  7257. return businessObject.get('isInterrupting') !== false;
  7258. }
  7259. function hasParentEventSubProcess(businessObject) {
  7260. const parent = businessObject.$parent;
  7261. return parent && is(parent, 'bpmn:SubProcess') && parent.get('triggeredByEvent');
  7262. }
  7263. function TimerProps$1(props) {
  7264. const {
  7265. element,
  7266. injector
  7267. } = props;
  7268. const translate = injector.get('translate');
  7269. const businessObject = getBusinessObject(element),
  7270. timerEventDefinition = getTimerEventDefinition(businessObject),
  7271. timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);
  7272. // (1) Only show for supported elements
  7273. if (!isTimerSupported(element)) {
  7274. return [];
  7275. }
  7276. const timerOptions = getTimerOptions(element, translate);
  7277. const entries = [];
  7278. entries.push({
  7279. id: 'timerEventDefinitionType',
  7280. component: TimerEventDefinitionType$1,
  7281. isEdited: isSelectEntryEdited,
  7282. options: timerOptions
  7283. });
  7284. if (timerEventDefinitionType) {
  7285. entries.push({
  7286. id: 'timerEventDefinitionValue',
  7287. component: TimerEventDefinitionValue$1,
  7288. isEdited: isFeelEntryEdited,
  7289. timerEventDefinitionType: timerEventDefinitionType || timerOptions[0].value
  7290. });
  7291. }
  7292. return entries;
  7293. }
  7294. function getTimerOptions(element, translate) {
  7295. const options = [];
  7296. if (isTimerExpressionTypeSupported('timeDate', element)) {
  7297. options.push({
  7298. value: 'timeDate',
  7299. label: translate('Date')
  7300. });
  7301. }
  7302. if (isTimerExpressionTypeSupported('timeDuration', element)) {
  7303. options.push({
  7304. value: 'timeDuration',
  7305. label: translate('Duration')
  7306. });
  7307. }
  7308. if (isTimerExpressionTypeSupported('timeCycle', element)) {
  7309. options.push({
  7310. value: 'timeCycle',
  7311. label: translate('Cycle')
  7312. });
  7313. }
  7314. return options;
  7315. }
  7316. /**
  7317. * TimerEventDefinitionType - Generic select entry allowing to select a specific
  7318. * timerEventDefintionType. To be used together with timerEventDefinitionValue.
  7319. *
  7320. * @param {type} props
  7321. * @return {SelectEntry}
  7322. */
  7323. function TimerEventDefinitionType$1(props) {
  7324. const {
  7325. element,
  7326. options
  7327. } = props;
  7328. const commandStack = useService('commandStack'),
  7329. bpmnFactory = useService('bpmnFactory'),
  7330. translate = useService('translate');
  7331. const businessObject = getBusinessObject(element),
  7332. timerEventDefinition = getTimerEventDefinition(businessObject),
  7333. timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);
  7334. const getValue = () => {
  7335. return timerEventDefinitionType || '';
  7336. };
  7337. const setValue = value => {
  7338. // (1) Check if value is different to current type
  7339. if (value === timerEventDefinitionType) {
  7340. return;
  7341. }
  7342. // (2) Create empty formalExpression element
  7343. const formalExpression = createTimerFormalExpression(bpmnFactory, timerEventDefinition);
  7344. // (3) Set the value for selected timerEventDefinitionType
  7345. const newProps = {
  7346. timeDuration: undefined,
  7347. timeDate: undefined,
  7348. timeCycle: undefined
  7349. };
  7350. if (value !== '') {
  7351. newProps[value] = formalExpression;
  7352. }
  7353. // (4) Execute businessObject update
  7354. commandStack.execute('element.updateModdleProperties', {
  7355. element,
  7356. moddleElement: timerEventDefinition,
  7357. properties: newProps
  7358. });
  7359. };
  7360. const getOptions = element => {
  7361. return [{
  7362. value: '',
  7363. label: translate('<none>')
  7364. }, ...options];
  7365. };
  7366. return SelectEntry({
  7367. element,
  7368. id: 'timerEventDefinitionType',
  7369. label: translate('Type'),
  7370. getValue,
  7371. setValue,
  7372. getOptions
  7373. });
  7374. }
  7375. /**
  7376. * TimerEventDefinitionValue - Generic textField entry allowing to specify the
  7377. * timerEventDefintionValue based on the set timerEventDefintionType. To be used
  7378. * together with timerEventDefinitionType.
  7379. *
  7380. * @param {object} props
  7381. * @param {ModdleElement} props.element
  7382. * @param {'timeCycle'|'timeDate'|'timeDuration'} props.timerEventDefinitionType?
  7383. * @param {string} props.label?
  7384. * @return {TextFieldEntry}
  7385. */
  7386. function TimerEventDefinitionValue$1(props) {
  7387. const {
  7388. element,
  7389. label,
  7390. timerEventDefinitionType
  7391. } = props;
  7392. const commandStack = useService('commandStack'),
  7393. translate = useService('translate'),
  7394. debounce = useService('debounceInput'),
  7395. bpmnFactory = useService('bpmnFactory');
  7396. const businessObject = getBusinessObject(element),
  7397. timerEventDefinition = getTimerEventDefinition(businessObject),
  7398. timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);
  7399. const getValue = () => {
  7400. return timerEventFormalExpression && timerEventFormalExpression.get('body');
  7401. };
  7402. const setValue = value => {
  7403. if (!timerEventFormalExpression) {
  7404. const expression = createTimerFormalExpression(bpmnFactory, timerEventDefinition);
  7405. expression.set('body', value);
  7406. commandStack.execute('element.updateModdleProperties', {
  7407. element,
  7408. moddleElement: timerEventDefinition,
  7409. properties: {
  7410. [timerEventDefinitionType]: expression
  7411. }
  7412. });
  7413. return;
  7414. }
  7415. commandStack.execute('element.updateModdleProperties', {
  7416. element,
  7417. moddleElement: timerEventFormalExpression,
  7418. properties: {
  7419. body: value
  7420. }
  7421. });
  7422. };
  7423. return FeelEntryWithVariableContext({
  7424. element,
  7425. id: 'timerEventDefinitionValue',
  7426. label: label || translate('Value'),
  7427. feel: 'optional',
  7428. getValue,
  7429. setValue,
  7430. debounce,
  7431. tooltip: getTimerEventDefinitionValueDescription$1(timerEventDefinitionType, translate)
  7432. });
  7433. }
  7434. // helper //////////////////////////
  7435. function createTimerFormalExpression(bpmnFactory, eventDefinition) {
  7436. const formalExpression = bpmnFactory.create('bpmn:FormalExpression', {
  7437. body: undefined
  7438. });
  7439. formalExpression.$parent = eventDefinition;
  7440. return formalExpression;
  7441. }
  7442. function getTimerEventDefinitionValueDescription$1(timerDefinitionType, translate) {
  7443. switch (timerDefinitionType) {
  7444. case 'timeDate':
  7445. return jsxs("div", {
  7446. children: [jsx("p", {
  7447. children: translate('A specific point in time defined as ISO 8601 combined date and time representation.')
  7448. }), jsxs("ul", {
  7449. children: [jsxs("li", {
  7450. children: [jsx("code", {
  7451. children: "2019-10-01T12:00:00Z"
  7452. }), " - ", translate('UTC time')]
  7453. }), jsxs("li", {
  7454. children: [jsx("code", {
  7455. children: "2019-10-02T08:09:40+02:00"
  7456. }), " - ", translate('UTC plus 2 hours zone offset')]
  7457. })]
  7458. }), jsx("a", {
  7459. href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-date",
  7460. target: "_blank",
  7461. rel: "noopener",
  7462. title: translate('Timer documentation'),
  7463. children: translate('How to configure a timer')
  7464. })]
  7465. });
  7466. case 'timeCycle':
  7467. return jsxs("div", {
  7468. children: [jsx("p", {
  7469. children: translate('A cycle defined as ISO 8601 repeating intervals format, or a cron expression.')
  7470. }), jsxs("ul", {
  7471. children: [jsxs("li", {
  7472. children: [jsx("code", {
  7473. children: "R5/PT10S"
  7474. }), " - ", translate('every 10 seconds, up to 5 times')]
  7475. }), jsxs("li", {
  7476. children: [jsx("code", {
  7477. children: "R/P1D"
  7478. }), " - ", translate('every day, infinitely')]
  7479. }), jsxs("li", {
  7480. children: [jsx("code", {
  7481. children: "0 0 9-17 * * MON-FRI"
  7482. }), " - ", translate('every hour on the hour from 9-5 p.m. UTC Monday-Friday')]
  7483. })]
  7484. }), jsx("a", {
  7485. href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-cycle",
  7486. target: "_blank",
  7487. rel: "noopener",
  7488. title: translate('Timer documentation'),
  7489. children: translate('How to configure a timer')
  7490. })]
  7491. });
  7492. case 'timeDuration':
  7493. return jsxs("div", {
  7494. children: [jsx("p", {
  7495. children: translate('A time duration defined as ISO 8601 durations format.')
  7496. }), jsxs("ul", {
  7497. children: [jsxs("li", {
  7498. children: [jsx("code", {
  7499. children: "PT15S"
  7500. }), " - ", translate('15 seconds')]
  7501. }), jsxs("li", {
  7502. children: [jsx("code", {
  7503. children: "PT1H30M"
  7504. }), " - ", translate('1 hour and 30 minutes')]
  7505. }), jsxs("li", {
  7506. children: [jsx("code", {
  7507. children: "P14D"
  7508. }), " - ", translate('14 days')]
  7509. })]
  7510. }), jsx("a", {
  7511. href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-duration",
  7512. target: "_blank",
  7513. rel: "noopener",
  7514. title: translate('Timer documentation'),
  7515. children: translate('How to configure a timer')
  7516. })]
  7517. });
  7518. }
  7519. }
  7520. function ExtensionProperty(props) {
  7521. const {
  7522. idPrefix,
  7523. property
  7524. } = props;
  7525. const entries = [{
  7526. id: idPrefix + '-name',
  7527. component: NameProperty$1,
  7528. idPrefix,
  7529. property
  7530. }, {
  7531. id: idPrefix + '-value',
  7532. component: ValueProperty$1,
  7533. idPrefix,
  7534. property
  7535. }];
  7536. return entries;
  7537. }
  7538. function NameProperty$1(props) {
  7539. const {
  7540. idPrefix,
  7541. element,
  7542. property
  7543. } = props;
  7544. const commandStack = useService('commandStack');
  7545. const translate = useService('translate');
  7546. const debounce = useService('debounceInput');
  7547. const setValue = value => {
  7548. commandStack.execute('element.updateModdleProperties', {
  7549. element,
  7550. moddleElement: property,
  7551. properties: {
  7552. name: value
  7553. }
  7554. });
  7555. };
  7556. const getValue = () => {
  7557. return property.name;
  7558. };
  7559. return TextFieldEntry({
  7560. element: property,
  7561. id: idPrefix + '-name',
  7562. label: translate('Name'),
  7563. getValue,
  7564. setValue,
  7565. debounce
  7566. });
  7567. }
  7568. function ValueProperty$1(props) {
  7569. const {
  7570. idPrefix,
  7571. element,
  7572. property
  7573. } = props;
  7574. const commandStack = useService('commandStack');
  7575. const translate = useService('translate');
  7576. const debounce = useService('debounceInput');
  7577. const setValue = value => {
  7578. commandStack.execute('element.updateModdleProperties', {
  7579. element,
  7580. moddleElement: property,
  7581. properties: {
  7582. value
  7583. }
  7584. });
  7585. };
  7586. const getValue = () => {
  7587. return property.value;
  7588. };
  7589. return TextFieldEntry({
  7590. element: property,
  7591. id: idPrefix + '-value',
  7592. label: translate('Value'),
  7593. getValue,
  7594. setValue,
  7595. debounce
  7596. });
  7597. }
  7598. function ExtensionPropertiesProps({
  7599. element,
  7600. injector,
  7601. namespace = 'camunda'
  7602. }) {
  7603. let businessObject = getRelevantBusinessObject(element);
  7604. // do not offer for empty pools
  7605. if (!businessObject) {
  7606. return;
  7607. }
  7608. const properties = getPropertiesList(businessObject, namespace) || [];
  7609. const bpmnFactory = injector.get('bpmnFactory'),
  7610. commandStack = injector.get('commandStack');
  7611. const items = properties.map((property, index) => {
  7612. const id = element.id + '-extensionProperty-' + index;
  7613. return {
  7614. id,
  7615. label: property.get('name') || '',
  7616. entries: ExtensionProperty({
  7617. idPrefix: id,
  7618. element,
  7619. property
  7620. }),
  7621. autoFocusEntry: id + '-name',
  7622. remove: removeFactory$9({
  7623. commandStack,
  7624. element,
  7625. property,
  7626. namespace
  7627. })
  7628. };
  7629. });
  7630. return {
  7631. items,
  7632. add: addFactory$6({
  7633. bpmnFactory,
  7634. commandStack,
  7635. element,
  7636. namespace
  7637. }),
  7638. shouldSort: false
  7639. };
  7640. }
  7641. function removeFactory$9({
  7642. commandStack,
  7643. element,
  7644. property,
  7645. namespace
  7646. }) {
  7647. return function (event) {
  7648. event.stopPropagation();
  7649. const commands = [];
  7650. const businessObject = getRelevantBusinessObject(element);
  7651. const extensionElements = businessObject.get('extensionElements');
  7652. const properties = getProperties(businessObject, namespace);
  7653. if (!properties) {
  7654. return;
  7655. }
  7656. const propertyName = getPropertyName(namespace);
  7657. const values = without(properties.get(propertyName), property);
  7658. commands.push({
  7659. cmd: 'element.updateModdleProperties',
  7660. context: {
  7661. element,
  7662. moddleElement: properties,
  7663. properties: {
  7664. [propertyName]: values
  7665. }
  7666. }
  7667. });
  7668. // remove camunda:Properties if there are no properties anymore
  7669. if (!values.length) {
  7670. commands.push({
  7671. cmd: 'element.updateModdleProperties',
  7672. context: {
  7673. element,
  7674. moddleElement: extensionElements,
  7675. properties: {
  7676. values: without(extensionElements.get('values'), properties)
  7677. }
  7678. }
  7679. });
  7680. }
  7681. commandStack.execute('properties-panel.multi-command-executor', commands);
  7682. };
  7683. }
  7684. function addFactory$6({
  7685. bpmnFactory,
  7686. commandStack,
  7687. element,
  7688. namespace
  7689. }) {
  7690. return function (event) {
  7691. event.stopPropagation();
  7692. let commands = [];
  7693. const businessObject = getRelevantBusinessObject(element);
  7694. let extensionElements = businessObject.get('extensionElements');
  7695. // (1) ensure extension elements
  7696. if (!extensionElements) {
  7697. extensionElements = createElement('bpmn:ExtensionElements', {
  7698. values: []
  7699. }, businessObject, bpmnFactory);
  7700. commands.push({
  7701. cmd: 'element.updateModdleProperties',
  7702. context: {
  7703. element,
  7704. moddleElement: businessObject,
  7705. properties: {
  7706. extensionElements
  7707. }
  7708. }
  7709. });
  7710. }
  7711. const propertyName = getPropertyName(namespace);
  7712. // (2) ensure camunda:Properties
  7713. let properties = getProperties(businessObject, namespace);
  7714. if (!properties) {
  7715. const parent = extensionElements;
  7716. properties = createElement(`${namespace}:Properties`, {
  7717. [propertyName]: []
  7718. }, parent, bpmnFactory);
  7719. commands.push({
  7720. cmd: 'element.updateModdleProperties',
  7721. context: {
  7722. element,
  7723. moddleElement: extensionElements,
  7724. properties: {
  7725. values: [...extensionElements.get('values'), properties]
  7726. }
  7727. }
  7728. });
  7729. }
  7730. // (3) create camunda:Property
  7731. const property = createElement(`${namespace}:Property`, {}, properties, bpmnFactory);
  7732. // (4) add property to list
  7733. commands.push({
  7734. cmd: 'element.updateModdleProperties',
  7735. context: {
  7736. element,
  7737. moddleElement: properties,
  7738. properties: {
  7739. [propertyName]: [...properties.get(propertyName), property]
  7740. }
  7741. }
  7742. });
  7743. // (5) commit all updates
  7744. commandStack.execute('properties-panel.multi-command-executor', commands);
  7745. };
  7746. }
  7747. // helper //////////////////
  7748. function getRelevantBusinessObject(element) {
  7749. let businessObject = getBusinessObject(element);
  7750. if (is(element, 'bpmn:Participant')) {
  7751. return businessObject.get('processRef');
  7752. }
  7753. return businessObject;
  7754. }
  7755. function getPropertyName(namespace = 'camunda') {
  7756. if (namespace === 'zeebe') {
  7757. return 'properties';
  7758. }
  7759. return 'values';
  7760. }
  7761. function getProperties(element, namespace = 'camunda') {
  7762. const businessObject = getRelevantBusinessObject(element);
  7763. return getExtensionElementsList(businessObject, `${namespace}:Properties`)[0];
  7764. }
  7765. function getPropertiesList(element, namespace = 'camunda') {
  7766. const businessObject = getRelevantBusinessObject(element);
  7767. const properties = getProperties(businessObject, namespace);
  7768. return properties && properties.get(getPropertyName(namespace));
  7769. }
  7770. /**
  7771. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  7772. */
  7773. const LOW_PRIORITY$1 = 500;
  7774. const ZEEBE_GROUPS = [BusinessRuleImplementationGroup, CalledDecisionGroup, ScriptImplementationGroup, ScriptGroup$1, TaskDefinitionGroup, AssignmentDefinitionGroup, FormGroup$1, ConditionGroup$1, TargetGroup, InputPropagationGroup, InputGroup$1, OutputPropagationGroup, OutputGroup$1, HeaderGroup, ExtensionPropertiesGroup$1];
  7775. class ZeebePropertiesProvider {
  7776. constructor(propertiesPanel, injector) {
  7777. propertiesPanel.registerProvider(LOW_PRIORITY$1, this);
  7778. this._injector = injector;
  7779. }
  7780. getGroups(element) {
  7781. return groups => {
  7782. // (1) add zeebe specific groups
  7783. groups = groups.concat(this._getGroups(element));
  7784. // (2) update existing groups with zeebe specific properties
  7785. updateErrorGroup$1(groups, element);
  7786. updateEscalationGroup$1(groups, element);
  7787. updateMessageGroup(groups, element);
  7788. updateSignalGroup(groups, element);
  7789. updateTimerGroup$1(groups, element, this._injector);
  7790. updateMultiInstanceGroup$1(groups, element);
  7791. // (3) remove message group when not applicable
  7792. groups = removeMessageGroup(groups, element);
  7793. return groups;
  7794. };
  7795. }
  7796. _getGroups(element) {
  7797. const groups = ZEEBE_GROUPS.map(createGroup => createGroup(element, this._injector));
  7798. return groups.filter(group => group !== null);
  7799. }
  7800. }
  7801. ZeebePropertiesProvider.$inject = ['propertiesPanel', 'injector'];
  7802. function CalledDecisionGroup(element) {
  7803. const group = {
  7804. id: 'calledDecision',
  7805. label: 'Called decision',
  7806. entries: [...CalledDecisionProps({
  7807. element
  7808. })],
  7809. component: Group
  7810. };
  7811. return group.entries.length ? group : null;
  7812. }
  7813. function ScriptGroup$1(element) {
  7814. const group = {
  7815. id: 'script',
  7816. label: 'Script',
  7817. entries: [...ScriptProps$1({
  7818. element
  7819. })],
  7820. component: Group
  7821. };
  7822. return group.entries.length ? group : null;
  7823. }
  7824. function TaskDefinitionGroup(element) {
  7825. const group = {
  7826. id: 'taskDefinition',
  7827. label: 'Task definition',
  7828. entries: [...TaskDefinitionProps({
  7829. element
  7830. })],
  7831. component: Group
  7832. };
  7833. return group.entries.length ? group : null;
  7834. }
  7835. function InputGroup$1(element, injector) {
  7836. const group = {
  7837. id: 'inputs',
  7838. label: 'Inputs',
  7839. component: ListGroup,
  7840. ...InputProps$1({
  7841. element,
  7842. injector
  7843. })
  7844. };
  7845. return group.items ? group : null;
  7846. }
  7847. function OutputGroup$1(element, injector) {
  7848. const group = {
  7849. id: 'outputs',
  7850. label: 'Outputs',
  7851. component: ListGroup,
  7852. ...OutputProps$1({
  7853. element,
  7854. injector
  7855. })
  7856. };
  7857. return group.items ? group : null;
  7858. }
  7859. function ConditionGroup$1(element) {
  7860. const group = {
  7861. id: 'condition',
  7862. label: 'Condition',
  7863. entries: [...ConditionProps$1({
  7864. element
  7865. })],
  7866. component: Group
  7867. };
  7868. return group.entries.length ? group : null;
  7869. }
  7870. function FormGroup$1(element, injector) {
  7871. const group = {
  7872. id: 'form',
  7873. label: 'Form',
  7874. entries: [...FormProps$1({
  7875. element,
  7876. injector
  7877. })],
  7878. component: Group
  7879. };
  7880. return group.entries.length ? group : null;
  7881. }
  7882. function TargetGroup(element) {
  7883. const group = {
  7884. id: 'calledElement',
  7885. label: 'Called element',
  7886. entries: [...TargetProps({
  7887. element
  7888. })],
  7889. component: Group
  7890. };
  7891. return group.entries.length ? group : null;
  7892. }
  7893. function HeaderGroup(element, injector) {
  7894. const group = {
  7895. id: 'headers',
  7896. label: 'Headers',
  7897. component: ListGroup,
  7898. ...HeaderProps({
  7899. element,
  7900. injector
  7901. })
  7902. };
  7903. return group.items ? group : null;
  7904. }
  7905. function OutputPropagationGroup(element) {
  7906. const group = {
  7907. id: 'outputPropagation',
  7908. label: 'Output propagation',
  7909. entries: [...OutputPropagationProps({
  7910. element
  7911. })],
  7912. component: Group
  7913. };
  7914. return group.entries.length ? group : null;
  7915. }
  7916. function InputPropagationGroup(element) {
  7917. const group = {
  7918. id: 'inputPropagation',
  7919. label: 'Input propagation',
  7920. entries: [...InputPropagationProps({
  7921. element
  7922. })],
  7923. component: Group
  7924. };
  7925. return group.entries.length ? group : null;
  7926. }
  7927. function BusinessRuleImplementationGroup(element) {
  7928. const group = {
  7929. id: 'businessRuleImplementation',
  7930. label: 'Implementation',
  7931. entries: [...BusinessRuleImplementationProps({
  7932. element
  7933. })],
  7934. component: Group
  7935. };
  7936. return group.entries.length ? group : null;
  7937. }
  7938. function ScriptImplementationGroup(element) {
  7939. const group = {
  7940. id: 'scriptImplementation',
  7941. label: 'Implementation',
  7942. entries: [...ScriptImplementationProps({
  7943. element
  7944. })],
  7945. component: Group
  7946. };
  7947. return group.entries.length ? group : null;
  7948. }
  7949. function AssignmentDefinitionGroup(element) {
  7950. const group = {
  7951. id: 'assignmentDefinition',
  7952. label: 'Assignment',
  7953. entries: [...AssignmentDefinitionProps({
  7954. element
  7955. }), ...TaskScheduleProps({
  7956. element
  7957. })],
  7958. component: Group
  7959. };
  7960. return group.entries.length ? group : null;
  7961. }
  7962. function ExtensionPropertiesGroup$1(element, injector) {
  7963. const group = {
  7964. label: 'Extension properties',
  7965. id: 'Zeebe__ExtensionProperties',
  7966. component: ListGroup,
  7967. ...ExtensionPropertiesProps({
  7968. element,
  7969. injector,
  7970. namespace: 'zeebe'
  7971. })
  7972. };
  7973. if (group.items) {
  7974. return group;
  7975. }
  7976. return null;
  7977. }
  7978. function updateErrorGroup$1(groups, element) {
  7979. const errorGroup = findGroup$1(groups, 'error');
  7980. if (!errorGroup) {
  7981. return;
  7982. }
  7983. errorGroup.entries = replaceEntries(errorGroup.entries, ErrorProps$1({
  7984. element
  7985. }));
  7986. }
  7987. function updateEscalationGroup$1(groups, element) {
  7988. const escalationGroup = findGroup$1(groups, 'escalation');
  7989. if (!escalationGroup) {
  7990. return;
  7991. }
  7992. escalationGroup.entries = replaceEntries(escalationGroup.entries, EscalationProps$1({
  7993. element
  7994. }));
  7995. }
  7996. function updateSignalGroup(groups, element) {
  7997. const signalGroup = findGroup$1(groups, 'signal');
  7998. if (!signalGroup) {
  7999. return;
  8000. }
  8001. signalGroup.entries = replaceEntries(signalGroup.entries, SignalProps({
  8002. element
  8003. }));
  8004. }
  8005. function updateMessageGroup(groups, element) {
  8006. const messageGroup = findGroup$1(groups, 'message');
  8007. if (!messageGroup) {
  8008. return;
  8009. }
  8010. messageGroup.entries = replaceEntries(messageGroup.entries, MessageProps({
  8011. element
  8012. }));
  8013. }
  8014. // overwrite bpmn generic timerEventDefinition group with zeebe-specific one
  8015. function updateTimerGroup$1(groups, element, injector) {
  8016. const timerEventGroup = findGroup$1(groups, 'timer');
  8017. if (!timerEventGroup) {
  8018. return;
  8019. }
  8020. timerEventGroup.entries = [...TimerProps$1({
  8021. element,
  8022. injector
  8023. })];
  8024. }
  8025. // overwrite bpmn generic multiInstance group with zeebe-specific one
  8026. function updateMultiInstanceGroup$1(groups, element) {
  8027. const multiInstanceGroup = findGroup$1(groups, 'multiInstance');
  8028. if (!multiInstanceGroup) {
  8029. return;
  8030. }
  8031. multiInstanceGroup.entries = [...MultiInstanceProps$1({
  8032. element
  8033. })];
  8034. }
  8035. // remove message group from Message End Event & Message Throw Event
  8036. function removeMessageGroup(groups, element) {
  8037. const messageGroup = findGroup$1(groups, 'message');
  8038. if (isMessageEndEvent(element) || isMessageThrowEvent(element)) {
  8039. groups = groups.filter(g => g != messageGroup);
  8040. }
  8041. return groups;
  8042. }
  8043. // helper /////////////////////
  8044. function findGroup$1(groups, id) {
  8045. return groups.find(g => g.id === id);
  8046. }
  8047. /**
  8048. * Replace entries with the same ID.
  8049. *s
  8050. * @param {Entry[]} oldEntries
  8051. * @param {Entry[]} newEntries
  8052. *
  8053. * @returns {Entry[]} combined entries
  8054. */
  8055. function replaceEntries(oldEntries, newEntries) {
  8056. const filteredEntries = oldEntries.filter(oldEntry => !newEntries.find(newEntry => newEntry.id === oldEntry.id));
  8057. return [...filteredEntries, ...newEntries];
  8058. }
  8059. var index$1 = {
  8060. __init__: ['zeebePropertiesProvider'],
  8061. zeebePropertiesProvider: ['type', ZeebePropertiesProvider]
  8062. };
  8063. function AsynchronousContinuationsProps(props) {
  8064. const {
  8065. element
  8066. } = props;
  8067. const checkboxIsEditedInverted = node => {
  8068. return node && !node.checked;
  8069. };
  8070. const businessObject = getBusinessObject(element);
  8071. const entries = [];
  8072. if (is(element, 'camunda:AsyncCapable')) {
  8073. entries.push({
  8074. id: 'asynchronousContinuationBefore',
  8075. component: AsynchronousContinuationBefore,
  8076. isEdited: isCheckboxEntryEdited
  8077. }, {
  8078. id: 'asynchronousContinuationAfter',
  8079. component: AsynchronousContinuationAfter,
  8080. isEdited: isCheckboxEntryEdited
  8081. });
  8082. if (isAsyncBefore$2(businessObject) || isAsyncAfter$2(businessObject)) {
  8083. entries.push({
  8084. id: 'exclusive',
  8085. component: Exclusive,
  8086. isEdited: checkboxIsEditedInverted
  8087. });
  8088. }
  8089. }
  8090. return entries;
  8091. }
  8092. function AsynchronousContinuationBefore(props) {
  8093. const {
  8094. element
  8095. } = props;
  8096. const commandStack = useService('commandStack'),
  8097. translate = useService('translate');
  8098. const businessObject = getBusinessObject(element);
  8099. const getValue = () => {
  8100. return isAsyncBefore$2(businessObject);
  8101. };
  8102. const setValue = value => {
  8103. // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`
  8104. const props = {
  8105. 'camunda:asyncBefore': value,
  8106. 'camunda:async': undefined
  8107. };
  8108. commandStack.execute('element.updateModdleProperties', {
  8109. element,
  8110. moddleElement: businessObject,
  8111. properties: props
  8112. });
  8113. };
  8114. return CheckboxEntry({
  8115. element,
  8116. id: 'asynchronousContinuationBefore',
  8117. label: translate('Before'),
  8118. getValue,
  8119. setValue
  8120. });
  8121. }
  8122. function AsynchronousContinuationAfter(props) {
  8123. const {
  8124. element
  8125. } = props;
  8126. const commandStack = useService('commandStack'),
  8127. translate = useService('translate');
  8128. const businessObject = getBusinessObject(element);
  8129. const getValue = () => {
  8130. return isAsyncAfter$2(businessObject);
  8131. };
  8132. const setValue = value => {
  8133. commandStack.execute('element.updateModdleProperties', {
  8134. element,
  8135. moddleElement: businessObject,
  8136. properties: {
  8137. 'camunda:asyncAfter': value
  8138. }
  8139. });
  8140. };
  8141. return CheckboxEntry({
  8142. element,
  8143. id: 'asynchronousContinuationAfter',
  8144. label: translate('After'),
  8145. getValue,
  8146. setValue
  8147. });
  8148. }
  8149. function Exclusive(props) {
  8150. const {
  8151. element
  8152. } = props;
  8153. const commandStack = useService('commandStack'),
  8154. translate = useService('translate');
  8155. const businessObject = getBusinessObject(element);
  8156. const getValue = () => {
  8157. return isExclusive$1(businessObject);
  8158. };
  8159. const setValue = value => {
  8160. commandStack.execute('element.updateModdleProperties', {
  8161. element,
  8162. moddleElement: businessObject,
  8163. properties: {
  8164. 'camunda:exclusive': value
  8165. }
  8166. });
  8167. };
  8168. return CheckboxEntry({
  8169. element,
  8170. id: 'exclusive',
  8171. label: translate('Exclusive'),
  8172. getValue,
  8173. setValue
  8174. });
  8175. }
  8176. // helper //////////////////
  8177. /**
  8178. * Returns true if the attribute 'camunda:asyncBefore' is set
  8179. * to true.
  8180. *
  8181. * @param {ModdleElement} bo
  8182. *
  8183. * @return {boolean} a boolean value
  8184. */
  8185. function isAsyncBefore$2(bo) {
  8186. return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
  8187. }
  8188. /**
  8189. * Returns true if the attribute 'camunda:asyncAfter' is set
  8190. * to true.
  8191. *
  8192. * @param {ModdleElement} bo
  8193. *
  8194. * @return {boolean} a boolean value
  8195. */
  8196. function isAsyncAfter$2(bo) {
  8197. return !!bo.get('camunda:asyncAfter');
  8198. }
  8199. /**
  8200. * Returns true if the attribute 'camunda:exclusive' is set
  8201. * to true.
  8202. *
  8203. * @param {ModdleElement} bo
  8204. *
  8205. * @return {boolean} a boolean value
  8206. */
  8207. function isExclusive$1(bo) {
  8208. return !!bo.get('camunda:exclusive');
  8209. }
  8210. const EMPTY_OPTION$1 = '';
  8211. function BusinessKeyProps$1(props) {
  8212. const {
  8213. element
  8214. } = props;
  8215. if (!is(element, 'bpmn:StartEvent') || !hasFormFields(element)) {
  8216. return [];
  8217. }
  8218. return [{
  8219. id: 'businessKey',
  8220. component: BusinessKey$1,
  8221. isEdited: isSelectEntryEdited
  8222. }];
  8223. }
  8224. function BusinessKey$1(props) {
  8225. const {
  8226. element
  8227. } = props;
  8228. const commandStack = useService('commandStack');
  8229. const translate = useService('translate');
  8230. const formData = getFormData$2(element);
  8231. const getValue = () => {
  8232. return formData.get('camunda:businessKey') || '';
  8233. };
  8234. const setValue = value => {
  8235. commandStack.execute('element.updateModdleProperties', {
  8236. element,
  8237. moddleElement: formData,
  8238. properties: {
  8239. 'camunda:businessKey': value
  8240. }
  8241. });
  8242. };
  8243. const getOptions = () => {
  8244. const options = [{
  8245. value: EMPTY_OPTION$1,
  8246. label: translate('<none>')
  8247. }];
  8248. const fields = formData.get('fields');
  8249. fields.forEach(field => {
  8250. const id = field.get('camunda:id');
  8251. if (id) {
  8252. options.push({
  8253. value: id,
  8254. label: id
  8255. });
  8256. }
  8257. });
  8258. return options;
  8259. };
  8260. return SelectEntry({
  8261. element,
  8262. id: 'businessKey',
  8263. label: translate('Key'),
  8264. getValue,
  8265. setValue,
  8266. getOptions
  8267. });
  8268. }
  8269. // helper ///////////////////
  8270. function getFormData$2(element) {
  8271. const businessObject = getBusinessObject(element);
  8272. return getExtensionElementsList(businessObject, 'camunda:FormData')[0];
  8273. }
  8274. function hasFormFields(element) {
  8275. const businessObject = getBusinessObject(element);
  8276. const formData = getFormData$2(businessObject);
  8277. return formData && formData.get('camunda:fields').length;
  8278. }
  8279. function CalledBpmnProps(props) {
  8280. const {
  8281. element
  8282. } = props;
  8283. const entries = [{
  8284. id: 'calledElement',
  8285. component: CalledElement,
  8286. isEdited: isTextFieldEntryEdited
  8287. }, {
  8288. id: 'calledElementBinding',
  8289. component: CalledElementBinding,
  8290. isEdited: isSelectEntryEdited
  8291. }, {
  8292. id: 'calledElementTenantId',
  8293. component: CalledElementTenantId,
  8294. isEdited: isTextFieldEntryEdited
  8295. }];
  8296. const binding = getBusinessObject(element).get('camunda:calledElementBinding');
  8297. if (binding === 'version') {
  8298. entries.splice(-1, 0, {
  8299. id: 'calledElementVersion',
  8300. component: CalledElementVersion,
  8301. isEdited: isTextFieldEntryEdited
  8302. });
  8303. } else if (binding === 'versionTag') {
  8304. entries.splice(-1, 0, {
  8305. id: 'calledElementVersionTag',
  8306. component: CalledElementVersionTag,
  8307. isEdited: isTextFieldEntryEdited
  8308. });
  8309. }
  8310. return entries;
  8311. }
  8312. function CalledElement(props) {
  8313. const {
  8314. element
  8315. } = props;
  8316. const modeling = useService('modeling');
  8317. const translate = useService('translate');
  8318. const debounce = useService('debounceInput');
  8319. const getValue = () => {
  8320. return getBusinessObject(element).get('calledElement');
  8321. };
  8322. const setValue = value => {
  8323. modeling.updateProperties(element, {
  8324. calledElement: value || ''
  8325. });
  8326. };
  8327. return jsx(TextFieldEntry, {
  8328. element: element,
  8329. id: "calledElement",
  8330. label: translate('Called element'),
  8331. getValue: getValue,
  8332. setValue: setValue,
  8333. debounce: debounce
  8334. });
  8335. }
  8336. function CalledElementBinding(props) {
  8337. const {
  8338. element
  8339. } = props;
  8340. const modeling = useService('modeling');
  8341. const translate = useService('translate');
  8342. const getValue = () => {
  8343. return getBusinessObject(element).get('camunda:calledElementBinding') || 'latest';
  8344. };
  8345. const setValue = value => {
  8346. modeling.updateProperties(element, {
  8347. calledElementBinding: value === 'latest' ? undefined : value,
  8348. calledElementVersion: undefined,
  8349. calledElementVersionTag: undefined
  8350. });
  8351. };
  8352. const getOptions = () => [{
  8353. value: 'latest',
  8354. label: translate('latest')
  8355. }, {
  8356. value: 'deployment',
  8357. label: translate('deployment')
  8358. }, {
  8359. value: 'version',
  8360. label: translate('version')
  8361. }, {
  8362. value: 'versionTag',
  8363. label: translate('version tag')
  8364. }];
  8365. return jsx(SelectEntry, {
  8366. element: element,
  8367. id: "calledElementBinding",
  8368. label: translate('Binding'),
  8369. getValue: getValue,
  8370. setValue: setValue,
  8371. getOptions: getOptions
  8372. });
  8373. }
  8374. function CalledElementVersion(props) {
  8375. const {
  8376. element
  8377. } = props;
  8378. const modeling = useService('modeling');
  8379. const translate = useService('translate');
  8380. const debounce = useService('debounceInput');
  8381. const getValue = () => {
  8382. return getBusinessObject(element).get('camunda:calledElementVersion');
  8383. };
  8384. const setValue = value => {
  8385. modeling.updateProperties(element, {
  8386. calledElementVersion: value
  8387. });
  8388. };
  8389. return jsx(TextFieldEntry, {
  8390. element: element,
  8391. id: "calledElementVersion",
  8392. label: translate('Version'),
  8393. getValue: getValue,
  8394. setValue: setValue,
  8395. debounce: debounce
  8396. });
  8397. }
  8398. function CalledElementVersionTag(props) {
  8399. const {
  8400. element
  8401. } = props;
  8402. const modeling = useService('modeling');
  8403. const translate = useService('translate');
  8404. const debounce = useService('debounceInput');
  8405. const getValue = () => {
  8406. return getBusinessObject(element).get('camunda:calledElementVersionTag');
  8407. };
  8408. const setValue = value => {
  8409. modeling.updateProperties(element, {
  8410. calledElementVersionTag: value
  8411. });
  8412. };
  8413. return jsx(TextFieldEntry, {
  8414. element: element,
  8415. id: "calledElementVersionTag",
  8416. label: translate('Version tag'),
  8417. getValue: getValue,
  8418. setValue: setValue,
  8419. debounce: debounce
  8420. });
  8421. }
  8422. function CalledElementTenantId(props) {
  8423. const {
  8424. element
  8425. } = props;
  8426. const modeling = useService('modeling');
  8427. const translate = useService('translate');
  8428. const debounce = useService('debounceInput');
  8429. const getValue = () => {
  8430. return getBusinessObject(element).get('camunda:calledElementTenantId');
  8431. };
  8432. const setValue = value => {
  8433. modeling.updateProperties(element, {
  8434. calledElementTenantId: value
  8435. });
  8436. };
  8437. return jsx(TextFieldEntry, {
  8438. element: element,
  8439. id: "calledElementTenantId",
  8440. label: translate('Tenant ID'),
  8441. getValue: getValue,
  8442. setValue: setValue,
  8443. debounce: debounce
  8444. });
  8445. }
  8446. function CalledCmmnProps(props) {
  8447. const {
  8448. element
  8449. } = props;
  8450. const entries = [{
  8451. id: 'calledElementCaseRef',
  8452. component: CaseRef,
  8453. isEdited: isTextFieldEntryEdited
  8454. }, {
  8455. id: 'calledElementCaseBinding',
  8456. component: CaseBinding,
  8457. isEdited: isSelectEntryEdited
  8458. }, {
  8459. id: 'calledElementCaseTenantId',
  8460. component: CaseTenantId,
  8461. isEdited: isTextFieldEntryEdited
  8462. }];
  8463. if (getBusinessObject(element).get('camunda:caseBinding') === 'version') {
  8464. entries.splice(-1, 0, {
  8465. id: 'calledElementCaseVersion',
  8466. component: CaseVersion,
  8467. isEdited: isTextFieldEntryEdited
  8468. });
  8469. }
  8470. return entries;
  8471. }
  8472. function CaseRef(props) {
  8473. const {
  8474. element
  8475. } = props;
  8476. const modeling = useService('modeling');
  8477. const translate = useService('translate');
  8478. const debounce = useService('debounceInput');
  8479. const getValue = () => {
  8480. return getBusinessObject(element).get('camunda:caseRef');
  8481. };
  8482. const setValue = value => {
  8483. modeling.updateProperties(element, {
  8484. caseRef: value || ''
  8485. });
  8486. };
  8487. return jsx(TextFieldEntry, {
  8488. element: element,
  8489. id: "calledElementCaseRef",
  8490. label: translate('Case ref'),
  8491. getValue: getValue,
  8492. setValue: setValue,
  8493. debounce: debounce
  8494. });
  8495. }
  8496. function CaseBinding(props) {
  8497. const {
  8498. element
  8499. } = props;
  8500. const modeling = useService('modeling');
  8501. const translate = useService('translate');
  8502. const getValue = () => {
  8503. return getBusinessObject(element).get('camunda:caseBinding') || 'latest';
  8504. };
  8505. const setValue = value => {
  8506. modeling.updateProperties(element, {
  8507. caseBinding: value === 'latest' ? undefined : value,
  8508. caseVersion: undefined
  8509. });
  8510. };
  8511. const getOptions = () => [{
  8512. value: 'latest',
  8513. label: translate('latest')
  8514. }, {
  8515. value: 'deployment',
  8516. label: translate('deployment')
  8517. }, {
  8518. value: 'version',
  8519. label: translate('version')
  8520. }];
  8521. return jsx(SelectEntry, {
  8522. element: element,
  8523. id: "calledElementCaseBinding",
  8524. label: translate('Binding'),
  8525. getValue: getValue,
  8526. setValue: setValue,
  8527. getOptions: getOptions
  8528. });
  8529. }
  8530. function CaseVersion(props) {
  8531. const {
  8532. element
  8533. } = props;
  8534. const modeling = useService('modeling');
  8535. const translate = useService('translate');
  8536. const debounce = useService('debounceInput');
  8537. const getValue = () => {
  8538. return getBusinessObject(element).get('camunda:caseVersion');
  8539. };
  8540. const setValue = value => {
  8541. modeling.updateProperties(element, {
  8542. caseVersion: value
  8543. });
  8544. };
  8545. return jsx(TextFieldEntry, {
  8546. element: element,
  8547. id: "calledElementCaseVersion",
  8548. label: translate('Version'),
  8549. getValue: getValue,
  8550. setValue: setValue,
  8551. debounce: debounce
  8552. });
  8553. }
  8554. function CaseTenantId(props) {
  8555. const {
  8556. element
  8557. } = props;
  8558. const modeling = useService('modeling');
  8559. const translate = useService('translate');
  8560. const debounce = useService('debounceInput');
  8561. const getValue = () => {
  8562. return getBusinessObject(element).get('camunda:caseTenantId');
  8563. };
  8564. const setValue = value => {
  8565. modeling.updateProperties(element, {
  8566. caseTenantId: value
  8567. });
  8568. };
  8569. return jsx(TextFieldEntry, {
  8570. element: element,
  8571. id: "calledElementCaseTenantId",
  8572. label: translate('Tenant ID'),
  8573. getValue: getValue,
  8574. setValue: setValue,
  8575. debounce: debounce
  8576. });
  8577. }
  8578. function DelegateVariableMappingProps(props) {
  8579. const {
  8580. element
  8581. } = props;
  8582. const entries = [{
  8583. id: 'calledElementDelegateVariableMappingType',
  8584. component: DelegateVariableMappingType,
  8585. isEdited: isSelectEntryEdited
  8586. }];
  8587. const type = getDelegateVariableMappingType(element);
  8588. if (type === 'class') {
  8589. entries.push({
  8590. id: 'calledElementVariableMappingClass',
  8591. component: VariableMappingClass,
  8592. isEdited: isTextFieldEntryEdited
  8593. });
  8594. } else if (type === 'delegateExpression') {
  8595. entries.push({
  8596. id: 'calledElementVariableMappingDelegateExpression',
  8597. component: VariableMappingDelegateExpression,
  8598. isEdited: isTextFieldEntryEdited
  8599. });
  8600. }
  8601. return entries;
  8602. }
  8603. const DEFAULT_PROPS$5 = {
  8604. 'camunda:variableMappingClass': undefined,
  8605. 'camunda:variableMappingDelegateExpression': undefined
  8606. };
  8607. function DelegateVariableMappingType(props) {
  8608. const {
  8609. element
  8610. } = props;
  8611. const commandStack = useService('commandStack');
  8612. const translate = useService('translate');
  8613. const getValue = () => {
  8614. return getDelegateVariableMappingType(element);
  8615. };
  8616. const setValue = value => {
  8617. const properties = {
  8618. ...DEFAULT_PROPS$5
  8619. };
  8620. if (value === 'class') {
  8621. properties['camunda:variableMappingClass'] = '';
  8622. } else if (value === 'delegateExpression') {
  8623. properties['camunda:variableMappingDelegateExpression'] = '';
  8624. }
  8625. commandStack.execute('element.updateProperties', {
  8626. element,
  8627. properties
  8628. });
  8629. };
  8630. const getOptions = () => [{
  8631. value: 'none',
  8632. label: translate('<none>')
  8633. }, {
  8634. value: 'class',
  8635. label: translate('Class')
  8636. }, {
  8637. value: 'delegateExpression',
  8638. label: translate('Delegate expression')
  8639. }];
  8640. return jsx(SelectEntry, {
  8641. element: element,
  8642. id: "calledElementDelegateVariableMappingType",
  8643. label: translate('Delegate Variable Mapping'),
  8644. getValue: getValue,
  8645. setValue: setValue,
  8646. getOptions: getOptions
  8647. });
  8648. }
  8649. function VariableMappingDelegateExpression(props) {
  8650. const {
  8651. element
  8652. } = props;
  8653. const modeling = useService('modeling');
  8654. const translate = useService('translate');
  8655. const debounce = useService('debounceInput');
  8656. const getValue = () => {
  8657. return getBusinessObject(element).get('camunda:variableMappingDelegateExpression');
  8658. };
  8659. const setValue = value => {
  8660. modeling.updateProperties(element, {
  8661. variableMappingDelegateExpression: value || '',
  8662. variableMappingClass: undefined
  8663. });
  8664. };
  8665. return jsx(TextFieldEntry, {
  8666. element: element,
  8667. id: "calledElementVariableMappingDelegateExpression",
  8668. label: translate('Delegate Expression'),
  8669. getValue: getValue,
  8670. setValue: setValue,
  8671. debounce: debounce
  8672. });
  8673. }
  8674. function VariableMappingClass(props) {
  8675. const {
  8676. element
  8677. } = props;
  8678. const modeling = useService('modeling');
  8679. const translate = useService('translate');
  8680. const debounce = useService('debounceInput');
  8681. const getValue = () => {
  8682. return getBusinessObject(element).get('camunda:variableMappingClass');
  8683. };
  8684. const setValue = value => {
  8685. modeling.updateProperties(element, {
  8686. variableMappingDelegateExpression: undefined,
  8687. variableMappingClass: value || ''
  8688. });
  8689. };
  8690. return jsx(TextFieldEntry, {
  8691. element: element,
  8692. id: "calledElementVariableMappingClass",
  8693. label: translate('Delegate Class'),
  8694. getValue: getValue,
  8695. setValue: setValue,
  8696. debounce: debounce
  8697. });
  8698. }
  8699. // helper /////
  8700. function getDelegateVariableMappingType(element) {
  8701. const businessObject = getBusinessObject(element);
  8702. if (businessObject.get('camunda:variableMappingClass') !== undefined) {
  8703. return 'class';
  8704. } else if (businessObject.get('camunda:variableMappingDelegateExpression') !== undefined) {
  8705. return 'delegateExpression';
  8706. }
  8707. return 'none';
  8708. }
  8709. function CallActivityProps(props) {
  8710. const {
  8711. element
  8712. } = props;
  8713. if (!is(element, 'bpmn:CallActivity')) {
  8714. return [];
  8715. }
  8716. const entries = [];
  8717. entries.push({
  8718. id: 'calledElementType',
  8719. component: CalledElementType,
  8720. isEdited: isSelectEntryEdited
  8721. });
  8722. const calledElementType = getCalledElementType(element);
  8723. if (calledElementType === 'bpmn') {
  8724. entries.push(...CalledBpmnProps({
  8725. element
  8726. }), ...BusinessKeyProps({
  8727. element
  8728. }), ...DelegateVariableMappingProps({
  8729. element
  8730. }));
  8731. } else if (calledElementType === 'cmmn') {
  8732. entries.push(...CalledCmmnProps({
  8733. element
  8734. }), ...BusinessKeyProps({
  8735. element
  8736. }));
  8737. } else {
  8738. entries.push(...BusinessKeyProps({
  8739. element
  8740. }));
  8741. }
  8742. return entries;
  8743. }
  8744. const DEFAULT_PROPS$4 = {
  8745. calledElement: undefined,
  8746. 'camunda:calledElementBinding': undefined,
  8747. 'camunda:calledElementVersion': undefined,
  8748. 'camunda:calledElementTenantId': undefined,
  8749. 'camunda:variableMappingClass': undefined,
  8750. 'camunda:variableMappingDelegateExpression': undefined,
  8751. 'camunda:caseRef': undefined,
  8752. 'camunda:caseBinding': undefined,
  8753. 'camunda:caseVersion': undefined,
  8754. 'camunda:caseTenantId': undefined
  8755. };
  8756. const DEFAULT_BUSINESS_KEY = '#{execution.processBusinessKey}';
  8757. function CalledElementType(props) {
  8758. const {
  8759. element
  8760. } = props;
  8761. const commandStack = useService('commandStack');
  8762. const translate = useService('translate');
  8763. const getValue = () => {
  8764. return getCalledElementType(element);
  8765. };
  8766. const setValue = value => {
  8767. const properties = {
  8768. ...DEFAULT_PROPS$4
  8769. };
  8770. if (value === 'bpmn') {
  8771. properties['calledElement'] = '';
  8772. } else if (value === 'cmmn') {
  8773. properties['camunda:caseRef'] = '';
  8774. }
  8775. commandStack.execute('element.updateProperties', {
  8776. element,
  8777. properties
  8778. });
  8779. };
  8780. const getOptions = () => [{
  8781. value: '',
  8782. label: translate('<none>')
  8783. }, {
  8784. value: 'bpmn',
  8785. label: translate('BPMN')
  8786. }, {
  8787. value: 'cmmn',
  8788. label: translate('CMMN')
  8789. }];
  8790. return jsx(SelectEntry, {
  8791. element: element,
  8792. id: "calledElementType",
  8793. label: translate('Type'),
  8794. getValue: getValue,
  8795. setValue: setValue,
  8796. getOptions: getOptions
  8797. });
  8798. }
  8799. function BusinessKeyProps(props) {
  8800. const {
  8801. element
  8802. } = props;
  8803. const entries = [{
  8804. id: 'calledElementBusinessKey',
  8805. component: BusinessKey,
  8806. isEdited: isCheckboxEntryEdited
  8807. }];
  8808. if (hasBusinessKey(element)) {
  8809. entries.push({
  8810. id: 'calledElementBusinessKeyExpression',
  8811. component: BusinessKeyExpression,
  8812. isEdited: isTextFieldEntryEdited
  8813. });
  8814. }
  8815. return entries;
  8816. }
  8817. function BusinessKey(props) {
  8818. const {
  8819. element
  8820. } = props;
  8821. const commandStack = useService('commandStack');
  8822. const modeling = useService('modeling');
  8823. const bpmnFactory = useService('bpmnFactory');
  8824. const translate = useService('translate');
  8825. const getValue = () => {
  8826. return hasBusinessKey(element);
  8827. };
  8828. const setValue = value => {
  8829. if (value) {
  8830. addBusinessKey();
  8831. } else {
  8832. removeBusinessKey();
  8833. }
  8834. };
  8835. function addBusinessKey() {
  8836. const businessObject = getBusinessObject(element);
  8837. let extensionElements = businessObject.get('extensionElements');
  8838. // (1) If there are no extension elements, create camunda:In and update element's properties
  8839. if (!extensionElements) {
  8840. extensionElements = createElement('bpmn:ExtensionElements', {}, businessObject, bpmnFactory);
  8841. const businessKeyItem = createBusinessKey(extensionElements);
  8842. extensionElements.set('values', [businessKeyItem]);
  8843. modeling.updateProperties(element, {
  8844. extensionElements
  8845. });
  8846. } else {
  8847. // (2) Otherwise, add camunda:In to the existing values
  8848. const businessKeyItem = createBusinessKey(extensionElements);
  8849. addExtensionElements(element, businessObject, businessKeyItem, bpmnFactory, commandStack);
  8850. }
  8851. }
  8852. function createBusinessKey(parent) {
  8853. return createElement('camunda:In', {
  8854. businessKey: DEFAULT_BUSINESS_KEY
  8855. }, parent, bpmnFactory);
  8856. }
  8857. function removeBusinessKey() {
  8858. const businessObject = getBusinessObject(element);
  8859. const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');
  8860. const businessKeyItems = camundaInList.filter(camundaIn => camundaIn.get('businessKey') !== undefined);
  8861. removeExtensionElements(element, businessObject, businessKeyItems, commandStack);
  8862. }
  8863. return jsx(CheckboxEntry, {
  8864. element: element,
  8865. id: "calledElementBusinessKey",
  8866. label: translate('Business key'),
  8867. getValue: getValue,
  8868. setValue: setValue
  8869. });
  8870. }
  8871. function BusinessKeyExpression(props) {
  8872. const {
  8873. element
  8874. } = props;
  8875. const commandStack = useService('commandStack');
  8876. const translate = useService('translate');
  8877. const debounce = useService('debounceInput');
  8878. const getValue = () => getBusinessKey(element);
  8879. const setValue = value => {
  8880. const camundaIn = findCamundaInWithBusinessKey(element);
  8881. commandStack.execute('element.updateModdleProperties', {
  8882. element,
  8883. moddleElement: camundaIn,
  8884. properties: {
  8885. businessKey: value || ''
  8886. }
  8887. });
  8888. };
  8889. return jsx(TextFieldEntry, {
  8890. element: element,
  8891. id: "calledElementBusinessKeyExpression",
  8892. label: translate('Business key expression'),
  8893. getValue: getValue,
  8894. setValue: setValue,
  8895. debounce: debounce
  8896. });
  8897. }
  8898. // helper //////
  8899. function getCalledElementType(element) {
  8900. const businessObject = getBusinessObject(element);
  8901. if (businessObject.get('calledElement') !== undefined) {
  8902. return 'bpmn';
  8903. } else if (businessObject.get('camunda:caseRef') !== undefined) {
  8904. return 'cmmn';
  8905. }
  8906. return '';
  8907. }
  8908. function hasBusinessKey(element) {
  8909. return getBusinessKey(element) !== undefined;
  8910. }
  8911. function getBusinessKey(element) {
  8912. const camundaIn = findCamundaInWithBusinessKey(element);
  8913. if (camundaIn) {
  8914. return camundaIn.get('businessKey');
  8915. }
  8916. }
  8917. function findCamundaInWithBusinessKey(element) {
  8918. const businessObject = getBusinessObject(element);
  8919. const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');
  8920. for (const camundaIn of camundaInList) {
  8921. const businessKey = camundaIn.get('businessKey');
  8922. if (businessKey !== undefined) {
  8923. return camundaIn;
  8924. }
  8925. }
  8926. }
  8927. function CandidateStarterProps(props) {
  8928. const {
  8929. element
  8930. } = props;
  8931. const businessObject = getBusinessObject(element);
  8932. if (!is(element, 'bpmn:Process') && !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
  8933. return [];
  8934. }
  8935. return [{
  8936. id: 'candidateStarterGroups',
  8937. component: CandidateStarterGroups,
  8938. isEdited: isTextFieldEntryEdited
  8939. }, {
  8940. id: 'candidateStarterUsers',
  8941. component: CandidateStarterUsers,
  8942. isEdited: isTextFieldEntryEdited
  8943. }];
  8944. }
  8945. function CandidateStarterGroups(props) {
  8946. const {
  8947. element
  8948. } = props;
  8949. const commandStack = useService('commandStack'),
  8950. translate = useService('translate'),
  8951. debounce = useService('debounceInput');
  8952. const process = getProcess$3(element);
  8953. const getValue = () => {
  8954. return process.get('camunda:candidateStarterGroups') || '';
  8955. };
  8956. const setValue = value => {
  8957. commandStack.execute('element.updateModdleProperties', {
  8958. element: element,
  8959. moddleElement: process,
  8960. properties: {
  8961. 'camunda:candidateStarterGroups': value
  8962. }
  8963. });
  8964. };
  8965. return TextFieldEntry({
  8966. element,
  8967. id: 'candidateStarterGroups',
  8968. label: translate('Candidate starter groups'),
  8969. description: translate('Specify more than one group as a comma separated list.'),
  8970. getValue,
  8971. setValue,
  8972. debounce
  8973. });
  8974. }
  8975. function CandidateStarterUsers(props) {
  8976. const {
  8977. element
  8978. } = props;
  8979. const commandStack = useService('commandStack'),
  8980. translate = useService('translate'),
  8981. debounce = useService('debounceInput');
  8982. const process = getProcess$3(element);
  8983. const getValue = () => {
  8984. return process.get('camunda:candidateStarterUsers') || '';
  8985. };
  8986. const setValue = value => {
  8987. commandStack.execute('element.updateModdleProperties', {
  8988. element: element,
  8989. moddleElement: process,
  8990. properties: {
  8991. 'camunda:candidateStarterUsers': value
  8992. }
  8993. });
  8994. };
  8995. return TextFieldEntry({
  8996. element,
  8997. id: 'candidateStarterUsers',
  8998. label: translate('Candidate starter users'),
  8999. description: translate('Specify more than one user as a comma separated list.'),
  9000. getValue,
  9001. setValue,
  9002. debounce
  9003. });
  9004. }
  9005. // helper //////////////////
  9006. /**
  9007. * getProcess - get the businessObject of the process referred to by a bpmn:Process
  9008. * or by a bpmn:Participant
  9009. *
  9010. * @param {ModdleElement} element either a bpmn:Process or a bpmn:Participant
  9011. * @return {BusinessObject}
  9012. */
  9013. function getProcess$3(element) {
  9014. return is(element, 'bpmn:Process') ? getBusinessObject(element) : getBusinessObject(element).get('processRef');
  9015. }
  9016. function ConditionProps(props) {
  9017. const {
  9018. element
  9019. } = props;
  9020. if (!(is(element, 'bpmn:SequenceFlow') && isConditionalSource(element.source)) && !getConditionalEventDefinition(element)) {
  9021. return [];
  9022. }
  9023. const entries = [];
  9024. if (getConditionalEventDefinition(element)) {
  9025. entries.push(...VariableEventProps({
  9026. element
  9027. }));
  9028. }
  9029. entries.push({
  9030. id: 'conditionType',
  9031. component: ConditionType,
  9032. isEdited: isSelectEntryEdited
  9033. });
  9034. const conditionType = getConditionType(element);
  9035. if (conditionType === 'script') {
  9036. entries.push(...ConditionScriptProps({
  9037. element
  9038. }));
  9039. } else if (conditionType === 'expression') {
  9040. entries.push({
  9041. id: 'conditionExpression',
  9042. component: ConditionExpression,
  9043. isEdited: isTextFieldEntryEdited
  9044. });
  9045. }
  9046. return entries;
  9047. }
  9048. function ConditionType(props) {
  9049. const {
  9050. element
  9051. } = props;
  9052. const commandStack = useService('commandStack');
  9053. const bpmnFactory = useService('bpmnFactory');
  9054. const translate = useService('translate');
  9055. const getValue = () => {
  9056. return getConditionType(element);
  9057. };
  9058. const setValue = value => {
  9059. // (1) Remove formalExpression if <none> is selected
  9060. if (value === '') {
  9061. updateCondition(element, commandStack, undefined);
  9062. } else {
  9063. // (2) Create and set formalExpression element containing the conditionExpression
  9064. const attributes = {
  9065. body: '',
  9066. language: value === 'script' ? '' : undefined
  9067. };
  9068. const formalExpressionElement = createFormalExpression(element, attributes, bpmnFactory);
  9069. updateCondition(element, commandStack, formalExpressionElement);
  9070. }
  9071. };
  9072. const getOptions = () => [{
  9073. value: '',
  9074. label: translate('<none>')
  9075. }, {
  9076. value: 'script',
  9077. label: translate('Script')
  9078. }, {
  9079. value: 'expression',
  9080. label: translate('Expression')
  9081. }];
  9082. return jsx(SelectEntry, {
  9083. element: element,
  9084. id: "conditionType",
  9085. label: translate('Type'),
  9086. getValue: getValue,
  9087. setValue: setValue,
  9088. getOptions: getOptions
  9089. });
  9090. }
  9091. function ConditionExpression(props) {
  9092. const {
  9093. element
  9094. } = props;
  9095. const commandStack = useService('commandStack'),
  9096. bpmnFactory = useService('bpmnFactory'),
  9097. translate = useService('translate'),
  9098. debounce = useService('debounceInput');
  9099. const getValue = () => {
  9100. return getConditionExpression(element).get('body');
  9101. };
  9102. const setValue = value => {
  9103. const conditionExpression = createFormalExpression(element, {
  9104. body: value
  9105. }, bpmnFactory);
  9106. updateCondition(element, commandStack, conditionExpression);
  9107. };
  9108. return jsx(TextFieldEntry, {
  9109. element: element,
  9110. id: "conditionExpression",
  9111. label: translate('Condition Expression'),
  9112. getValue: getValue,
  9113. setValue: setValue,
  9114. debounce: debounce
  9115. });
  9116. }
  9117. function ConditionScriptProps(props) {
  9118. const {
  9119. element
  9120. } = props;
  9121. const entries = [];
  9122. const scriptType = getScriptType$1(element);
  9123. // (1) language
  9124. entries.push({
  9125. id: 'conditionScriptLanguage',
  9126. component: Language,
  9127. isEdited: isTextFieldEntryEdited
  9128. });
  9129. // (2) type
  9130. entries.push({
  9131. id: 'conditionScriptType',
  9132. component: ScriptType,
  9133. isEdited: isSelectEntryEdited
  9134. });
  9135. // (3) script
  9136. if (scriptType === 'script') {
  9137. entries.push({
  9138. id: 'conditionScriptValue',
  9139. component: Script$1,
  9140. isEdited: isTextAreaEntryEdited
  9141. });
  9142. } else if (scriptType === 'resource') {
  9143. // (4) resource
  9144. entries.push({
  9145. id: 'conditionScriptResource',
  9146. component: Resource$1,
  9147. isEdited: isTextFieldEntryEdited
  9148. });
  9149. }
  9150. return entries;
  9151. }
  9152. function Language(props) {
  9153. const {
  9154. element
  9155. } = props;
  9156. const commandStack = useService('commandStack');
  9157. const translate = useService('translate');
  9158. const debounce = useService('debounceInput');
  9159. const getValue = () => {
  9160. return getConditionExpression(element).get('language');
  9161. };
  9162. const setValue = value => {
  9163. commandStack.execute('element.updateModdleProperties', {
  9164. element: element,
  9165. moddleElement: getConditionExpression(element),
  9166. properties: {
  9167. language: value || ''
  9168. }
  9169. });
  9170. };
  9171. return jsx(TextFieldEntry, {
  9172. element: element,
  9173. id: "conditionScriptLanguage",
  9174. label: translate('Format'),
  9175. getValue: getValue,
  9176. setValue: setValue,
  9177. debounce: debounce
  9178. });
  9179. }
  9180. function ScriptType(props) {
  9181. const {
  9182. element
  9183. } = props;
  9184. const commandStack = useService('commandStack');
  9185. const translate = useService('translate');
  9186. const getValue = () => {
  9187. return getScriptType$1(element);
  9188. };
  9189. const setValue = value => {
  9190. // reset script properties on type change
  9191. const updatedProperties = {
  9192. 'body': value === 'script' ? '' : undefined,
  9193. 'camunda:resource': value === 'resource' ? '' : undefined
  9194. };
  9195. commandStack.execute('element.updateModdleProperties', {
  9196. element: element,
  9197. moddleElement: getConditionExpression(element),
  9198. properties: updatedProperties
  9199. });
  9200. };
  9201. const getOptions = () => {
  9202. const options = [{
  9203. value: 'resource',
  9204. label: translate('External resource')
  9205. }, {
  9206. value: 'script',
  9207. label: translate('Inline script')
  9208. }];
  9209. return options;
  9210. };
  9211. return SelectEntry({
  9212. element,
  9213. id: 'conditionScriptType',
  9214. label: translate('Script type'),
  9215. getValue,
  9216. setValue,
  9217. getOptions
  9218. });
  9219. }
  9220. function Script$1(props) {
  9221. const {
  9222. element
  9223. } = props;
  9224. const commandStack = useService('commandStack');
  9225. const translate = useService('translate');
  9226. const debounce = useService('debounceInput');
  9227. const getValue = () => {
  9228. return getConditionExpression(element).get('body');
  9229. };
  9230. const setValue = value => {
  9231. commandStack.execute('element.updateModdleProperties', {
  9232. element: element,
  9233. moddleElement: getConditionExpression(element),
  9234. properties: {
  9235. 'body': value || ''
  9236. }
  9237. });
  9238. };
  9239. return jsx(TextAreaEntry, {
  9240. element: element,
  9241. id: "conditionScriptValue",
  9242. label: translate('Script'),
  9243. getValue: getValue,
  9244. setValue: setValue,
  9245. debounce: debounce,
  9246. monospace: true
  9247. });
  9248. }
  9249. function Resource$1(props) {
  9250. const {
  9251. element
  9252. } = props;
  9253. const commandStack = useService('commandStack');
  9254. const translate = useService('translate');
  9255. const debounce = useService('debounceInput');
  9256. const getValue = () => {
  9257. return getConditionExpression(element).get('camunda:resource');
  9258. };
  9259. const setValue = value => {
  9260. commandStack.execute('element.updateModdleProperties', {
  9261. element: element,
  9262. moddleElement: getConditionExpression(element),
  9263. properties: {
  9264. 'camunda:resource': value || ''
  9265. }
  9266. });
  9267. };
  9268. return jsx(TextFieldEntry, {
  9269. element: true,
  9270. id: "conditionScriptResource",
  9271. label: translate('Resource'),
  9272. getValue: getValue,
  9273. setValue: setValue,
  9274. debounce: debounce
  9275. });
  9276. }
  9277. function VariableEventProps(props) {
  9278. const {
  9279. element
  9280. } = props;
  9281. const entries = [];
  9282. entries.push({
  9283. id: 'conditionVariableName',
  9284. component: VariableName,
  9285. isEdited: isTextFieldEntryEdited
  9286. });
  9287. if (!is(element, 'bpmn:StartEvent') || isInEventSubProcess(element)) {
  9288. entries.push({
  9289. id: 'conditionVariableEvents',
  9290. component: VariableEvents,
  9291. isEdited: isTextFieldEntryEdited
  9292. });
  9293. }
  9294. return entries;
  9295. }
  9296. function VariableName(props) {
  9297. const {
  9298. element
  9299. } = props;
  9300. const commandStack = useService('commandStack');
  9301. const translate = useService('translate');
  9302. const debounce = useService('debounceInput');
  9303. const getValue = () => {
  9304. return getConditionalEventDefinition(element).get('variableName');
  9305. };
  9306. const setValue = value => {
  9307. commandStack.execute('element.updateModdleProperties', {
  9308. element: element,
  9309. moddleElement: getConditionalEventDefinition(element),
  9310. properties: {
  9311. variableName: value || ''
  9312. }
  9313. });
  9314. };
  9315. return jsx(TextFieldEntry, {
  9316. element: element,
  9317. id: "conditionVariableName",
  9318. label: translate('Variable name'),
  9319. getValue: getValue,
  9320. setValue: setValue,
  9321. debounce: debounce
  9322. });
  9323. }
  9324. function VariableEvents(props) {
  9325. const {
  9326. element
  9327. } = props;
  9328. const commandStack = useService('commandStack');
  9329. const translate = useService('translate');
  9330. const debounce = useService('debounceInput');
  9331. const getValue = () => {
  9332. return getConditionalEventDefinition(element).get('variableEvents');
  9333. };
  9334. const setValue = value => {
  9335. commandStack.execute('element.updateModdleProperties', {
  9336. element: element,
  9337. moddleElement: getConditionalEventDefinition(element),
  9338. properties: {
  9339. variableEvents: value || ''
  9340. }
  9341. });
  9342. };
  9343. return jsx(TextFieldEntry, {
  9344. element: element,
  9345. id: "conditionVariableEvents",
  9346. label: translate('Variable events'),
  9347. description: translate('Specify more than one variable change event as a comma separated list.'),
  9348. getValue: getValue,
  9349. setValue: setValue,
  9350. debounce: debounce
  9351. });
  9352. }
  9353. // helper ////////////////////
  9354. const CONDITIONAL_SOURCES = ['bpmn:Activity', 'bpmn:ExclusiveGateway', 'bpmn:InclusiveGateway', 'bpmn:ComplexGateway'];
  9355. function isConditionalSource(element) {
  9356. return isAny(element, CONDITIONAL_SOURCES);
  9357. }
  9358. function getConditionalEventDefinition(element) {
  9359. if (!is(element, 'bpmn:Event')) {
  9360. return false;
  9361. }
  9362. return getEventDefinition$1(element, 'bpmn:ConditionalEventDefinition');
  9363. }
  9364. function getConditionType(element) {
  9365. const conditionExpression = getConditionExpression(element);
  9366. if (!conditionExpression) {
  9367. return '';
  9368. } else {
  9369. return conditionExpression.get('language') === undefined ? 'expression' : 'script';
  9370. }
  9371. }
  9372. /**
  9373. * getConditionExpression - get the body value of a condition expression for a given element
  9374. *
  9375. * @param {ModdleElement} element
  9376. *
  9377. * @return {string|undefined}
  9378. */
  9379. function getConditionExpression(element) {
  9380. const businessObject = getBusinessObject(element);
  9381. if (is(businessObject, 'bpmn:SequenceFlow')) {
  9382. return businessObject.get('conditionExpression');
  9383. } else if (getConditionalEventDefinition(businessObject)) {
  9384. return getConditionalEventDefinition(businessObject).get('condition');
  9385. }
  9386. }
  9387. function getScriptType$1(element) {
  9388. const conditionExpression = getConditionExpression(element);
  9389. const resource = conditionExpression.get('camunda:resource');
  9390. if (typeof resource !== 'undefined') {
  9391. return 'resource';
  9392. } else {
  9393. return 'script';
  9394. }
  9395. }
  9396. function updateCondition(element, commandStack, condition = undefined) {
  9397. if (is(element, 'bpmn:SequenceFlow')) {
  9398. commandStack.execute('element.updateProperties', {
  9399. element,
  9400. properties: {
  9401. conditionExpression: condition
  9402. }
  9403. });
  9404. } else {
  9405. commandStack.execute('element.updateModdleProperties', {
  9406. element,
  9407. moddleElement: getConditionalEventDefinition(element),
  9408. properties: {
  9409. condition
  9410. }
  9411. });
  9412. }
  9413. }
  9414. function createFormalExpression(parent, attributes, bpmnFactory) {
  9415. return createElement('bpmn:FormalExpression', attributes, is(parent, 'bpmn:SequenceFlow') ? getBusinessObject(parent) : getConditionalEventDefinition(parent), bpmnFactory);
  9416. }
  9417. function isInEventSubProcess(element) {
  9418. const bo = getBusinessObject(element),
  9419. parent = bo.$parent;
  9420. return is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
  9421. }
  9422. /**
  9423. * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/scripting/
  9424. */
  9425. function ScriptProps(props) {
  9426. const {
  9427. element,
  9428. script,
  9429. prefix
  9430. } = props;
  9431. const entries = [];
  9432. const scriptType = getScriptType(script || element);
  9433. const idPrefix = prefix || '';
  9434. // (1) scriptFormat
  9435. entries.push({
  9436. id: idPrefix + 'scriptFormat',
  9437. component: Format,
  9438. isEdited: isTextFieldEntryEdited,
  9439. idPrefix,
  9440. script
  9441. });
  9442. // (2) type
  9443. entries.push({
  9444. id: idPrefix + 'scriptType',
  9445. component: Type$3,
  9446. isEdited: isSelectEntryEdited,
  9447. idPrefix,
  9448. script
  9449. });
  9450. // (3) script
  9451. if (scriptType === 'script') {
  9452. entries.push({
  9453. id: idPrefix + 'scriptValue',
  9454. component: Script,
  9455. isEdited: isTextAreaEntryEdited,
  9456. idPrefix,
  9457. script
  9458. });
  9459. }
  9460. // (4) resource
  9461. if (scriptType === 'resource') {
  9462. entries.push({
  9463. id: idPrefix + 'scriptResource',
  9464. component: Resource,
  9465. isEdited: isTextFieldEntryEdited,
  9466. idPrefix,
  9467. script
  9468. });
  9469. }
  9470. return entries;
  9471. }
  9472. function Format(props) {
  9473. const {
  9474. element,
  9475. idPrefix,
  9476. script
  9477. } = props;
  9478. const commandStack = useService('commandStack');
  9479. const translate = useService('translate');
  9480. const debounce = useService('debounceInput');
  9481. const businessObject = script || getBusinessObject(element);
  9482. const getValue = () => {
  9483. return businessObject.get('scriptFormat');
  9484. };
  9485. const setValue = value => {
  9486. commandStack.execute('element.updateModdleProperties', {
  9487. element,
  9488. moddleElement: businessObject,
  9489. properties: {
  9490. scriptFormat: value
  9491. }
  9492. });
  9493. };
  9494. return TextFieldEntry({
  9495. element,
  9496. id: idPrefix + 'scriptFormat',
  9497. label: translate('Format'),
  9498. getValue,
  9499. setValue,
  9500. debounce
  9501. });
  9502. }
  9503. function Type$3(props) {
  9504. const {
  9505. element,
  9506. idPrefix,
  9507. script
  9508. } = props;
  9509. const commandStack = useService('commandStack');
  9510. const translate = useService('translate');
  9511. const businessObject = script || getBusinessObject(element);
  9512. const scriptProperty = getScriptProperty(businessObject);
  9513. const getValue = () => {
  9514. return getScriptType(businessObject);
  9515. };
  9516. const setValue = value => {
  9517. // reset script properties on type change
  9518. const properties = {
  9519. [scriptProperty]: value === 'script' ? '' : undefined,
  9520. 'camunda:resource': value === 'resource' ? '' : undefined
  9521. };
  9522. commandStack.execute('element.updateModdleProperties', {
  9523. element,
  9524. moddleElement: businessObject,
  9525. properties
  9526. });
  9527. };
  9528. const getOptions = () => {
  9529. const options = [{
  9530. value: '',
  9531. label: translate('<none>')
  9532. }, {
  9533. value: 'resource',
  9534. label: translate('External resource')
  9535. }, {
  9536. value: 'script',
  9537. label: translate('Inline script')
  9538. }];
  9539. return options;
  9540. };
  9541. return SelectEntry({
  9542. element,
  9543. id: idPrefix + 'scriptType',
  9544. label: translate('Type'),
  9545. getValue,
  9546. setValue,
  9547. getOptions
  9548. });
  9549. }
  9550. function Script(props) {
  9551. const {
  9552. element,
  9553. idPrefix,
  9554. script
  9555. } = props;
  9556. const commandStack = useService('commandStack');
  9557. const translate = useService('translate');
  9558. const debounce = useService('debounceInput');
  9559. const businessObject = script || getBusinessObject(element);
  9560. const scriptProperty = getScriptProperty(businessObject);
  9561. const getValue = () => {
  9562. return getScriptValue(businessObject);
  9563. };
  9564. const setValue = value => {
  9565. commandStack.execute('element.updateModdleProperties', {
  9566. element,
  9567. moddleElement: businessObject,
  9568. properties: {
  9569. [scriptProperty]: value || ''
  9570. }
  9571. });
  9572. };
  9573. return TextAreaEntry({
  9574. element,
  9575. id: idPrefix + 'scriptValue',
  9576. label: translate('Script'),
  9577. getValue,
  9578. setValue,
  9579. debounce,
  9580. monospace: true
  9581. });
  9582. }
  9583. function Resource(props) {
  9584. const {
  9585. element,
  9586. idPrefix,
  9587. script
  9588. } = props;
  9589. const commandStack = useService('commandStack');
  9590. const translate = useService('translate');
  9591. const debounce = useService('debounceInput');
  9592. const businessObject = script || getBusinessObject(element);
  9593. const getValue = () => {
  9594. return businessObject.get('camunda:resource');
  9595. };
  9596. const setValue = value => {
  9597. commandStack.execute('element.updateModdleProperties', {
  9598. element,
  9599. moddleElement: businessObject,
  9600. properties: {
  9601. 'camunda:resource': value || ''
  9602. }
  9603. });
  9604. };
  9605. return TextFieldEntry({
  9606. element,
  9607. id: idPrefix + 'scriptResource',
  9608. label: translate('Resource'),
  9609. getValue,
  9610. setValue,
  9611. debounce
  9612. });
  9613. }
  9614. // helper ////////////////////
  9615. function getScriptType(element) {
  9616. const businessObject = getBusinessObject(element);
  9617. const scriptValue = getScriptValue(businessObject);
  9618. if (typeof scriptValue !== 'undefined') {
  9619. return 'script';
  9620. }
  9621. const resource = businessObject.get('camunda:resource');
  9622. if (typeof resource !== 'undefined') {
  9623. return 'resource';
  9624. }
  9625. }
  9626. function getScriptValue(businessObject) {
  9627. return businessObject.get(getScriptProperty(businessObject));
  9628. }
  9629. function isScript$2(element) {
  9630. return is(element, 'camunda:Script');
  9631. }
  9632. function getScriptProperty(businessObject) {
  9633. return isScript$2(businessObject) ? 'value' : 'script';
  9634. }
  9635. function getElements(businessObject, type, property) {
  9636. const elements = getExtensionElementsList(businessObject, type);
  9637. return !property ? elements : (elements[0] || {})[property] || [];
  9638. }
  9639. function getParameters(element, prop) {
  9640. const inputOutput = getInputOutput(element);
  9641. return inputOutput && inputOutput.get(prop) || [];
  9642. }
  9643. /**
  9644. * Get a camunda:inputOutput from the business object
  9645. *
  9646. * @param {djs.model.Base | ModdleElement} element
  9647. *
  9648. * @return {ModdleElement} the inputOutput object
  9649. */
  9650. function getInputOutput(element) {
  9651. if (is(element, 'camunda:Connector')) {
  9652. return element.get('inputOutput');
  9653. }
  9654. const businessObject = getBusinessObject(element);
  9655. return (getElements(businessObject, 'camunda:InputOutput') || [])[0];
  9656. }
  9657. /**
  9658. * Return all input parameters existing in the business object, and
  9659. * an empty array if none exist.
  9660. *
  9661. * @param {djs.model.Base} element
  9662. *
  9663. * @return {Array} a list of input parameter objects
  9664. */
  9665. function getInputParameters(element) {
  9666. return getParameters(element, 'inputParameters');
  9667. }
  9668. /**
  9669. * Return all output parameters existing in the business object, and
  9670. * an empty array if none exist.
  9671. *
  9672. * @param {djs.model.Base} element
  9673. *
  9674. * @return {Array} a list of output parameter objects
  9675. */
  9676. function getOutputParameters(element) {
  9677. return getParameters(element, 'outputParameters');
  9678. }
  9679. function isInputOutputSupported(element) {
  9680. const businessObject = getBusinessObject(element);
  9681. return is(businessObject, 'bpmn:FlowNode') && !(isAny(businessObject, ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:Gateway']) || is(businessObject, 'bpmn:SubProcess') && businessObject.get('triggeredByEvent'));
  9682. }
  9683. function areInputParametersSupported(element) {
  9684. return isInputOutputSupported(element);
  9685. }
  9686. function areOutputParametersSupported(element) {
  9687. const businessObject = getBusinessObject(element);
  9688. return isInputOutputSupported(element) && !is(businessObject, 'bpmn:EndEvent') && !businessObject.loopCharacteristics;
  9689. }
  9690. function getInputOutputType(parameter) {
  9691. const definitionTypes = {
  9692. 'camunda:Map': 'map',
  9693. 'camunda:List': 'list',
  9694. 'camunda:Script': 'script'
  9695. };
  9696. let type = 'stringOrExpression';
  9697. const definition = parameter.get('definition');
  9698. if (typeof definition !== 'undefined') {
  9699. type = definitionTypes[definition.$type];
  9700. }
  9701. return type;
  9702. }
  9703. function CreateParameterCmd(element, type, parent, bpmnFactory) {
  9704. const isInput = type === 'camunda:InputParameter';
  9705. const newParameter = createElement(type, {
  9706. name: nextId(isInput ? 'Input_' : 'Output_')
  9707. }, parent, bpmnFactory);
  9708. const propertyName = isInput ? 'inputParameters' : 'outputParameters';
  9709. return {
  9710. cmd: 'element.updateModdleProperties',
  9711. context: {
  9712. element,
  9713. moddleElement: parent,
  9714. properties: {
  9715. [propertyName]: [...parent.get(propertyName), newParameter]
  9716. }
  9717. }
  9718. };
  9719. }
  9720. function AddParameterCmd(element, type, bpmnFactory) {
  9721. const commands = [];
  9722. const businessObject = getBusinessObject(element);
  9723. let extensionElements = businessObject.get('extensionElements');
  9724. // (1) ensure extension elements
  9725. if (!extensionElements) {
  9726. extensionElements = createElement('bpmn:ExtensionElements', {
  9727. values: []
  9728. }, businessObject, bpmnFactory);
  9729. commands.push({
  9730. cmd: 'element.updateModdleProperties',
  9731. context: {
  9732. element,
  9733. moddleElement: businessObject,
  9734. properties: {
  9735. extensionElements
  9736. }
  9737. }
  9738. });
  9739. }
  9740. // (2) ensure inputOutput
  9741. let inputOutput = getInputOutput(element);
  9742. if (!inputOutput) {
  9743. const parent = extensionElements;
  9744. inputOutput = createElement('camunda:InputOutput', {
  9745. inputParameters: [],
  9746. outputParameters: []
  9747. }, parent, bpmnFactory);
  9748. commands.push({
  9749. cmd: 'element.updateModdleProperties',
  9750. context: {
  9751. element,
  9752. moddleElement: extensionElements,
  9753. properties: {
  9754. values: [...extensionElements.get('values'), inputOutput]
  9755. }
  9756. }
  9757. });
  9758. }
  9759. // (3) create + add parameter
  9760. commands.push(CreateParameterCmd(element, type, inputOutput, bpmnFactory));
  9761. return commands;
  9762. }
  9763. function ListProp(props) {
  9764. const {
  9765. element,
  9766. id: idPrefix,
  9767. index,
  9768. item
  9769. } = props;
  9770. const id = `${idPrefix}-listItem-${index}`;
  9771. return jsx(ListItem, {
  9772. idPrefix: id,
  9773. element: element,
  9774. item: item
  9775. });
  9776. }
  9777. function ListProps(props) {
  9778. const {
  9779. idPrefix,
  9780. element,
  9781. parameter
  9782. } = props;
  9783. const bpmnFactory = useService('bpmnFactory');
  9784. const commandStack = useService('commandStack');
  9785. const translate = useService('translate');
  9786. const list = parameter.get('definition');
  9787. const items = list.get('items');
  9788. function addItem() {
  9789. const value = createElement('camunda:Value', {}, parameter, bpmnFactory);
  9790. commandStack.execute('element.updateModdleProperties', {
  9791. element,
  9792. moddleElement: list,
  9793. properties: {
  9794. items: [...list.get('items'), value]
  9795. }
  9796. });
  9797. }
  9798. function removeItem(item) {
  9799. commandStack.execute('element.updateModdleProperties', {
  9800. element,
  9801. moddleElement: list,
  9802. properties: {
  9803. items: without(list.get('items'), item)
  9804. }
  9805. });
  9806. }
  9807. function compareFn(item, anotherItem) {
  9808. const [value = '', anotherValue = ''] = [item.value, anotherItem.value];
  9809. return value === anotherValue ? 0 : value > anotherValue ? 1 : -1;
  9810. }
  9811. return ListEntry({
  9812. element,
  9813. autoFocusEntry: true,
  9814. compareFn,
  9815. id: idPrefix + '-list',
  9816. items,
  9817. label: translate('List values'),
  9818. onAdd: addItem,
  9819. onRemove: removeItem,
  9820. component: ListProp
  9821. });
  9822. }
  9823. function ListItem(props) {
  9824. const {
  9825. idPrefix,
  9826. element,
  9827. item
  9828. } = props;
  9829. const commandStack = useService('commandStack');
  9830. const translate = useService('translate');
  9831. const definitionLabels = {
  9832. 'camunda:Map': translate('Map'),
  9833. 'camunda:List': translate('List'),
  9834. 'camunda:Script': translate('Script')
  9835. };
  9836. const getValue = () => {
  9837. if (isDefinitionType$1(item)) {
  9838. return definitionLabels[item.$type];
  9839. }
  9840. return item.get('value');
  9841. };
  9842. const setValue = value => {
  9843. commandStack.execute('element.updateModdleProperties', {
  9844. element,
  9845. moddleElement: item,
  9846. properties: {
  9847. value
  9848. }
  9849. });
  9850. };
  9851. return ListValue({
  9852. id: idPrefix + '-value',
  9853. disabled: isDefinitionType$1(item),
  9854. getValue,
  9855. setValue
  9856. });
  9857. }
  9858. function ListValue(props) {
  9859. const {
  9860. id,
  9861. disabled,
  9862. getValue,
  9863. setValue
  9864. } = props;
  9865. const debounce = useService('debounceInput', true);
  9866. return jsx(SimpleEntry, {
  9867. id: id,
  9868. getValue: getValue,
  9869. setValue: setValue,
  9870. disabled: disabled,
  9871. debounce: debounce
  9872. });
  9873. }
  9874. // helper //////////////////////
  9875. function isScript$1(element) {
  9876. return is(element, 'camunda:Script');
  9877. }
  9878. function isList$1(element) {
  9879. return is(element, 'camunda:List');
  9880. }
  9881. function isMap$1(element) {
  9882. return is(element, 'camunda:Map');
  9883. }
  9884. function isDefinitionType$1(element) {
  9885. return isScript$1(element) || isList$1(element) || isMap$1(element);
  9886. }
  9887. function MapProp(props) {
  9888. const {
  9889. element,
  9890. id: idPrefix,
  9891. index,
  9892. item: entry,
  9893. open
  9894. } = props;
  9895. const id = `${idPrefix}-mapEntry-${index}`;
  9896. const translate = useService('translate');
  9897. return jsx(CollapsibleEntry, {
  9898. id: id,
  9899. element: element,
  9900. entries: MapEntry({
  9901. element,
  9902. entry,
  9903. idPrefix: id
  9904. }),
  9905. label: entry.get('key') || translate('<empty>'),
  9906. open: open
  9907. });
  9908. }
  9909. function MapProps(props) {
  9910. const {
  9911. idPrefix,
  9912. element,
  9913. parameter
  9914. } = props;
  9915. const bpmnFactory = useService('bpmnFactory');
  9916. const commandStack = useService('commandStack');
  9917. const translate = useService('translate');
  9918. const map = parameter.get('definition');
  9919. const entries = map.get('entries');
  9920. function addEntry() {
  9921. const entry = createElement('camunda:Entry', {}, parameter, bpmnFactory);
  9922. commandStack.execute('element.updateModdleProperties', {
  9923. element,
  9924. moddleElement: map,
  9925. properties: {
  9926. entries: [...map.get('entries'), entry]
  9927. }
  9928. });
  9929. }
  9930. function removeEntry(entry) {
  9931. commandStack.execute('element.updateModdleProperties', {
  9932. element,
  9933. moddleElement: map,
  9934. properties: {
  9935. entries: without(map.get('entries'), entry)
  9936. }
  9937. });
  9938. }
  9939. function compareFn(entry, anotherEntry) {
  9940. const [key = '', anotherKey = ''] = [entry.key, anotherEntry.key];
  9941. return key === anotherKey ? 0 : key > anotherKey ? 1 : -1;
  9942. }
  9943. return ListEntry({
  9944. element,
  9945. autoFocusEntry: true,
  9946. compareFn,
  9947. id: idPrefix + '-map',
  9948. items: entries,
  9949. label: translate('Map entries'),
  9950. onAdd: addEntry,
  9951. onRemove: removeEntry,
  9952. component: MapProp
  9953. });
  9954. }
  9955. function MapEntry(props) {
  9956. const {
  9957. element,
  9958. entry,
  9959. idPrefix
  9960. } = props;
  9961. const entries = [{
  9962. id: idPrefix + '-key',
  9963. component: MapKey,
  9964. entry,
  9965. idPrefix,
  9966. element
  9967. }, {
  9968. id: idPrefix + '-value',
  9969. component: MapValue,
  9970. entry,
  9971. idPrefix,
  9972. element
  9973. }];
  9974. return entries;
  9975. }
  9976. function MapKey(props) {
  9977. const {
  9978. element,
  9979. entry,
  9980. idPrefix
  9981. } = props;
  9982. const commandStack = useService('commandStack');
  9983. const translate = useService('translate');
  9984. const debounce = useService('debounceInput');
  9985. const setValue = value => {
  9986. commandStack.execute('element.updateModdleProperties', {
  9987. element,
  9988. moddleElement: entry,
  9989. properties: {
  9990. key: value
  9991. }
  9992. });
  9993. };
  9994. const getValue = () => {
  9995. return entry.get('key');
  9996. };
  9997. return TextFieldEntry({
  9998. element: entry,
  9999. id: idPrefix + '-key',
  10000. label: translate('Key'),
  10001. getValue,
  10002. setValue,
  10003. debounce
  10004. });
  10005. }
  10006. function MapValue(props) {
  10007. const {
  10008. element,
  10009. entry,
  10010. idPrefix
  10011. } = props;
  10012. const commandStack = useService('commandStack');
  10013. const translate = useService('translate');
  10014. const debounce = useService('debounceInput');
  10015. const definition = entry.get('definition');
  10016. const definitionLabels = {
  10017. 'camunda:Map': translate('Map'),
  10018. 'camunda:List': translate('List'),
  10019. 'camunda:Script': translate('Script')
  10020. };
  10021. const setValue = value => {
  10022. commandStack.execute('element.updateModdleProperties', {
  10023. element,
  10024. moddleElement: entry,
  10025. properties: {
  10026. value
  10027. }
  10028. });
  10029. };
  10030. const getValue = () => {
  10031. if (isDefinitionType(definition)) {
  10032. return definitionLabels[definition.$type];
  10033. }
  10034. return entry.get('value');
  10035. };
  10036. return TextFieldEntry({
  10037. element: entry,
  10038. id: idPrefix + '-value',
  10039. label: translate('Value'),
  10040. getValue,
  10041. setValue,
  10042. disabled: isDefinitionType(definition),
  10043. debounce
  10044. });
  10045. }
  10046. // helper ///////////////////
  10047. function isScript(element) {
  10048. return is(element, 'camunda:Script');
  10049. }
  10050. function isList(element) {
  10051. return is(element, 'camunda:List');
  10052. }
  10053. function isMap(element) {
  10054. return is(element, 'camunda:Map');
  10055. }
  10056. function isDefinitionType(element) {
  10057. return isScript(element) || isList(element) || isMap(element);
  10058. }
  10059. const DEFAULT_PROPS$3 = {
  10060. value: undefined,
  10061. definition: undefined
  10062. };
  10063. function InputOutputParameter(props) {
  10064. const {
  10065. idPrefix,
  10066. element,
  10067. parameter
  10068. } = props;
  10069. const inputOutputType = getInputOutputType(parameter);
  10070. let entries = [{
  10071. id: idPrefix + '-name',
  10072. component: Name$2,
  10073. isEdited: isTextFieldEntryEdited,
  10074. idPrefix,
  10075. parameter
  10076. }, {
  10077. id: idPrefix + '-type',
  10078. component: Type$2,
  10079. isEdited: isSelectEntryEdited,
  10080. idPrefix,
  10081. parameter
  10082. }];
  10083. // (1) String or expression
  10084. if (inputOutputType === 'stringOrExpression') {
  10085. entries.push({
  10086. id: idPrefix + '-stringOrExpression',
  10087. component: StringOrExpression,
  10088. isEdited: isTextAreaEntryEdited,
  10089. idPrefix,
  10090. parameter
  10091. });
  10092. // (2) Script
  10093. } else if (inputOutputType === 'script') {
  10094. const script = parameter.get('definition');
  10095. entries = [...entries, ...ScriptProps({
  10096. element,
  10097. prefix: idPrefix + '-',
  10098. script
  10099. })];
  10100. // (3) List
  10101. } else if (inputOutputType === 'list') {
  10102. entries.push({
  10103. id: `${idPrefix}-list`,
  10104. component: ListProps,
  10105. idPrefix,
  10106. parameter
  10107. });
  10108. // (4) Map
  10109. } else if (inputOutputType === 'map') {
  10110. entries.push({
  10111. id: `${idPrefix}-map`,
  10112. component: MapProps,
  10113. idPrefix,
  10114. parameter
  10115. });
  10116. }
  10117. return entries;
  10118. }
  10119. function Name$2(props) {
  10120. const {
  10121. idPrefix,
  10122. element,
  10123. parameter
  10124. } = props;
  10125. const commandStack = useService('commandStack');
  10126. const translate = useService('translate');
  10127. const debounce = useService('debounceInput');
  10128. const setValue = value => {
  10129. commandStack.execute('element.updateModdleProperties', {
  10130. element,
  10131. moddleElement: parameter,
  10132. properties: {
  10133. name: value
  10134. }
  10135. });
  10136. };
  10137. const getValue = parameter => {
  10138. return parameter.get('name');
  10139. };
  10140. return TextFieldEntry({
  10141. element: parameter,
  10142. id: idPrefix + '-name',
  10143. label: translate(isInput(parameter) ? 'Local variable name' : 'Process variable name'),
  10144. getValue,
  10145. setValue,
  10146. debounce
  10147. });
  10148. }
  10149. function Type$2(props) {
  10150. const {
  10151. idPrefix,
  10152. element,
  10153. parameter
  10154. } = props;
  10155. const bpmnFactory = useService('bpmnFactory');
  10156. const commandStack = useService('commandStack');
  10157. const translate = useService('translate');
  10158. const createDefinitionElement = type => {
  10159. return createElement(type, {}, parameter, bpmnFactory);
  10160. };
  10161. const getValue = mapping => {
  10162. return getInputOutputType(mapping);
  10163. };
  10164. const setValue = value => {
  10165. let properties = {
  10166. ...DEFAULT_PROPS$3
  10167. };
  10168. if (value === 'script') {
  10169. properties.definition = createDefinitionElement('camunda:Script');
  10170. } else if (value === 'list') {
  10171. properties.definition = createDefinitionElement('camunda:List');
  10172. } else if (value === 'map') {
  10173. properties.definition = createDefinitionElement('camunda:Map');
  10174. }
  10175. commandStack.execute('element.updateModdleProperties', {
  10176. element,
  10177. moddleElement: parameter,
  10178. properties
  10179. });
  10180. };
  10181. const getOptions = () => {
  10182. const options = [{
  10183. label: translate('List'),
  10184. value: 'list'
  10185. }, {
  10186. label: translate('Map'),
  10187. value: 'map'
  10188. }, {
  10189. label: translate('Script'),
  10190. value: 'script'
  10191. }, {
  10192. label: translate('String or expression'),
  10193. value: 'stringOrExpression'
  10194. }];
  10195. return options;
  10196. };
  10197. return SelectEntry({
  10198. element: parameter,
  10199. id: idPrefix + '-type',
  10200. label: translate('Assignment type'),
  10201. getValue,
  10202. setValue,
  10203. getOptions
  10204. });
  10205. }
  10206. function StringOrExpression(props) {
  10207. const {
  10208. idPrefix,
  10209. element,
  10210. parameter
  10211. } = props;
  10212. const commandStack = useService('commandStack');
  10213. const translate = useService('translate');
  10214. const debounce = useService('debounceInput');
  10215. const setValue = value => {
  10216. commandStack.execute('element.updateModdleProperties', {
  10217. element,
  10218. moddleElement: parameter,
  10219. properties: {
  10220. value
  10221. }
  10222. });
  10223. };
  10224. const getValue = parameter => {
  10225. return parameter.get('value');
  10226. };
  10227. return TextAreaEntry({
  10228. element: parameter,
  10229. id: idPrefix + '-stringOrExpression',
  10230. label: translate('Value'),
  10231. description: translate('Start typing "${}" to create an expression.'),
  10232. getValue,
  10233. setValue,
  10234. rows: 1,
  10235. debounce
  10236. });
  10237. }
  10238. // helper /////////////////////
  10239. function isInput(parameter) {
  10240. return is(parameter, 'camunda:InputParameter');
  10241. }
  10242. /**
  10243. * Check whether an element is camunda:ServiceTaskLike
  10244. *
  10245. * @param {djs.model.Base} element
  10246. *
  10247. * @return {boolean} a boolean value
  10248. */
  10249. function isServiceTaskLike(element) {
  10250. return is(element, 'camunda:ServiceTaskLike');
  10251. }
  10252. /**
  10253. * Returns 'true' if the given element is 'camunda:DmnCapable'
  10254. *
  10255. * @param {djs.model.Base} element
  10256. *
  10257. * @return {boolean} a boolean value
  10258. */
  10259. function isDmnCapable(element) {
  10260. return is(element, 'camunda:DmnCapable');
  10261. }
  10262. /**
  10263. * Returns 'true' if the given element is 'camunda:ExternalCapable'
  10264. *
  10265. * @param {djs.model.Base} element
  10266. *
  10267. * @return {boolean} a boolean value
  10268. */
  10269. function isExternalCapable(element) {
  10270. return is(element, 'camunda:ExternalCapable');
  10271. }
  10272. /**
  10273. * getServiceTaskLikeBusinessObject - Get a 'camunda:ServiceTaskLike' business object.
  10274. *
  10275. * If the given element is not a 'camunda:ServiceTaskLike', then 'false'
  10276. * is returned.
  10277. *
  10278. * @param {djs.model.Base} element
  10279. * @return {ModdleElement} the 'camunda:ServiceTaskLike' business object
  10280. */
  10281. function getServiceTaskLikeBusinessObject(element) {
  10282. if (is(element, 'bpmn:IntermediateThrowEvent') || is(element, 'bpmn:EndEvent')) {
  10283. // change business object to 'messageEventDefinition' when
  10284. // the element is a message intermediate throw event or message end event
  10285. // because the camunda extensions (e.g. camunda:class) are in the message
  10286. // event definition tag and not in the intermediate throw event or end event tag
  10287. const messageEventDefinition = getMessageEventDefinition(element);
  10288. if (messageEventDefinition) {
  10289. element = messageEventDefinition;
  10290. }
  10291. }
  10292. return isServiceTaskLike(element) && getBusinessObject(element);
  10293. }
  10294. /**
  10295. * Returns the implementation type of the given element.
  10296. *
  10297. * Possible implementation types are:
  10298. * - dmn
  10299. * - connector
  10300. * - external
  10301. * - class
  10302. * - expression
  10303. * - delegateExpression
  10304. * - script
  10305. * - or undefined, when no matching implementation type is found
  10306. *
  10307. * @param {djs.model.Base} element
  10308. *
  10309. * @return {String} the implementation type
  10310. */
  10311. function getImplementationType(element) {
  10312. const businessObject = getListenerBusinessObject(element) || getServiceTaskLikeBusinessObject(element);
  10313. if (!businessObject) {
  10314. return;
  10315. }
  10316. if (isDmnCapable(businessObject)) {
  10317. const decisionRef = businessObject.get('camunda:decisionRef');
  10318. if (typeof decisionRef !== 'undefined') {
  10319. return 'dmn';
  10320. }
  10321. }
  10322. if (isServiceTaskLike(businessObject)) {
  10323. const connectors = getExtensionElementsList(businessObject, 'camunda:Connector');
  10324. if (connectors.length) {
  10325. return 'connector';
  10326. }
  10327. }
  10328. if (isExternalCapable(businessObject)) {
  10329. const type = businessObject.get('camunda:type');
  10330. if (type === 'external') {
  10331. return 'external';
  10332. }
  10333. }
  10334. const cls = businessObject.get('camunda:class');
  10335. if (typeof cls !== 'undefined') {
  10336. return 'class';
  10337. }
  10338. const expression = businessObject.get('camunda:expression');
  10339. if (typeof expression !== 'undefined') {
  10340. return 'expression';
  10341. }
  10342. const delegateExpression = businessObject.get('camunda:delegateExpression');
  10343. if (typeof delegateExpression !== 'undefined') {
  10344. return 'delegateExpression';
  10345. }
  10346. const script = businessObject.get('script');
  10347. if (typeof script !== 'undefined') {
  10348. return 'script';
  10349. }
  10350. }
  10351. function getListenerBusinessObject(businessObject) {
  10352. if (isAny(businessObject, ['camunda:ExecutionListener', 'camunda:TaskListener'])) {
  10353. return businessObject;
  10354. }
  10355. }
  10356. function areConnectorsSupported(element) {
  10357. const businessObject = getServiceTaskLikeBusinessObject(element);
  10358. return businessObject && getImplementationType(businessObject) === 'connector';
  10359. }
  10360. function getConnectors$2(businessObject) {
  10361. return getExtensionElementsList(businessObject, 'camunda:Connector');
  10362. }
  10363. function getConnector$1(element) {
  10364. const businessObject = getServiceTaskLikeBusinessObject(element);
  10365. const connectors = getConnectors$2(businessObject);
  10366. return connectors[0];
  10367. }
  10368. function ConnectorInputProps(props) {
  10369. const {
  10370. element,
  10371. injector
  10372. } = props;
  10373. if (!areConnectorsSupported(element)) {
  10374. return null;
  10375. }
  10376. const connector = getConnector$1(element);
  10377. const commandStack = injector.get('commandStack'),
  10378. bpmnFactory = injector.get('bpmnFactory');
  10379. const inputParameters = getInputParameters(connector) || [];
  10380. const items = inputParameters.map((parameter, index) => {
  10381. const id = element.id + '-connector-inputParameter-' + index;
  10382. return {
  10383. id,
  10384. label: parameter.get('name') || '',
  10385. entries: InputOutputParameter({
  10386. element,
  10387. idPrefix: id,
  10388. parameter
  10389. }),
  10390. autoFocusEntry: id + '-name',
  10391. remove: removeFactory$8({
  10392. connector,
  10393. element,
  10394. parameter,
  10395. commandStack
  10396. })
  10397. };
  10398. });
  10399. function add(event) {
  10400. event.stopPropagation();
  10401. const commands = [];
  10402. // (1) ensure inputOutput
  10403. let inputOutput = getInputOutput(connector);
  10404. if (!inputOutput) {
  10405. inputOutput = createElement('camunda:InputOutput', {
  10406. inputParameters: [],
  10407. outputParameters: []
  10408. }, connector, bpmnFactory);
  10409. commands.push({
  10410. cmd: 'element.updateModdleProperties',
  10411. context: {
  10412. element: element,
  10413. moddleElement: connector,
  10414. properties: {
  10415. inputOutput
  10416. }
  10417. }
  10418. });
  10419. }
  10420. // (2) create + add parameter
  10421. commands.push(CreateParameterCmd(element, 'camunda:InputParameter', inputOutput, bpmnFactory));
  10422. // (3) commit all updates
  10423. commandStack.execute('properties-panel.multi-command-executor', commands);
  10424. }
  10425. return {
  10426. items,
  10427. add
  10428. };
  10429. }
  10430. function removeFactory$8(props) {
  10431. const {
  10432. commandStack,
  10433. connector,
  10434. element,
  10435. parameter
  10436. } = props;
  10437. return function (event) {
  10438. event.stopPropagation();
  10439. const inputOutput = getInputOutput(connector);
  10440. if (!inputOutput) {
  10441. return;
  10442. }
  10443. commandStack.execute('element.updateModdleProperties', {
  10444. element: element,
  10445. moddleElement: inputOutput,
  10446. properties: {
  10447. inputParameters: without(inputOutput.get('inputParameters'), parameter)
  10448. }
  10449. });
  10450. };
  10451. }
  10452. function ConnectorOutputProps(props) {
  10453. const {
  10454. element,
  10455. injector
  10456. } = props;
  10457. if (!areConnectorsSupported(element)) {
  10458. return null;
  10459. }
  10460. const connector = getConnector$1(element);
  10461. const commandStack = injector.get('commandStack'),
  10462. bpmnFactory = injector.get('bpmnFactory');
  10463. const outputParameters = getOutputParameters(connector) || [];
  10464. const items = outputParameters.map((parameter, index) => {
  10465. const id = element.id + '-connector-outputParameter-' + index;
  10466. return {
  10467. id,
  10468. label: parameter.get('name') || '',
  10469. entries: InputOutputParameter({
  10470. idPrefix: id,
  10471. element,
  10472. parameter
  10473. }),
  10474. autoFocusEntry: id + '-name',
  10475. remove: removeFactory$7({
  10476. connector,
  10477. element,
  10478. commandStack,
  10479. parameter
  10480. })
  10481. };
  10482. });
  10483. function add(event) {
  10484. event.stopPropagation();
  10485. const commands = [];
  10486. // (1) ensure inputOutput
  10487. let inputOutput = getInputOutput(connector);
  10488. if (!inputOutput) {
  10489. inputOutput = createElement('camunda:InputOutput', {
  10490. inputParameters: [],
  10491. outputParameters: []
  10492. }, connector, bpmnFactory);
  10493. commands.push({
  10494. cmd: 'element.updateModdleProperties',
  10495. context: {
  10496. element: element,
  10497. moddleElement: connector,
  10498. properties: {
  10499. inputOutput
  10500. }
  10501. }
  10502. });
  10503. }
  10504. // (2) create + add parameter
  10505. commands.push(CreateParameterCmd(element, 'camunda:OutputParameter', inputOutput, bpmnFactory));
  10506. // (3) commit all updates
  10507. commandStack.execute('properties-panel.multi-command-executor', commands);
  10508. }
  10509. return {
  10510. items,
  10511. add
  10512. };
  10513. }
  10514. function removeFactory$7(props) {
  10515. const {
  10516. commandStack,
  10517. connector,
  10518. element,
  10519. parameter
  10520. } = props;
  10521. return function (event) {
  10522. event.stopPropagation();
  10523. const inputOutput = getInputOutput(connector);
  10524. if (!inputOutput) {
  10525. return;
  10526. }
  10527. commandStack.execute('element.updateModdleProperties', {
  10528. element: element,
  10529. moddleElement: inputOutput,
  10530. properties: {
  10531. outputParameters: without(inputOutput.get('outputParameters'), parameter)
  10532. }
  10533. });
  10534. };
  10535. }
  10536. function ErrorProps(props) {
  10537. const {
  10538. element,
  10539. entries
  10540. } = props;
  10541. if (!isErrorSupported(element)) {
  10542. return entries;
  10543. }
  10544. const error = getError(element);
  10545. // (1) errorMessage (error)
  10546. if (error) {
  10547. const idx = findPlaceToInsert(entries, 'errorCode');
  10548. // place below errorCode
  10549. entries.splice(idx, 0, {
  10550. id: 'errorMessage',
  10551. component: ErrorMessage$1,
  10552. isEdited: isTextFieldEntryEdited
  10553. });
  10554. }
  10555. if (!canHaveErrorVariables(element)) {
  10556. return entries;
  10557. }
  10558. // (2) errorCodeVariable + errorMessageVariable (errorEventDefinition)
  10559. entries.push({
  10560. id: 'errorCodeVariable',
  10561. component: ErrorCodeVariable,
  10562. isEdited: isTextFieldEntryEdited
  10563. }, {
  10564. id: 'errorMessageVariable',
  10565. component: ErrorMessageVariable,
  10566. isEdited: isTextFieldEntryEdited
  10567. });
  10568. return entries;
  10569. }
  10570. function ErrorMessage$1(props) {
  10571. const {
  10572. element
  10573. } = props;
  10574. const commandStack = useService('commandStack');
  10575. const translate = useService('translate');
  10576. const debounce = useService('debounceInput');
  10577. const error = getError(element);
  10578. const getValue = () => {
  10579. return error.get('camunda:errorMessage');
  10580. };
  10581. const setValue = value => {
  10582. return commandStack.execute('element.updateModdleProperties', {
  10583. element,
  10584. moddleElement: error,
  10585. properties: {
  10586. 'camunda:errorMessage': value
  10587. }
  10588. });
  10589. };
  10590. return TextFieldEntry({
  10591. element,
  10592. id: 'errorMessage',
  10593. label: translate('Message'),
  10594. getValue,
  10595. setValue,
  10596. debounce
  10597. });
  10598. }
  10599. function ErrorCodeVariable(props) {
  10600. const {
  10601. element
  10602. } = props;
  10603. const commandStack = useService('commandStack');
  10604. const translate = useService('translate');
  10605. const debounce = useService('debounceInput');
  10606. const errorEventDefinition = getErrorEventDefinition(element);
  10607. const getValue = () => {
  10608. return errorEventDefinition.get('camunda:errorCodeVariable');
  10609. };
  10610. const setValue = value => {
  10611. return commandStack.execute('element.updateModdleProperties', {
  10612. element,
  10613. moddleElement: errorEventDefinition,
  10614. properties: {
  10615. 'camunda:errorCodeVariable': value
  10616. }
  10617. });
  10618. };
  10619. return TextFieldEntry({
  10620. element,
  10621. id: 'errorCodeVariable',
  10622. label: translate('Code variable'),
  10623. description: translate('Define the name of the variable that will contain the error code.'),
  10624. getValue,
  10625. setValue,
  10626. debounce
  10627. });
  10628. }
  10629. function ErrorMessageVariable(props) {
  10630. const {
  10631. element
  10632. } = props;
  10633. const commandStack = useService('commandStack');
  10634. const translate = useService('translate');
  10635. const debounce = useService('debounceInput');
  10636. const errorEventDefinition = getErrorEventDefinition(element);
  10637. const getValue = () => {
  10638. return errorEventDefinition.get('camunda:errorMessageVariable');
  10639. };
  10640. const setValue = value => {
  10641. return commandStack.execute('element.updateModdleProperties', {
  10642. element,
  10643. moddleElement: errorEventDefinition,
  10644. properties: {
  10645. 'camunda:errorMessageVariable': value
  10646. }
  10647. });
  10648. };
  10649. return TextFieldEntry({
  10650. element,
  10651. id: 'errorMessageVariable',
  10652. label: translate('Message variable'),
  10653. description: translate('Define the name of the variable that will contain the error message.'),
  10654. getValue,
  10655. setValue,
  10656. debounce
  10657. });
  10658. }
  10659. // helper ///////////////////////
  10660. function canHaveErrorVariables(element) {
  10661. return is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');
  10662. }
  10663. function findPlaceToInsert(entries, idx) {
  10664. const entryIndex = findIndex(entries, entry => entry.id === idx);
  10665. return entryIndex >= 0 ? entryIndex + 1 : entries.length;
  10666. }
  10667. const EMPTY_OPTION = '';
  10668. const CREATE_NEW_OPTION = 'create-new';
  10669. function Error$1(props) {
  10670. const {
  10671. idPrefix,
  10672. errorEventDefinition
  10673. } = props;
  10674. let entries = [{
  10675. id: idPrefix + '-errorRef',
  10676. component: ErrorRef,
  10677. isEdited: isSelectEntryEdited,
  10678. errorEventDefinition,
  10679. idPrefix
  10680. }];
  10681. const error = errorEventDefinition.get('errorRef');
  10682. if (error) {
  10683. entries = [...entries, {
  10684. id: idPrefix + '-errorName',
  10685. component: ErrorName,
  10686. isEdited: isTextFieldEntryEdited,
  10687. error,
  10688. errorEventDefinition,
  10689. idPrefix
  10690. }, {
  10691. id: idPrefix + '-errorCode',
  10692. component: ErrorCode,
  10693. isEdited: isTextFieldEntryEdited,
  10694. error,
  10695. errorEventDefinition,
  10696. idPrefix
  10697. }, {
  10698. id: idPrefix + '-errorMessage',
  10699. component: ErrorMessage,
  10700. isEdited: isTextFieldEntryEdited,
  10701. error,
  10702. errorEventDefinition,
  10703. idPrefix
  10704. }];
  10705. }
  10706. entries.push({
  10707. id: idPrefix + '-expression',
  10708. component: Expression$1,
  10709. errorEventDefinition,
  10710. idPrefix
  10711. });
  10712. return entries;
  10713. }
  10714. function ErrorRef(props) {
  10715. const {
  10716. element,
  10717. errorEventDefinition,
  10718. idPrefix
  10719. } = props;
  10720. const bpmnFactory = useService('bpmnFactory');
  10721. const commandStack = useService('commandStack');
  10722. const translate = useService('translate');
  10723. const businessObject = getBusinessObject(element);
  10724. const getValue = () => {
  10725. const error = errorEventDefinition.get('errorRef');
  10726. if (error) {
  10727. return error.get('id');
  10728. }
  10729. return EMPTY_OPTION;
  10730. };
  10731. const setValue = value => {
  10732. const root = getRoot(businessObject);
  10733. const commands = [];
  10734. let error;
  10735. // (1) create new error
  10736. if (value === CREATE_NEW_OPTION) {
  10737. error = createElement('bpmn:Error', {
  10738. name: nextId('Error_')
  10739. }, root, bpmnFactory);
  10740. value = error.get('id');
  10741. commands.push({
  10742. cmd: 'element.updateModdleProperties',
  10743. context: {
  10744. element,
  10745. moddleElement: root,
  10746. properties: {
  10747. rootElements: [...root.get('rootElements'), error]
  10748. }
  10749. }
  10750. });
  10751. }
  10752. // (2) update (or remove) errorRef
  10753. error = error || findRootElementById(businessObject, 'bpmn:Error', value);
  10754. commands.push({
  10755. cmd: 'element.updateModdleProperties',
  10756. context: {
  10757. element,
  10758. moddleElement: errorEventDefinition,
  10759. properties: {
  10760. errorRef: error
  10761. }
  10762. }
  10763. });
  10764. // (3) commit all updates
  10765. return commandStack.execute('properties-panel.multi-command-executor', commands);
  10766. };
  10767. const getOptions = () => {
  10768. let options = [{
  10769. value: EMPTY_OPTION,
  10770. label: translate('<none>')
  10771. }, {
  10772. value: CREATE_NEW_OPTION,
  10773. label: translate('Create new ...')
  10774. }];
  10775. const errors = findRootElementsByType(getBusinessObject(element), 'bpmn:Error');
  10776. sortByName$1(errors).forEach(error => {
  10777. options.push({
  10778. value: error.get('id'),
  10779. label: error.get('name') || error.get('id')
  10780. });
  10781. });
  10782. return options;
  10783. };
  10784. return ReferenceSelectEntry({
  10785. element,
  10786. id: idPrefix + '-errorRef',
  10787. label: translate('Global error reference'),
  10788. autoFocusEntry: idPrefix + '-errorName',
  10789. getValue,
  10790. setValue,
  10791. getOptions
  10792. });
  10793. }
  10794. function ErrorName(props) {
  10795. const {
  10796. element,
  10797. error,
  10798. idPrefix
  10799. } = props;
  10800. const commandStack = useService('commandStack');
  10801. const translate = useService('translate');
  10802. const debounce = useService('debounceInput');
  10803. const getValue = () => {
  10804. return error.get('name');
  10805. };
  10806. const setValue = value => {
  10807. return commandStack.execute('element.updateModdleProperties', {
  10808. element,
  10809. moddleElement: error,
  10810. properties: {
  10811. name: value
  10812. }
  10813. });
  10814. };
  10815. return TextFieldEntry({
  10816. element,
  10817. id: idPrefix + '-errorName',
  10818. label: translate('Name'),
  10819. getValue,
  10820. setValue,
  10821. debounce
  10822. });
  10823. }
  10824. function ErrorCode(props) {
  10825. const {
  10826. element,
  10827. error,
  10828. idPrefix
  10829. } = props;
  10830. const commandStack = useService('commandStack');
  10831. const translate = useService('translate');
  10832. const debounce = useService('debounceInput');
  10833. const getValue = () => {
  10834. return error.get('errorCode');
  10835. };
  10836. const setValue = value => {
  10837. return commandStack.execute('element.updateModdleProperties', {
  10838. element,
  10839. moddleElement: error,
  10840. properties: {
  10841. errorCode: value
  10842. }
  10843. });
  10844. };
  10845. return TextFieldEntry({
  10846. element,
  10847. id: idPrefix + '-errorCode',
  10848. label: translate('Code'),
  10849. getValue,
  10850. setValue,
  10851. debounce
  10852. });
  10853. }
  10854. function ErrorMessage(props) {
  10855. const {
  10856. element,
  10857. error,
  10858. idPrefix
  10859. } = props;
  10860. const commandStack = useService('commandStack');
  10861. const translate = useService('translate');
  10862. const debounce = useService('debounceInput');
  10863. const getValue = () => {
  10864. return error.get('errorMessage');
  10865. };
  10866. const setValue = value => {
  10867. return commandStack.execute('element.updateModdleProperties', {
  10868. element,
  10869. moddleElement: error,
  10870. properties: {
  10871. errorMessage: value
  10872. }
  10873. });
  10874. };
  10875. return TextFieldEntry({
  10876. element,
  10877. id: idPrefix + '-errorMessage',
  10878. label: translate('Message'),
  10879. getValue,
  10880. setValue,
  10881. debounce
  10882. });
  10883. }
  10884. function Expression$1(props) {
  10885. const {
  10886. element,
  10887. errorEventDefinition,
  10888. idPrefix
  10889. } = props;
  10890. const commandStack = useService('commandStack');
  10891. const translate = useService('translate');
  10892. const debounce = useService('debounceInput');
  10893. const setValue = value => {
  10894. commandStack.execute('element.updateModdleProperties', {
  10895. element,
  10896. moddleElement: errorEventDefinition,
  10897. properties: {
  10898. 'camunda:expression': value
  10899. }
  10900. });
  10901. };
  10902. const getValue = () => {
  10903. return errorEventDefinition.get('camunda:expression');
  10904. };
  10905. return TextFieldEntry({
  10906. element: errorEventDefinition,
  10907. id: idPrefix + '-expression',
  10908. label: translate('Throw expression'),
  10909. getValue,
  10910. setValue,
  10911. debounce
  10912. });
  10913. }
  10914. // helpers //////////
  10915. function sortByName$1(elements) {
  10916. return sortBy(elements, e => (e.name || '').toLowerCase());
  10917. }
  10918. function ErrorsProps({
  10919. element,
  10920. injector
  10921. }) {
  10922. const businessObject = getBusinessObject(element);
  10923. if (!is(element, 'bpmn:ServiceTask') || getImplementationType(element) !== 'external') {
  10924. return null;
  10925. }
  10926. const errorEventDefinitions = getExtensionElementsList(businessObject, 'camunda:ErrorEventDefinition');
  10927. const bpmnFactory = injector.get('bpmnFactory'),
  10928. commandStack = injector.get('commandStack');
  10929. const items = errorEventDefinitions.map((errorEventDefinition, index) => {
  10930. const id = element.id + '-error-' + index;
  10931. return {
  10932. id,
  10933. label: getErrorLabel(errorEventDefinition),
  10934. entries: Error$1({
  10935. idPrefix: id,
  10936. element,
  10937. errorEventDefinition
  10938. }),
  10939. autoFocusEntry: id + '-errorRef',
  10940. remove: removeFactory$6({
  10941. commandStack,
  10942. element,
  10943. errorEventDefinition
  10944. })
  10945. };
  10946. });
  10947. return {
  10948. items,
  10949. add: addFactory$5({
  10950. bpmnFactory,
  10951. commandStack,
  10952. element
  10953. }),
  10954. shouldSort: false
  10955. };
  10956. }
  10957. function removeFactory$6({
  10958. commandStack,
  10959. element,
  10960. errorEventDefinition
  10961. }) {
  10962. return function (event) {
  10963. event.stopPropagation();
  10964. const businessObject = getBusinessObject(element);
  10965. removeExtensionElements(element, businessObject, errorEventDefinition, commandStack);
  10966. };
  10967. }
  10968. function addFactory$5({
  10969. bpmnFactory,
  10970. commandStack,
  10971. element
  10972. }) {
  10973. return function (event) {
  10974. event.stopPropagation();
  10975. const businessObject = getBusinessObject(element);
  10976. const error = createElement('camunda:ErrorEventDefinition', {}, undefined, bpmnFactory);
  10977. addExtensionElements(element, businessObject, error, bpmnFactory, commandStack);
  10978. };
  10979. }
  10980. // helpers //////////
  10981. function getErrorLabel(errorEventDefinition) {
  10982. const error = errorEventDefinition.get('errorRef');
  10983. if (!error) {
  10984. return '<no reference>';
  10985. }
  10986. const errorCode = error.get('errorCode'),
  10987. name = error.get('name') || '<unnamed>';
  10988. if (errorCode) {
  10989. return `${name} (code = ${errorCode})`;
  10990. }
  10991. return name;
  10992. }
  10993. /**
  10994. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  10995. */
  10996. /**
  10997. * @returns {Array<Entry>} entries
  10998. */
  10999. function EscalationProps(props) {
  11000. const {
  11001. element,
  11002. entries
  11003. } = props;
  11004. if (!(isEscalationSupported(element) && canHaveEscalationVariables(element))) {
  11005. return entries;
  11006. }
  11007. entries.push({
  11008. id: 'escalationCodeVariable',
  11009. component: EscalationCodeVariable,
  11010. isEdited: isTextFieldEntryEdited
  11011. });
  11012. return entries;
  11013. }
  11014. function EscalationCodeVariable(props) {
  11015. const {
  11016. element
  11017. } = props;
  11018. const commandStack = useService('commandStack');
  11019. const translate = useService('translate');
  11020. const debounce = useService('debounceInput');
  11021. const escalationEventDefinition = getEscalationEventDefinition(element);
  11022. const getValue = () => {
  11023. return escalationEventDefinition.get('camunda:escalationCodeVariable');
  11024. };
  11025. const setValue = value => {
  11026. return commandStack.execute('element.updateModdleProperties', {
  11027. element,
  11028. moddleElement: escalationEventDefinition,
  11029. properties: {
  11030. 'camunda:escalationCodeVariable': value
  11031. }
  11032. });
  11033. };
  11034. return TextFieldEntry({
  11035. element,
  11036. id: 'escalationCodeVariable',
  11037. label: translate('Code variable'),
  11038. description: translate('Define the name of the variable that will contain the escalation code.'),
  11039. getValue,
  11040. setValue,
  11041. debounce
  11042. });
  11043. }
  11044. // helper ///////////////////////
  11045. function canHaveEscalationVariables(element) {
  11046. return is(element, 'bpmn:StartEvent') || is(element, 'bpmn:BoundaryEvent');
  11047. }
  11048. function ExternalTaskPriorityProps(props) {
  11049. const {
  11050. element
  11051. } = props;
  11052. const businessObject = getBusinessObject(element);
  11053. if (!is(element, 'bpmn:Process') && !(is(element, 'bpmn:Participant') && businessObject.get('processRef')) && !isExternalTaskLike(element)) {
  11054. return [];
  11055. }
  11056. return [{
  11057. id: 'externalTaskPriority',
  11058. component: ExternalTaskPriority,
  11059. isEdited: isTextFieldEntryEdited
  11060. }];
  11061. }
  11062. function ExternalTaskPriority(props) {
  11063. const {
  11064. element
  11065. } = props;
  11066. const commandStack = useService('commandStack'),
  11067. translate = useService('translate'),
  11068. debounce = useService('debounceInput');
  11069. let businessObject;
  11070. if (is(element, 'bpmn:Participant')) {
  11071. businessObject = getBusinessObject(element).get('processRef');
  11072. } else if (isExternalTaskLike(element)) {
  11073. businessObject = getServiceTaskLikeBusinessObject(element);
  11074. } else {
  11075. businessObject = getBusinessObject(element);
  11076. }
  11077. const getValue = () => {
  11078. return businessObject.get('camunda:taskPriority');
  11079. };
  11080. const setValue = value => {
  11081. commandStack.execute('element.updateModdleProperties', {
  11082. element,
  11083. moddleElement: businessObject,
  11084. properties: {
  11085. 'camunda:taskPriority': value
  11086. }
  11087. });
  11088. };
  11089. return TextFieldEntry({
  11090. element,
  11091. id: 'externalTaskPriority',
  11092. label: translate('Priority'),
  11093. getValue,
  11094. setValue,
  11095. debounce
  11096. });
  11097. }
  11098. // helper //////////////////
  11099. function isExternalTaskLike(element) {
  11100. const bo = getServiceTaskLikeBusinessObject(element),
  11101. type = bo && bo.get('camunda:type');
  11102. return is(bo, 'camunda:ServiceTaskLike') && type && type === 'external';
  11103. }
  11104. const DEFAULT_PROPS$2 = {
  11105. 'stringValue': undefined,
  11106. 'string': undefined,
  11107. 'expression': undefined
  11108. };
  11109. function FieldInjection(props) {
  11110. const {
  11111. element,
  11112. idPrefix,
  11113. field
  11114. } = props;
  11115. const entries = [{
  11116. id: idPrefix + '-name',
  11117. component: NameProperty,
  11118. field,
  11119. idPrefix,
  11120. element
  11121. }, {
  11122. id: idPrefix + '-type',
  11123. component: TypeProperty,
  11124. field,
  11125. idPrefix,
  11126. element
  11127. }, {
  11128. id: idPrefix + '-value',
  11129. component: ValueProperty,
  11130. field,
  11131. idPrefix,
  11132. element
  11133. }];
  11134. return entries;
  11135. }
  11136. function NameProperty(props) {
  11137. const {
  11138. idPrefix,
  11139. element,
  11140. field
  11141. } = props;
  11142. const commandStack = useService('commandStack'),
  11143. translate = useService('translate'),
  11144. debounce = useService('debounceInput');
  11145. const setValue = value => {
  11146. commandStack.execute('element.updateModdleProperties', {
  11147. element,
  11148. moddleElement: field,
  11149. properties: {
  11150. name: value
  11151. }
  11152. });
  11153. };
  11154. const getValue = field => {
  11155. return field.name;
  11156. };
  11157. return TextFieldEntry({
  11158. element: field,
  11159. id: idPrefix + '-name',
  11160. label: translate('Name'),
  11161. getValue,
  11162. setValue,
  11163. debounce
  11164. });
  11165. }
  11166. function TypeProperty(props) {
  11167. const {
  11168. idPrefix,
  11169. element,
  11170. field
  11171. } = props;
  11172. const commandStack = useService('commandStack'),
  11173. translate = useService('translate');
  11174. const getValue = field => {
  11175. return determineType(field);
  11176. };
  11177. const setValue = value => {
  11178. const properties = Object.assign({}, DEFAULT_PROPS$2);
  11179. properties[value] = '';
  11180. commandStack.execute('element.updateModdleProperties', {
  11181. element,
  11182. moddleElement: field,
  11183. properties
  11184. });
  11185. };
  11186. const getOptions = element => {
  11187. const options = [{
  11188. value: 'string',
  11189. label: translate('String')
  11190. }, {
  11191. value: 'expression',
  11192. label: translate('Expression')
  11193. }];
  11194. return options;
  11195. };
  11196. return SelectEntry({
  11197. element: field,
  11198. id: idPrefix + '-type',
  11199. label: translate('Type'),
  11200. getValue,
  11201. setValue,
  11202. getOptions
  11203. });
  11204. }
  11205. function ValueProperty(props) {
  11206. const {
  11207. idPrefix,
  11208. element,
  11209. field
  11210. } = props;
  11211. const commandStack = useService('commandStack');
  11212. const translate = useService('translate');
  11213. const debounce = useService('debounceInput');
  11214. const setValue = value => {
  11215. // (1) determine which type we have set
  11216. const type = determineType(field);
  11217. // (2) set property accordingly
  11218. const properties = Object.assign({}, DEFAULT_PROPS$2);
  11219. properties[type] = value || '';
  11220. // (3) execute the update command
  11221. commandStack.execute('element.updateModdleProperties', {
  11222. element,
  11223. moddleElement: field,
  11224. properties
  11225. });
  11226. };
  11227. const getValue = field => {
  11228. return field.string || field.stringValue || field.expression;
  11229. };
  11230. return TextFieldEntry({
  11231. element: field,
  11232. id: idPrefix + '-value',
  11233. label: translate('Value'),
  11234. getValue,
  11235. setValue,
  11236. debounce
  11237. });
  11238. }
  11239. // helper ///////////////////
  11240. /**
  11241. * determineType - get the type of a fieldInjection based on the attributes
  11242. * set on it
  11243. *
  11244. * @param {ModdleElement} field
  11245. * @return {('string'|'expression')}
  11246. */
  11247. function determineType(field) {
  11248. // string is the default type
  11249. return 'string' in field && 'string' || 'expression' in field && 'expression' || 'stringValue' in field && 'string' || 'string';
  11250. }
  11251. function FieldInjectionProps({
  11252. element,
  11253. injector
  11254. }) {
  11255. const businessObject = getServiceTaskLikeBusinessObject(element);
  11256. if (!businessObject) {
  11257. return null;
  11258. }
  11259. const fieldInjections = getExtensionElementsList(businessObject, 'camunda:Field');
  11260. const bpmnFactory = injector.get('bpmnFactory'),
  11261. commandStack = injector.get('commandStack');
  11262. const items = fieldInjections.map((field, index) => {
  11263. const id = element.id + '-fieldInjection-' + index;
  11264. return {
  11265. id,
  11266. label: getFieldLabel(field),
  11267. entries: FieldInjection({
  11268. idPrefix: id,
  11269. element,
  11270. field
  11271. }),
  11272. autoFocusEntry: id + '-name',
  11273. remove: removeFactory$5({
  11274. commandStack,
  11275. element,
  11276. field
  11277. })
  11278. };
  11279. });
  11280. return {
  11281. items,
  11282. add: addFactory$4({
  11283. bpmnFactory,
  11284. commandStack,
  11285. element
  11286. })
  11287. };
  11288. }
  11289. function removeFactory$5({
  11290. commandStack,
  11291. element,
  11292. field
  11293. }) {
  11294. return function (event) {
  11295. event.stopPropagation();
  11296. const businessObject = getServiceTaskLikeBusinessObject(element);
  11297. removeExtensionElements(element, businessObject, field, commandStack);
  11298. };
  11299. }
  11300. function addFactory$4({
  11301. bpmnFactory,
  11302. commandStack,
  11303. element
  11304. }) {
  11305. return function (event) {
  11306. event.stopPropagation();
  11307. const businessObject = getServiceTaskLikeBusinessObject(element);
  11308. const fieldInjection = createElement('camunda:Field', {
  11309. name: undefined,
  11310. string: '',
  11311. // string is the default type
  11312. stringValue: undefined
  11313. }, null, bpmnFactory);
  11314. addExtensionElements(element, businessObject, fieldInjection, bpmnFactory, commandStack);
  11315. };
  11316. }
  11317. // helper ///////////////
  11318. function getFieldLabel(field) {
  11319. return field.name || '<empty>';
  11320. }
  11321. function FormFieldConstraint(props) {
  11322. const {
  11323. constraint,
  11324. element,
  11325. idPrefix
  11326. } = props;
  11327. const entries = [{
  11328. id: idPrefix + '-name',
  11329. component: Name$1,
  11330. constraint,
  11331. idPrefix,
  11332. element
  11333. }, {
  11334. id: idPrefix + '-config',
  11335. component: Config,
  11336. constraint,
  11337. idPrefix,
  11338. element
  11339. }];
  11340. return entries;
  11341. }
  11342. function Name$1(props) {
  11343. const {
  11344. idPrefix,
  11345. element,
  11346. constraint
  11347. } = props;
  11348. const commandStack = useService('commandStack'),
  11349. translate = useService('translate'),
  11350. debounce = useService('debounceInput');
  11351. const setValue = value => {
  11352. commandStack.execute('element.updateModdleProperties', {
  11353. element,
  11354. moddleElement: constraint,
  11355. properties: {
  11356. name: value
  11357. }
  11358. });
  11359. };
  11360. const getValue = () => {
  11361. return constraint.name;
  11362. };
  11363. return TextFieldEntry({
  11364. element: constraint,
  11365. id: idPrefix + '-name',
  11366. label: translate('Name'),
  11367. getValue,
  11368. setValue,
  11369. debounce
  11370. });
  11371. }
  11372. function Config(props) {
  11373. const {
  11374. idPrefix,
  11375. element,
  11376. constraint
  11377. } = props;
  11378. const commandStack = useService('commandStack'),
  11379. translate = useService('translate'),
  11380. debounce = useService('debounceInput');
  11381. const setValue = value => {
  11382. commandStack.execute('element.updateModdleProperties', {
  11383. element,
  11384. moddleElement: constraint,
  11385. properties: {
  11386. config: value
  11387. }
  11388. });
  11389. };
  11390. const getValue = () => {
  11391. return constraint.config;
  11392. };
  11393. return TextFieldEntry({
  11394. element: constraint,
  11395. id: idPrefix + '-config',
  11396. label: translate('Config'),
  11397. getValue,
  11398. setValue,
  11399. debounce
  11400. });
  11401. }
  11402. function FormFieldProperty(props) {
  11403. const {
  11404. element,
  11405. idPrefix,
  11406. property
  11407. } = props;
  11408. const entries = [{
  11409. id: idPrefix + '-id',
  11410. component: Id$2,
  11411. idPrefix,
  11412. property,
  11413. element
  11414. }, {
  11415. id: idPrefix + '-value',
  11416. component: Value$1,
  11417. idPrefix,
  11418. property,
  11419. element
  11420. }];
  11421. return entries;
  11422. }
  11423. function Id$2(props) {
  11424. const {
  11425. idPrefix,
  11426. element,
  11427. property
  11428. } = props;
  11429. const commandStack = useService('commandStack'),
  11430. translate = useService('translate'),
  11431. debounce = useService('debounceInput');
  11432. const setValue = value => {
  11433. commandStack.execute('element.updateModdleProperties', {
  11434. element,
  11435. moddleElement: property,
  11436. properties: {
  11437. id: value
  11438. }
  11439. });
  11440. };
  11441. const getValue = () => {
  11442. return property.id;
  11443. };
  11444. return TextFieldEntry({
  11445. element: property,
  11446. id: idPrefix + '-id',
  11447. label: translate('ID'),
  11448. getValue,
  11449. setValue,
  11450. debounce
  11451. });
  11452. }
  11453. function Value$1(props) {
  11454. const {
  11455. idPrefix,
  11456. element,
  11457. property
  11458. } = props;
  11459. const commandStack = useService('commandStack'),
  11460. translate = useService('translate'),
  11461. debounce = useService('debounceInput');
  11462. const setValue = value => {
  11463. commandStack.execute('element.updateModdleProperties', {
  11464. element,
  11465. moddleElement: property,
  11466. properties: {
  11467. value
  11468. }
  11469. });
  11470. };
  11471. const getValue = () => {
  11472. return property.value;
  11473. };
  11474. return TextFieldEntry({
  11475. element: property,
  11476. id: idPrefix + '-value',
  11477. label: translate('Value'),
  11478. getValue,
  11479. setValue,
  11480. debounce
  11481. });
  11482. }
  11483. function FormFieldValue(props) {
  11484. const {
  11485. element,
  11486. idPrefix,
  11487. value
  11488. } = props;
  11489. const entries = [{
  11490. id: idPrefix + '-id',
  11491. component: Id$1,
  11492. idPrefix,
  11493. value,
  11494. element
  11495. }, {
  11496. id: idPrefix + '-name',
  11497. component: Name,
  11498. idPrefix,
  11499. value,
  11500. element
  11501. }];
  11502. return entries;
  11503. }
  11504. function Id$1(props) {
  11505. const {
  11506. idPrefix,
  11507. element,
  11508. value
  11509. } = props;
  11510. const commandStack = useService('commandStack'),
  11511. translate = useService('translate'),
  11512. debounce = useService('debounceInput');
  11513. const setValue = val => {
  11514. commandStack.execute('element.updateModdleProperties', {
  11515. element,
  11516. moddleElement: value,
  11517. properties: {
  11518. id: val
  11519. }
  11520. });
  11521. };
  11522. const getValue = () => {
  11523. return value.id;
  11524. };
  11525. return TextFieldEntry({
  11526. element: value,
  11527. id: idPrefix + '-id',
  11528. label: translate('ID'),
  11529. getValue,
  11530. setValue,
  11531. debounce
  11532. });
  11533. }
  11534. function Name(props) {
  11535. const {
  11536. idPrefix,
  11537. element,
  11538. value
  11539. } = props;
  11540. const commandStack = useService('commandStack'),
  11541. translate = useService('translate'),
  11542. debounce = useService('debounceInput');
  11543. const setValue = val => {
  11544. commandStack.execute('element.updateModdleProperties', {
  11545. element,
  11546. moddleElement: value,
  11547. properties: {
  11548. name: val
  11549. }
  11550. });
  11551. };
  11552. const getValue = () => {
  11553. return value.name;
  11554. };
  11555. return TextFieldEntry({
  11556. element: value,
  11557. id: idPrefix + '-name',
  11558. label: translate('Name'),
  11559. getValue,
  11560. setValue,
  11561. debounce
  11562. });
  11563. }
  11564. const CUSTOM_TYPE_VALUE = '',
  11565. DEFINED_TYPE_VALUES = ['boolean', 'date', 'enum', 'long', 'string', undefined];
  11566. function FormField(props) {
  11567. const {
  11568. idPrefix,
  11569. formField
  11570. } = props;
  11571. const entries = [{
  11572. id: idPrefix + '-formFieldID',
  11573. component: Id,
  11574. idPrefix,
  11575. formField
  11576. }, {
  11577. id: idPrefix + '-formFieldLabel',
  11578. component: Label,
  11579. idPrefix,
  11580. formField
  11581. }, {
  11582. id: idPrefix + '-formFieldType',
  11583. component: Type$1,
  11584. idPrefix,
  11585. formField
  11586. }];
  11587. if (!DEFINED_TYPE_VALUES.includes(formField.get('type'))) {
  11588. entries.push({
  11589. id: idPrefix + '-formFieldCustomType',
  11590. component: CustomType,
  11591. idPrefix,
  11592. formField
  11593. });
  11594. }
  11595. entries.push({
  11596. id: idPrefix + '-formFieldDefaultValue',
  11597. component: DefaultValue,
  11598. idPrefix,
  11599. formField
  11600. });
  11601. if (formField.get('type') === 'enum') {
  11602. entries.push({
  11603. id: idPrefix + '-formFieldValues',
  11604. component: ValueList,
  11605. formField,
  11606. idPrefix
  11607. });
  11608. }
  11609. entries.push({
  11610. id: idPrefix + '-formFieldConstraints',
  11611. component: ConstraintList,
  11612. formField,
  11613. idPrefix
  11614. }, {
  11615. id: idPrefix + '-formFieldProperties',
  11616. component: PropertiesList,
  11617. formField,
  11618. idPrefix
  11619. });
  11620. return entries;
  11621. }
  11622. function Id(props) {
  11623. const {
  11624. idPrefix,
  11625. element,
  11626. formField
  11627. } = props;
  11628. const commandStack = useService('commandStack');
  11629. const translate = useService('translate');
  11630. const debounce = useService('debounceInput');
  11631. const setValue = value => {
  11632. commandStack.execute('element.updateModdleProperties', {
  11633. element,
  11634. moddleElement: formField,
  11635. properties: {
  11636. id: value
  11637. }
  11638. });
  11639. };
  11640. const getValue = () => {
  11641. return formField.get('id');
  11642. };
  11643. return TextFieldEntry({
  11644. element: formField,
  11645. id: idPrefix + '-formFieldID',
  11646. label: translate('ID'),
  11647. description: translate('Refers to the process variable name'),
  11648. getValue,
  11649. setValue,
  11650. debounce
  11651. });
  11652. }
  11653. function Label(props) {
  11654. const {
  11655. idPrefix,
  11656. element,
  11657. formField
  11658. } = props;
  11659. const commandStack = useService('commandStack');
  11660. const translate = useService('translate');
  11661. const debounce = useService('debounceInput');
  11662. const setValue = value => {
  11663. commandStack.execute('element.updateModdleProperties', {
  11664. element,
  11665. moddleElement: formField,
  11666. properties: {
  11667. label: value
  11668. }
  11669. });
  11670. };
  11671. const getValue = () => {
  11672. return formField.get('label');
  11673. };
  11674. return TextFieldEntry({
  11675. element: formField,
  11676. id: idPrefix + '-formFieldLabel',
  11677. label: translate('Label'),
  11678. getValue,
  11679. setValue,
  11680. debounce
  11681. });
  11682. }
  11683. function Type$1(props) {
  11684. const {
  11685. idPrefix,
  11686. element,
  11687. formField
  11688. } = props;
  11689. const commandStack = useService('commandStack');
  11690. const translate = useService('translate');
  11691. const setValue = value => {
  11692. commandStack.execute('element.updateModdleProperties', {
  11693. element,
  11694. moddleElement: formField,
  11695. properties: {
  11696. type: value
  11697. }
  11698. });
  11699. };
  11700. const getValue = () => {
  11701. const type = formField.get('type');
  11702. return DEFINED_TYPE_VALUES.includes(type) ? type : CUSTOM_TYPE_VALUE;
  11703. };
  11704. const getOptions = () => {
  11705. const options = [{
  11706. label: translate('boolean'),
  11707. value: 'boolean'
  11708. }, {
  11709. label: translate('date'),
  11710. value: 'date'
  11711. }, {
  11712. label: translate('enum'),
  11713. value: 'enum'
  11714. }, {
  11715. label: translate('long'),
  11716. value: 'long'
  11717. }, {
  11718. label: translate('string'),
  11719. value: 'string'
  11720. }, {
  11721. label: translate('<custom type>'),
  11722. value: CUSTOM_TYPE_VALUE
  11723. }];
  11724. // for the initial state only, we want to show an empty state
  11725. if (formField.get('type') === undefined) {
  11726. options.unshift({
  11727. label: translate('<none>'),
  11728. value: ''
  11729. });
  11730. }
  11731. return options;
  11732. };
  11733. return SelectEntry({
  11734. element: formField,
  11735. id: idPrefix + '-formFieldType',
  11736. label: translate('Type'),
  11737. getValue,
  11738. setValue,
  11739. getOptions
  11740. });
  11741. }
  11742. function CustomType(props) {
  11743. const {
  11744. idPrefix,
  11745. element,
  11746. formField
  11747. } = props;
  11748. const commandStack = useService('commandStack');
  11749. const translate = useService('translate');
  11750. const debounce = useService('debounceInput');
  11751. const setValue = value => {
  11752. const type = value || '';
  11753. commandStack.execute('element.updateModdleProperties', {
  11754. element,
  11755. moddleElement: formField,
  11756. properties: {
  11757. type
  11758. }
  11759. });
  11760. };
  11761. const getValue = () => {
  11762. return formField.get('type');
  11763. };
  11764. return TextFieldEntry({
  11765. element: formField,
  11766. id: idPrefix + '-formFieldCustomType',
  11767. label: translate('Custom type'),
  11768. getValue,
  11769. setValue,
  11770. debounce
  11771. });
  11772. }
  11773. function DefaultValue(props) {
  11774. const {
  11775. idPrefix,
  11776. element,
  11777. formField
  11778. } = props;
  11779. const commandStack = useService('commandStack');
  11780. const translate = useService('translate');
  11781. const debounce = useService('debounceInput');
  11782. const setValue = value => {
  11783. commandStack.execute('element.updateModdleProperties', {
  11784. element,
  11785. moddleElement: formField,
  11786. properties: {
  11787. defaultValue: value
  11788. }
  11789. });
  11790. };
  11791. const getValue = () => {
  11792. return formField.get('defaultValue');
  11793. };
  11794. return TextFieldEntry({
  11795. element: formField,
  11796. id: idPrefix + '-formFieldDefaultValue',
  11797. label: translate('Default value'),
  11798. getValue,
  11799. setValue,
  11800. debounce
  11801. });
  11802. }
  11803. function Value(props) {
  11804. const {
  11805. element,
  11806. id: idPrefix,
  11807. index,
  11808. item: value,
  11809. open
  11810. } = props;
  11811. const translate = useService('translate');
  11812. const id = `${idPrefix}-value-${index}`;
  11813. return jsx(CollapsibleEntry, {
  11814. id: id,
  11815. element: element,
  11816. entries: FormFieldValue({
  11817. idPrefix: id,
  11818. element,
  11819. value
  11820. }),
  11821. label: value.get('id') || translate('<empty>'),
  11822. open: open
  11823. });
  11824. }
  11825. function ValueList(props) {
  11826. const {
  11827. element,
  11828. formField,
  11829. idPrefix
  11830. } = props;
  11831. const id = `${idPrefix}-formFieldValues`;
  11832. const bpmnFactory = useService('bpmnFactory');
  11833. const commandStack = useService('commandStack');
  11834. const translate = useService('translate');
  11835. const values = formField.get('values') || [];
  11836. function addValue() {
  11837. const value = createElement('camunda:Value', {
  11838. id: undefined,
  11839. name: undefined
  11840. }, formField, bpmnFactory);
  11841. commandStack.execute('element.updateModdleProperties', {
  11842. element: element,
  11843. moddleElement: formField,
  11844. properties: {
  11845. values: [...formField.get('values'), value]
  11846. }
  11847. });
  11848. }
  11849. function removeValue(value) {
  11850. commandStack.execute('element.updateModdleProperties', {
  11851. element: element,
  11852. moddleElement: formField,
  11853. properties: {
  11854. values: without(formField.get('values'), value)
  11855. }
  11856. });
  11857. }
  11858. return jsx(ListEntry, {
  11859. element: element,
  11860. autoFocusEntry: `[data-entry-id="${id}-value-${values.length - 1}"] input`,
  11861. id: id,
  11862. label: translate('Values'),
  11863. items: values,
  11864. component: Value,
  11865. onAdd: addValue,
  11866. onRemove: removeValue
  11867. });
  11868. }
  11869. function Constraint(props) {
  11870. const {
  11871. element,
  11872. id: idPrefix,
  11873. index,
  11874. item: constraint,
  11875. open
  11876. } = props;
  11877. const translate = useService('translate');
  11878. const id = `${idPrefix}-constraint-${index}`;
  11879. return jsx(CollapsibleEntry, {
  11880. id: id,
  11881. element: element,
  11882. entries: FormFieldConstraint({
  11883. constraint,
  11884. element,
  11885. idPrefix: id
  11886. }),
  11887. label: constraint.get('name') || translate('<empty>'),
  11888. open: open
  11889. });
  11890. }
  11891. function ConstraintList(props) {
  11892. const {
  11893. element,
  11894. formField,
  11895. idPrefix
  11896. } = props;
  11897. const id = `${idPrefix}-formFieldConstraints`;
  11898. const bpmnFactory = useService('bpmnFactory');
  11899. const commandStack = useService('commandStack');
  11900. const translate = useService('translate');
  11901. const businessObject = getBusinessObject(element);
  11902. let validation = formField.get('validation');
  11903. const constraints = validation && validation.get('constraints') || [];
  11904. function addConstraint() {
  11905. const commands = [];
  11906. // (1) ensure validation
  11907. if (!validation) {
  11908. validation = createElement('camunda:Validation', {}, businessObject, bpmnFactory);
  11909. commands.push({
  11910. cmd: 'element.updateModdleProperties',
  11911. context: {
  11912. element,
  11913. moddleElement: formField,
  11914. properties: {
  11915. validation
  11916. }
  11917. }
  11918. });
  11919. }
  11920. // (2) add constraint
  11921. const constraint = createElement('camunda:Constraint', {
  11922. name: undefined,
  11923. config: undefined
  11924. }, validation, bpmnFactory);
  11925. commands.push({
  11926. cmd: 'element.updateModdleProperties',
  11927. context: {
  11928. element,
  11929. moddleElement: validation,
  11930. properties: {
  11931. constraints: [...validation.get('constraints'), constraint]
  11932. }
  11933. }
  11934. });
  11935. // (3) commit updates
  11936. commandStack.execute('properties-panel.multi-command-executor', commands);
  11937. }
  11938. function removeConstraint(constraint) {
  11939. commandStack.execute('element.updateModdleProperties', {
  11940. element,
  11941. moddleElement: validation,
  11942. properties: {
  11943. constraints: without(validation.get('constraints'), constraint)
  11944. }
  11945. });
  11946. }
  11947. return jsx(ListEntry, {
  11948. element: element,
  11949. autoFocusEntry: `[data-entry-id="${id}-constraint-${constraints.length - 1}"] input`,
  11950. id: id,
  11951. label: translate('Constraints'),
  11952. items: constraints,
  11953. component: Constraint,
  11954. onAdd: addConstraint,
  11955. onRemove: removeConstraint
  11956. });
  11957. }
  11958. function Property(props) {
  11959. const {
  11960. element,
  11961. id: idPrefix,
  11962. index,
  11963. item: property,
  11964. open
  11965. } = props;
  11966. const translate = useService('translate');
  11967. const id = `${idPrefix}-property-${index}`;
  11968. return jsx(CollapsibleEntry, {
  11969. id: id,
  11970. element: element,
  11971. entries: FormFieldProperty({
  11972. element,
  11973. idPrefix: id,
  11974. property
  11975. }),
  11976. label: property.get('id') || translate('<empty>'),
  11977. open: open
  11978. });
  11979. }
  11980. function PropertiesList(props) {
  11981. const {
  11982. element,
  11983. formField,
  11984. idPrefix
  11985. } = props;
  11986. const id = `${idPrefix}-formFieldProperties`;
  11987. const bpmnFactory = useService('bpmnFactory');
  11988. const commandStack = useService('commandStack');
  11989. const translate = useService('translate');
  11990. const businessObject = getBusinessObject(element);
  11991. let properties = formField.get('properties');
  11992. const propertyEntries = properties && properties.get('values') || [];
  11993. function addProperty() {
  11994. const commands = [];
  11995. // (1) ensure properties
  11996. if (!properties) {
  11997. properties = createElement('camunda:Properties', {}, businessObject, bpmnFactory);
  11998. commands.push({
  11999. cmd: 'element.updateModdleProperties',
  12000. context: {
  12001. element,
  12002. moddleElement: formField,
  12003. properties: {
  12004. properties
  12005. }
  12006. }
  12007. });
  12008. }
  12009. // (2) add property
  12010. const property = createElement('camunda:Property', {
  12011. id: undefined,
  12012. value: undefined
  12013. }, properties, bpmnFactory);
  12014. commands.push({
  12015. cmd: 'element.updateModdleProperties',
  12016. context: {
  12017. element,
  12018. moddleElement: properties,
  12019. properties: {
  12020. values: [...properties.get('values'), property]
  12021. }
  12022. }
  12023. });
  12024. // (3) commit updates
  12025. commandStack.execute('properties-panel.multi-command-executor', commands);
  12026. }
  12027. function removeProperty(property) {
  12028. commandStack.execute('element.updateModdleProperties', {
  12029. element,
  12030. moddleElement: properties,
  12031. properties: {
  12032. values: without(properties.get('values'), property)
  12033. }
  12034. });
  12035. }
  12036. return jsx(ListEntry, {
  12037. element: element,
  12038. autoFocusEntry: true,
  12039. id: id,
  12040. compareFn: createAlphanumericCompare('id'),
  12041. label: translate('Properties'),
  12042. items: propertyEntries,
  12043. component: Property,
  12044. onAdd: addProperty,
  12045. onRemove: removeProperty
  12046. });
  12047. }
  12048. // helper //////////////////
  12049. function createAlphanumericCompare(field) {
  12050. return function (entry, anotherEntry) {
  12051. const [key = '', anotherKey = ''] = [entry[field], anotherEntry[field]];
  12052. return key === anotherKey ? 0 : key > anotherKey ? 1 : -1;
  12053. };
  12054. }
  12055. function FormDataProps({
  12056. element,
  12057. injector
  12058. }) {
  12059. if (!isFormDataSupported(element)) {
  12060. return;
  12061. }
  12062. const formFields = getFormFieldsList(element) || [];
  12063. const bpmnFactory = injector.get('bpmnFactory'),
  12064. commandStack = injector.get('commandStack');
  12065. const items = formFields.map((formField, index) => {
  12066. const id = element.id + '-formField-' + index;
  12067. return {
  12068. id,
  12069. label: formField.get('id') || '',
  12070. entries: FormField({
  12071. idPrefix: id,
  12072. element,
  12073. formField
  12074. }),
  12075. autoFocusEntry: id + '-formFieldID',
  12076. remove: removeFactory$4({
  12077. commandStack,
  12078. element,
  12079. formField
  12080. })
  12081. };
  12082. });
  12083. return {
  12084. items,
  12085. add: addFactory$3({
  12086. bpmnFactory,
  12087. commandStack,
  12088. element
  12089. }),
  12090. shouldSort: false
  12091. };
  12092. }
  12093. function addFactory$3({
  12094. bpmnFactory,
  12095. commandStack,
  12096. element
  12097. }) {
  12098. return function (event) {
  12099. event.stopPropagation();
  12100. const commands = [];
  12101. // (1) get camunda:FormData
  12102. const formData = getFormData$1(element);
  12103. // (2) create camunda:FormField
  12104. const formField = createElement('camunda:FormField', {}, formData, bpmnFactory);
  12105. // (3) add formField to list
  12106. commands.push({
  12107. cmd: 'element.updateModdleProperties',
  12108. context: {
  12109. element,
  12110. moddleElement: formData,
  12111. properties: {
  12112. fields: [...formData.get('fields'), formField]
  12113. }
  12114. }
  12115. });
  12116. // (4) commit all updates
  12117. commandStack.execute('properties-panel.multi-command-executor', commands);
  12118. };
  12119. }
  12120. function removeFactory$4({
  12121. commandStack,
  12122. element,
  12123. formField
  12124. }) {
  12125. return function (event) {
  12126. event.stopPropagation();
  12127. const formData = getFormData$1(element),
  12128. formFields = getFormFieldsList(element);
  12129. if (!formFields || !formFields.length) {
  12130. return;
  12131. }
  12132. const fields = without(formData.get('fields'), formField);
  12133. // update formData
  12134. commandStack.execute('element.updateModdleProperties', {
  12135. element,
  12136. moddleElement: formData,
  12137. properties: {
  12138. fields
  12139. }
  12140. });
  12141. };
  12142. }
  12143. // helper ///////////////////////////////
  12144. function isFormDataSupported(element) {
  12145. const formData = getFormData$1(element);
  12146. return (is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess') || is(element, 'bpmn:UserTask')) && formData;
  12147. }
  12148. function getFormData$1(element) {
  12149. const bo = getBusinessObject(element);
  12150. return getExtensionElementsList(bo, 'camunda:FormData')[0];
  12151. }
  12152. function getFormFieldsList(element) {
  12153. const businessObject = getBusinessObject(element);
  12154. const formData = getFormData$1(businessObject);
  12155. return formData && formData.fields;
  12156. }
  12157. const FORM_KEY_PROPS = {
  12158. 'camunda:formRef': undefined,
  12159. 'camunda:formRefBinding': undefined,
  12160. 'camunda:formRefVersion': undefined
  12161. };
  12162. const FORM_REF_PROPS = {
  12163. 'camunda:formKey': undefined
  12164. };
  12165. function FormTypeProps(props) {
  12166. return [{
  12167. id: 'formType',
  12168. component: FormType,
  12169. isEdited: isSelectEntryEdited
  12170. }];
  12171. }
  12172. function FormType(props) {
  12173. const {
  12174. element
  12175. } = props;
  12176. const translate = useService('translate');
  12177. const bpmnFactory = useService('bpmnFactory');
  12178. const businessObject = getBusinessObject(element);
  12179. const commandStack = useService('commandStack');
  12180. let extensionElements = businessObject.get('extensionElements');
  12181. const getValue = () => {
  12182. if (isDefined(businessObject.get('camunda:formKey'))) {
  12183. return 'formKey';
  12184. } else if (isDefined(businessObject.get('camunda:formRef'))) {
  12185. return 'formRef';
  12186. } else if (getFormData(element)) {
  12187. return 'formData';
  12188. }
  12189. return '';
  12190. };
  12191. const setValue = value => {
  12192. const commands = removePropertiesCommands(element);
  12193. if (value === 'formData') {
  12194. // (1) ensure extension elements
  12195. if (!extensionElements) {
  12196. extensionElements = createElement('bpmn:ExtensionElements', {
  12197. values: []
  12198. }, businessObject, bpmnFactory);
  12199. commands.push({
  12200. cmd: 'element.updateModdleProperties',
  12201. context: {
  12202. element,
  12203. moddleElement: businessObject,
  12204. properties: {
  12205. extensionElements
  12206. }
  12207. }
  12208. });
  12209. }
  12210. // (2) create camunda:FormData
  12211. const parent = extensionElements;
  12212. const formData = createElement('camunda:FormData', {
  12213. fields: []
  12214. }, parent, bpmnFactory);
  12215. commands.push({
  12216. cmd: 'element.updateModdleProperties',
  12217. context: {
  12218. element,
  12219. moddleElement: extensionElements,
  12220. properties: {
  12221. values: [...extensionElements.get('values'), formData]
  12222. }
  12223. }
  12224. });
  12225. } else if (value === 'formKey') {
  12226. commands.push({
  12227. cmd: 'element.updateModdleProperties',
  12228. context: {
  12229. element,
  12230. moddleElement: businessObject,
  12231. properties: {
  12232. 'camunda:formKey': ''
  12233. }
  12234. }
  12235. });
  12236. } else if (value === 'formRef') {
  12237. commands.push({
  12238. cmd: 'element.updateModdleProperties',
  12239. context: {
  12240. element,
  12241. moddleElement: businessObject,
  12242. properties: {
  12243. 'camunda:formRef': ''
  12244. }
  12245. }
  12246. });
  12247. }
  12248. commandStack.execute('properties-panel.multi-command-executor', commands);
  12249. };
  12250. const getOptions = () => {
  12251. return [{
  12252. value: '',
  12253. label: translate('<none>')
  12254. }, {
  12255. value: 'formRef',
  12256. label: translate('Camunda Forms')
  12257. }, {
  12258. value: 'formKey',
  12259. label: translate('Embedded or External Task Forms')
  12260. }, {
  12261. value: 'formData',
  12262. label: translate('Generated Task Forms')
  12263. }];
  12264. };
  12265. return SelectEntry({
  12266. element,
  12267. id: 'formType',
  12268. label: translate('Type'),
  12269. getValue,
  12270. setValue,
  12271. getOptions
  12272. });
  12273. }
  12274. function getFormData(element) {
  12275. const bo = getBusinessObject(element);
  12276. return getExtensionElementsList(bo, 'camunda:FormData')[0];
  12277. }
  12278. function removePropertiesCommands(element, commandStack) {
  12279. const businessObject = getBusinessObject(element);
  12280. const extensionElements = businessObject.get('extensionElements');
  12281. const commands = [];
  12282. // (1) reset formKey and formRef
  12283. commands.push({
  12284. cmd: 'element.updateModdleProperties',
  12285. context: {
  12286. element,
  12287. moddleElement: businessObject,
  12288. properties: {
  12289. ...FORM_KEY_PROPS,
  12290. ...FORM_REF_PROPS
  12291. }
  12292. }
  12293. });
  12294. // (2) remove formData if defined
  12295. if (extensionElements && getFormData(element)) {
  12296. commands.push({
  12297. cmd: 'element.updateModdleProperties',
  12298. context: {
  12299. element,
  12300. moddleElement: extensionElements,
  12301. properties: {
  12302. values: without(extensionElements.get('values'), getFormData(element))
  12303. }
  12304. }
  12305. });
  12306. }
  12307. return commands;
  12308. }
  12309. function getFormRefBinding(element) {
  12310. const businessObject = getBusinessObject(element);
  12311. return businessObject.get('camunda:formRefBinding') || 'latest';
  12312. }
  12313. function getFormType(element) {
  12314. const businessObject = getBusinessObject(element);
  12315. if (isDefined(businessObject.get('camunda:formKey'))) {
  12316. return 'formKey';
  12317. } else if (isDefined(businessObject.get('camunda:formRef'))) {
  12318. return 'formRef';
  12319. }
  12320. }
  12321. function isFormSupported(element) {
  12322. return is(element, 'bpmn:StartEvent') && !is(element.parent, 'bpmn:SubProcess') || is(element, 'bpmn:UserTask');
  12323. }
  12324. function FormProps(props) {
  12325. const {
  12326. element
  12327. } = props;
  12328. if (!isFormSupported(element)) {
  12329. return [];
  12330. }
  12331. const formType = getFormType(element),
  12332. bindingType = getFormRefBinding(element);
  12333. // (1) display form type select
  12334. const entries = [...FormTypeProps()];
  12335. // (2) display form properties based on type
  12336. if (formType === 'formKey') {
  12337. entries.push({
  12338. id: 'formKey',
  12339. component: FormKey,
  12340. isEdited: isTextFieldEntryEdited
  12341. });
  12342. } else if (formType === 'formRef') {
  12343. entries.push({
  12344. id: 'formRef',
  12345. component: FormRef,
  12346. isEdited: isTextFieldEntryEdited
  12347. }, {
  12348. id: 'formRefBinding',
  12349. component: Binding$1,
  12350. isEdited: isSelectEntryEdited
  12351. });
  12352. if (bindingType === 'version') {
  12353. entries.push({
  12354. id: 'formRefVersion',
  12355. component: Version$1,
  12356. isEdited: isTextFieldEntryEdited
  12357. });
  12358. }
  12359. }
  12360. return entries;
  12361. }
  12362. function FormKey(props) {
  12363. const {
  12364. element
  12365. } = props;
  12366. const debounce = useService('debounceInput');
  12367. const modeling = useService('modeling');
  12368. const translate = useService('translate');
  12369. const businessObject = getBusinessObject(element);
  12370. const getValue = () => {
  12371. return businessObject.get('camunda:formKey');
  12372. };
  12373. const setValue = value => {
  12374. modeling.updateProperties(element, {
  12375. 'camunda:formKey': isUndefined(value) ? '' : value
  12376. });
  12377. };
  12378. return TextFieldEntry({
  12379. element,
  12380. id: 'formKey',
  12381. label: translate('Form key'),
  12382. getValue,
  12383. setValue,
  12384. debounce
  12385. });
  12386. }
  12387. function FormRef(props) {
  12388. const {
  12389. element
  12390. } = props;
  12391. const debounce = useService('debounceInput');
  12392. const modeling = useService('modeling');
  12393. const translate = useService('translate');
  12394. const businessObject = getBusinessObject(element);
  12395. const getValue = () => {
  12396. return businessObject.get('camunda:formRef');
  12397. };
  12398. const setValue = value => {
  12399. modeling.updateProperties(element, {
  12400. 'camunda:formRef': isUndefined(value) ? '' : value
  12401. });
  12402. };
  12403. return TextFieldEntry({
  12404. element,
  12405. id: 'formRef',
  12406. label: translate('Form reference'),
  12407. getValue,
  12408. setValue,
  12409. debounce
  12410. });
  12411. }
  12412. function Binding$1(props) {
  12413. const {
  12414. element
  12415. } = props;
  12416. const modeling = useService('modeling');
  12417. const translate = useService('translate');
  12418. const getValue = () => {
  12419. return getFormRefBinding(element);
  12420. };
  12421. const setValue = value => {
  12422. modeling.updateProperties(element, {
  12423. 'camunda:formRefBinding': value
  12424. });
  12425. };
  12426. // Note: default is "latest",
  12427. // cf. https://docs.camunda.org/manual/develop/reference/bpmn20/custom-extensions/extension-attributes/#formrefbinding
  12428. const getOptions = () => {
  12429. const options = [{
  12430. value: 'deployment',
  12431. label: translate('deployment')
  12432. }, {
  12433. value: 'latest',
  12434. label: translate('latest')
  12435. }, {
  12436. value: 'version',
  12437. label: translate('version')
  12438. }];
  12439. return options;
  12440. };
  12441. return SelectEntry({
  12442. element,
  12443. id: 'formRefBinding',
  12444. label: translate('Binding'),
  12445. getValue,
  12446. setValue,
  12447. getOptions
  12448. });
  12449. }
  12450. function Version$1(props) {
  12451. const {
  12452. element
  12453. } = props;
  12454. const debounce = useService('debounceInput');
  12455. const modeling = useService('modeling');
  12456. const translate = useService('translate');
  12457. const businessObject = getBusinessObject(element);
  12458. const getValue = () => {
  12459. return businessObject.get('camunda:formRefVersion');
  12460. };
  12461. const setValue = value => {
  12462. modeling.updateProperties(element, {
  12463. 'camunda:formRefVersion': value
  12464. });
  12465. };
  12466. return TextFieldEntry({
  12467. element,
  12468. id: 'formRefVersion',
  12469. label: translate('Version'),
  12470. getValue,
  12471. setValue,
  12472. debounce
  12473. });
  12474. }
  12475. function HistoryCleanupProps(props) {
  12476. const {
  12477. element
  12478. } = props;
  12479. const businessObject = getBusinessObject(element);
  12480. if (!is(element, 'bpmn:Process') && !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
  12481. return [];
  12482. }
  12483. return [{
  12484. id: 'historyTimeToLive',
  12485. component: HistoryTimeToLive,
  12486. isEdited: isTextFieldEntryEdited
  12487. }];
  12488. }
  12489. function HistoryTimeToLive(props) {
  12490. const {
  12491. element
  12492. } = props;
  12493. const commandStack = useService('commandStack');
  12494. const translate = useService('translate');
  12495. const debounce = useService('debounceInput');
  12496. const process = getProcess$2(element);
  12497. const getValue = () => {
  12498. return process.get('camunda:historyTimeToLive') || '';
  12499. };
  12500. const setValue = value => {
  12501. commandStack.execute('element.updateModdleProperties', {
  12502. element,
  12503. moddleElement: process,
  12504. properties: {
  12505. 'camunda:historyTimeToLive': value
  12506. }
  12507. });
  12508. };
  12509. return TextFieldEntry({
  12510. element,
  12511. id: 'historyTimeToLive',
  12512. label: translate('Time to live'),
  12513. getValue,
  12514. setValue,
  12515. debounce
  12516. });
  12517. }
  12518. // helper //////////////////
  12519. function getProcess$2(element) {
  12520. return is(element, 'bpmn:Process') ? getBusinessObject(element) : getBusinessObject(element).get('processRef');
  12521. }
  12522. function DmnImplementationProps(props) {
  12523. const {
  12524. element
  12525. } = props;
  12526. const entries = [];
  12527. const implementationType = getImplementationType(element);
  12528. const bindingType = getDecisionRefBinding(element);
  12529. if (implementationType !== 'dmn') {
  12530. return entries;
  12531. }
  12532. // (1) decisionRef
  12533. entries.push({
  12534. id: 'decisionRef',
  12535. component: DecisionRef,
  12536. isEdited: isTextFieldEntryEdited
  12537. });
  12538. // (2) binding
  12539. entries.push({
  12540. id: 'decisionRefBinding',
  12541. component: Binding,
  12542. isEdited: isSelectEntryEdited
  12543. });
  12544. // (3) version
  12545. if (bindingType === 'version') {
  12546. entries.push({
  12547. id: 'decisionRefVersion',
  12548. component: Version,
  12549. isEdited: isTextFieldEntryEdited
  12550. });
  12551. }
  12552. // (4) versionTag
  12553. if (bindingType === 'versionTag') {
  12554. entries.push({
  12555. id: 'decisionRefVersionTag',
  12556. component: VersionTag$1,
  12557. isEdited: isTextFieldEntryEdited
  12558. });
  12559. }
  12560. // (5) tenantId
  12561. entries.push({
  12562. id: 'decisionRefTenantId',
  12563. component: TenantId,
  12564. isEdited: isTextFieldEntryEdited
  12565. });
  12566. // (6) resultVariable
  12567. entries.push({
  12568. id: 'decisionRefResultVariable',
  12569. component: ResultVariable$2,
  12570. isEdited: isTextFieldEntryEdited
  12571. });
  12572. // (7) mapDecisionResult
  12573. if (getResultVariable(element)) {
  12574. entries.push({
  12575. id: 'mapDecisionResult',
  12576. component: MapDecisionResult,
  12577. isEdited: isSelectEntryEdited
  12578. });
  12579. }
  12580. return entries;
  12581. }
  12582. function DecisionRef(props) {
  12583. const {
  12584. element
  12585. } = props;
  12586. const commandStack = useService('commandStack');
  12587. const translate = useService('translate');
  12588. const debounce = useService('debounceInput');
  12589. const businessObject = getBusinessObject(element);
  12590. const getValue = () => {
  12591. return businessObject.get('camunda:decisionRef');
  12592. };
  12593. const setValue = value => {
  12594. commandStack.execute('element.updateModdleProperties', {
  12595. element,
  12596. moddleElement: businessObject,
  12597. properties: {
  12598. 'camunda:decisionRef': value || ''
  12599. }
  12600. });
  12601. };
  12602. return TextFieldEntry({
  12603. element,
  12604. id: 'decisionRef',
  12605. label: translate('Decision reference'),
  12606. getValue,
  12607. setValue,
  12608. debounce
  12609. });
  12610. }
  12611. function Binding(props) {
  12612. const {
  12613. element
  12614. } = props;
  12615. const commandStack = useService('commandStack');
  12616. const translate = useService('translate');
  12617. const getValue = () => {
  12618. return getDecisionRefBinding(element);
  12619. };
  12620. const setValue = value => {
  12621. const businessObject = getBusinessObject(element);
  12622. // reset version properties on binding type change
  12623. const updatedProperties = {
  12624. 'camunda:decisionRefVersion': undefined,
  12625. 'camunda:decisionRefVersionTag': undefined,
  12626. 'camunda:decisionRefBinding': value
  12627. };
  12628. commandStack.execute('element.updateModdleProperties', {
  12629. element,
  12630. moddleElement: businessObject,
  12631. properties: updatedProperties
  12632. });
  12633. };
  12634. // Note: default is "latest",
  12635. // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#decisionrefbinding
  12636. const getOptions = () => {
  12637. const options = [{
  12638. value: 'deployment',
  12639. label: translate('deployment')
  12640. }, {
  12641. value: 'latest',
  12642. label: translate('latest')
  12643. }, {
  12644. value: 'version',
  12645. label: translate('version')
  12646. }, {
  12647. value: 'versionTag',
  12648. label: translate('versionTag')
  12649. }];
  12650. return options;
  12651. };
  12652. return SelectEntry({
  12653. element,
  12654. id: 'decisionRefBinding',
  12655. label: translate('Binding'),
  12656. getValue,
  12657. setValue,
  12658. getOptions
  12659. });
  12660. }
  12661. function Version(props) {
  12662. const {
  12663. element
  12664. } = props;
  12665. const commandStack = useService('commandStack');
  12666. const translate = useService('translate');
  12667. const debounce = useService('debounceInput');
  12668. const businessObject = getBusinessObject(element);
  12669. const getValue = () => {
  12670. return businessObject.get('camunda:decisionRefVersion');
  12671. };
  12672. const setValue = value => {
  12673. commandStack.execute('element.updateModdleProperties', {
  12674. element,
  12675. moddleElement: businessObject,
  12676. properties: {
  12677. 'camunda:decisionRefVersion': value
  12678. }
  12679. });
  12680. };
  12681. return TextFieldEntry({
  12682. element,
  12683. id: 'decisionRefVersion',
  12684. label: translate('Version'),
  12685. getValue,
  12686. setValue,
  12687. debounce
  12688. });
  12689. }
  12690. function VersionTag$1(props) {
  12691. const {
  12692. element
  12693. } = props;
  12694. const commandStack = useService('commandStack');
  12695. const translate = useService('translate');
  12696. const debounce = useService('debounceInput');
  12697. const businessObject = getBusinessObject(element);
  12698. const getValue = () => {
  12699. return businessObject.get('camunda:decisionRefVersionTag');
  12700. };
  12701. const setValue = value => {
  12702. commandStack.execute('element.updateModdleProperties', {
  12703. element,
  12704. moddleElement: businessObject,
  12705. properties: {
  12706. 'camunda:decisionRefVersionTag': value
  12707. }
  12708. });
  12709. };
  12710. return TextFieldEntry({
  12711. element,
  12712. id: 'decisionRefVersionTag',
  12713. label: translate('Version tag'),
  12714. getValue,
  12715. setValue,
  12716. debounce
  12717. });
  12718. }
  12719. function TenantId(props) {
  12720. const {
  12721. element
  12722. } = props;
  12723. const commandStack = useService('commandStack');
  12724. const translate = useService('translate');
  12725. const debounce = useService('debounceInput');
  12726. const businessObject = getBusinessObject(element);
  12727. const getValue = () => {
  12728. return businessObject.get('camunda:decisionRefTenantId');
  12729. };
  12730. const setValue = value => {
  12731. commandStack.execute('element.updateModdleProperties', {
  12732. element,
  12733. moddleElement: businessObject,
  12734. properties: {
  12735. 'camunda:decisionRefTenantId': value
  12736. }
  12737. });
  12738. };
  12739. return TextFieldEntry({
  12740. element,
  12741. id: 'decisionRefTenantId',
  12742. label: translate('Tenant ID'),
  12743. getValue,
  12744. setValue,
  12745. debounce
  12746. });
  12747. }
  12748. function ResultVariable$2(props) {
  12749. const {
  12750. element
  12751. } = props;
  12752. const commandStack = useService('commandStack');
  12753. const translate = useService('translate');
  12754. const debounce = useService('debounceInput');
  12755. const businessObject = getBusinessObject(element);
  12756. const getValue = () => {
  12757. return getResultVariable(businessObject);
  12758. };
  12759. // Note: camunda:mapDecisionResult got cleaned up in modeling behavior
  12760. // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/UpdateResultVariableBehavior.js
  12761. const setValue = value => {
  12762. commandStack.execute('element.updateModdleProperties', {
  12763. element,
  12764. moddleElement: businessObject,
  12765. properties: {
  12766. 'camunda:resultVariable': value
  12767. }
  12768. });
  12769. };
  12770. return TextFieldEntry({
  12771. element,
  12772. id: 'decisionRefResultVariable',
  12773. label: translate('Result variable'),
  12774. getValue,
  12775. setValue,
  12776. debounce
  12777. });
  12778. }
  12779. function MapDecisionResult(props) {
  12780. const {
  12781. element
  12782. } = props;
  12783. const commandStack = useService('commandStack');
  12784. const translate = useService('translate');
  12785. const businessObject = getBusinessObject(element);
  12786. const getValue = () => {
  12787. return businessObject.get('camunda:mapDecisionResult') || 'resultList';
  12788. };
  12789. const setValue = value => {
  12790. commandStack.execute('element.updateModdleProperties', {
  12791. element,
  12792. moddleElement: businessObject,
  12793. properties: {
  12794. 'camunda:mapDecisionResult': value
  12795. }
  12796. });
  12797. };
  12798. // Note: default is "resultList",
  12799. // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#mapdecisionresult
  12800. const getOptions = () => {
  12801. const options = [{
  12802. value: 'collectEntries',
  12803. label: translate('collectEntries (List<Object>)')
  12804. }, {
  12805. value: 'resultList',
  12806. label: translate('resultList (List<Map<String, Object>>)')
  12807. }, {
  12808. value: 'singleEntry',
  12809. label: translate('singleEntry (TypedValue)')
  12810. }, {
  12811. value: 'singleResult',
  12812. label: translate('singleResult (Map<String, Object>)')
  12813. }];
  12814. return options;
  12815. };
  12816. return SelectEntry({
  12817. element,
  12818. id: 'mapDecisionResult',
  12819. label: translate('Map decision result'),
  12820. getValue,
  12821. setValue,
  12822. getOptions
  12823. });
  12824. }
  12825. // helper ////////////////////
  12826. function getDecisionRefBinding(element) {
  12827. const businessObject = getBusinessObject(element);
  12828. return businessObject.get('camunda:decisionRefBinding') || 'latest';
  12829. }
  12830. function getResultVariable(element) {
  12831. const businessObject = getBusinessObject(element);
  12832. return businessObject.get('camunda:resultVariable');
  12833. }
  12834. const DELEGATE_PROPS = {
  12835. 'camunda:class': undefined,
  12836. 'camunda:expression': undefined,
  12837. 'camunda:delegateExpression': undefined,
  12838. 'camunda:resultVariable': undefined
  12839. };
  12840. const DMN_CAPABLE_PROPS = {
  12841. 'camunda:decisionRef': undefined,
  12842. 'camunda:decisionRefBinding': 'latest',
  12843. 'camunda:decisionRefVersion': undefined,
  12844. 'camunda:mapDecisionResult': 'resultList',
  12845. 'camunda:decisionRefTenantId': undefined
  12846. };
  12847. const EXTERNAL_CAPABLE_PROPS = {
  12848. 'camunda:type': undefined,
  12849. 'camunda:topic': undefined
  12850. };
  12851. const IMPLEMENTATION_TYPE_NONE_LABEL = '<none>',
  12852. IMPLEMENTATION_TYPE_JAVA_LABEL = 'Java class',
  12853. IMPLEMENTATION_TYPE_EXPRESSION_LABEL = 'Expression',
  12854. IMPLEMENTATION_TYPE_DELEGATE_LABEL = 'Delegate expression',
  12855. IMPLEMENTATION_TYPE_DMN_LABEL = 'DMN',
  12856. IMPLEMENTATION_TYPE_EXTERNAL_LABEL = 'External',
  12857. IMPLEMENTATION_TYPE_CONNECTOR_LABEL = 'Connector';
  12858. function ImplementationTypeProps(props) {
  12859. return [{
  12860. id: 'implementationType',
  12861. component: ImplementationType,
  12862. isEdited: isSelectEntryEdited
  12863. }];
  12864. }
  12865. function ImplementationType(props) {
  12866. const {
  12867. element
  12868. } = props;
  12869. const bpmnFactory = useService('bpmnFactory');
  12870. const commandStack = useService('commandStack');
  12871. const translate = useService('translate');
  12872. const getValue = () => {
  12873. return getImplementationType(element) || '';
  12874. };
  12875. const setValue = value => {
  12876. const oldType = getImplementationType(element);
  12877. const businessObject = getServiceTaskLikeBusinessObject(element);
  12878. const commands = [];
  12879. let updatedProperties = DELEGATE_PROPS;
  12880. let extensionElements = businessObject.get('extensionElements');
  12881. // (1) class, expression, delegateExpression
  12882. if (isDelegateType(value)) {
  12883. updatedProperties = {
  12884. ...updatedProperties,
  12885. [value]: isDelegateType(oldType) ? businessObject.get(`camunda:${oldType}`) : ''
  12886. };
  12887. }
  12888. // (2) dmn
  12889. if (isDmnCapable(businessObject)) {
  12890. updatedProperties = {
  12891. ...updatedProperties,
  12892. ...DMN_CAPABLE_PROPS
  12893. };
  12894. if (value === 'dmn') {
  12895. updatedProperties = {
  12896. ...updatedProperties,
  12897. 'camunda:decisionRef': ''
  12898. };
  12899. }
  12900. }
  12901. // (3) external
  12902. // Note: error event definition elements got cleaned up in modeling behavior
  12903. // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/DeleteErrorEventDefinitionBehavior.js
  12904. if (isExternalCapable(businessObject)) {
  12905. updatedProperties = {
  12906. ...updatedProperties,
  12907. ...EXTERNAL_CAPABLE_PROPS
  12908. };
  12909. if (value === 'external') {
  12910. updatedProperties = {
  12911. ...updatedProperties,
  12912. 'camunda:type': 'external',
  12913. 'camunda:topic': ''
  12914. };
  12915. }
  12916. }
  12917. // (4) connector
  12918. if (isServiceTaskLike(businessObject)) {
  12919. // (4.1) remove all connectors on type change
  12920. const connectors = getConnectors$1(businessObject);
  12921. if (connectors.length) {
  12922. commands.push({
  12923. cmd: 'element.updateModdleProperties',
  12924. context: {
  12925. element,
  12926. moddleElement: extensionElements,
  12927. properties: {
  12928. values: without(extensionElements.get('values'), value => connectors.includes(value))
  12929. }
  12930. }
  12931. });
  12932. }
  12933. // (4.2) create connector
  12934. if (value === 'connector') {
  12935. // ensure extension elements
  12936. if (!extensionElements) {
  12937. extensionElements = createElement('bpmn:ExtensionElements', {
  12938. values: []
  12939. }, businessObject, bpmnFactory);
  12940. commands.push(UpdateModdlePropertiesCommand(element, businessObject, {
  12941. extensionElements
  12942. }));
  12943. }
  12944. const connector = createElement('camunda:Connector', {}, extensionElements, bpmnFactory);
  12945. commands.push({
  12946. cmd: 'element.updateModdleProperties',
  12947. context: {
  12948. element,
  12949. moddleElement: extensionElements,
  12950. properties: {
  12951. values: [...extensionElements.get('values'), connector]
  12952. }
  12953. }
  12954. });
  12955. }
  12956. }
  12957. // (5) collect all property updates
  12958. commands.push(UpdateModdlePropertiesCommand(element, businessObject, updatedProperties));
  12959. // (6) commit all updates
  12960. commandStack.execute('properties-panel.multi-command-executor', commands);
  12961. };
  12962. const getOptions = () => {
  12963. const businessObject = getServiceTaskLikeBusinessObject(element);
  12964. const options = [{
  12965. value: '',
  12966. label: translate(IMPLEMENTATION_TYPE_NONE_LABEL)
  12967. }, {
  12968. value: 'class',
  12969. label: translate(IMPLEMENTATION_TYPE_JAVA_LABEL)
  12970. }, {
  12971. value: 'expression',
  12972. label: translate(IMPLEMENTATION_TYPE_EXPRESSION_LABEL)
  12973. }, {
  12974. value: 'delegateExpression',
  12975. label: translate(IMPLEMENTATION_TYPE_DELEGATE_LABEL)
  12976. }];
  12977. if (isDmnCapable(businessObject)) {
  12978. options.push({
  12979. value: 'dmn',
  12980. label: translate(IMPLEMENTATION_TYPE_DMN_LABEL)
  12981. });
  12982. }
  12983. if (isExternalCapable(businessObject)) {
  12984. options.push({
  12985. value: 'external',
  12986. label: translate(IMPLEMENTATION_TYPE_EXTERNAL_LABEL)
  12987. });
  12988. }
  12989. if (isServiceTaskLike(businessObject)) {
  12990. options.push({
  12991. value: 'connector',
  12992. label: translate(IMPLEMENTATION_TYPE_CONNECTOR_LABEL)
  12993. });
  12994. }
  12995. return sortByPriority(options);
  12996. };
  12997. return SelectEntry({
  12998. element,
  12999. id: 'implementationType',
  13000. label: translate('Type'),
  13001. getValue,
  13002. setValue,
  13003. getOptions
  13004. });
  13005. }
  13006. // helper ///////////////////////
  13007. function isDelegateType(type) {
  13008. return ['class', 'expression', 'delegateExpression'].includes(type);
  13009. }
  13010. function getConnectors$1(businessObject) {
  13011. return getExtensionElementsList(businessObject, 'camunda:Connector');
  13012. }
  13013. function UpdateModdlePropertiesCommand(element, businessObject, newProperties) {
  13014. return {
  13015. cmd: 'element.updateModdleProperties',
  13016. context: {
  13017. element,
  13018. moddleElement: businessObject,
  13019. properties: newProperties
  13020. }
  13021. };
  13022. }
  13023. function sortByPriority(options) {
  13024. const priorities = {
  13025. [IMPLEMENTATION_TYPE_NONE_LABEL]: 0,
  13026. [IMPLEMENTATION_TYPE_JAVA_LABEL]: 3,
  13027. [IMPLEMENTATION_TYPE_EXPRESSION_LABEL]: 4,
  13028. [IMPLEMENTATION_TYPE_DELEGATE_LABEL]: 5,
  13029. [IMPLEMENTATION_TYPE_DMN_LABEL]: 1,
  13030. [IMPLEMENTATION_TYPE_EXTERNAL_LABEL]: 2,
  13031. [IMPLEMENTATION_TYPE_CONNECTOR_LABEL]: 6
  13032. };
  13033. return sortBy(options, o => priorities[o.label]);
  13034. }
  13035. function ImplementationProps(props) {
  13036. const {
  13037. element
  13038. } = props;
  13039. if (!getServiceTaskLikeBusinessObject(element)) {
  13040. return [];
  13041. }
  13042. const implementationType = getImplementationType(element);
  13043. // (1) display implementation type select
  13044. const entries = [...ImplementationTypeProps()];
  13045. // (2) display implementation properties based on type
  13046. if (implementationType === 'class') {
  13047. entries.push({
  13048. id: 'javaClass',
  13049. component: JavaClass,
  13050. isEdited: isTextFieldEntryEdited
  13051. });
  13052. } else if (implementationType === 'expression') {
  13053. entries.push({
  13054. id: 'expression',
  13055. component: Expression,
  13056. isEdited: isTextFieldEntryEdited
  13057. }, {
  13058. id: 'expressionResultVariable',
  13059. component: ResultVariable$1,
  13060. isEdited: isTextFieldEntryEdited
  13061. });
  13062. } else if (implementationType === 'delegateExpression') {
  13063. entries.push({
  13064. id: 'delegateExpression',
  13065. component: DelegateExpression,
  13066. isEdited: isTextFieldEntryEdited
  13067. });
  13068. } else if (implementationType === 'dmn') {
  13069. entries.push(...DmnImplementationProps({
  13070. element
  13071. }));
  13072. } else if (implementationType === 'external') {
  13073. entries.push({
  13074. id: 'externalTopic',
  13075. component: Topic,
  13076. isEdited: isTextFieldEntryEdited
  13077. });
  13078. } else if (implementationType === 'connector') {
  13079. entries.push({
  13080. id: 'connectorId',
  13081. component: ConnectorId,
  13082. isEdited: isTextFieldEntryEdited
  13083. });
  13084. }
  13085. return entries;
  13086. }
  13087. function JavaClass(props) {
  13088. const {
  13089. element,
  13090. businessObject = getServiceTaskLikeBusinessObject(element),
  13091. id = 'javaClass'
  13092. } = props;
  13093. const commandStack = useService('commandStack');
  13094. const translate = useService('translate');
  13095. const debounce = useService('debounceInput');
  13096. const getValue = () => {
  13097. return businessObject.get('camunda:class');
  13098. };
  13099. const setValue = value => {
  13100. commandStack.execute('element.updateModdleProperties', {
  13101. element,
  13102. moddleElement: businessObject,
  13103. properties: {
  13104. 'camunda:class': value || ''
  13105. }
  13106. });
  13107. };
  13108. return TextFieldEntry({
  13109. element,
  13110. id,
  13111. label: translate('Java class'),
  13112. getValue,
  13113. setValue,
  13114. debounce
  13115. });
  13116. }
  13117. function Expression(props) {
  13118. const {
  13119. element,
  13120. businessObject = getServiceTaskLikeBusinessObject(element),
  13121. id = 'expression'
  13122. } = props;
  13123. const commandStack = useService('commandStack');
  13124. const translate = useService('translate');
  13125. const debounce = useService('debounceInput');
  13126. const getValue = () => {
  13127. return businessObject.get('camunda:expression');
  13128. };
  13129. const setValue = value => {
  13130. commandStack.execute('element.updateModdleProperties', {
  13131. element,
  13132. moddleElement: businessObject,
  13133. properties: {
  13134. 'camunda:expression': value || ''
  13135. }
  13136. });
  13137. };
  13138. return TextFieldEntry({
  13139. element,
  13140. id,
  13141. label: translate('Expression'),
  13142. getValue,
  13143. setValue,
  13144. debounce
  13145. });
  13146. }
  13147. function ResultVariable$1(props) {
  13148. const {
  13149. element
  13150. } = props;
  13151. const commandStack = useService('commandStack');
  13152. const translate = useService('translate');
  13153. const debounce = useService('debounceInput');
  13154. const businessObject = getServiceTaskLikeBusinessObject(element);
  13155. const getValue = () => {
  13156. return businessObject.get('camunda:resultVariable');
  13157. };
  13158. const setValue = value => {
  13159. commandStack.execute('element.updateModdleProperties', {
  13160. element,
  13161. moddleElement: businessObject,
  13162. properties: {
  13163. 'camunda:resultVariable': value
  13164. }
  13165. });
  13166. };
  13167. return TextFieldEntry({
  13168. element,
  13169. id: 'expressionResultVariable',
  13170. label: translate('Result variable'),
  13171. getValue,
  13172. setValue,
  13173. debounce
  13174. });
  13175. }
  13176. function DelegateExpression(props) {
  13177. const {
  13178. element,
  13179. businessObject = getServiceTaskLikeBusinessObject(element),
  13180. id = 'delegateExpression'
  13181. } = props;
  13182. const commandStack = useService('commandStack');
  13183. const translate = useService('translate');
  13184. const debounce = useService('debounceInput');
  13185. const getValue = () => {
  13186. return businessObject.get('camunda:delegateExpression');
  13187. };
  13188. const setValue = value => {
  13189. commandStack.execute('element.updateModdleProperties', {
  13190. element,
  13191. moddleElement: businessObject,
  13192. properties: {
  13193. 'camunda:delegateExpression': value || ''
  13194. }
  13195. });
  13196. };
  13197. return TextFieldEntry({
  13198. element,
  13199. id,
  13200. label: translate('Delegate expression'),
  13201. getValue,
  13202. setValue,
  13203. debounce
  13204. });
  13205. }
  13206. function Topic(props) {
  13207. const {
  13208. element
  13209. } = props;
  13210. const commandStack = useService('commandStack');
  13211. const translate = useService('translate');
  13212. const debounce = useService('debounceInput');
  13213. const businessObject = getServiceTaskLikeBusinessObject(element);
  13214. const getValue = () => {
  13215. return businessObject.get('camunda:topic');
  13216. };
  13217. const setValue = value => {
  13218. commandStack.execute('element.updateModdleProperties', {
  13219. element,
  13220. moddleElement: businessObject,
  13221. properties: {
  13222. 'camunda:topic': value
  13223. }
  13224. });
  13225. };
  13226. return TextFieldEntry({
  13227. element,
  13228. id: 'externalTopic',
  13229. label: translate('Topic'),
  13230. getValue,
  13231. setValue,
  13232. debounce
  13233. });
  13234. }
  13235. function ConnectorId(props) {
  13236. const {
  13237. element
  13238. } = props;
  13239. const commandStack = useService('commandStack');
  13240. const translate = useService('translate');
  13241. const debounce = useService('debounceInput');
  13242. const connector = getConnector(element);
  13243. const getValue = () => {
  13244. return connector.get('camunda:connectorId');
  13245. };
  13246. const setValue = value => {
  13247. commandStack.execute('element.updateModdleProperties', {
  13248. element,
  13249. moddleElement: connector,
  13250. properties: {
  13251. 'camunda:connectorId': value
  13252. }
  13253. });
  13254. };
  13255. return TextFieldEntry({
  13256. element,
  13257. id: 'connectorId',
  13258. label: translate('Connector ID'),
  13259. getValue,
  13260. setValue,
  13261. debounce
  13262. });
  13263. }
  13264. // helper //////////////////
  13265. function getConnectors(businessObject) {
  13266. return getExtensionElementsList(businessObject, 'camunda:Connector');
  13267. }
  13268. function getConnector(element) {
  13269. const businessObject = getServiceTaskLikeBusinessObject(element);
  13270. const connectors = getConnectors(businessObject);
  13271. return connectors[0];
  13272. }
  13273. function InitiatorProps(props) {
  13274. const {
  13275. element
  13276. } = props;
  13277. if (!isInitiator(element)) {
  13278. return [];
  13279. }
  13280. return [{
  13281. id: 'initiator',
  13282. component: Initiator,
  13283. isEdited: isTextFieldEntryEdited
  13284. }];
  13285. }
  13286. function Initiator(props) {
  13287. const {
  13288. element
  13289. } = props;
  13290. const commandStack = useService('commandStack');
  13291. const translate = useService('translate');
  13292. const debounce = useService('debounceInput');
  13293. const businessObject = getBusinessObject(element);
  13294. const getValue = () => {
  13295. return businessObject.get('camunda:initiator');
  13296. };
  13297. const setValue = value => {
  13298. commandStack.execute('element.updateModdleProperties', {
  13299. element,
  13300. moddleElement: businessObject,
  13301. properties: {
  13302. 'camunda:initiator': value
  13303. }
  13304. });
  13305. };
  13306. return TextFieldEntry({
  13307. element,
  13308. id: 'initiator',
  13309. label: translate('Initiator'),
  13310. getValue,
  13311. setValue,
  13312. debounce
  13313. });
  13314. }
  13315. // helper ///////////////////
  13316. function isInitiator(element) {
  13317. return is(element, 'camunda:Initiator') && !is(element.parent, 'bpmn:SubProcess');
  13318. }
  13319. /**
  13320. * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables
  13321. */
  13322. function InMappingPropagationProps(props) {
  13323. const {
  13324. element
  13325. } = props;
  13326. if (!areInMappingsSupported$1(element)) {
  13327. return [];
  13328. }
  13329. const entries = [{
  13330. id: 'inMapping-propagation',
  13331. component: PropagateAll$1,
  13332. isEdited: isCheckboxEntryEdited
  13333. }];
  13334. if (isPropagateAll$1(element)) {
  13335. entries.push({
  13336. id: 'inMapping-propagation-local',
  13337. component: Local$2,
  13338. isEdited: isCheckboxEntryEdited
  13339. });
  13340. }
  13341. return entries;
  13342. }
  13343. function PropagateAll$1(props) {
  13344. const {
  13345. element
  13346. } = props;
  13347. const commandStack = useService('commandStack');
  13348. const bpmnFactory = useService('bpmnFactory');
  13349. const translate = useService('translate');
  13350. const getValue = () => {
  13351. return isPropagateAll$1(element);
  13352. };
  13353. const setValue = value => {
  13354. if (value) {
  13355. addInMapping();
  13356. } else {
  13357. removeInMapping();
  13358. }
  13359. };
  13360. function addInMapping() {
  13361. const businessObject = getSignalEventDefinition$1(element) || getBusinessObject(element);
  13362. const mapping = createElement('camunda:In', {
  13363. variables: 'all'
  13364. }, null, bpmnFactory);
  13365. addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);
  13366. }
  13367. function removeInMapping() {
  13368. const businessObject = getSignalEventDefinition$1(element) || getBusinessObject(element);
  13369. const mappings = findRelevantInMappings(element);
  13370. removeExtensionElements(element, businessObject, mappings, commandStack);
  13371. }
  13372. return CheckboxEntry({
  13373. id: 'inMapping-propagation',
  13374. label: translate('Propagate all variables'),
  13375. getValue,
  13376. setValue
  13377. });
  13378. }
  13379. function Local$2(props) {
  13380. const {
  13381. element
  13382. } = props;
  13383. const commandStack = useService('commandStack');
  13384. const translate = useService('translate');
  13385. const mapping = findRelevantInMappings(element)[0];
  13386. const getValue = () => {
  13387. return mapping.get('camunda:local');
  13388. };
  13389. const setValue = value => {
  13390. commandStack.execute('element.updateModdleProperties', {
  13391. element,
  13392. moddleElement: mapping,
  13393. properties: {
  13394. local: value
  13395. }
  13396. });
  13397. };
  13398. return CheckboxEntry({
  13399. element,
  13400. id: 'inMapping-propagation-local',
  13401. label: translate('Local'),
  13402. getValue,
  13403. setValue
  13404. });
  13405. }
  13406. // helper //////////////////////////
  13407. function areInMappingsSupported$1(element) {
  13408. const signalEventDefinition = getSignalEventDefinition$1(element);
  13409. if (signalEventDefinition) {
  13410. return isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:EndEvent']);
  13411. }
  13412. return is(element, 'bpmn:CallActivity');
  13413. }
  13414. function getInMappings$1(element) {
  13415. const businessObject = getBusinessObject(element);
  13416. const signalEventDefinition = getSignalEventDefinition$1(businessObject);
  13417. return getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In');
  13418. }
  13419. function findRelevantInMappings(element) {
  13420. const inMappings = getInMappings$1(element);
  13421. return filter(inMappings, function (mapping) {
  13422. const variables = mapping.get('variables');
  13423. return variables && variables === 'all';
  13424. });
  13425. }
  13426. function isPropagateAll$1(element) {
  13427. const mappings = findRelevantInMappings(element);
  13428. return !!mappings.length;
  13429. }
  13430. const DEFAULT_PROPS$1 = {
  13431. 'source': undefined,
  13432. 'sourceExpression': undefined
  13433. };
  13434. function InOutMapping(props) {
  13435. const {
  13436. idPrefix,
  13437. mapping
  13438. } = props;
  13439. const type = getInOutType(mapping);
  13440. const entries = [];
  13441. // (1) Type
  13442. entries.push({
  13443. id: idPrefix + '-type',
  13444. component: Type,
  13445. idPrefix,
  13446. mapping
  13447. });
  13448. // (2) Source
  13449. if (type === 'source') {
  13450. entries.push({
  13451. id: idPrefix + '-source',
  13452. component: Source,
  13453. idPrefix,
  13454. mapping
  13455. });
  13456. }
  13457. // (3) Source expression
  13458. if (type === 'sourceExpression') {
  13459. entries.push({
  13460. id: idPrefix + '-sourceExpression',
  13461. component: SourceExpression,
  13462. idPrefix,
  13463. mapping
  13464. });
  13465. }
  13466. // (4) Target
  13467. entries.push({
  13468. id: idPrefix + '-target',
  13469. component: Target,
  13470. idPrefix,
  13471. mapping
  13472. });
  13473. // (5) Local
  13474. entries.push({
  13475. id: idPrefix + '-local',
  13476. component: Local$1,
  13477. idPrefix,
  13478. mapping
  13479. });
  13480. return entries;
  13481. }
  13482. function Type(props) {
  13483. const {
  13484. idPrefix,
  13485. element,
  13486. mapping
  13487. } = props;
  13488. const commandStack = useService('commandStack');
  13489. const translate = useService('translate');
  13490. const getValue = mapping => {
  13491. return getInOutType(mapping);
  13492. };
  13493. const setValue = value => {
  13494. const properties = {
  13495. ...DEFAULT_PROPS$1,
  13496. [value]: ''
  13497. };
  13498. commandStack.execute('element.updateModdleProperties', {
  13499. element,
  13500. moddleElement: mapping,
  13501. properties
  13502. });
  13503. };
  13504. const getOptions = () => {
  13505. const options = [{
  13506. label: translate('Source'),
  13507. value: 'source'
  13508. }, {
  13509. label: translate('Source expression'),
  13510. value: 'sourceExpression'
  13511. }];
  13512. return options;
  13513. };
  13514. return SelectEntry({
  13515. element: mapping,
  13516. id: idPrefix + '-type',
  13517. label: translate('Type'),
  13518. getValue,
  13519. setValue,
  13520. getOptions
  13521. });
  13522. }
  13523. function Source(props) {
  13524. const {
  13525. idPrefix,
  13526. element,
  13527. mapping
  13528. } = props;
  13529. const commandStack = useService('commandStack');
  13530. const translate = useService('translate');
  13531. const debounce = useService('debounceInput');
  13532. const setValue = value => {
  13533. commandStack.execute('element.updateModdleProperties', {
  13534. element,
  13535. moddleElement: mapping,
  13536. properties: {
  13537. source: value
  13538. }
  13539. });
  13540. };
  13541. const getValue = mapping => {
  13542. return mapping.get('camunda:source');
  13543. };
  13544. return TextFieldEntry({
  13545. element: mapping,
  13546. id: idPrefix + '-source',
  13547. label: translate('Source'),
  13548. getValue,
  13549. setValue,
  13550. debounce
  13551. });
  13552. }
  13553. function SourceExpression(props) {
  13554. const {
  13555. idPrefix,
  13556. element,
  13557. mapping
  13558. } = props;
  13559. const commandStack = useService('commandStack');
  13560. const translate = useService('translate');
  13561. const debounce = useService('debounceInput');
  13562. const setValue = value => {
  13563. commandStack.execute('element.updateModdleProperties', {
  13564. element,
  13565. moddleElement: mapping,
  13566. properties: {
  13567. sourceExpression: value
  13568. }
  13569. });
  13570. };
  13571. const getValue = mapping => {
  13572. return mapping.get('camunda:sourceExpression');
  13573. };
  13574. return TextFieldEntry({
  13575. element: mapping,
  13576. id: idPrefix + '-sourceExpression',
  13577. label: translate('Source expression'),
  13578. getValue,
  13579. setValue,
  13580. debounce
  13581. });
  13582. }
  13583. function Target(props) {
  13584. const {
  13585. idPrefix,
  13586. element,
  13587. mapping
  13588. } = props;
  13589. const commandStack = useService('commandStack');
  13590. const translate = useService('translate');
  13591. const debounce = useService('debounceInput');
  13592. const setValue = value => {
  13593. commandStack.execute('element.updateModdleProperties', {
  13594. element,
  13595. moddleElement: mapping,
  13596. properties: {
  13597. target: value
  13598. }
  13599. });
  13600. };
  13601. const getValue = mapping => {
  13602. return mapping.get('camunda:target');
  13603. };
  13604. return TextFieldEntry({
  13605. element: mapping,
  13606. id: idPrefix + '-target',
  13607. label: translate('Target'),
  13608. getValue,
  13609. setValue,
  13610. debounce
  13611. });
  13612. }
  13613. function Local$1(props) {
  13614. const {
  13615. idPrefix,
  13616. element,
  13617. mapping
  13618. } = props;
  13619. const commandStack = useService('commandStack');
  13620. const translate = useService('translate');
  13621. const getValue = () => {
  13622. return mapping.get('camunda:local');
  13623. };
  13624. const setValue = value => {
  13625. commandStack.execute('element.updateModdleProperties', {
  13626. element,
  13627. moddleElement: mapping,
  13628. properties: {
  13629. local: value
  13630. }
  13631. });
  13632. };
  13633. return CheckboxEntry({
  13634. element,
  13635. id: idPrefix + '-local',
  13636. label: translate('Local'),
  13637. getValue,
  13638. setValue
  13639. });
  13640. }
  13641. // helper ///////////////////
  13642. function getInOutType(mapping) {
  13643. let inOutType = '';
  13644. if (typeof mapping.source !== 'undefined') {
  13645. inOutType = 'source';
  13646. } else if (typeof mapping.sourceExpression !== 'undefined') {
  13647. inOutType = 'sourceExpression';
  13648. }
  13649. return inOutType;
  13650. }
  13651. /**
  13652. * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#in
  13653. */
  13654. function InMappingProps({
  13655. element,
  13656. injector
  13657. }) {
  13658. if (!areInMappingsSupported(element)) {
  13659. return null;
  13660. }
  13661. const variableMappings = getInMappings(element) || [];
  13662. const bpmnFactory = injector.get('bpmnFactory'),
  13663. commandStack = injector.get('commandStack');
  13664. const items = variableMappings.map((mapping, index) => {
  13665. const id = element.id + '-inMapping-' + index;
  13666. return {
  13667. id,
  13668. label: mapping.get('target') || '',
  13669. entries: InOutMapping({
  13670. idPrefix: id,
  13671. element,
  13672. mapping
  13673. }),
  13674. autoFocusEntry: id + '-target',
  13675. remove: removeFactory$3({
  13676. commandStack,
  13677. element,
  13678. mapping
  13679. })
  13680. };
  13681. });
  13682. return {
  13683. items,
  13684. add: addFactory$2({
  13685. bpmnFactory,
  13686. commandStack,
  13687. element
  13688. })
  13689. };
  13690. }
  13691. function removeFactory$3({
  13692. commandStack,
  13693. element,
  13694. mapping
  13695. }) {
  13696. return function (event) {
  13697. event.stopPropagation();
  13698. const businessObject = getSignalEventDefinition$1(element) || getBusinessObject(element);
  13699. removeExtensionElements(element, businessObject, mapping, commandStack);
  13700. };
  13701. }
  13702. function addFactory$2({
  13703. bpmnFactory,
  13704. commandStack,
  13705. element
  13706. }) {
  13707. return function (event) {
  13708. event.stopPropagation();
  13709. const businessObject = getSignalEventDefinition$1(element) || getBusinessObject(element);
  13710. const newMapping = createElement('camunda:In', {
  13711. source: '' // source is the default type
  13712. }, null, bpmnFactory);
  13713. addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);
  13714. };
  13715. }
  13716. // helper ///////////////
  13717. function getInMappings(element) {
  13718. const businessObject = getBusinessObject(element);
  13719. const signalEventDefinition = getSignalEventDefinition$1(businessObject);
  13720. const mappings = getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In');
  13721. // only retrieve relevant mappings here, others are handled in other groups
  13722. // mapping.businessKey => camunda-platform/CallAvtivityProps
  13723. // mapping.variables => camunda-platform/InMappingPropagationProps
  13724. return filter(mappings, function (mapping) {
  13725. return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');
  13726. });
  13727. }
  13728. function areInMappingsSupported(element) {
  13729. const signalEventDefinition = getSignalEventDefinition$1(element);
  13730. if (signalEventDefinition) {
  13731. return isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:EndEvent']);
  13732. }
  13733. return is(element, 'bpmn:CallActivity');
  13734. }
  13735. function InputProps(props) {
  13736. const {
  13737. element,
  13738. injector
  13739. } = props;
  13740. if (!areInputParametersSupported(element)) {
  13741. return null;
  13742. }
  13743. const inputParameters = getInputParameters(element) || [];
  13744. const bpmnFactory = injector.get('bpmnFactory'),
  13745. commandStack = injector.get('commandStack');
  13746. const items = inputParameters.map((parameter, index) => {
  13747. const id = element.id + '-inputParameter-' + index;
  13748. return {
  13749. id,
  13750. label: parameter.get('name') || '',
  13751. entries: InputOutputParameter({
  13752. idPrefix: id,
  13753. element,
  13754. parameter
  13755. }),
  13756. autoFocusEntry: id + '-name',
  13757. remove: removeFactory$2({
  13758. element,
  13759. commandStack,
  13760. parameter
  13761. })
  13762. };
  13763. });
  13764. function add(event) {
  13765. event.stopPropagation();
  13766. commandStack.execute('properties-panel.multi-command-executor', AddParameterCmd(element, 'camunda:InputParameter', bpmnFactory));
  13767. }
  13768. return {
  13769. items,
  13770. add,
  13771. shouldSort: false
  13772. };
  13773. }
  13774. function removeFactory$2(props) {
  13775. const {
  13776. commandStack,
  13777. element,
  13778. parameter
  13779. } = props;
  13780. return function (event) {
  13781. event.stopPropagation();
  13782. const inputOutput = getInputOutput(element);
  13783. if (!inputOutput) {
  13784. return;
  13785. }
  13786. commandStack.execute('element.updateModdleProperties', {
  13787. element,
  13788. moddleElement: inputOutput,
  13789. properties: {
  13790. inputParameters: without(inputOutput.get('inputParameters'), parameter)
  13791. }
  13792. });
  13793. };
  13794. }
  13795. function JobExecutionProps(props) {
  13796. const {
  13797. element
  13798. } = props;
  13799. const businessObject = getBusinessObject(element);
  13800. const entries = [];
  13801. // (1) add retryTimeCycle field for camunda:asyncCapable enabled Elements
  13802. // or TimerEvents
  13803. if (is(element, 'camunda:AsyncCapable') && isAsync$1(businessObject) || isTimerEvent(element)) {
  13804. entries.push({
  13805. id: 'retryTimeCycle',
  13806. component: RetryTimeCycle,
  13807. isEdited: isTextFieldEntryEdited
  13808. });
  13809. }
  13810. // (2) add jobPriority field for camunda:jobPriorized with async enabled
  13811. // or Processes
  13812. // or Processes referred to by participants
  13813. // or TimerEvents
  13814. if (is(element, 'camunda:JobPriorized') && isAsync$1(businessObject) || is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && businessObject.get('processRef') || isTimerEvent(element)) {
  13815. entries.push({
  13816. id: 'jobPriority',
  13817. component: JobPriority,
  13818. isEdited: isTextFieldEntryEdited
  13819. });
  13820. }
  13821. return entries;
  13822. }
  13823. function JobPriority(props) {
  13824. const {
  13825. element
  13826. } = props;
  13827. const commandStack = useService('commandStack'),
  13828. translate = useService('translate'),
  13829. debounce = useService('debounceInput');
  13830. const businessObject = is(element, 'bpmn:Participant') ? getBusinessObject(element).get('processRef') : getBusinessObject(element);
  13831. const getValue = () => {
  13832. return businessObject.get('camunda:jobPriority');
  13833. };
  13834. const setValue = value => {
  13835. commandStack.execute('element.updateModdleProperties', {
  13836. element,
  13837. moddleElement: businessObject,
  13838. properties: {
  13839. 'camunda:jobPriority': value
  13840. }
  13841. });
  13842. };
  13843. return TextFieldEntry({
  13844. element,
  13845. id: 'jobPriority',
  13846. label: translate('Priority'),
  13847. getValue,
  13848. setValue,
  13849. debounce
  13850. });
  13851. }
  13852. function RetryTimeCycle(props) {
  13853. const {
  13854. element
  13855. } = props;
  13856. const bpmnFactory = useService('bpmnFactory'),
  13857. commandStack = useService('commandStack'),
  13858. translate = useService('translate'),
  13859. debounce = useService('debounceInput');
  13860. const businessObject = getBusinessObject(element);
  13861. const getValue = () => {
  13862. const failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];
  13863. return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;
  13864. };
  13865. const setValue = value => {
  13866. const commands = [];
  13867. let extensionElements = businessObject.get('extensionElements');
  13868. // (1) ensure extension elements
  13869. if (!extensionElements) {
  13870. extensionElements = createElement('bpmn:ExtensionElements', {
  13871. values: []
  13872. }, businessObject, bpmnFactory);
  13873. commands.push({
  13874. cmd: 'element.updateModdleProperties',
  13875. context: {
  13876. element,
  13877. moddleElement: businessObject,
  13878. properties: {
  13879. extensionElements
  13880. }
  13881. }
  13882. });
  13883. }
  13884. // (2) ensure failedJobRetryTimeCycle
  13885. let failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];
  13886. if (!failedJobRetryTimeCycle) {
  13887. failedJobRetryTimeCycle = createElement('camunda:FailedJobRetryTimeCycle', {}, extensionElements, bpmnFactory);
  13888. commands.push({
  13889. cmd: 'element.updateModdleProperties',
  13890. context: {
  13891. element,
  13892. moddleElement: extensionElements,
  13893. properties: {
  13894. values: [...extensionElements.get('values'), failedJobRetryTimeCycle]
  13895. }
  13896. }
  13897. });
  13898. }
  13899. // (3) update failedJobRetryTimeCycle value
  13900. commands.push({
  13901. cmd: 'element.updateModdleProperties',
  13902. context: {
  13903. element,
  13904. moddleElement: failedJobRetryTimeCycle,
  13905. properties: {
  13906. body: value
  13907. }
  13908. }
  13909. });
  13910. // (4) commit all updates
  13911. commandStack.execute('properties-panel.multi-command-executor', commands);
  13912. };
  13913. return TextFieldEntry({
  13914. element,
  13915. id: 'retryTimeCycle',
  13916. label: translate('Retry time cycle'),
  13917. getValue,
  13918. setValue,
  13919. debounce
  13920. });
  13921. }
  13922. // helper //////////////////
  13923. /**
  13924. * @param {ModdleElement} bo
  13925. * @return {boolean} a boolean value
  13926. */
  13927. function isAsyncBefore$1(bo) {
  13928. return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
  13929. }
  13930. /**
  13931. * @param {ModdleElement} bo
  13932. * @return {boolean}
  13933. */
  13934. function isAsyncAfter$1(bo) {
  13935. return !!bo.get('camunda:asyncAfter');
  13936. }
  13937. /**
  13938. * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'
  13939. * is set to true.
  13940. *
  13941. * @param {ModdleElement} bo
  13942. * @return {boolean}
  13943. */
  13944. function isAsync$1(bo) {
  13945. return isAsyncAfter$1(bo) || isAsyncBefore$1(bo);
  13946. }
  13947. /**
  13948. * isTimerEvent - returns true if the element is a bpmn:Event with a timerEventDefinition
  13949. *
  13950. * @param {ModdleElement} element
  13951. * @return {boolean}
  13952. */
  13953. function isTimerEvent(element) {
  13954. return is(element, 'bpmn:Event') && getTimerEventDefinition$1(element);
  13955. }
  13956. /**
  13957. * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
  13958. */
  13959. /**
  13960. * @returns {Array<Entry>} entries
  13961. */
  13962. function MultiInstanceProps(props) {
  13963. const {
  13964. element
  13965. } = props;
  13966. const loopCharacteristics = getLoopCharacteristics(element);
  13967. let entries = props.entries || [];
  13968. if (!isMultiInstanceSupported(element)) {
  13969. return entries;
  13970. }
  13971. entries.push({
  13972. id: 'collection',
  13973. component: Collection,
  13974. isEdited: isTextFieldEntryEdited
  13975. }, {
  13976. id: 'elementVariable',
  13977. component: ElementVariable,
  13978. isEdited: isTextFieldEntryEdited
  13979. }, {
  13980. id: 'multiInstanceAsynchronousBefore',
  13981. component: MultiInstanceAsynchronousBefore,
  13982. isEdited: isCheckboxEntryEdited
  13983. }, {
  13984. id: 'multiInstanceAsynchronousAfter',
  13985. component: MultiInstanceAsynchronousAfter,
  13986. isEdited: isCheckboxEntryEdited
  13987. });
  13988. if (isAsync(loopCharacteristics)) {
  13989. entries.push({
  13990. id: 'multiInstanceExclusive',
  13991. component: MultiInstanceExclusive,
  13992. isEdited: checkboxIsEditedInverted
  13993. }, {
  13994. id: 'multiInstanceRetryTimeCycle',
  13995. component: MultiInstanceRetryTimeCycle,
  13996. isEdited: isTextFieldEntryEdited
  13997. });
  13998. }
  13999. return entries;
  14000. }
  14001. function Collection(props) {
  14002. const {
  14003. element
  14004. } = props;
  14005. const debounce = useService('debounceInput');
  14006. const commandStack = useService('commandStack');
  14007. const translate = useService('translate');
  14008. const loopCharacteristics = getLoopCharacteristics(element);
  14009. const getValue = () => {
  14010. return getCollection(element);
  14011. };
  14012. const setValue = value => {
  14013. return commandStack.execute('element.updateModdleProperties', {
  14014. element,
  14015. moddleElement: loopCharacteristics,
  14016. properties: {
  14017. 'camunda:collection': value
  14018. }
  14019. });
  14020. };
  14021. return TextFieldEntry({
  14022. element,
  14023. id: 'collection',
  14024. label: translate('Collection'),
  14025. getValue,
  14026. setValue,
  14027. debounce
  14028. });
  14029. }
  14030. function ElementVariable(props) {
  14031. const {
  14032. element
  14033. } = props;
  14034. const debounce = useService('debounceInput');
  14035. const commandStack = useService('commandStack');
  14036. const translate = useService('translate');
  14037. const loopCharacteristics = getLoopCharacteristics(element);
  14038. const getValue = () => {
  14039. return getElementVariable(element);
  14040. };
  14041. const setValue = value => {
  14042. return commandStack.execute('element.updateModdleProperties', {
  14043. element,
  14044. moddleElement: loopCharacteristics,
  14045. properties: {
  14046. 'camunda:elementVariable': value
  14047. }
  14048. });
  14049. };
  14050. return TextFieldEntry({
  14051. element,
  14052. id: 'elementVariable',
  14053. label: translate('Element variable'),
  14054. getValue,
  14055. setValue,
  14056. debounce
  14057. });
  14058. }
  14059. function MultiInstanceAsynchronousBefore(props) {
  14060. const {
  14061. element
  14062. } = props;
  14063. const commandStack = useService('commandStack');
  14064. const translate = useService('translate');
  14065. const loopCharacteristics = getLoopCharacteristics(element);
  14066. const getValue = () => {
  14067. return isAsyncBefore(loopCharacteristics);
  14068. };
  14069. const setValue = value => {
  14070. // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`
  14071. const properties = {
  14072. 'camunda:asyncBefore': value,
  14073. 'camunda:async': undefined
  14074. };
  14075. commandStack.execute('element.updateModdleProperties', {
  14076. element,
  14077. moddleElement: loopCharacteristics,
  14078. properties
  14079. });
  14080. };
  14081. return CheckboxEntry({
  14082. element,
  14083. id: 'multiInstanceAsynchronousBefore',
  14084. label: translate('Asynchronous before'),
  14085. getValue,
  14086. setValue
  14087. });
  14088. }
  14089. function MultiInstanceAsynchronousAfter(props) {
  14090. const {
  14091. element
  14092. } = props;
  14093. const commandStack = useService('commandStack');
  14094. const translate = useService('translate');
  14095. const loopCharacteristics = getLoopCharacteristics(element);
  14096. const getValue = () => {
  14097. return isAsyncAfter(loopCharacteristics);
  14098. };
  14099. const setValue = value => {
  14100. commandStack.execute('element.updateModdleProperties', {
  14101. element,
  14102. moddleElement: loopCharacteristics,
  14103. properties: {
  14104. 'camunda:asyncAfter': value
  14105. }
  14106. });
  14107. };
  14108. return CheckboxEntry({
  14109. element,
  14110. id: 'multiInstanceAsynchronousAfter',
  14111. label: translate('Asynchronous after'),
  14112. getValue,
  14113. setValue
  14114. });
  14115. }
  14116. function MultiInstanceExclusive(props) {
  14117. const {
  14118. element
  14119. } = props;
  14120. const commandStack = useService('commandStack'),
  14121. translate = useService('translate');
  14122. const loopCharacteristics = getLoopCharacteristics(element);
  14123. const getValue = () => {
  14124. return isExclusive(loopCharacteristics);
  14125. };
  14126. const setValue = value => {
  14127. commandStack.execute('element.updateModdleProperties', {
  14128. element,
  14129. moddleElement: loopCharacteristics,
  14130. properties: {
  14131. 'camunda:exclusive': value
  14132. }
  14133. });
  14134. };
  14135. return CheckboxEntry({
  14136. element,
  14137. id: 'multiInstanceExclusive',
  14138. label: translate('Exclusive'),
  14139. getValue,
  14140. setValue
  14141. });
  14142. }
  14143. function MultiInstanceRetryTimeCycle(props) {
  14144. const {
  14145. element
  14146. } = props;
  14147. const bpmnFactory = useService('bpmnFactory'),
  14148. commandStack = useService('commandStack'),
  14149. translate = useService('translate'),
  14150. debounce = useService('debounceInput');
  14151. const loopCharacteristics = getLoopCharacteristics(element);
  14152. const getValue = () => {
  14153. const failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics, 'camunda:FailedJobRetryTimeCycle')[0];
  14154. return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;
  14155. };
  14156. const setValue = value => {
  14157. const commands = [];
  14158. let extensionElements = loopCharacteristics.get('extensionElements');
  14159. // (1) ensure extension elements
  14160. if (!extensionElements) {
  14161. extensionElements = createElement('bpmn:ExtensionElements', {
  14162. values: []
  14163. }, loopCharacteristics, bpmnFactory);
  14164. commands.push({
  14165. cmd: 'element.updateModdleProperties',
  14166. context: {
  14167. element,
  14168. moddleElement: loopCharacteristics,
  14169. properties: {
  14170. extensionElements
  14171. }
  14172. }
  14173. });
  14174. }
  14175. // (2) ensure failedJobRetryTimeCycle
  14176. let failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics, 'camunda:FailedJobRetryTimeCycle')[0];
  14177. if (!failedJobRetryTimeCycle) {
  14178. failedJobRetryTimeCycle = createElement('camunda:FailedJobRetryTimeCycle', {}, extensionElements, bpmnFactory);
  14179. commands.push({
  14180. cmd: 'element.updateModdleProperties',
  14181. context: {
  14182. element: loopCharacteristics,
  14183. moddleElement: extensionElements,
  14184. properties: {
  14185. values: [...extensionElements.get('values'), failedJobRetryTimeCycle]
  14186. }
  14187. }
  14188. });
  14189. }
  14190. // (3) update failedJobRetryTimeCycle value
  14191. commands.push({
  14192. cmd: 'element.updateModdleProperties',
  14193. context: {
  14194. element,
  14195. moddleElement: failedJobRetryTimeCycle,
  14196. properties: {
  14197. body: value
  14198. }
  14199. }
  14200. });
  14201. // (4) commit all updates
  14202. commandStack.execute('properties-panel.multi-command-executor', commands);
  14203. };
  14204. return TextFieldEntry({
  14205. element,
  14206. id: 'multiInstanceRetryTimeCycle',
  14207. label: translate('Retry time cycle'),
  14208. getValue,
  14209. setValue,
  14210. debounce
  14211. });
  14212. }
  14213. // helper ////////////////////////////
  14214. // generic ///////////////////////////
  14215. /**
  14216. * isMultiInstanceSupported - check whether given element supports camunda specific props
  14217. * for multiInstance (ref. <camunda:Cllectable>).
  14218. *
  14219. * @param {djs.model.Base} element
  14220. * @return {boolean}
  14221. */
  14222. function isMultiInstanceSupported(element) {
  14223. const loopCharacteristics = getLoopCharacteristics(element);
  14224. return !!loopCharacteristics && is(loopCharacteristics, 'camunda:Collectable');
  14225. }
  14226. /**
  14227. * getProperty - get a property value of the loop characteristics.
  14228. *
  14229. * @param {djs.model.Base} element
  14230. * @param {string} propertyName
  14231. *
  14232. * @return {any} the property value
  14233. */
  14234. function getProperty(element, propertyName) {
  14235. var loopCharacteristics = getLoopCharacteristics(element);
  14236. return loopCharacteristics && loopCharacteristics.get(propertyName);
  14237. }
  14238. /**
  14239. * getLoopCharacteristics - get loopCharacteristics of a given element.
  14240. *
  14241. * @param {djs.model.Base} element
  14242. * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}
  14243. */
  14244. function getLoopCharacteristics(element) {
  14245. const bo = getBusinessObject(element);
  14246. return bo.loopCharacteristics;
  14247. }
  14248. // collection
  14249. /**
  14250. * getCollection - get the 'camunda:collection' attribute value of the loop characteristics.
  14251. *
  14252. * @param {djs.model.Base} element
  14253. *
  14254. * @return {string} the 'camunda:collection' value
  14255. */
  14256. function getCollection(element) {
  14257. return getProperty(element, 'camunda:collection');
  14258. }
  14259. // elementVariable
  14260. /**
  14261. * getElementVariable - get the 'camunda:elementVariable' attribute value of the loop characteristics.
  14262. *
  14263. * @param {djs.model.Base} element
  14264. *
  14265. * @return {string} the 'camunda:elementVariable' value
  14266. */
  14267. function getElementVariable(element) {
  14268. return getProperty(element, 'camunda:elementVariable');
  14269. }
  14270. // asyncBefore asyncAfter
  14271. /**
  14272. * Returns true if the attribute 'camunda:asyncBefore' is set
  14273. * to true.
  14274. *
  14275. * @param {ModdleElement} bo
  14276. *
  14277. * @return {boolean} a boolean value
  14278. */
  14279. function isAsyncBefore(bo) {
  14280. return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
  14281. }
  14282. /**
  14283. * Returns true if the attribute 'camunda:asyncAfter' is set
  14284. * to true.
  14285. *
  14286. * @param {ModdleElement} bo
  14287. *
  14288. * @return {boolean} a boolean value
  14289. */
  14290. function isAsyncAfter(bo) {
  14291. return !!bo.get('camunda:asyncAfter');
  14292. }
  14293. /**
  14294. * Returns true if the attribute 'camunda:exclusive' is set
  14295. * to true.
  14296. *
  14297. * @param {ModdleElement} bo
  14298. *
  14299. * @return {boolean} a boolean value
  14300. */
  14301. function isExclusive(bo) {
  14302. return !!bo.get('camunda:exclusive');
  14303. }
  14304. /**
  14305. * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'
  14306. * is set to true.
  14307. *
  14308. * @param {ModdleElement} bo
  14309. * @return {boolean}
  14310. */
  14311. function isAsync(bo) {
  14312. return isAsyncAfter(bo) || isAsyncBefore(bo);
  14313. }
  14314. // Checkbox
  14315. function checkboxIsEditedInverted(node) {
  14316. return node && !node.checked;
  14317. }
  14318. /**
  14319. * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables
  14320. */
  14321. function OutMappingPropagationProps(props) {
  14322. const {
  14323. element
  14324. } = props;
  14325. if (!areOutMappingsSupported$1(element)) {
  14326. return [];
  14327. }
  14328. const entries = [{
  14329. id: 'outMapping-propagation',
  14330. component: PropagateAll,
  14331. isEdited: isCheckboxEntryEdited
  14332. }];
  14333. if (isPropagateAll(element)) {
  14334. entries.push({
  14335. id: 'outMapping-propagation-local',
  14336. component: Local,
  14337. isEdited: isCheckboxEntryEdited
  14338. });
  14339. }
  14340. return entries;
  14341. }
  14342. function PropagateAll(props) {
  14343. const {
  14344. element
  14345. } = props;
  14346. const commandStack = useService('commandStack');
  14347. const bpmnFactory = useService('bpmnFactory');
  14348. const translate = useService('translate');
  14349. const getValue = () => {
  14350. return isPropagateAll(element);
  14351. };
  14352. const setValue = value => {
  14353. if (value) {
  14354. addOutMapping();
  14355. } else {
  14356. removeOutMapping();
  14357. }
  14358. };
  14359. function addOutMapping() {
  14360. const businessObject = getBusinessObject(element);
  14361. const mapping = createElement('camunda:Out', {
  14362. variables: 'all'
  14363. }, null, bpmnFactory);
  14364. addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);
  14365. }
  14366. function removeOutMapping() {
  14367. const businessObject = getBusinessObject(element);
  14368. const mappings = findRelevantOutMappings(element);
  14369. removeExtensionElements(element, businessObject, mappings, commandStack);
  14370. }
  14371. return CheckboxEntry({
  14372. id: 'outMapping-propagation',
  14373. label: translate('Propagate all variables'),
  14374. getValue,
  14375. setValue
  14376. });
  14377. }
  14378. function Local(props) {
  14379. const {
  14380. element
  14381. } = props;
  14382. const commandStack = useService('commandStack');
  14383. const translate = useService('translate');
  14384. const mapping = findRelevantOutMappings(element)[0];
  14385. const getValue = () => {
  14386. return mapping.get('camunda:local');
  14387. };
  14388. const setValue = value => {
  14389. commandStack.execute('element.updateModdleProperties', {
  14390. element,
  14391. moddleElement: mapping,
  14392. properties: {
  14393. local: value
  14394. }
  14395. });
  14396. };
  14397. return CheckboxEntry({
  14398. element,
  14399. id: 'outMapping-propagation-local',
  14400. label: translate('Local'),
  14401. getValue,
  14402. setValue
  14403. });
  14404. }
  14405. // helper //////////////////////////
  14406. function areOutMappingsSupported$1(element) {
  14407. return is(element, 'bpmn:CallActivity');
  14408. }
  14409. function getOutMappings$1(element) {
  14410. const businessObject = getBusinessObject(element);
  14411. return getExtensionElementsList(businessObject, 'camunda:Out');
  14412. }
  14413. function findRelevantOutMappings(element) {
  14414. const inMappings = getOutMappings$1(element);
  14415. return filter(inMappings, function (mapping) {
  14416. const variables = mapping.get('variables');
  14417. return variables && variables === 'all';
  14418. });
  14419. }
  14420. function isPropagateAll(element) {
  14421. const mappings = findRelevantOutMappings(element);
  14422. return !!mappings.length;
  14423. }
  14424. /**
  14425. * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#out
  14426. */
  14427. function OutMappingProps({
  14428. element,
  14429. injector
  14430. }) {
  14431. if (!areOutMappingsSupported(element)) {
  14432. return null;
  14433. }
  14434. const variableMappings = getOutMappings(element) || [];
  14435. const bpmnFactory = injector.get('bpmnFactory'),
  14436. commandStack = injector.get('commandStack');
  14437. const items = variableMappings.map((mapping, index) => {
  14438. const id = element.id + '-outMapping-' + index;
  14439. return {
  14440. id,
  14441. label: mapping.get('target') || '',
  14442. entries: InOutMapping({
  14443. idPrefix: id,
  14444. element,
  14445. mapping
  14446. }),
  14447. autoFocusEntry: id + '-target',
  14448. remove: removeFactory$1({
  14449. commandStack,
  14450. element,
  14451. mapping
  14452. })
  14453. };
  14454. });
  14455. return {
  14456. items,
  14457. add: addFactory$1({
  14458. bpmnFactory,
  14459. commandStack,
  14460. element
  14461. })
  14462. };
  14463. }
  14464. function removeFactory$1({
  14465. commandStack,
  14466. element,
  14467. mapping
  14468. }) {
  14469. return function (event) {
  14470. event.stopPropagation();
  14471. const businessObject = getBusinessObject(element);
  14472. removeExtensionElements(element, businessObject, mapping, commandStack);
  14473. };
  14474. }
  14475. function addFactory$1({
  14476. bpmnFactory,
  14477. commandStack,
  14478. element
  14479. }) {
  14480. return function (event) {
  14481. event.stopPropagation();
  14482. const businessObject = getBusinessObject(element);
  14483. const newMapping = createElement('camunda:Out', {
  14484. source: '' // source is the default type
  14485. }, null, bpmnFactory);
  14486. addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);
  14487. };
  14488. }
  14489. // helper ///////////////
  14490. function getOutMappings(element) {
  14491. const businessObject = getBusinessObject(element);
  14492. const mappings = getExtensionElementsList(businessObject, 'camunda:Out');
  14493. // only retrieve relevant mappings here, others are handled in other groups
  14494. // mapping.businessKey => camunda-platform/CallAvtivityProps
  14495. // mapping.variables => camunda-platform/OutMappingPropagationProps
  14496. return filter(mappings, function (mapping) {
  14497. return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');
  14498. });
  14499. }
  14500. function areOutMappingsSupported(element) {
  14501. return is(element, 'bpmn:CallActivity');
  14502. }
  14503. function OutputProps({
  14504. element,
  14505. injector
  14506. }) {
  14507. if (!areOutputParametersSupported(element)) {
  14508. return null;
  14509. }
  14510. const outputParameters = getOutputParameters(element) || [];
  14511. const bpmnFactory = injector.get('bpmnFactory'),
  14512. commandStack = injector.get('commandStack');
  14513. const items = outputParameters.map((parameter, index) => {
  14514. const id = element.id + '-outputParameter-' + index;
  14515. return {
  14516. id,
  14517. label: parameter.get('name') || '',
  14518. entries: InputOutputParameter({
  14519. idPrefix: id,
  14520. element,
  14521. parameter
  14522. }),
  14523. autoFocusEntry: id + '-name',
  14524. remove: removeFactory({
  14525. commandStack,
  14526. element,
  14527. parameter
  14528. })
  14529. };
  14530. });
  14531. return {
  14532. items,
  14533. add: addFactory({
  14534. bpmnFactory,
  14535. commandStack,
  14536. element
  14537. }),
  14538. shouldSort: false
  14539. };
  14540. }
  14541. function removeFactory({
  14542. commandStack,
  14543. element,
  14544. parameter
  14545. }) {
  14546. return function (event) {
  14547. event.stopPropagation();
  14548. const inputOutput = getInputOutput(element);
  14549. if (!inputOutput) {
  14550. return;
  14551. }
  14552. commandStack.execute('element.updateModdleProperties', {
  14553. element,
  14554. moddleElement: inputOutput,
  14555. properties: {
  14556. outputParameters: without(inputOutput.get('outputParameters'), parameter)
  14557. }
  14558. });
  14559. };
  14560. }
  14561. function addFactory({
  14562. bpmnFactory,
  14563. commandStack,
  14564. element
  14565. }) {
  14566. return function (event) {
  14567. event.stopPropagation();
  14568. commandStack.execute('properties-panel.multi-command-executor', AddParameterCmd(element, 'camunda:OutputParameter', bpmnFactory));
  14569. };
  14570. }
  14571. function TimerProps(props) {
  14572. const {
  14573. element,
  14574. listener,
  14575. idPrefix
  14576. } = props;
  14577. let {
  14578. timerEventDefinition
  14579. } = props;
  14580. if (!timerEventDefinition) {
  14581. const businessObject = getBusinessObject(element);
  14582. timerEventDefinition = getTimerEventDefinition(businessObject);
  14583. }
  14584. const timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);
  14585. // (1) Only show for supported elements
  14586. if (!isTimerSupported(element) && !isTimerSupportedOnListener(listener)) {
  14587. return [];
  14588. }
  14589. // (2) Provide entries, have a value only if selection was made
  14590. const entries = [];
  14591. entries.push({
  14592. id: getId(idPrefix, 'timerEventDefinitionType'),
  14593. component: TimerEventDefinitionType,
  14594. isEdited: isSelectEntryEdited,
  14595. timerEventDefinition,
  14596. timerEventDefinitionType
  14597. });
  14598. if (timerEventDefinitionType) {
  14599. entries.push({
  14600. id: getId(idPrefix, 'timerEventDefinitionValue'),
  14601. component: TimerEventDefinitionValue,
  14602. isEdited: isTextFieldEntryEdited,
  14603. timerEventDefinition,
  14604. timerEventDefinitionType
  14605. });
  14606. }
  14607. return entries;
  14608. }
  14609. /**
  14610. * TimerEventDefinitionType - Generic select entry allowing to select a specific
  14611. * timerEventDefintionType. To be used together with timerEventDefinitionValue.
  14612. *
  14613. * @param {type} props
  14614. * @return {SelectEntry}
  14615. */
  14616. function TimerEventDefinitionType(props) {
  14617. const {
  14618. element,
  14619. timerEventDefinition,
  14620. timerEventDefinitionType
  14621. } = props;
  14622. const commandStack = useService('commandStack'),
  14623. bpmnFactory = useService('bpmnFactory'),
  14624. translate = useService('translate');
  14625. const getValue = () => {
  14626. return timerEventDefinitionType || '';
  14627. };
  14628. const setValue = value => {
  14629. // (1) Check if value is different to current type
  14630. if (value === timerEventDefinitionType) {
  14631. return;
  14632. }
  14633. // (2) Create empty formalExpression element
  14634. const formalExpression = bpmnFactory.create('bpmn:FormalExpression', {
  14635. body: undefined
  14636. });
  14637. formalExpression.$parent = timerEventDefinition;
  14638. // (3) Set the value for selected timerEventDefinitionType
  14639. const newProps = {
  14640. timeDuration: undefined,
  14641. timeDate: undefined,
  14642. timeCycle: undefined
  14643. };
  14644. if (value !== '') {
  14645. newProps[value] = formalExpression;
  14646. }
  14647. // (4) Execute businessObject update
  14648. commandStack.execute('element.updateModdleProperties', {
  14649. element,
  14650. moddleElement: timerEventDefinition,
  14651. properties: newProps
  14652. });
  14653. };
  14654. const getOptions = element => {
  14655. return [{
  14656. value: '',
  14657. label: translate('<none>')
  14658. }, {
  14659. value: 'timeDate',
  14660. label: translate('Date')
  14661. }, {
  14662. value: 'timeDuration',
  14663. label: translate('Duration')
  14664. }, {
  14665. value: 'timeCycle',
  14666. label: translate('Cycle')
  14667. }];
  14668. };
  14669. return SelectEntry({
  14670. element,
  14671. id: 'timerEventDefinitionType',
  14672. label: translate('Type'),
  14673. getValue,
  14674. setValue,
  14675. getOptions
  14676. });
  14677. }
  14678. /**
  14679. * TimerEventDefinitionValue - Generic textField entry allowing to specify the
  14680. * timerEventDefintionValue based on the set timerEventDefintionType. To be used
  14681. * together with timerEventDefinitionType.
  14682. *
  14683. * @param {type} props
  14684. * @return {TextFieldEntry}
  14685. */
  14686. function TimerEventDefinitionValue(props) {
  14687. const {
  14688. element,
  14689. timerEventDefinition,
  14690. timerEventDefinitionType
  14691. } = props;
  14692. const commandStack = useService('commandStack'),
  14693. translate = useService('translate'),
  14694. debounce = useService('debounceInput');
  14695. const timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);
  14696. const getValue = () => {
  14697. return timerEventFormalExpression && timerEventFormalExpression.get('body');
  14698. };
  14699. const setValue = value => {
  14700. commandStack.execute('element.updateModdleProperties', {
  14701. element,
  14702. moddleElement: timerEventFormalExpression,
  14703. properties: {
  14704. body: value
  14705. }
  14706. });
  14707. };
  14708. return TextFieldEntry({
  14709. element,
  14710. id: 'timerEventDefinitionValue',
  14711. label: translate('Value'),
  14712. getValue,
  14713. setValue,
  14714. debounce,
  14715. tooltip: getTimerEventDefinitionValueDescription(timerEventDefinitionType, translate)
  14716. });
  14717. }
  14718. // helper //////////////////////////
  14719. function getTimerEventDefinitionValueDescription(timerDefinitionType, translate) {
  14720. switch (timerDefinitionType) {
  14721. case 'timeDate':
  14722. return jsxs("div", {
  14723. children: [jsx("p", {
  14724. children: translate('A specific point in time defined as ISO 8601 combined date and time representation.')
  14725. }), jsxs("ul", {
  14726. children: [jsxs("li", {
  14727. children: [jsx("code", {
  14728. children: "2019-10-01T12:00:00Z"
  14729. }), " - ", translate('UTC time')]
  14730. }), jsxs("li", {
  14731. children: [jsx("code", {
  14732. children: "2019-10-02T08:09:40+02:00"
  14733. }), " - ", translate('UTC plus 2 hours zone offset')]
  14734. })]
  14735. }), jsx("a", {
  14736. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date",
  14737. target: "_blank",
  14738. rel: "noopener",
  14739. children: translate('Documentation: Timer events')
  14740. })]
  14741. });
  14742. case 'timeCycle':
  14743. return jsxs("div", {
  14744. children: [jsx("p", {
  14745. children: translate('A cycle defined as ISO 8601 repeating intervals format, or a cron expression.')
  14746. }), jsxs("ul", {
  14747. children: [jsxs("li", {
  14748. children: [jsx("code", {
  14749. children: "R5/PT10S"
  14750. }), " - ", translate('every 10 seconds, up to 5 times')]
  14751. }), jsxs("li", {
  14752. children: [jsx("code", {
  14753. children: "R/P1D"
  14754. }), " - ", translate('every day, infinitely')]
  14755. }), jsxs("li", {
  14756. children: [jsx("code", {
  14757. children: "0 0 9-17 * * MON-FRI"
  14758. }), " - ", translate('every hour on the hour from 9-5 p.m. UTC Monday-Friday')]
  14759. })]
  14760. }), jsx("a", {
  14761. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle",
  14762. target: "_blank",
  14763. rel: "noopener",
  14764. children: translate('Documentation: Timer events')
  14765. })]
  14766. });
  14767. case 'timeDuration':
  14768. return jsxs("div", {
  14769. children: [jsx("p", {
  14770. children: translate('A time duration defined as ISO 8601 durations format.')
  14771. }), jsxs("ul", {
  14772. children: [jsxs("li", {
  14773. children: [jsx("code", {
  14774. children: "PT15S"
  14775. }), " - ", translate('15 seconds')]
  14776. }), jsxs("li", {
  14777. children: [jsx("code", {
  14778. children: "PT1H30M"
  14779. }), " - ", translate('1 hour and 30 minutes')]
  14780. }), jsxs("li", {
  14781. children: [jsx("code", {
  14782. children: "P14D"
  14783. }), " - ", translate('14 days')]
  14784. })]
  14785. }), jsx("a", {
  14786. href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration",
  14787. target: "_blank",
  14788. rel: "noopener",
  14789. children: translate('Documentation: Timer events')
  14790. })]
  14791. });
  14792. }
  14793. }
  14794. function isTimerSupportedOnListener(listener) {
  14795. return listener && is(listener, 'camunda:TaskListener') && getTimerEventDefinition(listener);
  14796. }
  14797. function getId(idPrefix, id) {
  14798. return idPrefix ? idPrefix + id : id;
  14799. }
  14800. const LISTENER_ALLOWED_TYPES = ['bpmn:Activity', 'bpmn:Event', 'bpmn:Gateway', 'bpmn:SequenceFlow', 'bpmn:Process', 'bpmn:Participant'];
  14801. const SCRIPT_PROPS = {
  14802. 'script': undefined,
  14803. 'resource': undefined,
  14804. 'scriptFormat': undefined
  14805. };
  14806. const CLASS_PROPS = {
  14807. 'class': undefined
  14808. };
  14809. const EXPRESSION_PROPS = {
  14810. 'expression': undefined
  14811. };
  14812. const DELEGATE_EXPRESSION_PROPS = {
  14813. 'delegateExpression': undefined
  14814. };
  14815. const DEFAULT_PROPS = {
  14816. ...SCRIPT_PROPS,
  14817. ...CLASS_PROPS,
  14818. ...EXPRESSION_PROPS,
  14819. ...DELEGATE_EXPRESSION_PROPS
  14820. };
  14821. const DEFAULT_EVENT_PROPS = {
  14822. 'eventDefinitions': undefined,
  14823. 'event': undefined
  14824. };
  14825. const IMPLEMENTATION_TYPE_TO_LABEL = {
  14826. class: 'Java class',
  14827. expression: 'Expression',
  14828. delegateExpression: 'Delegate expression',
  14829. script: 'Script'
  14830. };
  14831. const EVENT_TO_LABEL = {
  14832. start: 'Start',
  14833. end: 'End',
  14834. take: 'Take',
  14835. create: 'Create',
  14836. assignment: 'Assignment',
  14837. complete: 'Complete',
  14838. delete: 'Delete',
  14839. update: 'Update',
  14840. timeout: 'Timeout'
  14841. };
  14842. /**
  14843. * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener
  14844. */
  14845. function ExecutionListenerProps({
  14846. element,
  14847. injector
  14848. }) {
  14849. if (!isAny(element, LISTENER_ALLOWED_TYPES)) {
  14850. return;
  14851. }
  14852. const bpmnFactory = injector.get('bpmnFactory'),
  14853. commandStack = injector.get('commandStack');
  14854. if (is(element, 'bpmn:Participant') && !element.businessObject.processRef) {
  14855. return;
  14856. }
  14857. const businessObject = getListenersContainer(element);
  14858. const listeners = getExtensionElementsList(businessObject, 'camunda:ExecutionListener');
  14859. return {
  14860. items: listeners.map((listener, index) => {
  14861. const id = `${element.id}-executionListener-${index}`;
  14862. // @TODO(barmac): Find a way to pass translate for internationalized label.
  14863. return {
  14864. id,
  14865. label: getListenerLabel(listener),
  14866. entries: ExecutionListener({
  14867. idPrefix: id,
  14868. element,
  14869. listener
  14870. }),
  14871. remove: removeListenerFactory({
  14872. element,
  14873. listener,
  14874. commandStack
  14875. })
  14876. };
  14877. }),
  14878. add: addExecutionListenerFactory({
  14879. bpmnFactory,
  14880. commandStack,
  14881. element
  14882. })
  14883. };
  14884. }
  14885. function ExecutionListener(props) {
  14886. const {
  14887. idPrefix,
  14888. element,
  14889. listener
  14890. } = props;
  14891. return [{
  14892. id: `${idPrefix}-eventType`,
  14893. component: EventType,
  14894. listener
  14895. }, {
  14896. id: `${idPrefix}-listenerType`,
  14897. component: ListenerType,
  14898. listener
  14899. }, ...ImplementationDetails({
  14900. idPrefix,
  14901. element,
  14902. listener
  14903. }), {
  14904. id: `${idPrefix}-fields`,
  14905. component: Fields,
  14906. listener
  14907. }];
  14908. }
  14909. function TaskListenerProps({
  14910. element,
  14911. injector
  14912. }) {
  14913. if (!is(element, 'bpmn:UserTask')) {
  14914. return;
  14915. }
  14916. const bpmnFactory = injector.get('bpmnFactory'),
  14917. commandStack = injector.get('commandStack');
  14918. const businessObject = getListenersContainer(element);
  14919. const listeners = getExtensionElementsList(businessObject, 'camunda:TaskListener');
  14920. return {
  14921. items: listeners.map((listener, index) => {
  14922. const id = `${element.id}-taskListener-${index}`;
  14923. // @TODO(barmac): Find a way to pass translate for internationalized label.
  14924. return {
  14925. id,
  14926. label: getListenerLabel(listener),
  14927. entries: TaskListener({
  14928. idPrefix: id,
  14929. element,
  14930. listener
  14931. }),
  14932. remove: removeListenerFactory({
  14933. element,
  14934. listener,
  14935. commandStack
  14936. })
  14937. };
  14938. }),
  14939. add: addTaskListenerFactory({
  14940. bpmnFactory,
  14941. commandStack,
  14942. element
  14943. })
  14944. };
  14945. }
  14946. function TaskListener(props) {
  14947. const {
  14948. idPrefix,
  14949. element,
  14950. listener
  14951. } = props;
  14952. return [{
  14953. id: `${idPrefix}-eventType`,
  14954. component: EventType,
  14955. listener
  14956. }, {
  14957. id: `${idPrefix}-listenerId`,
  14958. component: ListenerId,
  14959. listener
  14960. }, {
  14961. id: `${idPrefix}-listenerType`,
  14962. component: ListenerType,
  14963. listener
  14964. }, ...ImplementationDetails({
  14965. idPrefix,
  14966. element,
  14967. listener
  14968. }), ...EventTypeDetails({
  14969. idPrefix,
  14970. element,
  14971. listener
  14972. }), {
  14973. id: `${idPrefix}-fields`,
  14974. component: Fields,
  14975. listener
  14976. }];
  14977. }
  14978. function removeListenerFactory({
  14979. element,
  14980. listener,
  14981. commandStack
  14982. }) {
  14983. return function removeListener(event) {
  14984. event.stopPropagation();
  14985. removeExtensionElements(element, getListenersContainer(element), listener, commandStack);
  14986. };
  14987. }
  14988. function EventType({
  14989. id,
  14990. element,
  14991. listener
  14992. }) {
  14993. const translate = useService('translate');
  14994. const bpmnFactory = useService('bpmnFactory');
  14995. const commandStack = useService('commandStack');
  14996. function getValue() {
  14997. return listener.get('event');
  14998. }
  14999. function setValue(value) {
  15000. const properties = getDefaultEventTypeProperties(value, bpmnFactory);
  15001. commandStack.execute('element.updateModdleProperties', {
  15002. element,
  15003. moddleElement: listener,
  15004. properties
  15005. });
  15006. }
  15007. function getOptions() {
  15008. if (is(listener, 'camunda:TaskListener')) {
  15009. return [{
  15010. value: 'create',
  15011. label: translate('create')
  15012. }, {
  15013. value: 'assignment',
  15014. label: translate('assignment')
  15015. }, {
  15016. value: 'complete',
  15017. label: translate('complete')
  15018. }, {
  15019. value: 'delete',
  15020. label: translate('delete')
  15021. }, {
  15022. value: 'update',
  15023. label: translate('update')
  15024. }, {
  15025. value: 'timeout',
  15026. label: translate('timeout')
  15027. }];
  15028. }
  15029. if (is(element, 'bpmn:SequenceFlow')) {
  15030. return [{
  15031. value: 'take',
  15032. label: translate('take')
  15033. }];
  15034. }
  15035. return [{
  15036. value: 'start',
  15037. label: translate('start')
  15038. }, {
  15039. value: 'end',
  15040. label: translate('end')
  15041. }];
  15042. }
  15043. return jsx(SelectEntry, {
  15044. id: id,
  15045. label: translate('Event type'),
  15046. getValue: getValue,
  15047. setValue: setValue,
  15048. getOptions: getOptions
  15049. });
  15050. }
  15051. function ListenerId({
  15052. id,
  15053. element,
  15054. listener
  15055. }) {
  15056. const translate = useService('translate');
  15057. const debounce = useService('debounceInput');
  15058. const commandStack = useService('commandStack');
  15059. let options = {
  15060. element,
  15061. id: id,
  15062. label: translate('Listener ID'),
  15063. debounce,
  15064. isEdited: isTextFieldEntryEdited,
  15065. setValue: value => {
  15066. commandStack.execute('element.updateModdleProperties', {
  15067. element,
  15068. moddleElement: listener,
  15069. properties: {
  15070. 'camunda:id': value
  15071. }
  15072. });
  15073. },
  15074. getValue: () => {
  15075. return listener.get('camunda:id');
  15076. }
  15077. };
  15078. return TextFieldEntry(options);
  15079. }
  15080. function ListenerType({
  15081. id,
  15082. element,
  15083. listener
  15084. }) {
  15085. const modeling = useService('modeling');
  15086. const translate = useService('translate');
  15087. const bpmnFactory = useService('bpmnFactory');
  15088. function getValue() {
  15089. return getListenerType(listener);
  15090. }
  15091. function setValue(value) {
  15092. const properties = getDefaultImplementationProperties(value, bpmnFactory);
  15093. modeling.updateModdleProperties(element, listener, properties);
  15094. }
  15095. function getOptions() {
  15096. return getListenerTypeOptions(translate);
  15097. }
  15098. return jsx(SelectEntry, {
  15099. id: id,
  15100. label: translate('Listener type'),
  15101. getValue: getValue,
  15102. setValue: setValue,
  15103. getOptions: getOptions
  15104. });
  15105. }
  15106. function ImplementationDetails(props) {
  15107. const {
  15108. idPrefix,
  15109. element,
  15110. listener
  15111. } = props;
  15112. const type = getListenerType(listener);
  15113. if (type === 'class') {
  15114. return [{
  15115. id: getPrefixedId(idPrefix, 'javaClass'),
  15116. component: JavaClass,
  15117. businessObject: listener
  15118. }];
  15119. } else if (type === 'expression') {
  15120. return [{
  15121. id: getPrefixedId(idPrefix, 'expression'),
  15122. component: Expression,
  15123. businessObject: listener
  15124. }];
  15125. } else if (type === 'delegateExpression') {
  15126. return [{
  15127. id: getPrefixedId(idPrefix, 'delegateExpression'),
  15128. component: DelegateExpression,
  15129. businessObject: listener
  15130. }];
  15131. } else if (type === 'script') {
  15132. return ScriptProps({
  15133. element,
  15134. script: listener.get('script'),
  15135. prefix: idPrefix
  15136. });
  15137. }
  15138. // should never happen
  15139. return [];
  15140. }
  15141. function EventTypeDetails(props) {
  15142. const {
  15143. idPrefix,
  15144. element,
  15145. listener
  15146. } = props;
  15147. const type = listener.get('event');
  15148. if (type === 'timeout') {
  15149. return TimerProps({
  15150. element,
  15151. listener,
  15152. timerEventDefinition: getTimerEventDefinition$1(listener),
  15153. idPrefix: idPrefix
  15154. });
  15155. }
  15156. return [];
  15157. }
  15158. function Field(props) {
  15159. const {
  15160. element,
  15161. id: idPrefix,
  15162. index,
  15163. item: field,
  15164. open
  15165. } = props;
  15166. const fieldId = `${idPrefix}-field-${index}`;
  15167. return jsx(CollapsibleEntry, {
  15168. id: fieldId,
  15169. element: element,
  15170. entries: FieldInjection({
  15171. element,
  15172. field,
  15173. idPrefix: fieldId
  15174. }),
  15175. label: field.get('name') || '<empty>',
  15176. open: open
  15177. });
  15178. }
  15179. function Fields(props) {
  15180. const {
  15181. id,
  15182. element,
  15183. listener
  15184. } = props;
  15185. const bpmnFactory = useService('bpmnFactory');
  15186. const commandStack = useService('commandStack');
  15187. const translate = useService('translate');
  15188. const fields = listener.get('fields');
  15189. function addField() {
  15190. const field = createElement('camunda:Field', {}, listener, bpmnFactory);
  15191. commandStack.execute('element.updateModdleProperties', {
  15192. element,
  15193. moddleElement: listener,
  15194. properties: {
  15195. fields: [...listener.get('fields'), field]
  15196. }
  15197. });
  15198. }
  15199. function removeField(field) {
  15200. commandStack.execute('element.updateModdleProperties', {
  15201. element,
  15202. moddleElement: listener,
  15203. properties: {
  15204. fields: without(listener.get('fields'), field)
  15205. }
  15206. });
  15207. }
  15208. return jsx(ListEntry, {
  15209. id: id,
  15210. element: element,
  15211. label: translate('Field injection'),
  15212. items: fields,
  15213. component: Field,
  15214. onAdd: addField,
  15215. onRemove: removeField,
  15216. compareFn: compareName,
  15217. autoFocusEntry: true
  15218. });
  15219. }
  15220. function addListenerFactory({
  15221. bpmnFactory,
  15222. commandStack,
  15223. element,
  15224. listenerGroup
  15225. }) {
  15226. return function (event) {
  15227. event.stopPropagation();
  15228. const listener = bpmnFactory.create(listenerGroup, {
  15229. event: getDefaultEvent(element, listenerGroup),
  15230. class: ''
  15231. });
  15232. const businessObject = getListenersContainer(element);
  15233. addExtensionElements(element, businessObject, listener, bpmnFactory, commandStack);
  15234. };
  15235. }
  15236. function addTaskListenerFactory(props) {
  15237. return addListenerFactory({
  15238. ...props,
  15239. listenerGroup: 'camunda:TaskListener'
  15240. });
  15241. }
  15242. function addExecutionListenerFactory(props) {
  15243. return addListenerFactory({
  15244. ...props,
  15245. listenerGroup: 'camunda:ExecutionListener'
  15246. });
  15247. }
  15248. // helper
  15249. /**
  15250. * Get a readable label for a listener.
  15251. *
  15252. * @param {ModdleElement} listener
  15253. * @param {string => string} [translate]
  15254. */
  15255. function getListenerLabel(listener, translate = value => value) {
  15256. const event = listener.get('event');
  15257. const implementationType = getListenerType(listener);
  15258. return `${translate(EVENT_TO_LABEL[event])}: ${translate(IMPLEMENTATION_TYPE_TO_LABEL[implementationType])}`;
  15259. }
  15260. function getListenerTypeOptions(translate) {
  15261. return Object.entries(IMPLEMENTATION_TYPE_TO_LABEL).map(([value, label]) => ({
  15262. value,
  15263. label: translate(label)
  15264. }));
  15265. }
  15266. function getListenerType(listener) {
  15267. return getImplementationType(listener);
  15268. }
  15269. function getDefaultEvent(element, listenerGroup) {
  15270. if (listenerGroup === 'camunda:TaskListener') return 'create';
  15271. return is(element, 'bpmn:SequenceFlow') ? 'take' : 'start';
  15272. }
  15273. function getDefaultImplementationProperties(type, bpmnFactory) {
  15274. switch (type) {
  15275. case 'class':
  15276. return {
  15277. ...DEFAULT_PROPS,
  15278. 'class': ''
  15279. };
  15280. case 'expression':
  15281. return {
  15282. ...DEFAULT_PROPS,
  15283. 'expression': ''
  15284. };
  15285. case 'delegateExpression':
  15286. return {
  15287. ...DEFAULT_PROPS,
  15288. 'delegateExpression': ''
  15289. };
  15290. case 'script':
  15291. return {
  15292. ...DEFAULT_PROPS,
  15293. 'script': bpmnFactory.create('camunda:Script')
  15294. };
  15295. }
  15296. }
  15297. function getDefaultEventTypeProperties(type, bpmnFactory) {
  15298. switch (type) {
  15299. case 'timeout':
  15300. return {
  15301. ...DEFAULT_EVENT_PROPS,
  15302. eventDefinitions: [bpmnFactory.create('bpmn:TimerEventDefinition')],
  15303. event: type
  15304. };
  15305. default:
  15306. return {
  15307. ...DEFAULT_EVENT_PROPS,
  15308. event: type
  15309. };
  15310. }
  15311. }
  15312. function getPrefixedId(prefix, id) {
  15313. return `${prefix}-${id}`;
  15314. }
  15315. function compareName(field, anotherField) {
  15316. const [name = '', anotherName = ''] = [field.name, anotherField.name];
  15317. return name === anotherName ? 0 : name > anotherName ? 1 : -1;
  15318. }
  15319. function getListenersContainer(element) {
  15320. const businessObject = getBusinessObject(element);
  15321. return businessObject.get('processRef') || businessObject;
  15322. }
  15323. function ProcessVariablesEntry(props) {
  15324. const {
  15325. element
  15326. } = props;
  15327. const [variables, setVariables] = useState([]);
  15328. useEffect(async () => {
  15329. const businessObject = getBusinessObject(element);
  15330. const rootElement = getRootElement(businessObject);
  15331. const scope = getScope(element);
  15332. const rawVariables = await getVariablesForScope(scope, rootElement);
  15333. const withName = populateElementNames(sortByName(rawVariables));
  15334. setVariables(withName);
  15335. }, [element]);
  15336. if (!variables.length) {
  15337. return null;
  15338. }
  15339. const byScope = groupByScope(variables);
  15340. const multiScope = isMultiScope(byScope);
  15341. let variableItems = [];
  15342. // (2) get variables to display
  15343. if (multiScope) {
  15344. // (2a) multiple scopes, sub scopes first
  15345. // assumption: variables extractor fetches parent variables first
  15346. const reversed = map(reverse(keys(byScope)), scopeKey => byScope[scopeKey]);
  15347. variableItems = flatten(reversed);
  15348. } else {
  15349. // (2b) single scope
  15350. variableItems = variables;
  15351. }
  15352. const items = variableItems.map((variable, index) => {
  15353. const id = element.id + '-variable-' + index;
  15354. return {
  15355. id,
  15356. label: variable.name,
  15357. entries: [...ProcessVariableItem({
  15358. idPrefix: id,
  15359. multiScope,
  15360. variable
  15361. })]
  15362. };
  15363. });
  15364. return jsx(ListGroup, {
  15365. ...props,
  15366. items: items,
  15367. shouldSort: false
  15368. });
  15369. }
  15370. function ProcessVariablesProps(props) {
  15371. const {
  15372. element
  15373. } = props;
  15374. if (!canHaveProcessVariables(element)) {
  15375. return null;
  15376. }
  15377. return {
  15378. component: ProcessVariablesEntry,
  15379. shouldSort: false
  15380. };
  15381. }
  15382. function ProcessVariableItem(props) {
  15383. const {
  15384. idPrefix,
  15385. multiScope,
  15386. variable
  15387. } = props;
  15388. let entries = [];
  15389. if (multiScope) {
  15390. entries.push({
  15391. id: idPrefix + '-scope',
  15392. component: Scope,
  15393. idPrefix,
  15394. variable
  15395. });
  15396. }
  15397. entries.push({
  15398. id: idPrefix + '-createdIn',
  15399. component: CreatedIn,
  15400. idPrefix,
  15401. variable
  15402. });
  15403. return entries;
  15404. }
  15405. function Scope(props) {
  15406. const {
  15407. idPrefix,
  15408. variable
  15409. } = props;
  15410. const translate = useService('translate');
  15411. const id = idPrefix + '-scope';
  15412. return jsxs("div", {
  15413. "data-entry-id": id,
  15414. class: "bio-properties-panel-entry",
  15415. children: [jsx("b", {
  15416. style: "font-weight: bold",
  15417. class: "bio-properties-panel-label",
  15418. children: translate('Scope')
  15419. }), jsx("label", {
  15420. id: prefixId(id),
  15421. class: "bio-properties-panel-label",
  15422. children: variable.scope
  15423. })]
  15424. });
  15425. }
  15426. function CreatedIn(props) {
  15427. const {
  15428. idPrefix,
  15429. variable
  15430. } = props;
  15431. const translate = useService('translate');
  15432. const id = idPrefix + '-createdIn';
  15433. const origin = variable.origin.join(', ');
  15434. return jsxs("div", {
  15435. "data-entry-id": id,
  15436. class: "bio-properties-panel-entry",
  15437. children: [jsx("b", {
  15438. style: "font-weight: bold",
  15439. class: "bio-properties-panel-label",
  15440. children: translate('Created in')
  15441. }), jsx("label", {
  15442. id: prefixId(id),
  15443. class: "bio-properties-panel-label",
  15444. children: origin
  15445. })]
  15446. });
  15447. }
  15448. // helper //////////////////////
  15449. function canHaveProcessVariables(element) {
  15450. const businessObject = getBusinessObject(element);
  15451. return isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) || is(element, 'bpmn:Participant') && businessObject.get('processRef');
  15452. }
  15453. function getRootElement(element) {
  15454. const businessObject = getBusinessObject(element);
  15455. if (is(businessObject, 'bpmn:Participant')) {
  15456. return businessObject.processRef;
  15457. }
  15458. if (is(businessObject, 'bpmn:Process')) {
  15459. return businessObject;
  15460. }
  15461. let parent = businessObject;
  15462. while (parent.$parent && !is(parent, 'bpmn:Process')) {
  15463. parent = parent.$parent;
  15464. }
  15465. return parent;
  15466. }
  15467. function getScope(element) {
  15468. const bo = getBusinessObject(element);
  15469. if (is(element, 'bpmn:Participant')) {
  15470. return bo.processRef.id;
  15471. }
  15472. return bo.id;
  15473. }
  15474. function sortByName(variables) {
  15475. return sortBy(variables, function (variable) {
  15476. return variable.name;
  15477. });
  15478. }
  15479. function groupByScope(variables) {
  15480. return groupBy(variables, 'scope');
  15481. }
  15482. function populateElementNames(variables) {
  15483. forEach(variables, function (variable) {
  15484. const names = map(variable.origin, function (element) {
  15485. return element.name || element.id;
  15486. });
  15487. variable.origin = names;
  15488. variable.scope = variable.scope.name || variable.scope.id;
  15489. });
  15490. return variables;
  15491. }
  15492. function isMultiScope(scopedVariables) {
  15493. return keys(scopedVariables).length > 1;
  15494. }
  15495. function reverse(array) {
  15496. return map(array, function (a, i) {
  15497. return array[array.length - 1 - i];
  15498. });
  15499. }
  15500. function prefixId(id) {
  15501. return `bio-properties-panel-${id}`;
  15502. }
  15503. function ScriptTaskProps(props) {
  15504. const {
  15505. element
  15506. } = props;
  15507. if (!is(element, 'bpmn:ScriptTask')) {
  15508. return [];
  15509. }
  15510. const entries = [...ScriptProps({
  15511. element
  15512. })];
  15513. entries.push({
  15514. id: 'scriptResultVariable',
  15515. component: ResultVariable,
  15516. isEdited: isTextFieldEntryEdited
  15517. });
  15518. return entries;
  15519. }
  15520. function ResultVariable(props) {
  15521. const {
  15522. element
  15523. } = props;
  15524. const commandStack = useService('commandStack');
  15525. const translate = useService('translate');
  15526. const debounce = useService('debounceInput');
  15527. const businessObject = getBusinessObject(element);
  15528. const getValue = () => {
  15529. return businessObject.get('camunda:resultVariable');
  15530. };
  15531. const setValue = value => {
  15532. commandStack.execute('element.updateModdleProperties', {
  15533. element,
  15534. moddleElement: businessObject,
  15535. properties: {
  15536. 'camunda:resultVariable': value
  15537. }
  15538. });
  15539. };
  15540. return TextFieldEntry({
  15541. element,
  15542. id: 'scriptResultVariable',
  15543. label: translate('Result variable'),
  15544. getValue,
  15545. setValue,
  15546. debounce
  15547. });
  15548. }
  15549. function TasklistProps(props) {
  15550. const {
  15551. element
  15552. } = props;
  15553. const businessObject = getBusinessObject(element);
  15554. const isEdited = node => {
  15555. return node && !node.checked;
  15556. };
  15557. if (!is(element, 'bpmn:Process') && !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
  15558. return [];
  15559. }
  15560. return [{
  15561. id: 'isStartableInTasklist',
  15562. component: Startable,
  15563. isEdited
  15564. }];
  15565. }
  15566. function Startable(props) {
  15567. const {
  15568. element
  15569. } = props;
  15570. const commandStack = useService('commandStack');
  15571. const translate = useService('translate');
  15572. const process = getProcess$1(element);
  15573. const getValue = () => {
  15574. return process.get('camunda:isStartableInTasklist');
  15575. };
  15576. const setValue = value => {
  15577. commandStack.execute('element.updateModdleProperties', {
  15578. element,
  15579. moddleElement: process,
  15580. properties: {
  15581. 'camunda:isStartableInTasklist': value
  15582. }
  15583. });
  15584. };
  15585. return CheckboxEntry({
  15586. element,
  15587. id: 'isStartableInTasklist',
  15588. label: translate('Startable'),
  15589. getValue,
  15590. setValue
  15591. });
  15592. }
  15593. // helper //////////////////
  15594. function getProcess$1(element) {
  15595. return is(element, 'bpmn:Process') ? getBusinessObject(element) : getBusinessObject(element).get('processRef');
  15596. }
  15597. /**
  15598. * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/tasks/user-task/
  15599. */
  15600. function UserAssignmentProps(props) {
  15601. const {
  15602. element
  15603. } = props;
  15604. if (!is(element, 'camunda:Assignable')) {
  15605. return [];
  15606. }
  15607. return [{
  15608. id: 'assignee',
  15609. component: Assignee,
  15610. isEdited: isTextFieldEntryEdited
  15611. }, {
  15612. id: 'candidateGroups',
  15613. component: CandidateGroups,
  15614. isEdited: isTextFieldEntryEdited
  15615. }, {
  15616. id: 'candidateUsers',
  15617. component: CandidateUsers,
  15618. isEdited: isTextFieldEntryEdited
  15619. }, {
  15620. id: 'dueDate',
  15621. component: DueDate,
  15622. isEdited: isTextFieldEntryEdited
  15623. }, {
  15624. id: 'followUpDate',
  15625. component: FollowUpDate,
  15626. isEdited: isTextFieldEntryEdited
  15627. }, {
  15628. id: 'priority',
  15629. component: Priority,
  15630. isEdited: isTextFieldEntryEdited
  15631. }];
  15632. }
  15633. function Assignee(props) {
  15634. const {
  15635. element
  15636. } = props;
  15637. const commandStack = useService('commandStack');
  15638. const translate = useService('translate');
  15639. const debounce = useService('debounceInput');
  15640. const businessObject = getBusinessObject(element);
  15641. const getValue = () => {
  15642. return businessObject.get('camunda:assignee');
  15643. };
  15644. const setValue = value => {
  15645. commandStack.execute('element.updateModdleProperties', {
  15646. element,
  15647. moddleElement: businessObject,
  15648. properties: {
  15649. 'camunda:assignee': value
  15650. }
  15651. });
  15652. };
  15653. return TextFieldEntry({
  15654. element,
  15655. id: 'assignee',
  15656. label: translate('Assignee'),
  15657. getValue,
  15658. setValue,
  15659. debounce
  15660. });
  15661. }
  15662. function CandidateUsers(props) {
  15663. const {
  15664. element
  15665. } = props;
  15666. const commandStack = useService('commandStack');
  15667. const translate = useService('translate');
  15668. const debounce = useService('debounceInput');
  15669. const businessObject = getBusinessObject(element);
  15670. const getValue = () => {
  15671. return businessObject.get('camunda:candidateUsers');
  15672. };
  15673. const setValue = value => {
  15674. commandStack.execute('element.updateModdleProperties', {
  15675. element,
  15676. moddleElement: businessObject,
  15677. properties: {
  15678. 'camunda:candidateUsers': value
  15679. }
  15680. });
  15681. };
  15682. return TextFieldEntry({
  15683. element,
  15684. id: 'candidateUsers',
  15685. label: translate('Candidate users'),
  15686. getValue,
  15687. setValue,
  15688. debounce
  15689. });
  15690. }
  15691. function CandidateGroups(props) {
  15692. const {
  15693. element
  15694. } = props;
  15695. const commandStack = useService('commandStack');
  15696. const translate = useService('translate');
  15697. const debounce = useService('debounceInput');
  15698. const businessObject = getBusinessObject(element);
  15699. const getValue = () => {
  15700. return businessObject.get('camunda:candidateGroups');
  15701. };
  15702. const setValue = value => {
  15703. commandStack.execute('element.updateModdleProperties', {
  15704. element,
  15705. moddleElement: businessObject,
  15706. properties: {
  15707. 'camunda:candidateGroups': value
  15708. }
  15709. });
  15710. };
  15711. return TextFieldEntry({
  15712. element,
  15713. id: 'candidateGroups',
  15714. label: translate('Candidate groups'),
  15715. getValue,
  15716. setValue,
  15717. debounce
  15718. });
  15719. }
  15720. function DueDate(props) {
  15721. const {
  15722. element
  15723. } = props;
  15724. const commandStack = useService('commandStack');
  15725. const translate = useService('translate');
  15726. const debounce = useService('debounceInput');
  15727. const businessObject = getBusinessObject(element);
  15728. const getValue = () => {
  15729. return businessObject.get('camunda:dueDate');
  15730. };
  15731. const setValue = value => {
  15732. commandStack.execute('element.updateModdleProperties', {
  15733. element,
  15734. moddleElement: businessObject,
  15735. properties: {
  15736. 'camunda:dueDate': value
  15737. }
  15738. });
  15739. };
  15740. return TextFieldEntry({
  15741. element,
  15742. id: 'dueDate',
  15743. label: translate('Due date'),
  15744. description: translate('The due date as an EL expression (e.g. ${someDate}) or an ISO date (e.g. 2015-06-26T09:54:00).'),
  15745. getValue,
  15746. setValue,
  15747. debounce
  15748. });
  15749. }
  15750. function FollowUpDate(props) {
  15751. const {
  15752. element
  15753. } = props;
  15754. const commandStack = useService('commandStack');
  15755. const translate = useService('translate');
  15756. const debounce = useService('debounceInput');
  15757. const businessObject = getBusinessObject(element);
  15758. const getValue = () => {
  15759. return businessObject.get('camunda:followUpDate');
  15760. };
  15761. const setValue = value => {
  15762. commandStack.execute('element.updateModdleProperties', {
  15763. element,
  15764. moddleElement: businessObject,
  15765. properties: {
  15766. 'camunda:followUpDate': value
  15767. }
  15768. });
  15769. };
  15770. return TextFieldEntry({
  15771. element,
  15772. id: 'followUpDate',
  15773. label: translate('Follow up date'),
  15774. description: translate('The follow up date as an EL expression (e.g. ${someDate}) or an ' + 'ISO date (e.g. 2015-06-26T09:54:00).'),
  15775. getValue,
  15776. setValue,
  15777. debounce
  15778. });
  15779. }
  15780. function Priority(props) {
  15781. const {
  15782. element
  15783. } = props;
  15784. const commandStack = useService('commandStack');
  15785. const translate = useService('translate');
  15786. const debounce = useService('debounceInput');
  15787. const businessObject = getBusinessObject(element);
  15788. const getValue = () => {
  15789. return businessObject.get('camunda:priority');
  15790. };
  15791. const setValue = value => {
  15792. commandStack.execute('element.updateModdleProperties', {
  15793. element,
  15794. moddleElement: businessObject,
  15795. properties: {
  15796. 'camunda:priority': value
  15797. }
  15798. });
  15799. };
  15800. return TextFieldEntry({
  15801. element,
  15802. id: 'priority',
  15803. label: translate('Priority'),
  15804. getValue,
  15805. setValue,
  15806. debounce
  15807. });
  15808. }
  15809. function VersionTagProps(props) {
  15810. const {
  15811. element
  15812. } = props;
  15813. const businessObject = getBusinessObject(element);
  15814. if (!is(element, 'bpmn:Process') && !(is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
  15815. return [];
  15816. }
  15817. return [{
  15818. id: 'versionTag',
  15819. component: VersionTag,
  15820. isEdited: isTextFieldEntryEdited
  15821. }];
  15822. }
  15823. function VersionTag(props) {
  15824. const {
  15825. element
  15826. } = props;
  15827. const commandStack = useService('commandStack');
  15828. const translate = useService('translate');
  15829. const debounce = useService('debounceInput');
  15830. const process = getProcess(element);
  15831. const getValue = () => {
  15832. return process.get('camunda:versionTag') || '';
  15833. };
  15834. const setValue = value => {
  15835. commandStack.execute('element.updateModdleProperties', {
  15836. element,
  15837. moddleElement: process,
  15838. properties: {
  15839. 'camunda:versionTag': value
  15840. }
  15841. });
  15842. };
  15843. return TextFieldEntry({
  15844. element,
  15845. id: 'versionTag',
  15846. label: translate('Version tag'),
  15847. getValue,
  15848. setValue,
  15849. debounce
  15850. });
  15851. }
  15852. // helper //////////////////
  15853. function getProcess(element) {
  15854. return is(element, 'bpmn:Process') ? getBusinessObject(element) : getBusinessObject(element).get('processRef');
  15855. }
  15856. const LOW_PRIORITY = 500;
  15857. const CAMUNDA_PLATFORM_GROUPS = [HistoryCleanupGroup, TasklistGroup, CandidateStarterGroup, ImplementationGroup, ExternalTaskGroup, ProcessVariablesGroup, ErrorsGroup, UserAssignmentGroup, FormGroup, FormDataGroup, TaskListenerGroup, StartInitiatorGroup, ScriptGroup, ConditionGroup, CallActivityGroup, AsynchronousContinuationsGroup, JobExecutionGroup, InMappingPropagationGroup, InMappingGroup, InputGroup, ConnectorInputGroup, OutMappingPropagationGroup, OutMappingGroup, OutputGroup, ConnectorOutputGroup, ExecutionListenerGroup, ExtensionPropertiesGroup, FieldInjectionGroup, BusinessKeyGroup];
  15858. /**
  15859. * Provides `camunda` namespace properties.
  15860. *
  15861. * @example
  15862. * ```javascript
  15863. * import BpmnModeler from 'bpmn-js/lib/Modeler';
  15864. * import {
  15865. * BpmnPropertiesPanelModule,
  15866. * BpmnPropertiesProviderModule,
  15867. * CamundaPlatformPropertiesProviderModule
  15868. * } from 'bpmn-js-properties-panel';
  15869. *
  15870. * const modeler = new BpmnModeler({
  15871. * container: '#canvas',
  15872. * propertiesPanel: {
  15873. * parent: '#properties'
  15874. * },
  15875. * additionalModules: [
  15876. * BpmnPropertiesPanelModule,
  15877. * BpmnPropertiesProviderModule,
  15878. * CamundaPlatformPropertiesProviderModule
  15879. * ]
  15880. * });
  15881. * ```
  15882. */
  15883. class CamundaPlatformPropertiesProvider {
  15884. constructor(propertiesPanel, injector) {
  15885. propertiesPanel.registerProvider(LOW_PRIORITY, this);
  15886. this._injector = injector;
  15887. }
  15888. getGroups(element) {
  15889. return groups => {
  15890. // (1) add Camunda Platform specific groups
  15891. groups = groups.concat(this._getGroups(element));
  15892. // (2) update existing groups with Camunda Platform specific properties
  15893. updateGeneralGroup(groups, element);
  15894. updateErrorGroup(groups, element);
  15895. updateEscalationGroup(groups, element);
  15896. updateMultiInstanceGroup(groups, element);
  15897. updateTimerGroup(groups, element);
  15898. // (3) move groups given specific priorities
  15899. moveImplementationGroup(groups);
  15900. return groups;
  15901. };
  15902. }
  15903. _getGroups(element) {
  15904. const groups = CAMUNDA_PLATFORM_GROUPS.map(createGroup => createGroup(element, this._injector));
  15905. // contract: if a group returns null, it should not be displayed at all
  15906. return groups.filter(group => group !== null);
  15907. }
  15908. }
  15909. CamundaPlatformPropertiesProvider.$inject = ['propertiesPanel', 'injector'];
  15910. /**
  15911. * This ensures the <Implementation> group always locates after <Documentation>
  15912. */
  15913. function moveImplementationGroup(groups) {
  15914. const documentationGroupIdx = findGroupIndex(groups, 'documentation');
  15915. if (documentationGroupIdx < 0) {
  15916. return;
  15917. }
  15918. return moveGroup(groups, 'CamundaPlatform__Implementation', documentationGroupIdx + 1);
  15919. }
  15920. function updateGeneralGroup(groups, element) {
  15921. const generalGroup = findGroup(groups, 'general');
  15922. if (!generalGroup) {
  15923. return;
  15924. }
  15925. const {
  15926. entries
  15927. } = generalGroup;
  15928. // (1) add version tag before executable (if existing)
  15929. const executableEntry = findIndex(entries, entry => entry.id === 'isExecutable');
  15930. const insertIndex = executableEntry >= 0 ? executableEntry : entries.length;
  15931. entries.splice(insertIndex, 0, ...VersionTagProps({
  15932. element
  15933. }));
  15934. }
  15935. function updateErrorGroup(groups, element) {
  15936. const errorGroup = findGroup(groups, 'error');
  15937. if (!errorGroup) {
  15938. return;
  15939. }
  15940. const {
  15941. entries
  15942. } = errorGroup;
  15943. ErrorProps({
  15944. element,
  15945. entries
  15946. });
  15947. }
  15948. function updateMultiInstanceGroup(groups, element) {
  15949. const multiInstanceGroup = findGroup(groups, 'multiInstance');
  15950. if (!multiInstanceGroup) {
  15951. return;
  15952. }
  15953. const {
  15954. entries
  15955. } = multiInstanceGroup;
  15956. MultiInstanceProps({
  15957. element,
  15958. entries
  15959. });
  15960. }
  15961. function updateEscalationGroup(groups, element) {
  15962. const escalationGroup = findGroup(groups, 'escalation');
  15963. if (!escalationGroup) {
  15964. return;
  15965. }
  15966. const {
  15967. entries
  15968. } = escalationGroup;
  15969. EscalationProps({
  15970. element,
  15971. entries
  15972. });
  15973. }
  15974. function updateTimerGroup(groups, element) {
  15975. const timerEventGroup = findGroup(groups, 'timer');
  15976. if (!timerEventGroup) {
  15977. return;
  15978. }
  15979. timerEventGroup.entries = [...TimerProps({
  15980. element
  15981. })];
  15982. }
  15983. function ImplementationGroup(element, injector) {
  15984. const translate = injector.get('translate');
  15985. const group = {
  15986. label: translate('Implementation'),
  15987. id: 'CamundaPlatform__Implementation',
  15988. component: Group,
  15989. entries: [...ImplementationProps({
  15990. element
  15991. })]
  15992. };
  15993. if (group.entries.length) {
  15994. return group;
  15995. }
  15996. return null;
  15997. }
  15998. function ErrorsGroup(element, injector) {
  15999. const translate = injector.get('translate');
  16000. const group = {
  16001. label: translate('Errors'),
  16002. id: 'CamundaPlatform__Errors',
  16003. component: ListGroup,
  16004. ...ErrorsProps({
  16005. element,
  16006. injector
  16007. })
  16008. };
  16009. if (group.items) {
  16010. return group;
  16011. }
  16012. return null;
  16013. }
  16014. function UserAssignmentGroup(element, injector) {
  16015. const translate = injector.get('translate');
  16016. const group = {
  16017. label: translate('User assignment'),
  16018. id: 'CamundaPlatform__UserAssignment',
  16019. component: Group,
  16020. entries: [...UserAssignmentProps({
  16021. element
  16022. })]
  16023. };
  16024. if (group.entries.length) {
  16025. return group;
  16026. }
  16027. return null;
  16028. }
  16029. function ScriptGroup(element, injector) {
  16030. const translate = injector.get('translate');
  16031. const group = {
  16032. label: translate('Script'),
  16033. id: 'CamundaPlatform__Script',
  16034. component: Group,
  16035. entries: [...ScriptTaskProps({
  16036. element
  16037. })]
  16038. };
  16039. if (group.entries.length) {
  16040. return group;
  16041. }
  16042. return null;
  16043. }
  16044. function CallActivityGroup(element, injector) {
  16045. const translate = injector.get('translate');
  16046. const group = {
  16047. label: translate('Called element'),
  16048. id: 'CamundaPlatform__CallActivity',
  16049. component: Group,
  16050. entries: [...CallActivityProps({
  16051. element
  16052. })]
  16053. };
  16054. if (group.entries.length) {
  16055. return group;
  16056. }
  16057. return null;
  16058. }
  16059. function ConditionGroup(element, injector) {
  16060. const translate = injector.get('translate');
  16061. const group = {
  16062. label: translate('Condition'),
  16063. id: 'CamundaPlatform__Condition',
  16064. component: Group,
  16065. entries: [...ConditionProps({
  16066. element
  16067. })]
  16068. };
  16069. if (group.entries.length) {
  16070. return group;
  16071. }
  16072. return null;
  16073. }
  16074. function StartInitiatorGroup(element, injector) {
  16075. const translate = injector.get('translate');
  16076. const group = {
  16077. label: translate('Start initiator'),
  16078. id: 'CamundaPlatform__StartInitiator',
  16079. component: Group,
  16080. entries: [...InitiatorProps({
  16081. element
  16082. })]
  16083. };
  16084. if (group.entries.length) {
  16085. return group;
  16086. }
  16087. return null;
  16088. }
  16089. function ExternalTaskGroup(element, injector) {
  16090. const translate = injector.get('translate');
  16091. const group = {
  16092. label: translate('External task'),
  16093. id: 'CamundaPlatform__ExternalTask',
  16094. component: Group,
  16095. entries: [...ExternalTaskPriorityProps({
  16096. element
  16097. })]
  16098. };
  16099. if (group.entries.length) {
  16100. return group;
  16101. }
  16102. return null;
  16103. }
  16104. function AsynchronousContinuationsGroup(element, injector) {
  16105. const translate = injector.get('translate');
  16106. const group = {
  16107. label: translate('Asynchronous continuations'),
  16108. id: 'CamundaPlatform__AsynchronousContinuations',
  16109. component: Group,
  16110. entries: [...AsynchronousContinuationsProps({
  16111. element
  16112. })]
  16113. };
  16114. if (group.entries.length) {
  16115. return group;
  16116. }
  16117. return null;
  16118. }
  16119. function JobExecutionGroup(element, injector) {
  16120. const translate = injector.get('translate');
  16121. const group = {
  16122. label: translate('Job execution'),
  16123. id: 'CamundaPlatform__JobExecution',
  16124. component: Group,
  16125. entries: [...JobExecutionProps({
  16126. element
  16127. })]
  16128. };
  16129. if (group.entries.length) {
  16130. return group;
  16131. }
  16132. return null;
  16133. }
  16134. function CandidateStarterGroup(element, injector) {
  16135. const translate = injector.get('translate');
  16136. const group = {
  16137. label: translate('Candidate starter'),
  16138. id: 'CamundaPlatform__CandidateStarter',
  16139. component: Group,
  16140. entries: [...CandidateStarterProps({
  16141. element
  16142. })]
  16143. };
  16144. if (group.entries.length) {
  16145. return group;
  16146. }
  16147. return null;
  16148. }
  16149. function FieldInjectionGroup(element, injector) {
  16150. const translate = injector.get('translate');
  16151. const group = {
  16152. label: translate('Field injections'),
  16153. id: 'CamundaPlatform__FieldInjection',
  16154. component: ListGroup,
  16155. ...FieldInjectionProps({
  16156. element,
  16157. injector
  16158. })
  16159. };
  16160. if (group.items) {
  16161. return group;
  16162. }
  16163. return null;
  16164. }
  16165. function HistoryCleanupGroup(element, injector) {
  16166. const translate = injector.get('translate');
  16167. const group = {
  16168. label: translate('History cleanup'),
  16169. id: 'CamundaPlatform__HistoryCleanup',
  16170. component: Group,
  16171. entries: [...HistoryCleanupProps({
  16172. element
  16173. })]
  16174. };
  16175. if (group.entries.length) {
  16176. return group;
  16177. }
  16178. return null;
  16179. }
  16180. function TasklistGroup(element, injector) {
  16181. const translate = injector.get('translate');
  16182. const group = {
  16183. label: translate('Tasklist'),
  16184. id: 'CamundaPlatform__Tasklist',
  16185. component: Group,
  16186. entries: [...TasklistProps({
  16187. element
  16188. })]
  16189. };
  16190. if (group.entries.length) {
  16191. return group;
  16192. }
  16193. return null;
  16194. }
  16195. function InMappingGroup(element, injector) {
  16196. const translate = injector.get('translate');
  16197. const group = {
  16198. label: translate('In mappings'),
  16199. id: 'CamundaPlatform__InMapping',
  16200. component: ListGroup,
  16201. ...InMappingProps({
  16202. element,
  16203. injector
  16204. })
  16205. };
  16206. if (group.items) {
  16207. return group;
  16208. }
  16209. return null;
  16210. }
  16211. function InMappingPropagationGroup(element, injector) {
  16212. const translate = injector.get('translate');
  16213. const group = {
  16214. label: translate('In mapping propagation'),
  16215. id: 'CamundaPlatform__InMappingPropagation',
  16216. component: Group,
  16217. entries: [...InMappingPropagationProps({
  16218. element
  16219. })]
  16220. };
  16221. if (group.entries.length) {
  16222. return group;
  16223. }
  16224. return null;
  16225. }
  16226. function OutMappingGroup(element, injector) {
  16227. const translate = injector.get('translate');
  16228. const group = {
  16229. label: translate('Out mappings'),
  16230. id: 'CamundaPlatform__OutMapping',
  16231. component: ListGroup,
  16232. ...OutMappingProps({
  16233. element,
  16234. injector
  16235. })
  16236. };
  16237. if (group.items) {
  16238. return group;
  16239. }
  16240. return null;
  16241. }
  16242. function OutMappingPropagationGroup(element, injector) {
  16243. const translate = injector.get('translate');
  16244. const group = {
  16245. label: translate('Out mapping propagation'),
  16246. id: 'CamundaPlatform__OutMappingPropagation',
  16247. component: Group,
  16248. entries: [...OutMappingPropagationProps({
  16249. element
  16250. })]
  16251. };
  16252. if (group.entries.length) {
  16253. return group;
  16254. }
  16255. return null;
  16256. }
  16257. function ProcessVariablesGroup(element, injector) {
  16258. const translate = injector.get('translate');
  16259. const variableProps = ProcessVariablesProps({
  16260. element,
  16261. injector
  16262. });
  16263. if (!variableProps) {
  16264. return null;
  16265. }
  16266. const group = {
  16267. label: translate('Process variables'),
  16268. id: 'CamundaPlatform__ProcessVariables',
  16269. ...variableProps
  16270. };
  16271. return group;
  16272. }
  16273. function FormDataGroup(element, injector) {
  16274. const translate = injector.get('translate');
  16275. const group = {
  16276. label: translate('Form fields'),
  16277. id: 'CamundaPlatform__FormData',
  16278. component: ListGroup,
  16279. ...FormDataProps({
  16280. element,
  16281. injector
  16282. })
  16283. };
  16284. if (group.items) {
  16285. return group;
  16286. }
  16287. return null;
  16288. }
  16289. function BusinessKeyGroup(element, injector) {
  16290. const translate = injector.get('translate');
  16291. const group = {
  16292. label: translate('Business key'),
  16293. id: 'CamundaPlatform__BusinessKey',
  16294. component: Group,
  16295. entries: [...BusinessKeyProps$1({
  16296. element
  16297. })]
  16298. };
  16299. if (group.entries.length) {
  16300. return group;
  16301. }
  16302. return null;
  16303. }
  16304. function FormGroup(element, injector) {
  16305. const translate = injector.get('translate');
  16306. const group = {
  16307. label: translate('Forms'),
  16308. id: 'CamundaPlatform__Form',
  16309. component: Group,
  16310. entries: [...FormProps({
  16311. element
  16312. })]
  16313. };
  16314. if (group.entries.length) {
  16315. return group;
  16316. }
  16317. return null;
  16318. }
  16319. function ExecutionListenerGroup(element, injector) {
  16320. const translate = injector.get('translate');
  16321. const group = {
  16322. label: translate('Execution listeners'),
  16323. id: 'CamundaPlatform__ExecutionListener',
  16324. component: ListGroup,
  16325. ...ExecutionListenerProps({
  16326. element,
  16327. injector
  16328. })
  16329. };
  16330. if (group.items) {
  16331. return group;
  16332. }
  16333. return null;
  16334. }
  16335. function TaskListenerGroup(element, injector) {
  16336. const translate = injector.get('translate');
  16337. const group = {
  16338. label: translate('Task listeners'),
  16339. id: 'CamundaPlatform__TaskListener',
  16340. component: ListGroup,
  16341. ...TaskListenerProps({
  16342. element,
  16343. injector
  16344. })
  16345. };
  16346. if (group.items) {
  16347. return group;
  16348. }
  16349. return null;
  16350. }
  16351. function InputGroup(element, injector) {
  16352. const translate = injector.get('translate');
  16353. const group = {
  16354. label: translate('Inputs'),
  16355. id: 'CamundaPlatform__Input',
  16356. component: ListGroup,
  16357. ...InputProps({
  16358. element,
  16359. injector
  16360. })
  16361. };
  16362. if (group.items) {
  16363. return group;
  16364. }
  16365. return null;
  16366. }
  16367. function OutputGroup(element, injector) {
  16368. const translate = injector.get('translate');
  16369. const group = {
  16370. label: translate('Outputs'),
  16371. id: 'CamundaPlatform__Output',
  16372. component: ListGroup,
  16373. ...OutputProps({
  16374. element,
  16375. injector
  16376. })
  16377. };
  16378. if (group.items) {
  16379. return group;
  16380. }
  16381. return null;
  16382. }
  16383. function ConnectorInputGroup(element, injector) {
  16384. const translate = injector.get('translate');
  16385. const group = {
  16386. label: translate('Connector inputs'),
  16387. id: 'CamundaPlatform__ConnectorInput',
  16388. component: ListGroup,
  16389. ...ConnectorInputProps({
  16390. element,
  16391. injector
  16392. })
  16393. };
  16394. if (group.items) {
  16395. return group;
  16396. }
  16397. return null;
  16398. }
  16399. function ConnectorOutputGroup(element, injector) {
  16400. const translate = injector.get('translate');
  16401. const group = {
  16402. label: translate('Connector outputs'),
  16403. id: 'CamundaPlatform__ConnectorOutput',
  16404. component: ListGroup,
  16405. ...ConnectorOutputProps({
  16406. element,
  16407. injector
  16408. })
  16409. };
  16410. if (group.items) {
  16411. return group;
  16412. }
  16413. return null;
  16414. }
  16415. function ExtensionPropertiesGroup(element, injector) {
  16416. const translate = injector.get('translate');
  16417. const group = {
  16418. label: translate('Extension properties'),
  16419. id: 'CamundaPlatform__ExtensionProperties',
  16420. component: ListGroup,
  16421. ...ExtensionPropertiesProps({
  16422. element,
  16423. injector
  16424. })
  16425. };
  16426. if (group.items) {
  16427. return group;
  16428. }
  16429. return null;
  16430. }
  16431. // helper /////////////////////
  16432. function findGroup(groups, id) {
  16433. return groups.find(g => g.id === id);
  16434. }
  16435. function findGroupIndex(groups, id) {
  16436. return findIndex(groups, g => g.id === id);
  16437. }
  16438. function moveGroup(groups, id, position) {
  16439. const groupIndex = findGroupIndex(groups, id);
  16440. if (position < 0 || groupIndex < 0) {
  16441. return;
  16442. }
  16443. return mutate(groups, groupIndex, position);
  16444. }
  16445. var index = {
  16446. __init__: ['camundaPlatformPropertiesProvider'],
  16447. camundaPlatformPropertiesProvider: ['type', CamundaPlatformPropertiesProvider]
  16448. };
  16449. /* eslint-disable react-hooks/rules-of-hooks */
  16450. const TooltipProvider = {
  16451. 'group-assignmentDefinition': element => {
  16452. const translate = useService('translate');
  16453. return jsxs("div", {
  16454. children: [translate('Define who the task is assigned to. One or all of the following attributes can be specified simultaneously. '), jsx("a", {
  16455. href: "https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#assignments",
  16456. target: "_blank",
  16457. rel: "noopener",
  16458. title: translate('User task documentation'),
  16459. children: translate('Learn more.')
  16460. })]
  16461. });
  16462. },
  16463. 'group-condition': element => {
  16464. const translate = useService('translate');
  16465. return jsxs("div", {
  16466. children: [translate('Define a boolean condition expression that defines when this flow is taken. '), jsx("a", {
  16467. href: "https://docs.camunda.io/docs/components/modeler/bpmn/exclusive-gateways/#conditions",
  16468. target: "_blank",
  16469. rel: "noopener",
  16470. title: translate('Conditions documentation'),
  16471. children: translate('Learn how to define conditions.')
  16472. })]
  16473. });
  16474. },
  16475. 'group-businessRuleImplementation': element => {
  16476. const translate = useService('translate');
  16477. return jsxs("div", {
  16478. children: [translate('Evaluate a business rule, for example a DMN. To add a custom implementation, use a job worker. '), jsx("a", {
  16479. href: "https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#defining-a-task",
  16480. target: "_blank",
  16481. rel: "noopener",
  16482. title: translate('Business rule task documentation'),
  16483. children: translate('Learn more.')
  16484. })]
  16485. });
  16486. },
  16487. 'group-scriptImplementation': element => {
  16488. const translate = useService('translate');
  16489. return jsxs("div", {
  16490. children: [translate('Implement a script task using an inline FEEL expression. To add a custom implementation, use a job worker. '), jsx("a", {
  16491. href: "https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-script-task",
  16492. target: "_blank",
  16493. rel: "noopener",
  16494. title: translate('Script task documentation'),
  16495. children: translate('Learn more.')
  16496. })]
  16497. });
  16498. },
  16499. 'group-form': element => {
  16500. const translate = useService('translate');
  16501. return jsxs("div", {
  16502. children: [translate('Link or embed a form created with the Camunda Forms editor. To associate a custom form, application, or URL to the user task, specify a form key. '), jsx("a", {
  16503. href: "https://docs.camunda.io/docs/guides/utilizing-forms/#connect-your-form-to-a-bpmn-diagram",
  16504. target: "_blank",
  16505. rel: "noopener",
  16506. title: translate('User task form documentation'),
  16507. children: translate('Learn more.')
  16508. })]
  16509. });
  16510. },
  16511. 'group-message': element => {
  16512. const translate = useService('translate');
  16513. if (is(element, 'bpmn:ReceiveTask')) {
  16514. return jsxs("div", {
  16515. children: [translate('Define the name of the message (e.g. '), jsx("code", {
  16516. children: "Money collected"
  16517. }), translate(') and the '), jsx("code", {
  16518. children: "correlationKey"
  16519. }), translate(' expression (e.g. '), jsx("code", {
  16520. children: "= orderId"
  16521. }), translate(')'), translate(' to subscribe to. '), translate('Learn more how to '), jsx("a", {
  16522. href: "https://docs.camunda.io/docs/components/modeler/bpmn/send-tasks",
  16523. target: "_blank",
  16524. rel: "noopener",
  16525. title: translate('Send task documentation'),
  16526. children: translate('send ')
  16527. }), translate('and '), jsx("a", {
  16528. href: "https://docs.camunda.io/docs/components/modeler/bpmn/receive-tasks",
  16529. target: "_blank",
  16530. rel: "noopener",
  16531. title: translate('Receive task documentation'),
  16532. children: translate('receive messages. ')
  16533. })]
  16534. });
  16535. }
  16536. return jsxs("div", {
  16537. children: [translate('Define the name of the message (e.g. '), jsx("code", {
  16538. children: "Money collected"
  16539. }), translate(') and the '), jsx("code", {
  16540. children: "correlationKey"
  16541. }), translate(' expression (e.g. '), jsx("code", {
  16542. children: "= orderId"
  16543. }), translate(')'), translate(' to subscribe to. '), jsx("a", {
  16544. href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#messages",
  16545. target: "_blank",
  16546. rel: "noopener",
  16547. title: translate('Message event documentation'),
  16548. children: translate('Learn more.')
  16549. })]
  16550. });
  16551. },
  16552. 'group-calledElement': element => {
  16553. const translate = useService('translate');
  16554. return jsxs("div", {
  16555. children: [translate('Define the ID of the process to call (e.g. '), " ", jsx("code", {
  16556. children: "shipping-process"
  16557. }), translate(' or '), jsx("code", {
  16558. children: "= \"shipping-\" + tenantId"
  16559. }), " ", translate('). '), jsx("a", {
  16560. href: "https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/",
  16561. target: "_blank",
  16562. rel: "noopener",
  16563. title: translate('Call activity documentation'),
  16564. children: translate('Learn more.')
  16565. })]
  16566. });
  16567. },
  16568. 'group-taskDefinition': element => {
  16569. const translate = useService('translate');
  16570. if (is(element, 'bpmn:ServiceTask')) {
  16571. return jsxs("div", {
  16572. children: [translate('Specify which job workers handle the task work to execute a service (e.g. '), jsx("code", {
  16573. children: "order-items"
  16574. }), translate('). '), jsx("a", {
  16575. href: "https://docs.camunda.io/docs/components/modeler/bpmn/service-tasks",
  16576. target: "_blank",
  16577. rel: "noopener",
  16578. title: translate('Service task documentation'),
  16579. children: translate('Learn more.')
  16580. })]
  16581. });
  16582. }
  16583. if (is(element, 'bpmn:BusinessRuleTask')) {
  16584. return jsxs("div", {
  16585. children: [translate('Specify which job workers handle the task work to evaluate business rules. '), jsx("a", {
  16586. href: "https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#job-worker-implementation",
  16587. target: "_blank",
  16588. rel: "noopener",
  16589. title: translate('Business rule task documentation'),
  16590. children: translate('Learn more.')
  16591. })]
  16592. });
  16593. }
  16594. if (is(element, 'bpmn:ScriptTask')) {
  16595. return jsxs("div", {
  16596. children: [translate('Specify which job workers handle the task work to execute a script. '), jsx("a", {
  16597. href: "https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-task",
  16598. target: "_blank",
  16599. rel: "noopener",
  16600. title: translate('Script task documentation'),
  16601. children: translate('Learn more.')
  16602. })]
  16603. });
  16604. }
  16605. if (is(element, 'bpmn:SendTask')) {
  16606. return jsxs("div", {
  16607. children: [translate('Specify which job workers handle the task work to send a message (e.g. '), jsx("code", {
  16608. children: "kafka"
  16609. }), translate(' or '), jsx("code", {
  16610. children: "mail"
  16611. }), translate('). '), jsx("a", {
  16612. href: "https://docs.camunda.io/docs/components/modeler/bpmn/send-tasks/#defining-a-task",
  16613. target: "_blank",
  16614. rel: "noopener",
  16615. title: translate('Send task documentation'),
  16616. children: translate('Learn more.')
  16617. })]
  16618. });
  16619. }
  16620. if (is(element, 'bpmn:ThrowEvent')) {
  16621. return jsxs("div", {
  16622. children: [translate('Specify which job workers handle the event work. '), jsx("a", {
  16623. href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#message-throw-events",
  16624. target: "_blank",
  16625. rel: "noopener",
  16626. title: translate('Message throw event documentation'),
  16627. children: translate('Learn more.')
  16628. })]
  16629. });
  16630. }
  16631. },
  16632. 'group-multiInstance': element => {
  16633. const translate = useService('translate');
  16634. return jsxs("div", {
  16635. children: [translate('Execute this task for each element of a given collection. '), jsx("br", {}), translate('Define an input collection expression that defines the collection to iterate over (e.g. '), jsx("code", {
  16636. children: "= items"
  16637. }), translate('). '), translate('To collect the output define the output collection and the output element expressions. '), jsx("a", {
  16638. href: "https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/#defining-the-collection-to-iterate-over",
  16639. target: "_blank",
  16640. rel: "noopener",
  16641. title: translate('Multi instance documentation'),
  16642. children: translate('Learn more.')
  16643. })]
  16644. });
  16645. },
  16646. 'group-error': element => {
  16647. const translate = useService('translate');
  16648. return jsxs("div", {
  16649. children: [translate('Define an error code (e.g. '), jsx("code", {
  16650. children: "order-not-found"
  16651. }), translate('). '), jsx("a", {
  16652. href: "https://docs.camunda.io/docs/components/modeler/bpmn/error-events/#defining-the-error",
  16653. target: "_blank",
  16654. rel: "noopener",
  16655. title: translate('Error event documentation'),
  16656. children: translate('Learn more.')
  16657. })]
  16658. });
  16659. },
  16660. 'group-inputs': element => {
  16661. const translate = useService('translate');
  16662. return jsxs("div", {
  16663. children: [translate('Create a new local variable in the scope of this task. '), jsx("a", {
  16664. href: "https://docs.camunda.io/docs/components/concepts/variables/#input-mappings",
  16665. target: "_blank",
  16666. rel: "noopener",
  16667. title: translate('Input mappings documentation'),
  16668. children: translate('Learn more.')
  16669. })]
  16670. });
  16671. },
  16672. 'group-outputs': element => {
  16673. const translate = useService('translate');
  16674. return jsxs("div", {
  16675. children: [translate('Customize how result variables are merged into the global scope of the process instance. '), jsx("a", {
  16676. href: "https://docs.camunda.io/docs/components/concepts/variables/#output-mappings",
  16677. target: "_blank",
  16678. rel: "noopener",
  16679. title: translate('Output mappings documentation'),
  16680. children: translate('Learn more.')
  16681. })]
  16682. });
  16683. }
  16684. };
  16685. export { index$3 as BpmnPropertiesPanelModule, index$2 as BpmnPropertiesProviderModule, index as CamundaPlatformPropertiesProviderModule, index$1 as ZeebePropertiesProviderModule, TooltipProvider as ZeebeTooltipProvider, useService };
  16686. //# sourceMappingURL=index.esm.js.map