123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', { value: true });
- var hooks = require('@bpmn-io/properties-panel/preact/hooks');
- var minDash = require('min-dash');
- var propertiesPanel = require('@bpmn-io/properties-panel');
- var preact = require('@bpmn-io/properties-panel/preact');
- var LabelUtil = require('bpmn-js/lib/features/label-editing/LabelUtil');
- var ModelUtil = require('bpmn-js/lib/util/ModelUtil');
- var DiUtil = require('bpmn-js/lib/util/DiUtil');
- var React = require('@bpmn-io/properties-panel/preact/compat');
- var jsxRuntime = require('@bpmn-io/properties-panel/preact/jsx-runtime');
- var minDom = require('min-dom');
- var ModelingUtil = require('bpmn-js/lib/features/modeling/util/ModelingUtil');
- var Ids = require('ids');
- var Collections = require('diagram-js/lib/util/Collections');
- var zeebe = require('@bpmn-io/extract-process-variables/zeebe');
- var arrayMove = require('array-move');
- var extractProcessVariables = require('@bpmn-io/extract-process-variables');
- var translateModule = require('diagram-js/lib/i18n/translate');
- var CommandInterceptor = require('diagram-js/lib/command/CommandInterceptor');
- var semverCompare = require('semver-compare');
- var elementTemplatesValidator = require('@bpmn-io/element-templates-validator');
- var CategoryUtil = require('bpmn-js/lib/features/modeling/behavior/util/CategoryUtil');
- var classnames = require('classnames');
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
- var Ids__default = /*#__PURE__*/_interopDefaultLegacy(Ids);
- var translateModule__default = /*#__PURE__*/_interopDefaultLegacy(translateModule);
- var CommandInterceptor__default = /*#__PURE__*/_interopDefaultLegacy(CommandInterceptor);
- var semverCompare__default = /*#__PURE__*/_interopDefaultLegacy(semverCompare);
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
- const BpmnPropertiesPanelContext = preact.createContext({
- selectedElement: null,
- injector: null,
- getService() {
- return null;
- }
- });
- function useService(type, strict) {
- const {
- getService
- } = hooks.useContext(BpmnPropertiesPanelContext);
- return getService(type, strict);
- }
- function _extends$1o() { _extends$1o = Object.assign || 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); }
- var AssociationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1o({
- width: "32",
- height: "32",
- xmlns: "http://www.w3.org/2000/svg"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- stroke: "#000",
- strokeWidth: "2",
- fill: "none",
- strokeDasharray: "3.3,6",
- strokeLinecap: "square",
- d: "M1.5 30.5l29-29"
- })));
- function _extends$1n() { _extends$1n = Object.assign || 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); }
- var BusinessRuleTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1n({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- d: "M6.079 8.209v3.587H21.44V8.209z"
- })));
- function _extends$1m() { _extends$1m = Object.assign || 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); }
- var CallActivityIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1m({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1l() { _extends$1l = Object.assign || 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); }
- var CollaborationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1l({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("g", {
- fillRule: "evenodd"
- }, /*#__PURE__*/React__default["default"].createElement("path", {
- fillRule: "nonzero",
- d: "M0 0v8.62h32V0H0zm1.655 7.054v-5.37h28.62v5.37H1.656zM0 23.38V32h32v-8.62H0zm1.655 7.054v-5.37h28.62v5.37H1.656z"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- }))));
- function _extends$1k() { _extends$1k = Object.assign || 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); }
- var ConditionalFlowIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1k({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1j() { _extends$1j = Object.assign || 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); }
- var ConnectionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1j({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1i() { _extends$1i = Object.assign || 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); }
- var DataInputOutputAssociationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1i({
- width: "32",
- height: "32",
- xmlns: "http://www.w3.org/2000/svg"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- stroke: "#000",
- strokeWidth: "2",
- strokeLinecap: "round",
- strokeDasharray: "1.1,4.3",
- d: "M1.5 30.5L27 5"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- d: "M31.803.197L26.5 16.107l-1.52-1.52 3.783-11.35-11.35 3.783-1.52-1.52z"
- })));
- function _extends$1h() { _extends$1h = Object.assign || 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); }
- var DataInputIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1h({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1g() { _extends$1g = Object.assign || 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); }
- var DataObjectIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1g({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1f() { _extends$1f = Object.assign || 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); }
- var DataOutputIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1f({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1e() { _extends$1e = Object.assign || 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); }
- var DataStoreIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1e({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1d() { _extends$1d = Object.assign || 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); }
- var DefaultFlowIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1d({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1c() { _extends$1c = Object.assign || 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); }
- var EndEventCancelIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1c({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1b() { _extends$1b = Object.assign || 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); }
- var EndEventCompensationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1b({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$1a() { _extends$1a = Object.assign || 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); }
- var EndEventErrorIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1a({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$19() { _extends$19 = Object.assign || 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); }
- var EndEventEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$19({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$18() { _extends$18 = Object.assign || 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); }
- var EndEventLinkIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$18({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$17() { _extends$17 = Object.assign || 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); }
- var EndEventMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$17({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$16() { _extends$16 = Object.assign || 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); }
- var EndEventMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$16({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$15() { _extends$15 = Object.assign || 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); }
- var EndEventNoneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$15({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$14() { _extends$14 = Object.assign || 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); }
- var EndEventSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$14({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$13() { _extends$13 = Object.assign || 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); }
- var EndEventTerminateIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$13({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$12() { _extends$12 = Object.assign || 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); }
- var EventSubProcessExpandedIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$12({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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",
- opacity: ".97"
- })));
- function _extends$11() { _extends$11 = Object.assign || 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); }
- var GatewayComplexIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$11({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$10() { _extends$10 = Object.assign || 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); }
- var GatewayEventBasedIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$10({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$$() { _extends$$ = Object.assign || 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); }
- var GatewayNoneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$$({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$_() { _extends$_ = Object.assign || 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); }
- var GatewayOrIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$_({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$Z() { _extends$Z = Object.assign || 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); }
- var GatewayParallelIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$Z({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$Y() { _extends$Y = Object.assign || 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); }
- var GatewayXorIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$Y({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$X() { _extends$X = Object.assign || 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); }
- var GroupIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$X({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$W() { _extends$W = Object.assign || 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); }
- var IntermediateEventCatchCancelIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$W({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$V() { _extends$V = Object.assign || 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); }
- var IntermediateEventCatchCompensationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$V({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$U() { _extends$U = Object.assign || 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); }
- var IntermediateEventCatchConditionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$U({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$T() { _extends$T = Object.assign || 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); }
- var IntermediateEventCatchErrorIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$T({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$S() { _extends$S = Object.assign || 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); }
- var IntermediateEventCatchEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$S({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$R() { _extends$R = Object.assign || 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); }
- var IntermediateEventCatchLinkIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$R({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$Q() { _extends$Q = Object.assign || 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); }
- var IntermediateEventCatchMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$Q({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$P() { _extends$P = Object.assign || 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); }
- var IntermediateEventCatchMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$P({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$O() { _extends$O = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingConditionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$O({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$N() { _extends$N = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$N({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$M() { _extends$M = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$M({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$L() { _extends$L = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$L({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$K() { _extends$K = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingParallelIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$K({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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",
- opacity: ".98"
- })));
- function _extends$J() { _extends$J = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$J({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$I() { _extends$I = Object.assign || 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); }
- var IntermediateEventCatchNonInterruptingTimerIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$I({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$H() { _extends$H = Object.assign || 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); }
- var IntermediateEventCatchParallelMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$H({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$G() { _extends$G = Object.assign || 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); }
- var IntermediateEventCatchSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$G({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$F() { _extends$F = Object.assign || 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); }
- var IntermediateEventCatchTimerIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$F({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$E() { _extends$E = Object.assign || 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); }
- var IntermediateEventNoneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$E({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$D() { _extends$D = Object.assign || 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); }
- var IntermediateEventThrowCompensationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$D({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$C() { _extends$C = Object.assign || 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); }
- var IntermediateEventThrowEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$C({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$B() { _extends$B = Object.assign || 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); }
- var IntermediateEventThrowLinkIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$B({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$A() { _extends$A = Object.assign || 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); }
- var IntermediateEventThrowMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$A({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$z() { _extends$z = Object.assign || 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); }
- var IntermediateEventThrowMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$z({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$y() { _extends$y = Object.assign || 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); }
- var IntermediateEventThrowSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$y({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$x() { _extends$x = Object.assign || 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); }
- var LaneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$x({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- d: "M0 7v18.62h32V7H0zm1.655 17.056V8.684h28.62v15.372H1.656z"
- })));
- function _extends$w() { _extends$w = Object.assign || 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); }
- var ManualTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$w({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$v() { _extends$v = Object.assign || 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); }
- var MessageFlowIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$v({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$u() { _extends$u = Object.assign || 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); }
- var ParticipantIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$u({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- d: "M0 5v22.069h32V5H0zm30.276 1.684v18.82H6.62V6.684h23.655zm-28.62 0h3.31v18.82h-3.31V6.684z"
- })));
- function _extends$t() { _extends$t = Object.assign || 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); }
- var ProcessIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$t({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- fillRule: "evenodd",
- 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"
- })));
- function _extends$s() { _extends$s = Object.assign || 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); }
- var ReceiveTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$s({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$r() { _extends$r = Object.assign || 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); }
- var ScriptTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$r({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$q() { _extends$q = Object.assign || 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); }
- var SendTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$q({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$p() { _extends$p = Object.assign || 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); }
- var ServiceTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$p({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$o() { _extends$o = Object.assign || 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); }
- var StartEventCompensationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$o({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$n() { _extends$n = Object.assign || 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); }
- var StartEventConditionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$n({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$m() { _extends$m = Object.assign || 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); }
- var StartEventErrorIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$m({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$l() { _extends$l = Object.assign || 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); }
- var StartEventEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$l({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$k() { _extends$k = Object.assign || 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); }
- var StartEventMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$k({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$j() { _extends$j = Object.assign || 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); }
- var StartEventMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$j({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$i() { _extends$i = Object.assign || 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); }
- var StartEventNonInterruptingConditionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$i({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$h() { _extends$h = Object.assign || 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); }
- var StartEventNonInterruptingEscalationIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$h({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$g() { _extends$g = Object.assign || 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); }
- var StartEventNonInterruptingMessageIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$g({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$f() { _extends$f = Object.assign || 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); }
- var StartEventNonInterruptingMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$f({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$e() { _extends$e = Object.assign || 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); }
- var StartEventNonInterruptingParallelMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$e({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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",
- opacity: ".98"
- })));
- function _extends$d() { _extends$d = Object.assign || 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); }
- var StartEventNonInterruptingSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$d({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$c() { _extends$c = Object.assign || 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); }
- var StartEventNonInterruptingTimerIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$c({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$b() { _extends$b = Object.assign || 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); }
- var StartEventNoneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$b({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$a() { _extends$a = Object.assign || 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); }
- var StartEventParallelMultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$a({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$9() { _extends$9 = Object.assign || 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); }
- var StartEventSignalIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$9({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$8() { _extends$8 = Object.assign || 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); }
- var StartEventTimerIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$8({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$7() { _extends$7 = Object.assign || 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); }
- var SubprocessCollapsedIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$7({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$6() { _extends$6 = Object.assign || 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); }
- var SubprocessExpandedIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$6({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$5() { _extends$5 = Object.assign || 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); }
- var TaskNoneIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$5({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$4() { _extends$4 = Object.assign || 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); }
- var TextAnnotationicon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$4({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$3() { _extends$3 = Object.assign || 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); }
- var TransactionIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$3({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- 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"
- })));
- function _extends$2() { _extends$2 = Object.assign || 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); }
- var UserTaskIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$2({
- xmlns: "http://www.w3.org/2000/svg",
- width: "32",
- height: "32"
- }, props), /*#__PURE__*/React__default["default"].createElement("path", {
- fillRule: "evenodd",
- 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"
- })));
- var iconsByType = {
- 'Association': AssociationIcon,
- 'BusinessRuleTask': BusinessRuleTaskIcon,
- 'CallActivity': CallActivityIcon,
- 'Collaboration': CollaborationIcon,
- 'ConditionalFlow': ConditionalFlowIcon,
- 'SequenceFlow': ConnectionIcon,
- 'DataInput': DataInputIcon,
- 'DataInputAssociation': DataInputOutputAssociationIcon,
- 'DataOutput': DataOutputIcon,
- 'DataOutputAssociation': DataInputOutputAssociationIcon,
- 'DataObjectReference': DataObjectIcon,
- 'DataStoreReference': DataStoreIcon,
- 'DefaultFlow': DefaultFlowIcon,
- 'CancelEndEvent': EndEventCancelIcon,
- 'CompensateEndEvent': EndEventCompensationIcon,
- 'ErrorEndEvent': EndEventErrorIcon,
- 'EscalationEndEvent': EndEventEscalationIcon,
- 'LinkEndEvent': EndEventLinkIcon,
- 'MessageEndEvent': EndEventMessageIcon,
- 'MultipleEndEvent': EndEventMultipleIcon,
- 'EndEvent': EndEventNoneIcon,
- 'SignalEndEvent': EndEventSignalIcon,
- 'TerminateEndEvent': EndEventTerminateIcon,
- 'EventSubProcess': EventSubProcessExpandedIcon,
- 'ComplexGateway': GatewayComplexIcon,
- 'EventBasedGateway': GatewayEventBasedIcon,
- 'ExclusiveGateway': GatewayXorIcon,
- 'Gateway': GatewayNoneIcon,
- 'InclusiveGateway': GatewayOrIcon,
- 'ParallelGateway': GatewayParallelIcon,
- 'Group': GroupIcon,
- 'CancelIntermediateCatchEvent': IntermediateEventCatchCancelIcon,
- 'CompensateIntermediateCatchEvent': IntermediateEventCatchCompensationIcon,
- 'ConditionalIntermediateCatchEvent': IntermediateEventCatchConditionIcon,
- 'ErrorIntermediateCatchEvent': IntermediateEventCatchErrorIcon,
- 'EscalationIntermediateCatchEvent': IntermediateEventCatchEscalationIcon,
- 'LinkIntermediateCatchEvent': IntermediateEventCatchLinkIcon,
- 'MessageIntermediateCatchEvent': IntermediateEventCatchMessageIcon,
- 'MultipleIntermediateCatchEvent': IntermediateEventCatchMultipleIcon,
- 'ConditionalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,
- 'EscalationIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,
- 'MessageIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,
- 'MultipleIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,
- 'ParallelIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,
- 'SignalIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,
- 'TimerIntermediateCatchEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,
- 'ParallelMultipleIntermediateCatchEvent': IntermediateEventCatchParallelMultipleIcon,
- 'SignalIntermediateCatchEvent': IntermediateEventCatchSignalIcon,
- 'TimerIntermediateCatchEvent': IntermediateEventCatchTimerIcon,
- 'IntermediateThrowEvent': IntermediateEventNoneIcon,
- 'CompensateIntermediateThrowEvent': IntermediateEventThrowCompensationIcon,
- 'EscalationIntermediateThrowEvent': IntermediateEventThrowEscalationIcon,
- 'LinkIntermediateThrowEvent': IntermediateEventThrowLinkIcon,
- 'MessageIntermediateThrowEvent': IntermediateEventThrowMessageIcon,
- 'MultipleIntermediateThrowEvent': IntermediateEventThrowMultipleIcon,
- 'SignalIntermediateThrowEvent': IntermediateEventThrowSignalIcon,
- 'Lane': LaneIcon,
- 'ManualTask': ManualTaskIcon,
- 'MessageFlow': MessageFlowIcon,
- 'Participant': ParticipantIcon,
- 'Process': ProcessIcon,
- 'ReceiveTask': ReceiveTaskIcon,
- 'ScriptTask': ScriptTaskIcon,
- 'SendTask': SendTaskIcon,
- 'ServiceTask': ServiceTaskIcon,
- 'CompensateStartEvent': StartEventCompensationIcon,
- 'ConditionalStartEvent': StartEventConditionIcon,
- 'ErrorStartEvent': StartEventErrorIcon,
- 'EscalationStartEvent': StartEventEscalationIcon,
- 'MessageStartEvent': StartEventMessageIcon,
- 'MultipleStartEvent': StartEventMultipleIcon,
- 'ConditionalStartEventNonInterrupting': StartEventNonInterruptingConditionIcon,
- 'EscalationStartEventNonInterrupting': StartEventNonInterruptingEscalationIcon,
- 'MessageStartEventNonInterrupting': StartEventNonInterruptingMessageIcon,
- 'MultipleStartEventNonInterrupting': StartEventNonInterruptingMultipleIcon,
- 'ParallelMultipleStartEventNonInterrupting': StartEventNonInterruptingParallelMultipleIcon,
- 'SignalStartEventNonInterrupting': StartEventNonInterruptingSignalIcon,
- 'TimerStartEventNonInterrupting': StartEventNonInterruptingTimerIcon,
- 'CancelBoundaryEvent': IntermediateEventCatchCancelIcon,
- 'CompensateBoundaryEvent': IntermediateEventCatchCompensationIcon,
- 'ConditionalBoundaryEvent': IntermediateEventCatchConditionIcon,
- 'ErrorBoundaryEvent': IntermediateEventCatchErrorIcon,
- 'EscalationBoundaryEvent': IntermediateEventCatchEscalationIcon,
- 'LinkBoundaryEvent': IntermediateEventCatchLinkIcon,
- 'MessageBoundaryEvent': IntermediateEventCatchMessageIcon,
- 'MultipleBoundaryEvent': IntermediateEventCatchMultipleIcon,
- 'BoundaryEvent': IntermediateEventNoneIcon,
- 'ConditionalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingConditionIcon,
- 'EscalationBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingEscalationIcon,
- 'MessageBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMessageIcon,
- 'MultipleBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingMultipleIcon,
- 'ParallelBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingParallelIcon,
- 'SignalBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingSignalIcon,
- 'TimerBoundaryEventNonInterrupting': IntermediateEventCatchNonInterruptingTimerIcon,
- 'ParallelMultipleBoundaryEvent': IntermediateEventCatchParallelMultipleIcon,
- 'SignalBoundaryEvent': IntermediateEventCatchSignalIcon,
- 'TimerBoundaryEvent': IntermediateEventCatchTimerIcon,
- 'StartEvent': StartEventNoneIcon,
- 'ParallelMultipleStartEvent': StartEventParallelMultipleIcon,
- 'SignalStartEvent': StartEventSignalIcon,
- 'TimerStartEvent': StartEventTimerIcon,
- 'CollapsedSubProcess': SubprocessCollapsedIcon,
- 'CollapsedAdHocSubProcess': SubprocessCollapsedIcon,
- 'ExpandedSubProcess': SubprocessExpandedIcon,
- 'ExpandedAdHocSubProcess': SubprocessExpandedIcon,
- 'Task': TaskNoneIcon,
- 'TextAnnotation': TextAnnotationicon,
- 'Transaction': TransactionIcon,
- 'UserTask': UserTaskIcon
- };
- function getConcreteType(element) {
- const {
- type: elementType
- } = element;
- let type = getRawType(elementType); // (1) event definition types
- const eventDefinition = getEventDefinition$1(element);
- if (eventDefinition) {
- type = `${getEventDefinitionPrefix(eventDefinition)}${type}`; // (1.1) interrupting / non interrupting
- if (ModelUtil.is(element, 'bpmn:StartEvent') && !DiUtil.isInterrupting(element) || ModelUtil.is(element, 'bpmn:BoundaryEvent') && !isCancelActivity(element)) {
- type = `${type}NonInterrupting`;
- }
- return type;
- } // (2) sub process types
- if (ModelUtil.is(element, 'bpmn:SubProcess') && !ModelUtil.is(element, 'bpmn:Transaction')) {
- if (DiUtil.isEventSubProcess(element)) {
- type = `Event${type}`;
- } else {
- const expanded = DiUtil.isExpanded(element) && !isPlane(element);
- type = `${expanded ? 'Expanded' : 'Collapsed'}${type}`;
- }
- } // (3) conditional + default flows
- if (isDefaultFlow(element)) {
- type = 'DefaultFlow';
- }
- if (isConditionalFlow(element)) {
- type = 'ConditionalFlow';
- }
- return type;
- }
- const PanelHeaderProvider = {
- getDocumentationRef: element => {
- const elementTemplates = getTemplatesService();
- if (elementTemplates) {
- return getTemplateDocumentation(element, elementTemplates);
- }
- },
- getElementLabel: element => {
- if (ModelUtil.is(element, 'bpmn:Process')) {
- return ModelUtil.getBusinessObject(element).name;
- }
- return LabelUtil.getLabel(element);
- },
- getElementIcon: element => {
- const concreteType = getConcreteType(element);
- const elementTemplates = getTemplatesService();
- if (elementTemplates) {
- const template = getTemplate(element, elementTemplates);
- if (template && template.icon) {
- return () => jsxRuntime.jsx("img", {
- class: "bio-properties-panel-header-template-icon",
- width: "32",
- height: "32",
- src: template.icon.contents
- });
- }
- }
- return iconsByType[concreteType];
- },
- getTypeLabel: element => {
- const elementTemplates = getTemplatesService();
- if (elementTemplates) {
- const template = getTemplate(element, elementTemplates);
- if (template && template.name) {
- return template.name;
- }
- }
- const concreteType = getConcreteType(element);
- return concreteType.replace(/(\B[A-Z])/g, ' $1').replace(/(\bNon Interrupting)/g, '($1)');
- }
- }; // helpers ///////////////////////
- function isCancelActivity(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject && businessObject.cancelActivity !== false;
- }
- function getEventDefinition$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element),
- eventDefinitions = businessObject.eventDefinitions;
- return eventDefinitions && eventDefinitions[0];
- }
- function getRawType(type) {
- return type.split(':')[1];
- }
- function getEventDefinitionPrefix(eventDefinition) {
- const rawType = getRawType(eventDefinition.$type);
- return rawType.replace('EventDefinition', '');
- }
- function isDefaultFlow(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const sourceBusinessObject = ModelUtil.getBusinessObject(element.source);
- if (!ModelUtil.is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {
- return false;
- }
- return sourceBusinessObject.default && sourceBusinessObject.default === businessObject && (ModelUtil.is(sourceBusinessObject, 'bpmn:Gateway') || ModelUtil.is(sourceBusinessObject, 'bpmn:Activity'));
- }
- function isConditionalFlow(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const sourceBusinessObject = ModelUtil.getBusinessObject(element.source);
- if (!ModelUtil.is(element, 'bpmn:SequenceFlow') || !sourceBusinessObject) {
- return false;
- }
- return businessObject.conditionExpression && ModelUtil.is(sourceBusinessObject, 'bpmn:Activity');
- }
- function isPlane(element) {
- // Backwards compatibility for bpmn-js<8
- const di = element && (element.di || ModelUtil.getBusinessObject(element).di);
- return ModelUtil.is(di, 'bpmndi:BPMNPlane');
- }
- function getTemplatesService() {
- // eslint-disable-next-line react-hooks/rules-of-hooks
- return useService('elementTemplates', false);
- }
- function getTemplate(element, elementTemplates) {
- return elementTemplates.get(element);
- }
- function getTemplateDocumentation(element, elementTemplates) {
- const template = getTemplate(element, elementTemplates);
- return template && template.documentationRef;
- }
- function _extends$1() { _extends$1 = Object.assign || 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); }
- var EmptyIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends$1({
- xmlns: "http://www.w3.org/2000/svg",
- xmlnsXlink: "http://www.w3.org/1999/xlink",
- width: "64",
- height: "64"
- }, props), /*#__PURE__*/React__default["default"].createElement("defs", null, /*#__PURE__*/React__default["default"].createElement("rect", {
- id: "a",
- width: "57",
- height: "47",
- x: "3",
- y: "8",
- rx: "7"
- }), /*#__PURE__*/React__default["default"].createElement("mask", {
- id: "b",
- width: "57",
- height: "47",
- x: "0",
- y: "0",
- fill: "#fff",
- maskContentUnits: "userSpaceOnUse",
- maskUnits: "objectBoundingBox"
- }, /*#__PURE__*/React__default["default"].createElement("use", {
- xlinkHref: "#a"
- }))), /*#__PURE__*/React__default["default"].createElement("g", {
- fill: "none",
- fillRule: "evenodd"
- }, /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#818798",
- 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"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#D5D7DD",
- d: "M16 24h31v6H16zM21 33h21v6H21z"
- }), /*#__PURE__*/React__default["default"].createElement("use", {
- stroke: "#B9BCC6",
- strokeDasharray: "5 2",
- strokeWidth: "2",
- mask: "url(#b)",
- xlinkHref: "#a"
- }))));
- function _extends() { _extends = Object.assign || 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); }
- var MultipleIcon = (({
- styles = {},
- ...props
- }) => /*#__PURE__*/React__default["default"].createElement("svg", _extends({
- xmlns: "http://www.w3.org/2000/svg",
- xmlnsXlink: "http://www.w3.org/1999/xlink",
- width: "128",
- height: "64"
- }, props), /*#__PURE__*/React__default["default"].createElement("defs", null, /*#__PURE__*/React__default["default"].createElement("path", {
- id: "a",
- d: "M9 9h110v47H9z"
- }), /*#__PURE__*/React__default["default"].createElement("mask", {
- id: "b",
- width: "110",
- height: "47",
- x: "0",
- y: "0",
- fill: "#fff",
- maskContentUnits: "userSpaceOnUse",
- maskUnits: "objectBoundingBox"
- }, /*#__PURE__*/React__default["default"].createElement("use", {
- xlinkHref: "#a"
- }))), /*#__PURE__*/React__default["default"].createElement("g", {
- fill: "none",
- fillRule: "evenodd"
- }, /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#818798",
- 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"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#D5D7DD",
- d: "M17 47h16v6H17z"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#818798",
- d: "M35 32h27v2H35z"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#818798",
- d: "M60 30v6l6-3z"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#D5D7DD",
- d: "M80 34h21v6H80z"
- }), /*#__PURE__*/React__default["default"].createElement("g", null, /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#818798",
- 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"
- }), /*#__PURE__*/React__default["default"].createElement("path", {
- fill: "#D5D7DD",
- d: "M75 25h31v6H75z"
- })), /*#__PURE__*/React__default["default"].createElement("use", {
- stroke: "#B9BCC6",
- strokeDasharray: "5 2",
- strokeWidth: "2",
- mask: "url(#b)",
- xlinkHref: "#a"
- }))));
- const PanelPlaceholderProvider = {
- getEmpty: () => {
- return {
- text: 'Select an element to edit its properties.',
- icon: EmptyIcon
- };
- },
- getMultiple: () => {
- return {
- text: 'Multiple elements are selected. Select a single element to edit its properties.',
- icon: MultipleIcon
- };
- }
- };
- function BpmnPropertiesPanel(props) {
- const {
- element,
- injector,
- getProviders,
- layoutConfig,
- descriptionConfig
- } = props;
- const canvas = injector.get('canvas');
- const elementRegistry = injector.get('elementRegistry');
- const eventBus = injector.get('eventBus');
- const [state, setState] = hooks.useState({
- selectedElement: element
- });
- const selectedElement = state.selectedElement;
- /**
- * @param {djs.model.Base | Array<djs.model.Base>} element
- */
- const _update = element => {
- if (!element) {
- return;
- }
- let newSelectedElement = element; // handle labels
- if (newSelectedElement && newSelectedElement.type === 'label') {
- newSelectedElement = newSelectedElement.labelTarget;
- }
- setState({ ...state,
- selectedElement: newSelectedElement
- }); // notify interested parties on property panel updates
- eventBus.fire('propertiesPanel.updated', {
- element: newSelectedElement
- });
- }; // (2) react on element changes
- // (2a) selection changed
- hooks.useEffect(() => {
- const onSelectionChanged = e => {
- const {
- newSelection = []
- } = e;
- if (newSelection.length > 1) {
- return _update(newSelection);
- }
- const newElement = newSelection[0];
- const rootElement = canvas.getRootElement();
- if (isImplicitRoot$1(rootElement)) {
- return;
- }
- _update(newElement || rootElement);
- };
- eventBus.on('selection.changed', onSelectionChanged);
- return () => {
- eventBus.off('selection.changed', onSelectionChanged);
- };
- }, []); // (2b) selected element changed
- hooks.useEffect(() => {
- const onElementsChanged = e => {
- const elements = e.elements;
- const updatedElement = findElement(elements, selectedElement);
- if (updatedElement && elementExists(updatedElement, elementRegistry)) {
- _update(updatedElement);
- }
- };
- eventBus.on('elements.changed', onElementsChanged);
- return () => {
- eventBus.off('elements.changed', onElementsChanged);
- };
- }, [selectedElement]); // (2c) root element changed
- hooks.useEffect(() => {
- const onRootAdded = e => {
- const element = e.element;
- _update(element);
- };
- eventBus.on('root.added', onRootAdded);
- return () => {
- eventBus.off('root.added', onRootAdded);
- };
- }, [selectedElement]); // (2d) provided entries changed
- hooks.useEffect(() => {
- const onProvidersChanged = () => {
- _update(selectedElement);
- };
- eventBus.on('propertiesPanel.providersChanged', onProvidersChanged);
- return () => {
- eventBus.off('propertiesPanel.providersChanged', onProvidersChanged);
- };
- }, [selectedElement]); // (2e) element templates changed
- hooks.useEffect(() => {
- const onTemplatesChanged = () => {
- _update(selectedElement);
- };
- eventBus.on('elementTemplates.changed', onTemplatesChanged);
- return () => {
- eventBus.off('elementTemplates.changed', onTemplatesChanged);
- };
- }, [selectedElement]); // (3) create properties panel context
- const bpmnPropertiesPanelContext = {
- selectedElement,
- injector,
- getService(type, strict) {
- return injector.get(type, strict);
- }
- }; // (4) retrieve groups for selected element
- const providers = getProviders(selectedElement);
- const groups = hooks.useMemo(() => {
- return minDash.reduce(providers, function (groups, provider) {
- // do not collect groups for multi element state
- if (minDash.isArray(selectedElement)) {
- return [];
- }
- const updater = provider.getGroups(selectedElement);
- return updater(groups);
- }, []);
- }, [providers, selectedElement]); // (5) notify layout changes
- const onLayoutChanged = layout => {
- eventBus.fire('propertiesPanel.layoutChanged', {
- layout
- });
- }; // (6) notify description changes
- const onDescriptionLoaded = description => {
- eventBus.fire('propertiesPanel.descriptionLoaded', {
- description
- });
- };
- return jsxRuntime.jsx(BpmnPropertiesPanelContext.Provider, {
- value: bpmnPropertiesPanelContext,
- children: jsxRuntime.jsx(propertiesPanel.PropertiesPanel, {
- element: selectedElement,
- headerProvider: PanelHeaderProvider,
- placeholderProvider: PanelPlaceholderProvider,
- groups: groups,
- layoutConfig: layoutConfig,
- layoutChanged: onLayoutChanged,
- descriptionConfig: descriptionConfig,
- descriptionLoaded: onDescriptionLoaded,
- eventBus: eventBus
- })
- });
- } // helpers //////////////////////////
- function isImplicitRoot$1(element) {
- // Backwards compatibility for diagram-js<7.4.0, see https://github.com/bpmn-io/bpmn-properties-panel/pull/102
- return element && (element.isImplicit || element.id === '__implicitroot');
- }
- function findElement(elements, element) {
- return minDash.find(elements, e => e === element);
- }
- function elementExists(element, elementRegistry) {
- return element && elementRegistry.get(element.id);
- }
- const DEFAULT_PRIORITY = 1000;
- /**
- * @typedef { import('@bpmn-io/properties-panel').GroupDefinition } GroupDefinition
- * @typedef { import('@bpmn-io/properties-panel').ListGroupDefinition } ListGroupDefinition
- * @typedef { { getGroups: (ModdleElement) => (Array{GroupDefinition|ListGroupDefinition}) => Array{GroupDefinition|ListGroupDefinition}) } PropertiesProvider
- */
- class BpmnPropertiesPanelRenderer {
- constructor(config, injector, eventBus) {
- const {
- parent,
- layout: layoutConfig,
- description: descriptionConfig
- } = config || {};
- this._eventBus = eventBus;
- this._injector = injector;
- this._layoutConfig = layoutConfig;
- this._descriptionConfig = descriptionConfig;
- this._container = minDom.domify('<div style="height: 100%" class="bio-properties-panel-container" input-handle-modified-keys="y,z"></div>');
- eventBus.on('diagram.init', () => {
- if (parent) {
- this.attachTo(parent);
- }
- });
- eventBus.on('diagram.destroy', () => {
- this.detach();
- });
- eventBus.on('root.added', event => {
- const {
- element
- } = event;
- this._render(element);
- });
- }
- /**
- * Attach the properties panel to a parent node.
- *
- * @param {HTMLElement} container
- */
- attachTo(container) {
- if (!container) {
- throw new Error('container required');
- } // unwrap jQuery if provided
- if (container.get && container.constructor.prototype.jquery) {
- container = container.get(0);
- }
- if (typeof container === 'string') {
- container = minDom.query(container);
- } // (1) detach from old parent
- this.detach(); // (2) append to parent container
- container.appendChild(this._container); // (3) notify interested parties
- this._eventBus.fire('propertiesPanel.attach');
- }
- /**
- * Detach the properties panel from its parent node.
- */
- detach() {
- const parentNode = this._container.parentNode;
- if (parentNode) {
- parentNode.removeChild(this._container);
- this._eventBus.fire('propertiesPanel.detach');
- }
- }
- /**
- * Register a new properties provider to the properties panel.
- *
- * @param {Number} [priority]
- * @param {PropertiesProvider} provider
- */
- registerProvider(priority, provider) {
- if (!provider) {
- provider = priority;
- priority = DEFAULT_PRIORITY;
- }
- if (typeof provider.getGroups !== 'function') {
- console.error('Properties provider does not implement #getGroups(element) API');
- return;
- }
- this._eventBus.on('propertiesPanel.getProviders', priority, function (event) {
- event.providers.push(provider);
- });
- this._eventBus.fire('propertiesPanel.providersChanged');
- }
- _getProviders() {
- const event = this._eventBus.createEvent({
- type: 'propertiesPanel.getProviders',
- providers: []
- });
- this._eventBus.fire(event);
- return event.providers;
- }
- _render(element) {
- const canvas = this._injector.get('canvas');
- if (!element) {
- element = canvas.getRootElement();
- }
- if (isImplicitRoot(element)) {
- return;
- }
- preact.render(jsxRuntime.jsx(BpmnPropertiesPanel, {
- element: element,
- injector: this._injector,
- getProviders: this._getProviders.bind(this),
- layoutConfig: this._layoutConfig,
- descriptionConfig: this._descriptionConfig
- }), this._container);
- this._eventBus.fire('propertiesPanel.rendered');
- }
- _destroy() {
- if (this._container) {
- preact.render(null, this._container);
- this._eventBus.fire('propertiesPanel.destroyed');
- }
- }
- }
- BpmnPropertiesPanelRenderer.$inject = ['config.propertiesPanel', 'injector', 'eventBus']; // helpers ///////////////////////
- function isImplicitRoot(element) {
- // Backwards compatibility for diagram-js<7.4.0, see https://github.com/bpmn-io/bpmn-properties-panel/pull/102
- return element && (element.isImplicit || element.id === '__implicitroot');
- }
- /**
- * A handler that combines and executes multiple commands.
- *
- * All updates are bundled on the command stack and executed in one step.
- * This also makes it possible to revert the changes in one step.
- *
- * Example use case: remove the camunda:formKey attribute and in addition
- * add all form fields needed for the camunda:formData property.
- */
- class MultiCommandHandler {
- constructor(commandStack) {
- this._commandStack = commandStack;
- }
- preExecute(context) {
- const commandStack = this._commandStack;
- minDash.forEach(context, function (command) {
- commandStack.execute(command.cmd, command.context);
- });
- }
- }
- MultiCommandHandler.$inject = ['commandStack'];
- const HANDLERS = {
- 'properties-panel.multi-command-executor': MultiCommandHandler
- };
- function CommandInitializer(eventBus, commandStack) {
- eventBus.on('diagram.init', function () {
- minDash.forEach(HANDLERS, function (handler, id) {
- commandStack.registerHandler(id, handler);
- });
- });
- }
- CommandInitializer.$inject = ['eventBus', 'commandStack'];
- var Commands = {
- __init__: [CommandInitializer]
- };
- var index$3 = {
- __depends__: [Commands, propertiesPanel.DebounceInputModule],
- __init__: ['propertiesPanel'],
- propertiesPanel: ['type', BpmnPropertiesPanelRenderer]
- };
- function ReferenceSelectEntry(props) {
- const {
- autoFocusEntry,
- element,
- getOptions
- } = props;
- const options = getOptions(element);
- const prevOptions = propertiesPanel.usePrevious(options); // auto focus specifc other entry when options changed
- hooks.useEffect(() => {
- if (autoFocusEntry && prevOptions && options.length > prevOptions.length) {
- const entry = minDom.query(`[data-entry-id="${autoFocusEntry}"]`);
- const focusableInput = minDom.query('.bio-properties-panel-input', entry);
- if (focusableInput) {
- focusableInput.select();
- }
- }
- }, [options]);
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, { ...props
- });
- }
- function isErrorSupported(element) {
- return ModelingUtil.isAny(element, ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:EndEvent']) && !!getErrorEventDefinition(element);
- }
- function getErrorEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:ErrorEventDefinition');
- }
- function isTimerSupported(element) {
- return ModelingUtil.isAny(element, ['bpmn:StartEvent', 'bpmn:IntermediateCatchEvent', 'bpmn:BoundaryEvent']) && !!getTimerEventDefinition(element);
- }
- /**
- * Get the timer definition type for a given timer event definition.
- *
- * @param {ModdleElement<bpmn:TimerEventDefinition>} timer
- *
- * @return {string|undefined} the timer definition type
- */
- function getTimerDefinitionType(timer) {
- if (!timer) {
- return;
- }
- const timeDate = timer.get('timeDate');
- if (typeof timeDate !== 'undefined') {
- return 'timeDate';
- }
- const timeCycle = timer.get('timeCycle');
- if (typeof timeCycle !== 'undefined') {
- return 'timeCycle';
- }
- const timeDuration = timer.get('timeDuration');
- if (typeof timeDuration !== 'undefined') {
- return 'timeDuration';
- }
- }
- function getTimerEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:TimerEventDefinition');
- }
- function getError(element) {
- const errorEventDefinition = getErrorEventDefinition(element);
- return errorEventDefinition && errorEventDefinition.get('errorRef');
- }
- function getEventDefinition(element, eventType) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const eventDefinitions = businessObject.get('eventDefinitions') || [];
- return minDash.find(eventDefinitions, function (definition) {
- return ModelUtil.is(definition, eventType);
- });
- }
- function isMessageSupported(element) {
- return ModelUtil.is(element, 'bpmn:ReceiveTask') || ModelingUtil.isAny(element, ['bpmn:StartEvent', 'bpmn:EndEvent', 'bpmn:IntermediateThrowEvent', 'bpmn:BoundaryEvent', 'bpmn:IntermediateCatchEvent']) && !!getMessageEventDefinition(element);
- }
- function getMessageEventDefinition(element) {
- if (ModelUtil.is(element, 'bpmn:ReceiveTask')) {
- return ModelUtil.getBusinessObject(element);
- }
- return getEventDefinition(element, 'bpmn:MessageEventDefinition');
- }
- function getMessage(element) {
- const messageEventDefinition = getMessageEventDefinition(element);
- return messageEventDefinition && messageEventDefinition.get('messageRef');
- }
- function getLinkEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:LinkEventDefinition');
- }
- function getSignalEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:SignalEventDefinition');
- }
- function isLinkSupported(element) {
- return ModelingUtil.isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent']) && !!getLinkEventDefinition(element);
- }
- function isSignalSupported(element) {
- return ModelUtil.is(element, 'bpmn:Event') && !!getSignalEventDefinition(element);
- }
- function getSignal(element) {
- const signalEventDefinition = getSignalEventDefinition(element);
- return signalEventDefinition && signalEventDefinition.get('signalRef');
- }
- function getEscalationEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:EscalationEventDefinition');
- }
- function isEscalationSupported(element) {
- return ModelUtil.is(element, 'bpmn:Event') && !!getEscalationEventDefinition(element);
- }
- function getEscalation(element) {
- const escalationEventDefinition = getEscalationEventDefinition(element);
- return escalationEventDefinition && escalationEventDefinition.get('escalationRef');
- }
- function isCompensationSupported(element) {
- return ModelingUtil.isAny(element, ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']) && !!getCompensateEventDefinition(element);
- }
- function getCompensateEventDefinition(element) {
- return getEventDefinition(element, 'bpmn:CompensateEventDefinition');
- }
- function getCompensateActivity(element) {
- const compensateEventDefinition = getCompensateEventDefinition(element);
- return compensateEventDefinition && compensateEventDefinition.get('activityRef');
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function CompensationProps(props) {
- const {
- element
- } = props;
- if (!isCompensationSupported(element)) {
- return [];
- }
- return [{
- id: 'waitForCompletion',
- component: WaitForCompletion,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }, {
- id: 'activityRef',
- component: ActivityRef,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- }
- function WaitForCompletion(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const compensateEventDefinition = getCompensateEventDefinition(element);
- const getValue = () => {
- return compensateEventDefinition.get('waitForCompletion');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: compensateEventDefinition,
- properties: {
- waitForCompletion: value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'waitForCompletion',
- label: translate('Wait for completion'),
- getValue,
- setValue
- });
- }
- function ActivityRef(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const elementRegistry = useService('elementRegistry');
- const translate = useService('translate');
- const compensateEventDefinition = getCompensateEventDefinition(element);
- const getValue = () => {
- const activityRef = getCompensateActivity(element);
- return activityRef && activityRef.get('id');
- };
- const setValue = value => {
- // update (or remove) activityRef
- const activityRef = value ? ModelUtil.getBusinessObject(elementRegistry.get(value)) : undefined;
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: compensateEventDefinition,
- properties: {
- activityRef
- }
- });
- };
- const getOptions = () => {
- let options = [{
- value: '',
- label: translate('<none>')
- }];
- const activities = findActivityRefs(element);
- sortByName$6(activities).forEach(function (activity) {
- options.push({
- value: activity.id,
- label: createOptionLabel(activity)
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: 'activityRef',
- label: translate('Activity reference'),
- getValue,
- setValue,
- getOptions
- });
- } // helper /////////////////////////
- function getFlowElements(element, type) {
- const {
- flowElements
- } = element;
- return flowElements.filter(function (flowElement) {
- return ModelUtil.is(flowElement, type);
- });
- }
- function getContainedActivities(element) {
- return getFlowElements(element, 'bpmn:Activity');
- }
- function getContainedBoundaryEvents(element) {
- return getFlowElements(element, 'bpmn:BoundaryEvent');
- }
- /**
- * Checks whether an Activity is attaching a CompensateEvent of the parent container.
- *
- * @param {ModdleElement} activity
- * @param {Array<ModdleElement>} boundaryEvents
- * @returns {Boolean}
- */
- function hasCompensationEventAttached(activity, boundaryEvents) {
- const {
- id: activityId
- } = activity;
- return !!minDash.find(boundaryEvents, function (boundaryEvent) {
- const {
- attachedToRef
- } = boundaryEvent;
- const compensateEventDefinition = getCompensateEventDefinition(boundaryEvent);
- return attachedToRef && compensateEventDefinition && attachedToRef.id === activityId;
- });
- }
- /**
- * Checks whether an Activity can be compensated. That's the case when it is
- * a) a CallActivity
- * b) a SubProcess, when it is not event based and not a compensation
- * c) any other Activity, when it is attaching a CompensateEvent of the parent container
- *
- * @param {ModdleElement} activity
- * @param {Array<ModdleElement>} boundaryEvents
- * @returns {Boolean}
- */
- function canBeCompensated(activity, boundaryEvents) {
- return ModelUtil.is(activity, 'bpmn:CallActivity') || ModelUtil.is(activity, 'bpmn:SubProcess') && !activity.triggeredByEvent && !activity.isForCompensation || hasCompensationEventAttached(activity, boundaryEvents);
- }
- function getActivitiesForCompensation(element) {
- const activities = getContainedActivities(element);
- const boundaryEvents = getContainedBoundaryEvents(element);
- return activities.filter(function (activity) {
- return canBeCompensated(activity, boundaryEvents);
- });
- }
- /**
- * Retrieves all possible activities to reference for a Compensation.
- *
- * @param {djs.model.Base} element
- * @returns {Array<ModdleElement>}
- */
- function findActivityRefs(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- let parent = businessObject.$parent; // (1) get all activities in parent container
- let activities = getActivitiesForCompensation(parent); // (2) if throwing compensation event is inside an EventSubProcess,
- // also get all activities outside of the event sub process
- if (ModelUtil.is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent) {
- parent = parent.$parent;
- if (parent) {
- activities = [...activities, ...getActivitiesForCompensation(parent)];
- }
- }
- return activities;
- }
- /**
- * Retrieves an option label in the form
- * a) with name: "my Task (id=Task_1)"
- * b) without name: "(id=Task_1)"
- *
- * @param {ModdleElement} activity
- * @returns {String}
- */
- function createOptionLabel(activity) {
- const {
- id,
- name
- } = activity;
- return `${name ? name + ' ' : ''}(id=${id})`;
- }
- function sortByName$6(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- const DOCUMENTATION_TEXT_FORMAT = 'text/plain';
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function DocumentationProps(props) {
- const {
- element
- } = props;
- const entries = [{
- id: 'documentation',
- component: ElementDocumentationProperty,
- isEdited: propertiesPanel.isTextAreaEntryEdited
- }];
- if (hasProcessRef$2(element)) {
- entries.push({
- id: 'processDocumentation',
- component: ProcessDocumentationProperty,
- isEdited: propertiesPanel.isTextAreaEntryEdited
- });
- }
- return entries;
- }
- function ElementDocumentationProperty(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = getDocumentation(ModelUtil.getBusinessObject(element));
- const setValue = setDocumentation(element, ModelUtil.getBusinessObject(element), bpmnFactory, commandStack);
- return propertiesPanel.TextAreaEntry({
- element,
- id: 'documentation',
- label: translate('Element documentation'),
- getValue,
- setValue,
- debounce
- });
- }
- function ProcessDocumentationProperty(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const processRef = ModelUtil.getBusinessObject(element).processRef;
- const getValue = getDocumentation(processRef);
- const setValue = setDocumentation(element, processRef, bpmnFactory, commandStack);
- return propertiesPanel.TextAreaEntry({
- element,
- id: 'processDocumentation',
- label: translate('Process documentation'),
- getValue,
- setValue,
- debounce
- });
- } // helper ////////////////////////////
- function hasProcessRef$2(element) {
- return ModelUtil.is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
- }
- function findDocumentation(docs) {
- return docs.find(function (d) {
- return (d.textFormat || DOCUMENTATION_TEXT_FORMAT) === DOCUMENTATION_TEXT_FORMAT;
- });
- }
- /**
- * Retrieves a documentation element from a given moddle element.
- *
- * @param {ModdleElement} businessObject
- *
- * @returns {ModdleElement} documentation element inside the given moddle element.
- */
- function getDocumentation(businessObject) {
- return function () {
- const documentation = findDocumentation(businessObject && businessObject.get('documentation'));
- return documentation && documentation.text;
- };
- }
- /**
- * Sets a documentation element for a given moddle element.
- *
- * @param {ModdleElement} businessObject
- */
- function setDocumentation(element, businessObject, bpmnFactory, commandStack) {
- return function (value) {
- let documentation = findDocumentation(businessObject && businessObject.get('documentation')); // (1) update or removing existing documentation
- if (documentation) {
- if (value) {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: documentation,
- properties: {
- text: value
- }
- });
- } else {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- documentation: minDash.without(businessObject.get('documentation'), documentation)
- }
- });
- }
- } // (2) create new documentation entry
- if (value) {
- documentation = bpmnFactory.create('bpmn:Documentation', {
- text: value
- });
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- documentation: [...businessObject.get('documentation'), documentation]
- }
- });
- }
- };
- }
- /**
- * Create a new element and set its parent.
- *
- * @param {String} elementType of the new element
- * @param {Object} properties of the new element in key-value pairs
- * @param {moddle.object} parent of the new element
- * @param {BpmnFactory} factory which creates the new element
- *
- * @returns {djs.model.Base} element which is created
- */
- function createElement(elementType, properties, parent, factory) {
- const element = factory.create(elementType, properties);
- if (parent) {
- element.$parent = parent;
- }
- return element;
- }
- /**
- * generate a semantic id with given prefix
- */
- function nextId(prefix) {
- const ids = new Ids__default["default"]([32, 32, 1]);
- return ids.nextPrefixed(prefix);
- }
- function getRoot(businessObject) {
- let parent = businessObject;
- while (parent.$parent) {
- parent = parent.$parent;
- }
- return parent;
- }
- function filterElementsByType(objectList, type) {
- const list = objectList || [];
- return list.filter(element => ModelUtil.is(element, type));
- }
- function findRootElementsByType(businessObject, referencedType) {
- const root = getRoot(businessObject);
- return filterElementsByType(root.get('rootElements'), referencedType);
- }
- function findRootElementById(businessObject, type, id) {
- const elements = findRootElementsByType(businessObject, type);
- return elements.find(element => element.id === id);
- }
- const EMPTY_OPTION$4 = '';
- const CREATE_NEW_OPTION$4 = 'create-new';
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function ErrorProps$1(props) {
- const {
- element
- } = props;
- if (!isErrorSupported(element)) {
- return [];
- }
- const error = getError(element);
- let entries = [{
- id: 'errorRef',
- component: ErrorRef$1,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- if (error) {
- entries = [...entries, {
- id: 'errorName',
- component: ErrorName$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'errorCode',
- component: ErrorCode$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- return entries;
- }
- function ErrorRef$1(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const errorEventDefinition = getErrorEventDefinition(element);
- const getValue = () => {
- const error = getError(element);
- if (error) {
- return error.get('id');
- }
- return EMPTY_OPTION$4;
- };
- const setValue = value => {
- const root = getRoot(errorEventDefinition);
- const commands = [];
- let error; // (1) create new error
- if (value === CREATE_NEW_OPTION$4) {
- error = createElement('bpmn:Error', {
- name: nextId('Error_')
- }, root, bpmnFactory);
- value = error.get('id');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: root,
- properties: {
- rootElements: [...root.get('rootElements'), error]
- }
- }
- });
- } // (2) update (or remove) errorRef
- error = error || findRootElementById(errorEventDefinition, 'bpmn:Error', value);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: errorEventDefinition,
- properties: {
- errorRef: error
- }
- }
- }); // (3) commit all updates
- return commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- let options = [{
- value: EMPTY_OPTION$4,
- label: translate('<none>')
- }, {
- value: CREATE_NEW_OPTION$4,
- label: translate('Create new ...')
- }];
- const errors = findRootElementsByType(ModelUtil.getBusinessObject(element), 'bpmn:Error');
- sortByName$5(errors).forEach(error => {
- options.push({
- value: error.get('id'),
- label: error.get('name')
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: 'errorRef',
- label: translate('Global error reference'),
- autoFocusEntry: 'errorName',
- getValue,
- setValue,
- getOptions
- });
- }
- function ErrorName$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const error = getError(element);
- const getValue = () => {
- return error.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'errorName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function ErrorCode$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const error = getError(element);
- const getValue = () => {
- return error.get('errorCode');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- errorCode: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'errorCode',
- label: translate('Code'),
- getValue,
- setValue,
- debounce
- });
- } // helper /////////////////////////
- function sortByName$5(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- const CREATE_NEW_OPTION$3 = 'create-new';
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function EscalationProps$1(props) {
- const {
- element
- } = props;
- if (!isEscalationSupported(element)) {
- return [];
- }
- const escalation = getEscalation(element);
- let entries = [{
- id: 'escalationRef',
- component: EscalationRef,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- if (escalation) {
- entries = [...entries, {
- id: 'escalationName',
- component: EscalationName,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'escalationCode',
- component: EscalationCode,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- return entries;
- }
- function EscalationRef(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const escalationEventDefinition = getEscalationEventDefinition(element);
- const getValue = () => {
- const escalation = getEscalation(element);
- return escalation && escalation.get('id');
- };
- const setValue = value => {
- const root = getRoot(escalationEventDefinition);
- const commands = [];
- let escalation; // (1) create new escalation
- if (value === CREATE_NEW_OPTION$3) {
- const id = nextId('Escalation_');
- escalation = createElement('bpmn:Escalation', {
- id,
- name: id
- }, root, bpmnFactory);
- value = escalation.get('id');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: root,
- properties: {
- rootElements: [...root.get('rootElements'), escalation]
- }
- }
- });
- } // (2) update (or remove) escalationRef
- escalation = escalation || findRootElementById(escalationEventDefinition, 'bpmn:Escalation', value);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: escalationEventDefinition,
- properties: {
- escalationRef: escalation
- }
- }
- }); // (3) commit all updates
- return commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- let options = [{
- value: '',
- label: translate('<none>')
- }, {
- value: CREATE_NEW_OPTION$3,
- label: translate('Create new ...')
- }];
- const escalations = findRootElementsByType(ModelUtil.getBusinessObject(element), 'bpmn:Escalation');
- sortByName$4(escalations).forEach(escalation => {
- options.push({
- value: escalation.get('id'),
- label: escalation.get('name')
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: 'escalationRef',
- label: translate('Global escalation reference'),
- autoFocusEntry: 'escalationName',
- getValue,
- setValue,
- getOptions
- });
- }
- function EscalationName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const escalation = getEscalation(element);
- const getValue = () => {
- return escalation.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: escalation,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'escalationName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function EscalationCode(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const escalation = getEscalation(element);
- const getValue = () => {
- return escalation.get('escalationCode');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: escalation,
- properties: {
- escalationCode: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'escalationCode',
- label: translate('Code'),
- getValue,
- setValue,
- debounce
- });
- } // helper /////////////////////////
- function sortByName$4(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function ExecutableProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:Process') && !hasProcessRef$1(element)) {
- return [];
- }
- return [{
- id: 'isExecutable',
- component: Executable,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }];
- }
- function Executable(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- let getValue, setValue;
- setValue = value => {
- modeling.updateProperties(element, {
- isExecutable: value
- });
- };
- getValue = element => {
- return element.businessObject.isExecutable;
- }; // handle properties on processRef level for participants
- if (ModelUtil.is(element, 'bpmn:Participant')) {
- const process = element.businessObject.get('processRef');
- setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- isExecutable: value
- }
- });
- };
- getValue = () => {
- return process.get('isExecutable');
- };
- }
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'isExecutable',
- label: translate('Executable'),
- getValue,
- setValue
- });
- } // helper /////////////////////
- function hasProcessRef$1(element) {
- return ModelUtil.is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
- }
- const SPACE_REGEX = /\s/; // for QName validation as per http://www.w3.org/TR/REC-xml/#NT-NameChar
- const QNAME_REGEX = /^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i; // for ID validation as per BPMN Schema (QName - Namespace)
- const ID_REGEX = /^[a-z_][\w-.]*$/i;
- /**
- * checks whether the id value is valid
- *
- * @param {ModdleElement} element
- * @param {String} idValue
- * @param {Function} translate
- *
- * @return {String} error message
- */
- function isIdValid(element, idValue, translate) {
- const assigned = element.$model.ids.assigned(idValue);
- const idAlreadyExists = assigned && assigned !== element;
- if (!idValue) {
- return translate('ID must not be empty.');
- }
- if (idAlreadyExists) {
- return translate('ID must be unique.');
- }
- return validateId(idValue, translate);
- }
- function validateId(idValue, translate) {
- if (containsSpace(idValue)) {
- return translate('ID must not contain spaces.');
- }
- if (!ID_REGEX.test(idValue)) {
- if (QNAME_REGEX.test(idValue)) {
- return translate('ID must not contain prefix.');
- }
- return translate('ID must be a valid QName.');
- }
- }
- function containsSpace(value) {
- return SPACE_REGEX.test(value);
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function IdProps() {
- return [{
- id: 'id',
- component: Id$3,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function Id$3(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const debounce = useService('debounceInput');
- const translate = useService('translate');
- const setValue = value => {
- modeling.updateProperties(element, {
- id: value
- });
- };
- const getValue = element => {
- return element.businessObject.id;
- };
- const validate = value => {
- const businessObject = ModelUtil.getBusinessObject(element);
- return isIdValid(businessObject, value, translate);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'id',
- label: translate(ModelUtil.is(element, 'bpmn:Participant') ? 'Participant ID' : 'ID'),
- getValue,
- setValue,
- debounce,
- validate
- });
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function LinkProps(props) {
- const {
- element
- } = props;
- if (!isLinkSupported(element)) {
- return [];
- }
- return [{
- id: 'linkName',
- component: LinkName,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function LinkName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const linkEventDefinition = getLinkEventDefinition(element);
- const getValue = () => {
- return linkEventDefinition.get('name');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: linkEventDefinition,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'linkName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- const EMPTY_OPTION$3 = '';
- const CREATE_NEW_OPTION$2 = 'create-new';
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function MessageProps$1(props) {
- const {
- element
- } = props;
- if (!isMessageSupported(element)) {
- return [];
- }
- const message = getMessage(element);
- let entries = [{
- id: 'messageRef',
- component: MessageRef,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- if (message) {
- entries = [...entries, {
- id: 'messageName',
- component: MessageName$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- return entries;
- }
- function MessageRef(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const messageEventDefinition = getMessageEventDefinition(element);
- const getValue = () => {
- const message = getMessage(element);
- if (message) {
- return message.get('id');
- }
- return EMPTY_OPTION$3;
- };
- const setValue = value => {
- const root = getRoot(messageEventDefinition);
- const commands = [];
- let message; // (1) create new message
- if (value === CREATE_NEW_OPTION$2) {
- const id = nextId('Message_');
- message = createElement('bpmn:Message', {
- id,
- name: id
- }, root, bpmnFactory);
- value = message.get('id');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: root,
- properties: {
- rootElements: [...root.get('rootElements'), message]
- }
- }
- });
- } // (2) update (or remove) messageRef
- message = message || findRootElementById(messageEventDefinition, 'bpmn:Message', value);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: messageEventDefinition,
- properties: {
- messageRef: message
- }
- }
- }); // (3) commit all updates
- return commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- let options = [{
- value: EMPTY_OPTION$3,
- label: translate('<none>')
- }, {
- value: CREATE_NEW_OPTION$2,
- label: translate('Create new ...')
- }];
- const messages = findRootElementsByType(ModelUtil.getBusinessObject(element), 'bpmn:Message');
- sortByName$3(messages).forEach(message => {
- options.push({
- value: message.get('id'),
- label: message.get('name')
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: 'messageRef',
- label: translate('Global message reference'),
- autoFocusEntry: 'messageName',
- getValue,
- setValue,
- getOptions
- });
- }
- function MessageName$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const message = getMessage(element);
- const getValue = () => {
- return message.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: message,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'messageName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- } // helper /////////////////////////
- function sortByName$3(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function MultiInstanceProps$2(props) {
- const {
- element
- } = props;
- if (!isMultiInstanceSupported$1(element)) {
- return [];
- }
- const entries = [{
- id: 'loopCardinality',
- component: LoopCardinality,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'completionCondition',
- component: CompletionCondition$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- return entries;
- }
- function LoopCardinality(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const debounce = useService('debounceInput');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getLoopCardinalityValue(element);
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', updateFormalExpression(element, 'loopCardinality', value, bpmnFactory));
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'loopCardinality',
- label: translate('Loop cardinality'),
- getValue,
- setValue,
- debounce
- });
- }
- function CompletionCondition$1(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const debounce = useService('debounceInput');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getCompletionConditionValue(element);
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', updateFormalExpression(element, 'completionCondition', value, bpmnFactory));
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'completionCondition',
- label: translate('Completion condition'),
- getValue,
- setValue,
- debounce
- });
- } // helper ////////////////////////////
- // generic ///////////////////////////
- /**
- * isMultiInstanceSupported - check whether given element supports MultiInstanceLoopCharacteristics.
- *
- * @param {djs.model.Base} element
- * @return {boolean}
- */
- function isMultiInstanceSupported$1(element) {
- const loopCharacteristics = getLoopCharacteristics$2(element);
- return !!loopCharacteristics && ModelUtil.is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics');
- }
- /**
- * getBody - get the body of a given expression.
- *
- * @param {ModdleElement<bpmn:FormalExpression>} expression
- * @return {string} the body (value) of the expression
- */
- function getBody(expression) {
- return expression && expression.get('body');
- }
- /**
- * getProperty - get a property value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- * @param {string} propertyName
- *
- * @return {any} the property value
- */
- function getProperty$2(element, propertyName) {
- const loopCharacteristics = getLoopCharacteristics$2(element);
- return loopCharacteristics && loopCharacteristics.get(propertyName);
- }
- /**
- * getLoopCharacteristics - get loopCharacteristics of a given element.
- *
- * @param {djs.model.Base} element
- * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}
- */
- function getLoopCharacteristics$2(element) {
- const bo = ModelUtil.getBusinessObject(element);
- return bo.loopCharacteristics;
- }
- /**
- * createFormalExpression - creates a 'bpmn:FormalExpression' element.
- *
- * @param {ModdleElement} parent
- * @param {string} body
- * @param {BpmnFactory} bpmnFactory
- *
- * @result {ModdleElement<bpmn:FormalExpression>} a formal expression
- */
- function createFormalExpression$1(parent, body, bpmnFactory) {
- return createElement('bpmn:FormalExpression', {
- body: body
- }, parent, bpmnFactory);
- }
- /**
- * updateFormalExpression - updates a specific formal expression of the loop characteristics.
- *
- * @param {djs.model.Base} element
- * @param {string} propertyName
- * @param {string} newValue
- * @param {BpmnFactory} bpmnFactory
- */
- function updateFormalExpression(element, propertyName, newValue, bpmnFactory) {
- const loopCharacteristics = getLoopCharacteristics$2(element);
- const expressionProps = {};
- if (!newValue) {
- // remove formal expression
- expressionProps[propertyName] = undefined;
- return {
- element,
- moddleElement: loopCharacteristics,
- properties: expressionProps
- };
- }
- const existingExpression = loopCharacteristics.get(propertyName);
- if (!existingExpression) {
- // add formal expression
- expressionProps[propertyName] = createFormalExpression$1(loopCharacteristics, newValue, bpmnFactory);
- return {
- element,
- moddleElement: loopCharacteristics,
- properties: expressionProps
- };
- } // edit existing formal expression
- return {
- element,
- moddleElement: existingExpression,
- properties: {
- body: newValue
- }
- };
- } // loopCardinality
- /**
- * getLoopCardinality - get the loop cardinality of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the loop cardinality
- */
- function getLoopCardinality(element) {
- return getProperty$2(element, 'loopCardinality');
- }
- /**
- * getLoopCardinalityValue - get the loop cardinality value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {string} the loop cardinality value
- */
- function getLoopCardinalityValue(element) {
- const loopCardinality = getLoopCardinality(element);
- return getBody(loopCardinality);
- } // completionCondition /////////////////////
- /**
- * getCompletionCondition - get the completion condition of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {ModdleElement<bpmn:FormalExpression>} an expression representing the completion condition
- */
- function getCompletionCondition$1(element) {
- return getProperty$2(element, 'completionCondition');
- }
- /**
- * getCompletionConditionValue - get the completion condition value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {string} the completion condition value
- */
- function getCompletionConditionValue(element) {
- const completionCondition = getCompletionCondition$1(element);
- return getBody(completionCondition);
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function NameProps(props) {
- const {
- element
- } = props;
- if (ModelingUtil.isAny(element, ['bpmn:Collaboration', 'bpmn:DataAssociation', 'bpmn:Association'])) {
- return [];
- }
- return [{
- id: 'name',
- component: Name$3,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function Name$3(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const debounce = useService('debounceInput');
- const canvas = useService('canvas');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate'); // (1) default: name
- let options = {
- element,
- id: 'name',
- label: translate('Name'),
- debounce,
- setValue: value => {
- modeling.updateProperties(element, {
- name: value
- });
- },
- getValue: element => {
- return element.businessObject.name;
- }
- }; // (2) text annotations
- if (ModelUtil.is(element, 'bpmn:TextAnnotation')) {
- options = { ...options,
- setValue: value => {
- modeling.updateProperties(element, {
- text: value
- });
- },
- getValue: element => {
- return element.businessObject.text;
- }
- };
- } // (3) groups
- else if (ModelUtil.is(element, 'bpmn:Group')) {
- options = { ...options,
- setValue: value => {
- const businessObject = ModelUtil.getBusinessObject(element),
- categoryValueRef = businessObject.categoryValueRef;
- if (!categoryValueRef) {
- initializeCategory(businessObject, canvas.getRootElement(), bpmnFactory);
- }
- modeling.updateLabel(element, value);
- },
- getValue: element => {
- const businessObject = ModelUtil.getBusinessObject(element),
- categoryValueRef = businessObject.categoryValueRef;
- return categoryValueRef && categoryValueRef.value;
- }
- };
- } // (4) participants (only update label)
- else if (ModelUtil.is(element, 'bpmn:Participant')) {
- options.label = translate('Participant Name');
- }
- return propertiesPanel.TextFieldEntry(options);
- } // helpers ////////////////////////
- function initializeCategory(businessObject, rootElement, bpmnFactory) {
- const definitions = ModelUtil.getBusinessObject(rootElement).$parent;
- const categoryValue = createCategoryValue(definitions, bpmnFactory);
- businessObject.categoryValueRef = categoryValue;
- }
- function createCategoryValue(definitions, bpmnFactory) {
- const categoryValue = bpmnFactory.create('bpmn:CategoryValue');
- const category = bpmnFactory.create('bpmn:Category', {
- categoryValue: [categoryValue]
- }); // add to correct place
- Collections.add(definitions.get('rootElements'), category);
- ModelUtil.getBusinessObject(category).$parent = definitions;
- ModelUtil.getBusinessObject(categoryValue).$parent = category;
- return categoryValue;
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function ProcessProps(props) {
- const {
- element
- } = props;
- if (!hasProcessRef(element)) {
- return [];
- }
- return [{
- id: 'processId',
- component: ProcessId,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'processName',
- component: ProcessName,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function ProcessName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const process = element.businessObject.get('processRef');
- const getValue = () => {
- return process.get('name');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'processName',
- label: translate('Process name'),
- getValue,
- setValue,
- debounce
- });
- }
- function ProcessId(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const process = element.businessObject.get('processRef');
- const getValue = () => {
- return process.get('id');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- id: value
- }
- });
- };
- const validate = value => {
- return isIdValid(process, value, translate);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'processId',
- label: translate('Process ID'),
- getValue,
- setValue,
- debounce,
- validate
- });
- } // helper ////////////////
- function hasProcessRef(element) {
- return ModelUtil.is(element, 'bpmn:Participant') && element.businessObject.get('processRef');
- }
- const EMPTY_OPTION$2 = '';
- const CREATE_NEW_OPTION$1 = 'create-new';
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function SignalProps(props) {
- const {
- element
- } = props;
- if (!isSignalSupported(element)) {
- return [];
- }
- const signal = getSignal(element);
- let entries = [{
- id: 'signalRef',
- component: SignalRef,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- if (signal) {
- entries = [...entries, {
- id: 'signalName',
- component: SignalName,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- return entries;
- }
- function SignalRef(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const signalEventDefinition = getSignalEventDefinition(element);
- const getValue = () => {
- const signal = getSignal(element);
- if (signal) {
- return signal.get('id');
- }
- return EMPTY_OPTION$2;
- };
- const setValue = value => {
- const root = getRoot(signalEventDefinition);
- const commands = [];
- let signal; // (1) create new signal
- if (value === CREATE_NEW_OPTION$1) {
- const id = nextId('Signal_');
- signal = createElement('bpmn:Signal', {
- id,
- name: id
- }, root, bpmnFactory);
- value = signal.get('id');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: root,
- properties: {
- rootElements: [...root.get('rootElements'), signal]
- }
- }
- });
- } // (2) update (or remove) signalRef
- signal = signal || findRootElementById(signalEventDefinition, 'bpmn:Signal', value);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: signalEventDefinition,
- properties: {
- signalRef: signal
- }
- }
- }); // (3) commit all updates
- return commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- let options = [{
- value: EMPTY_OPTION$2,
- label: translate('<none>')
- }, {
- value: CREATE_NEW_OPTION$1,
- label: translate('Create new ...')
- }];
- const signals = findRootElementsByType(ModelUtil.getBusinessObject(element), 'bpmn:Signal');
- sortByName$2(signals).forEach(signal => {
- options.push({
- value: signal.get('id'),
- label: signal.get('name')
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: 'signalRef',
- label: translate('Global signal reference'),
- autoFocusEntry: 'signalName',
- getValue,
- setValue,
- getOptions
- });
- }
- function SignalName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const signal = getSignal(element);
- const getValue = () => {
- return signal.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: signal,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'signalName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- } // helper /////////////////////////
- function sortByName$2(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- function TimerProps$1(props) {
- const {
- element,
- listener,
- idPrefix
- } = props;
- let {
- timerEventDefinition
- } = props;
- if (!timerEventDefinition) {
- const businessObject = ModelUtil.getBusinessObject(element);
- timerEventDefinition = getTimerEventDefinition(businessObject);
- }
- const timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition); // (1) Only show for supported elements
- if (!isTimerSupported(element) && !isTimerSupportedOnListener(listener)) {
- return [];
- } // (2) Provide entries, have a value only if selection was made
- const entries = [];
- entries.push({
- id: getId(idPrefix, 'timerEventDefinitionType'),
- component: TimerEventDefinitionType$1,
- isEdited: propertiesPanel.isSelectEntryEdited,
- timerEventDefinition,
- timerEventDefinitionType
- });
- if (timerEventDefinitionType) {
- entries.push({
- id: getId(idPrefix, 'timerEventDefinitionValue'),
- component: TimerEventDefinitionValue$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- timerEventDefinition,
- timerEventDefinitionType
- });
- }
- return entries;
- }
- /**
- * TimerEventDefinitionType - Generic select entry allowing to select a specific
- * timerEventDefintionType. To be used together with timerEventDefinitionValue.
- *
- * @param {type} props
- * @return {SelectEntry}
- */
- function TimerEventDefinitionType$1(props) {
- const {
- element,
- timerEventDefinition,
- timerEventDefinitionType
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate');
- const getValue = () => {
- return timerEventDefinitionType || '';
- };
- const setValue = value => {
- // (1) Check if value is different to current type
- if (value === timerEventDefinitionType) {
- return;
- } // (2) Create empty formalExpression element
- const formalExpression = bpmnFactory.create('bpmn:FormalExpression', {
- body: undefined
- });
- formalExpression.$parent = timerEventDefinition; // (3) Set the value for selected timerEventDefinitionType
- const newProps = {
- timeDuration: undefined,
- timeDate: undefined,
- timeCycle: undefined
- };
- if (value !== '') {
- newProps[value] = formalExpression;
- } // (4) Execute businessObject update
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: timerEventDefinition,
- properties: newProps
- });
- };
- const getOptions = element => {
- return [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'timeDate',
- label: translate('Date')
- }, {
- value: 'timeDuration',
- label: translate('Duration')
- }, {
- value: 'timeCycle',
- label: translate('Cycle')
- }];
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'timerEventDefinitionType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- /**
- * TimerEventDefinitionValue - Generic textField entry allowing to specify the
- * timerEventDefintionValue based on the set timerEventDefintionType. To be used
- * together with timerEventDefinitionType.
- *
- * @param {type} props
- * @return {TextFieldEntry}
- */
- function TimerEventDefinitionValue$1(props) {
- const {
- element,
- timerEventDefinition,
- timerEventDefinitionType
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);
- const getValue = () => {
- return timerEventFormalExpression && timerEventFormalExpression.get('body');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: timerEventFormalExpression,
- properties: {
- body: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'timerEventDefinitionValue',
- label: translate('Value'),
- getValue,
- setValue,
- debounce,
- description: getTimerEventDefinitionValueDescription$1(timerEventDefinitionType, translate)
- });
- } // helper //////////////////////////
- function getTimerEventDefinitionValueDescription$1(timerDefinitionType, translate) {
- switch (timerDefinitionType) {
- case 'timeDate':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A specific point in time defined as ISO 8601 combined date and time representation.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "2019-10-01T12:00:00Z"
- }), " - ", translate('UTC time')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "2019-10-02T08:09:40+02:00"
- }), " - ", translate('UTC plus 2 hours zone offset')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date",
- target: "_blank",
- rel: "noopener",
- children: translate('Documentation: Timer events')
- })]
- });
- case 'timeCycle':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A cycle defined as ISO 8601 repeating intervals format.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "R5/PT10S"
- }), " - ", translate('every 10 seconds, up to 5 times')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "R/P1D"
- }), " - ", translate('every day, infinitely')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle",
- target: "_blank",
- rel: "noopener",
- children: translate('Documentation: Timer events')
- })]
- });
- case 'timeDuration':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A time duration defined as ISO 8601 durations format.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "PT15S"
- }), " - ", translate('15 seconds')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "PT1H30M"
- }), " - ", translate('1 hour and 30 minutes')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "P14D"
- }), " - ", translate('14 days')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration",
- target: "_blank",
- rel: "noopener",
- children: translate('Documentation: Timer events')
- })]
- });
- }
- }
- function isTimerSupportedOnListener(listener) {
- return listener && ModelUtil.is(listener, 'camunda:TaskListener') && getTimerEventDefinition(listener);
- }
- function getId(idPrefix, id) {
- return idPrefix ? idPrefix + id : id;
- }
- function GeneralGroup(element) {
- const entries = [...NameProps({
- element
- }), ...IdProps(), ...ProcessProps({
- element
- }), ...ExecutableProps({
- element
- })];
- return {
- id: 'general',
- label: 'General',
- entries,
- component: propertiesPanel.Group
- };
- }
- function CompensationGroup(element) {
- const group = {
- label: 'Compensation',
- id: 'compensation',
- component: propertiesPanel.Group,
- entries: [...CompensationProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function DocumentationGroup(element) {
- const entries = [...DocumentationProps({
- element
- })];
- return {
- id: 'documentation',
- label: 'Documentation',
- entries,
- component: propertiesPanel.Group
- };
- }
- function ErrorGroup(element) {
- const group = {
- id: 'error',
- label: 'Error',
- component: propertiesPanel.Group,
- entries: [...ErrorProps$1({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function MessageGroup(element) {
- const group = {
- id: 'message',
- label: 'Message',
- component: propertiesPanel.Group,
- entries: [...MessageProps$1({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function SignalGroup(element) {
- const group = {
- id: 'signal',
- label: 'Signal',
- component: propertiesPanel.Group,
- entries: [...SignalProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function LinkGroup(element) {
- const group = {
- label: 'Link',
- id: 'link',
- component: propertiesPanel.Group,
- entries: [...LinkProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function EscalationGroup(element) {
- const group = {
- id: 'escalation',
- label: 'Escalation',
- component: propertiesPanel.Group,
- entries: [...EscalationProps$1({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function TimerGroup(element) {
- const group = {
- label: 'Timer',
- id: 'timer',
- component: propertiesPanel.Group,
- entries: [...TimerProps$1({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function MultiInstanceGroup(element) {
- const group = {
- label: 'Multi-instance',
- id: 'multiInstance',
- component: propertiesPanel.Group,
- entries: [...MultiInstanceProps$2({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function getGroups(element) {
- const groups = [GeneralGroup(element), DocumentationGroup(element), CompensationGroup(element), ErrorGroup(element), LinkGroup(element), MessageGroup(element), MultiInstanceGroup(element), SignalGroup(element), EscalationGroup(element), TimerGroup(element)]; // contract: if a group returns null, it should not be displayed at all
- return groups.filter(group => group !== null);
- }
- class BpmnPropertiesProvider {
- constructor(propertiesPanel) {
- propertiesPanel.registerProvider(this);
- }
- getGroups(element) {
- return groups => {
- groups = groups.concat(getGroups(element));
- return groups;
- };
- }
- }
- BpmnPropertiesProvider.$inject = ['propertiesPanel'];
- var index$2 = {
- __init__: ['bpmnPropertiesProvider'],
- bpmnPropertiesProvider: ['type', BpmnPropertiesProvider]
- };
- /**
- * Get extension elements of business object. Optionally filter by type.
- *
- * @param {ModdleElement} businessObject
- * @param {String} [type=undefined]
- * @returns {Array<ModdleElement>}
- */
- function getExtensionElementsList(businessObject, type = undefined) {
- const extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- return [];
- }
- const values = extensionElements.get('values');
- if (!values || !values.length) {
- return [];
- }
- if (type) {
- return values.filter(value => ModelUtil.is(value, type));
- }
- return values;
- }
- /**
- * Add one or more extension elements. Create bpmn:ExtensionElements if it doesn't exist.
- *
- * @param {ModdleElement} element
- * @param {ModdleElement} businessObject
- * @param {ModdleElement|Array<ModdleElement>} extensionElementsToAdd
- * @param {CommandStack} commandStack
- */
- function addExtensionElements(element, businessObject, extensionElementToAdd, bpmnFactory, commandStack) {
- const commands = [];
- let extensionElements = businessObject.get('extensionElements'); // (1) create bpmn:ExtensionElements if it doesn't exist
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- }
- extensionElementToAdd.$parent = extensionElements; // (2) add extension element to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), extensionElementToAdd]
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- /**
- * Remove one or more extension elements. Remove bpmn:ExtensionElements afterwards if it's empty.
- *
- * @param {ModdleElement} element
- * @param {ModdleElement} businessObject
- * @param {ModdleElement|Array<ModdleElement>} extensionElementsToRemove
- * @param {CommandStack} commandStack
- */
- function removeExtensionElements(element, businessObject, extensionElementsToRemove, commandStack) {
- if (!minDash.isArray(extensionElementsToRemove)) {
- extensionElementsToRemove = [extensionElementsToRemove];
- }
- const extensionElements = businessObject.get('extensionElements'),
- values = extensionElements.get('values').filter(value => !extensionElementsToRemove.includes(value));
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values
- }
- });
- }
- function withVariableContext(Component) {
- return props => {
- const {
- bpmnElement,
- element
- } = props;
- const bo = (bpmnElement || element).businessObject;
- const context = hooks.useMemo(() => {
- const variables = zeebe.getVariablesForElement(bo);
- return variables.map(variable => {
- return {
- name: variable.name,
- info: 'Written in ' + variable.origin.map(origin => origin.name || origin.id).join(', ')
- };
- });
- }, [bo]);
- return jsxRuntime.jsx(Component, { ...props,
- variables: context
- });
- };
- }
- function AssignmentDefinitionProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:UserTask')) {
- return [];
- }
- return [{
- id: 'assignmentDefinitionAssignee',
- component: Assignee$1,
- isEdited: propertiesPanel.isFeelEntryEdited
- }, {
- id: 'assignmentDefinitionCandidateGroups',
- component: CandidateGroups$1,
- isEdited: propertiesPanel.isFeelEntryEdited
- }];
- }
- function Assignee$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getAssignmentDefinition(element) || {}).assignee;
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure AssignmentDefinition
- let assignmentDefinition = getAssignmentDefinition(element);
- if (!assignmentDefinition) {
- assignmentDefinition = createElement('zeebe:AssignmentDefinition', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), assignmentDefinition]
- }
- }
- });
- } // (3) update assignee definition type
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: assignmentDefinition,
- properties: {
- assignee: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'assignmentDefinitionAssignee',
- label: translate('Assignee'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- }
- function CandidateGroups$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getAssignmentDefinition(element) || {}).candidateGroups;
- };
- const setValue = value => {
- let commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure assignmentDefinition
- let assignmentDefinition = getAssignmentDefinition(element);
- if (!assignmentDefinition) {
- assignmentDefinition = createElement('zeebe:AssignmentDefinition', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), assignmentDefinition]
- }
- }
- });
- } // (3) update candidateGroups
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: assignmentDefinition,
- properties: {
- candidateGroups: value
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'assignmentDefinitionCandidateGroups',
- label: translate('Candidate groups'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function getAssignmentDefinition(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:AssignmentDefinition')[0];
- }
- const DMN_IMPLEMENTATION_OPTION = 'dmn',
- JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker',
- DEFAULT_IMPLEMENTATION_OPTION = '';
- function BusinessRuleImplementationProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:BusinessRuleTask')) {
- return [];
- }
- return [{
- id: 'businessRuleImplementation',
- component: BusinessRuleImplementation,
- isEdited: () => isBusinessRuleImplementationEdited(element)
- }];
- }
- function BusinessRuleImplementation(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const getValue = () => {
- if (getCalledDecision$1(element)) {
- return DMN_IMPLEMENTATION_OPTION;
- }
- if (getTaskDefinition$2(element)) {
- return JOB_WORKER_IMPLEMENTATION_OPTION;
- }
- return DEFAULT_IMPLEMENTATION_OPTION;
- };
- /**
- * Set value by either creating a zeebe:calledDecision or a zeebe:taskDefintion
- * extension element. Note that they must not exist both at the same time, however
- * this will be ensured by a bpmn-js behavior (and not by the propPanel).
- */
- const setValue = value => {
- let extensionElement, extensionElementType;
- if (value === DMN_IMPLEMENTATION_OPTION) {
- extensionElement = getCalledDecision$1(element);
- extensionElementType = 'zeebe:CalledDecision';
- } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {
- extensionElement = getTaskDefinition$2(element);
- extensionElementType = 'zeebe:TaskDefinition';
- } else {
- resetElement(element, commandStack);
- }
- if (!extensionElement && extensionElementType) {
- extensionElement = createElement(extensionElementType, {}, null, bpmnFactory);
- updateExtensionElements(element, extensionElement, bpmnFactory, commandStack);
- }
- };
- const getOptions = () => {
- const options = [{
- value: DEFAULT_IMPLEMENTATION_OPTION,
- label: translate('<none>')
- }, {
- value: DMN_IMPLEMENTATION_OPTION,
- label: translate('DMN decision')
- }, {
- value: JOB_WORKER_IMPLEMENTATION_OPTION,
- label: translate('Job worker')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id,
- label: translate('Implementation'),
- getValue,
- setValue,
- getOptions
- });
- } // helper ///////////////////////
- function getTaskDefinition$2(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
- }
- function getCalledDecision$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];
- }
- function isBusinessRuleImplementationEdited(element) {
- return getTaskDefinition$2(element);
- }
- function resetElement(element, commandStack) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const taskDefintion = getTaskDefinition$2(element);
- const calledDecision = getCalledDecision$1(element);
- if (taskDefintion) {
- removeExtensionElements(element, businessObject, taskDefintion, commandStack);
- }
- if (calledDecision) {
- removeExtensionElements(element, businessObject, calledDecision, commandStack);
- }
- }
- function updateExtensionElements(element, extensionElementToAdd, bpmnFactory, commandStack) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const commands = [];
- let extensionElements = businessObject.get('extensionElements');
- let extensionElementValues; // (1) create bpmn:ExtensionElements if it doesn't exist
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- }
- extensionElementToAdd.$parent = extensionElements; // (2) remove old exension element from extensionElements
- if (ModelUtil.is(extensionElementToAdd, 'zeebe:TaskDefinition')) {
- extensionElementValues = minDash.without(extensionElements.get('values'), getCalledDecision$1(element));
- } else if (ModelUtil.is(extensionElementToAdd, 'zeebe:CalledDecision')) {
- extensionElementValues = minDash.without(extensionElements.get('values'), getTaskDefinition$2(element));
- } // (3) add extension element to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElementValues, extensionElementToAdd]
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function CalledDecisionProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:BusinessRuleTask') || !getCalledDecision(element)) {
- return [];
- }
- return [{
- id: 'decisionId',
- component: DecisionID,
- isEdited: propertiesPanel.isFeelEntryEdited
- }, {
- id: 'resultVariable',
- component: ResultVariable$3,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function DecisionID(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getCalledDecision(element) || {}).decisionId;
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure calledDecision
- let calledDecision = getCalledDecision(element);
- if (!calledDecision) {
- calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), calledDecision]
- }
- }
- });
- } // (3) update caledDecision.decisionId
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: calledDecision,
- properties: {
- decisionId: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id,
- label: translate('Decision ID'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- }
- function ResultVariable$3(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getCalledDecision(element) || {}).resultVariable;
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure calledDecision
- let calledDecision = getCalledDecision(element);
- if (!calledDecision) {
- calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), calledDecision]
- }
- }
- });
- } // (3) update caledDecision.decisionId
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: calledDecision,
- properties: {
- resultVariable: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id,
- label: translate('Result variable'),
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function getCalledDecision(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:CalledDecision')[0];
- }
- function ConditionProps$1(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:SequenceFlow')) {
- return [];
- }
- const conditionProps = [];
- if (isConditionalSource$1(element.source)) {
- conditionProps.push({
- id: 'conditionExpression',
- component: ConditionExpression$1,
- isEdited: propertiesPanel.isFeelEntryEdited
- });
- }
- return conditionProps;
- }
- function ConditionExpression$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionExpression$1(element);
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element); // (1) If we set value to a default flow, make it a non-default flow
- // by updating the element source
- const source = element.source;
- if (source.businessObject.default === businessObject) {
- commands.push({
- cmd: 'element.updateProperties',
- context: {
- element: source,
- properties: {
- 'default': undefined
- }
- }
- });
- } // (2) Create and set formalExpression element containing the conditionExpression,
- // unless the provided value is empty
- const formalExpressionElement = value && value != '' ? createElement('bpmn:FormalExpression', {
- body: value
- }, businessObject, bpmnFactory) : undefined;
- commands.push({
- cmd: 'element.updateProperties',
- context: {
- element: element,
- properties: {
- conditionExpression: formalExpressionElement
- }
- }
- }); // (3) Execute the commands
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'conditionExpression',
- label: translate('Condition expression'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////////////
- const CONDITIONAL_SOURCES$1 = ['bpmn:Activity', 'bpmn:ExclusiveGateway'];
- function isConditionalSource$1(element) {
- return ModelingUtil.isAny(element, CONDITIONAL_SOURCES$1);
- }
- /**
- * getConditionExpression - get the body value of a condition expression for a given element
- *
- * @param {ModdleElement} element
- *
- * @return {string|undefined}
- */
- function getConditionExpression$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const conditionExpression = businessObject.conditionExpression;
- if (conditionExpression) {
- return conditionExpression.get('body');
- }
- }
- function FormProps$1(props) {
- const {
- element,
- injector
- } = props;
- const formHelper = injector.invoke(FormHelper);
- if (!ModelUtil.is(element, 'bpmn:UserTask')) {
- return [];
- }
- const entries = [{
- id: 'formType',
- component: FormType$1,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- if (isCamundaForm(element, formHelper)) {
- entries.push({
- id: 'formConfiguration',
- component: FormConfiguration,
- isEdited: propertiesPanel.isTextAreaEntryEdited
- });
- } else if (isCustomKey(element, formHelper)) {
- entries.push({
- id: 'customFormKey',
- component: CustomFormKey,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function FormType$1(props) {
- const {
- element
- } = props;
- const translate = useService('translate');
- const injector = useService('injector');
- const formHelper = injector.invoke(FormHelper);
- const getValue = () => {
- const formDefinition = formHelper.getFormDefinition(element);
- const userTaskForm = formHelper.getUserTaskForm(element);
- if (formDefinition) {
- if (userTaskForm) {
- return 'camundaForm';
- }
- return 'formKey';
- }
- return '';
- };
- const setValue = value => {
- formHelper.resetForm(element);
- if (value === 'camundaForm') {
- formHelper.setUserTaskForm(element, '');
- } else if (value === 'formKey') {
- formHelper.setFormDefinition(element, '');
- }
- };
- const getOptions = () => {
- return [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'camundaForm',
- label: translate('Camunda forms')
- }, {
- value: 'formKey',
- label: translate('Custom form key')
- }];
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'formType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function FormConfiguration(props) {
- const {
- element
- } = props;
- const injector = useService('injector');
- const debounce = useService('debounceInput');
- const translate = useService('translate');
- const formHelper = injector.invoke(FormHelper);
- const getValue = () => {
- const userTaskForm = formHelper.getUserTaskForm(element);
- return userTaskForm.get('body');
- };
- const setValue = value => {
- formHelper.setUserTaskForm(element, value);
- };
- return propertiesPanel.TextAreaEntry({
- element,
- id: 'formConfiguration',
- label: translate('Form JSON configuration'),
- rows: 4,
- getValue,
- setValue,
- debounce
- });
- }
- function CustomFormKey(props) {
- const {
- element
- } = props;
- const injector = useService('injector');
- const debounce = useService('debounceInput');
- const translate = useService('translate');
- const formHelper = injector.invoke(FormHelper);
- const getValue = () => {
- const formDefinition = formHelper.getFormDefinition(element);
- return formDefinition.get('formKey');
- };
- const setValue = value => {
- formHelper.setFormDefinition(element, value);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'customFormKey',
- label: translate('Form key'),
- getValue,
- setValue,
- debounce
- });
- }
- const USER_TASK_FORM_PREFIX = 'userTaskForm_';
- function FormHelper(bpmnFactory, commandStack) {
- function getFormDefinition(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const formDefinitions = getExtensionElementsList(businessObject, 'zeebe:FormDefinition');
- return formDefinitions[0];
- }
- function getUserTaskForm(element, parent) {
- const rootElement = parent || getRootElement(element); // (1) get form definition from user task
- const formDefinition = getFormDefinition(element);
- if (minDash.isUndefined(formDefinition)) {
- return;
- }
- const formKey = formDefinition.get('formKey'); // (2) retrieve user task form via form key
- const userTaskForm = findUserTaskForm(formKey, rootElement);
- return userTaskForm;
- }
- function ensureTaskForm(element, values) {
- let commands = [];
- const rootElement = getRootElement(element); // (1) ensure root element extension elements
- let rootExtensionElements = rootElement.get('extensionElements');
- if (!rootExtensionElements) {
- rootExtensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, rootElement, bpmnFactory);
- commands.push(UpdateModdlePropertiesCmd(element, rootElement, {
- extensionElements: rootExtensionElements
- }));
- } // (2) ensure user task form
- let userTaskForm = getUserTaskForm(element); // (2.1) create user task form if doesn't exist
- if (!userTaskForm) {
- userTaskForm = createUserTaskForm(values, rootExtensionElements, bpmnFactory);
- commands.push(UpdateModdlePropertiesCmd(element, rootExtensionElements, {
- values: [...rootExtensionElements.get('values'), userTaskForm]
- }));
- }
- commands.push(UpdateModdlePropertiesCmd(element, userTaskForm, values));
- return commands;
- }
- function ensureFormDefinition(element, customFormKey) {
- const businessObject = ModelUtil.getBusinessObject(element);
- let commands = []; // (1) ensure extension elements
- let extensionElements = businessObject.get('extensionElements');
- if (minDash.isUndefined(extensionElements)) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push(UpdateModdlePropertiesCmd(element, businessObject, {
- extensionElements: extensionElements
- }));
- } // (2) ensure form definition
- let formDefinition = getFormDefinition(element); // (2.1) create if doesn't exist
- if (!formDefinition) {
- let formKey = customFormKey;
- if (minDash.isUndefined(formKey)) {
- const formId = createFormId();
- formKey = createFormKey(formId);
- }
- formDefinition = createFormDefinition({
- formKey
- }, extensionElements, bpmnFactory);
- commands.push(UpdateModdlePropertiesCmd(element, extensionElements, {
- values: [...extensionElements.get('values'), formDefinition]
- }));
- } // (2.2) update existing form definition with custom key
- else if (customFormKey) {
- commands.push(UpdateModdlePropertiesCmd(element, formDefinition, {
- formKey: customFormKey
- }));
- }
- return {
- formId: resolveFormId(formDefinition.get('formKey')),
- commands
- };
- }
- function setFormDefinition(element, customFormKey) {
- const {
- commands
- } = ensureFormDefinition(element, customFormKey);
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function setUserTaskForm(element, value) {
- const {
- formId,
- commands: formDefCommands
- } = ensureFormDefinition(element);
- const userTaskCommands = ensureTaskForm(element, {
- id: formId,
- body: value
- });
- const commands = formDefCommands.concat(userTaskCommands);
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function unsetFormDefinition(element) {
- const businessObject = ModelUtil.getBusinessObject(element),
- extensionElements = businessObject.get('extensionElements');
- let commands = [];
- const formDefinition = getFormDefinition(element);
- if (!formDefinition) {
- return commands;
- }
- let values = minDash.without(extensionElements.get('values'), formDefinition);
- commands.push(UpdateModdlePropertiesCmd(element, extensionElements, {
- values
- }));
- return commands;
- }
- function resetForm(element) {
- const rootElement = getRootElement(element),
- rootExtensionElements = rootElement.get('extensionElements'); // (1) remove form definition
- const commands = unsetFormDefinition(element); // (2) remove referenced user task form
- const userTaskForm = getUserTaskForm(element);
- if (!userTaskForm) {
- commandStack.execute('properties-panel.multi-command-executor', commands);
- return;
- }
- const values = minDash.without(rootExtensionElements.get('values'), userTaskForm);
- commands.push(UpdateModdlePropertiesCmd(element, rootExtensionElements, {
- values
- }));
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function createFormKey(formId) {
- return 'camunda-forms:bpmn:' + formId;
- }
- function createFormId() {
- return nextId(USER_TASK_FORM_PREFIX);
- }
- function resolveFormId(formKey) {
- return formKey.split(':')[2];
- }
- function createFormDefinition(properties, extensionElements, bpmnFactory) {
- return createElement('zeebe:FormDefinition', properties, extensionElements, bpmnFactory);
- }
- function createUserTaskForm(properties, extensionElements, bpmnFactory) {
- return createElement('zeebe:UserTaskForm', properties, extensionElements, bpmnFactory);
- }
- function findUserTaskForm(formKey, rootElement) {
- const forms = getExtensionElementsList(rootElement, 'zeebe:UserTaskForm');
- return minDash.find(forms, function (userTaskForm) {
- return createFormKey(userTaskForm.id) === formKey;
- });
- }
- function getRootElement(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- let parent = businessObject;
- while (parent.$parent && !ModelUtil.is(parent, 'bpmn:Process')) {
- parent = parent.$parent;
- }
- return parent;
- }
- return {
- getFormDefinition,
- getUserTaskForm,
- setFormDefinition,
- setUserTaskForm,
- resetForm
- };
- }
- FormHelper.$inject = ['bpmnFactory', 'commandStack']; // helpers /////////////
- function UpdateModdlePropertiesCmd(element, businessObject, newProperties) {
- return {
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: newProperties
- }
- };
- }
- function isCamundaForm(element, formHelper) {
- const formDefinition = formHelper.getFormDefinition(element);
- const userTaskForm = formHelper.getUserTaskForm(element);
- return formDefinition && userTaskForm;
- }
- function isCustomKey(element, formHelper) {
- const formDefinition = formHelper.getFormDefinition(element);
- const userTaskForm = formHelper.getUserTaskForm(element);
- return formDefinition && !userTaskForm;
- }
- function Header(props) {
- const {
- idPrefix,
- header
- } = props;
- const entries = [{
- id: idPrefix + '-key',
- component: KeyProperty,
- header,
- idPrefix
- }, {
- id: idPrefix + '-value',
- component: ValueProperty$2,
- header,
- idPrefix
- }];
- return entries;
- }
- function KeyProperty(props) {
- const {
- idPrefix,
- element,
- header
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: header,
- properties: {
- key: value
- }
- });
- };
- const getValue = header => {
- return header.key;
- };
- return propertiesPanel.TextFieldEntry({
- element: header,
- id: idPrefix + '-key',
- label: translate('Key'),
- getValue,
- setValue,
- debounce
- });
- }
- function ValueProperty$2(props) {
- const {
- idPrefix,
- element,
- header
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: header,
- properties: {
- value
- }
- });
- };
- const getValue = header => {
- return header.value;
- };
- return propertiesPanel.TextFieldEntry({
- element: header,
- id: idPrefix + '-value',
- label: translate('Value'),
- getValue,
- setValue,
- debounce
- });
- }
- function isZeebeServiceTask(element) {
- if (!ModelUtil.is(element, 'zeebe:ZeebeServiceTask')) return false;
- if (ModelUtil.is(element, 'bpmn:EndEvent') || ModelUtil.is(element, 'bpmn:IntermediateThrowEvent')) {
- return !!getMessageEventDefinition(element);
- } // A BusinessRuleTask is per default not a ServiceTask, only if it has a TaskDefinition
- // (ie. if the implementation is set to ==JobWorker)
- if (ModelUtil.is(element, 'bpmn:BusinessRuleTask') && !getTaskDefinition$1(element)) {
- return false;
- }
- return true;
- }
- function isMessageEndEvent(element) {
- return ModelUtil.is(element, 'bpmn:EndEvent') && !!getMessageEventDefinition(element);
- }
- function isMessageThrowEvent(element) {
- return ModelUtil.is(element, 'bpmn:IntermediateThrowEvent') && !!getMessageEventDefinition(element);
- } // helper ////////////////
- function getTaskDefinition$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
- }
- function areHeadersSupported(element) {
- return ModelUtil.is(element, 'bpmn:UserTask') || isZeebeServiceTask(element);
- }
- /**
- * Get first zeebe:TaskHeaders element for a specific element.
- *
- * @param {ModdleElement} element
- *
- * @return {ModdleElement} a zeebe:TaskHeader element
- */
- function getTaskHeaders(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:TaskHeaders')[0];
- }
- /**
- * Retrieve all zeebe:Header elements for a specific element.
- *
- * @param {ModdleElement} element
- *
- * @return {Array<ModdleElement>} a list of zeebe:Header elements
- */
- function getHeaders(element) {
- const taskHeaders = getTaskHeaders(element);
- return taskHeaders ? taskHeaders.get('values') : [];
- }
- function HeaderProps({
- element,
- injector
- }) {
- if (!areHeadersSupported(element)) {
- return null;
- }
- const headers = getHeaders(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = headers.map((header, index) => {
- const id = element.id + '-header-' + index;
- return {
- id,
- label: header.get('key') || '',
- entries: Header({
- idPrefix: id,
- element,
- header
- }),
- autoFocusEntry: id + '-key',
- remove: removeFactory$c({
- commandStack,
- element,
- header
- })
- };
- });
- return {
- items,
- add: addFactory$9({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory$c({
- commandStack,
- element,
- header
- }) {
- return function (event) {
- event.stopPropagation();
- let commands = [];
- const taskHeaders = getTaskHeaders(element);
- if (!taskHeaders) {
- return;
- }
- const newTaskHeaders = minDash.without(taskHeaders.get('values'), header);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: taskHeaders,
- properties: {
- values: newTaskHeaders
- }
- }
- }); // remove zeebe:TaskHeaders if there are no headers anymore
- if (!newTaskHeaders.length) {
- const businessObject = ModelUtil.getBusinessObject(element),
- extensionElements = businessObject.get('extensionElements');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), taskHeaders)
- }
- }
- });
- }
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function addFactory$9({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- let commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure zeebe:TaskHeaders
- let taskHeaders = getTaskHeaders(element);
- if (!taskHeaders) {
- const parent = extensionElements;
- taskHeaders = createElement('zeebe:TaskHeaders', {
- values: []
- }, parent, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), taskHeaders]
- }
- }
- });
- } // (3) create header
- const header = createElement('zeebe:Header', {}, taskHeaders, bpmnFactory); // (4) add header to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: taskHeaders,
- properties: {
- values: [...taskHeaders.get('values'), header]
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function InputOutputParameter$1(props) {
- const {
- idPrefix,
- parameter
- } = props;
- const entries = [{
- id: idPrefix + '-target',
- component: TargetProperty,
- idPrefix,
- parameter
- }, {
- id: idPrefix + '-source',
- component: SourceProperty,
- idPrefix,
- parameter
- }];
- return entries;
- }
- function TargetProperty(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: parameter,
- properties: {
- target: value
- }
- });
- };
- const getValue = parameter => {
- return parameter.target;
- };
- return propertiesPanel.TextFieldEntry({
- element: parameter,
- id: idPrefix + '-target',
- label: translate(ModelUtil.is(parameter, 'zeebe:Input') ? 'Local variable name' : 'Process variable name'),
- getValue,
- setValue,
- debounce
- });
- }
- function SourceProperty(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: parameter,
- properties: {
- source: value
- }
- });
- };
- const getValue = parameter => {
- return parameter.source;
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- bpmnElement: element,
- element: parameter,
- id: idPrefix + '-source',
- label: translate('Variable assignment value'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- }
- function getElements$1(bo, type, prop) {
- const elems = getExtensionElementsList(bo, type);
- return !prop ? elems : (elems[0] || {})[prop] || [];
- }
- function getParameters$1(element, prop) {
- const ioMapping = getIoMapping(element);
- return ioMapping && ioMapping.get(prop) || [];
- }
- /**
- * Get a ioMapping from the business object
- *
- * @param {djs.model.Base} element
- *
- * @return {ModdleElement} the ioMapping object
- */
- function getIoMapping(element) {
- const bo = ModelUtil.getBusinessObject(element);
- return (getElements$1(bo, 'zeebe:IoMapping') || [])[0];
- }
- /**
- * Return all input parameters existing in the business object, and
- * an empty array if none exist.
- *
- * @param {djs.model.Base} element
- *
- * @return {Array} a list of input parameter objects
- */
- function getInputParameters$1(element) {
- return getParameters$1.apply(this, [element, 'inputParameters']);
- }
- /**
- * Return all output parameters existing in the business object, and
- * an empty array if none exist.
- *
- * @param {djs.model.Base} element
- *
- * @return {Array} a list of output parameter objects
- */
- function getOutputParameters$1(element) {
- return getParameters$1.apply(this, [element, 'outputParameters']);
- }
- function areInputParametersSupported$1(element) {
- return ModelingUtil.isAny(element, ['bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:CallActivity', 'bpmn:BusinessRuleTask']) || isZeebeServiceTask(element);
- }
- function areOutputParametersSupported$1(element) {
- return ModelingUtil.isAny(element, ['zeebe:ZeebeServiceTask', 'bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:ReceiveTask', 'bpmn:CallActivity', 'bpmn:Event', 'bpmn:BusinessRuleTask']);
- }
- function createIOMapping(properties, parent, bpmnFactory) {
- return createElement('zeebe:IoMapping', properties, parent, bpmnFactory);
- }
- function InputProps$1({
- element,
- injector
- }) {
- if (!areInputParametersSupported$1(element)) {
- return null;
- }
- const inputParameters = getInputParameters$1(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = inputParameters.map((parameter, index) => {
- const id = element.id + '-input-' + index;
- return {
- id,
- label: parameter.get('target') || '',
- entries: InputOutputParameter$1({
- idPrefix: id,
- element,
- parameter
- }),
- autoFocusEntry: id + '-target',
- remove: removeFactory$b({
- commandStack,
- element,
- parameter
- })
- };
- });
- return {
- items,
- add: addFactory$8({
- element,
- bpmnFactory,
- commandStack
- })
- };
- }
- function removeFactory$b({
- commandStack,
- element,
- parameter
- }) {
- return function (event) {
- event.stopPropagation();
- const commands = [];
- const ioMapping = getIoMapping(element);
- if (!ioMapping) {
- return;
- }
- const inputParameters = minDash.without(ioMapping.get('inputParameters'), parameter);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: ioMapping,
- properties: {
- inputParameters
- }
- }
- });
- const businessObject = ModelUtil.getBusinessObject(element),
- extensionElements = businessObject.get('extensionElements'),
- values = minDash.without(extensionElements.get('values'), ioMapping); // remove ioMapping if there are no input/output parameters anymore
- if (!inputParameters.length && !ioMapping.get('outputParameters').length) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values
- }
- }
- });
- }
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function addFactory$8({
- element,
- bpmnFactory,
- commandStack
- }) {
- return function (event) {
- event.stopPropagation();
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure IoMapping
- let ioMapping = getIoMapping(element);
- if (!ioMapping) {
- ioMapping = createIOMapping({
- inputParameters: [],
- outputParameters: []
- }, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), ioMapping]
- }
- }
- });
- } // (3) create parameter
- const newParameter = createElement('zeebe:Input', {
- source: '=source',
- target: nextId('InputVariable_')
- }, ioMapping, bpmnFactory); // (4) add parameter to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: ioMapping,
- properties: {
- inputParameters: [...ioMapping.get('inputParameters'), newParameter]
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function MessageProps(props) {
- const {
- element
- } = props;
- const message = getMessage(element);
- const entries = [];
- if (message) {
- entries.push({
- id: 'messageName',
- component: MessageName,
- isEdited: propertiesPanel.isFeelEntryEdited
- });
- }
- if (message && canHaveSubscriptionCorrelationKey(element)) {
- entries.push({
- id: 'messageSubscriptionCorrelationKey',
- component: SubscriptionCorrelationKey,
- isEdited: propertiesPanel.isFeelEntryEdited
- });
- }
- return entries;
- }
- function MessageName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const message = getMessage(element);
- const getValue = () => {
- return message.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: message,
- properties: {
- name: value
- }
- });
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'messageName',
- label: translate('Name'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- }
- function SubscriptionCorrelationKey(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getCorrelationKey(element);
- };
- const setValue = value => {
- const commands = [];
- const message = getMessage(element);
- let extensionElements = message.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, message, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: message,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure subscription
- let subscription = getSubscription(element);
- if (!subscription) {
- subscription = createElement('zeebe:Subscription', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), subscription]
- }
- }
- });
- } // (3) update subscription correlation key
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: subscription,
- properties: {
- correlationKey: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'messageSubscriptionCorrelationKey',
- label: translate('Subscription correlation key'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function canHaveSubscriptionCorrelationKey(element) {
- // (1) allow for receive task
- if (ModelUtil.is(element, 'bpmn:ReceiveTask')) {
- return true;
- } // (2) allow for non start events
- if (!ModelUtil.is(element, 'bpmn:StartEvent')) {
- return true;
- } // (3) allow for start events inside event sub processes
- if (ModelUtil.is(element, 'bpmn:StartEvent') && DiUtil.isEventSubProcess(element.parent)) {
- return true;
- }
- return false;
- }
- function getCorrelationKey(element) {
- const subscription = getSubscription(element);
- return subscription ? subscription.get('correlationKey') : '';
- }
- function getSubscription(element) {
- const message = getMessage(element);
- const subscriptions = getSubscriptions(message);
- return subscriptions[0];
- }
- function getSubscriptions(message) {
- const extensionElements = getExtensionElementsList(message, 'zeebe:Subscription');
- return extensionElements;
- }
- function MultiInstanceProps$1(props) {
- const {
- element
- } = props;
- if (!supportsMultiInstances(element)) {
- return [];
- }
- return [{
- id: 'multiInstance-inputCollection',
- component: InputCollection,
- isEdited: propertiesPanel.isFeelEntryEdited
- }, {
- id: 'multiInstance-inputElement',
- component: InputElement,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'multiInstance-outputCollection',
- component: OutputCollection,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'multiInstance-outputElement',
- component: OutputElement,
- isEdited: propertiesPanel.isFeelEntryEdited
- }, {
- id: 'multiInstance-completionCondition',
- component: CompletionCondition,
- isEdited: propertiesPanel.isFeelEntryEdited
- }];
- }
- function InputCollection(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getProperty$1(element, 'inputCollection');
- };
- const setValue = value => {
- return setProperty(element, 'inputCollection', value, commandStack, bpmnFactory);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'multiInstance-inputCollection',
- label: translate('Input collection'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- }
- function InputElement(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getProperty$1(element, 'inputElement');
- };
- const setValue = value => {
- return setProperty(element, 'inputElement', value, commandStack, bpmnFactory);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'multiInstance-inputElement',
- label: translate('Input element'),
- getValue,
- setValue,
- debounce
- });
- }
- function OutputCollection(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getProperty$1(element, 'outputCollection');
- };
- const setValue = value => {
- return setProperty(element, 'outputCollection', value, commandStack, bpmnFactory);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'multiInstance-outputCollection',
- label: translate('Output collection'),
- getValue,
- setValue,
- debounce
- });
- }
- function OutputElement(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getProperty$1(element, 'outputElement');
- };
- const setValue = value => {
- return setProperty(element, 'outputElement', value, commandStack, bpmnFactory);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'multiInstance-outputElement',
- label: translate('Output element'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- }
- function CompletionCondition(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- const completionCondition = getCompletionCondition(element);
- return completionCondition && completionCondition.get('body');
- };
- const setValue = value => {
- if (value && value !== '') {
- const loopCharacteristics = getLoopCharacteristics$1(element);
- const completionCondition = createElement('bpmn:FormalExpression', {
- body: value
- }, loopCharacteristics, bpmnFactory);
- setCompletionCondition(element, commandStack, completionCondition);
- } else {
- setCompletionCondition(element, commandStack, undefined);
- }
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'multiInstance-completionCondition',
- label: translate('Completion condition'),
- feel: 'required',
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function getLoopCharacteristics$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject.get('loopCharacteristics');
- }
- function getZeebeLoopCharacteristics(loopCharacteristics) {
- const extensionElements = getExtensionElementsList(loopCharacteristics, 'zeebe:LoopCharacteristics');
- return extensionElements && extensionElements[0];
- }
- function supportsMultiInstances(element) {
- return !!getLoopCharacteristics$1(element);
- }
- function getCompletionCondition(element) {
- return getLoopCharacteristics$1(element).get('completionCondition');
- }
- function setCompletionCondition(element, commandStack, completionCondition = undefined) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: getLoopCharacteristics$1(element),
- properties: {
- completionCondition
- }
- });
- }
- function getProperty$1(element, propertyName) {
- const loopCharacteristics = getLoopCharacteristics$1(element),
- zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);
- return zeebeLoopCharacteristics && zeebeLoopCharacteristics.get(propertyName);
- }
- function setProperty(element, propertyName, value, commandStack, bpmnFactory) {
- const loopCharacteristics = getLoopCharacteristics$1(element);
- const commands = []; // (1) ensure extension elements
- let extensionElements = loopCharacteristics.get('extensionElements');
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, loopCharacteristics, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure zeebe loop characteristics
- let zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);
- if (!zeebeLoopCharacteristics) {
- zeebeLoopCharacteristics = createElement('zeebe:LoopCharacteristics', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), zeebeLoopCharacteristics]
- }
- }
- });
- } // (3) update defined property
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: zeebeLoopCharacteristics,
- properties: {
- [propertyName]: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function getProcessId(element) {
- const calledElement = getCalledElement(element);
- return calledElement ? calledElement.get('processId') : '';
- }
- function getCalledElement(element) {
- const calledElements = getCalledElements(element);
- return calledElements[0];
- }
- function getCalledElements(element) {
- const bo = ModelUtil.getBusinessObject(element);
- const extElements = getExtensionElementsList(bo, 'zeebe:CalledElement');
- return extElements;
- }
- function OutputPropagationProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:CallActivity')) {
- return [];
- }
- return [{
- id: 'propagateAllChildVariables',
- component: PropagateAllChildVariables,
- isEdited: propertiesPanel.isToggleSwitchEntryEdited
- }];
- }
- function PropagateAllChildVariables(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate');
- const propagateAllChildVariables = isPropagateAllChildVariables(element);
- const getValue = () => {
- return propagateAllChildVariables;
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element); // (1) ensure extension elements
- let extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure zeebe:calledElement
- let calledElement = getCalledElement(businessObject);
- if (!calledElement) {
- calledElement = createElement('zeebe:CalledElement', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), calledElement]
- }
- }
- });
- } // (3) Update propagateAllChildVariables attribute
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: calledElement,
- properties: {
- propagateAllChildVariables: value
- }
- }
- }); // (4) Execute the commands
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return propertiesPanel.ToggleSwitchEntry({
- id: 'propagateAllChildVariables',
- label: translate('Propagate all child process variables'),
- switcherLabel: propagateAllChildVariables ? translate('On') : translate('Off'),
- description: propagateAllChildVariables ? translate('All variables from the child process instance will be propagated to the parent process instance') : translate('Only variables defined via output mappings will be propagated from the child to the parent process instance'),
- getValue,
- setValue
- });
- } // helper //////////////////////////
- /**
- * Determine default value for propagateAllChildVariables attribute
- * @param {Object} element representing a bpmn:CallActivity
- *
- * @returns {boolean}
- */
- function determinePropAllChildVariablesDefault(element) {
- const outputParameters = getOutputParameters$1(element);
- if (outputParameters) {
- return outputParameters.length > 0 ? false : true;
- }
- }
- /**
- * Check whether the propagateAllChildVariables attribute is set on an element.
- * Note that a default logic will be determine if it is not explicitly set.
- * @param {Object} element
- *
- * @returns {boolean}
- */
- function isPropagateAllChildVariables(element) {
- if (!ModelUtil.is(element, 'bpmn:CallActivity')) {
- return undefined;
- }
- const bo = ModelUtil.getBusinessObject(element),
- calledElement = getCalledElement(bo);
- return calledElement && minDash.has(calledElement, 'propagateAllChildVariables') ? calledElement.get('propagateAllChildVariables') : determinePropAllChildVariablesDefault(element);
- }
- function OutputProps$1({
- element,
- injector
- }) {
- if (!areOutputParametersSupported$1(element)) {
- return null;
- }
- const outputParameters = getOutputParameters$1(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = outputParameters.map((parameter, index) => {
- const id = element.id + '-output-' + index;
- return {
- id,
- label: parameter.get('target') || '',
- entries: InputOutputParameter$1({
- idPrefix: id,
- element,
- parameter
- }),
- autoFocusEntry: id + '-target',
- remove: removeFactory$a({
- commandStack,
- element,
- parameter
- })
- };
- });
- return {
- items,
- add: addFactory$7({
- element,
- bpmnFactory,
- commandStack
- })
- };
- }
- function removeFactory$a({
- commandStack,
- element,
- parameter
- }) {
- return function (event) {
- event.stopPropagation();
- let commands = [];
- const ioMapping = getIoMapping(element);
- if (!ioMapping) {
- return;
- }
- const outputParameters = minDash.without(ioMapping.get('outputParameters'), parameter);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: ioMapping,
- properties: {
- outputParameters
- }
- }
- }); // remove ioMapping if there are no input/output parameters anymore
- if (!ioMapping.get('inputParameters').length && !outputParameters.length) {
- const businessObject = ModelUtil.getBusinessObject(element),
- extensionElements = businessObject.get('extensionElements'),
- values = minDash.without(extensionElements.get('values'), ioMapping);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values
- }
- }
- });
- }
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function addFactory$7({
- element,
- bpmnFactory,
- commandStack
- }) {
- return function (event) {
- event.stopPropagation();
- let commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure IoMapping
- let ioMapping = getIoMapping(element);
- if (!ioMapping) {
- const parent = extensionElements;
- ioMapping = createIOMapping({
- inputParameters: [],
- outputParameters: []
- }, parent, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), ioMapping]
- }
- }
- });
- } // (3) create parameter
- const newParameter = createElement('zeebe:Output', {
- source: '=source',
- target: nextId('OutputVariable_')
- }, ioMapping, bpmnFactory); // (4) add parameter to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: ioMapping,
- properties: {
- outputParameters: [...ioMapping.get('outputParameters'), newParameter]
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function TargetProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:CallActivity')) {
- return [];
- }
- return [{
- id: 'targetProcessId',
- component: TargetProcessId,
- isEdited: propertiesPanel.isFeelEntryEdited
- }];
- }
- function TargetProcessId(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const getValue = () => {
- return getProcessId(element);
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element); // (1) ensure extension elements
- let extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure zeebe:calledElement
- let calledElement = getCalledElement(businessObject);
- if (!calledElement) {
- calledElement = createElement('zeebe:CalledElement', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), calledElement]
- }
- }
- });
- } // (3) Update processId attribute
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: calledElement,
- properties: {
- processId: value
- }
- }
- }); // (4) Execute the commands
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id,
- label: translate('Process ID'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- }
- function TaskDefinitionProps(props) {
- const {
- element
- } = props;
- if (!isZeebeServiceTask(element)) {
- return [];
- }
- return [{
- id: 'taskDefinitionType',
- component: TaskDefinitionType,
- isEdited: propertiesPanel.isFeelEntryEdited
- }, {
- id: 'taskDefinitionRetries',
- component: TaskDefinitionRetries,
- isEdited: propertiesPanel.isFeelEntryEdited
- }];
- }
- function TaskDefinitionType(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getTaskDefinition(element) || {}).type;
- };
- const setValue = value => {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure task definition
- let taskDefinition = getTaskDefinition(element);
- if (!taskDefinition) {
- taskDefinition = createElement('zeebe:TaskDefinition', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), taskDefinition]
- }
- }
- });
- } // (3) update task definition type
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: taskDefinition,
- properties: {
- type: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id,
- label: translate('Type'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- }
- function TaskDefinitionRetries(props) {
- const {
- element,
- id
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return (getTaskDefinition(element) || {}).retries;
- };
- const setValue = value => {
- let commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure task definition
- let taskDefinition = getTaskDefinition(element);
- if (!taskDefinition) {
- taskDefinition = createElement('zeebe:TaskDefinition', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), taskDefinition]
- }
- }
- });
- } // (3) update task definition retries
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: taskDefinition,
- properties: {
- retries: value
- }
- }
- });
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id,
- label: translate('Retries'),
- feel: 'optional',
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function getTaskDefinition(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
- }
- function TimerProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element),
- timerEventDefinition = getTimerEventDefinition(businessObject),
- timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition); // (1) Only show for supported elements
- if (!isTimerSupported(element)) {
- return [];
- } // (2) Return duration-specific TexField only if only duration is supported
- const onlySupportDuration = !isTimerDefinitionTypeSupported('timeCycle', element) && !isTimerDefinitionTypeSupported('timeDate', element); // (3) Only provide duration-specific textField if only duration is supported,
- // otherwise push type-select and generic textField is type was selected
- const entries = [];
- if (onlySupportDuration) {
- entries.push({
- id: 'timerEventDefinitionDurationValue',
- component: TimerEventDefinitionDurationValue,
- isEdited: propertiesPanel.isFeelEntryEdited
- });
- } else {
- entries.push({
- id: 'timerEventDefinitionType',
- component: TimerEventDefinitionType,
- isEdited: propertiesPanel.isSelectEntryEdited
- });
- if (timerEventDefinitionType) {
- entries.push({
- id: 'timerEventDefinitionValue',
- component: TimerEventDefinitionValue,
- isEdited: propertiesPanel.isFeelEntryEdited
- });
- }
- }
- return entries;
- }
- /**
- * TimerEventDefinitionType - Generic select entry allowing to select a specific
- * timerEventDefintionType. To be used together with timerEventDefinitionValue.
- *
- * @param {type} props
- * @return {SelectEntry}
- */
- function TimerEventDefinitionType(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element),
- timerEventDefinition = getTimerEventDefinition(businessObject),
- timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition);
- const getValue = () => {
- return timerEventDefinitionType || '';
- };
- const setValue = value => {
- // (1) Check if value is different to current type
- if (value === timerEventDefinitionType) {
- return;
- } // (2) Create empty formalExpression element
- const formalExpression = bpmnFactory.create('bpmn:FormalExpression', {
- body: undefined
- });
- formalExpression.$parent = timerEventDefinition; // (3) Set the value for selected timerEventDefinitionType
- const newProps = {
- timeDuration: undefined,
- timeDate: undefined,
- timeCycle: undefined
- };
- newProps[value] = formalExpression; // (4) Execute businessObject update
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: timerEventDefinition,
- properties: newProps
- });
- };
- const getOptions = element => {
- const options = [{
- value: '',
- label: translate('<none>')
- }];
- if (isTimerDefinitionTypeSupported('timeDate', element)) {
- options.push({
- value: 'timeDate',
- label: translate('Date')
- });
- }
- if (isTimerDefinitionTypeSupported('timeDuration', element)) {
- options.push({
- value: 'timeDuration',
- label: translate('Duration')
- });
- }
- if (isTimerDefinitionTypeSupported('timeCycle', element)) {
- options.push({
- value: 'timeCycle',
- label: translate('Cycle')
- });
- }
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'timerEventDefinitionType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- /**
- * TimerEventDefinitionValue - Generic textField entry allowing to specify the
- * timerEventDefintionValue based on the set timerEventDefintionType. To be used
- * together with timerEventDefinitionType.
- *
- * @param {type} props
- * @return {TextFieldEntry}
- */
- function TimerEventDefinitionValue(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element),
- timerEventDefinition = getTimerEventDefinition(businessObject),
- timerEventDefinitionType = getTimerDefinitionType(timerEventDefinition),
- timerEventFormalExpression = timerEventDefinition.get(timerEventDefinitionType);
- const getValue = () => {
- return timerEventFormalExpression && timerEventFormalExpression.get('body');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: timerEventFormalExpression,
- properties: {
- body: value
- }
- });
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'timerEventDefinitionValue',
- label: translate('Value'),
- feel: 'optional',
- getValue,
- setValue,
- debounce,
- description: getTimerEventDefinitionValueDescription(timerEventDefinitionType, translate)
- });
- }
- /**
- * TimerEventDefinitionDurationValue - textField entry allowing to specify the
- * duration value. This is to be used stand-alone, without the TimerEventDefinitionType
- *
- * @param {type} props
- * @return {TextFieldEntry}
- */
- function TimerEventDefinitionDurationValue(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element),
- timerEventDefinition = getTimerEventDefinition(businessObject);
- let timerEventFormalExpression = timerEventDefinition.get('timeDuration');
- const getValue = () => {
- return timerEventFormalExpression && timerEventFormalExpression.get('body');
- };
- const setValue = value => {
- const commands = []; // (1) re-use formalExpression
- if (!timerEventFormalExpression) {
- timerEventFormalExpression = bpmnFactory.create('bpmn:FormalExpression', {
- body: undefined
- });
- timerEventFormalExpression.$parent = timerEventDefinition; // (1.1) update the formalExpression
- const properties = {
- timeDuration: timerEventFormalExpression,
- timeDate: undefined,
- timeCycle: undefined
- }; // (1.2) push command
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: timerEventDefinition,
- properties
- }
- });
- } // (2) update value
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: timerEventFormalExpression,
- properties: {
- body: value
- }
- }
- }); // (3) commit all commands
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return withVariableContext(propertiesPanel.FeelEntry)({
- element,
- id: 'timerEventDefinitionDurationValue',
- label: translate('Timer duration'),
- feel: 'optional',
- getValue,
- setValue,
- debounce,
- description: getTimerEventDefinitionValueDescription('timeDuration', translate)
- });
- } // helper //////////////////////////
- /**
- * isTimerDefinitionTypeSupported - Checks whether a given timerDefinitionType
- * is supported for a given element
- *
- * @param {string} timerDefinitionType
- * @param {ModdleElement} element
- *
- * @return {boolean}
- */
- function isTimerDefinitionTypeSupported(timerDefinitionType, element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- switch (timerDefinitionType) {
- case 'timeDate':
- if (ModelUtil.is(element, 'bpmn:StartEvent')) {
- return true;
- }
- return false;
- case 'timeCycle':
- if (ModelUtil.is(element, 'bpmn:StartEvent')) {
- return true;
- }
- if (ModelUtil.is(element, 'bpmn:BoundaryEvent') && !businessObject.cancelActivity) {
- return true;
- }
- return false;
- case 'timeDuration':
- if (ModelUtil.is(element, 'bpmn:IntermediateCatchEvent')) {
- return true;
- }
- if (ModelUtil.is(element, 'bpmn:BoundaryEvent') && !businessObject.cancelActivity) {
- return true;
- }
- return false;
- default:
- return undefined;
- }
- }
- function getTimerEventDefinitionValueDescription(timerDefinitionType, translate) {
- switch (timerDefinitionType) {
- case 'timeDate':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A specific point in time defined as ISO 8601 combined date and time representation.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "2019-10-01T12:00:00Z"
- }), " - ", translate('UTC time')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "2019-10-02T08:09:40+02:00"
- }), " - ", translate('UTC plus 2 hours zone offset')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-date",
- target: "_blank",
- rel: "noopener",
- title: translate('Timer documentation'),
- children: translate('How to configure a timer')
- })]
- });
- case 'timeCycle':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A cycle defined as ISO 8601 repeating intervals format.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "R5/PT10S"
- }), " - ", translate('every 10 seconds, up to 5 times')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "R/P1D"
- }), " - ", translate('every day, infinitely')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-cycle",
- target: "_blank",
- rel: "noopener",
- title: translate('Timer documentation'),
- children: translate('How to configure a timer')
- })]
- });
- case 'timeDuration':
- return jsxRuntime.jsxs("div", {
- children: [jsxRuntime.jsx("p", {
- children: translate('A time duration defined as ISO 8601 durations format.')
- }), jsxRuntime.jsxs("ul", {
- children: [jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "PT15S"
- }), " - ", translate('15 seconds')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "PT1H30M"
- }), " - ", translate('1 hour and 30 minutes')]
- }), jsxRuntime.jsxs("li", {
- children: [jsxRuntime.jsx("code", {
- children: "P14D"
- }), " - ", translate('14 days')]
- })]
- }), jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/reference/bpmn-processes/timer-events/timer-events#time-duration",
- target: "_blank",
- rel: "noopener",
- title: translate('Timer documentation'),
- children: translate('How to configure a timer')
- })]
- });
- }
- }
- const LOW_PRIORITY$1 = 500;
- const ZEEBE_GROUPS = [BusinessRuleImplementationGroup, CalledDecisionGroup, TaskDefinitionGroup, AssignmentDefinitionGroup, FormGroup$1, ConditionGroup$1, TargetGroup, InputGroup$1, OutputPropagationGroup, OutputGroup$1, HeaderGroup];
- class ZeebePropertiesProvider {
- constructor(propertiesPanel, injector) {
- propertiesPanel.registerProvider(LOW_PRIORITY$1, this);
- this._injector = injector;
- }
- getGroups(element) {
- return groups => {
- // (1) add zeebe specific groups
- groups = groups.concat(this._getGroups(element)); // (2) update existing groups with zeebe specific properties
- updateMessageGroup(groups, element);
- updateTimerGroup(groups, element);
- updateMultiInstanceGroup$1(groups, element); // (3) remove message group when not applicable
- groups = removeMessageGroup(groups, element);
- return groups;
- };
- }
- _getGroups(element) {
- const groups = ZEEBE_GROUPS.map(createGroup => createGroup(element, this._injector));
- return groups.filter(group => group !== null);
- }
- }
- ZeebePropertiesProvider.$inject = ['propertiesPanel', 'injector'];
- function CalledDecisionGroup(element) {
- const group = {
- id: 'calledDecision',
- label: 'Called decision',
- entries: [...CalledDecisionProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function TaskDefinitionGroup(element) {
- const group = {
- id: 'taskDefinition',
- label: 'Task definition',
- entries: [...TaskDefinitionProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function InputGroup$1(element, injector) {
- const group = {
- id: 'inputs',
- label: 'Inputs',
- component: propertiesPanel.ListGroup,
- ...InputProps$1({
- element,
- injector
- })
- };
- return group.items ? group : null;
- }
- function OutputGroup$1(element, injector) {
- const group = {
- id: 'outputs',
- label: 'Outputs',
- component: propertiesPanel.ListGroup,
- ...OutputProps$1({
- element,
- injector
- })
- };
- return group.items ? group : null;
- }
- function ConditionGroup$1(element) {
- const group = {
- id: 'condition',
- label: 'Condition',
- entries: [...ConditionProps$1({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function FormGroup$1(element, injector) {
- const group = {
- id: 'form',
- label: 'Form',
- entries: [...FormProps$1({
- element,
- injector
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function TargetGroup(element) {
- const group = {
- id: 'calledElement',
- label: 'Called element',
- entries: [...TargetProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function HeaderGroup(element, injector) {
- const group = {
- id: 'headers',
- label: 'Headers',
- component: propertiesPanel.ListGroup,
- ...HeaderProps({
- element,
- injector
- })
- };
- return group.items ? group : null;
- }
- function OutputPropagationGroup(element) {
- const group = {
- id: 'outputPropagation',
- label: 'Output propagation',
- entries: [...OutputPropagationProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function BusinessRuleImplementationGroup(element) {
- const group = {
- id: 'businessRuleImplementation',
- label: 'Implementation',
- entries: [...BusinessRuleImplementationProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function AssignmentDefinitionGroup(element) {
- const group = {
- id: 'assignmentDefinition',
- label: 'Assignment',
- entries: [...AssignmentDefinitionProps({
- element
- })],
- component: propertiesPanel.Group
- };
- return group.entries.length ? group : null;
- }
- function updateMessageGroup(groups, element) {
- const messageGroup = findGroup$1(groups, 'message');
- if (!messageGroup) {
- return;
- }
- messageGroup.entries = overrideGenericEntries(messageGroup.entries, MessageProps({
- element
- }));
- } // overwrite bpmn generic timerEventDefinition group with zeebe-specific one
- function updateTimerGroup(groups, element) {
- const timerEventGroup = findGroup$1(groups, 'timer');
- if (!timerEventGroup) {
- return;
- }
- timerEventGroup.entries = [...TimerProps({
- element
- })];
- } // overwrite bpmn generic multiInstance group with zeebe-specific one
- function updateMultiInstanceGroup$1(groups, element) {
- const multiInstanceGroup = findGroup$1(groups, 'multiInstance');
- if (!multiInstanceGroup) {
- return;
- }
- multiInstanceGroup.entries = [...MultiInstanceProps$1({
- element
- })];
- } // remove message group from Message End Event & Message Throw Event
- function removeMessageGroup(groups, element) {
- const messageGroup = findGroup$1(groups, 'message');
- if (isMessageEndEvent(element) || isMessageThrowEvent(element)) {
- groups = groups.filter(g => g != messageGroup);
- }
- return groups;
- } // helper /////////////////////
- function findGroup$1(groups, id) {
- return groups.find(g => g.id === id);
- }
- /**
- * Replace generic bpmn components with specific zeebe ones.
- *
- * @param {Array} oldEntries
- * @param {Array} newEntries
- * @returns {Array} combined entries
- */
- function overrideGenericEntries(oldEntries, newEntries) {
- const filteredEntries = oldEntries.filter(oldEntry => !newEntries.find(newEntry => newEntry.id === oldEntry.id));
- return [...filteredEntries, ...newEntries];
- }
- var zeebePropertiesProviderModule = {
- __init__: ['zeebePropertiesProvider'],
- zeebePropertiesProvider: ['type', ZeebePropertiesProvider]
- };
- function AsynchronousContinuationsProps(props) {
- const {
- element
- } = props;
- const checkboxIsEditedInverted = node => {
- return node && !node.checked;
- };
- const businessObject = ModelUtil.getBusinessObject(element);
- const entries = [];
- if (ModelUtil.is(element, 'camunda:AsyncCapable')) {
- entries.push({
- id: 'asynchronousContinuationBefore',
- component: AsynchronousContinuationBefore,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }, {
- id: 'asynchronousContinuationAfter',
- component: AsynchronousContinuationAfter,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- });
- if (isAsyncBefore$2(businessObject) || isAsyncAfter$2(businessObject)) {
- entries.push({
- id: 'exclusive',
- component: Exclusive,
- isEdited: checkboxIsEditedInverted
- });
- }
- }
- return entries;
- }
- function AsynchronousContinuationBefore(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return isAsyncBefore$2(businessObject);
- };
- const setValue = value => {
- // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`
- const props = {
- 'camunda:asyncBefore': value,
- 'camunda:async': undefined
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: props
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'asynchronousContinuationBefore',
- label: translate('Before'),
- getValue,
- setValue
- });
- }
- function AsynchronousContinuationAfter(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return isAsyncAfter$2(businessObject);
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:asyncAfter': value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'asynchronousContinuationAfter',
- label: translate('After'),
- getValue,
- setValue
- });
- }
- function Exclusive(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return isExclusive$1(businessObject);
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:exclusive': value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'exclusive',
- label: translate('Exclusive'),
- getValue,
- setValue
- });
- } // helper //////////////////
- /**
- * Returns true if the attribute 'camunda:asyncBefore' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isAsyncBefore$2(bo) {
- return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
- }
- /**
- * Returns true if the attribute 'camunda:asyncAfter' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isAsyncAfter$2(bo) {
- return !!bo.get('camunda:asyncAfter');
- }
- /**
- * Returns true if the attribute 'camunda:exclusive' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isExclusive$1(bo) {
- return !!bo.get('camunda:exclusive');
- }
- const EMPTY_OPTION$1 = '';
- function BusinessKeyProps$1(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:StartEvent') || !hasFormFields(element)) {
- return [];
- }
- return [{
- id: 'businessKey',
- component: BusinessKey$1,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- }
- function BusinessKey$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const formData = getFormData$2(element);
- const getValue = () => {
- return formData.get('camunda:businessKey') || '';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formData,
- properties: {
- 'camunda:businessKey': value
- }
- });
- };
- const getOptions = () => {
- const options = [{
- value: EMPTY_OPTION$1,
- label: translate('<none>')
- }];
- const fields = formData.get('fields');
- fields.forEach(field => {
- const id = field.get('camunda:id');
- if (id) {
- options.push({
- value: id,
- label: id
- });
- }
- });
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'businessKey',
- label: translate('Key'),
- getValue,
- setValue,
- getOptions
- });
- } // helper ///////////////////
- function getFormData$2(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'camunda:FormData')[0];
- }
- function hasFormFields(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const formData = getFormData$2(businessObject);
- return formData && formData.get('camunda:fields').length;
- }
- function CalledBpmnProps(props) {
- const {
- element
- } = props;
- const entries = [{
- id: 'calledElement',
- component: CalledElement,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'calledElementBinding',
- component: CalledElementBinding,
- isEdited: propertiesPanel.isSelectEntryEdited
- }, {
- id: 'calledElementTenantId',
- component: CalledElementTenantId,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- const binding = ModelUtil.getBusinessObject(element).get('camunda:calledElementBinding');
- if (binding === 'version') {
- entries.splice(-1, 0, {
- id: 'calledElementVersion',
- component: CalledElementVersion,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (binding === 'versionTag') {
- entries.splice(-1, 0, {
- id: 'calledElementVersionTag',
- component: CalledElementVersionTag,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function CalledElement(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('calledElement');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- calledElement: value || ''
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElement",
- label: translate('Called element'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CalledElementBinding(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:calledElementBinding') || 'latest';
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- calledElementBinding: value === 'latest' ? undefined : value,
- calledElementVersion: undefined,
- calledElementVersionTag: undefined
- });
- };
- const getOptions = () => [{
- value: 'latest',
- label: translate('latest')
- }, {
- value: 'deployment',
- label: translate('deployment')
- }, {
- value: 'version',
- label: translate('version')
- }, {
- value: 'versionTag',
- label: translate('version tag')
- }];
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- element: element,
- id: "calledElementBinding",
- label: translate('Binding'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function CalledElementVersion(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:calledElementVersion');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- calledElementVersion: value
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementVersion",
- label: translate('Version'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CalledElementVersionTag(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:calledElementVersionTag');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- calledElementVersionTag: value
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementVersionTag",
- label: translate('Version tag'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CalledElementTenantId(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:calledElementTenantId');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- calledElementTenantId: value
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementTenantId",
- label: translate('Tenant ID'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CalledCmmnProps(props) {
- const {
- element
- } = props;
- const entries = [{
- id: 'calledElementCaseRef',
- component: CaseRef,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'calledElementCaseBinding',
- component: CaseBinding,
- isEdited: propertiesPanel.isSelectEntryEdited
- }, {
- id: 'calledElementCaseTenantId',
- component: CaseTenantId,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- if (ModelUtil.getBusinessObject(element).get('camunda:caseBinding') === 'version') {
- entries.splice(-1, 0, {
- id: 'calledElementCaseVersion',
- component: CaseVersion,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function CaseRef(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:caseRef');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- caseRef: value || ''
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementCaseRef",
- label: translate('Case ref'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CaseBinding(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:caseBinding') || 'latest';
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- caseBinding: value === 'latest' ? undefined : value,
- caseVersion: undefined
- });
- };
- const getOptions = () => [{
- value: 'latest',
- label: translate('latest')
- }, {
- value: 'deployment',
- label: translate('deployment')
- }, {
- value: 'version',
- label: translate('version')
- }];
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- element: element,
- id: "calledElementCaseBinding",
- label: translate('Binding'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function CaseVersion(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:caseVersion');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- caseVersion: value
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementCaseVersion",
- label: translate('Version'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function CaseTenantId(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:caseTenantId');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- caseTenantId: value
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementCaseTenantId",
- label: translate('Tenant ID'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function DelegateVariableMappingProps(props) {
- const {
- element
- } = props;
- const entries = [{
- id: 'calledElementDelegateVariableMappingType',
- component: DelegateVariableMappingType,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- const type = getDelegateVariableMappingType(element);
- if (type === 'class') {
- entries.push({
- id: 'calledElementVariableMappingClass',
- component: VariableMappingClass,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (type === 'delegateExpression') {
- entries.push({
- id: 'calledElementVariableMappingDelegateExpression',
- component: VariableMappingDelegateExpression,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- const DEFAULT_PROPS$5 = {
- 'camunda:variableMappingClass': undefined,
- 'camunda:variableMappingDelegateExpression': undefined
- };
- function DelegateVariableMappingType(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getDelegateVariableMappingType(element);
- };
- const setValue = value => {
- const properties = { ...DEFAULT_PROPS$5
- };
- if (value === 'class') {
- properties['camunda:variableMappingClass'] = '';
- } else if (value === 'delegateExpression') {
- properties['camunda:variableMappingDelegateExpression'] = '';
- }
- commandStack.execute('element.updateProperties', {
- element,
- properties
- });
- };
- const getOptions = () => [{
- value: 'none',
- label: translate('<none>')
- }, {
- value: 'class',
- label: translate('Class')
- }, {
- value: 'delegateExpression',
- label: translate('Delegate expression')
- }];
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- element: element,
- id: "calledElementDelegateVariableMappingType",
- label: translate('Delegate Variable Mapping'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function VariableMappingDelegateExpression(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:variableMappingDelegateExpression');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- variableMappingDelegateExpression: value || '',
- variableMappingClass: undefined
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementVariableMappingDelegateExpression",
- label: translate('Delegate Expression'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function VariableMappingClass(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return ModelUtil.getBusinessObject(element).get('camunda:variableMappingClass');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- variableMappingDelegateExpression: undefined,
- variableMappingClass: value || ''
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementVariableMappingClass",
- label: translate('Delegate Class'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- } // helper /////
- function getDelegateVariableMappingType(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject.get('camunda:variableMappingClass') !== undefined) {
- return 'class';
- } else if (businessObject.get('camunda:variableMappingDelegateExpression') !== undefined) {
- return 'delegateExpression';
- }
- return 'none';
- }
- function CallActivityProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:CallActivity')) {
- return [];
- }
- const entries = [];
- entries.push({
- id: 'calledElementType',
- component: CalledElementType,
- isEdited: propertiesPanel.isSelectEntryEdited
- });
- const calledElementType = getCalledElementType(element);
- if (calledElementType === 'bpmn') {
- entries.push(...CalledBpmnProps({
- element
- }), ...BusinessKeyProps({
- element
- }), ...DelegateVariableMappingProps({
- element
- }));
- } else if (calledElementType === 'cmmn') {
- entries.push(...CalledCmmnProps({
- element
- }), ...BusinessKeyProps({
- element
- }));
- } else {
- entries.push(...BusinessKeyProps({
- element
- }));
- }
- return entries;
- }
- const DEFAULT_PROPS$4 = {
- calledElement: undefined,
- 'camunda:calledElementBinding': undefined,
- 'camunda:calledElementVersion': undefined,
- 'camunda:calledElementTenantId': undefined,
- 'camunda:variableMappingClass': undefined,
- 'camunda:variableMappingDelegateExpression': undefined,
- 'camunda:caseRef': undefined,
- 'camunda:caseBinding': undefined,
- 'camunda:caseVersion': undefined,
- 'camunda:caseTenantId': undefined
- };
- const DEFAULT_BUSINESS_KEY = '#{execution.processBusinessKey}';
- function CalledElementType(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getCalledElementType(element);
- };
- const setValue = value => {
- const properties = { ...DEFAULT_PROPS$4
- };
- if (value === 'bpmn') {
- properties['calledElement'] = '';
- } else if (value === 'cmmn') {
- properties['camunda:caseRef'] = '';
- }
- commandStack.execute('element.updateProperties', {
- element,
- properties
- });
- };
- const getOptions = () => [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'bpmn',
- label: translate('BPMN')
- }, {
- value: 'cmmn',
- label: translate('CMMN')
- }];
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- element: element,
- id: "calledElementType",
- label: translate('Type'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function BusinessKeyProps(props) {
- const {
- element
- } = props;
- const entries = [{
- id: 'calledElementBusinessKey',
- component: BusinessKey,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }];
- if (hasBusinessKey(element)) {
- entries.push({
- id: 'calledElementBusinessKeyExpression',
- component: BusinessKeyExpression,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function BusinessKey(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const modeling = useService('modeling');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const getValue = () => {
- return hasBusinessKey(element);
- };
- const setValue = value => {
- if (value) {
- addBusinessKey();
- } else {
- removeBusinessKey();
- }
- };
- function addBusinessKey() {
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) If there are no extension elements, create camunda:In and update element's properties
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {}, businessObject, bpmnFactory);
- const businessKeyItem = createBusinessKey(extensionElements);
- extensionElements.set('values', [businessKeyItem]);
- modeling.updateProperties(element, {
- extensionElements
- });
- } else {
- // (2) Otherwise, add camunda:In to the existing values
- const businessKeyItem = createBusinessKey(extensionElements);
- addExtensionElements(element, businessObject, businessKeyItem, bpmnFactory, commandStack);
- }
- }
- function createBusinessKey(parent) {
- return createElement('camunda:In', {
- businessKey: DEFAULT_BUSINESS_KEY
- }, parent, bpmnFactory);
- }
- function removeBusinessKey() {
- const businessObject = ModelUtil.getBusinessObject(element);
- const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');
- const businessKeyItems = camundaInList.filter(camundaIn => camundaIn.get('businessKey') !== undefined);
- removeExtensionElements(element, businessObject, businessKeyItems, commandStack);
- }
- return jsxRuntime.jsx(propertiesPanel.CheckboxEntry, {
- element: element,
- id: "calledElementBusinessKey",
- label: translate('Business key'),
- getValue: getValue,
- setValue: setValue
- });
- }
- function BusinessKeyExpression(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => getBusinessKey(element);
- const setValue = value => {
- const camundaIn = findCamundaInWithBusinessKey(element);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: camundaIn,
- properties: {
- businessKey: value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "calledElementBusinessKeyExpression",
- label: translate('Business key expression'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- } // helper //////
- function getCalledElementType(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject.get('calledElement') !== undefined) {
- return 'bpmn';
- } else if (businessObject.get('camunda:caseRef') !== undefined) {
- return 'cmmn';
- }
- return '';
- }
- function hasBusinessKey(element) {
- return getBusinessKey(element) !== undefined;
- }
- function getBusinessKey(element) {
- const camundaIn = findCamundaInWithBusinessKey(element);
- if (camundaIn) {
- return camundaIn.get('businessKey');
- }
- }
- function findCamundaInWithBusinessKey(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const camundaInList = getExtensionElementsList(businessObject, 'camunda:In');
- for (const camundaIn of camundaInList) {
- const businessKey = camundaIn.get('businessKey');
- if (businessKey !== undefined) {
- return camundaIn;
- }
- }
- }
- function CandidateStarterProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- if (!ModelUtil.is(element, 'bpmn:Process') && !(ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
- return [];
- }
- return [{
- id: 'candidateStarterGroups',
- component: CandidateStarterGroups,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'candidateStarterUsers',
- component: CandidateStarterUsers,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function CandidateStarterGroups(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const process = getProcess$3(element);
- const getValue = () => {
- return process.get('camunda:candidateStarterGroups') || '';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: process,
- properties: {
- 'camunda:candidateStarterGroups': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'candidateStarterGroups',
- label: translate('Candidate starter groups'),
- description: translate('Specify more than one group as a comma separated list.'),
- getValue,
- setValue,
- debounce
- });
- }
- function CandidateStarterUsers(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const process = getProcess$3(element);
- const getValue = () => {
- return process.get('camunda:candidateStarterUsers') || '';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: process,
- properties: {
- 'camunda:candidateStarterUsers': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'candidateStarterUsers',
- label: translate('Candidate starter users'),
- description: translate('Specify more than one user as a comma separated list.'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- /**
- * getProcess - get the businessObject of the process referred to by a bpmn:Process
- * or by a bpmn:Participant
- *
- * @param {ModdleElement} element either a bpmn:Process or a bpmn:Participant
- * @return {BusinessObject}
- */
- function getProcess$3(element) {
- return ModelUtil.is(element, 'bpmn:Process') ? ModelUtil.getBusinessObject(element) : ModelUtil.getBusinessObject(element).get('processRef');
- }
- function ConditionProps(props) {
- const {
- element
- } = props;
- if (!(ModelUtil.is(element, 'bpmn:SequenceFlow') && isConditionalSource(element.source)) && !getConditionalEventDefinition(element)) {
- return [];
- }
- const entries = [];
- if (getConditionalEventDefinition(element)) {
- entries.push(...VariableEventProps({
- element
- }));
- }
- entries.push({
- id: 'conditionType',
- component: ConditionType,
- isEdited: propertiesPanel.isSelectEntryEdited
- });
- const conditionType = getConditionType(element);
- if (conditionType === 'script') {
- entries.push(...ConditionScriptProps({
- element
- }));
- } else if (conditionType === 'expression') {
- entries.push({
- id: 'conditionExpression',
- component: ConditionExpression,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function ConditionType(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const getValue = () => {
- return getConditionType(element);
- };
- const setValue = value => {
- // (1) Remove formalExpression if <none> is selected
- if (value === '') {
- updateCondition(element, commandStack, undefined);
- } else {
- // (2) Create and set formalExpression element containing the conditionExpression
- const attributes = {
- body: '',
- language: value === 'script' ? '' : undefined
- };
- const formalExpressionElement = createFormalExpression(element, attributes, bpmnFactory);
- updateCondition(element, commandStack, formalExpressionElement);
- }
- };
- const getOptions = () => [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'script',
- label: translate('Script')
- }, {
- value: 'expression',
- label: translate('Expression')
- }];
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- element: element,
- id: "conditionType",
- label: translate('Type'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function ConditionExpression(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- bpmnFactory = useService('bpmnFactory'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionExpression(element).get('body');
- };
- const setValue = value => {
- const conditionExpression = createFormalExpression(element, {
- body: value
- }, bpmnFactory);
- updateCondition(element, commandStack, conditionExpression);
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "conditionExpression",
- label: translate('Condition Expression'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function ConditionScriptProps(props) {
- const {
- element
- } = props;
- const entries = [];
- const scriptType = getScriptType$1(element); // (1) language
- entries.push({
- id: 'conditionScriptLanguage',
- component: Language,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }); // (2) type
- entries.push({
- id: 'conditionScriptType',
- component: ScriptType,
- isEdited: propertiesPanel.isSelectEntryEdited
- }); // (3) script
- if (scriptType === 'script') {
- entries.push({
- id: 'conditionScriptValue',
- component: Script$1,
- isEdited: propertiesPanel.isTextAreaEntryEdited
- });
- } else if (scriptType === 'resource') {
- // (4) resource
- entries.push({
- id: 'conditionScriptResource',
- component: Resource$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function Language(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionExpression(element).get('language');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionExpression(element),
- properties: {
- language: value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "conditionScriptLanguage",
- label: translate('Format'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function ScriptType(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getScriptType$1(element);
- };
- const setValue = value => {
- // reset script properties on type change
- const updatedProperties = {
- 'body': value === 'script' ? '' : undefined,
- 'camunda:resource': value === 'resource' ? '' : undefined
- };
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionExpression(element),
- properties: updatedProperties
- });
- };
- const getOptions = () => {
- const options = [{
- value: 'resource',
- label: translate('External resource')
- }, {
- value: 'script',
- label: translate('Inline script')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'conditionScriptType',
- label: translate('Script type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function Script$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionExpression(element).get('body');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionExpression(element),
- properties: {
- 'body': value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextAreaEntry, {
- element: element,
- id: "conditionScriptValue",
- label: translate('Script'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce,
- monospace: true
- });
- }
- function Resource$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionExpression(element).get('camunda:resource');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionExpression(element),
- properties: {
- 'camunda:resource': value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: true,
- id: "conditionScriptResource",
- label: translate('Resource'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function VariableEventProps(props) {
- const {
- element
- } = props;
- const entries = [];
- entries.push({
- id: 'conditionVariableName',
- component: VariableName,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- if (!ModelUtil.is(element, 'bpmn:StartEvent')) {
- entries.push({
- id: 'conditionVariableEvents',
- component: VariableEvents,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function VariableName(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionalEventDefinition(element).get('variableName');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionalEventDefinition(element),
- properties: {
- variableName: value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "conditionVariableName",
- label: translate('Variable name'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- }
- function VariableEvents(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return getConditionalEventDefinition(element).get('variableEvents');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: getConditionalEventDefinition(element),
- properties: {
- variableEvents: value || ''
- }
- });
- };
- return jsxRuntime.jsx(propertiesPanel.TextFieldEntry, {
- element: element,
- id: "conditionVariableEvents",
- label: translate('Variable events'),
- description: translate('Specify more than one variable change event as a comma separated list.'),
- getValue: getValue,
- setValue: setValue,
- debounce: debounce
- });
- } // helper ////////////////////
- const CONDITIONAL_SOURCES = ['bpmn:Activity', 'bpmn:ExclusiveGateway', 'bpmn:InclusiveGateway', 'bpmn:ComplexGateway'];
- function isConditionalSource(element) {
- return ModelingUtil.isAny(element, CONDITIONAL_SOURCES);
- }
- function getConditionalEventDefinition(element) {
- if (!ModelUtil.is(element, 'bpmn:Event')) {
- return false;
- }
- return getEventDefinition(element, 'bpmn:ConditionalEventDefinition');
- }
- function getConditionType(element) {
- const conditionExpression = getConditionExpression(element);
- if (!conditionExpression) {
- return '';
- } else {
- return conditionExpression.get('language') === undefined ? 'expression' : 'script';
- }
- }
- /**
- * getConditionExpression - get the body value of a condition expression for a given element
- *
- * @param {ModdleElement} element
- *
- * @return {string|undefined}
- */
- function getConditionExpression(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (ModelUtil.is(businessObject, 'bpmn:SequenceFlow')) {
- return businessObject.get('conditionExpression');
- } else if (getConditionalEventDefinition(businessObject)) {
- return getConditionalEventDefinition(businessObject).get('condition');
- }
- }
- function getScriptType$1(element) {
- const conditionExpression = getConditionExpression(element);
- const resource = conditionExpression.get('camunda:resource');
- if (typeof resource !== 'undefined') {
- return 'resource';
- } else {
- return 'script';
- }
- }
- function updateCondition(element, commandStack, condition = undefined) {
- if (ModelUtil.is(element, 'bpmn:SequenceFlow')) {
- commandStack.execute('element.updateProperties', {
- element,
- properties: {
- conditionExpression: condition
- }
- });
- } else {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: getConditionalEventDefinition(element),
- properties: {
- condition
- }
- });
- }
- }
- function createFormalExpression(parent, attributes, bpmnFactory) {
- return createElement('bpmn:FormalExpression', attributes, ModelUtil.is(parent, 'bpmn:SequenceFlow') ? ModelUtil.getBusinessObject(parent) : getConditionalEventDefinition(parent), bpmnFactory);
- }
- /**
- * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/scripting/
- */
- function ScriptProps(props) {
- const {
- element,
- script,
- prefix
- } = props;
- const entries = [];
- const scriptType = getScriptType(script || element);
- const idPrefix = prefix || ''; // (1) scriptFormat
- entries.push({
- id: idPrefix + 'scriptFormat',
- component: Format,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- idPrefix,
- script
- }); // (2) type
- entries.push({
- id: idPrefix + 'scriptType',
- component: Type$3,
- isEdited: propertiesPanel.isSelectEntryEdited,
- idPrefix,
- script
- }); // (3) script
- if (scriptType === 'script') {
- entries.push({
- id: idPrefix + 'scriptValue',
- component: Script,
- isEdited: propertiesPanel.isTextAreaEntryEdited,
- idPrefix,
- script
- });
- } // (4) resource
- if (scriptType === 'resource') {
- entries.push({
- id: idPrefix + 'scriptResource',
- component: Resource,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- idPrefix,
- script
- });
- }
- return entries;
- }
- function Format(props) {
- const {
- element,
- idPrefix,
- script
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = script || ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('scriptFormat');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- scriptFormat: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: idPrefix + 'scriptFormat',
- label: translate('Format'),
- getValue,
- setValue,
- debounce
- });
- }
- function Type$3(props) {
- const {
- element,
- idPrefix,
- script
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const businessObject = script || ModelUtil.getBusinessObject(element);
- const scriptProperty = getScriptProperty(businessObject);
- const getValue = () => {
- return getScriptType(businessObject);
- };
- const setValue = value => {
- // reset script properties on type change
- const properties = {
- [scriptProperty]: value === 'script' ? '' : undefined,
- 'camunda:resource': value === 'resource' ? '' : undefined
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties
- });
- };
- const getOptions = () => {
- const options = [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'resource',
- label: translate('External resource')
- }, {
- value: 'script',
- label: translate('Inline script')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: idPrefix + 'scriptType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function Script(props) {
- const {
- element,
- idPrefix,
- script
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = script || ModelUtil.getBusinessObject(element);
- const scriptProperty = getScriptProperty(businessObject);
- const getValue = () => {
- return getScriptValue(businessObject);
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- [scriptProperty]: value || ''
- }
- });
- };
- return propertiesPanel.TextAreaEntry({
- element,
- id: idPrefix + 'scriptValue',
- label: translate('Script'),
- getValue,
- setValue,
- debounce,
- monospace: true
- });
- }
- function Resource(props) {
- const {
- element,
- idPrefix,
- script
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = script || ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:resource');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:resource': value || ''
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: idPrefix + 'scriptResource',
- label: translate('Resource'),
- getValue,
- setValue,
- debounce
- });
- } // helper ////////////////////
- function getScriptType(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const scriptValue = getScriptValue(businessObject);
- if (typeof scriptValue !== 'undefined') {
- return 'script';
- }
- const resource = businessObject.get('camunda:resource');
- if (typeof resource !== 'undefined') {
- return 'resource';
- }
- }
- function getScriptValue(businessObject) {
- return businessObject.get(getScriptProperty(businessObject));
- }
- function isScript$2(element) {
- return ModelUtil.is(element, 'camunda:Script');
- }
- function getScriptProperty(businessObject) {
- return isScript$2(businessObject) ? 'value' : 'script';
- }
- function getElements(businessObject, type, property) {
- const elements = getExtensionElementsList(businessObject, type);
- return !property ? elements : (elements[0] || {})[property] || [];
- }
- function getParameters(element, prop) {
- const inputOutput = getInputOutput(element);
- return inputOutput && inputOutput.get(prop) || [];
- }
- /**
- * Get a camunda:inputOutput from the business object
- *
- * @param {djs.model.Base | ModdleElement} element
- *
- * @return {ModdleElement} the inputOutput object
- */
- function getInputOutput(element) {
- if (ModelUtil.is(element, 'camunda:Connector')) {
- return element.get('inputOutput');
- }
- const businessObject = ModelUtil.getBusinessObject(element);
- return (getElements(businessObject, 'camunda:InputOutput') || [])[0];
- }
- /**
- * Return all input parameters existing in the business object, and
- * an empty array if none exist.
- *
- * @param {djs.model.Base} element
- *
- * @return {Array} a list of input parameter objects
- */
- function getInputParameters(element) {
- return getParameters(element, 'inputParameters');
- }
- /**
- * Return all output parameters existing in the business object, and
- * an empty array if none exist.
- *
- * @param {djs.model.Base} element
- *
- * @return {Array} a list of output parameter objects
- */
- function getOutputParameters(element) {
- return getParameters(element, 'outputParameters');
- }
- function isInputOutputSupported(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return ModelUtil.is(businessObject, 'bpmn:FlowNode') && !(ModelingUtil.isAny(businessObject, ['bpmn:StartEvent', 'bpmn:BoundaryEvent', 'bpmn:Gateway']) || ModelUtil.is(businessObject, 'bpmn:SubProcess') && businessObject.get('triggeredByEvent'));
- }
- function areInputParametersSupported(element) {
- return isInputOutputSupported(element);
- }
- function areOutputParametersSupported(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return isInputOutputSupported(element) && !ModelUtil.is(businessObject, 'bpmn:EndEvent') && !businessObject.loopCharacteristics;
- }
- function getInputOutputType(parameter) {
- const definitionTypes = {
- 'camunda:Map': 'map',
- 'camunda:List': 'list',
- 'camunda:Script': 'script'
- };
- let type = 'stringOrExpression';
- const definition = parameter.get('definition');
- if (typeof definition !== 'undefined') {
- type = definitionTypes[definition.$type];
- }
- return type;
- }
- function CreateParameterCmd(element, type, parent, bpmnFactory) {
- const isInput = type === 'camunda:InputParameter';
- const newParameter = createElement(type, {
- name: nextId(isInput ? 'Input_' : 'Output_')
- }, parent, bpmnFactory);
- const propertyName = isInput ? 'inputParameters' : 'outputParameters';
- return {
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: parent,
- properties: {
- [propertyName]: [...parent.get(propertyName), newParameter]
- }
- }
- };
- }
- function AddParameterCmd(element, type, bpmnFactory) {
- const commands = [];
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure inputOutput
- let inputOutput = getInputOutput(element);
- if (!inputOutput) {
- const parent = extensionElements;
- inputOutput = createElement('camunda:InputOutput', {
- inputParameters: [],
- outputParameters: []
- }, parent, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), inputOutput]
- }
- }
- });
- } // (3) create + add parameter
- commands.push(CreateParameterCmd(element, type, inputOutput, bpmnFactory));
- return commands;
- }
- function ListProp(props) {
- const {
- element,
- id: idPrefix,
- index,
- item
- } = props;
- const id = `${idPrefix}-listItem-${index}`;
- return jsxRuntime.jsx(ListItem, {
- idPrefix: id,
- element: element,
- item: item
- });
- }
- function ListProps(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const list = parameter.get('definition');
- const items = list.get('items');
- function addItem() {
- const value = createElement('camunda:Value', {}, parameter, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: list,
- properties: {
- items: [...list.get('items'), value]
- }
- });
- }
- function removeItem(item) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: list,
- properties: {
- items: minDash.without(list.get('items'), item)
- }
- });
- }
- function compareFn(item, anotherItem) {
- const [value = '', anotherValue = ''] = [item.value, anotherItem.value];
- return value === anotherValue ? 0 : value > anotherValue ? 1 : -1;
- }
- return propertiesPanel.ListEntry({
- element,
- autoFocusEntry: true,
- compareFn,
- id: idPrefix + '-list',
- items,
- label: translate('List values'),
- onAdd: addItem,
- onRemove: removeItem,
- component: ListProp
- });
- }
- function ListItem(props) {
- const {
- idPrefix,
- element,
- item
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const definitionLabels = {
- 'camunda:Map': translate('Map'),
- 'camunda:List': translate('List'),
- 'camunda:Script': translate('Script')
- };
- const getValue = () => {
- if (isDefinitionType$1(item)) {
- return definitionLabels[item.$type];
- }
- return item.get('value');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: item,
- properties: {
- value
- }
- });
- };
- return ListValue({
- id: idPrefix + '-value',
- disabled: isDefinitionType$1(item),
- getValue,
- setValue
- });
- }
- function ListValue(props) {
- const {
- id,
- disabled,
- getValue,
- setValue
- } = props;
- const debounce = useService('debounceInput', true);
- return jsxRuntime.jsx(propertiesPanel.SimpleEntry, {
- id: id,
- getValue: getValue,
- setValue: setValue,
- disabled: disabled,
- debounce: debounce
- });
- } // helper //////////////////////
- function isScript$1(element) {
- return ModelUtil.is(element, 'camunda:Script');
- }
- function isList$1(element) {
- return ModelUtil.is(element, 'camunda:List');
- }
- function isMap$1(element) {
- return ModelUtil.is(element, 'camunda:Map');
- }
- function isDefinitionType$1(element) {
- return isScript$1(element) || isList$1(element) || isMap$1(element);
- }
- function MapProp(props) {
- const {
- element,
- id: idPrefix,
- index,
- item: entry,
- open
- } = props;
- const id = `${idPrefix}-mapEntry-${index}`;
- const translate = useService('translate');
- return jsxRuntime.jsx(propertiesPanel.CollapsibleEntry, {
- id: id,
- element: element,
- entries: MapEntry({
- element,
- entry,
- idPrefix: id
- }),
- label: entry.get('key') || translate('<empty>'),
- open: open
- });
- }
- function MapProps(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const map = parameter.get('definition');
- const entries = map.get('entries');
- function addEntry() {
- const entry = createElement('camunda:Entry', {}, parameter, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: map,
- properties: {
- entries: [...map.get('entries'), entry]
- }
- });
- }
- function removeEntry(entry) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: map,
- properties: {
- entries: minDash.without(map.get('entries'), entry)
- }
- });
- }
- function compareFn(entry, anotherEntry) {
- const [key = '', anotherKey = ''] = [entry.key, anotherEntry.key];
- return key === anotherKey ? 0 : key > anotherKey ? 1 : -1;
- }
- return propertiesPanel.ListEntry({
- element,
- autoFocusEntry: true,
- compareFn,
- id: idPrefix + '-map',
- items: entries,
- label: translate('Map entries'),
- onAdd: addEntry,
- onRemove: removeEntry,
- component: MapProp
- });
- }
- function MapEntry(props) {
- const {
- element,
- entry,
- idPrefix
- } = props;
- const entries = [{
- id: idPrefix + '-key',
- component: MapKey,
- entry,
- idPrefix,
- element
- }, {
- id: idPrefix + '-value',
- component: MapValue,
- entry,
- idPrefix,
- element
- }];
- return entries;
- }
- function MapKey(props) {
- const {
- element,
- entry,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: entry,
- properties: {
- key: value
- }
- });
- };
- const getValue = () => {
- return entry.get('key');
- };
- return propertiesPanel.TextFieldEntry({
- element: entry,
- id: idPrefix + '-key',
- label: translate('Key'),
- getValue,
- setValue,
- debounce
- });
- }
- function MapValue(props) {
- const {
- element,
- entry,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const definition = entry.get('definition');
- const definitionLabels = {
- 'camunda:Map': translate('Map'),
- 'camunda:List': translate('List'),
- 'camunda:Script': translate('Script')
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: entry,
- properties: {
- value
- }
- });
- };
- const getValue = () => {
- if (isDefinitionType(definition)) {
- return definitionLabels[definition.$type];
- }
- return entry.get('value');
- };
- return propertiesPanel.TextFieldEntry({
- element: entry,
- id: idPrefix + '-value',
- label: translate('Value'),
- getValue,
- setValue,
- disabled: isDefinitionType(definition),
- debounce
- });
- } // helper ///////////////////
- function isScript(element) {
- return ModelUtil.is(element, 'camunda:Script');
- }
- function isList(element) {
- return ModelUtil.is(element, 'camunda:List');
- }
- function isMap(element) {
- return ModelUtil.is(element, 'camunda:Map');
- }
- function isDefinitionType(element) {
- return isScript(element) || isList(element) || isMap(element);
- }
- const DEFAULT_PROPS$3 = {
- value: undefined,
- definition: undefined
- };
- function InputOutputParameter(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const inputOutputType = getInputOutputType(parameter);
- let entries = [{
- id: idPrefix + '-name',
- component: Name$2,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- idPrefix,
- parameter
- }, {
- id: idPrefix + '-type',
- component: Type$2,
- isEdited: propertiesPanel.isSelectEntryEdited,
- idPrefix,
- parameter
- }]; // (1) String or expression
- if (inputOutputType === 'stringOrExpression') {
- entries.push({
- id: idPrefix + '-stringOrExpression',
- component: StringOrExpression,
- isEdited: propertiesPanel.isTextAreaEntryEdited,
- idPrefix,
- parameter
- }); // (2) Script
- } else if (inputOutputType === 'script') {
- const script = parameter.get('definition');
- entries = [...entries, ...ScriptProps({
- element,
- prefix: idPrefix + '-',
- script
- })]; // (3) List
- } else if (inputOutputType === 'list') {
- entries.push({
- id: `${idPrefix}-list`,
- component: ListProps,
- idPrefix,
- parameter
- }); // (4) Map
- } else if (inputOutputType === 'map') {
- entries.push({
- id: `${idPrefix}-map`,
- component: MapProps,
- idPrefix,
- parameter
- });
- }
- return entries;
- }
- function Name$2(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: parameter,
- properties: {
- name: value
- }
- });
- };
- const getValue = parameter => {
- return parameter.get('name');
- };
- return propertiesPanel.TextFieldEntry({
- element: parameter,
- id: idPrefix + '-name',
- label: translate(isInput(parameter) ? 'Local variable name' : 'Process variable name'),
- getValue,
- setValue,
- debounce
- });
- }
- function Type$2(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const createDefinitionElement = type => {
- return createElement(type, {}, parameter, bpmnFactory);
- };
- const getValue = mapping => {
- return getInputOutputType(mapping);
- };
- const setValue = value => {
- let properties = { ...DEFAULT_PROPS$3
- };
- if (value === 'script') {
- properties.definition = createDefinitionElement('camunda:Script');
- } else if (value === 'list') {
- properties.definition = createDefinitionElement('camunda:List');
- } else if (value === 'map') {
- properties.definition = createDefinitionElement('camunda:Map');
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: parameter,
- properties
- });
- };
- const getOptions = () => {
- const options = [{
- label: translate('List'),
- value: 'list'
- }, {
- label: translate('Map'),
- value: 'map'
- }, {
- label: translate('Script'),
- value: 'script'
- }, {
- label: translate('String or expression'),
- value: 'stringOrExpression'
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element: parameter,
- id: idPrefix + '-type',
- label: translate('Assignment type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function StringOrExpression(props) {
- const {
- idPrefix,
- element,
- parameter
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: parameter,
- properties: {
- value
- }
- });
- };
- const getValue = parameter => {
- return parameter.get('value');
- };
- return propertiesPanel.TextAreaEntry({
- element: parameter,
- id: idPrefix + '-stringOrExpression',
- label: translate('Value'),
- description: translate('Start typing "${}" to create an expression.'),
- getValue,
- setValue,
- rows: 1,
- debounce
- });
- } // helper /////////////////////
- function isInput(parameter) {
- return ModelUtil.is(parameter, 'camunda:InputParameter');
- }
- /**
- * Check whether an element is camunda:ServiceTaskLike
- *
- * @param {djs.model.Base} element
- *
- * @return {boolean} a boolean value
- */
- function isServiceTaskLike(element) {
- return ModelUtil.is(element, 'camunda:ServiceTaskLike');
- }
- /**
- * Returns 'true' if the given element is 'camunda:DmnCapable'
- *
- * @param {djs.model.Base} element
- *
- * @return {boolean} a boolean value
- */
- function isDmnCapable(element) {
- return ModelUtil.is(element, 'camunda:DmnCapable');
- }
- /**
- * Returns 'true' if the given element is 'camunda:ExternalCapable'
- *
- * @param {djs.model.Base} element
- *
- * @return {boolean} a boolean value
- */
- function isExternalCapable(element) {
- return ModelUtil.is(element, 'camunda:ExternalCapable');
- }
- /**
- * getServiceTaskLikeBusinessObject - Get a 'camunda:ServiceTaskLike' business object.
- *
- * If the given element is not a 'camunda:ServiceTaskLike', then 'false'
- * is returned.
- *
- * @param {djs.model.Base} element
- * @return {ModdleElement} the 'camunda:ServiceTaskLike' business object
- */
- function getServiceTaskLikeBusinessObject(element) {
- if (ModelUtil.is(element, 'bpmn:IntermediateThrowEvent') || ModelUtil.is(element, 'bpmn:EndEvent')) {
- // change business object to 'messageEventDefinition' when
- // the element is a message intermediate throw event or message end event
- // because the camunda extensions (e.g. camunda:class) are in the message
- // event definition tag and not in the intermediate throw event or end event tag
- const messageEventDefinition = getMessageEventDefinition(element);
- if (messageEventDefinition) {
- element = messageEventDefinition;
- }
- }
- return isServiceTaskLike(element) && ModelUtil.getBusinessObject(element);
- }
- /**
- * Returns the implementation type of the given element.
- *
- * Possible implementation types are:
- * - dmn
- * - connector
- * - external
- * - class
- * - expression
- * - delegateExpression
- * - script
- * - or undefined, when no matching implementation type is found
- *
- * @param {djs.model.Base} element
- *
- * @return {String} the implementation type
- */
- function getImplementationType(element) {
- const businessObject = getListenerBusinessObject(element) || getServiceTaskLikeBusinessObject(element);
- if (!businessObject) {
- return;
- }
- if (isDmnCapable(businessObject)) {
- const decisionRef = businessObject.get('camunda:decisionRef');
- if (typeof decisionRef !== 'undefined') {
- return 'dmn';
- }
- }
- if (isServiceTaskLike(businessObject)) {
- const connectors = getExtensionElementsList(businessObject, 'camunda:Connector');
- if (connectors.length) {
- return 'connector';
- }
- }
- if (isExternalCapable(businessObject)) {
- const type = businessObject.get('camunda:type');
- if (type === 'external') {
- return 'external';
- }
- }
- const cls = businessObject.get('camunda:class');
- if (typeof cls !== 'undefined') {
- return 'class';
- }
- const expression = businessObject.get('camunda:expression');
- if (typeof expression !== 'undefined') {
- return 'expression';
- }
- const delegateExpression = businessObject.get('camunda:delegateExpression');
- if (typeof delegateExpression !== 'undefined') {
- return 'delegateExpression';
- }
- const script = businessObject.get('script');
- if (typeof script !== 'undefined') {
- return 'script';
- }
- }
- function getListenerBusinessObject(businessObject) {
- if (ModelingUtil.isAny(businessObject, ['camunda:ExecutionListener', 'camunda:TaskListener'])) {
- return businessObject;
- }
- }
- function areConnectorsSupported(element) {
- const businessObject = getServiceTaskLikeBusinessObject(element);
- return businessObject && getImplementationType(businessObject) === 'connector';
- }
- function getConnectors$2(businessObject) {
- return getExtensionElementsList(businessObject, 'camunda:Connector');
- }
- function getConnector$1(element) {
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const connectors = getConnectors$2(businessObject);
- return connectors[0];
- }
- function ConnectorInputProps(props) {
- const {
- element,
- injector
- } = props;
- if (!areConnectorsSupported(element)) {
- return null;
- }
- const connector = getConnector$1(element);
- const commandStack = injector.get('commandStack'),
- bpmnFactory = injector.get('bpmnFactory');
- const inputParameters = getInputParameters(connector) || [];
- const items = inputParameters.map((parameter, index) => {
- const id = element.id + '-connector-inputParameter-' + index;
- return {
- id,
- label: parameter.get('name') || '',
- entries: InputOutputParameter({
- element,
- idPrefix: id,
- parameter
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory$9({
- connector,
- element,
- parameter,
- commandStack
- })
- };
- });
- function add(event) {
- event.stopPropagation();
- const commands = []; // (1) ensure inputOutput
- let inputOutput = getInputOutput(connector);
- if (!inputOutput) {
- inputOutput = createElement('camunda:InputOutput', {
- inputParameters: [],
- outputParameters: []
- }, connector, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element: element,
- moddleElement: connector,
- properties: {
- inputOutput
- }
- }
- });
- } // (2) create + add parameter
- commands.push(CreateParameterCmd(element, 'camunda:InputParameter', inputOutput, bpmnFactory)); // (3) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- return {
- items,
- add
- };
- }
- function removeFactory$9(props) {
- const {
- commandStack,
- connector,
- element,
- parameter
- } = props;
- return function (event) {
- event.stopPropagation();
- const inputOutput = getInputOutput(connector);
- if (!inputOutput) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: inputOutput,
- properties: {
- inputParameters: minDash.without(inputOutput.get('inputParameters'), parameter)
- }
- });
- };
- }
- function ConnectorOutputProps(props) {
- const {
- element,
- injector
- } = props;
- if (!areConnectorsSupported(element)) {
- return null;
- }
- const connector = getConnector$1(element);
- const commandStack = injector.get('commandStack'),
- bpmnFactory = injector.get('bpmnFactory');
- const outputParameters = getOutputParameters(connector) || [];
- const items = outputParameters.map((parameter, index) => {
- const id = element.id + '-connector-outputParameter-' + index;
- return {
- id,
- label: parameter.get('name') || '',
- entries: InputOutputParameter({
- idPrefix: id,
- element,
- parameter
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory$8({
- connector,
- element,
- commandStack,
- parameter
- })
- };
- });
- function add(event) {
- event.stopPropagation();
- const commands = []; // (1) ensure inputOutput
- let inputOutput = getInputOutput(connector);
- if (!inputOutput) {
- inputOutput = createElement('camunda:InputOutput', {
- inputParameters: [],
- outputParameters: []
- }, connector, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element: element,
- moddleElement: connector,
- properties: {
- inputOutput
- }
- }
- });
- } // (2) create + add parameter
- commands.push(CreateParameterCmd(element, 'camunda:OutputParameter', inputOutput, bpmnFactory)); // (3) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- return {
- items,
- add
- };
- }
- function removeFactory$8(props) {
- const {
- commandStack,
- connector,
- element,
- parameter
- } = props;
- return function (event) {
- event.stopPropagation();
- const inputOutput = getInputOutput(connector);
- if (!inputOutput) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: inputOutput,
- properties: {
- outputParameters: minDash.without(inputOutput.get('outputParameters'), parameter)
- }
- });
- };
- }
- function ErrorProps(props) {
- const {
- element,
- entries
- } = props;
- if (!isErrorSupported(element)) {
- return entries;
- }
- const error = getError(element); // (1) errorMessage (error)
- if (error) {
- const idx = findPlaceToInsert(entries, 'errorCode'); // place below errorCode
- entries.splice(idx, 0, {
- id: 'errorMessage',
- component: ErrorMessage$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- if (!canHaveErrorVariables(element)) {
- return entries;
- } // (2) errorCodeVariable + errorMessageVariable (errorEventDefinition)
- entries.push({
- id: 'errorCodeVariable',
- component: ErrorCodeVariable,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'errorMessageVariable',
- component: ErrorMessageVariable,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- return entries;
- }
- function ErrorMessage$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const error = getError(element);
- const getValue = () => {
- return error.get('camunda:errorMessage');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- 'camunda:errorMessage': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'errorMessage',
- label: translate('Message'),
- getValue,
- setValue,
- debounce
- });
- }
- function ErrorCodeVariable(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const errorEventDefinition = getErrorEventDefinition(element);
- const getValue = () => {
- return errorEventDefinition.get('camunda:errorCodeVariable');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: errorEventDefinition,
- properties: {
- 'camunda:errorCodeVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'errorCodeVariable',
- label: translate('Code variable'),
- description: translate('Define the name of the variable that will contain the error code.'),
- getValue,
- setValue,
- debounce
- });
- }
- function ErrorMessageVariable(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const errorEventDefinition = getErrorEventDefinition(element);
- const getValue = () => {
- return errorEventDefinition.get('camunda:errorMessageVariable');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: errorEventDefinition,
- properties: {
- 'camunda:errorMessageVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'errorMessageVariable',
- label: translate('Message variable'),
- description: translate('Define the name of the variable that will contain the error message.'),
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function canHaveErrorVariables(element) {
- return ModelUtil.is(element, 'bpmn:StartEvent') || ModelUtil.is(element, 'bpmn:BoundaryEvent');
- }
- function findPlaceToInsert(entries, idx) {
- const entryIndex = minDash.findIndex(entries, entry => entry.id === idx);
- return entryIndex >= 0 ? entryIndex + 1 : entries.length;
- }
- const EMPTY_OPTION = '';
- const CREATE_NEW_OPTION = 'create-new';
- function Error$1(props) {
- const {
- idPrefix,
- errorEventDefinition
- } = props;
- let entries = [{
- id: idPrefix + '-errorRef',
- component: ErrorRef,
- isEdited: propertiesPanel.isSelectEntryEdited,
- errorEventDefinition,
- idPrefix
- }];
- const error = errorEventDefinition.get('errorRef');
- if (error) {
- entries = [...entries, {
- id: idPrefix + '-errorName',
- component: ErrorName,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- error,
- errorEventDefinition,
- idPrefix
- }, {
- id: idPrefix + '-errorCode',
- component: ErrorCode,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- error,
- errorEventDefinition,
- idPrefix
- }, {
- id: idPrefix + '-errorMessage',
- component: ErrorMessage,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- error,
- errorEventDefinition,
- idPrefix
- }];
- }
- entries.push({
- id: idPrefix + '-expression',
- component: Expression$2,
- errorEventDefinition,
- idPrefix
- });
- return entries;
- }
- function ErrorRef(props) {
- const {
- element,
- errorEventDefinition,
- idPrefix
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- const error = errorEventDefinition.get('errorRef');
- if (error) {
- return error.get('id');
- }
- return EMPTY_OPTION;
- };
- const setValue = value => {
- const root = getRoot(businessObject);
- const commands = [];
- let error; // (1) create new error
- if (value === CREATE_NEW_OPTION) {
- error = createElement('bpmn:Error', {
- name: nextId('Error_')
- }, root, bpmnFactory);
- value = error.get('id');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: root,
- properties: {
- rootElements: [...root.get('rootElements'), error]
- }
- }
- });
- } // (2) update (or remove) errorRef
- error = error || findRootElementById(businessObject, 'bpmn:Error', value);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: errorEventDefinition,
- properties: {
- errorRef: error
- }
- }
- }); // (3) commit all updates
- return commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- let options = [{
- value: EMPTY_OPTION,
- label: translate('<none>')
- }, {
- value: CREATE_NEW_OPTION,
- label: translate('Create new ...')
- }];
- const errors = findRootElementsByType(ModelUtil.getBusinessObject(element), 'bpmn:Error');
- sortByName$1(errors).forEach(error => {
- options.push({
- value: error.get('id'),
- label: error.get('name') || error.get('id')
- });
- });
- return options;
- };
- return ReferenceSelectEntry({
- element,
- id: idPrefix + '-errorRef',
- label: translate('Global error reference'),
- autoFocusEntry: idPrefix + '-errorName',
- getValue,
- setValue,
- getOptions
- });
- }
- function ErrorName(props) {
- const {
- element,
- error,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return error.get('name');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- name: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: idPrefix + '-errorName',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function ErrorCode(props) {
- const {
- element,
- error,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return error.get('errorCode');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- errorCode: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: idPrefix + '-errorCode',
- label: translate('Code'),
- getValue,
- setValue,
- debounce
- });
- }
- function ErrorMessage(props) {
- const {
- element,
- error,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return error.get('errorMessage');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: error,
- properties: {
- errorMessage: value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: idPrefix + '-errorMessage',
- label: translate('Message'),
- getValue,
- setValue,
- debounce
- });
- }
- function Expression$2(props) {
- const {
- element,
- errorEventDefinition,
- idPrefix
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: errorEventDefinition,
- properties: {
- 'camunda:expression': value
- }
- });
- };
- const getValue = () => {
- return errorEventDefinition.get('camunda:expression');
- };
- return propertiesPanel.TextFieldEntry({
- element: errorEventDefinition,
- id: idPrefix + '-expression',
- label: translate('Throw expression'),
- getValue,
- setValue,
- debounce
- });
- } // helpers //////////
- function sortByName$1(elements) {
- return minDash.sortBy(elements, e => (e.name || '').toLowerCase());
- }
- function ErrorsProps({
- element,
- injector
- }) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (!ModelUtil.is(element, 'bpmn:ServiceTask') || getImplementationType(element) !== 'external') {
- return null;
- }
- const errorEventDefinitions = getExtensionElementsList(businessObject, 'camunda:ErrorEventDefinition');
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = errorEventDefinitions.map((errorEventDefinition, index) => {
- const id = element.id + '-error-' + index;
- return {
- id,
- label: getErrorLabel(errorEventDefinition),
- entries: Error$1({
- idPrefix: id,
- element,
- errorEventDefinition
- }),
- autoFocusEntry: id + '-errorRef',
- remove: removeFactory$7({
- commandStack,
- element,
- errorEventDefinition
- })
- };
- });
- return {
- items,
- add: addFactory$6({
- bpmnFactory,
- commandStack,
- element
- }),
- shouldSort: false
- };
- }
- function removeFactory$7({
- commandStack,
- element,
- errorEventDefinition
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = ModelUtil.getBusinessObject(element);
- removeExtensionElements(element, businessObject, errorEventDefinition, commandStack);
- };
- }
- function addFactory$6({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = ModelUtil.getBusinessObject(element);
- const error = createElement('camunda:ErrorEventDefinition', {}, undefined, bpmnFactory);
- addExtensionElements(element, businessObject, error, bpmnFactory, commandStack);
- };
- } // helpers //////////
- function getErrorLabel(errorEventDefinition) {
- const error = errorEventDefinition.get('errorRef');
- if (!error) {
- return '<no reference>';
- }
- const errorCode = error.get('errorCode'),
- name = error.get('name') || '<unnamed>';
- if (errorCode) {
- return `${name} (code = ${errorCode})`;
- }
- return name;
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function EscalationProps(props) {
- const {
- element,
- entries
- } = props;
- if (!(isEscalationSupported(element) && canHaveEscalationVariables(element))) {
- return entries;
- }
- entries.push({
- id: 'escalationCodeVariable',
- component: EscalationCodeVariable,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- return entries;
- }
- function EscalationCodeVariable(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const escalationEventDefinition = getEscalationEventDefinition(element);
- const getValue = () => {
- return escalationEventDefinition.get('camunda:escalationCodeVariable');
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: escalationEventDefinition,
- properties: {
- 'camunda:escalationCodeVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'escalationCodeVariable',
- label: translate('Code variable'),
- description: translate('Define the name of the variable that will contain the escalation code.'),
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////////
- function canHaveEscalationVariables(element) {
- return ModelUtil.is(element, 'bpmn:StartEvent') || ModelUtil.is(element, 'bpmn:BoundaryEvent');
- }
- function ExtensionProperty(props) {
- const {
- idPrefix,
- property
- } = props;
- const entries = [{
- id: idPrefix + '-name',
- component: NameProperty$1,
- idPrefix,
- property
- }, {
- id: idPrefix + '-value',
- component: ValueProperty$1,
- idPrefix,
- property
- }];
- return entries;
- }
- function NameProperty$1(props) {
- const {
- idPrefix,
- element,
- property
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: property,
- properties: {
- name: value
- }
- });
- };
- const getValue = () => {
- return property.name;
- };
- return propertiesPanel.TextFieldEntry({
- element: property,
- id: idPrefix + '-name',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function ValueProperty$1(props) {
- const {
- idPrefix,
- element,
- property
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: property,
- properties: {
- value
- }
- });
- };
- const getValue = () => {
- return property.value;
- };
- return propertiesPanel.TextFieldEntry({
- element: property,
- id: idPrefix + '-value',
- label: translate('Value'),
- getValue,
- setValue,
- debounce
- });
- }
- function ExtensionPropertiesProps({
- element,
- injector
- }) {
- let businessObject = getRelevantBusinessObject(element); // do not offer for empty pools
- if (!businessObject) {
- return;
- }
- const properties = getPropertiesList(businessObject) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = properties.map((property, index) => {
- const id = element.id + '-extensionProperty-' + index;
- return {
- id,
- label: property.get('name') || '',
- entries: ExtensionProperty({
- idPrefix: id,
- element,
- property
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory$6({
- commandStack,
- element,
- property
- })
- };
- });
- return {
- items,
- add: addFactory$5({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory$6({
- commandStack,
- element,
- property
- }) {
- return function (event) {
- event.stopPropagation();
- const commands = [];
- const businessObject = getRelevantBusinessObject(element);
- const properties = getProperties(businessObject);
- if (!properties) {
- return;
- }
- const values = minDash.without(properties.get('values'), property);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: properties,
- properties: {
- values
- }
- }
- }); // remove camunda:Properties if there are no properties anymore
- if (!values.length) {
- const businessObject = ModelUtil.getBusinessObject(element),
- extensionElements = businessObject.get('extensionElements');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), properties)
- }
- }
- });
- }
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function addFactory$5({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- let commands = [];
- const businessObject = getRelevantBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure camunda:Properties
- let properties = getProperties(businessObject);
- if (!properties) {
- const parent = extensionElements;
- properties = createElement('camunda:Properties', {
- values: []
- }, parent, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), properties]
- }
- }
- });
- } // (3) create camunda:Property
- const property = createElement('camunda:Property', {}, properties, bpmnFactory); // (4) add property to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: properties,
- properties: {
- values: [...properties.get('values'), property]
- }
- }
- }); // (5) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- } // helper //////////////////
- function getRelevantBusinessObject(element) {
- let businessObject = ModelUtil.getBusinessObject(element);
- if (ModelUtil.is(element, 'bpmn:Participant')) {
- return businessObject.get('processRef');
- }
- return businessObject;
- }
- function getProperties(businessObject) {
- return getExtensionElementsList(businessObject, 'camunda:Properties')[0];
- }
- function getPropertiesList(businessObject) {
- const properties = getProperties(businessObject);
- return properties && properties.get('values');
- }
- function ExternalTaskPriorityProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- if (!ModelUtil.is(element, 'bpmn:Process') && !(ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef')) && !isExternalTaskLike(element)) {
- return [];
- }
- return [{
- id: 'externalTaskPriority',
- component: ExternalTaskPriority,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function ExternalTaskPriority(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- let businessObject;
- if (ModelUtil.is(element, 'bpmn:Participant')) {
- businessObject = ModelUtil.getBusinessObject(element).get('processRef');
- } else if (isExternalTaskLike(element)) {
- businessObject = getServiceTaskLikeBusinessObject(element);
- } else {
- businessObject = ModelUtil.getBusinessObject(element);
- }
- const getValue = () => {
- return businessObject.get('camunda:taskPriority');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:taskPriority': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'externalTaskPriority',
- label: translate('Priority'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- function isExternalTaskLike(element) {
- const bo = getServiceTaskLikeBusinessObject(element),
- type = bo && bo.get('camunda:type');
- return ModelUtil.is(bo, 'camunda:ServiceTaskLike') && type && type === 'external';
- }
- const DEFAULT_PROPS$2 = {
- 'stringValue': undefined,
- 'string': undefined,
- 'expression': undefined
- };
- function FieldInjection(props) {
- const {
- element,
- idPrefix,
- field
- } = props;
- const entries = [{
- id: idPrefix + '-name',
- component: NameProperty,
- field,
- idPrefix,
- element
- }, {
- id: idPrefix + '-type',
- component: TypeProperty,
- field,
- idPrefix,
- element
- }, {
- id: idPrefix + '-value',
- component: ValueProperty,
- field,
- idPrefix,
- element
- }];
- return entries;
- }
- function NameProperty(props) {
- const {
- idPrefix,
- element,
- field
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: field,
- properties: {
- name: value
- }
- });
- };
- const getValue = field => {
- return field.name;
- };
- return propertiesPanel.TextFieldEntry({
- element: field,
- id: idPrefix + '-name',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function TypeProperty(props) {
- const {
- idPrefix,
- element,
- field
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate');
- const getValue = field => {
- return determineType(field);
- };
- const setValue = value => {
- const properties = Object.assign({}, DEFAULT_PROPS$2);
- properties[value] = '';
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: field,
- properties
- });
- };
- const getOptions = element => {
- const options = [{
- value: 'string',
- label: translate('String')
- }, {
- value: 'expression',
- label: translate('Expression')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element: field,
- id: idPrefix + '-type',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function ValueProperty(props) {
- const {
- idPrefix,
- element,
- field
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- // (1) determine which type we have set
- const type = determineType(field); // (2) set property accordingly
- const properties = Object.assign({}, DEFAULT_PROPS$2);
- properties[type] = value || ''; // (3) execute the update command
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: field,
- properties
- });
- };
- const getValue = field => {
- return field.string || field.stringValue || field.expression;
- };
- return propertiesPanel.TextFieldEntry({
- element: field,
- id: idPrefix + '-value',
- label: translate('Value'),
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////
- /**
- * determineType - get the type of a fieldInjection based on the attributes
- * set on it
- *
- * @param {ModdleElement} field
- * @return {('string'|'expression')}
- */
- function determineType(field) {
- // string is the default type
- return 'string' in field && 'string' || 'expression' in field && 'expression' || 'stringValue' in field && 'string' || 'string';
- }
- function FieldInjectionProps({
- element,
- injector
- }) {
- const businessObject = getServiceTaskLikeBusinessObject(element);
- if (!businessObject) {
- return null;
- }
- const fieldInjections = getExtensionElementsList(businessObject, 'camunda:Field');
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = fieldInjections.map((field, index) => {
- const id = element.id + '-fieldInjection-' + index;
- return {
- id,
- label: getFieldLabel(field),
- entries: FieldInjection({
- idPrefix: id,
- element,
- field
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory$5({
- commandStack,
- element,
- field
- })
- };
- });
- return {
- items,
- add: addFactory$4({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory$5({
- commandStack,
- element,
- field
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = getServiceTaskLikeBusinessObject(element);
- removeExtensionElements(element, businessObject, field, commandStack);
- };
- }
- function addFactory$4({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const fieldInjection = createElement('camunda:Field', {
- name: undefined,
- string: '',
- // string is the default type
- stringValue: undefined
- }, null, bpmnFactory);
- addExtensionElements(element, businessObject, fieldInjection, bpmnFactory, commandStack);
- };
- } // helper ///////////////
- function getFieldLabel(field) {
- return field.name || '<empty>';
- }
- function FormFieldConstraint(props) {
- const {
- constraint,
- element,
- idPrefix
- } = props;
- const entries = [{
- id: idPrefix + '-name',
- component: Name$1,
- constraint,
- idPrefix,
- element
- }, {
- id: idPrefix + '-config',
- component: Config,
- constraint,
- idPrefix,
- element
- }];
- return entries;
- }
- function Name$1(props) {
- const {
- idPrefix,
- element,
- constraint
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: constraint,
- properties: {
- name: value
- }
- });
- };
- const getValue = () => {
- return constraint.name;
- };
- return propertiesPanel.TextFieldEntry({
- element: constraint,
- id: idPrefix + '-name',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- function Config(props) {
- const {
- idPrefix,
- element,
- constraint
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: constraint,
- properties: {
- config: value
- }
- });
- };
- const getValue = () => {
- return constraint.config;
- };
- return propertiesPanel.TextFieldEntry({
- element: constraint,
- id: idPrefix + '-config',
- label: translate('Config'),
- getValue,
- setValue,
- debounce
- });
- }
- function FormFieldProperty(props) {
- const {
- element,
- idPrefix,
- property
- } = props;
- const entries = [{
- id: idPrefix + '-id',
- component: Id$2,
- idPrefix,
- property,
- element
- }, {
- id: idPrefix + '-value',
- component: Value$1,
- idPrefix,
- property,
- element
- }];
- return entries;
- }
- function Id$2(props) {
- const {
- idPrefix,
- element,
- property
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: property,
- properties: {
- id: value
- }
- });
- };
- const getValue = () => {
- return property.id;
- };
- return propertiesPanel.TextFieldEntry({
- element: property,
- id: idPrefix + '-id',
- label: translate('ID'),
- getValue,
- setValue,
- debounce
- });
- }
- function Value$1(props) {
- const {
- idPrefix,
- element,
- property
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: property,
- properties: {
- value
- }
- });
- };
- const getValue = () => {
- return property.value;
- };
- return propertiesPanel.TextFieldEntry({
- element: property,
- id: idPrefix + '-value',
- label: translate('Value'),
- getValue,
- setValue,
- debounce
- });
- }
- function FormFieldValue(props) {
- const {
- element,
- idPrefix,
- value
- } = props;
- const entries = [{
- id: idPrefix + '-id',
- component: Id$1,
- idPrefix,
- value,
- element
- }, {
- id: idPrefix + '-name',
- component: Name,
- idPrefix,
- value,
- element
- }];
- return entries;
- }
- function Id$1(props) {
- const {
- idPrefix,
- element,
- value
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = val => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: value,
- properties: {
- id: val
- }
- });
- };
- const getValue = () => {
- return value.id;
- };
- return propertiesPanel.TextFieldEntry({
- element: value,
- id: idPrefix + '-id',
- label: translate('ID'),
- getValue,
- setValue,
- debounce
- });
- }
- function Name(props) {
- const {
- idPrefix,
- element,
- value
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const setValue = val => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: value,
- properties: {
- name: val
- }
- });
- };
- const getValue = () => {
- return value.name;
- };
- return propertiesPanel.TextFieldEntry({
- element: value,
- id: idPrefix + '-name',
- label: translate('Name'),
- getValue,
- setValue,
- debounce
- });
- }
- const CUSTOM_TYPE_VALUE = '',
- DEFINED_TYPE_VALUES = ['boolean', 'date', 'enum', 'long', 'string', undefined];
- function FormField(props) {
- const {
- idPrefix,
- formField
- } = props;
- const entries = [{
- id: idPrefix + '-formFieldID',
- component: Id,
- idPrefix,
- formField
- }, {
- id: idPrefix + '-formFieldLabel',
- component: Label,
- idPrefix,
- formField
- }, {
- id: idPrefix + '-formFieldType',
- component: Type$1,
- idPrefix,
- formField
- }];
- if (!DEFINED_TYPE_VALUES.includes(formField.get('type'))) {
- entries.push({
- id: idPrefix + '-formFieldCustomType',
- component: CustomType,
- idPrefix,
- formField
- });
- }
- entries.push({
- id: idPrefix + '-formFieldDefaultValue',
- component: DefaultValue,
- idPrefix,
- formField
- });
- if (formField.get('type') === 'enum') {
- entries.push({
- id: idPrefix + '-formFieldValues',
- component: ValueList,
- formField,
- idPrefix
- });
- }
- entries.push({
- id: idPrefix + '-formFieldConstraints',
- component: ConstraintList,
- formField,
- idPrefix
- }, {
- id: idPrefix + '-formFieldProperties',
- component: PropertiesList,
- formField,
- idPrefix
- });
- return entries;
- }
- function Id(props) {
- const {
- idPrefix,
- element,
- formField
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formField,
- properties: {
- id: value
- }
- });
- };
- const getValue = () => {
- return formField.get('id');
- };
- return propertiesPanel.TextFieldEntry({
- element: formField,
- id: idPrefix + '-formFieldID',
- label: translate('ID'),
- description: translate('Refers to the process variable name'),
- getValue,
- setValue,
- debounce
- });
- }
- function Label(props) {
- const {
- idPrefix,
- element,
- formField
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formField,
- properties: {
- label: value
- }
- });
- };
- const getValue = () => {
- return formField.get('label');
- };
- return propertiesPanel.TextFieldEntry({
- element: formField,
- id: idPrefix + '-formFieldLabel',
- label: translate('Label'),
- getValue,
- setValue,
- debounce
- });
- }
- function Type$1(props) {
- const {
- idPrefix,
- element,
- formField
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formField,
- properties: {
- type: value
- }
- });
- };
- const getValue = () => {
- const type = formField.get('type');
- return DEFINED_TYPE_VALUES.includes(type) ? type : CUSTOM_TYPE_VALUE;
- };
- const getOptions = () => {
- const options = [{
- label: translate('boolean'),
- value: 'boolean'
- }, {
- label: translate('date'),
- value: 'date'
- }, {
- label: translate('enum'),
- value: 'enum'
- }, {
- label: translate('long'),
- value: 'long'
- }, {
- label: translate('string'),
- value: 'string'
- }, {
- label: translate('<custom type>'),
- value: CUSTOM_TYPE_VALUE
- }]; // for the initial state only, we want to show an empty state
- if (formField.get('type') === undefined) {
- options.unshift({
- label: translate('<none>'),
- value: ''
- });
- }
- return options;
- };
- return propertiesPanel.SelectEntry({
- element: formField,
- id: idPrefix + '-formFieldType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function CustomType(props) {
- const {
- idPrefix,
- element,
- formField
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- const type = value || '';
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formField,
- properties: {
- type
- }
- });
- };
- const getValue = () => {
- return formField.get('type');
- };
- return propertiesPanel.TextFieldEntry({
- element: formField,
- id: idPrefix + '-formFieldCustomType',
- label: translate('Custom type'),
- getValue,
- setValue,
- debounce
- });
- }
- function DefaultValue(props) {
- const {
- idPrefix,
- element,
- formField
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formField,
- properties: {
- defaultValue: value
- }
- });
- };
- const getValue = () => {
- return formField.get('defaultValue');
- };
- return propertiesPanel.TextFieldEntry({
- element: formField,
- id: idPrefix + '-formFieldDefaultValue',
- label: translate('Default value'),
- getValue,
- setValue,
- debounce
- });
- }
- function Value(props) {
- const {
- element,
- id: idPrefix,
- index,
- item: value,
- open
- } = props;
- const translate = useService('translate');
- const id = `${idPrefix}-value-${index}`;
- return jsxRuntime.jsx(propertiesPanel.CollapsibleEntry, {
- id: id,
- element: element,
- entries: FormFieldValue({
- idPrefix: id,
- element,
- value
- }),
- label: value.get('id') || translate('<empty>'),
- open: open
- });
- }
- function ValueList(props) {
- const {
- element,
- formField,
- idPrefix
- } = props;
- const id = `${idPrefix}-formFieldValues`;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const values = formField.get('values') || [];
- function addValue() {
- const value = createElement('camunda:Value', {
- id: undefined,
- name: undefined
- }, formField, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: formField,
- properties: {
- values: [...formField.get('values'), value]
- }
- });
- }
- function removeValue(value) {
- commandStack.execute('element.updateModdleProperties', {
- element: element,
- moddleElement: formField,
- properties: {
- values: minDash.without(formField.get('values'), value)
- }
- });
- }
- return jsxRuntime.jsx(propertiesPanel.ListEntry, {
- element: element,
- autoFocusEntry: `[data-entry-id="${id}-value-${values.length - 1}"] input`,
- id: id,
- label: translate('Values'),
- items: values,
- component: Value,
- onAdd: addValue,
- onRemove: removeValue
- });
- }
- function Constraint(props) {
- const {
- element,
- id: idPrefix,
- index,
- item: constraint,
- open
- } = props;
- const translate = useService('translate');
- const id = `${idPrefix}-constraint-${index}`;
- return jsxRuntime.jsx(propertiesPanel.CollapsibleEntry, {
- id: id,
- element: element,
- entries: FormFieldConstraint({
- constraint,
- element,
- idPrefix: id
- }),
- label: constraint.get('name') || translate('<empty>'),
- open: open
- });
- }
- function ConstraintList(props) {
- const {
- element,
- formField,
- idPrefix
- } = props;
- const id = `${idPrefix}-formFieldConstraints`;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- let validation = formField.get('validation');
- const constraints = validation && validation.get('constraints') || [];
- function addConstraint() {
- const commands = []; // (1) ensure validation
- if (!validation) {
- validation = createElement('camunda:Validation', {}, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: formField,
- properties: {
- validation
- }
- }
- });
- } // (2) add constraint
- const constraint = createElement('camunda:Constraint', {
- name: undefined,
- config: undefined
- }, validation, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: validation,
- properties: {
- constraints: [...validation.get('constraints'), constraint]
- }
- }
- }); // (3) commit updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function removeConstraint(constraint) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: validation,
- properties: {
- constraints: minDash.without(validation.get('constraints'), constraint)
- }
- });
- }
- return jsxRuntime.jsx(propertiesPanel.ListEntry, {
- element: element,
- autoFocusEntry: `[data-entry-id="${id}-constraint-${constraints.length - 1}"] input`,
- id: id,
- label: translate('Constraints'),
- items: constraints,
- component: Constraint,
- onAdd: addConstraint,
- onRemove: removeConstraint
- });
- }
- function Property(props) {
- const {
- element,
- id: idPrefix,
- index,
- item: property,
- open
- } = props;
- const translate = useService('translate');
- const id = `${idPrefix}-property-${index}`;
- return jsxRuntime.jsx(propertiesPanel.CollapsibleEntry, {
- id: id,
- element: element,
- entries: FormFieldProperty({
- element,
- idPrefix: id,
- property
- }),
- label: property.get('id') || translate('<empty>'),
- open: open
- });
- }
- function PropertiesList(props) {
- const {
- element,
- formField,
- idPrefix
- } = props;
- const id = `${idPrefix}-formFieldProperties`;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- let properties = formField.get('properties');
- const propertyEntries = properties && properties.get('values') || [];
- function addProperty() {
- const commands = []; // (1) ensure properties
- if (!properties) {
- properties = createElement('camunda:Properties', {}, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: formField,
- properties: {
- properties
- }
- }
- });
- } // (2) add property
- const property = createElement('camunda:Property', {
- id: undefined,
- value: undefined
- }, properties, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: properties,
- properties: {
- values: [...properties.get('values'), property]
- }
- }
- }); // (3) commit updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- }
- function removeProperty(property) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: properties,
- properties: {
- values: minDash.without(properties.get('values'), property)
- }
- });
- }
- return jsxRuntime.jsx(propertiesPanel.ListEntry, {
- element: element,
- autoFocusEntry: true,
- id: id,
- compareFn: createAlphanumericCompare('id'),
- label: translate('Properties'),
- items: propertyEntries,
- component: Property,
- onAdd: addProperty,
- onRemove: removeProperty
- });
- } // helper //////////////////
- function createAlphanumericCompare(field) {
- return function (entry, anotherEntry) {
- const [key = '', anotherKey = ''] = [entry[field], anotherEntry[field]];
- return key === anotherKey ? 0 : key > anotherKey ? 1 : -1;
- };
- }
- function FormDataProps({
- element,
- injector
- }) {
- if (!isFormDataSupported(element)) {
- return;
- }
- const formFields = getFormFieldsList(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = formFields.map((formField, index) => {
- const id = element.id + '-formField-' + index;
- return {
- id,
- label: formField.get('id') || '',
- entries: FormField({
- idPrefix: id,
- element,
- formField
- }),
- autoFocusEntry: id + '-formFieldID',
- remove: removeFactory$4({
- commandStack,
- element,
- formField
- })
- };
- });
- return {
- items,
- add: addFactory$3({
- bpmnFactory,
- commandStack,
- element
- }),
- shouldSort: false
- };
- }
- function addFactory$3({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- const commands = []; // (1) get camunda:FormData
- const formData = getFormData$1(element); // (2) create camunda:FormField
- const formField = createElement('camunda:FormField', {}, formData, bpmnFactory); // (3) add formField to list
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: formData,
- properties: {
- fields: [...formData.get('fields'), formField]
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- }
- function removeFactory$4({
- commandStack,
- element,
- formField
- }) {
- return function (event) {
- event.stopPropagation();
- const formData = getFormData$1(element),
- formFields = getFormFieldsList(element);
- if (!formFields || !formFields.length) {
- return;
- }
- const fields = minDash.without(formData.get('fields'), formField); // update formData
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: formData,
- properties: {
- fields
- }
- });
- };
- } // helper ///////////////////////////////
- function isFormDataSupported(element) {
- const formData = getFormData$1(element);
- return (ModelUtil.is(element, 'bpmn:StartEvent') && !ModelUtil.is(element.parent, 'bpmn:SubProcess') || ModelUtil.is(element, 'bpmn:UserTask')) && formData;
- }
- function getFormData$1(element) {
- const bo = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(bo, 'camunda:FormData')[0];
- }
- function getFormFieldsList(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const formData = getFormData$1(businessObject);
- return formData && formData.fields;
- }
- const FORM_KEY_PROPS = {
- 'camunda:formRef': undefined,
- 'camunda:formRefBinding': undefined,
- 'camunda:formRefVersion': undefined
- };
- const FORM_REF_PROPS = {
- 'camunda:formKey': undefined
- };
- function FormTypeProps(props) {
- return [{
- id: 'formType',
- component: FormType,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- }
- function FormType(props) {
- const {
- element
- } = props;
- const translate = useService('translate');
- const bpmnFactory = useService('bpmnFactory');
- const businessObject = ModelUtil.getBusinessObject(element);
- const commandStack = useService('commandStack');
- let extensionElements = businessObject.get('extensionElements');
- const getValue = () => {
- if (minDash.isDefined(businessObject.get('camunda:formKey'))) {
- return 'formKey';
- } else if (minDash.isDefined(businessObject.get('camunda:formRef'))) {
- return 'formRef';
- } else if (getFormData(element)) {
- return 'formData';
- }
- return '';
- };
- const setValue = value => {
- const commands = removePropertiesCommands(element);
- if (value === 'formData') {
- // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) create camunda:FormData
- const parent = extensionElements;
- const formData = createElement('camunda:FormData', {
- fields: []
- }, parent, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), formData]
- }
- }
- });
- } else if (value === 'formKey') {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:formKey': ''
- }
- }
- });
- } else if (value === 'formRef') {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:formRef': ''
- }
- }
- });
- }
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- return [{
- value: '',
- label: translate('<none>')
- }, {
- value: 'formRef',
- label: translate('Camunda Forms')
- }, {
- value: 'formKey',
- label: translate('Embedded or External Task Forms')
- }, {
- value: 'formData',
- label: translate('Generated Task Forms')
- }];
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'formType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function getFormData(element) {
- const bo = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(bo, 'camunda:FormData')[0];
- }
- function removePropertiesCommands(element, commandStack) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const extensionElements = businessObject.get('extensionElements');
- const commands = []; // (1) reset formKey and formRef
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: { ...FORM_KEY_PROPS,
- ...FORM_REF_PROPS
- }
- }
- }); // (2) remove formData if defined
- if (extensionElements && getFormData(element)) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), getFormData(element))
- }
- }
- });
- }
- return commands;
- }
- function getFormRefBinding(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject.get('camunda:formRefBinding') || 'latest';
- }
- function getFormType(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (minDash.isDefined(businessObject.get('camunda:formKey'))) {
- return 'formKey';
- } else if (minDash.isDefined(businessObject.get('camunda:formRef'))) {
- return 'formRef';
- }
- }
- function isFormSupported(element) {
- return ModelUtil.is(element, 'bpmn:StartEvent') && !ModelUtil.is(element.parent, 'bpmn:SubProcess') || ModelUtil.is(element, 'bpmn:UserTask');
- }
- function FormProps(props) {
- const {
- element
- } = props;
- if (!isFormSupported(element)) {
- return [];
- }
- const formType = getFormType(element),
- bindingType = getFormRefBinding(element); // (1) display form type select
- const entries = [...FormTypeProps()]; // (2) display form properties based on type
- if (formType === 'formKey') {
- entries.push({
- id: 'formKey',
- component: FormKey,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (formType === 'formRef') {
- entries.push({
- id: 'formRef',
- component: FormRef,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'formRefBinding',
- component: Binding$1,
- isEdited: propertiesPanel.isSelectEntryEdited
- });
- if (bindingType === 'version') {
- entries.push({
- id: 'formRefVersion',
- component: Version$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- }
- return entries;
- }
- function FormKey(props) {
- const {
- element
- } = props;
- const debounce = useService('debounceInput');
- const modeling = useService('modeling');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:formKey');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- 'camunda:formKey': value
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'formKey',
- label: translate('Form key'),
- getValue,
- setValue,
- debounce
- });
- }
- function FormRef(props) {
- const {
- element
- } = props;
- const debounce = useService('debounceInput');
- const modeling = useService('modeling');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:formRef');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- 'camunda:formRef': value
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'formRef',
- label: translate('Form reference'),
- getValue,
- setValue,
- debounce
- });
- }
- function Binding$1(props) {
- const {
- element
- } = props;
- const modeling = useService('modeling');
- const translate = useService('translate');
- const getValue = () => {
- return getFormRefBinding(element);
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- 'camunda:formRefBinding': value
- });
- }; // Note: default is "latest",
- // cf. https://docs.camunda.org/manual/develop/reference/bpmn20/custom-extensions/extension-attributes/#formrefbinding
- const getOptions = () => {
- const options = [{
- value: 'deployment',
- label: translate('deployment')
- }, {
- value: 'latest',
- label: translate('latest')
- }, {
- value: 'version',
- label: translate('version')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'formRefBinding',
- label: translate('Binding'),
- getValue,
- setValue,
- getOptions
- });
- }
- function Version$1(props) {
- const {
- element
- } = props;
- const debounce = useService('debounceInput');
- const modeling = useService('modeling');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:formRefVersion');
- };
- const setValue = value => {
- modeling.updateProperties(element, {
- 'camunda:formRefVersion': value
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'formRefVersion',
- label: translate('Version'),
- getValue,
- setValue,
- debounce
- });
- }
- function HistoryCleanupProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- if (!ModelUtil.is(element, 'bpmn:Process') && !(ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
- return [];
- }
- return [{
- id: 'historyTimeToLive',
- component: HistoryTimeToLive,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function HistoryTimeToLive(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const process = getProcess$2(element);
- const getValue = () => {
- return process.get('camunda:historyTimeToLive') || '';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- 'camunda:historyTimeToLive': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'historyTimeToLive',
- label: translate('Time to live'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- function getProcess$2(element) {
- return ModelUtil.is(element, 'bpmn:Process') ? ModelUtil.getBusinessObject(element) : ModelUtil.getBusinessObject(element).get('processRef');
- }
- function DmnImplementationProps(props) {
- const {
- element
- } = props;
- const entries = [];
- const implementationType = getImplementationType(element);
- const bindingType = getDecisionRefBinding(element);
- if (implementationType !== 'dmn') {
- return entries;
- } // (1) decisionRef
- entries.push({
- id: 'decisionRef',
- component: DecisionRef,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }); // (2) binding
- entries.push({
- id: 'decisionRefBinding',
- component: Binding,
- isEdited: propertiesPanel.isSelectEntryEdited
- }); // (3) version
- if (bindingType === 'version') {
- entries.push({
- id: 'decisionRefVersion',
- component: Version,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } // (4) versionTag
- if (bindingType === 'versionTag') {
- entries.push({
- id: 'decisionRefVersionTag',
- component: VersionTag$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } // (5) tenantId
- entries.push({
- id: 'decisionRefTenantId',
- component: TenantId,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }); // (6) resultVariable
- entries.push({
- id: 'decisionRefResultVariable',
- component: ResultVariable$2,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }); // (7) mapDecisionResult
- if (getResultVariable(element)) {
- entries.push({
- id: 'mapDecisionResult',
- component: MapDecisionResult,
- isEdited: propertiesPanel.isSelectEntryEdited
- });
- }
- return entries;
- }
- function DecisionRef(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:decisionRef');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:decisionRef': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'decisionRef',
- label: translate('Decision reference'),
- getValue,
- setValue,
- debounce
- });
- }
- function Binding(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getDecisionRefBinding(element);
- };
- const setValue = value => {
- const businessObject = ModelUtil.getBusinessObject(element); // reset version properties on binding type change
- const updatedProperties = {
- 'camunda:decisionRefVersion': undefined,
- 'camunda:decisionRefVersionTag': undefined,
- 'camunda:decisionRefBinding': value
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: updatedProperties
- });
- }; // Note: default is "latest",
- // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#decisionrefbinding
- const getOptions = () => {
- const options = [{
- value: 'deployment',
- label: translate('deployment')
- }, {
- value: 'latest',
- label: translate('latest')
- }, {
- value: 'version',
- label: translate('version')
- }, {
- value: 'versionTag',
- label: translate('versionTag')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'decisionRefBinding',
- label: translate('Binding'),
- getValue,
- setValue,
- getOptions
- });
- }
- function Version(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:decisionRefVersion');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:decisionRefVersion': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'decisionRefVersion',
- label: translate('Version'),
- getValue,
- setValue,
- debounce
- });
- }
- function VersionTag$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:decisionRefVersionTag');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:decisionRefVersionTag': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'decisionRefVersionTag',
- label: translate('Version tag'),
- getValue,
- setValue,
- debounce
- });
- }
- function TenantId(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:decisionRefTenantId');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:decisionRefTenantId': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'decisionRefTenantId',
- label: translate('Tenant ID'),
- getValue,
- setValue,
- debounce
- });
- }
- function ResultVariable$2(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return getResultVariable(businessObject);
- }; // Note: camunda:mapDecisionResult got cleaned up in modeling behavior
- // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/UpdateResultVariableBehavior.js
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:resultVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'decisionRefResultVariable',
- label: translate('Result variable'),
- getValue,
- setValue,
- debounce
- });
- }
- function MapDecisionResult(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:mapDecisionResult') || 'resultList';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:mapDecisionResult': value
- }
- });
- }; // Note: default is "resultList",
- // cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-attributes/#mapdecisionresult
- const getOptions = () => {
- const options = [{
- value: 'collectEntries',
- label: translate('collectEntries (List<Object>)')
- }, {
- value: 'resultList',
- label: translate('resultList (List<Map<String, Object>>)')
- }, {
- value: 'singleEntry',
- label: translate('singleEntry (TypedValue)')
- }, {
- value: 'singleResult',
- label: translate('singleResult (Map<String, Object>)')
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'mapDecisionResult',
- label: translate('Map decision result'),
- getValue,
- setValue,
- getOptions
- });
- } // helper ////////////////////
- function getDecisionRefBinding(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject.get('camunda:decisionRefBinding') || 'latest';
- }
- function getResultVariable(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject.get('camunda:resultVariable');
- }
- const DELEGATE_PROPS = {
- 'camunda:class': undefined,
- 'camunda:expression': undefined,
- 'camunda:delegateExpression': undefined,
- 'camunda:resultVariable': undefined
- };
- const DMN_CAPABLE_PROPS = {
- 'camunda:decisionRef': undefined,
- 'camunda:decisionRefBinding': 'latest',
- 'camunda:decisionRefVersion': undefined,
- 'camunda:mapDecisionResult': 'resultList',
- 'camunda:decisionRefTenantId': undefined
- };
- const EXTERNAL_CAPABLE_PROPS = {
- 'camunda:type': undefined,
- 'camunda:topic': undefined
- };
- const IMPLEMENTATION_TYPE_NONE_LABEL = '<none>',
- IMPLEMENTATION_TYPE_JAVA_LABEL = 'Java class',
- IMPLEMENTATION_TYPE_EXPRESSION_LABEL = 'Expression',
- IMPLEMENTATION_TYPE_DELEGATE_LABEL = 'Delegate expression',
- IMPLEMENTATION_TYPE_DMN_LABEL = 'DMN',
- IMPLEMENTATION_TYPE_EXTERNAL_LABEL = 'External',
- IMPLEMENTATION_TYPE_CONNECTOR_LABEL = 'Connector';
- function ImplementationTypeProps(props) {
- return [{
- id: 'implementationType',
- component: ImplementationType,
- isEdited: propertiesPanel.isSelectEntryEdited
- }];
- }
- function ImplementationType(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return getImplementationType(element) || '';
- };
- const setValue = value => {
- const oldType = getImplementationType(element);
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const commands = [];
- let updatedProperties = DELEGATE_PROPS;
- let extensionElements = businessObject.get('extensionElements'); // (1) class, expression, delegateExpression
- if (isDelegateType(value)) {
- updatedProperties = { ...updatedProperties,
- [value]: isDelegateType(oldType) ? businessObject.get(`camunda:${oldType}`) : ''
- };
- } // (2) dmn
- if (isDmnCapable(businessObject)) {
- updatedProperties = { ...updatedProperties,
- ...DMN_CAPABLE_PROPS
- };
- if (value === 'dmn') {
- updatedProperties = { ...updatedProperties,
- 'camunda:decisionRef': ''
- };
- }
- } // (3) external
- // Note: error event definition elements got cleaned up in modeling behavior
- // cf. https://github.com/camunda/camunda-bpmn-js/blob/main/lib/camunda-platform/features/modeling/behavior/DeleteErrorEventDefinitionBehavior.js
- if (isExternalCapable(businessObject)) {
- updatedProperties = { ...updatedProperties,
- ...EXTERNAL_CAPABLE_PROPS
- };
- if (value === 'external') {
- updatedProperties = { ...updatedProperties,
- 'camunda:type': 'external',
- 'camunda:topic': ''
- };
- }
- } // (4) connector
- if (isServiceTaskLike(businessObject)) {
- // (4.1) remove all connectors on type change
- const connectors = getConnectors$1(businessObject);
- if (connectors.length) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), value => connectors.includes(value))
- }
- }
- });
- } // (4.2) create connector
- if (value === 'connector') {
- // ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push(UpdateModdlePropertiesCommand(element, businessObject, {
- extensionElements
- }));
- }
- const connector = createElement('camunda:Connector', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), connector]
- }
- }
- });
- }
- } // (5) collect all property updates
- commands.push(UpdateModdlePropertiesCommand(element, businessObject, updatedProperties)); // (6) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- const getOptions = () => {
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const options = [{
- value: '',
- label: translate(IMPLEMENTATION_TYPE_NONE_LABEL)
- }, {
- value: 'class',
- label: translate(IMPLEMENTATION_TYPE_JAVA_LABEL)
- }, {
- value: 'expression',
- label: translate(IMPLEMENTATION_TYPE_EXPRESSION_LABEL)
- }, {
- value: 'delegateExpression',
- label: translate(IMPLEMENTATION_TYPE_DELEGATE_LABEL)
- }];
- if (isDmnCapable(businessObject)) {
- options.push({
- value: 'dmn',
- label: translate(IMPLEMENTATION_TYPE_DMN_LABEL)
- });
- }
- if (isExternalCapable(businessObject)) {
- options.push({
- value: 'external',
- label: translate(IMPLEMENTATION_TYPE_EXTERNAL_LABEL)
- });
- }
- if (isServiceTaskLike(businessObject)) {
- options.push({
- value: 'connector',
- label: translate(IMPLEMENTATION_TYPE_CONNECTOR_LABEL)
- });
- }
- return sortByPriority(options);
- };
- return propertiesPanel.SelectEntry({
- element,
- id: 'implementationType',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- } // helper ///////////////////////
- function isDelegateType(type) {
- return ['class', 'expression', 'delegateExpression'].includes(type);
- }
- function getConnectors$1(businessObject) {
- return getExtensionElementsList(businessObject, 'camunda:Connector');
- }
- function UpdateModdlePropertiesCommand(element, businessObject, newProperties) {
- return {
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: newProperties
- }
- };
- }
- function sortByPriority(options) {
- const priorities = {
- [IMPLEMENTATION_TYPE_NONE_LABEL]: 0,
- [IMPLEMENTATION_TYPE_JAVA_LABEL]: 3,
- [IMPLEMENTATION_TYPE_EXPRESSION_LABEL]: 4,
- [IMPLEMENTATION_TYPE_DELEGATE_LABEL]: 5,
- [IMPLEMENTATION_TYPE_DMN_LABEL]: 1,
- [IMPLEMENTATION_TYPE_EXTERNAL_LABEL]: 2,
- [IMPLEMENTATION_TYPE_CONNECTOR_LABEL]: 6
- };
- return minDash.sortBy(options, o => priorities[o.label]);
- }
- function ImplementationProps(props) {
- const {
- element
- } = props;
- if (!getServiceTaskLikeBusinessObject(element)) {
- return [];
- }
- const implementationType = getImplementationType(element); // (1) display implementation type select
- const entries = [...ImplementationTypeProps()]; // (2) display implementation properties based on type
- if (implementationType === 'class') {
- entries.push({
- id: 'javaClass',
- component: JavaClass,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (implementationType === 'expression') {
- entries.push({
- id: 'expression',
- component: Expression$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'expressionResultVariable',
- component: ResultVariable$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (implementationType === 'delegateExpression') {
- entries.push({
- id: 'delegateExpression',
- component: DelegateExpression,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (implementationType === 'dmn') {
- entries.push(...DmnImplementationProps({
- element
- }));
- } else if (implementationType === 'external') {
- entries.push({
- id: 'externalTopic',
- component: Topic,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } else if (implementationType === 'connector') {
- entries.push({
- id: 'connectorId',
- component: ConnectorId,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function JavaClass(props) {
- const {
- element,
- businessObject = getServiceTaskLikeBusinessObject(element),
- id = 'javaClass'
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return businessObject.get('camunda:class');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:class': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id,
- label: translate('Java class'),
- getValue,
- setValue,
- debounce
- });
- }
- function Expression$1(props) {
- const {
- element,
- businessObject = getServiceTaskLikeBusinessObject(element),
- id = 'expression'
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return businessObject.get('camunda:expression');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:expression': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id,
- label: translate('Expression'),
- getValue,
- setValue,
- debounce
- });
- }
- function ResultVariable$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:resultVariable');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:resultVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'expressionResultVariable',
- label: translate('Result variable'),
- getValue,
- setValue,
- debounce
- });
- }
- function DelegateExpression(props) {
- const {
- element,
- businessObject = getServiceTaskLikeBusinessObject(element),
- id = 'delegateExpression'
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const getValue = () => {
- return businessObject.get('camunda:delegateExpression');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:delegateExpression': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id,
- label: translate('Delegate expression'),
- getValue,
- setValue,
- debounce
- });
- }
- function Topic(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:topic');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:topic': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'externalTopic',
- label: translate('Topic'),
- getValue,
- setValue,
- debounce
- });
- }
- function ConnectorId(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const connector = getConnector(element);
- const getValue = () => {
- return connector.get('camunda:connectorId');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: connector,
- properties: {
- 'camunda:connectorId': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'connectorId',
- label: translate('Connector ID'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- function getConnectors(businessObject) {
- return getExtensionElementsList(businessObject, 'camunda:Connector');
- }
- function getConnector(element) {
- const businessObject = getServiceTaskLikeBusinessObject(element);
- const connectors = getConnectors(businessObject);
- return connectors[0];
- }
- function InitiatorProps(props) {
- const {
- element
- } = props;
- if (!isInitiator(element)) {
- return [];
- }
- return [{
- id: 'initiator',
- component: Initiator,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function Initiator(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:initiator');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:initiator': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'initiator',
- label: translate('Initiator'),
- getValue,
- setValue,
- debounce
- });
- } // helper ///////////////////
- function isInitiator(element) {
- return ModelUtil.is(element, 'camunda:Initiator') && !ModelUtil.is(element.parent, 'bpmn:SubProcess');
- }
- /**
- * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables
- */
- function InMappingPropagationProps(props) {
- const {
- element
- } = props;
- if (!areInMappingsSupported$1(element)) {
- return [];
- }
- const entries = [{
- id: 'inMapping-propagation',
- component: PropagateAll$1,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }];
- if (isPropagateAll$1(element)) {
- entries.push({
- id: 'inMapping-propagation-local',
- component: Local$2,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- });
- }
- return entries;
- }
- function PropagateAll$1(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const getValue = () => {
- return isPropagateAll$1(element);
- };
- const setValue = value => {
- if (value) {
- addInMapping();
- } else {
- removeInMapping();
- }
- };
- function addInMapping() {
- const businessObject = getSignalEventDefinition(element) || ModelUtil.getBusinessObject(element);
- const mapping = createElement('camunda:In', {
- variables: 'all'
- }, null, bpmnFactory);
- addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);
- }
- function removeInMapping() {
- const businessObject = getSignalEventDefinition(element) || ModelUtil.getBusinessObject(element);
- const mappings = findRelevantInMappings(element);
- removeExtensionElements(element, businessObject, mappings, commandStack);
- }
- return propertiesPanel.CheckboxEntry({
- id: 'inMapping-propagation',
- label: translate('Propagate all variables'),
- getValue,
- setValue
- });
- }
- function Local$2(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const mapping = findRelevantInMappings(element)[0];
- const getValue = () => {
- return mapping.get('camunda:local');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- local: value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'inMapping-propagation-local',
- label: translate('Local'),
- getValue,
- setValue
- });
- } // helper //////////////////////////
- function areInMappingsSupported$1(element) {
- const signalEventDefinition = getSignalEventDefinition(element);
- if (signalEventDefinition) {
- return ModelingUtil.isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:EndEvent']);
- }
- return ModelUtil.is(element, 'bpmn:CallActivity');
- }
- function getInMappings$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const signalEventDefinition = getSignalEventDefinition(businessObject);
- return getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In');
- }
- function findRelevantInMappings(element) {
- const inMappings = getInMappings$1(element);
- return minDash.filter(inMappings, function (mapping) {
- const variables = mapping.get('variables');
- return variables && variables === 'all';
- });
- }
- function isPropagateAll$1(element) {
- const mappings = findRelevantInMappings(element);
- return !!mappings.length;
- }
- const DEFAULT_PROPS$1 = {
- 'source': undefined,
- 'sourceExpression': undefined
- };
- function InOutMapping(props) {
- const {
- idPrefix,
- mapping
- } = props;
- const type = getInOutType(mapping);
- const entries = []; // (1) Type
- entries.push({
- id: idPrefix + '-type',
- component: Type,
- idPrefix,
- mapping
- }); // (2) Source
- if (type === 'source') {
- entries.push({
- id: idPrefix + '-source',
- component: Source,
- idPrefix,
- mapping
- });
- } // (3) Source expression
- if (type === 'sourceExpression') {
- entries.push({
- id: idPrefix + '-sourceExpression',
- component: SourceExpression,
- idPrefix,
- mapping
- });
- } // (4) Target
- entries.push({
- id: idPrefix + '-target',
- component: Target,
- idPrefix,
- mapping
- }); // (5) Local
- entries.push({
- id: idPrefix + '-local',
- component: Local$1,
- idPrefix,
- mapping
- });
- return entries;
- }
- function Type(props) {
- const {
- idPrefix,
- element,
- mapping
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = mapping => {
- return getInOutType(mapping);
- };
- const setValue = value => {
- const properties = { ...DEFAULT_PROPS$1,
- [value]: ''
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties
- });
- };
- const getOptions = () => {
- const options = [{
- label: translate('Source'),
- value: 'source'
- }, {
- label: translate('Source expression'),
- value: 'sourceExpression'
- }];
- return options;
- };
- return propertiesPanel.SelectEntry({
- element: mapping,
- id: idPrefix + '-type',
- label: translate('Type'),
- getValue,
- setValue,
- getOptions
- });
- }
- function Source(props) {
- const {
- idPrefix,
- element,
- mapping
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- source: value
- }
- });
- };
- const getValue = mapping => {
- return mapping.get('camunda:source');
- };
- return propertiesPanel.TextFieldEntry({
- element: mapping,
- id: idPrefix + '-source',
- label: translate('Source'),
- getValue,
- setValue,
- debounce
- });
- }
- function SourceExpression(props) {
- const {
- idPrefix,
- element,
- mapping
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- sourceExpression: value
- }
- });
- };
- const getValue = mapping => {
- return mapping.get('camunda:sourceExpression');
- };
- return propertiesPanel.TextFieldEntry({
- element: mapping,
- id: idPrefix + '-sourceExpression',
- label: translate('Source expression'),
- getValue,
- setValue,
- debounce
- });
- }
- function Target(props) {
- const {
- idPrefix,
- element,
- mapping
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- target: value
- }
- });
- };
- const getValue = mapping => {
- return mapping.get('camunda:target');
- };
- return propertiesPanel.TextFieldEntry({
- element: mapping,
- id: idPrefix + '-target',
- label: translate('Target'),
- getValue,
- setValue,
- debounce
- });
- }
- function Local$1(props) {
- const {
- idPrefix,
- element,
- mapping
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const getValue = () => {
- return mapping.get('camunda:local');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- local: value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: idPrefix + '-local',
- label: translate('Local'),
- getValue,
- setValue
- });
- } // helper ///////////////////
- function getInOutType(mapping) {
- let inOutType = '';
- if (typeof mapping.source !== 'undefined') {
- inOutType = 'source';
- } else if (typeof mapping.sourceExpression !== 'undefined') {
- inOutType = 'sourceExpression';
- }
- return inOutType;
- }
- /**
- * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#in
- */
- function InMappingProps({
- element,
- injector
- }) {
- if (!areInMappingsSupported(element)) {
- return null;
- }
- const variableMappings = getInMappings(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = variableMappings.map((mapping, index) => {
- const id = element.id + '-inMapping-' + index;
- return {
- id,
- label: mapping.get('target') || '',
- entries: InOutMapping({
- idPrefix: id,
- element,
- mapping
- }),
- autoFocusEntry: id + '-target',
- remove: removeFactory$3({
- commandStack,
- element,
- mapping
- })
- };
- });
- return {
- items,
- add: addFactory$2({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory$3({
- commandStack,
- element,
- mapping
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = getSignalEventDefinition(element) || ModelUtil.getBusinessObject(element);
- removeExtensionElements(element, businessObject, mapping, commandStack);
- };
- }
- function addFactory$2({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = getSignalEventDefinition(element) || ModelUtil.getBusinessObject(element);
- const newMapping = createElement('camunda:In', {
- source: '' // source is the default type
- }, null, bpmnFactory);
- addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);
- };
- } // helper ///////////////
- function getInMappings(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const signalEventDefinition = getSignalEventDefinition(businessObject);
- const mappings = getExtensionElementsList(signalEventDefinition || businessObject, 'camunda:In'); // only retrieve relevant mappings here, others are handled in other groups
- // mapping.businessKey => camunda-platform/CallAvtivityProps
- // mapping.variables => camunda-platform/InMappingPropagationProps
- return minDash.filter(mappings, function (mapping) {
- return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');
- });
- }
- function areInMappingsSupported(element) {
- const signalEventDefinition = getSignalEventDefinition(element);
- if (signalEventDefinition) {
- return ModelingUtil.isAny(element, ['bpmn:IntermediateThrowEvent', 'bpmn:EndEvent']);
- }
- return ModelUtil.is(element, 'bpmn:CallActivity');
- }
- function InputProps(props) {
- const {
- element,
- injector
- } = props;
- if (!areInputParametersSupported(element)) {
- return null;
- }
- const inputParameters = getInputParameters(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = inputParameters.map((parameter, index) => {
- const id = element.id + '-inputParameter-' + index;
- return {
- id,
- label: parameter.get('name') || '',
- entries: InputOutputParameter({
- idPrefix: id,
- element,
- parameter
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory$2({
- element,
- commandStack,
- parameter
- })
- };
- });
- function add(event) {
- event.stopPropagation();
- commandStack.execute('properties-panel.multi-command-executor', AddParameterCmd(element, 'camunda:InputParameter', bpmnFactory));
- }
- return {
- items,
- add
- };
- }
- function removeFactory$2(props) {
- const {
- commandStack,
- element,
- parameter
- } = props;
- return function (event) {
- event.stopPropagation();
- const inputOutput = getInputOutput(element);
- if (!inputOutput) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOutput,
- properties: {
- inputParameters: minDash.without(inputOutput.get('inputParameters'), parameter)
- }
- });
- };
- }
- function JobExecutionProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- const entries = []; // (1) add retryTimeCycle field for camunda:asyncCapable enabled Elements
- // or TimerEvents
- if (ModelUtil.is(element, 'camunda:AsyncCapable') && isAsync$1(businessObject) || isTimerEvent(element)) {
- entries.push({
- id: 'retryTimeCycle',
- component: RetryTimeCycle,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- } // (2) add jobPriority field for camunda:jobPriorized with async enabled
- // or Processes
- // or Processes referred to by participants
- // or TimerEvents
- if (ModelUtil.is(element, 'camunda:JobPriorized') && isAsync$1(businessObject) || ModelUtil.is(element, 'bpmn:Process') || ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef') || isTimerEvent(element)) {
- entries.push({
- id: 'jobPriority',
- component: JobPriority,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function JobPriority(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const businessObject = ModelUtil.is(element, 'bpmn:Participant') ? ModelUtil.getBusinessObject(element).get('processRef') : ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:jobPriority');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:jobPriority': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'jobPriority',
- label: translate('Priority'),
- getValue,
- setValue,
- debounce
- });
- }
- function RetryTimeCycle(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- const failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];
- return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;
- };
- const setValue = value => {
- const commands = [];
- let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure failedJobRetryTimeCycle
- let failedJobRetryTimeCycle = getExtensionElementsList(businessObject, 'camunda:FailedJobRetryTimeCycle')[0];
- if (!failedJobRetryTimeCycle) {
- failedJobRetryTimeCycle = createElement('camunda:FailedJobRetryTimeCycle', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), failedJobRetryTimeCycle]
- }
- }
- });
- } // (3) update failedJobRetryTimeCycle value
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: failedJobRetryTimeCycle,
- properties: {
- body: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'retryTimeCycle',
- label: translate('Retry time cycle'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- /**
- * @param {ModdleElement} bo
- * @return {boolean} a boolean value
- */
- function isAsyncBefore$1(bo) {
- return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
- }
- /**
- * @param {ModdleElement} bo
- * @return {boolean}
- */
- function isAsyncAfter$1(bo) {
- return !!bo.get('camunda:asyncAfter');
- }
- /**
- * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'
- * is set to true.
- *
- * @param {ModdleElement} bo
- * @return {boolean}
- */
- function isAsync$1(bo) {
- return isAsyncAfter$1(bo) || isAsyncBefore$1(bo);
- }
- /**
- * isTimerEvent - returns true if the element is a bpmn:Event with a timerEventDefinition
- *
- * @param {ModdleElement} element
- * @return {boolean}
- */
- function isTimerEvent(element) {
- return ModelUtil.is(element, 'bpmn:Event') && getTimerEventDefinition(element);
- }
- /**
- * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
- */
- /**
- * @returns {Array<Entry>} entries
- */
- function MultiInstanceProps(props) {
- const {
- element
- } = props;
- const loopCharacteristics = getLoopCharacteristics(element);
- let entries = props.entries || [];
- if (!isMultiInstanceSupported(element)) {
- return entries;
- }
- entries.push({
- id: 'collection',
- component: Collection,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'elementVariable',
- component: ElementVariable,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'multiInstanceAsynchronousBefore',
- component: MultiInstanceAsynchronousBefore,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }, {
- id: 'multiInstanceAsynchronousAfter',
- component: MultiInstanceAsynchronousAfter,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- });
- if (isAsync(loopCharacteristics)) {
- entries.push({
- id: 'multiInstanceExclusive',
- component: MultiInstanceExclusive,
- isEdited: checkboxIsEditedInverted
- }, {
- id: 'multiInstanceRetryTimeCycle',
- component: MultiInstanceRetryTimeCycle,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- }
- return entries;
- }
- function Collection(props) {
- const {
- element
- } = props;
- const debounce = useService('debounceInput');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- return getCollection(element);
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- 'camunda:collection': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'collection',
- label: translate('Collection'),
- getValue,
- setValue,
- debounce
- });
- }
- function ElementVariable(props) {
- const {
- element
- } = props;
- const debounce = useService('debounceInput');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- return getElementVariable(element);
- };
- const setValue = value => {
- return commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- 'camunda:elementVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'elementVariable',
- label: translate('Element variable'),
- getValue,
- setValue,
- debounce
- });
- }
- function MultiInstanceAsynchronousBefore(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- return isAsyncBefore(loopCharacteristics);
- };
- const setValue = value => {
- // overwrite the legacy `async` property, we will use the more explicit `asyncBefore`
- const properties = {
- 'camunda:asyncBefore': value,
- 'camunda:async': undefined
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: loopCharacteristics,
- properties
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'multiInstanceAsynchronousBefore',
- label: translate('Asynchronous before'),
- getValue,
- setValue
- });
- }
- function MultiInstanceAsynchronousAfter(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- return isAsyncAfter(loopCharacteristics);
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- 'camunda:asyncAfter': value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'multiInstanceAsynchronousAfter',
- label: translate('Asynchronous after'),
- getValue,
- setValue
- });
- }
- function MultiInstanceExclusive(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack'),
- translate = useService('translate');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- return isExclusive(loopCharacteristics);
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- 'camunda:exclusive': value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'multiInstanceExclusive',
- label: translate('Exclusive'),
- getValue,
- setValue
- });
- }
- function MultiInstanceRetryTimeCycle(props) {
- const {
- element
- } = props;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- translate = useService('translate'),
- debounce = useService('debounceInput');
- const loopCharacteristics = getLoopCharacteristics(element);
- const getValue = () => {
- const failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics, 'camunda:FailedJobRetryTimeCycle')[0];
- return failedJobRetryTimeCycle && failedJobRetryTimeCycle.body;
- };
- const setValue = value => {
- const commands = [];
- let extensionElements = loopCharacteristics.get('extensionElements'); // (1) ensure extension elements
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', {
- values: []
- }, loopCharacteristics, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: loopCharacteristics,
- properties: {
- extensionElements
- }
- }
- });
- } // (2) ensure failedJobRetryTimeCycle
- let failedJobRetryTimeCycle = getExtensionElementsList(loopCharacteristics, 'camunda:FailedJobRetryTimeCycle')[0];
- if (!failedJobRetryTimeCycle) {
- failedJobRetryTimeCycle = createElement('camunda:FailedJobRetryTimeCycle', {}, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element: loopCharacteristics,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), failedJobRetryTimeCycle]
- }
- }
- });
- } // (3) update failedJobRetryTimeCycle value
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: failedJobRetryTimeCycle,
- properties: {
- body: value
- }
- }
- }); // (4) commit all updates
- commandStack.execute('properties-panel.multi-command-executor', commands);
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'multiInstanceRetryTimeCycle',
- label: translate('Retry time cycle'),
- getValue,
- setValue,
- debounce
- });
- } // helper ////////////////////////////
- // generic ///////////////////////////
- /**
- * isMultiInstanceSupported - check whether given element supports camunda specific props
- * for multiInstance (ref. <camunda:Cllectable>).
- *
- * @param {djs.model.Base} element
- * @return {boolean}
- */
- function isMultiInstanceSupported(element) {
- const loopCharacteristics = getLoopCharacteristics(element);
- return !!loopCharacteristics && ModelUtil.is(loopCharacteristics, 'camunda:Collectable');
- }
- /**
- * getProperty - get a property value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- * @param {string} propertyName
- *
- * @return {any} the property value
- */
- function getProperty(element, propertyName) {
- var loopCharacteristics = getLoopCharacteristics(element);
- return loopCharacteristics && loopCharacteristics.get(propertyName);
- }
- /**
- * getLoopCharacteristics - get loopCharacteristics of a given element.
- *
- * @param {djs.model.Base} element
- * @return {ModdleElement<bpmn:MultiInstanceLoopCharacteristics> | undefined}
- */
- function getLoopCharacteristics(element) {
- const bo = ModelUtil.getBusinessObject(element);
- return bo.loopCharacteristics;
- } // collection
- /**
- * getCollection - get the 'camunda:collection' attribute value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {string} the 'camunda:collection' value
- */
- function getCollection(element) {
- return getProperty(element, 'camunda:collection');
- } // elementVariable
- /**
- * getElementVariable - get the 'camunda:elementVariable' attribute value of the loop characteristics.
- *
- * @param {djs.model.Base} element
- *
- * @return {string} the 'camunda:elementVariable' value
- */
- function getElementVariable(element) {
- return getProperty(element, 'camunda:elementVariable');
- } // asyncBefore asyncAfter
- /**
- * Returns true if the attribute 'camunda:asyncBefore' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isAsyncBefore(bo) {
- return !!(bo.get('camunda:asyncBefore') || bo.get('camunda:async'));
- }
- /**
- * Returns true if the attribute 'camunda:asyncAfter' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isAsyncAfter(bo) {
- return !!bo.get('camunda:asyncAfter');
- }
- /**
- * Returns true if the attribute 'camunda:exclusive' is set
- * to true.
- *
- * @param {ModdleElement} bo
- *
- * @return {boolean} a boolean value
- */
- function isExclusive(bo) {
- return !!bo.get('camunda:exclusive');
- }
- /**
- * isAsync - returns true if the attribute 'camunda:asyncAfter' or 'camunda:asyncBefore'
- * is set to true.
- *
- * @param {ModdleElement} bo
- * @return {boolean}
- */
- function isAsync(bo) {
- return isAsyncAfter(bo) || isAsyncBefore(bo);
- } // Checkbox
- function checkboxIsEditedInverted(node) {
- return node && !node.checked;
- }
- /**
- * Cf. https://docs.camunda.org/manual/7.15/reference/bpmn20/subprocesses/call-activity/#passing-variables
- */
- function OutMappingPropagationProps(props) {
- const {
- element
- } = props;
- if (!areOutMappingsSupported$1(element)) {
- return [];
- }
- const entries = [{
- id: 'outMapping-propagation',
- component: PropagateAll,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- }];
- if (isPropagateAll(element)) {
- entries.push({
- id: 'outMapping-propagation-local',
- component: Local,
- isEdited: propertiesPanel.isCheckboxEntryEdited
- });
- }
- return entries;
- }
- function PropagateAll(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const bpmnFactory = useService('bpmnFactory');
- const translate = useService('translate');
- const getValue = () => {
- return isPropagateAll(element);
- };
- const setValue = value => {
- if (value) {
- addOutMapping();
- } else {
- removeOutMapping();
- }
- };
- function addOutMapping() {
- const businessObject = ModelUtil.getBusinessObject(element);
- const mapping = createElement('camunda:Out', {
- variables: 'all'
- }, null, bpmnFactory);
- addExtensionElements(element, businessObject, mapping, bpmnFactory, commandStack);
- }
- function removeOutMapping() {
- const businessObject = ModelUtil.getBusinessObject(element);
- const mappings = findRelevantOutMappings(element);
- removeExtensionElements(element, businessObject, mappings, commandStack);
- }
- return propertiesPanel.CheckboxEntry({
- id: 'outMapping-propagation',
- label: translate('Propagate all variables'),
- getValue,
- setValue
- });
- }
- function Local(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const mapping = findRelevantOutMappings(element)[0];
- const getValue = () => {
- return mapping.get('camunda:local');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: mapping,
- properties: {
- local: value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'outMapping-propagation-local',
- label: translate('Local'),
- getValue,
- setValue
- });
- } // helper //////////////////////////
- function areOutMappingsSupported$1(element) {
- return ModelUtil.is(element, 'bpmn:CallActivity');
- }
- function getOutMappings$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return getExtensionElementsList(businessObject, 'camunda:Out');
- }
- function findRelevantOutMappings(element) {
- const inMappings = getOutMappings$1(element);
- return minDash.filter(inMappings, function (mapping) {
- const variables = mapping.get('variables');
- return variables && variables === 'all';
- });
- }
- function isPropagateAll(element) {
- const mappings = findRelevantOutMappings(element);
- return !!mappings.length;
- }
- /**
- * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/custom-extensions/extension-elements/#out
- */
- function OutMappingProps({
- element,
- injector
- }) {
- if (!areOutMappingsSupported(element)) {
- return null;
- }
- const variableMappings = getOutMappings(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = variableMappings.map((mapping, index) => {
- const id = element.id + '-outMapping-' + index;
- return {
- id,
- label: mapping.get('target') || '',
- entries: InOutMapping({
- idPrefix: id,
- element,
- mapping
- }),
- autoFocusEntry: id + '-target',
- remove: removeFactory$1({
- commandStack,
- element,
- mapping
- })
- };
- });
- return {
- items,
- add: addFactory$1({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory$1({
- commandStack,
- element,
- mapping
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = ModelUtil.getBusinessObject(element);
- removeExtensionElements(element, businessObject, mapping, commandStack);
- };
- }
- function addFactory$1({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- const businessObject = ModelUtil.getBusinessObject(element);
- const newMapping = createElement('camunda:Out', {
- source: '' // source is the default type
- }, null, bpmnFactory);
- addExtensionElements(element, businessObject, newMapping, bpmnFactory, commandStack);
- };
- } // helper ///////////////
- function getOutMappings(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const mappings = getExtensionElementsList(businessObject, 'camunda:Out'); // only retrieve relevant mappings here, others are handled in other groups
- // mapping.businessKey => camunda-platform/CallAvtivityProps
- // mapping.variables => camunda-platform/OutMappingPropagationProps
- return minDash.filter(mappings, function (mapping) {
- return !mapping.businessKey && !(mapping.variables && mapping.variables === 'all');
- });
- }
- function areOutMappingsSupported(element) {
- return ModelUtil.is(element, 'bpmn:CallActivity');
- }
- function OutputProps({
- element,
- injector
- }) {
- if (!areOutputParametersSupported(element)) {
- return null;
- }
- const outputParameters = getOutputParameters(element) || [];
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const items = outputParameters.map((parameter, index) => {
- const id = element.id + '-outputParameter-' + index;
- return {
- id,
- label: parameter.get('name') || '',
- entries: InputOutputParameter({
- idPrefix: id,
- element,
- parameter
- }),
- autoFocusEntry: id + '-name',
- remove: removeFactory({
- commandStack,
- element,
- parameter
- })
- };
- });
- return {
- items,
- add: addFactory({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function removeFactory({
- commandStack,
- element,
- parameter
- }) {
- return function (event) {
- event.stopPropagation();
- const inputOutput = getInputOutput(element);
- if (!inputOutput) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOutput,
- properties: {
- outputParameters: minDash.without(inputOutput.get('outputParameters'), parameter)
- }
- });
- };
- }
- function addFactory({
- bpmnFactory,
- commandStack,
- element
- }) {
- return function (event) {
- event.stopPropagation();
- commandStack.execute('properties-panel.multi-command-executor', AddParameterCmd(element, 'camunda:OutputParameter', bpmnFactory));
- };
- }
- const LISTENER_ALLOWED_TYPES = ['bpmn:Activity', 'bpmn:Event', 'bpmn:Gateway', 'bpmn:SequenceFlow', 'bpmn:Process', 'bpmn:Participant'];
- const SCRIPT_PROPS = {
- 'script': undefined,
- 'resource': undefined,
- 'scriptFormat': undefined
- };
- const CLASS_PROPS = {
- 'class': undefined
- };
- const EXPRESSION_PROPS = {
- 'expression': undefined
- };
- const DELEGATE_EXPRESSION_PROPS = {
- 'delegateExpression': undefined
- };
- const DEFAULT_PROPS = { ...SCRIPT_PROPS,
- ...CLASS_PROPS,
- ...EXPRESSION_PROPS,
- ...DELEGATE_EXPRESSION_PROPS
- };
- const DEFAULT_EVENT_PROPS = {
- 'eventDefinitions': undefined,
- 'event': undefined
- };
- const IMPLEMENTATION_TYPE_TO_LABEL = {
- class: 'Java class',
- expression: 'Expression',
- delegateExpression: 'Delegate expression',
- script: 'Script'
- };
- const EVENT_TO_LABEL = {
- start: 'Start',
- end: 'End',
- take: 'Take',
- create: 'Create',
- assignment: 'Assignment',
- complete: 'Complete',
- delete: 'Delete',
- update: 'Update',
- timeout: 'Timeout'
- };
- /**
- * Cf. https://docs.camunda.org/manual/latest/user-guide/process-engine/delegation-code/#execution-listener
- */
- function ExecutionListenerProps({
- element,
- injector
- }) {
- if (!ModelingUtil.isAny(element, LISTENER_ALLOWED_TYPES)) {
- return;
- }
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- if (ModelUtil.is(element, 'bpmn:Participant') && !element.businessObject.processRef) {
- return;
- }
- const businessObject = getListenersContainer(element);
- const listeners = getExtensionElementsList(businessObject, 'camunda:ExecutionListener');
- return {
- items: listeners.map((listener, index) => {
- const id = `${element.id}-executionListener-${index}`; // @TODO(barmac): Find a way to pass translate for internationalized label.
- return {
- id,
- label: getListenerLabel(listener),
- entries: ExecutionListener({
- idPrefix: id,
- element,
- listener
- }),
- remove: removeListenerFactory({
- element,
- listener,
- commandStack
- })
- };
- }),
- add: addExecutionListenerFactory({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function ExecutionListener(props) {
- const {
- idPrefix,
- element,
- listener
- } = props;
- return [{
- id: `${idPrefix}-eventType`,
- component: EventType,
- listener
- }, {
- id: `${idPrefix}-listenerType`,
- component: ListenerType,
- listener
- }, ...ImplementationDetails({
- idPrefix,
- element,
- listener
- }), {
- id: `${idPrefix}-fields`,
- component: Fields,
- listener
- }];
- }
- function TaskListenerProps({
- element,
- injector
- }) {
- if (!ModelUtil.is(element, 'bpmn:UserTask')) {
- return;
- }
- const bpmnFactory = injector.get('bpmnFactory'),
- commandStack = injector.get('commandStack');
- const businessObject = getListenersContainer(element);
- const listeners = getExtensionElementsList(businessObject, 'camunda:TaskListener');
- return {
- items: listeners.map((listener, index) => {
- const id = `${element.id}-taskListener-${index}`; // @TODO(barmac): Find a way to pass translate for internationalized label.
- return {
- id,
- label: getListenerLabel(listener),
- entries: TaskListener({
- idPrefix: id,
- element,
- listener
- }),
- remove: removeListenerFactory({
- element,
- listener,
- commandStack
- })
- };
- }),
- add: addTaskListenerFactory({
- bpmnFactory,
- commandStack,
- element
- })
- };
- }
- function TaskListener(props) {
- const {
- idPrefix,
- element,
- listener
- } = props;
- return [{
- id: `${idPrefix}-eventType`,
- component: EventType,
- listener
- }, {
- id: `${idPrefix}-listenerId`,
- component: ListenerId,
- listener
- }, {
- id: `${idPrefix}-listenerType`,
- component: ListenerType,
- listener
- }, ...ImplementationDetails({
- idPrefix,
- element,
- listener
- }), ...EventTypeDetails({
- idPrefix,
- element,
- listener
- }), {
- id: `${idPrefix}-fields`,
- component: Fields,
- listener
- }];
- }
- function removeListenerFactory({
- element,
- listener,
- commandStack
- }) {
- return function removeListener(event) {
- event.stopPropagation();
- removeExtensionElements(element, getListenersContainer(element), listener, commandStack);
- };
- }
- function EventType({
- id,
- element,
- listener
- }) {
- const translate = useService('translate');
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- function getValue() {
- return listener.get('event');
- }
- function setValue(value) {
- const properties = getDefaultEventTypeProperties(value, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: listener,
- properties
- });
- }
- function getOptions() {
- if (ModelUtil.is(listener, 'camunda:TaskListener')) {
- return [{
- value: 'create',
- label: translate('create')
- }, {
- value: 'assignment',
- label: translate('assignment')
- }, {
- value: 'complete',
- label: translate('complete')
- }, {
- value: 'delete',
- label: translate('delete')
- }, {
- value: 'update',
- label: translate('update')
- }, {
- value: 'timeout',
- label: translate('timeout')
- }];
- }
- if (ModelUtil.is(element, 'bpmn:SequenceFlow')) {
- return [{
- value: 'take',
- label: translate('take')
- }];
- }
- return [{
- value: 'start',
- label: translate('start')
- }, {
- value: 'end',
- label: translate('end')
- }];
- }
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- id: id,
- label: translate('Event type'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function ListenerId({
- id,
- element,
- listener
- }) {
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const commandStack = useService('commandStack');
- let options = {
- element,
- id: id,
- label: translate('Listener ID'),
- debounce,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- setValue: value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: listener,
- properties: {
- 'camunda:id': value
- }
- });
- },
- getValue: () => {
- return listener.get('camunda:id');
- }
- };
- return propertiesPanel.TextFieldEntry(options);
- }
- function ListenerType({
- id,
- element,
- listener
- }) {
- const modeling = useService('modeling');
- const translate = useService('translate');
- const bpmnFactory = useService('bpmnFactory');
- function getValue() {
- return getListenerType(listener);
- }
- function setValue(value) {
- const properties = getDefaultImplementationProperties(value, bpmnFactory);
- modeling.updateModdleProperties(element, listener, properties);
- }
- function getOptions() {
- return getListenerTypeOptions(translate);
- }
- return jsxRuntime.jsx(propertiesPanel.SelectEntry, {
- id: id,
- label: translate('Listener type'),
- getValue: getValue,
- setValue: setValue,
- getOptions: getOptions
- });
- }
- function ImplementationDetails(props) {
- const {
- idPrefix,
- element,
- listener
- } = props;
- const type = getListenerType(listener);
- if (type === 'class') {
- return [{
- id: getPrefixedId(idPrefix, 'javaClass'),
- component: JavaClass,
- businessObject: listener
- }];
- } else if (type === 'expression') {
- return [{
- id: getPrefixedId(idPrefix, 'expression'),
- component: Expression$1,
- businessObject: listener
- }];
- } else if (type === 'delegateExpression') {
- return [{
- id: getPrefixedId(idPrefix, 'delegateExpression'),
- component: DelegateExpression,
- businessObject: listener
- }];
- } else if (type === 'script') {
- return ScriptProps({
- element,
- script: listener.get('script'),
- prefix: idPrefix
- });
- }
- }
- function EventTypeDetails(props) {
- const {
- idPrefix,
- element,
- listener
- } = props;
- const type = listener.get('event');
- if (type === 'timeout') {
- return TimerProps$1({
- element,
- listener,
- timerEventDefinition: getTimerEventDefinition(listener),
- idPrefix: idPrefix
- });
- }
- return [];
- }
- function Field(props) {
- const {
- element,
- id: idPrefix,
- index,
- item: field,
- open
- } = props;
- const fieldId = `${idPrefix}-field-${index}`;
- return jsxRuntime.jsx(propertiesPanel.CollapsibleEntry, {
- id: fieldId,
- element: element,
- entries: FieldInjection({
- element,
- field,
- idPrefix: fieldId
- }),
- label: field.get('name') || '<empty>',
- open: open
- });
- }
- function Fields(props) {
- const {
- id,
- element,
- listener
- } = props;
- const bpmnFactory = useService('bpmnFactory');
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const fields = listener.get('fields');
- function addField() {
- const field = createElement('camunda:Field', {}, listener, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: listener,
- properties: {
- fields: [...listener.get('fields'), field]
- }
- });
- }
- function removeField(field) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: listener,
- properties: {
- fields: minDash.without(listener.get('fields'), field)
- }
- });
- }
- return jsxRuntime.jsx(propertiesPanel.ListEntry, {
- id: id,
- element: element,
- label: translate('Field injection'),
- items: fields,
- component: Field,
- onAdd: addField,
- onRemove: removeField,
- compareFn: compareName,
- autoFocusEntry: true
- });
- }
- function addListenerFactory({
- bpmnFactory,
- commandStack,
- element,
- listenerGroup
- }) {
- return function (event) {
- event.stopPropagation();
- const listener = bpmnFactory.create(listenerGroup, {
- event: getDefaultEvent(element, listenerGroup),
- class: ''
- });
- const businessObject = getListenersContainer(element);
- addExtensionElements(element, businessObject, listener, bpmnFactory, commandStack);
- };
- }
- function addTaskListenerFactory(props) {
- return addListenerFactory({ ...props,
- listenerGroup: 'camunda:TaskListener'
- });
- }
- function addExecutionListenerFactory(props) {
- return addListenerFactory({ ...props,
- listenerGroup: 'camunda:ExecutionListener'
- });
- } // helper
- /**
- * Get a readable label for a listener.
- *
- * @param {ModdleElement} listener
- * @param {string => string} [translate]
- */
- function getListenerLabel(listener, translate = value => value) {
- const event = listener.get('event');
- const implementationType = getListenerType(listener);
- return `${translate(EVENT_TO_LABEL[event])}: ${translate(IMPLEMENTATION_TYPE_TO_LABEL[implementationType])}`;
- }
- function getListenerTypeOptions(translate) {
- return Object.entries(IMPLEMENTATION_TYPE_TO_LABEL).map(([value, label]) => ({
- value,
- label: translate(label)
- }));
- }
- function getListenerType(listener) {
- return getImplementationType(listener);
- }
- function getDefaultEvent(element, listenerGroup) {
- if (listenerGroup === 'camunda:TaskListener') return 'create';
- return ModelUtil.is(element, 'bpmn:SequenceFlow') ? 'take' : 'start';
- }
- function getDefaultImplementationProperties(type, bpmnFactory) {
- switch (type) {
- case 'class':
- return { ...DEFAULT_PROPS,
- 'class': ''
- };
- case 'expression':
- return { ...DEFAULT_PROPS,
- 'expression': ''
- };
- case 'delegateExpression':
- return { ...DEFAULT_PROPS,
- 'delegateExpression': ''
- };
- case 'script':
- return { ...DEFAULT_PROPS,
- 'script': bpmnFactory.create('camunda:Script')
- };
- }
- }
- function getDefaultEventTypeProperties(type, bpmnFactory) {
- switch (type) {
- case 'timeout':
- return { ...DEFAULT_EVENT_PROPS,
- eventDefinitions: [bpmnFactory.create('bpmn:TimerEventDefinition')],
- event: type
- };
- default:
- return { ...DEFAULT_EVENT_PROPS,
- event: type
- };
- }
- }
- function getPrefixedId(prefix, id) {
- return `${prefix}-${id}`;
- }
- function compareName(field, anotherField) {
- const [name = '', anotherName = ''] = [field.name, anotherField.name];
- return name === anotherName ? 0 : name > anotherName ? 1 : -1;
- }
- function getListenersContainer(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return businessObject.get('processRef') || businessObject;
- }
- function ProcessVariablesProps(props) {
- const {
- element
- } = props;
- if (!canHaveProcessVariables(element)) {
- return null;
- }
- const businessObject = ModelUtil.getBusinessObject(element);
- const rootElement = getRootElement(businessObject);
- const scope = getScope(element); // (1) fetch available process variables for given scope
- const variables = extractProcessVariables.getVariablesForScope(scope, rootElement);
- if (!variables.length) {
- return null;
- }
- const withNames = populateElementNames(sortByName(variables));
- const byScope = groupByScope(withNames);
- const multiScope = isMultiScope(byScope);
- let variableItems = []; // (2) get variables to display
- if (multiScope) {
- // (2a) multiple scopes, sub scopes first
- // assumption: variables extractor fetches parent variables first
- const reversed = minDash.map(reverse(minDash.keys(byScope)), scopeKey => byScope[scopeKey]);
- variableItems = minDash.flatten(reversed);
- } else {
- // (2b) single scope
- variableItems = withNames;
- }
- const items = variableItems.map((variable, index) => {
- const id = element.id + '-variable-' + index;
- return {
- id,
- label: variable.name,
- entries: [...ProcessVariableItem({
- idPrefix: id,
- multiScope,
- variable
- })]
- };
- });
- return {
- items,
- shouldSort: false
- };
- }
- function ProcessVariableItem(props) {
- const {
- idPrefix,
- multiScope,
- variable
- } = props;
- let entries = [];
- if (multiScope) {
- entries.push({
- id: idPrefix + '-scope',
- component: Scope,
- idPrefix,
- variable
- });
- }
- entries.push({
- id: idPrefix + '-createdIn',
- component: CreatedIn,
- idPrefix,
- variable
- });
- return entries;
- }
- function Scope(props) {
- const {
- idPrefix,
- variable
- } = props;
- const translate = useService('translate');
- const id = idPrefix + '-scope';
- return jsxRuntime.jsxs("div", {
- "data-entry-id": id,
- class: "bio-properties-panel-entry",
- children: [jsxRuntime.jsx("b", {
- style: "font-weight: bold",
- class: "bio-properties-panel-label",
- children: translate('Scope')
- }), jsxRuntime.jsx("label", {
- id: prefixId(id),
- class: "bio-properties-panel-label",
- children: variable.scope
- })]
- });
- }
- function CreatedIn(props) {
- const {
- idPrefix,
- variable
- } = props;
- const translate = useService('translate');
- const id = idPrefix + '-createdIn';
- const origin = variable.origin.join(', ');
- return jsxRuntime.jsxs("div", {
- "data-entry-id": id,
- class: "bio-properties-panel-entry",
- children: [jsxRuntime.jsx("b", {
- style: "font-weight: bold",
- class: "bio-properties-panel-label",
- children: translate('Created in')
- }), jsxRuntime.jsx("label", {
- id: prefixId(id),
- class: "bio-properties-panel-label",
- children: origin
- })]
- });
- } // helper //////////////////////
- function canHaveProcessVariables(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- return ModelingUtil.isAny(element, ['bpmn:Process', 'bpmn:SubProcess']) || ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef');
- }
- function getRootElement(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (ModelUtil.is(businessObject, 'bpmn:Participant')) {
- return businessObject.processRef;
- }
- if (ModelUtil.is(businessObject, 'bpmn:Process')) {
- return businessObject;
- }
- let parent = businessObject;
- while (parent.$parent && !ModelUtil.is(parent, 'bpmn:Process')) {
- parent = parent.$parent;
- }
- return parent;
- }
- function getScope(element) {
- const bo = ModelUtil.getBusinessObject(element);
- if (ModelUtil.is(element, 'bpmn:Participant')) {
- return bo.processRef.id;
- }
- return bo.id;
- }
- function sortByName(variables) {
- return minDash.sortBy(variables, function (variable) {
- return variable.name;
- });
- }
- function groupByScope(variables) {
- return minDash.groupBy(variables, 'scope');
- }
- function populateElementNames(variables) {
- minDash.forEach(variables, function (variable) {
- const names = minDash.map(variable.origin, function (element) {
- return element.name || element.id;
- });
- variable.origin = names;
- variable.scope = variable.scope.name || variable.scope.id;
- });
- return variables;
- }
- function isMultiScope(scopedVariables) {
- return minDash.keys(scopedVariables).length > 1;
- }
- function reverse(array) {
- return minDash.map(array, function (a, i) {
- return array[array.length - 1 - i];
- });
- }
- function prefixId(id) {
- return `bio-properties-panel-${id}`;
- }
- function ScriptTaskProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'bpmn:ScriptTask')) {
- return [];
- }
- const entries = [...ScriptProps({
- element
- })];
- entries.push({
- id: 'scriptResultVariable',
- component: ResultVariable,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- });
- return entries;
- }
- function ResultVariable(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:resultVariable');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:resultVariable': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'scriptResultVariable',
- label: translate('Result variable'),
- getValue,
- setValue,
- debounce
- });
- }
- function TasklistProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- const isEdited = node => {
- return node && !node.checked;
- };
- if (!ModelUtil.is(element, 'bpmn:Process') && !(ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
- return [];
- }
- return [{
- id: 'isStartableInTasklist',
- component: Startable,
- isEdited
- }];
- }
- function Startable(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const process = getProcess$1(element);
- const getValue = () => {
- return process.get('camunda:isStartableInTasklist');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- 'camunda:isStartableInTasklist': value
- }
- });
- };
- return propertiesPanel.CheckboxEntry({
- element,
- id: 'isStartableInTasklist',
- label: translate('Startable'),
- getValue,
- setValue
- });
- } // helper //////////////////
- function getProcess$1(element) {
- return ModelUtil.is(element, 'bpmn:Process') ? ModelUtil.getBusinessObject(element) : ModelUtil.getBusinessObject(element).get('processRef');
- }
- /**
- * Cf. https://docs.camunda.org/manual/latest/reference/bpmn20/tasks/user-task/
- */
- function UserAssignmentProps(props) {
- const {
- element
- } = props;
- if (!ModelUtil.is(element, 'camunda:Assignable')) {
- return [];
- }
- return [{
- id: 'assignee',
- component: Assignee,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'candidateGroups',
- component: CandidateGroups,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'candidateUsers',
- component: CandidateUsers,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'dueDate',
- component: DueDate,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'followUpDate',
- component: FollowUpDate,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }, {
- id: 'priority',
- component: Priority,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function Assignee(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:assignee');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:assignee': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'assignee',
- label: translate('Assignee'),
- getValue,
- setValue,
- debounce
- });
- }
- function CandidateUsers(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:candidateUsers');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:candidateUsers': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'candidateUsers',
- label: translate('Candidate users'),
- getValue,
- setValue,
- debounce
- });
- }
- function CandidateGroups(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:candidateGroups');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:candidateGroups': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'candidateGroups',
- label: translate('Candidate groups'),
- getValue,
- setValue,
- debounce
- });
- }
- function DueDate(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:dueDate');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:dueDate': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'dueDate',
- label: translate('Due date'),
- description: translate('The due date as an EL expression (e.g. ${someDate}) or an ISO date (e.g. 2015-06-26T09:54:00).'),
- getValue,
- setValue,
- debounce
- });
- }
- function FollowUpDate(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:followUpDate');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:followUpDate': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'followUpDate',
- label: translate('Follow up date'),
- description: translate('The follow up date as an EL expression (e.g. ${someDate}) or an ' + 'ISO date (e.g. 2015-06-26T09:54:00).'),
- getValue,
- setValue,
- debounce
- });
- }
- function Priority(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const businessObject = ModelUtil.getBusinessObject(element);
- const getValue = () => {
- return businessObject.get('camunda:priority');
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- 'camunda:priority': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'priority',
- label: translate('Priority'),
- getValue,
- setValue,
- debounce
- });
- }
- function VersionTagProps(props) {
- const {
- element
- } = props;
- const businessObject = ModelUtil.getBusinessObject(element);
- if (!ModelUtil.is(element, 'bpmn:Process') && !(ModelUtil.is(element, 'bpmn:Participant') && businessObject.get('processRef'))) {
- return [];
- }
- return [{
- id: 'versionTag',
- component: VersionTag,
- isEdited: propertiesPanel.isTextFieldEntryEdited
- }];
- }
- function VersionTag(props) {
- const {
- element
- } = props;
- const commandStack = useService('commandStack');
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const process = getProcess(element);
- const getValue = () => {
- return process.get('camunda:versionTag') || '';
- };
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: process,
- properties: {
- 'camunda:versionTag': value
- }
- });
- };
- return propertiesPanel.TextFieldEntry({
- element,
- id: 'versionTag',
- label: translate('Version tag'),
- getValue,
- setValue,
- debounce
- });
- } // helper //////////////////
- function getProcess(element) {
- return ModelUtil.is(element, 'bpmn:Process') ? ModelUtil.getBusinessObject(element) : ModelUtil.getBusinessObject(element).get('processRef');
- }
- const LOW_PRIORITY = 500;
- 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];
- /**
- * Provides `camunda` namespace properties.
- *
- * @example
- * ```javascript
- * import BpmnModeler from 'bpmn-js/lib/Modeler';
- * import {
- * BpmnPropertiesPanelModule,
- * BpmnPropertiesProviderModule,
- * CamundaPlatformPropertiesProviderModule
- * } from 'bpmn-js-properties-panel';
- *
- * const modeler = new BpmnModeler({
- * container: '#canvas',
- * propertiesPanel: {
- * parent: '#properties'
- * },
- * additionalModules: [
- * BpmnPropertiesPanelModule,
- * BpmnPropertiesProviderModule,
- * CamundaPlatformPropertiesProviderModule
- * ]
- * });
- * ```
- */
- class CamundaPlatformPropertiesProvider {
- constructor(propertiesPanel, injector) {
- propertiesPanel.registerProvider(LOW_PRIORITY, this);
- this._injector = injector;
- }
- getGroups(element) {
- return groups => {
- // (1) add Camunda Platform specific groups
- groups = groups.concat(this._getGroups(element)); // (2) update existing groups with Camunda Platform specific properties
- updateGeneralGroup(groups, element);
- updateErrorGroup(groups, element);
- updateEscalationGroup(groups, element);
- updateMultiInstanceGroup(groups, element); // (3) move groups given specific priorities
- moveImplementationGroup(groups);
- return groups;
- };
- }
- _getGroups(element) {
- const groups = CAMUNDA_PLATFORM_GROUPS.map(createGroup => createGroup(element, this._injector)); // contract: if a group returns null, it should not be displayed at all
- return groups.filter(group => group !== null);
- }
- }
- CamundaPlatformPropertiesProvider.$inject = ['propertiesPanel', 'injector'];
- /**
- * This ensures the <Implementation> group always locates after <Documentation>
- */
- function moveImplementationGroup(groups) {
- const documentationGroupIdx = findGroupIndex(groups, 'documentation');
- if (documentationGroupIdx < 0) {
- return;
- }
- return moveGroup(groups, 'CamundaPlatform__Implementation', documentationGroupIdx + 1);
- }
- function updateGeneralGroup(groups, element) {
- const generalGroup = findGroup(groups, 'general');
- if (!generalGroup) {
- return;
- }
- const {
- entries
- } = generalGroup; // (1) add version tag before executable (if existing)
- const executableEntry = minDash.findIndex(entries, entry => entry.id === 'isExecutable');
- const insertIndex = executableEntry >= 0 ? executableEntry : entries.length;
- entries.splice(insertIndex, 0, ...VersionTagProps({
- element
- }));
- }
- function updateErrorGroup(groups, element) {
- const errorGroup = findGroup(groups, 'error');
- if (!errorGroup) {
- return;
- }
- const {
- entries
- } = errorGroup;
- ErrorProps({
- element,
- entries
- });
- }
- function updateMultiInstanceGroup(groups, element) {
- const multiInstanceGroup = findGroup(groups, 'multiInstance');
- if (!multiInstanceGroup) {
- return;
- }
- const {
- entries
- } = multiInstanceGroup;
- MultiInstanceProps({
- element,
- entries
- });
- }
- function updateEscalationGroup(groups, element) {
- const escalationGroup = findGroup(groups, 'escalation');
- if (!escalationGroup) {
- return;
- }
- const {
- entries
- } = escalationGroup;
- EscalationProps({
- element,
- entries
- });
- }
- function ImplementationGroup(element) {
- const group = {
- label: 'Implementation',
- id: 'CamundaPlatform__Implementation',
- component: propertiesPanel.Group,
- entries: [...ImplementationProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ErrorsGroup(element, injector) {
- const group = {
- label: 'Errors',
- id: 'CamundaPlatform__Errors',
- component: propertiesPanel.ListGroup,
- ...ErrorsProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function UserAssignmentGroup(element) {
- const group = {
- label: 'User assignment',
- id: 'CamundaPlatform__UserAssignment',
- component: propertiesPanel.Group,
- entries: [...UserAssignmentProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ScriptGroup(element) {
- const group = {
- label: 'Script',
- id: 'CamundaPlatform__Script',
- component: propertiesPanel.Group,
- entries: [...ScriptTaskProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function CallActivityGroup(element) {
- const group = {
- label: 'Called element',
- id: 'CamundaPlatform__CallActivity',
- component: propertiesPanel.Group,
- entries: [...CallActivityProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ConditionGroup(element) {
- const group = {
- label: 'Condition',
- id: 'CamundaPlatform__Condition',
- component: propertiesPanel.Group,
- entries: [...ConditionProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function StartInitiatorGroup(element) {
- const group = {
- label: 'Start initiator',
- id: 'CamundaPlatform__StartInitiator',
- component: propertiesPanel.Group,
- entries: [...InitiatorProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ExternalTaskGroup(element) {
- const group = {
- label: 'External task',
- id: 'CamundaPlatform__ExternalTask',
- component: propertiesPanel.Group,
- entries: [...ExternalTaskPriorityProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function AsynchronousContinuationsGroup(element) {
- const group = {
- label: 'Asynchronous continuations',
- id: 'CamundaPlatform__AsynchronousContinuations',
- component: propertiesPanel.Group,
- entries: [...AsynchronousContinuationsProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function JobExecutionGroup(element) {
- const group = {
- label: 'Job execution',
- id: 'CamundaPlatform__JobExecution',
- component: propertiesPanel.Group,
- entries: [...JobExecutionProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function CandidateStarterGroup(element) {
- const group = {
- label: 'Candidate starter',
- id: 'CamundaPlatform__CandidateStarter',
- component: propertiesPanel.Group,
- entries: [...CandidateStarterProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function FieldInjectionGroup(element, injector) {
- const group = {
- label: 'Field injections',
- id: 'CamundaPlatform__FieldInjection',
- component: propertiesPanel.ListGroup,
- ...FieldInjectionProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function HistoryCleanupGroup(element) {
- const group = {
- label: 'History cleanup',
- id: 'CamundaPlatform__HistoryCleanup',
- component: propertiesPanel.Group,
- entries: [...HistoryCleanupProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function TasklistGroup(element) {
- const group = {
- label: 'Tasklist',
- id: 'CamundaPlatform__Tasklist',
- component: propertiesPanel.Group,
- entries: [...TasklistProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function InMappingGroup(element, injector) {
- const group = {
- label: 'In mappings',
- id: 'CamundaPlatform__InMapping',
- component: propertiesPanel.ListGroup,
- ...InMappingProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function InMappingPropagationGroup(element) {
- const group = {
- label: 'In mapping propagation',
- id: 'CamundaPlatform__InMappingPropagation',
- component: propertiesPanel.Group,
- entries: [...InMappingPropagationProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function OutMappingGroup(element, injector) {
- const group = {
- label: 'Out mappings',
- id: 'CamundaPlatform__OutMapping',
- component: propertiesPanel.ListGroup,
- ...OutMappingProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function OutMappingPropagationGroup(element) {
- const group = {
- label: 'Out mapping propagation',
- id: 'CamundaPlatform__OutMappingPropagation',
- component: propertiesPanel.Group,
- entries: [...OutMappingPropagationProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ProcessVariablesGroup(element, injector) {
- const group = {
- label: 'Process variables',
- id: 'CamundaPlatform__ProcessVariables',
- component: propertiesPanel.ListGroup,
- ...ProcessVariablesProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function FormDataGroup(element, injector) {
- const group = {
- label: 'Form fields',
- id: 'CamundaPlatform__FormData',
- component: propertiesPanel.ListGroup,
- ...FormDataProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function BusinessKeyGroup(element) {
- const group = {
- label: 'Business key',
- id: 'CamundaPlatform__BusinessKey',
- component: propertiesPanel.Group,
- entries: [...BusinessKeyProps$1({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function FormGroup(element) {
- const group = {
- label: 'Forms',
- id: 'CamundaPlatform__Form',
- component: propertiesPanel.Group,
- entries: [...FormProps({
- element
- })]
- };
- if (group.entries.length) {
- return group;
- }
- return null;
- }
- function ExecutionListenerGroup(element, injector) {
- const group = {
- label: 'Execution listeners',
- id: 'CamundaPlatform__ExecutionListener',
- component: propertiesPanel.ListGroup,
- ...ExecutionListenerProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function TaskListenerGroup(element, injector) {
- const group = {
- label: 'Task listeners',
- id: 'CamundaPlatform__TaskListener',
- component: propertiesPanel.ListGroup,
- ...TaskListenerProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function InputGroup(element, injector) {
- const group = {
- label: 'Inputs',
- id: 'CamundaPlatform__Input',
- component: propertiesPanel.ListGroup,
- ...InputProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function OutputGroup(element, injector) {
- const group = {
- label: 'Outputs',
- id: 'CamundaPlatform__Output',
- component: propertiesPanel.ListGroup,
- ...OutputProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function ConnectorInputGroup(element, injector) {
- const group = {
- label: 'Connector inputs',
- id: 'CamundaPlatform__ConnectorInput',
- component: propertiesPanel.ListGroup,
- ...ConnectorInputProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function ConnectorOutputGroup(element, injector) {
- const group = {
- label: 'Connector outputs',
- id: 'CamundaPlatform__ConnectorOutput',
- component: propertiesPanel.ListGroup,
- ...ConnectorOutputProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- }
- function ExtensionPropertiesGroup(element, injector) {
- const group = {
- label: 'Extension properties',
- id: 'CamundaPlatform__ExtensionProperties',
- component: propertiesPanel.ListGroup,
- ...ExtensionPropertiesProps({
- element,
- injector
- })
- };
- if (group.items) {
- return group;
- }
- return null;
- } // helper /////////////////////
- function findGroup(groups, id) {
- return groups.find(g => g.id === id);
- }
- function findGroupIndex(groups, id) {
- return minDash.findIndex(groups, g => g.id === id);
- }
- function moveGroup(groups, id, position) {
- const groupIndex = findGroupIndex(groups, id);
- if (position < 0 || groupIndex < 0) {
- return;
- }
- return arrayMove.mutate(groups, groupIndex, position);
- }
- var camundaPlatformPropertiesProviderModule = {
- __init__: ['camundaPlatformPropertiesProvider'],
- camundaPlatformPropertiesProvider: ['type', CamundaPlatformPropertiesProvider]
- };
- const PROPERTY_TYPE$1 = 'property';
- const ZEBBE_INPUT_TYPE = 'zeebe:input';
- const ZEEBE_OUTPUT_TYPE = 'zeebe:output';
- const ZEEBE_TASK_DEFINITION_TYPE_TYPE = 'zeebe:taskDefinition:type';
- const ZEEBE_TASK_HEADER_TYPE = 'zeebe:taskHeader';
- const EXTENSION_BINDING_TYPES$1 = [ZEBBE_INPUT_TYPE, ZEEBE_OUTPUT_TYPE, ZEEBE_TASK_DEFINITION_TYPE_TYPE, ZEEBE_TASK_HEADER_TYPE];
- const TASK_DEFINITION_TYPES = [ZEEBE_TASK_DEFINITION_TYPE_TYPE];
- const IO_BINDING_TYPES$1 = [ZEBBE_INPUT_TYPE, ZEEBE_OUTPUT_TYPE];
- /**
- * The BPMN 2.0 extension attribute name under
- * which the element template ID is stored.
- *
- * @type {String}
- */
- const TEMPLATE_ID_ATTR$1 = 'zeebe:modelerTemplate';
- /**
- * The BPMN 2.0 extension attribute name under
- * which the element template version is stored.
- *
- * @type {String}
- */
- const TEMPLATE_VERSION_ATTR$1 = 'zeebe:modelerTemplateVersion';
- /**
- * Get template id for a given diagram element.
- *
- * @param {djs.model.Base} element
- *
- * @return {String}
- */
- function getTemplateId$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject) {
- return businessObject.get(TEMPLATE_ID_ATTR$1);
- }
- }
- /**
- * Get template version for a given diagram element.
- *
- * @param {djs.model.Base} element
- *
- * @return {String}
- */
- function getTemplateVersion$1(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject) {
- return businessObject.get(TEMPLATE_VERSION_ATTR$1);
- }
- }
- /**
- * Find extension with given type in
- * BPMN element, diagram element or ExtensionElement.
- *
- * @param {ModdleElement|djs.model.Base} element
- * @param {String} type
- *
- * @return {ModdleElement} the extension
- */
- function findExtension$1(element, type) {
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements;
- if (ModelUtil.is(businessObject, 'bpmn:ExtensionElements')) {
- extensionElements = businessObject;
- } else {
- extensionElements = businessObject.get('extensionElements');
- }
- if (!extensionElements) {
- return null;
- }
- return extensionElements.get('values').find(value => {
- return ModelUtil.is(value, type);
- });
- }
- function findInputParameter$1(ioMapping, binding) {
- const parameters = ioMapping.get('inputParameters');
- return parameters.find(parameter => {
- return parameter.target === binding.name;
- });
- }
- function findOutputParameter$1(ioMapping, binding) {
- const parameters = ioMapping.get('outputParameters');
- return parameters.find(parameter => {
- return parameter.source === binding.source;
- });
- }
- function findTaskHeader(taskHeaders, binding) {
- const headers = taskHeaders.get('values');
- return headers.find(header => {
- return header.key === binding.key;
- });
- }
- /**
- * Create an input parameter representing the given
- * binding and value.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createInputParameter$1(binding, value, bpmnFactory) {
- const {
- name
- } = binding;
- return bpmnFactory.create('zeebe:Input', {
- source: value,
- target: name
- });
- }
- /**
- * Create an output parameter representing the given
- * binding and value.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createOutputParameter$1(binding, value, bpmnFactory) {
- const {
- source
- } = binding;
- return bpmnFactory.create('zeebe:Output', {
- source,
- target: value
- });
- }
- /**
- * Create a task header representing the given
- * binding and value.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createTaskHeader(binding, value, bpmnFactory) {
- const {
- key
- } = binding;
- return bpmnFactory.create('zeebe:Header', {
- key,
- value
- });
- }
- /**
- * Create a task definition representing the given value.
- *
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createTaskDefinitionWithType(value, bpmnFactory) {
- return bpmnFactory.create('zeebe:TaskDefinition', {
- type: value
- });
- }
- /**
- * Retrieves whether an element should be updated for a given property.
- *
- * That matches once
- * a) the property value is not empty, or
- * b) the property is not optional
- *
- * @param {String} value
- * @param {Object} property
- * @returns {Boolean}
- */
- function shouldUpdate(value, property) {
- const {
- optional
- } = property;
- return value || !optional;
- }
- /**
- * Gets or, in case not existent, creates extension element for given element.
- *
- * @param {djs.model.Base} element
- * @param {String} type
- * @param {BpmnFactory} bpmnFactory
- * @returns {ModdleElement}
- */
- function ensureExtension(element, type, bpmnFactory) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const extensionElements = businessObject.get('extensionElements');
- let extension = findExtension$1(extensionElements, type);
- if (!extension) {
- extension = bpmnFactory.create(type);
- extension.$parent = extensionElements;
- extensionElements.get('values').push(extension);
- }
- return extension;
- }
- const PRIMITIVE_MODDLE_TYPES$1 = ['Boolean', 'Integer', 'String'];
- function getPropertyValue$1(element, property, scope) {
- let businessObject = ModelUtil.getBusinessObject(element);
- const defaultValue = '';
- const {
- binding
- } = property;
- const {
- name,
- type
- } = binding; // property
- if (type === 'property') {
- const value = businessObject.get(name);
- if (!minDash.isUndefined(value)) {
- return value;
- }
- return defaultValue;
- } // zeebe:taskDefinition
- if (TASK_DEFINITION_TYPES.includes(type)) {
- const taskDefinition = findExtension$1(businessObject, 'zeebe:TaskDefinition');
- if (taskDefinition) {
- if (type === ZEEBE_TASK_DEFINITION_TYPE_TYPE) {
- return taskDefinition.get('type');
- }
- }
- return defaultValue;
- }
- if (IO_BINDING_TYPES$1.includes(type)) {
- const ioMapping = findExtension$1(businessObject, 'zeebe:IoMapping');
- if (!ioMapping) {
- return defaultValue;
- } // zeebe:Input
- if (type === ZEBBE_INPUT_TYPE) {
- const inputParameter = findInputParameter$1(ioMapping, binding);
- if (inputParameter) {
- return inputParameter.get('source');
- }
- return defaultValue;
- } // zeebe:Output
- if (type === ZEEBE_OUTPUT_TYPE) {
- const outputParameter = findOutputParameter$1(ioMapping, binding);
- if (outputParameter) {
- return outputParameter.get('target');
- }
- return defaultValue;
- }
- } // zeebe:taskHeaders
- if (type === ZEEBE_TASK_HEADER_TYPE) {
- const taskHeaders = findExtension$1(businessObject, 'zeebe:TaskHeaders');
- if (!taskHeaders) {
- return defaultValue;
- }
- const header = findTaskHeader(taskHeaders, binding);
- if (header) {
- return header.get('value');
- }
- return defaultValue;
- } // should never throw as templates are validated beforehand
- throw unknownBindingError$1(element, property);
- }
- function setPropertyValue(bpmnFactory, commandStack, element, property, value) {
- let businessObject = ModelUtil.getBusinessObject(element);
- const {
- binding
- } = property;
- const {
- name,
- type
- } = binding;
- let extensionElements;
- let propertyValue;
- const commands = [];
- const context = {
- element,
- property
- }; // ensure extension elements
- if (EXTENSION_BINDING_TYPES$1.includes(type)) {
- extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', null, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- }
- } // property
- if (type === 'property') {
- const propertyDescriptor = businessObject.$descriptor.propertiesByName[name]; // if property not created yet
- if (!propertyDescriptor) {
- propertyValue = value;
- } else {
- const {
- type: propertyType
- } = propertyDescriptor; // do not override non-primitive types
- if (!PRIMITIVE_MODDLE_TYPES$1.includes(propertyType)) {
- throw new Error(`cannot set property of type <${propertyType}>`);
- }
- if (propertyType === 'Boolean') {
- propertyValue = !!value;
- } else if (propertyType === 'Integer') {
- propertyValue = parseInt(value, 10);
- if (isNaN(propertyValue)) {
- // do not set NaN value
- propertyValue = undefined;
- }
- } else {
- // make sure we don't remove the property
- propertyValue = value || '';
- }
- }
- if (!minDash.isUndefined(propertyValue)) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: businessObject,
- properties: {
- [name]: propertyValue
- }
- }
- });
- }
- } // zeebe:taskDefinition
- if (TASK_DEFINITION_TYPES.includes(type)) {
- const oldTaskDefinition = findExtension$1(extensionElements, 'zeebe:TaskDefinition');
- let newTaskDefinition;
- if (type === ZEEBE_TASK_DEFINITION_TYPE_TYPE) {
- newTaskDefinition = createTaskDefinitionWithType(value, bpmnFactory);
- } else {
- return unknownBindingError$1(element, property);
- }
- const values = extensionElements.get('values').filter(value => value !== oldTaskDefinition);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: [...values, newTaskDefinition]
- }
- }
- });
- }
- if (IO_BINDING_TYPES$1.includes(type)) {
- let ioMapping = findExtension$1(extensionElements, 'zeebe:IoMapping');
- if (!ioMapping) {
- ioMapping = createElement('zeebe:IoMapping', null, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), ioMapping]
- }
- }
- });
- } // zeebe:Input
- if (type === ZEBBE_INPUT_TYPE) {
- const oldZeebeInputParameter = findInputParameter$1(ioMapping, binding);
- const values = ioMapping.get('inputParameters').filter(value => value !== oldZeebeInputParameter); // do not persist empty parameters when configured as <optional>
- if (shouldUpdate(value, property)) {
- const newZeebeInputParameter = createInputParameter$1(binding, value, bpmnFactory);
- values.push(newZeebeInputParameter);
- }
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: ioMapping,
- properties: {
- inputParameters: [...values]
- }
- }
- });
- } // zeebe:Output
- if (type === ZEEBE_OUTPUT_TYPE) {
- const oldZeebeOutputParameter = findOutputParameter$1(ioMapping, binding);
- const values = ioMapping.get('outputParameters').filter(value => value !== oldZeebeOutputParameter); // do not persist empty parameters when configured as <optional>
- if (shouldUpdate(value, property)) {
- const newZeebeOutputParameter = createOutputParameter$1(binding, value, bpmnFactory);
- values.push(newZeebeOutputParameter);
- }
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: ioMapping,
- properties: {
- 'outputParameters': [...values]
- }
- }
- });
- }
- } // zeebe:taskHeaders
- if (type === ZEEBE_TASK_HEADER_TYPE) {
- let taskHeaders = findExtension$1(extensionElements, 'zeebe:TaskHeaders');
- if (!taskHeaders) {
- taskHeaders = createElement('zeebe:TaskHeaders', null, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), taskHeaders]
- }
- }
- });
- }
- const oldTaskHeader = findTaskHeader(taskHeaders, binding);
- const newTaskHeader = createTaskHeader(binding, value, bpmnFactory);
- const values = taskHeaders.get('values').filter(value => value !== oldTaskHeader);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: taskHeaders,
- properties: {
- values: [...values, newTaskHeader]
- }
- }
- });
- }
- if (commands.length) {
- commandStack.execute('properties-panel.multi-command-executor', commands);
- return;
- } // should never throw as templates are validated beforehand
- throw unknownBindingError$1(element, property);
- }
- function unsetProperty(commandStack, element, property) {
- let businessObject = ModelUtil.getBusinessObject(element);
- const {
- binding
- } = property;
- const {
- type
- } = binding;
- let extensionElements;
- const commands = [];
- const context = {
- element,
- property
- };
- if (EXTENSION_BINDING_TYPES$1.includes(type)) {
- extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) return;
- } // zeebe:taskDefinition
- if (TASK_DEFINITION_TYPES.includes(type)) {
- const oldTaskDefinition = findExtension$1(extensionElements, 'zeebe:TaskDefinition');
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), oldTaskDefinition)
- }
- }
- });
- } // zeebe:IoMapping
- if (IO_BINDING_TYPES$1.includes(type)) {
- let ioMapping = findExtension$1(extensionElements, 'zeebe:IoMapping');
- if (!ioMapping) return; // zeebe:Input
- if (type === ZEBBE_INPUT_TYPE) {
- const oldZeebeInputParameter = findInputParameter$1(ioMapping, binding);
- const values = ioMapping.get('inputParameters').filter(value => value !== oldZeebeInputParameter);
- if (ioMapping.get('outputParameters').length == 0 && values.length == 0) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), ioMapping)
- }
- }
- });
- } else {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: ioMapping,
- properties: {
- inputParameters: [...values]
- }
- }
- });
- }
- } // zeebe:Output
- if (type === ZEEBE_OUTPUT_TYPE) {
- const oldZeebeOutputParameter = findOutputParameter$1(ioMapping, binding);
- const values = ioMapping.get('outputParameters').filter(value => value !== oldZeebeOutputParameter);
- if (ioMapping.get('inputParameters').length == 0 && values.length == 0) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), ioMapping)
- }
- }
- });
- }
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: ioMapping,
- properties: {
- 'outputParameters': [...values]
- }
- }
- });
- }
- } // zeebe:taskHeaders
- if (type === ZEEBE_TASK_HEADER_TYPE) {
- let taskHeaders = findExtension$1(extensionElements, 'zeebe:TaskHeaders');
- if (!taskHeaders) return;
- const oldTaskHeader = findTaskHeader(taskHeaders, binding);
- const values = taskHeaders.get('values').filter(value => value !== oldTaskHeader);
- if (values.length === 0) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), taskHeaders)
- }
- }
- });
- } else {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: { ...context,
- moddleElement: taskHeaders,
- properties: {
- values: [...values]
- }
- }
- });
- }
- }
- if (commands.length) {
- commandStack.execute('properties-panel.multi-command-executor', commands);
- return;
- }
- } // helpers
- function unknownBindingError$1(element, property) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const id = businessObject.get('id');
- const {
- binding
- } = property;
- const {
- type
- } = binding;
- return new Error(`unknown binding <${type}> for element <${id}>, this should never happen`);
- }
- /**
- * Based on conditions, remove properties from the template.
- */
- function applyConditions(element, elementTemplate) {
- const {
- properties
- } = elementTemplate;
- const filteredProperties = properties.filter(property => {
- return isConditionMet(element, properties, property);
- });
- return { ...elementTemplate,
- properties: filteredProperties
- };
- }
- function isConditionMet(element, properties, property) {
- const {
- condition
- } = property; // If no condition is defined, return true.
- if (!condition) {
- return true;
- }
- return isSimpleConditionMet(element, properties, condition);
- }
- function isSimpleConditionMet(element, properties, condition) {
- const {
- property,
- equals,
- oneOf
- } = condition;
- const propertyValue = getValue(element, properties, property);
- if (equals) {
- return propertyValue === equals;
- }
- if (oneOf) {
- return oneOf.includes(propertyValue);
- }
- return false;
- }
- function getValue(element, properties, propertyId) {
- const property = properties.find(p => p.id === propertyId);
- if (!property) {
- return;
- }
- return getPropertyValue$1(element, property);
- }
- /**
- * Applies an element template to an element. Sets `zeebe:modelerTemplate` and
- * `zeebe:modelerTemplateVersion`.
- */
- class ChangeElementTemplateHandler$1 {
- constructor(bpmnFactory, bpmnReplace, commandStack, modeling) {
- this._bpmnFactory = bpmnFactory;
- this._bpmnReplace = bpmnReplace;
- this._commandStack = commandStack;
- this._modeling = modeling;
- }
- /**
- * Change an element's template and update its properties as specified in `newTemplate`. Specify
- * `oldTemplate` to update from one template to another. If `newTemplate` isn't specified the
- * `zeebe:modelerTemplate` and `zeebe:modelerTemplateVersion` properties will be removed from
- * the element.
- *
- * @param {Object} context
- * @param {Object} context.element
- * @param {Object} [context.oldTemplate]
- * @param {Object} [context.newTemplate]
- */
- preExecute(context) {
- let newTemplate = context.newTemplate,
- oldTemplate = context.oldTemplate;
- let element = context.element; // update zeebe:modelerTemplate attribute
- this._updateZeebeModelerTemplate(element, newTemplate); // update zeebe:modelerTemplateIcon
- this._updateZeebeModelerTemplateIcon(element, newTemplate);
- if (newTemplate) {
- // do not apply properties that don't meet conditions
- newTemplate = applyConditions(element, newTemplate); // update task type
- element = context.element = this._updateTaskType(element, newTemplate); // update properties
- this._updateProperties(element, oldTemplate, newTemplate); // update zeebe:TaskDefinition
- this._updateZeebeTaskDefinition(element, oldTemplate, newTemplate); // update zeebe:Input and zeebe:Output properties
- this._updateZeebeInputOutputParameterProperties(element, oldTemplate, newTemplate); // update zeebe:Header properties
- this._updateZeebeTaskHeaderProperties(element, oldTemplate, newTemplate);
- }
- }
- _getOrCreateExtensionElements(element) {
- const bpmnFactory = this._bpmnFactory,
- modeling = this._modeling;
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = bpmnFactory.create('bpmn:ExtensionElements', {
- values: []
- });
- extensionElements.$parent = businessObject;
- modeling.updateProperties(element, {
- extensionElements: extensionElements
- });
- }
- return extensionElements;
- }
- _updateZeebeModelerTemplate(element, newTemplate) {
- const modeling = this._modeling;
- modeling.updateProperties(element, {
- 'zeebe:modelerTemplate': newTemplate && newTemplate.id,
- 'zeebe:modelerTemplateVersion': newTemplate && newTemplate.version
- });
- }
- _updateZeebeModelerTemplateIcon(element, newTemplate) {
- const modeling = this._modeling;
- const icon = newTemplate && newTemplate.icon;
- modeling.updateProperties(element, {
- 'zeebe:modelerTemplateIcon': icon && icon.contents
- });
- }
- _updateProperties(element, oldTemplate, newTemplate) {
- const commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'property';
- });
- if (!newProperties.length) {
- return;
- }
- const businessObject = ModelUtil.getBusinessObject(element);
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty$1(oldTemplate, newProperty),
- newBinding = newProperty.binding,
- newBindingName = newBinding.name,
- newPropertyValue = newProperty.value,
- changedElement = businessObject;
- let properties = {};
- if (shouldKeepValue(changedElement, oldProperty, newProperty)) {
- return;
- }
- properties[newBindingName] = newPropertyValue;
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties
- });
- });
- }
- /**
- * Update `zeebe:TaskDefinition` properties of specified business object. This
- * can only exist in `bpmn:ExtensionElements`.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateZeebeTaskDefinition(element, oldTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'zeebe:taskDefinition:type';
- }); // (1) do not override old task definition if no new properties specified
- if (!newProperties.length) {
- return;
- }
- const businessObject = this._getOrCreateExtensionElements(element);
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty$1(oldTemplate, newProperty),
- oldBinding = oldProperty && oldProperty.binding,
- oldBindingType = oldBinding && oldBinding.type,
- oldTaskDefinition = findBusinessObject(businessObject, newProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding,
- newBindingType = newBinding.type; // (2) update old task definition
- if (oldTaskDefinition) {
- if (!shouldKeepValue(oldTaskDefinition, oldProperty, newProperty)) {
- // TODO(pinussilvestrus): for now we only support <type>
- // this needs to be adjusted once we support more
- let properties = {};
- if (oldBindingType === 'zeebe:taskDefinition:type' || !oldBindingType) {
- properties = {
- type: newPropertyValue
- };
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldTaskDefinition,
- properties
- });
- }
- } // (3) add new task definition
- else {
- let newTaskDefinition; // TODO(pinussilvestrus): for now we only support <type>
- // this needs to be adjusted once we support more
- if (newBindingType === 'zeebe:taskDefinition:type') {
- newTaskDefinition = createTaskDefinitionWithType(newPropertyValue, bpmnFactory);
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: [...businessObject.get('values'), newTaskDefinition]
- }
- });
- }
- });
- }
- /**
- * Update `zeebe:Input` and `zeebe:Output` properties of specified business
- * object. Both can only exist in `zeebe:ioMapping` which can exist in `bpmn:ExtensionElements`.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateZeebeInputOutputParameterProperties(element, oldTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'zeebe:input' || newBindingType === 'zeebe:output';
- });
- const businessObject = this._getOrCreateExtensionElements(element);
- let ioMapping = findExtension$1(businessObject, 'zeebe:IoMapping'); // (1) remove old mappings if no new specified
- if (!newProperties.length) {
- if (!ioMapping) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: minDash.without(businessObject.get('values'), ioMapping)
- }
- });
- }
- if (!ioMapping) {
- ioMapping = bpmnFactory.create('zeebe:IoMapping');
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: [...businessObject.get('values'), ioMapping]
- }
- });
- }
- const oldInputs = ioMapping.get('zeebe:inputParameters') ? ioMapping.get('zeebe:inputParameters').slice() : [];
- const oldOutputs = ioMapping.get('zeebe:outputParameters') ? ioMapping.get('zeebe:outputParameters').slice() : [];
- let propertyName;
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty$1(oldTemplate, newProperty),
- inputOrOutput = findBusinessObject(businessObject, newProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- let newInputOrOutput, properties; // (2) update old inputs and outputs
- if (inputOrOutput) {
- // (2a) exclude old inputs and outputs from cleanup, unless
- // a) optional and has empty value, and
- // b) not changed
- if (shouldUpdate(newPropertyValue, newProperty) || shouldKeepValue(inputOrOutput, oldProperty, newProperty)) {
- if (ModelUtil.is(inputOrOutput, 'zeebe:Input')) {
- remove$1(oldInputs, inputOrOutput);
- } else {
- remove$1(oldOutputs, inputOrOutput);
- }
- } // (2a) do updates (unless changed)
- if (!shouldKeepValue(inputOrOutput, oldProperty, newProperty)) {
- if (ModelUtil.is(inputOrOutput, 'zeebe:Input')) {
- properties = {
- source: newPropertyValue
- };
- } else {
- properties = {
- target: newPropertyValue
- };
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOrOutput,
- properties
- });
- }
- } // (3) add new inputs and outputs (unless optional)
- else if (shouldUpdate(newPropertyValue, newProperty)) {
- if (newBindingType === 'zeebe:input') {
- propertyName = 'inputParameters';
- newInputOrOutput = createInputParameter$1(newBinding, newPropertyValue, bpmnFactory);
- } else {
- propertyName = 'outputParameters';
- newInputOrOutput = createOutputParameter$1(newBinding, newPropertyValue, bpmnFactory);
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: ioMapping,
- properties: {
- [propertyName]: [...ioMapping.get(propertyName), newInputOrOutput]
- }
- });
- }
- }); // (4) remove old inputs and outputs
- if (oldInputs.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: ioMapping,
- properties: {
- inputParameters: minDash.without(ioMapping.get('inputParameters'), inputParameter => oldInputs.includes(inputParameter))
- }
- });
- }
- if (oldOutputs.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: ioMapping,
- properties: {
- outputParameters: minDash.without(ioMapping.get('outputParameters'), outputParameter => oldOutputs.includes(outputParameter))
- }
- });
- }
- }
- /**
- * Update `zeebe:Header` properties of specified business
- * object. Those can only exist in `zeebe:taskHeaders` which can exist in `bpmn:ExtensionElements`.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateZeebeTaskHeaderProperties(element, oldTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'zeebe:taskHeader';
- });
- const businessObject = this._getOrCreateExtensionElements(element);
- let taskHeaders = findExtension$1(businessObject, 'zeebe:TaskHeaders'); // (1) remove old headers if no new specified
- if (!newProperties.length) {
- if (!taskHeaders) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: minDash.without(businessObject.get('values'), taskHeaders)
- }
- });
- }
- if (!taskHeaders) {
- taskHeaders = bpmnFactory.create('zeebe:TaskHeaders');
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: [...businessObject.get('values'), taskHeaders]
- }
- });
- }
- const oldHeaders = taskHeaders.get('zeebe:values') ? taskHeaders.get('zeebe:values').slice() : [];
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty$1(oldTemplate, newProperty),
- oldHeader = findBusinessObject(businessObject, newProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding; // (2) update old headers
- if (oldHeader) {
- if (!shouldKeepValue(oldHeader, oldProperty, newProperty)) {
- const properties = {
- value: newPropertyValue
- };
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldHeader,
- properties
- });
- }
- remove$1(oldHeaders, oldHeader);
- } // (3) add new headers
- else {
- const newHeader = createTaskHeader(newBinding, newPropertyValue, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: taskHeaders,
- properties: {
- values: [...taskHeaders.get('values'), newHeader]
- }
- });
- }
- }); // (4) remove old headers
- if (oldHeaders.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: taskHeaders,
- properties: {
- values: minDash.without(taskHeaders.get('values'), header => oldHeaders.includes(header))
- }
- });
- }
- }
- /**
- * Replaces the element with the specified elementType
- *
- * @param {djs.model.Base} element
- * @param {Object} newTemplate
- */
- _updateTaskType(element, newTemplate) {
- // determine new task type
- const newType = newTemplate.elementType;
- if (!newType) {
- return element;
- } // don't replace Task that is already the correct type
- if (element.$type === newType.value) {
- return element;
- }
- return this._bpmnReplace.replaceElement(element, {
- type: newType.value
- });
- }
- }
- ChangeElementTemplateHandler$1.$inject = ['bpmnFactory', 'bpmnReplace', 'commandStack', 'modeling']; // helpers //////////
- /**
- * Find business object matching specified property.
- *
- * @param {djs.model.Base|ModdleElement} element
- * @param {Object} property
- *
- * @returns {ModdleElement}
- */
- function findBusinessObject(element, property) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const binding = property.binding,
- bindingType = binding.type;
- if (bindingType === 'zeebe:taskDefinition:type') {
- return findExtension$1(businessObject, 'zeebe:TaskDefinition');
- }
- if (bindingType === 'zeebe:input' || bindingType === 'zeebe:output') {
- const extensionElements = findExtension$1(businessObject, 'zeebe:IoMapping');
- if (!extensionElements) {
- return;
- }
- if (bindingType === 'zeebe:input') {
- return minDash.find(extensionElements.get('zeebe:inputParameters'), function (input) {
- return input.get('zeebe:target') === binding.name;
- });
- } else {
- return minDash.find(extensionElements.get('zeebe:outputParameters'), function (output) {
- return output.get('zeebe:source') === binding.source;
- });
- }
- }
- if (bindingType === 'zeebe:taskHeader') {
- const extensionElements = findExtension$1(businessObject, 'zeebe:TaskHeaders');
- if (!extensionElements) {
- return;
- }
- return minDash.find(extensionElements.get('zeebe:values'), function (value) {
- return value.get('zeebe:key') === binding.key;
- });
- }
- }
- /**
- * Find old property matching specified new property.
- *
- * @param {Object} oldTemplate
- * @param {Object} newProperty
- *
- * @returns {Object}
- */
- function findOldProperty$1(oldTemplate, newProperty) {
- if (!oldTemplate) {
- return;
- }
- const oldProperties = oldTemplate.properties,
- newBinding = newProperty.binding,
- newBindingName = newBinding.name,
- newBindingType = newBinding.type;
- if (newBindingType === 'property') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'property' && oldBindingName === newBindingName;
- });
- }
- if (newBindingType === 'zeebe:taskDefinition:type') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'zeebe:taskDefinition:type';
- });
- }
- if (newBindingType === 'zeebe:input') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'zeebe:input') {
- return;
- }
- return oldBindingName === newBindingName;
- });
- }
- if (newBindingType === 'zeebe:output') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'zeebe:output') {
- return;
- }
- return oldBinding.source === newBinding.source;
- });
- }
- if (newBindingType === 'zeebe:taskHeader') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'zeebe:taskHeader') {
- return;
- }
- return oldBinding.key === newBinding.key;
- });
- }
- }
- /**
- * Check whether the existing property should be keept. This is the case if
- * - an old template was set and the value differs from the default
- * - no template was set but the property was set manually
- *
- * @param {djs.model.Base|ModdleElement} element
- * @param {Object} oldProperty
- * @param {Object} newProperty
- *
- * @returns {boolean}
- */
- function shouldKeepValue(element, oldProperty, newProperty) {
- if (newProperty.type === 'Hidden') {
- return false;
- }
- if (oldProperty) {
- return propertyChanged$1(element, oldProperty);
- } else {
- return !!getPropertyValue(element, newProperty);
- }
- }
- /**
- * Check whether property was changed after being set by template.
- *
- * @param {djs.model.Base|ModdleElement} element
- * @param {Object} oldProperty
- *
- * @returns {boolean}
- */
- function propertyChanged$1(element, oldProperty) {
- const oldPropertyValue = oldProperty.value;
- return getPropertyValue(element, oldProperty) !== oldPropertyValue;
- }
- function getPropertyValue(element, property) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const binding = property.binding,
- bindingName = binding.name,
- bindingType = binding.type;
- if (bindingType === 'property') {
- return businessObject.get(bindingName);
- }
- if (bindingType === 'zeebe:taskDefinition:type') {
- return businessObject.get('zeebe:type');
- }
- if (bindingType === 'zeebe:input') {
- return businessObject.get('zeebe:source');
- }
- if (bindingType === 'zeebe:output') {
- return businessObject.get('zeebe:target');
- }
- if (bindingType === 'zeebe:taskHeader') {
- return businessObject.get('zeebe:value');
- }
- }
- function remove$1(array, item) {
- const index = array.indexOf(item);
- if (minDash.isUndefined(index)) {
- return array;
- }
- array.splice(index, 1);
- return array;
- }
- /**
- * Checks the conditions of an element template and sets/resets the
- * corresponding properties on the element.
- */
- class ElementTemplatesConditionChecker extends CommandInterceptor__default["default"] {
- constructor(eventBus, elementTemplates, commandStack, bpmnFactory) {
- super(eventBus);
- this._eventBus = eventBus;
- this._elementTemplates = elementTemplates;
- this._commandStack = commandStack;
- this._bpmnFactory = bpmnFactory;
- this.preExecute(['element.updateProperties', 'element.updateModdleProperties'], this._saveConditionalState, true, this);
- this.postExecute(['element.updateProperties', 'element.updateModdleProperties', 'propertiesPanel.zeebe.changeTemplate'], this._applyConditions, true, this);
- }
- _saveConditionalState(context) {
- const {
- element
- } = context;
- const template = this._elementTemplates.get(element);
- if (!template) {
- return;
- }
- context.oldTemplate = applyConditions(element, template);
- }
- _applyConditions(context) {
- const {
- element,
- oldTemplate
- } = context;
- const template = this._elementTemplates.get(element);
- if (!template || !oldTemplate || template.id !== oldTemplate.id) {
- return;
- }
- const newTemplate = applyConditions(element, template);
- const propertiesToAdd = getMissingProperties(oldTemplate, newTemplate);
- const propertiesToRemove = getMissingProperties(newTemplate, oldTemplate);
- propertiesToAdd.forEach(property => setPropertyValue(this._bpmnFactory, this._commandStack, element, property, property.value));
- propertiesToRemove.forEach(property => unsetProperty(this._commandStack, element, property));
- }
- }
- ElementTemplatesConditionChecker.$inject = ['eventBus', 'elementTemplates', 'commandStack', 'bpmnFactory']; // helpers
- function getMissingProperties(sourceTemplate, targetTemplate) {
- let properties = targetTemplate.properties;
- return properties.filter(targetProp => !findOldProperty$1(sourceTemplate, targetProp));
- }
- /**
- * The BPMN 2.0 extension attribute name under
- * which the element template ID is stored.
- *
- * @type {String}
- */
- const TEMPLATE_ID_ATTR = 'camunda:modelerTemplate';
- /**
- * The BPMN 2.0 extension attribute name under
- * which the element template version is stored.
- *
- * @type {String}
- */
- const TEMPLATE_VERSION_ATTR = 'camunda:modelerTemplateVersion';
- /**
- * Get template id for a given diagram element.
- *
- * @param {djs.model.Base} element
- *
- * @return {String}
- */
- function getTemplateId(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject) {
- return businessObject.get(TEMPLATE_ID_ATTR);
- }
- }
- /**
- * Get template version for a given diagram element.
- *
- * @param {djs.model.Base} element
- *
- * @return {String}
- */
- function getTemplateVersion(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (businessObject) {
- return businessObject.get(TEMPLATE_VERSION_ATTR);
- }
- }
- /**
- * Find extension with given type in
- * BPMN element, diagram element or ExtensionElement.
- *
- * @param {ModdleElement|djs.model.Base} element
- * @param {String} type
- *
- * @return {ModdleElement} the extension
- */
- function findExtension(element, type) {
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements;
- if (ModelUtil.is(businessObject, 'bpmn:ExtensionElements')) {
- extensionElements = businessObject;
- } else {
- extensionElements = businessObject.get('extensionElements');
- }
- if (!extensionElements) {
- return null;
- }
- return extensionElements.get('values').find(value => {
- return ModelUtil.is(value, type);
- });
- }
- function findExtensions(element, types) {
- const extensionElements = getExtensionElements(element);
- if (!extensionElements) {
- return [];
- }
- return extensionElements.get('values').filter(value => {
- return ModelingUtil.isAny(value, types);
- });
- }
- function findCamundaInOut(element, binding) {
- const extensionElements = getExtensionElements(element);
- if (!extensionElements) {
- return;
- }
- const {
- type
- } = binding;
- let matcher;
- if (type === 'camunda:in') {
- matcher = element => {
- return ModelUtil.is(element, 'camunda:In') && isInOut(element, binding);
- };
- } else if (type === 'camunda:out') {
- matcher = element => {
- return ModelUtil.is(element, 'camunda:Out') && isInOut(element, binding);
- };
- } else if (type === 'camunda:in:businessKey') {
- matcher = element => {
- return ModelUtil.is(element, 'camunda:In') && 'businessKey' in element;
- };
- }
- return extensionElements.get('values').find(matcher);
- }
- function findCamundaProperty(camundaProperties, binding) {
- return camundaProperties.get('values').find(value => {
- return value.name === binding.name;
- });
- }
- function findInputParameter(inputOutput, binding) {
- const parameters = inputOutput.get('inputParameters');
- return parameters.find(parameter => {
- return parameter.name === binding.name;
- });
- }
- function findOutputParameter(inputOutput, binding) {
- const parameters = inputOutput.get('outputParameters');
- return parameters.find(function (parameter) {
- const {
- value
- } = parameter;
- if (!binding.scriptFormat) {
- return value === binding.source;
- }
- const definition = parameter.get('camunda:definition');
- if (!definition || binding.scriptFormat !== definition.get('camunda:scriptFormat')) {
- return false;
- }
- return definition.get('camunda:value') === binding.source;
- });
- }
- function findCamundaErrorEventDefinition(element, errorRef) {
- const errorEventDefinitions = findExtensions(element, ['camunda:ErrorEventDefinition']);
- let error; // error ID has to start with <Error_${ errorRef }_>
- return errorEventDefinitions.find(definition => {
- error = definition.get('bpmn:errorRef');
- if (error) {
- return error.get('bpmn:id').startsWith(`Error_${errorRef}`);
- }
- });
- }
- function getExtensionElements(element) {
- const businessObject = ModelUtil.getBusinessObject(element);
- if (ModelUtil.is(businessObject, 'bpmn:ExtensionElements')) {
- return businessObject;
- } else {
- return businessObject.get('extensionElements');
- }
- }
- function isInOut(element, binding) {
- if (binding.type === 'camunda:in') {
- // find based on target attribute
- if (binding.target) {
- return element.target === binding.target;
- }
- }
- if (binding.type === 'camunda:out') {
- // find based on source / sourceExpression
- if (binding.source) {
- return element.source === binding.source;
- }
- if (binding.sourceExpression) {
- return element.sourceExpression === binding.sourceExpression;
- }
- } // find based variables / local combination
- if (binding.variables) {
- return element.variables === 'all' && (binding.variables !== 'local' || element.local);
- }
- }
- /**
- * Registry for element templates.
- */
- class ElementTemplates$1 {
- constructor(commandStack) {
- this._commandStack = commandStack;
- this._templates = {};
- }
- /**
- * Get template with given ID and optional version or for element.
- *
- * @param {String|djs.model.Base} id
- * @param {number} [version]
- *
- * @return {ElementTemplate}
- */
- get(id, version) {
- const templates = this._templates;
- let element;
- if (minDash.isUndefined(id)) {
- return null;
- } else if (minDash.isString(id)) {
- if (minDash.isUndefined(version)) {
- version = '_';
- }
- if (templates[id] && templates[id][version]) {
- return templates[id][version];
- } else {
- return null;
- }
- } else {
- element = id;
- return this.get(this._getTemplateId(element), this._getTemplateVersion(element));
- }
- }
- /**
- * Get default template for given element.
- *
- * @param {djs.model.Base} element
- *
- * @return {ElementTemplate}
- */
- getDefault(element) {
- return minDash.find(this.getAll(element), function (template) {
- return template.isDefault;
- }) || null;
- }
- /**
- * Get all templates (with given ID or applicable to element).
- *
- * @param {String|djs.model.Base} [id]
- * @return {Array<ElementTemplate>}
- */
- getAll(id) {
- return this._getTemplateVerions(id, false);
- }
- /**
- * Get all templates (with given ID or applicable to element) with the latest
- * version.
- *
- * @param {String|djs.model.Base} [id]
- * @return {Array<ElementTemplate>}
- */
- getLatest(id) {
- return this._getTemplateVerions(id, true);
- }
- /**
- * Set templates.
- *
- * @param {Array<ElementTemplate>} templates
- */
- set(templates) {
- this._templates = {};
- templates.forEach(template => {
- const id = template.id,
- version = minDash.isUndefined(template.version) ? '_' : template.version;
- if (!this._templates[id]) {
- this._templates[id] = {
- latest: template
- };
- }
- this._templates[id][version] = template;
- const latestVerions = this._templates[id].latest.version;
- if (minDash.isUndefined(latestVerions) || template.version > latestVerions) {
- this._templates[id].latest = template;
- }
- });
- }
- _getTemplateVerions(id, latestOnly) {
- if (typeof id === 'boolean') {
- latestOnly = id;
- id = undefined;
- }
- const templates = this._templates;
- const getVersions = template => {
- const {
- latest,
- ...versions
- } = template;
- return latestOnly ? [latest] : minDash.values(versions);
- };
- if (minDash.isUndefined(id)) {
- return minDash.flatten(minDash.values(templates).map(getVersions));
- }
- if (minDash.isObject(id)) {
- const element = id;
- return minDash.filter(this._getTemplateVerions(latestOnly), function (template) {
- return ModelingUtil.isAny(element, template.appliesTo);
- }) || [];
- }
- if (minDash.isString(id)) {
- return templates[id] && getVersions(templates[id]);
- }
- throw new Error('argument must be of type {String|djs.model.Base|Undefined}');
- }
- _getTemplateId(element) {
- return getTemplateId(element);
- }
- _getTemplateVersion(element) {
- return getTemplateVersion(element);
- }
- /**
- * Apply element template to a given element.
- *
- * @param {djs.model.Base} element
- * @param {ElementTemplate} newTemplate
- *
- * @return {djs.model.Base} the updated element
- */
- applyTemplate(element, newTemplate) {
- const oldTemplate = this.get(element);
- const context = {
- element,
- newTemplate,
- oldTemplate
- };
- this._commandStack.execute('propertiesPanel.camunda.changeTemplate', context);
- return context.element;
- }
- }
- ElementTemplates$1.$inject = ['commandStack'];
- /**
- * Registry for element templates.
- */
- class ElementTemplates extends ElementTemplates$1 {
- constructor(templateElementFactory, commandStack) {
- super(commandStack);
- this._commandStack = commandStack;
- this._templateElementFactory = templateElementFactory;
- }
- _getTemplateId(element) {
- return getTemplateId$1(element);
- }
- _getTemplateVersion(element) {
- return getTemplateVersion$1(element);
- }
- /**
- * Create an element based on an element template.
- *
- * @param {ElementTemplate} template
- * @returns {djs.model.Base}
- */
- createElement(template) {
- if (!template) {
- throw new Error('template is missing');
- }
- const element = this._templateElementFactory.create(template);
- return element;
- }
- /**
- * Apply element template to a given element.
- *
- * @param {djs.model.Base} element
- * @param {ElementTemplate} newTemplate
- *
- * @return {djs.model.Base} the updated element
- */
- applyTemplate(element, newTemplate) {
- const oldTemplate = this.get(element);
- const context = {
- element,
- newTemplate,
- oldTemplate
- };
- this._commandStack.execute('propertiesPanel.zeebe.changeTemplate', context);
- return context.element;
- }
- }
- ElementTemplates.$inject = ['templateElementFactory', 'commandStack'];
- const SUPPORTED_SCHEMA_VERSION$1 = elementTemplatesValidator.getSchemaVersion();
- const MORPHABLE_TYPES = ['bpmn:Activity', 'bpmn:Event', 'bpmn:Gateway'];
- /**
- * A element template validator.
- */
- class Validator$1 {
- constructor(moddle) {
- this._templatesById = {};
- this._validTemplates = [];
- this._errors = [];
- this._moddle = moddle;
- }
- /**
- * Adds the templates.
- *
- * @param {Array<TemplateDescriptor>} templates
- *
- * @return {Validator}
- */
- addAll(templates) {
- if (!minDash.isArray(templates)) {
- this._logError('templates must be []');
- } else {
- templates.forEach(this.add, this);
- }
- return this;
- }
- /**
- * Add the given element template, if it is valid.
- *
- * @param {TemplateDescriptor} template
- *
- * @return {Validator}
- */
- add(template) {
- const err = this._validateTemplate(template);
- let id, version;
- if (!err) {
- id = template.id;
- version = template.version || '_';
- if (!this._templatesById[id]) {
- this._templatesById[id] = {};
- }
- this._templatesById[id][version] = template;
- this._validTemplates.push(template);
- }
- return this;
- }
- /**
- * Validate given template and return error (if any).
- *
- * @param {TemplateDescriptor} template
- *
- * @return {Error} validation error, if any
- */
- _validateTemplate(template) {
- let err;
- const id = template.id,
- version = template.version || '_',
- schemaVersion = template.$schema && getSchemaVersion(template.$schema); // (1) compatibility
- if (schemaVersion && semverCompare__default["default"](SUPPORTED_SCHEMA_VERSION$1, schemaVersion) < 0) {
- return this._logError(`unsupported element template schema version <${schemaVersion}>. Your installation only supports up to version <${SUPPORTED_SCHEMA_VERSION$1}>. Please update your installation`, template);
- } // (2) versioning
- if (this._templatesById[id] && this._templatesById[id][version]) {
- if (version === '_') {
- return this._logError(`template id <${id}> already used`, template);
- } else {
- return this._logError(`template id <${id}> and version <${version}> already used`, template);
- }
- } // (3) elementType validation
- const elementTypeError = this._validateElementType(template);
- if (elementTypeError) {
- return elementTypeError;
- } // (4) JSON schema compliance
- const validationResult = elementTemplatesValidator.validate(template);
- const {
- errors,
- valid
- } = validationResult;
- if (!valid) {
- err = new Error('invalid template');
- filteredSchemaErrors(errors).forEach(error => {
- this._logError(error.message, template);
- });
- }
- return err;
- }
- /**
- * Validate elementType for given template and return error (if any).
- *
- * @param {TemplateDescriptor} template
- *
- * @return {Error} validation error, if any
- */
- _validateElementType(template) {
- if (template.elementType && template.appliesTo) {
- const elementType = template.elementType.value,
- appliesTo = template.appliesTo; // (3.1) template can be applied to elementType
- // prevents cases where the elementType is not part of appliesTo
- if (!appliesTo.find(type => this._isType(elementType, type))) {
- return this._logError(`template does not apply to requested element type <${elementType}>`, template);
- } // (3.2) template only applies to same type of element
- // prevent elementTemplates to morph into incompatible types, e.g. Task -> SequenceFlow
- for (const sourceType of appliesTo) {
- if (!this._canMorph(sourceType, elementType)) {
- return this._logError(`can not morph <${sourceType}> into <${elementType}>`, template);
- }
- }
- }
- }
- /**
- * Check if given type is a subtype of given base type.
- *
- * @param {String} type
- * @param {String} baseType
- * @returns {Boolean}
- */
- _isType(type, baseType) {
- const moddleType = this._moddle.getType(type);
- return moddleType && baseType in this._moddle.getElementDescriptor(moddleType).allTypesByName;
- }
- /**
- * Checks if a given type can be morphed into another type.
- *
- * @param {String} sourceType
- * @param {String} targetType
- * @returns {Boolean}
- */
- _canMorph(sourceType, targetType) {
- if (sourceType === targetType) {
- return true;
- }
- const baseType = MORPHABLE_TYPES.find(type => this._isType(sourceType, type));
- if (!baseType) {
- return false;
- }
- return this._isType(targetType, baseType);
- }
- /**
- * Log an error for the given template
- *
- * @param {(String|Error)} err
- * @param {TemplateDescriptor} template
- *
- * @return {Error} logged validation errors
- */
- _logError(err, template) {
- if (minDash.isString(err)) {
- if (template) {
- const {
- id,
- name
- } = template;
- err = `template(id: <${id}>, name: <${name}>): ${err}`;
- }
- err = new Error(err);
- }
- this._errors.push(err);
- return err;
- }
- getErrors() {
- return this._errors;
- }
- getValidTemplates() {
- return this._validTemplates;
- }
- } // helpers //////////
- /**
- * Extract schema version from schema URI
- *
- * @param {String} schemaUri - for example https://unpkg.com/@camunda/element-templates-json-schema@99.99.99/resources/schema.json
- *
- * @return {String} for example '99.99.99'
- */
- function getSchemaVersion(schemaUri) {
- const re = /\d+\.\d+\.\d+/g;
- const match = schemaUri.match(re);
- return match === null ? undefined : match[0];
- }
- /**
- * Extract only relevant errors of the validation result.
- *
- * The JSON Schema we use under the hood produces more errors than we need for a
- * detected schema violation (for example, unmatched sub-schemas, if-then-rules,
- * `oneOf`-definitions ...).
- *
- * We call these errors "relevant" that have a custom error message defined by us OR
- * are basic data type errors.
- *
- * @param {Array} schemaErrors
- *
- * @return {Array}
- */
- function filteredSchemaErrors(schemaErrors) {
- return minDash.filter(schemaErrors, err => {
- const {
- dataPath,
- keyword
- } = err; // (1) regular errors are customized from the schema
- if (keyword === 'errorMessage') {
- return true;
- } // (2) data type errors
- // ignore type errors nested in scopes
- if (keyword === 'type' && dataPath && !dataPath.startsWith('/scopes/')) {
- return true;
- }
- return false;
- });
- }
- const SUPPORTED_SCHEMA_VERSION = elementTemplatesValidator.getZeebeSchemaVersion();
- const SUPPORTED_SCHEMA_PACKAGE = elementTemplatesValidator.getZeebeSchemaPackage();
- /**
- * A Camunda Cloud element template validator.
- */
- class Validator extends Validator$1 {
- constructor(moddle) {
- super(moddle);
- }
- /**
- * Validate given template and return error (if any).
- *
- * @param {TemplateDescriptor} template
- *
- * @return {Error} validation error, if any
- */
- _validateTemplate(template) {
- let err;
- const id = template.id,
- version = template.version || '_',
- schema = template.$schema,
- schemaVersion = schema && getSchemaVersion(schema); // (1) $schema attribute defined
- if (!schema) {
- return this._logError('missing $schema attribute.', template);
- }
- if (!this.isSchemaValid(schema)) {
- return this._logError(`unsupported $schema attribute <${schema}>.`, template);
- } // (2) compatibility
- if (schemaVersion && semverCompare__default["default"](SUPPORTED_SCHEMA_VERSION, schemaVersion) < 0) {
- return this._logError(`unsupported element template schema version <${schemaVersion}>. Your installation only supports up to version <${SUPPORTED_SCHEMA_VERSION}>. Please update your installation`, template);
- } // (3) versioning
- if (this._templatesById[id] && this._templatesById[id][version]) {
- if (version === '_') {
- return this._logError(`template id <${id}> already used`, template);
- } else {
- return this._logError(`template id <${id}> and version <${version}> already used`, template);
- }
- } // (4) elementType validation
- const elementTypeError = this._validateElementType(template);
- if (elementTypeError) {
- return elementTypeError;
- } // (5) JSON schema compliance
- const validationResult = elementTemplatesValidator.validateZeebe(template);
- const {
- errors,
- valid
- } = validationResult;
- if (!valid) {
- err = new Error('invalid template');
- filteredSchemaErrors(errors).forEach(error => {
- this._logError(error.message, template);
- });
- }
- return err;
- }
- isSchemaValid(schema) {
- return schema && schema.includes(SUPPORTED_SCHEMA_PACKAGE);
- }
- }
- /**
- * The guy responsible for template loading.
- *
- * Provide the actual templates via the `config.elementTemplates`.
- *
- * That configuration can either be an array of template
- * descriptors or a node style callback to retrieve
- * the templates asynchronously.
- *
- * @param {Array<TemplateDescriptor>|Function} loadTemplates
- * @param {EventBus} eventBus
- * @param {ElementTemplates} elementTemplates
- * @param {Moddle} moddle
- */
- class ElementTemplatesLoader$1 {
- constructor(loadTemplates, eventBus, elementTemplates, moddle) {
- this._loadTemplates = loadTemplates;
- this._eventBus = eventBus;
- this._elementTemplates = elementTemplates;
- this._moddle = moddle;
- eventBus.on('diagram.init', () => {
- this.reload();
- });
- }
- reload() {
- const loadTemplates = this._loadTemplates; // no templates specified
- if (minDash.isUndefined(loadTemplates)) {
- return;
- } // template loader function specified
- if (minDash.isFunction(loadTemplates)) {
- return loadTemplates((err, templates) => {
- if (err) {
- return this.templateErrors([err]);
- }
- this.setTemplates(templates);
- });
- } // templates array specified
- if (loadTemplates.length) {
- return this.setTemplates(loadTemplates);
- }
- }
- setTemplates(templates) {
- const elementTemplates = this._elementTemplates,
- moddle = this._moddle;
- const validator = new Validator$1(moddle).addAll(templates);
- const errors = validator.getErrors(),
- validTemplates = validator.getValidTemplates();
- elementTemplates.set(validTemplates);
- if (errors.length) {
- this.templateErrors(errors);
- }
- this.templatesChanged();
- }
- templatesChanged() {
- this._eventBus.fire('elementTemplates.changed');
- }
- templateErrors(errors) {
- this._eventBus.fire('elementTemplates.errors', {
- errors: errors
- });
- }
- }
- ElementTemplatesLoader$1.$inject = ['config.elementTemplates', 'eventBus', 'elementTemplates', 'moddle'];
- class ElementTemplatesLoader extends ElementTemplatesLoader$1 {
- constructor(loadTemplates, eventBus, elementTemplates, moddle) {
- super(loadTemplates, eventBus, elementTemplates, moddle);
- this._elementTemplates = elementTemplates;
- }
- setTemplates(templates) {
- const elementTemplates = this._elementTemplates,
- moddle = this._moddle;
- const validator = new Validator(moddle).addAll(templates);
- const errors = validator.getErrors(),
- validTemplates = validator.getValidTemplates();
- elementTemplates.set(validTemplates);
- if (errors.length) {
- this.templateErrors(errors);
- }
- this.templatesChanged();
- }
- }
- ElementTemplatesLoader.$inject = ['config.elementTemplates', 'eventBus', 'elementTemplates', 'moddle'];
- function unlinkTemplate$1(element, injector) {
- const modeling = injector.get('modeling');
- modeling.updateProperties(element, {
- 'camunda:modelerTemplate': null,
- 'camunda:modelerTemplateVersion': null
- });
- }
- function removeTemplate(element, injector) {
- const replace = injector.get('replace'),
- selection = injector.get('selection');
- const businessObject = ModelUtil.getBusinessObject(element);
- const type = businessObject.$type,
- eventDefinitionType = getEventDefinitionType(businessObject);
- const newBusinessObject = createBlankBusinessObject(element, injector);
- const newElement = replace.replaceElement(element, {
- type: type,
- businessObject: newBusinessObject,
- eventDefinitionType: eventDefinitionType
- });
- selection.select(newElement);
- }
- function updateTemplate$1(element, newTemplate, injector) {
- const elementTemplates = injector.get('elementTemplates');
- return elementTemplates.applyTemplate(element, newTemplate);
- }
- function getVersionOrDateFromTemplate(template) {
- const metadata = template.metadata,
- version = template.version;
- if (metadata) {
- if (!minDash.isUndefined(metadata.created)) {
- return toDateString(metadata.created);
- } else if (!minDash.isUndefined(metadata.updated)) {
- return toDateString(metadata.updated);
- }
- }
- if (minDash.isUndefined(version)) {
- return null;
- }
- return version;
- } // helper ///////////
- function getEventDefinitionType(businessObject) {
- if (!businessObject.eventDefinitions) {
- return null;
- }
- const eventDefinition = businessObject.eventDefinitions[0];
- if (!eventDefinition) {
- return null;
- }
- return eventDefinition.$type;
- }
- /**
- * Example: 01.01.1900 01:01
- *
- * @param {number} timestamp
- * @returns {string}
- */
- function toDateString(timestamp) {
- const date = new Date(timestamp);
- const year = date.getFullYear();
- const month = withLeadingZeros(String(date.getMonth() + 1));
- const day = withLeadingZeros(String(date.getDate()));
- const hours = withLeadingZeros(String(date.getHours()));
- const minutes = withLeadingZeros(String(date.getMinutes()));
- return day + '.' + month + '.' + year + ' ' + hours + ':' + minutes;
- }
- function withLeadingZeros(string) {
- return leftPad(string, 2, '0');
- }
- function leftPad(string, length, character) {
- while (string.length < length) {
- string = character + string;
- }
- return string;
- }
- function createBlankBusinessObject(element, injector) {
- const bpmnFactory = injector.get('bpmnFactory'),
- bpmnJs = injector.get('bpmnjs');
- const bo = ModelUtil.getBusinessObject(element),
- newBo = bpmnFactory.create(bo.$type),
- label = LabelUtil.getLabel(element);
- if (!label) {
- return newBo;
- }
- if (ModelUtil.is(element, 'bpmn:Group')) {
- const definitions = bpmnJs.getDefinitions();
- const categoryValue = CategoryUtil.createCategoryValue(definitions, bpmnFactory);
- newBo.categoryValueRef = categoryValue;
- }
- LabelUtil.setLabel({
- businessObject: newBo
- }, label);
- return newBo;
- }
- function unlinkTemplate(element, injector) {
- const modeling = injector.get('modeling'); // remove template attributes
- modeling.updateProperties(element, {
- 'zeebe:modelerTemplate': null,
- 'zeebe:modelerTemplateVersion': null,
- 'zeebe:modelerTemplateIcon': null
- });
- }
- function updateTemplate(element, newTemplate, injector) {
- const elementTemplates = injector.get('elementTemplates');
- return elementTemplates.applyTemplate(element, newTemplate);
- }
- /**
- * This Behavior checks if the new element's type is in
- * the list of elements the template applies to and unlinks
- * it if not.
- */
- class ReplaceBehavior$1 extends CommandInterceptor__default["default"] {
- constructor(elementTemplates, injector) {
- super(injector.get('eventBus'));
- this.postExecuted('shape.replace', function (e) {
- var context = e.context,
- oldShape = context.oldShape,
- oldBo = ModelUtil.getBusinessObject(oldShape),
- newShape = context.newShape,
- newBo = ModelUtil.getBusinessObject(newShape);
- if (!oldBo.modelerTemplate) {
- return;
- }
- const template = newBo.modelerTemplate;
- const version = newBo.modelerTemplateVersion;
- const elementTemplate = elementTemplates.get(template, version);
- if (!elementTemplate) {
- unlinkTemplate(newShape, injector);
- return;
- }
- const {
- appliesTo,
- elementType
- } = elementTemplate;
- if (elementType) {
- if (!ModelUtil.is(newShape, elementType.value)) {
- unlinkTemplate(newShape, injector);
- }
- return;
- }
- const allowed = appliesTo.reduce((allowed, type) => {
- return allowed || ModelUtil.is(newBo, type);
- }, false);
- if (!allowed) {
- unlinkTemplate(newShape, injector);
- }
- });
- }
- }
- ReplaceBehavior$1.$inject = ['elementTemplates', 'injector'];
- function registerHandlers$1(commandStack, elementTemplates, eventBus) {
- commandStack.registerHandler('propertiesPanel.zeebe.changeTemplate', ChangeElementTemplateHandler$1); // apply default element templates on shape creation
- eventBus.on(['commandStack.shape.create.postExecuted'], function (context) {
- applyDefaultTemplate$1(context.context.shape, elementTemplates, commandStack);
- }); // apply default element templates on connection creation
- eventBus.on(['commandStack.connection.create.postExecuted'], function (context) {
- applyDefaultTemplate$1(context.context.connection, elementTemplates, commandStack);
- });
- }
- registerHandlers$1.$inject = ['commandStack', 'elementTemplates', 'eventBus'];
- var commandsModule$1 = {
- __init__: [registerHandlers$1]
- };
- function applyDefaultTemplate$1(element, elementTemplates, commandStack) {
- if (!elementTemplates.get(element) && elementTemplates.getDefault(element)) {
- const command = 'propertiesPanel.zeebe.changeTemplate';
- const commandContext = {
- element: element,
- newTemplate: elementTemplates.getDefault(element)
- };
- commandStack.execute(command, commandContext);
- }
- }
- /**
- * Validate the given template descriptors and
- * return a list of errors.
- *
- * @param {Array<TemplateDescriptor>} descriptors
- * @param {Moddle} moddle
- *
- * @return {Array<Error>}
- */
- function validate(descriptors, moddle) {
- return new Validator(moddle).addAll(descriptors).getErrors();
- }
- class PropertyBindingProvider {
- static create(element, options) {
- const {
- property
- } = options;
- const {
- binding,
- value
- } = property;
- const {
- name
- } = binding;
- const businessObject = ModelUtil.getBusinessObject(element);
- businessObject[name] = value;
- }
- }
- class TaskDefinitionTypeBindingProvider {
- static create(element, options) {
- const {
- property,
- bpmnFactory
- } = options;
- const {
- value
- } = property;
- const extensionElements = ModelUtil.getBusinessObject(element).get('extensionElements');
- const taskDefinition = createTaskDefinitionWithType(value, bpmnFactory);
- taskDefinition.$parent = extensionElements;
- extensionElements.get('values').push(taskDefinition);
- }
- }
- class InputBindingProvider {
- static create(element, options) {
- const {
- property,
- bpmnFactory
- } = options;
- const {
- binding,
- value
- } = property;
- const ioMapping = ensureExtension(element, 'zeebe:IoMapping', bpmnFactory);
- if (!shouldUpdate(value, property)) {
- return;
- }
- const input = createInputParameter$1(binding, value, bpmnFactory);
- input.$parent = ioMapping;
- ioMapping.get('inputParameters').push(input);
- }
- }
- class OutputBindingProvider {
- static create(element, options) {
- const {
- property,
- bpmnFactory
- } = options;
- const {
- binding,
- value
- } = property;
- const ioMapping = ensureExtension(element, 'zeebe:IoMapping', bpmnFactory);
- if (!shouldUpdate(value, property)) {
- return;
- }
- const output = createOutputParameter$1(binding, value, bpmnFactory);
- output.$parent = ioMapping;
- ioMapping.get('outputParameters').push(output);
- }
- }
- class TaskHeaderBindingProvider {
- static create(element, options) {
- const {
- property,
- bpmnFactory
- } = options;
- const {
- binding,
- value
- } = property;
- const taskHeaders = ensureExtension(element, 'zeebe:TaskHeaders', bpmnFactory);
- const header = createTaskHeader(binding, value, bpmnFactory);
- header.$parent = taskHeaders;
- taskHeaders.get('values').push(header);
- }
- }
- class TemplateElementFactory {
- constructor(bpmnFactory, elementFactory, moddle) {
- this._bpmnFactory = bpmnFactory;
- this._elementFactory = elementFactory;
- this._moddle = moddle;
- this._providers = {
- [PROPERTY_TYPE$1]: PropertyBindingProvider,
- [ZEEBE_TASK_DEFINITION_TYPE_TYPE]: TaskDefinitionTypeBindingProvider,
- [ZEBBE_INPUT_TYPE]: InputBindingProvider,
- [ZEEBE_OUTPUT_TYPE]: OutputBindingProvider,
- [ZEEBE_TASK_HEADER_TYPE]: TaskHeaderBindingProvider
- };
- }
- /**
- * Create an element based on an element template.
- *
- * @param {ElementTemplate} template
- * @returns {djs.model.Base}
- */
- create(template) {
- const {
- appliesTo,
- elementType,
- properties
- } = template;
- const elementFactory = this._elementFactory;
- const bpmnFactory = this._bpmnFactory;
- const moddle = this._moddle;
- const providers = this._providers; // (0) make sure template is valid
- const errors = validate([template], moddle); // todo(pinussilvestrus): return validation errors
- if (errors && errors.length) {
- throw new Error('template is invalid');
- }
- const type = elementType && elementType.value || appliesTo[0]; // (1) create element from appliesTo
- const element = elementFactory.createShape({
- type
- }); // (2) ensure extension elements
- if (hasExtensionBindings(template)) {
- this._ensureExtensionElements(element);
- } // (3) apply template
- this._setModelerTemplate(element, template); // (4) apply icon
- if (hasIcon(template)) {
- this._setModelerTemplateIcon(element, template);
- } // (5) apply properties
- properties.forEach(function (property) {
- const {
- binding
- } = property;
- const {
- type: bindingType
- } = binding;
- const bindingProvider = providers[bindingType];
- bindingProvider.create(element, {
- property,
- bpmnFactory
- });
- });
- return element;
- }
- _ensureExtensionElements(element) {
- const bpmnFactory = this._bpmnFactory;
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = bpmnFactory.create('bpmn:ExtensionElements', {
- values: []
- });
- extensionElements.$parent = businessObject;
- businessObject.set('extensionElements', extensionElements);
- }
- return extensionElements;
- }
- _setModelerTemplate(element, template) {
- const {
- id,
- version
- } = template;
- const businessObject = ModelUtil.getBusinessObject(element);
- businessObject.set('zeebe:modelerTemplate', id);
- businessObject.set('zeebe:modelerTemplateVersion', version);
- }
- _setModelerTemplateIcon(element, template) {
- const {
- icon
- } = template;
- const {
- contents
- } = icon;
- const businessObject = ModelUtil.getBusinessObject(element);
- businessObject.set('zeebe:modelerTemplateIcon', contents);
- }
- }
- TemplateElementFactory.$inject = ['bpmnFactory', 'elementFactory', 'moddle']; // helper ////////////////
- function hasExtensionBindings(template) {
- const {
- properties
- } = template; // find icon first
- if (hasIcon(template)) {
- return true;
- }
- return minDash.find(properties, function (property) {
- const {
- binding
- } = property;
- return EXTENSION_BINDING_TYPES$1.includes(binding.type);
- });
- }
- function hasIcon(template) {
- const {
- icon
- } = template;
- return !!(icon && icon.contents);
- }
- var templateElementFactoryModule = {
- __init__: ['templateElementFactory'],
- templateElementFactory: ['type', TemplateElementFactory]
- };
- function createElementTemplatesGroup(props = {}) {
- const {
- getTemplateId: getTemplateId$1 = getTemplateId,
- unlinkTemplate = unlinkTemplate$1,
- updateTemplate = updateTemplate$1
- } = props;
- return function ElementTemplatesGroup(props) {
- const {
- id,
- label,
- element,
- entries = []
- } = props;
- const [open, setOpen] = propertiesPanel.useLayoutState(['groups', id, 'open'], false);
- const empty = !entries.length;
- const toggleOpen = () => !empty && setOpen(!open);
- return jsxRuntime.jsxs("div", {
- class: "bio-properties-panel-group bio-properties-panel-templates-group",
- "data-group-id": 'group-' + id,
- children: [jsxRuntime.jsxs("div", {
- class: classnames__default["default"]('bio-properties-panel-group-header', {
- empty,
- open: open && !empty
- }),
- onClick: toggleOpen,
- children: [jsxRuntime.jsx("div", {
- title: label,
- class: "bio-properties-panel-group-header-title",
- children: label
- }), jsxRuntime.jsxs("div", {
- class: "bio-properties-panel-group-header-buttons",
- children: [jsxRuntime.jsx(TemplateGroupButtons, {
- element: element,
- getTemplateId: getTemplateId$1,
- unlinkTemplate: unlinkTemplate,
- updateTemplate: updateTemplate
- }), !empty && jsxRuntime.jsx(SectionToggle, {
- open: open
- })]
- })]
- }), jsxRuntime.jsx("div", {
- class: classnames__default["default"]('bio-properties-panel-group-entries', {
- open: open && !empty
- }),
- children: entries.map(entry => {
- const {
- component: Component,
- id
- } = entry;
- return preact.createElement(Component, { ...entry,
- key: id,
- element: element
- });
- })
- })]
- });
- };
- }
- function SectionToggle({
- open
- }) {
- return jsxRuntime.jsx(propertiesPanel.HeaderButton, {
- title: "Toggle section",
- class: "bio-properties-panel-arrow",
- children: jsxRuntime.jsx(propertiesPanel.ArrowIcon, {
- class: open ? 'bio-properties-panel-arrow-down' : 'bio-properties-panel-arrow-right'
- })
- });
- }
- /**
- *
- * @param {object} props
- * @param {object} props.element
- * @param {function} props.getTemplateId
- * @param {function} props.unlinkTemplate
- * @param {function} props.updateTemplate
- */
- function TemplateGroupButtons({
- element,
- getTemplateId,
- unlinkTemplate,
- updateTemplate
- }) {
- const elementTemplates = useService('elementTemplates');
- const templateState = getTemplateState(elementTemplates, element, getTemplateId);
- if (templateState.type === 'NO_TEMPLATE') {
- return jsxRuntime.jsx(SelectEntryTemplate, {
- element: element
- });
- } else if (templateState.type === 'KNOWN_TEMPLATE') {
- return jsxRuntime.jsx(AppliedTemplate, {
- element: element,
- unlinkTemplate: unlinkTemplate
- });
- } else if (templateState.type === 'UNKNOWN_TEMPLATE') {
- return jsxRuntime.jsx(UnknownTemplate, {
- element: element,
- unlinkTemplate: unlinkTemplate
- });
- } else if (templateState.type === 'OUTDATED_TEMPLATE') {
- return jsxRuntime.jsx(OutdatedTemplate, {
- element: element,
- templateState: templateState,
- unlinkTemplate: unlinkTemplate,
- updateTemplate: updateTemplate
- });
- }
- }
- function SelectEntryTemplate({
- element
- }) {
- const translate = useService('translate');
- const eventBus = useService('eventBus');
- const selectTemplate = () => eventBus.fire('elementTemplates.select', {
- element
- });
- return jsxRuntime.jsxs(propertiesPanel.HeaderButton, {
- title: "Select a template",
- class: "bio-properties-panel-select-template-button",
- onClick: selectTemplate,
- children: [jsxRuntime.jsx(propertiesPanel.CreateIcon, {}), jsxRuntime.jsx("span", {
- children: translate('Select')
- })]
- });
- }
- function AppliedTemplate({
- element,
- unlinkTemplate
- }) {
- const translate = useService('translate'),
- injector = useService('injector');
- const menuItems = [{
- entry: translate('Unlink'),
- action: () => unlinkTemplate(element, injector)
- }, {
- entry: jsxRuntime.jsx(RemoveTemplate, {}),
- action: () => removeTemplate(element, injector)
- }];
- return jsxRuntime.jsx(propertiesPanel.DropdownButton, {
- menuItems: menuItems,
- class: "bio-properties-panel-applied-template-button",
- children: jsxRuntime.jsxs(propertiesPanel.HeaderButton, {
- children: [jsxRuntime.jsx("span", {
- children: translate('Applied')
- }), jsxRuntime.jsx(propertiesPanel.ArrowIcon, {
- class: "bio-properties-panel-arrow-down"
- })]
- })
- });
- }
- function RemoveTemplate() {
- const translate = useService('translate');
- return jsxRuntime.jsx("span", {
- class: "bio-properties-panel-remove-template",
- children: translate('Remove')
- });
- }
- function UnknownTemplate({
- element,
- unlinkTemplate
- }) {
- const translate = useService('translate'),
- injector = useService('injector');
- const menuItems = [{
- entry: jsxRuntime.jsx(NotFoundText, {})
- }, {
- separator: true
- }, {
- entry: translate('Unlink'),
- action: () => unlinkTemplate(element, injector)
- }, {
- entry: jsxRuntime.jsx(RemoveTemplate, {}),
- action: () => removeTemplate(element, injector)
- }];
- return jsxRuntime.jsx(propertiesPanel.DropdownButton, {
- menuItems: menuItems,
- class: "bio-properties-panel-template-not-found",
- children: jsxRuntime.jsxs(propertiesPanel.HeaderButton, {
- children: [jsxRuntime.jsx("span", {
- children: translate('Not found')
- }), jsxRuntime.jsx(propertiesPanel.ArrowIcon, {
- class: "bio-properties-panel-arrow-down"
- })]
- })
- });
- }
- function NotFoundText() {
- const translate = useService('translate');
- return jsxRuntime.jsx("div", {
- class: "bio-properties-panel-template-not-found-text",
- children: translate('The template applied was not found. Therefore, its properties cannot be shown. Unlink to access the data.')
- });
- }
- /**
- *
- * @param {object} props
- * @param {object} element
- * @param {UnknownTemplate} templateState
- * @param {function} unlinkTemplate
- * @param {function} updateTemplate
- */
- function OutdatedTemplate({
- element,
- templateState,
- unlinkTemplate,
- updateTemplate
- }) {
- const {
- newerTemplate
- } = templateState;
- const translate = useService('translate'),
- injector = useService('injector');
- const menuItems = [{
- entry: jsxRuntime.jsx(UpdateAvailableText, {
- newerTemplate: newerTemplate
- })
- }, {
- separator: true
- }, {
- entry: translate('Update'),
- action: () => updateTemplate(element, newerTemplate, injector)
- }, {
- entry: translate('Unlink'),
- action: () => unlinkTemplate(element, injector)
- }, {
- entry: jsxRuntime.jsx(RemoveTemplate, {}),
- action: () => removeTemplate(element, injector)
- }];
- return jsxRuntime.jsx(propertiesPanel.DropdownButton, {
- menuItems: menuItems,
- class: "bio-properties-panel-template-update-available",
- children: jsxRuntime.jsxs(propertiesPanel.HeaderButton, {
- children: [jsxRuntime.jsx("span", {
- children: translate('Update available')
- }), jsxRuntime.jsx(propertiesPanel.ArrowIcon, {
- class: "bio-properties-panel-arrow-down"
- })]
- })
- });
- }
- function UpdateAvailableText({
- newerTemplate
- }) {
- const translate = useService('translate');
- const text = translate('A new version of the template is available: {templateVersion}', {
- templateVersion: getVersionOrDateFromTemplate(newerTemplate)
- });
- return jsxRuntime.jsx("div", {
- class: "bio-properties-panel-template-update-available-text",
- children: text
- });
- } // helper //////
- /**
- * Determine template state in the current element.
- *
- * @param {object} elementTemplates
- * @param {object} element
- * @param {function} getTemplateId
- * @returns {TemplateState}
- */
- function getTemplateState(elementTemplates, element, getTemplateId) {
- const templateId = getTemplateId(element),
- template = elementTemplates.get(element);
- if (!templateId) {
- return {
- type: 'NO_TEMPLATE'
- };
- }
- if (!template) {
- return {
- type: 'UNKNOWN_TEMPLATE',
- templateId
- };
- }
- const newerTemplate = elementTemplates.getLatest(templateId)[0];
- if (newerTemplate !== template) {
- return {
- type: 'OUTDATED_TEMPLATE',
- template,
- newerTemplate
- };
- }
- return {
- type: 'KNOWN_TEMPLATE',
- template
- };
- }
- function TemplateProps({
- element,
- elementTemplates
- }) {
- const template = elementTemplates.get(element);
- if (!template) {
- return [];
- }
- return [{
- id: 'template-name',
- component: TemplateName,
- template
- }, {
- id: 'template-version',
- component: TemplateVersion,
- template
- }, {
- id: 'template-description',
- component: TemplateDescription,
- template
- }].filter(entry => !!entry.component);
- }
- function TemplateName({
- id,
- template
- }) {
- const translate = useService('translate');
- return jsxRuntime.jsx(TextEntry, {
- id: id,
- label: translate('Name'),
- content: template.name
- });
- }
- function TemplateVersion({
- id,
- template
- }) {
- const translate = useService('translate');
- const version = getVersionOrDateFromTemplate(template);
- return version ? jsxRuntime.jsx(TextEntry, {
- id: id,
- label: translate('Version'),
- content: version
- }) : null;
- }
- function TemplateDescription({
- id,
- template
- }) {
- const translate = useService('translate');
- const {
- description
- } = template;
- return description ? jsxRuntime.jsx(TextEntry, {
- id: id,
- label: translate('Description'),
- content: template.description
- }) : null;
- }
- function TextEntry({
- id,
- label,
- content
- }) {
- return jsxRuntime.jsxs("div", {
- "data-entry-id": id,
- class: "bio-properties-panel-entry bio-properties-panel-text-entry",
- children: [jsxRuntime.jsx("span", {
- class: "bio-properties-panel-label",
- children: label
- }), jsxRuntime.jsx("span", {
- class: "bio-properties-panel-text-entry__content",
- children: content
- })]
- });
- }
- var e,
- o = {};
- function n(r, t, e) {
- if (3 === r.nodeType) {
- var o = "textContent" in r ? r.textContent : r.nodeValue || "";
- if (!1 !== n.options.trim) {
- var a = 0 === t || t === e.length - 1;
- if ((!(o = o.match(/^[\s\n]+$/g) && "all" !== n.options.trim ? " " : o.replace(/(^[\s\n]+|[\s\n]+$)/g, "all" === n.options.trim || a ? "" : " ")) || " " === o) && e.length > 1 && a) return null;
- }
- return o;
- }
- if (1 !== r.nodeType) return null;
- var p = String(r.nodeName).toLowerCase();
- if ("script" === p && !n.options.allowScripts) return null;
- var l,
- s,
- u = n.h(p, function (r) {
- var t = r && r.length;
- if (!t) return null;
- for (var e = {}, o = 0; o < t; o++) {
- var a = r[o],
- i = a.name,
- p = a.value;
- "on" === i.substring(0, 2) && n.options.allowEvents && (p = new Function(p)), e[i] = p;
- }
- return e;
- }(r.attributes), (s = (l = r.childNodes) && Array.prototype.map.call(l, n).filter(i)) && s.length ? s : null);
- return n.visitor && n.visitor(u), u;
- }
- var a,
- i = function (r) {
- return r;
- },
- p = {};
- function l(r) {
- var t = (r.type || "").toLowerCase(),
- e = l.map;
- e && e.hasOwnProperty(t) ? (r.type = e[t], r.props = Object.keys(r.props || {}).reduce(function (t, e) {
- var o;
- return t[(o = e, o.replace(/-(.)/g, function (r, t) {
- return t.toUpperCase();
- }))] = r.props[e], t;
- }, {})) : r.type = t.replace(/[^a-z0-9-]/i, "");
- }
- var Markup = (function (t) {
- function i() {
- t.apply(this, arguments);
- }
- return t && (i.__proto__ = t), (i.prototype = Object.create(t && t.prototype)).constructor = i, i.setReviver = function (r) {
- a = r;
- }, i.prototype.shouldComponentUpdate = function (r) {
- var t = this.props;
- return r.wrap !== t.wrap || r.type !== t.type || r.markup !== t.markup;
- }, i.prototype.setComponents = function (r) {
- if (this.map = {}, r) for (var t in r) if (r.hasOwnProperty(t)) {
- var e = t.replace(/([A-Z]+)([A-Z][a-z0-9])|([a-z0-9]+)([A-Z])/g, "$1$3-$2$4").toLowerCase();
- this.map[e] = r[t];
- }
- }, i.prototype.render = function (t) {
- var i = t.wrap;
- void 0 === i && (i = !0);
- var s,
- u = t.type,
- c = t.markup,
- m = t.components,
- v = t.reviver,
- f = t.onError,
- d = t["allow-scripts"],
- h = t["allow-events"],
- y = t.trim,
- w = function (r, t) {
- var e = {};
- for (var o in r) Object.prototype.hasOwnProperty.call(r, o) && -1 === t.indexOf(o) && (e[o] = r[o]);
- return e;
- }(t, ["wrap", "type", "markup", "components", "reviver", "onError", "allow-scripts", "allow-events", "trim"]),
- C = v || this.reviver || this.constructor.prototype.reviver || a || preact.h;
- this.setComponents(m);
- var g = {
- allowScripts: d,
- allowEvents: h,
- trim: y
- };
- try {
- s = function (r, t, a, i, s) {
- var u = function (r, t) {
- var o,
- n,
- a,
- i,
- p = "html" === t ? "text/html" : "application/xml";
- "html" === t ? (i = "body", a = "<!DOCTYPE html>\n<html><body>" + r + "</body></html>") : (i = "xml", a = '<?xml version="1.0" encoding="UTF-8"?>\n<xml>' + r + "</xml>");
- try {
- o = new DOMParser().parseFromString(a, p);
- } catch (r) {
- n = r;
- }
- if (o || "html" !== t || ((o = e || (e = function () {
- if (document.implementation && document.implementation.createHTMLDocument) return document.implementation.createHTMLDocument("");
- var r = document.createElement("iframe");
- return r.style.cssText = "position:absolute; left:0; top:-999em; width:1px; height:1px; overflow:hidden;", r.setAttribute("sandbox", "allow-forms"), document.body.appendChild(r), r.contentWindow.document;
- }())).open(), o.write(a), o.close()), o) {
- var l = o.getElementsByTagName(i)[0],
- s = l.firstChild;
- return r && !s && (l.error = "Document parse failed."), s && "parsererror" === String(s.nodeName).toLowerCase() && (s.removeChild(s.firstChild), s.removeChild(s.lastChild), l.error = s.textContent || s.nodeValue || n || "Unknown error", l.removeChild(s)), l;
- }
- }(r, t);
- if (u && u.error) throw new Error(u.error);
- var c = u && u.body || u;
- l.map = i || p;
- var m = c && function (r, t, e, a) {
- return n.visitor = t, n.h = e, n.options = a || o, n(r);
- }(c, l, a, s);
- return l.map = null, m && m.props && m.props.children || null;
- }(c, u, C, this.map, g);
- } catch (r) {
- f ? f({
- error: r
- }) : "undefined" != typeof console && console.error && console.error("preact-markup: " + r);
- }
- if (!1 === i) return s || null;
- var x = w.hasOwnProperty("className") ? "className" : "class",
- b = w[x];
- return b ? b.splice ? b.splice(0, 0, "markup") : "string" == typeof b ? w[x] += " markup" : "object" == typeof b && (b.markup = !0) : w[x] = "markup", C("div", w, s || null);
- }, i;
- })(preact.Component);
- /**
- * Copied from existing form-js#Sanitizer
- * cf. https://github.com/bpmn-io/form-js/blob/master/packages/form-js-viewer/src/render/components/Sanitizer.js
- */
- const NODE_TYPE_TEXT = 3,
- NODE_TYPE_ELEMENT = 1;
- const ALLOWED_NODES = ['h1', 'h2', 'h3', 'h4', 'h5', 'span', 'em', 'a', 'p', 'div', 'ul', 'ol', 'li', 'hr', 'blockquote', 'img', 'pre', 'code', 'br', 'strong'];
- const ALLOWED_ATTRIBUTES = ['align', 'alt', 'class', 'href', 'id', 'name', 'rel', 'target', 'src'];
- const ALLOWED_URI_PATTERN = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i; // eslint-disable-line no-useless-escape
- const ATTR_WHITESPACE_PATTERN = /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g; // eslint-disable-line no-control-regex
- const FORM_ELEMENT = document.createElement('form');
- /**
- * Sanitize a HTML string and return the cleaned, safe version.
- *
- * @param {string} html
- * @return {string}
- */
- function sanitizeHTML(html) {
- const doc = new DOMParser().parseFromString(`<!DOCTYPE html>\n<html><body><div>${html}`, 'text/html');
- doc.normalize();
- const element = doc.body.firstChild;
- if (element) {
- sanitizeNode(
- /** @type Element */
- element);
- return new XMLSerializer().serializeToString(element);
- } else {
- // handle the case that document parsing
- // does not work at all, due to HTML gibberish
- return '';
- }
- }
- /**
- * Recursively sanitize a HTML node, potentially
- * removing it, its children or attributes.
- *
- * Inspired by https://github.com/developit/snarkdown/issues/70
- * and https://github.com/cure53/DOMPurify. Simplified
- * for our use-case.
- *
- * @param {Element} node
- */
- function sanitizeNode(node) {
- // allow text nodes
- if (node.nodeType === NODE_TYPE_TEXT) {
- return;
- } // disallow all other nodes but Element
- if (node.nodeType !== NODE_TYPE_ELEMENT) {
- return node.remove();
- }
- const lcTag = node.tagName.toLowerCase(); // disallow non-whitelisted tags
- if (!ALLOWED_NODES.includes(lcTag)) {
- return node.remove();
- }
- const attributes = node.attributes; // clean attributes
- for (let i = attributes.length; i--;) {
- const attribute = attributes[i];
- const name = attribute.name;
- const lcName = name.toLowerCase(); // normalize node value
- const value = attribute.value.trim();
- node.removeAttribute(name);
- const valid = isValidAttribute(lcTag, lcName, value);
- if (valid) {
- node.setAttribute(name, value);
- }
- } // force noopener on target="_blank" links
- if (lcTag === 'a' && node.getAttribute('target') === '_blank' && node.getAttribute('rel') !== 'noopener') {
- node.setAttribute('rel', 'noopener');
- }
- for (let i = node.childNodes.length; i--;) {
- sanitizeNode(
- /** @type Element */
- node.childNodes[i]);
- }
- }
- /**
- * Validates attributes for validity.
- *
- * @param {string} lcTag
- * @param {string} lcName
- * @param {string} value
- * @return {boolean}
- */
- function isValidAttribute(lcTag, lcName, value) {
- // disallow most attributes based on whitelist
- if (!ALLOWED_ATTRIBUTES.includes(lcName)) {
- return false;
- } // disallow "DOM clobbering" / polution of document and wrapping form elements
- if ((lcName === 'id' || lcName === 'name') && (value in document || value in FORM_ELEMENT)) {
- return false;
- }
- if (lcName === 'target' && value !== '_blank') {
- return false;
- } // allow valid url links only
- if (lcName === 'href' && !ALLOWED_URI_PATTERN.test(value.replace(ATTR_WHITESPACE_PATTERN, ''))) {
- return false;
- }
- return true;
- }
- function PropertyDescription(props) {
- const {
- description
- } = props;
- return description && jsxRuntime.jsx(Markup, {
- markup: sanitizeHTML(description),
- trim: false
- });
- }
- const DEFAULT_CUSTOM_GROUP$1 = {
- id: 'ElementTemplates__CustomProperties',
- label: 'Custom properties'
- };
- function CustomProperties$1(props) {
- const {
- element,
- elementTemplate
- } = props;
- const groups = [];
- const {
- id,
- properties,
- groups: propertyGroups
- } = elementTemplate; // (1) group properties by group id
- const groupedProperties = groupByGroupId$1(properties);
- const defaultProps = [];
- minDash.forEach(groupedProperties, (properties, groupId) => {
- const group = findCustomGroup$1(propertyGroups, groupId);
- if (!group) {
- return defaultProps.push(...properties);
- }
- addCustomGroup$1(groups, {
- element,
- id: `ElementTemplates__CustomProperties-${groupId}`,
- label: group.label,
- properties: properties,
- templateId: `${id}-${groupId}`
- });
- }); // (2) add default custom props
- if (defaultProps.length) {
- addCustomGroup$1(groups, { ...DEFAULT_CUSTOM_GROUP$1,
- element,
- properties: defaultProps,
- templateId: id
- });
- }
- return groups;
- }
- function addCustomGroup$1(groups, props) {
- const {
- element,
- id,
- label,
- properties,
- templateId
- } = props;
- const customPropertiesGroup = {
- id,
- label,
- component: propertiesPanel.Group,
- entries: [],
- shouldOpen: true
- };
- properties.forEach((property, index) => {
- const entry = createCustomEntry$1(`custom-entry-${templateId}-${index}`, element, property);
- if (entry) {
- customPropertiesGroup.entries.push(entry);
- }
- });
- if (customPropertiesGroup.entries.length) {
- groups.push(customPropertiesGroup);
- }
- }
- function createCustomEntry$1(id, element, property) {
- let {
- type,
- feel
- } = property;
- if (!type) {
- type = getDefaultType$1(property);
- }
- if (type === 'Boolean') {
- return {
- id,
- component: BooleanProperty$1,
- isEdited: propertiesPanel.isCheckboxEntryEdited,
- property
- };
- }
- if (type === 'Dropdown') {
- return {
- id,
- component: DropdownProperty$1,
- isEdited: propertiesPanel.isSelectEntryEdited,
- property
- };
- }
- if (type === 'String') {
- if (feel) {
- return {
- id,
- component: FeelProperty,
- isEdited: propertiesPanel.isFeelEntryEdited,
- property
- };
- }
- return {
- id,
- component: StringProperty$1,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- property
- };
- }
- if (type === 'Text') {
- if (feel) {
- return {
- id,
- component: FeelTextAreaProperty,
- isEdited: propertiesPanel.isFeelEntryEdited,
- property
- };
- }
- return {
- id,
- component: TextAreaProperty$1,
- isEdited: propertiesPanel.isTextAreaEntryEdited,
- property
- };
- }
- }
- function getDefaultType$1(property) {
- const {
- binding
- } = property;
- const {
- type
- } = binding;
- if ([PROPERTY_TYPE$1, ZEEBE_TASK_DEFINITION_TYPE_TYPE, ZEBBE_INPUT_TYPE, ZEEBE_OUTPUT_TYPE, ZEEBE_TASK_HEADER_TYPE].includes(type)) {
- return 'String';
- }
- }
- function BooleanProperty$1(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack');
- return propertiesPanel.CheckboxEntry({
- element,
- getValue: propertyGetter$1(element, property),
- id,
- label,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- disabled: editable === false
- });
- }
- function DropdownProperty$1(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack');
- const getOptions = () => {
- const {
- choices
- } = property;
- return choices.map(({
- name,
- value
- }) => {
- return {
- label: name,
- value
- };
- });
- };
- return propertiesPanel.SelectEntry({
- element,
- id,
- label,
- getOptions,
- description: PropertyDescription({
- description
- }),
- getValue: propertyGetter$1(element, property),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- disabled: editable === false
- });
- }
- function FeelTextAreaProperty(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label,
- feel
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput'),
- translate = useService('translate');
- return withVariableContext(propertiesPanel.FeelTextAreaEntry)({
- debounce,
- element,
- getValue: propertyGetter$1(element, property),
- id,
- label,
- feel,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- validate: propertyValidator$1(translate, property),
- disabled: editable === false
- });
- }
- function FeelProperty(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label,
- feel
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput'),
- translate = useService('translate');
- return withVariableContext(propertiesPanel.FeelEntry)({
- debounce,
- element,
- getValue: propertyGetter$1(element, property),
- id,
- label,
- feel,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- validate: propertyValidator$1(translate, property),
- disabled: editable === false
- });
- }
- function StringProperty$1(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label,
- feel
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput'),
- translate = useService('translate');
- return propertiesPanel.TextFieldEntry({
- debounce,
- element,
- getValue: propertyGetter$1(element, property),
- id,
- label,
- feel,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- validate: propertyValidator$1(translate, property),
- disabled: editable === false
- });
- }
- function TextAreaProperty$1(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- description,
- editable,
- label,
- feel
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput');
- return propertiesPanel.TextAreaEntry({
- debounce,
- element,
- id,
- label,
- feel,
- description: PropertyDescription({
- description
- }),
- getValue: propertyGetter$1(element, property),
- setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
- disabled: editable === false
- });
- }
- function propertyGetter$1(element, property) {
- return function getValue() {
- return getPropertyValue$1(element, property);
- };
- }
- function propertySetter$1(bpmnFactory, commandStack, element, property) {
- return function getValue(value) {
- return setPropertyValue(bpmnFactory, commandStack, element, property, value);
- };
- }
- function propertyValidator$1(translate, property) {
- return function validate(value) {
- const {
- constraints = {}
- } = property;
- const {
- maxLength,
- minLength,
- notEmpty
- } = constraints;
- if (notEmpty && isEmptyString$1(value)) {
- return translate('Must not be empty.');
- }
- if (maxLength && value.length > maxLength) {
- return translate('Must have max length {maxLength}.', {
- maxLength
- });
- }
- if (minLength && value.length < minLength) {
- return translate('Must have min length {minLength}.', {
- minLength
- });
- }
- let {
- pattern
- } = constraints;
- if (pattern) {
- let message;
- if (!minDash.isString(pattern)) {
- message = pattern.message;
- pattern = pattern.value;
- }
- if (!matchesPattern$1(value, pattern)) {
- return message || translate('Must match pattern {pattern}.', {
- pattern
- });
- }
- }
- };
- }
- function isEmptyString$1(string) {
- return !string || !string.trim().length;
- }
- function matchesPattern$1(string, pattern) {
- return new RegExp(pattern).test(string);
- }
- function groupByGroupId$1(properties) {
- return minDash.groupBy(properties, 'group');
- }
- function findCustomGroup$1(groups, id) {
- return minDash.find(groups, g => g.id === id);
- }
- const LOWER_PRIORITY$1 = 300;
- class ElementTemplatesPropertiesProvider$1 {
- constructor(elementTemplates, propertiesPanel, injector) {
- propertiesPanel.registerProvider(LOWER_PRIORITY$1, this);
- this._elementTemplates = elementTemplates;
- this._injector = injector;
- }
- getGroups(element) {
- return groups => {
- if (!this._shouldShowTemplateProperties(element)) {
- return groups;
- } // (0) Copy provided groups
- groups = groups.slice();
- const templatesGroup = {
- element,
- id: 'ElementTemplates__Template',
- label: 'Template',
- component: createElementTemplatesGroup({
- getTemplateId: getTemplateId$1,
- unlinkTemplate,
- updateTemplate
- }),
- entries: TemplateProps({
- element,
- elementTemplates: this._elementTemplates
- })
- }; // (1) Add templates group
- addGroupsAfter$1('documentation', groups, [templatesGroup]);
- let elementTemplate = this._elementTemplates.get(element);
- if (elementTemplate) {
- elementTemplate = applyConditions(element, elementTemplate);
- const templateSpecificGroups = [].concat(CustomProperties$1({
- element,
- elementTemplate
- })); // (2) add template-specific properties groups
- addGroupsAfter$1('ElementTemplates__Template', groups, templateSpecificGroups);
- } // (3) apply entries visible
- if (getTemplateId$1(element)) {
- groups = filterWithEntriesVisible$1(elementTemplate || {}, groups);
- }
- return groups;
- };
- }
- _shouldShowTemplateProperties(element) {
- return getTemplateId$1(element) || this._elementTemplates.getAll(element).length;
- }
- }
- ElementTemplatesPropertiesProvider$1.$inject = ['elementTemplates', 'propertiesPanel', 'injector']; // helper /////////////////////
- /**
- *
- * @param {string} id
- * @param {Array<{ id: string }} groups
- * @param {Array<{ id: string }>} groupsToAdd
- */
- function addGroupsAfter$1(id, groups, groupsToAdd) {
- const index = groups.findIndex(group => group.id === id);
- if (index !== -1) {
- groups.splice(index + 1, 0, ...groupsToAdd);
- } else {
- // add in the beginning if group with provided id is missing
- groups.unshift(...groupsToAdd);
- }
- }
- function filterWithEntriesVisible$1(template, groups) {
- if (!template.entriesVisible) {
- return groups.filter(group => {
- return group.id === 'general' || group.id.startsWith('ElementTemplates__');
- });
- }
- return groups;
- }
- var index$1 = {
- __depends__: [commandsModule$1, templateElementFactoryModule, translateModule__default["default"], zeebePropertiesProviderModule],
- __init__: ['elementTemplatesLoader', 'replaceBehavior', 'elementTemplatesPropertiesProvider', 'elementTemplatesConditionChecker'],
- elementTemplates: ['type', ElementTemplates],
- elementTemplatesLoader: ['type', ElementTemplatesLoader],
- replaceBehavior: ['type', ReplaceBehavior$1],
- elementTemplatesPropertiesProvider: ['type', ElementTemplatesPropertiesProvider$1],
- elementTemplatesConditionChecker: ['type', ElementTemplatesConditionChecker]
- };
- /**
- * This Behavior checks if the new element's type is in
- * the list of elements the template applies to and unlinks
- * it if not.
- */
- class ReplaceBehavior extends CommandInterceptor__default["default"] {
- constructor(elementTemplates, injector) {
- super(injector.get('eventBus'));
- this.postExecuted('shape.replace', function (e) {
- var context = e.context,
- oldShape = context.oldShape,
- oldBo = ModelUtil.getBusinessObject(oldShape),
- newShape = context.newShape,
- newBo = ModelUtil.getBusinessObject(newShape);
- if (!oldBo.modelerTemplate) {
- return;
- }
- const template = newBo.modelerTemplate;
- const version = newBo.modelerTemplateVersion;
- const elementTemplate = elementTemplates.get(template, version);
- if (!elementTemplate) {
- unlinkTemplate$1(newShape, injector);
- return;
- }
- const {
- appliesTo,
- elementType
- } = elementTemplate;
- if (elementType) {
- if (!ModelUtil.is(newShape, elementType.value)) {
- unlinkTemplate$1(newShape, injector);
- }
- return;
- }
- const allowed = appliesTo.reduce((allowed, type) => {
- return allowed || ModelUtil.is(newBo, type);
- }, false);
- if (!allowed) {
- unlinkTemplate$1(newShape, injector);
- }
- });
- }
- }
- ReplaceBehavior.$inject = ['elementTemplates', 'injector'];
- /**
- * Converts legacy scopes descriptor to newer supported array structure.
- *
- * For example, it transforms
- *
- * scopes: {
- * 'camunda:Connector':
- * { properties: []
- * }
- * }
- *
- * to
- *
- * scopes: [
- * {
- * type: 'camunda:Connector',
- * properties: []
- * }
- * ]
- *
- * @param {ScopesDescriptor} scopes
- *
- * @returns {Array}
- */
- function handleLegacyScopes(scopes = []) {
- const scopesAsArray = [];
- if (!minDash.isObject(scopes)) {
- return scopes;
- }
- minDash.forEach(minDash.keys(scopes), function (scopeName) {
- scopesAsArray.push(minDash.assign({
- type: scopeName
- }, scopes[scopeName]));
- });
- return scopesAsArray;
- }
- /**
- * Create an input parameter representing the given
- * binding and value.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createInputParameter(binding, value, bpmnFactory) {
- const {
- name,
- scriptFormat
- } = binding;
- let parameterValue, parameterDefinition;
- if (scriptFormat) {
- parameterDefinition = bpmnFactory.create('camunda:Script', {
- scriptFormat,
- value
- });
- } else {
- parameterValue = value;
- }
- return bpmnFactory.create('camunda:InputParameter', {
- name,
- value: parameterValue,
- definition: parameterDefinition
- });
- }
- /**
- * Create an output parameter representing the given
- * binding and value.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createOutputParameter(binding, value, bpmnFactory) {
- const {
- scriptFormat,
- source
- } = binding;
- let parameterValue, parameterDefinition;
- if (scriptFormat) {
- parameterDefinition = bpmnFactory.create('camunda:Script', {
- scriptFormat,
- value: source
- });
- } else {
- parameterValue = source;
- }
- return bpmnFactory.create('camunda:OutputParameter', {
- name: value,
- value: parameterValue,
- definition: parameterDefinition
- });
- }
- /**
- * Create camunda property from the given binding.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaProperty(binding, value = '', bpmnFactory) {
- const {
- name
- } = binding;
- return bpmnFactory.create('camunda:Property', {
- name,
- value
- });
- }
- /**
- * Create camunda:in element from given binding.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaIn(binding, value, bpmnFactory) {
- const attrs = createCamundaInOutAttrs(binding, value);
- return bpmnFactory.create('camunda:In', attrs);
- }
- /**
- * Create camunda:in with businessKey element from given binding.
- *
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaInWithBusinessKey(value, bpmnFactory) {
- return bpmnFactory.create('camunda:In', {
- businessKey: value
- });
- }
- /**
- * Create camunda:out element from given binding.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaOut(binding, value, bpmnFactory) {
- const attrs = createCamundaInOutAttrs(binding, value);
- return bpmnFactory.create('camunda:Out', attrs);
- }
- /**
- * Create camunda:executionListener element containing an inline script from given binding.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaExecutionListenerScript(binding, value, bpmnFactory) {
- const {
- event,
- scriptFormat
- } = binding;
- let parameterValue, parameterDefinition;
- if (scriptFormat) {
- parameterDefinition = bpmnFactory.create('camunda:Script', {
- scriptFormat,
- value
- });
- } else {
- parameterValue = value;
- }
- return bpmnFactory.create('camunda:ExecutionListener', {
- event,
- value: parameterValue,
- script: parameterDefinition
- });
- }
- /**
- * Create camunda:field element containing string or expression from given binding.
- *
- * @param {PropertyBinding} binding
- * @param {String} value
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaFieldInjection(binding, value, bpmnFactory) {
- const DEFAULT_PROPS = {
- 'string': undefined,
- 'expression': undefined,
- 'name': undefined
- };
- const props = minDash.assign({}, DEFAULT_PROPS);
- const {
- expression,
- name
- } = binding;
- if (!expression) {
- props.string = value;
- } else {
- props.expression = value;
- }
- props.name = name;
- return bpmnFactory.create('camunda:Field', props);
- }
- /**
- * Create camunda:errorEventDefinition element containing expression and errorRef
- * from given binding.
- *
- * @param {String} expression
- * @param {ModdleElement} errorRef
- * @param {ModdleElement} parent
- * @param {BpmnFactory} bpmnFactory
- *
- * @return {ModdleElement}
- */
- function createCamundaErrorEventDefinition(expression, errorRef, parent, bpmnFactory) {
- const errorEventDefinition = bpmnFactory.create('camunda:ErrorEventDefinition', {
- errorRef,
- expression
- });
- errorEventDefinition.$parent = parent;
- return errorEventDefinition;
- }
- /**
- * Create bpmn:error element containing a specific error id given by a binding.
- *
- * @param {String} bindingErrorRef
- * @param {ModdleElement} parent
- * @param {BpmnFactory} bpmnFactory
- *
- * @return { ModdleElement }
- */
- function createError(bindingErrorRef, parent, bpmnFactory) {
- const error = bpmnFactory.create('bpmn:Error', {
- // we need to later retrieve the error from a binding
- id: nextId('Error_' + bindingErrorRef + '_')
- });
- error.$parent = parent;
- return error;
- } // helpers //////////
- /**
- * Create properties for camunda:in and camunda:out types.
- */
- function createCamundaInOutAttrs(binding, value) {
- const properties = {};
- const {
- expression,
- source,
- sourceExpression,
- target,
- type,
- variables
- } = binding; // explicitly cover all conditions as specified here:
- // https://github.com/camunda/camunda-modeler/blob/develop/docs/element-templates/README.md#camundain
- if (type === 'camunda:in') {
- if (target && !expression && !variables) {
- properties.target = target;
- properties.source = value;
- } else if (target && expression === true && !variables) {
- properties.target = target;
- properties.sourceExpression = value;
- } else if (!target && !expression && variables === 'local') {
- properties.local = true;
- properties.variables = 'all';
- } else if (target && !expression && variables === 'local') {
- properties.local = true;
- properties.source = value;
- properties.target = target;
- } else if (target && expression && variables === 'local') {
- properties.local = true;
- properties.sourceExpression = value;
- properties.target = target;
- } else if (!target && !expression && variables === 'all') {
- properties.variables = 'all';
- } else {
- throw new Error('invalid configuration for camunda:in element template binding');
- }
- } // explicitly cover all conditions as specified here:
- // https://github.com/camunda/camunda-modeler/blob/develop/docs/element-templates/README.md#camundaout
- if (type === 'camunda:out') {
- if (source && !sourceExpression && !variables) {
- properties.target = value;
- properties.source = source;
- } else if (!source && sourceExpression && !variables) {
- properties.target = value;
- properties.sourceExpression = sourceExpression;
- } else if (!source && !sourceExpression && variables === 'all') {
- properties.variables = 'all';
- } else if (source && !sourceExpression && variables === 'local') {
- properties.local = true;
- properties.source = source;
- properties.target = value;
- } else if (!source && sourceExpression && variables === 'local') {
- properties.local = true;
- properties.sourceExpression = sourceExpression;
- properties.target = value;
- } else if (!source && !sourceExpression && variables === 'local') {
- properties.local = true;
- properties.variables = 'all';
- } else {
- throw new Error('invalid configuration for camunda:out element template binding');
- }
- }
- return properties;
- }
- const CAMUNDA_SERVICE_TASK_LIKE = ['camunda:class', 'camunda:delegateExpression', 'camunda:expression'];
- /**
- * Applies an element template to an element. Sets `camunda:modelerTemplate` and
- * `camunda:modelerTemplateVersion`.
- */
- class ChangeElementTemplateHandler {
- constructor(bpmnFactory, bpmnReplace, commandStack, modeling) {
- this._bpmnFactory = bpmnFactory;
- this._bpmnReplace = bpmnReplace;
- this._commandStack = commandStack;
- this._modeling = modeling;
- }
- /**
- * Change an element's template and update its properties as specified in `newTemplate`. Specify
- * `oldTemplate` to update from one template to another. If `newTemplate` isn't specified the
- * `camunda:modelerTemplate` and `camunda:modelerTemplateVersion` properties will be removed from
- * the element.
- *
- * @param {Object} context
- * @param {Object} context.element
- * @param {Object} [context.oldTemplate]
- * @param {Object} [context.newTemplate]
- */
- preExecute(context) {
- const newTemplate = context.newTemplate,
- oldTemplate = context.oldTemplate;
- let element = context.element; // update camunda:modelerTemplate attribute
- this._updateCamundaModelerTemplate(element, newTemplate);
- if (newTemplate) {
- element = context.element = this._updateTaskType(element, newTemplate); // update properties
- this._updateProperties(element, oldTemplate, newTemplate); // update camunda:ExecutionListener properties
- this._updateCamundaExecutionListenerProperties(element, newTemplate); // update camunda:Field properties
- this._updateCamundaFieldProperties(element, oldTemplate, newTemplate); // update camunda:In and camunda:Out properties
- this._updateCamundaInOutProperties(element, oldTemplate, newTemplate); // update camunda:InputParameter and camunda:OutputParameter properties
- this._updateCamundaInputOutputParameterProperties(element, oldTemplate, newTemplate); // update camunda:Property properties
- this._updateCamundaPropertyProperties(element, oldTemplate, newTemplate); // update camunda:ErrorEventDefinition properties
- this._updateCamundaErrorEventDefinitionProperties(element, oldTemplate, newTemplate); // update properties for each scope
- handleLegacyScopes(newTemplate.scopes).forEach(newScopeTemplate => {
- this._updateScopeProperties(element, oldTemplate, newScopeTemplate, newTemplate);
- });
- }
- }
- _getOrCreateExtensionElements(element) {
- const bpmnFactory = this._bpmnFactory,
- modeling = this._modeling;
- const businessObject = ModelUtil.getBusinessObject(element);
- let extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = bpmnFactory.create('bpmn:ExtensionElements', {
- values: []
- });
- extensionElements.$parent = businessObject;
- modeling.updateProperties(element, {
- extensionElements: extensionElements
- });
- }
- return extensionElements;
- }
- /**
- * Update `camunda:ErrorEventDefinition` properties of specified business object. Event
- * definitions can only exist in `bpmn:ExtensionElements`.
- *
- * Ensures an bpmn:Error exists for the event definition.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateCamundaErrorEventDefinitionProperties(element, oldTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:errorEventDefinition';
- }); // (1) do not override if no updates
- if (!newProperties.length) {
- return;
- }
- const extensionElements = this._getOrCreateExtensionElements(element);
- const oldErrorEventDefinitions = findExtensions(element, ['camunda:ErrorEventDefinition']);
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- oldEventDefinition = oldProperty && findOldBusinessObject(extensionElements, oldProperty),
- newBinding = newProperty.binding; // (2) update old event definitions
- if (oldProperty && oldEventDefinition) {
- if (!propertyChanged(oldEventDefinition, oldProperty)) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldEventDefinition,
- properties: {
- expression: newProperty.value
- }
- });
- }
- remove(oldErrorEventDefinitions, oldEventDefinition);
- } // (3) create new event definition + error
- else {
- const rootElement = getRoot(ModelUtil.getBusinessObject(element)),
- newError = createError(newBinding.errorRef, rootElement, bpmnFactory),
- newEventDefinition = createCamundaErrorEventDefinition(newProperty.value, newError, extensionElements, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: rootElement,
- properties: {
- rootElements: [...rootElement.get('rootElements'), newError]
- }
- });
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), newEventDefinition]
- }
- });
- }
- }); // (4) remove old event definitions
- if (oldErrorEventDefinitions.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), value => oldErrorEventDefinitions.includes(value))
- }
- });
- }
- }
- /**
- * Update `camunda:ExecutionListener` properties of specified business object. Execution listeners
- * will always be overridden. Execution listeners can only exist in `bpmn:ExtensionElements`.
- *
- * @param {djs.model.Base} element
- * @param {Object} newTemplate
- */
- _updateCamundaExecutionListenerProperties(element, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:executionListener';
- }); // (1) do not override old execution listeners if no new execution listeners specified
- if (!newProperties.length) {
- return;
- }
- const extensionElements = this._getOrCreateExtensionElements(element); // (2) remove old execution listeners
- const oldExecutionListeners = findExtensions(element, ['camunda:ExecutionListener']); // (3) add new execution listeners
- const newExecutionListeners = newProperties.map(newProperty => {
- const newBinding = newProperty.binding,
- propertyValue = newProperty.value;
- return createCamundaExecutionListenerScript(newBinding, propertyValue, bpmnFactory);
- });
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...minDash.without(extensionElements.get('values'), value => oldExecutionListeners.includes(value)), ...newExecutionListeners]
- }
- });
- }
- /**
- * Update `camunda:Field` properties of specified business object.
- * If business object is `camunda:ExecutionListener` or `camunda:TaskListener` `fields` property
- * will be updated. Otherwise `extensionElements.values` property will be updated.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- * @param {ModdleElement} businessObject
- */
- _updateCamundaFieldProperties(element, oldTemplate, newTemplate, businessObject) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:field';
- }); // (1) do not override old fields if no new fields specified
- if (!newProperties.length) {
- return;
- }
- if (!businessObject) {
- businessObject = this._getOrCreateExtensionElements(element);
- }
- const propertyName = ModelingUtil.isAny(businessObject, ['camunda:ExecutionListener', 'camunda:TaskListener']) ? 'fields' : 'values';
- const oldFields = findExtensions(element, ['camunda:Field']);
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- oldField = oldProperty && findOldBusinessObject(businessObject, oldProperty),
- newBinding = newProperty.binding; // (2) update old fields
- if (oldProperty && oldField) {
- if (!propertyChanged(oldField, oldProperty)) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldField,
- properties: {
- string: newProperty.value
- }
- });
- }
- remove(oldFields, oldField);
- } // (3) add new fields
- else {
- const newCamundaFieldInjection = createCamundaFieldInjection(newBinding, newProperty.value, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- [propertyName]: [...businessObject.get(propertyName), newCamundaFieldInjection]
- }
- });
- }
- }); // (4) remove old fields
- if (oldFields.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- [propertyName]: minDash.without(businessObject.get(propertyName), value => oldFields.includes(value))
- }
- });
- }
- }
- /**
- * Update `camunda:In` and `camunda:Out` properties of specified business object. Only
- * `bpmn:CallActivity` and events with `bpmn:SignalEventDefinition` can have ins. Only
- * `camunda:CallActivity` can have outs.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateCamundaInOutProperties(element, oldTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:in' || newBindingType === 'camunda:in:businessKey' || newBindingType === 'camunda:out';
- }); // (1) do not override old fields if no new fields specified
- if (!newProperties.length) {
- return;
- } // get extension elements of either signal event definition or call activity
- const extensionElements = this._getOrCreateExtensionElements(getSignalEventDefinition(element) || element);
- const oldInsAndOuts = findExtensions(extensionElements, ['camunda:In', 'camunda:Out']);
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- oldBinding = oldProperty && oldProperty.binding,
- oldInOurOut = oldProperty && findOldBusinessObject(extensionElements, oldProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding,
- newBindingType = newBinding.type,
- properties = {};
- let newInOrOut; // (2) update old ins and outs
- if (oldProperty && oldInOurOut) {
- if (!propertyChanged(oldInOurOut, oldProperty)) {
- if (newBindingType === 'camunda:in') {
- if (newBinding.expression) {
- properties['camunda:sourceExpression'] = newPropertyValue;
- } else {
- properties['camunda:source'] = newPropertyValue;
- }
- } else if (newBindingType === 'camunda:in:businessKey') {
- properties['camunda:businessKey'] = newPropertyValue;
- } else if (newBindingType === 'camunda:out') {
- properties['camunda:target'] = newPropertyValue;
- }
- } // update camunda:local property if it changed
- if (oldBinding.local && !newBinding.local || !oldBinding.local && newBinding.local) {
- properties.local = newBinding.local;
- }
- if (minDash.keys(properties)) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldInOurOut,
- properties
- });
- }
- remove(oldInsAndOuts, oldInOurOut);
- } // (3) add new ins and outs
- else {
- if (newBindingType === 'camunda:in') {
- newInOrOut = createCamundaIn(newBinding, newPropertyValue, bpmnFactory);
- } else if (newBindingType === 'camunda:out') {
- newInOrOut = createCamundaOut(newBinding, newPropertyValue, bpmnFactory);
- } else if (newBindingType === 'camunda:in:businessKey') {
- newInOrOut = createCamundaInWithBusinessKey(newPropertyValue, bpmnFactory);
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), newInOrOut]
- }
- });
- }
- }); // (4) remove old ins and outs
- if (oldInsAndOuts.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: minDash.without(extensionElements.get('values'), value => oldInsAndOuts.includes(value))
- }
- });
- }
- }
- /**
- * Update `camunda:InputParameter` and `camunda:OutputParameter` properties of specified business
- * object. Both can only exist in `camunda:InputOutput` which can exist in `bpmn:ExtensionElements`
- * or `camunda:Connector`.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- */
- _updateCamundaInputOutputParameterProperties(element, oldTemplate, newTemplate, businessObject) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:inputParameter' || newBindingType === 'camunda:outputParameter';
- }); // (1) do not override old inputs and outputs if no new inputs and outputs specified
- if (!newProperties.length) {
- return;
- }
- if (!businessObject) {
- businessObject = this._getOrCreateExtensionElements(element);
- }
- let inputOutput;
- if (ModelUtil.is(businessObject, 'camunda:Connector')) {
- inputOutput = businessObject.get('camunda:inputOutput');
- if (!inputOutput) {
- inputOutput = bpmnFactory.create('camunda:InputOutput');
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- inputOutput
- }
- });
- }
- } else {
- inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- if (!inputOutput) {
- inputOutput = bpmnFactory.create('camunda:InputOutput');
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: [...businessObject.get('values'), inputOutput]
- }
- });
- }
- }
- const oldInputs = inputOutput.get('camunda:inputParameters') ? inputOutput.get('camunda:inputParameters').slice() : [];
- const oldOutputs = inputOutput.get('camunda:outputParameters') ? inputOutput.get('camunda:outputParameters').slice() : [];
- let propertyName;
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- oldInputOrOutput = oldProperty && findOldBusinessObject(businessObject, oldProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- let newInputOrOutput, properties; // (2) update old inputs and outputs
- if (oldProperty && oldInputOrOutput) {
- if (!propertyChanged(oldInputOrOutput, oldProperty)) {
- if (ModelUtil.is(oldInputOrOutput, 'camunda:InputParameter')) {
- properties = {
- value: newPropertyValue
- };
- } else {
- properties = {
- name: newPropertyValue
- };
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldInputOrOutput,
- properties
- });
- }
- if (ModelUtil.is(oldInputOrOutput, 'camunda:InputParameter')) {
- remove(oldInputs, oldInputOrOutput);
- } else {
- remove(oldOutputs, oldInputOrOutput);
- }
- } // (3) add new inputs and outputs
- else {
- if (newBindingType === 'camunda:inputParameter') {
- propertyName = 'inputParameters';
- newInputOrOutput = createInputParameter(newBinding, newPropertyValue, bpmnFactory);
- } else {
- propertyName = 'outputParameters';
- newInputOrOutput = createOutputParameter(newBinding, newPropertyValue, bpmnFactory);
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOutput,
- properties: {
- [propertyName]: [...inputOutput.get(propertyName), newInputOrOutput]
- }
- });
- }
- }); // (4) remove old inputs and outputs
- if (oldInputs.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOutput,
- properties: {
- inputParameters: minDash.without(inputOutput.get('inputParameters'), inputParameter => oldInputs.includes(inputParameter))
- }
- });
- }
- if (oldOutputs.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: inputOutput,
- properties: {
- outputParameters: minDash.without(inputOutput.get('outputParameters'), outputParameter => oldOutputs.includes(outputParameter))
- }
- });
- }
- }
- _updateCamundaModelerTemplate(element, newTemplate) {
- const modeling = this._modeling;
- modeling.updateProperties(element, {
- 'camunda:modelerTemplate': newTemplate && newTemplate.id,
- 'camunda:modelerTemplateVersion': newTemplate && newTemplate.version
- });
- }
- /**
- * Update `camunda:Property` properties of specified business object. `camunda:Property` can only
- * exist in `camunda:Properties`.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newTemplate
- * @param {ModdleElement} businessObject
- */
- _updateCamundaPropertyProperties(element, oldTemplate, newTemplate, businessObject) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'camunda:property';
- }); // (1) do not override old properties if no new properties specified
- if (!newProperties.length) {
- return;
- }
- if (businessObject) {
- businessObject = this._getOrCreateExtensionElements(businessObject);
- } else {
- businessObject = this._getOrCreateExtensionElements(element);
- }
- let camundaProperties = findExtension(businessObject, 'camunda:Properties');
- if (!camundaProperties) {
- camundaProperties = bpmnFactory.create('camunda:Properties');
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties: {
- values: [...businessObject.get('values'), camundaProperties]
- }
- });
- }
- const oldCamundaProperties = camundaProperties.get('camunda:values') ? camundaProperties.get('camunda:values').slice() : [];
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- oldCamundaProperty = oldProperty && findOldBusinessObject(businessObject, oldProperty),
- newPropertyValue = newProperty.value,
- newBinding = newProperty.binding; // (2) update old properties
- if (oldProperty && oldCamundaProperty) {
- if (!propertyChanged(oldCamundaProperty, oldProperty)) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: oldCamundaProperty,
- properties: {
- value: newPropertyValue
- }
- });
- }
- remove(oldCamundaProperties, oldCamundaProperty);
- } // (3) add new properties
- else {
- const newCamundaProperty = createCamundaProperty(newBinding, newPropertyValue, bpmnFactory);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: camundaProperties,
- properties: {
- values: [...camundaProperties.get('values'), newCamundaProperty]
- }
- });
- }
- }); // (4) remove old properties
- if (oldCamundaProperties.length) {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: camundaProperties,
- properties: {
- values: minDash.without(camundaProperties.get('values'), value => oldCamundaProperties.includes(value))
- }
- });
- }
- }
- /**
- * Update `bpmn:conditionExpression` property of specified element. Since condition expression is
- * is not primitive it needs special handling.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldProperty
- * @param {Object} newProperty
- */
- _updateConditionExpression(element, oldProperty, newProperty) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack,
- modeling = this._modeling;
- const newBinding = newProperty.binding,
- newPropertyValue = newProperty.value;
- if (!oldProperty) {
- modeling.updateProperties(element, {
- conditionExpression: bpmnFactory.create('bpmn:FormalExpression', {
- body: newPropertyValue,
- language: newBinding.scriptFormat
- })
- });
- return;
- }
- const oldBinding = oldProperty.binding,
- oldPropertyValue = oldProperty.value;
- const businessObject = ModelUtil.getBusinessObject(element),
- conditionExpression = businessObject.get('bpmn:conditionExpression');
- const properties = {};
- if (conditionExpression.get('body') === oldPropertyValue) {
- properties.body = newPropertyValue;
- }
- if (conditionExpression.get('language') === oldBinding.scriptFormat) {
- properties.language = newBinding.scriptFormat;
- }
- if (!minDash.keys(properties).length) {
- return;
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: conditionExpression,
- properties
- });
- }
- _updateProperties(element, oldTemplate, newTemplate, businessObject) {
- const commandStack = this._commandStack;
- const newProperties = newTemplate.properties.filter(newProperty => {
- const newBinding = newProperty.binding,
- newBindingType = newBinding.type;
- return newBindingType === 'property';
- });
- if (!newProperties.length) {
- return;
- }
- if (!businessObject) {
- businessObject = ModelUtil.getBusinessObject(element);
- }
- newProperties.forEach(newProperty => {
- const oldProperty = findOldProperty(oldTemplate, newProperty),
- newBinding = newProperty.binding,
- newBindingName = newBinding.name,
- newPropertyValue = newProperty.value;
- let changedElement, properties;
- if (newBindingName === 'conditionExpression') {
- this._updateConditionExpression(element, oldProperty, newProperty);
- } else {
- if (ModelUtil.is(businessObject, 'bpmn:Error')) {
- changedElement = businessObject;
- } else {
- changedElement = element;
- }
- if (oldProperty && propertyChanged(changedElement, oldProperty)) {
- return;
- }
- properties = {};
- properties[newBindingName] = newPropertyValue; // only one of `camunda:class`, `camunda:delegateExpression` and `camunda:expression` can be set
- // TODO(philippfromme): ensuring only one of these properties is set at a time should be
- // implemented in a behavior and not in this handler and properties panel UI
- if (CAMUNDA_SERVICE_TASK_LIKE.indexOf(newBindingName) !== -1) {
- CAMUNDA_SERVICE_TASK_LIKE.forEach(camundaServiceTaskLikeProperty => {
- if (camundaServiceTaskLikeProperty !== newBindingName) {
- properties[camundaServiceTaskLikeProperty] = undefined;
- }
- });
- }
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: businessObject,
- properties
- });
- }
- });
- }
- /**
- * Update properties for a specified scope.
- *
- * @param {djs.model.Base} element
- * @param {Object} oldTemplate
- * @param {Object} newScopeTemplate
- * @param {Object} newTemplate
- */
- _updateScopeProperties(element, oldTemplate, newScopeTemplate, newTemplate) {
- const bpmnFactory = this._bpmnFactory,
- commandStack = this._commandStack;
- const scopeName = newScopeTemplate.type;
- let scopeElement;
- scopeElement = findOldScopeElement(element, newScopeTemplate, newTemplate);
- if (!scopeElement) {
- scopeElement = bpmnFactory.create(scopeName);
- }
- const oldScopeTemplate = findOldScopeTemplate(newScopeTemplate, oldTemplate); // update properties
- this._updateProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement); // update camunda:ExecutionListener properties
- this._updateCamundaExecutionListenerProperties(element, newScopeTemplate); // update camunda:In and camunda:Out properties
- this._updateCamundaInOutProperties(element, oldScopeTemplate, newScopeTemplate); // update camunda:InputParameter and camunda:OutputParameter properties
- this._updateCamundaInputOutputParameterProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement); // update camunda:Field properties
- this._updateCamundaFieldProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement); // update camunda:Property properties
- this._updateCamundaPropertyProperties(element, oldScopeTemplate, newScopeTemplate, scopeElement); // assume that root elements were already created in root by referenced event definition binding
- if (isRootElementScope(scopeName)) {
- return;
- }
- const extensionElements = this._getOrCreateExtensionElements(element);
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), scopeElement]
- }
- });
- }
- /**
- * Replaces the element with the specified elementType
- *
- * @param {djs.model.Base} element
- * @param {Object} newTemplate
- */
- _updateTaskType(element, newTemplate) {
- // determine new task type
- const newType = newTemplate.elementType;
- if (!newType) {
- return element;
- } // don't replace Task that is already the correct type
- if (element.$type === newType.value) {
- return element;
- }
- return this._bpmnReplace.replaceElement(element, {
- type: newType.value
- });
- }
- }
- ChangeElementTemplateHandler.$inject = ['bpmnFactory', 'bpmnReplace', 'commandStack', 'modeling']; // helpers //////////
- /**
- * Find old business object matching specified old property.
- *
- * @param {djs.model.Base|ModdleElement} element
- * @param {Object} oldProperty
- *
- * @returns {ModdleElement}
- */
- function findOldBusinessObject(element, oldProperty) {
- let businessObject = ModelUtil.getBusinessObject(element),
- propertyName;
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- if (oldBindingType === 'camunda:field') {
- if (ModelingUtil.isAny(businessObject, ['camunda:ExecutionListener', 'camunda:TaskListener'])) {
- propertyName = 'camunda:fields';
- } else {
- propertyName = 'bpmn:values';
- }
- if (!businessObject || !businessObject.get(propertyName) || !businessObject.get(propertyName).length) {
- return;
- }
- return minDash.find(businessObject.get(propertyName), function (oldBusinessObject) {
- return oldBusinessObject.get('camunda:name') === oldBinding.name;
- });
- }
- if (oldBindingType === 'camunda:in') {
- return minDash.find(businessObject.get('values'), function (oldBusinessObject) {
- return oldBusinessObject.get('target') === oldBinding.target;
- });
- }
- if (oldBindingType === 'camunda:in:businessKey') {
- return minDash.find(businessObject.get('values'), function (oldBusinessObject) {
- return minDash.isString(oldBusinessObject.get('businessKey'));
- });
- }
- if (oldBindingType === 'camunda:out') {
- return minDash.find(businessObject.get('values'), function (oldBusinessObject) {
- return oldBusinessObject.get('source') === oldBinding.source || oldBusinessObject.get('sourceExpression') || oldBinding.sourceExpression;
- });
- }
- if (oldBindingType === 'camunda:inputParameter' || oldBindingType === 'camunda:outputParameter') {
- if (ModelUtil.is(businessObject, 'camunda:Connector')) {
- businessObject = businessObject.get('camunda:inputOutput');
- if (!businessObject) {
- return;
- }
- } else {
- businessObject = findExtension(businessObject, 'camunda:InputOutput');
- if (!businessObject) {
- return;
- }
- }
- if (oldBindingType === 'camunda:inputParameter') {
- return minDash.find(businessObject.get('camunda:inputParameters'), function (oldBusinessObject) {
- return oldBusinessObject.get('camunda:name') === oldBinding.name;
- });
- } else {
- return minDash.find(businessObject.get('camunda:outputParameters'), function (oldBusinessObject) {
- if (oldBinding.scriptFormat) {
- const definition = oldBusinessObject.get('camunda:definition');
- return definition && definition.get('camunda:value') === oldBinding.source;
- } else {
- return oldBusinessObject.get('camunda:value') === oldBinding.source;
- }
- });
- }
- }
- if (oldBindingType === 'camunda:property') {
- if (!businessObject || !businessObject.get('values') || !businessObject.get('values').length) {
- return;
- }
- businessObject = findExtension(businessObject, 'camunda:Properties');
- if (!businessObject) {
- return;
- }
- return minDash.find(businessObject.get('values'), function (oldBusinessObject) {
- return oldBusinessObject.get('camunda:name') === oldBinding.name;
- });
- }
- if (oldBindingType === 'camunda:errorEventDefinition') {
- return findCamundaErrorEventDefinition(element, oldBinding.errorRef);
- }
- }
- /**
- * Find old property matching specified new property.
- *
- * @param {Object} oldTemplate
- * @param {Object} newProperty
- *
- * @returns {Object}
- */
- function findOldProperty(oldTemplate, newProperty) {
- if (!oldTemplate) {
- return;
- }
- const oldProperties = oldTemplate.properties,
- newBinding = newProperty.binding,
- newBindingName = newBinding.name,
- newBindingType = newBinding.type;
- if (newBindingType === 'property') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'property' && oldBindingName === newBindingName;
- });
- }
- if (newBindingType === 'camunda:field') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'camunda:field' && oldBindingName === newBindingName;
- });
- }
- if (newBindingType === 'camunda:in') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'camunda:in') {
- return;
- } // always override if change from source to source expression or vice versa
- if (oldBinding.expression && !newBinding.expression || !oldBinding.expression && newBinding.expression) {
- return;
- }
- return oldBinding.target === newBinding.target;
- });
- }
- if (newBindingType === 'camunda:in:businessKey') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'camunda:in:businessKey';
- });
- }
- if (newBindingType === 'camunda:out') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'camunda:out' && (oldBinding.source === newBinding.source || oldBinding.sourceExpression === newBinding.sourceExpression);
- });
- }
- if (newBindingType === 'camunda:inputParameter') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'camunda:inputParameter') {
- return;
- }
- return oldBindingName === newBindingName && oldBinding.scriptFormat === newBinding.scriptFormat;
- });
- }
- if (newBindingType === 'camunda:outputParameter') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingType = oldBinding.type;
- if (oldBindingType !== 'camunda:outputParameter') {
- return;
- }
- return oldBinding.source === newBinding.source && oldBinding.scriptFormat === newBinding.scriptFormat;
- });
- }
- if (newBindingType === 'camunda:property') {
- return minDash.find(oldProperties, function (oldProperty) {
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'camunda:property' && oldBindingName === newBindingName;
- });
- }
- if (newBindingType === 'camunda:errorEventDefinition') {
- return minDash.find(oldProperties, function (oldProperty) {
- const newBindingRef = newBinding.errorRef,
- oldBinding = oldProperty.binding,
- oldBindingRef = oldBinding.errorRef,
- oldBindingType = oldBinding.type;
- return oldBindingType === 'camunda:errorEventDefinition' && oldBindingRef === newBindingRef;
- });
- }
- }
- function findOldScopeElement(element, scopeTemplate, template) {
- const scopeName = scopeTemplate.type,
- id = scopeTemplate.id;
- if (scopeName === 'camunda:Connector') {
- return findExtension(element, 'camunda:Connector');
- }
- if (scopeName === 'bpmn:Error') {
- // (1) find by error event definition binding
- const errorEventDefinitionBinding = findErrorEventDefinitionBinding(template, id);
- if (!errorEventDefinitionBinding) {
- return;
- } // (2) find error event definition
- const errorEventDefinition = findOldBusinessObject(element, errorEventDefinitionBinding);
- if (!errorEventDefinition) {
- return;
- } // (3) retrieve referenced error
- return errorEventDefinition.errorRef;
- }
- }
- function isRootElementScope(scopeName) {
- return ['bpmn:Error'].includes(scopeName);
- }
- function findOldScopeTemplate(scopeTemplate, oldTemplate) {
- const scopeName = scopeTemplate.type,
- scopeId = scopeTemplate.id,
- scopes = oldTemplate && handleLegacyScopes(oldTemplate.scopes);
- return scopes && minDash.find(scopes, function (scope) {
- if (isRootElementScope(scopeName)) {
- return scope.id === scopeId;
- }
- return scope.type === scopeName;
- });
- }
- function findErrorEventDefinitionBinding(template, templateErrorId) {
- return minDash.find(template.properties, function (property) {
- return property.binding.errorRef === templateErrorId;
- });
- }
- /**
- * Check whether property was changed after being set by template.
- *
- * @param {djs.model.Base|ModdleElement} element
- * @param {Object} oldProperty
- *
- * @returns {boolean}
- */
- function propertyChanged(element, oldProperty) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const oldBinding = oldProperty.binding,
- oldBindingName = oldBinding.name,
- oldBindingType = oldBinding.type,
- oldPropertyValue = oldProperty.value;
- let conditionExpression, definition;
- if (oldBindingType === 'property') {
- if (oldBindingName === 'conditionExpression') {
- conditionExpression = businessObject.get('bpmn:conditionExpression');
- return conditionExpression.get('bpmn:body') !== oldPropertyValue;
- }
- return businessObject.get(oldBindingName) !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:field') {
- return businessObject.get('camunda:string') !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:in') {
- if (oldBinding.expression) {
- return businessObject.get('sourceExpression') !== oldPropertyValue;
- } else {
- return businessObject.get('camunda:source') !== oldPropertyValue;
- }
- }
- if (oldBindingType === 'camunda:in:businessKey') {
- return businessObject.get('camunda:businessKey') !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:out') {
- return businessObject.get('camunda:target') !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:inputParameter') {
- if (oldBinding.scriptFormat) {
- definition = businessObject.get('camunda:definition');
- return definition && definition.get('camunda:value') !== oldPropertyValue;
- } else {
- return businessObject.get('camunda:value') !== oldPropertyValue;
- }
- }
- if (oldBindingType === 'camunda:outputParameter') {
- return businessObject.get('camunda:name') !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:property') {
- return businessObject.get('camunda:value') !== oldPropertyValue;
- }
- if (oldBindingType === 'camunda:errorEventDefinition') {
- return businessObject.get('expression') !== oldPropertyValue;
- }
- }
- function remove(array, item) {
- const index = array.indexOf(item);
- if (minDash.isUndefined(index)) {
- return array;
- }
- array.splice(index, 1);
- return array;
- }
- function registerHandlers(commandStack, elementTemplates, eventBus) {
- commandStack.registerHandler('propertiesPanel.camunda.changeTemplate', ChangeElementTemplateHandler); // apply default element templates on shape creation
- eventBus.on(['commandStack.shape.create.postExecuted'], function (context) {
- applyDefaultTemplate(context.context.shape, elementTemplates, commandStack);
- }); // apply default element templates on connection creation
- eventBus.on(['commandStack.connection.create.postExecuted'], function (context) {
- applyDefaultTemplate(context.context.connection, elementTemplates, commandStack);
- });
- }
- registerHandlers.$inject = ['commandStack', 'elementTemplates', 'eventBus'];
- var commandsModule = {
- __init__: [registerHandlers]
- };
- function applyDefaultTemplate(element, elementTemplates, commandStack) {
- if (!elementTemplates.get(element) && elementTemplates.getDefault(element)) {
- const command = 'propertiesPanel.camunda.changeTemplate';
- const commandContext = {
- element: element,
- newTemplate: elementTemplates.getDefault(element)
- };
- commandStack.execute(command, commandContext);
- }
- }
- const CAMUNDA_ERROR_EVENT_DEFINITION_TYPE$1 = 'camunda:errorEventDefinition';
- const CAMUNDA_EXECUTION_LISTENER_TYPE = 'camunda:executionListener';
- const CAMUNDA_FIELD_TYPE = 'camunda:field';
- const CAMUNDA_IN_BUSINESS_KEY_TYPE = 'camunda:in:businessKey';
- const CAMUNDA_IN_TYPE = 'camunda:in';
- const CAMUNDA_INPUT_PARAMETER_TYPE$1 = 'camunda:inputParameter';
- const CAMUNDA_OUT_TYPE = 'camunda:out';
- const CAMUNDA_OUTPUT_PARAMETER_TYPE$1 = 'camunda:outputParameter';
- const CAMUNDA_PROPERTY_TYPE = 'camunda:property';
- const PROPERTY_TYPE = 'property';
- const EXTENSION_BINDING_TYPES = [CAMUNDA_ERROR_EVENT_DEFINITION_TYPE$1, CAMUNDA_FIELD_TYPE, CAMUNDA_IN_TYPE, CAMUNDA_IN_BUSINESS_KEY_TYPE, CAMUNDA_INPUT_PARAMETER_TYPE$1, CAMUNDA_OUT_TYPE, CAMUNDA_OUTPUT_PARAMETER_TYPE$1, CAMUNDA_PROPERTY_TYPE];
- const IO_BINDING_TYPES = [CAMUNDA_INPUT_PARAMETER_TYPE$1, CAMUNDA_OUTPUT_PARAMETER_TYPE$1];
- const IN_OUT_BINDING_TYPES = [CAMUNDA_IN_BUSINESS_KEY_TYPE, CAMUNDA_IN_TYPE, CAMUNDA_OUT_TYPE];
- const PRIMITIVE_MODDLE_TYPES = ['Boolean', 'Integer', 'String'];
- const DEFAULT_CUSTOM_GROUP = {
- id: 'ElementTemplates__CustomProperties',
- label: 'Custom properties'
- };
- function CustomProperties(props) {
- const {
- element,
- elementTemplate
- } = props;
- const groups = [];
- const {
- id,
- properties,
- groups: propertyGroups,
- scopes
- } = elementTemplate; // (1) group properties by group id
- const groupedProperties = groupByGroupId(properties);
- const defaultProps = [];
- minDash.forEach(groupedProperties, (properties, groupId) => {
- const group = findCustomGroup(propertyGroups, groupId);
- if (!group) {
- return defaultProps.push(...properties);
- }
- addCustomGroup(groups, {
- element,
- id: `ElementTemplates__CustomProperties-${groupId}`,
- label: group.label,
- properties: properties,
- templateId: `${id}-${groupId}`
- });
- }); // (2) add default custom props
- if (defaultProps.length) {
- addCustomGroup(groups, { ...DEFAULT_CUSTOM_GROUP,
- element,
- properties: defaultProps,
- templateId: id
- });
- } // (3) add custom scopes props
- if (minDash.isArray(scopes)) {
- scopes.forEach(scope => {
- const {
- properties,
- type
- } = scope;
- const id = type.replace(/:/g, '-');
- addCustomGroup(groups, {
- element,
- id: `ElementTemplates__CustomGroup-${id}`,
- label: `Custom properties for scope <${type}>`,
- properties,
- templateId: id,
- scope
- });
- });
- }
- return groups;
- }
- function addCustomGroup(groups, props) {
- const {
- element,
- id,
- label,
- properties,
- scope,
- templateId
- } = props;
- const customPropertiesGroup = {
- id,
- label,
- component: propertiesPanel.Group,
- entries: [],
- shouldOpen: true
- };
- properties.forEach((property, index) => {
- const entry = createCustomEntry(`custom-entry-${templateId}-${index}`, element, property, scope);
- if (entry) {
- customPropertiesGroup.entries.push(entry);
- }
- });
- if (customPropertiesGroup.entries.length) {
- groups.push(customPropertiesGroup);
- }
- }
- function createCustomEntry(id, element, property, scope) {
- let {
- type
- } = property;
- if (!type) {
- type = getDefaultType(property);
- }
- if (type === 'Boolean') {
- return {
- id,
- component: BooleanProperty,
- isEdited: propertiesPanel.isCheckboxEntryEdited,
- property,
- scope
- };
- }
- if (type === 'Dropdown') {
- return {
- id,
- component: DropdownProperty,
- isEdited: propertiesPanel.isSelectEntryEdited,
- property,
- scope
- };
- }
- if (type === 'String') {
- return {
- id,
- component: StringProperty,
- isEdited: propertiesPanel.isTextFieldEntryEdited,
- property,
- scope
- };
- }
- if (type === 'Text') {
- return {
- id,
- component: TextAreaProperty,
- isEdited: propertiesPanel.isTextAreaEntryEdited,
- property,
- scope
- };
- }
- }
- function getDefaultType(property) {
- const {
- binding
- } = property;
- const {
- type
- } = binding;
- if ([PROPERTY_TYPE, CAMUNDA_PROPERTY_TYPE, CAMUNDA_IN_TYPE, CAMUNDA_IN_BUSINESS_KEY_TYPE, CAMUNDA_OUT_TYPE, CAMUNDA_FIELD_TYPE].includes(type)) {
- return 'String';
- }
- if (type === CAMUNDA_EXECUTION_LISTENER_TYPE) {
- return 'Hidden';
- }
- }
- function BooleanProperty(props) {
- const {
- element,
- id,
- property,
- scope
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack');
- return propertiesPanel.CheckboxEntry({
- element,
- getValue: propertyGetter(element, property, scope),
- id,
- label,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter(bpmnFactory, commandStack, element, property, scope),
- disabled: editable === false
- });
- }
- function DropdownProperty(props) {
- const {
- element,
- id,
- property,
- scope
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack');
- const getOptions = () => {
- const {
- choices
- } = property;
- return choices.map(({
- name,
- value
- }) => {
- return {
- label: name,
- value
- };
- });
- };
- return propertiesPanel.SelectEntry({
- element,
- id,
- label,
- getOptions,
- description: PropertyDescription({
- description
- }),
- getValue: propertyGetter(element, property, scope),
- setValue: propertySetter(bpmnFactory, commandStack, element, property, scope),
- disabled: editable === false
- });
- }
- function StringProperty(props) {
- const {
- element,
- id,
- property,
- scope
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput'),
- translate = useService('translate');
- return propertiesPanel.TextFieldEntry({
- debounce,
- element,
- getValue: propertyGetter(element, property, scope),
- id,
- label,
- description: PropertyDescription({
- description
- }),
- setValue: propertySetter(bpmnFactory, commandStack, element, property, scope),
- validate: propertyValidator(translate, property),
- disabled: editable === false
- });
- }
- function TextAreaProperty(props) {
- const {
- element,
- id,
- property,
- scope
- } = props;
- const {
- description,
- editable,
- label
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- commandStack = useService('commandStack'),
- debounce = useService('debounceInput');
- return propertiesPanel.TextAreaEntry({
- debounce,
- element,
- id,
- label,
- description: PropertyDescription({
- description
- }),
- getValue: propertyGetter(element, property, scope),
- setValue: propertySetter(bpmnFactory, commandStack, element, property, scope),
- disabled: editable === false
- });
- }
- function propertyGetter(element, property, scope) {
- return function getValue() {
- let businessObject = ModelUtil.getBusinessObject(element);
- const {
- binding,
- value: defaultValue = ''
- } = property;
- const {
- name,
- type
- } = binding;
- if (scope) {
- businessObject = getScopeBusinessObject(businessObject, scope);
- if (!businessObject) {
- return defaultValue;
- }
- } // property
- if (type === 'property') {
- const value = businessObject.get(name);
- if (name === 'conditionExpression') {
- if (value) {
- return value.get('body');
- }
- return defaultValue;
- } else {
- if (!minDash.isUndefined(value)) {
- return value;
- }
- return defaultValue;
- }
- } // camunda:ErrorEventDefinition
- if (type === CAMUNDA_ERROR_EVENT_DEFINITION_TYPE$1) {
- const {
- errorRef
- } = binding;
- const errorEventDefinition = findCamundaErrorEventDefinition(businessObject, errorRef);
- if (errorEventDefinition) {
- return errorEventDefinition.get('camunda:expression');
- } else {
- return '';
- }
- } // camunda:Field
- if (type === CAMUNDA_FIELD_TYPE) {
- const camundaFields = findExtensions(businessObject, ['camunda:Field']);
- const camundaField = camundaFields.find(camundaField => {
- return camundaField.get('camunda:name') === name;
- });
- if (camundaField) {
- return camundaField.get('camunda:string') || camundaField.get('camunda:expression');
- } else {
- return '';
- }
- } // camunda:Property
- if (type === CAMUNDA_PROPERTY_TYPE) {
- let camundaProperties;
- if (scope) {
- // TODO(philippfromme): as ony bpmn:Error and camunda:Connector are supported this code is practically dead
- camundaProperties = businessObject.get('properties');
- } else {
- camundaProperties = findExtension(businessObject, 'camunda:Properties');
- }
- if (camundaProperties) {
- const camundaProperty = findCamundaProperty(camundaProperties, binding);
- if (camundaProperty) {
- return camundaProperty.get('camunda:value');
- }
- }
- return defaultValue;
- }
- if (IO_BINDING_TYPES.includes(type)) {
- let inputOutput;
- if (scope) {
- inputOutput = businessObject.get('inputOutput');
- } else {
- inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- }
- if (!inputOutput) {
- return defaultValue;
- } // camunda:InputParameter
- if (type === CAMUNDA_INPUT_PARAMETER_TYPE$1) {
- const inputParameter = findInputParameter(inputOutput, binding);
- if (inputParameter) {
- const {
- scriptFormat
- } = binding;
- if (scriptFormat) {
- const definition = inputParameter.get('camunda:definition');
- if (definition) {
- return definition.get('camunda:value');
- }
- } else {
- return inputParameter.get('value') || '';
- }
- }
- return defaultValue;
- } // camunda:OutputParameter
- if (type === CAMUNDA_OUTPUT_PARAMETER_TYPE$1) {
- const outputParameter = findOutputParameter(inputOutput, binding);
- if (outputParameter) {
- return outputParameter.get('camunda:name');
- }
- return defaultValue;
- }
- } // camunda:In and camunda:Out
- if (IN_OUT_BINDING_TYPES.includes(type)) {
- const camundaInOut = findCamundaInOut(businessObject, binding);
- if (camundaInOut) {
- if (type === CAMUNDA_IN_BUSINESS_KEY_TYPE) {
- return camundaInOut.get('camunda:businessKey');
- } else if (type === CAMUNDA_OUT_TYPE) {
- return camundaInOut.get('camunda:target');
- } else if (type === CAMUNDA_IN_TYPE) {
- const {
- expression
- } = binding;
- if (expression) {
- return camundaInOut.get('camunda:sourceExpression');
- } else {
- return camundaInOut.get('camunda:source');
- }
- }
- }
- return defaultValue;
- } // should never throw as templates are validated beforehand
- throw unknownBindingError(element, property);
- };
- }
- function propertySetter(bpmnFactory, commandStack, element, property, scope) {
- return function setValue(value) {
- let businessObject = ModelUtil.getBusinessObject(element);
- const {
- binding
- } = property;
- const {
- name,
- type
- } = binding;
- const rootElement = getRoot(businessObject);
- let extensionElements;
- let propertyValue;
- const commands = [];
- if (EXTENSION_BINDING_TYPES.includes(type)) {
- extensionElements = businessObject.get('extensionElements');
- if (!extensionElements) {
- extensionElements = createElement('bpmn:ExtensionElements', null, businessObject, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- extensionElements
- }
- }
- });
- }
- }
- if (scope) {
- businessObject = getScopeBusinessObject(businessObject, scope);
- if (!businessObject) {
- // bpmn:Error
- if (scope.type === 'bpmn:Error') {
- businessObject = createError(scope.id, rootElement, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: rootElement,
- properties: {
- rootElements: [...rootElement.get('rootElements'), businessObject]
- }
- }
- });
- } else {
- businessObject = createElement(scope.type, null, element, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), businessObject]
- }
- }
- });
- }
- }
- } // property
- if (type === 'property') {
- if (name === 'conditionExpression') {
- const {
- scriptFormat
- } = binding;
- propertyValue = createElement('bpmn:FormalExpression', {
- body: value,
- language: scriptFormat
- }, businessObject, bpmnFactory);
- } else {
- const propertyDescriptor = businessObject.$descriptor.propertiesByName[name];
- const {
- type: propertyType
- } = propertyDescriptor; // do not override non-primitive types
- if (!PRIMITIVE_MODDLE_TYPES.includes(propertyType)) {
- throw new Error(`cannot set property of type <${propertyType}>`);
- }
- if (propertyType === 'Boolean') {
- propertyValue = !!value;
- } else if (propertyType === 'Integer') {
- propertyValue = parseInt(value, 10);
- if (isNaN(propertyValue)) {
- // do not set NaN value
- propertyValue = undefined;
- }
- } else {
- // make sure we don't remove the property
- propertyValue = value || '';
- }
- }
- if (!minDash.isUndefined(propertyValue)) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- [name]: propertyValue
- }
- }
- });
- }
- } // camunda:ErrorEventDefinition
- if (type === CAMUNDA_ERROR_EVENT_DEFINITION_TYPE$1) {
- const {
- errorRef
- } = binding;
- const oldCamundaErrorEventDefinition = findCamundaErrorEventDefinition(businessObject, errorRef);
- if (oldCamundaErrorEventDefinition) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: oldCamundaErrorEventDefinition,
- properties: {
- 'camunda:expression': value
- }
- }
- });
- } else {
- const newError = createError(binding.errorRef, rootElement, bpmnFactory),
- newCamundaErrorEventDefinition = createCamundaErrorEventDefinition(value, newError, extensionElements, bpmnFactory);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: rootElement,
- properties: {
- rootElements: [...rootElement.get('rootElements'), newError]
- }
- }
- });
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), newCamundaErrorEventDefinition]
- }
- }
- });
- }
- } // camunda:Field
- if (type === CAMUNDA_FIELD_TYPE) {
- const oldCamundaFields = findExtensions(businessObject, ['camunda:Field']);
- const newCamundaFields = [];
- if (oldCamundaFields.length) {
- oldCamundaFields.forEach(camundaField => {
- if (camundaField.name === name) {
- newCamundaFields.push(createCamundaFieldInjection(binding, value, bpmnFactory));
- } else {
- newCamundaFields.push(camundaField);
- }
- });
- } else {
- newCamundaFields.push(createCamundaFieldInjection(binding, value, bpmnFactory));
- }
- const values = extensionElements.get('values').filter(value => !oldCamundaFields.includes(value));
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...values, ...newCamundaFields]
- }
- }
- });
- } // camunda:Property
- if (type === CAMUNDA_PROPERTY_TYPE) {
- let camundaProperties;
- if (scope) {
- camundaProperties = businessObject.get('properties');
- } else {
- camundaProperties = findExtension(extensionElements, 'camunda:Properties');
- }
- if (!camundaProperties) {
- camundaProperties = createElement('camunda:Properties', null, businessObject, bpmnFactory);
- if (scope) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- properties: camundaProperties
- }
- }
- });
- } else {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), camundaProperties]
- }
- }
- });
- }
- }
- const oldCamundaProperty = findCamundaProperty(camundaProperties, binding);
- const newCamundaProperty = createCamundaProperty(binding, value, bpmnFactory);
- const values = camundaProperties.get('values').filter(value => value !== oldCamundaProperty);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: camundaProperties,
- properties: {
- values: [...values, newCamundaProperty]
- }
- }
- });
- }
- if (IO_BINDING_TYPES.includes(type)) {
- let inputOutput;
- if (scope) {
- inputOutput = businessObject.get('inputOutput');
- } else {
- inputOutput = findExtension(extensionElements, 'camunda:InputOutput');
- }
- if (!inputOutput) {
- inputOutput = createElement('camunda:InputOutput', null, businessObject, bpmnFactory);
- if (scope) {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: businessObject,
- properties: {
- inputOutput
- }
- }
- });
- } else {
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...extensionElements.get('values'), inputOutput]
- }
- }
- });
- }
- } // camunda:InputParameter
- if (type === CAMUNDA_INPUT_PARAMETER_TYPE$1) {
- const oldCamundaInputParameter = findInputParameter(inputOutput, binding);
- const newCamundaInputParameter = createInputParameter(binding, value, bpmnFactory);
- const values = inputOutput.get('camunda:inputParameters').filter(value => value !== oldCamundaInputParameter);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: inputOutput,
- properties: {
- 'camunda:inputParameters': [...values, newCamundaInputParameter]
- }
- }
- });
- } // camunda:OutputParameter
- if (type === CAMUNDA_OUTPUT_PARAMETER_TYPE$1) {
- const oldCamundaOutputParameter = findOutputParameter(inputOutput, binding);
- const newCamundaOutputParameter = createOutputParameter(binding, value, bpmnFactory);
- const values = inputOutput.get('camunda:outputParameters').filter(value => value !== oldCamundaOutputParameter);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: inputOutput,
- properties: {
- 'camunda:outputParameters': [...values, newCamundaOutputParameter]
- }
- }
- });
- }
- } // camunda:In and camunda:Out
- if (IN_OUT_BINDING_TYPES.includes(type)) {
- const oldCamundaInOut = findCamundaInOut(businessObject, binding);
- let newCamundaInOut;
- if (type === CAMUNDA_IN_TYPE) {
- newCamundaInOut = createCamundaIn(binding, value, bpmnFactory);
- } else if (type === CAMUNDA_OUT_TYPE) {
- newCamundaInOut = createCamundaOut(binding, value, bpmnFactory);
- } else {
- newCamundaInOut = createCamundaInWithBusinessKey(value, bpmnFactory);
- }
- const values = extensionElements.get('values').filter(value => value !== oldCamundaInOut);
- commands.push({
- cmd: 'element.updateModdleProperties',
- context: {
- element,
- moddleElement: extensionElements,
- properties: {
- values: [...values, newCamundaInOut]
- }
- }
- });
- }
- if (commands.length) {
- commandStack.execute('properties-panel.multi-command-executor', commands);
- return;
- } // should never throw as templates are validated beforehand
- throw unknownBindingError(element, property);
- };
- }
- function propertyValidator(translate, property) {
- return function validate(value) {
- const {
- constraints = {}
- } = property;
- const {
- maxLength,
- minLength,
- notEmpty
- } = constraints;
- if (notEmpty && isEmptyString(value)) {
- return translate('Must not be empty.');
- }
- if (maxLength && value.length > maxLength) {
- return translate('Must have max length {maxLength}.', {
- maxLength
- });
- }
- if (minLength && value.length < minLength) {
- return translate('Must have min length {minLength}.', {
- minLength
- });
- }
- let {
- pattern
- } = constraints;
- if (pattern) {
- let message;
- if (!minDash.isString(pattern)) {
- message = pattern.message;
- pattern = pattern.value;
- }
- if (!matchesPattern(value, pattern)) {
- return message || translate('Must match pattern {pattern}.', {
- pattern
- });
- }
- }
- };
- }
- function getScopeBusinessObject(businessObject, scope) {
- const {
- id,
- type
- } = scope;
- if (type === 'bpmn:Error') {
- // retrieve error through referenced error event definition
- const errorEventDefinition = findCamundaErrorEventDefinition(businessObject, id);
- if (errorEventDefinition) {
- return errorEventDefinition.get('errorRef');
- }
- }
- return findExtension(businessObject, type);
- }
- function unknownBindingError(element, property) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const id = businessObject.get('id');
- const {
- binding
- } = property;
- const {
- type
- } = binding;
- return new Error(`unknown binding <${type}> for element <${id}>, this should never happen`);
- }
- function isEmptyString(string) {
- return !string || !string.trim().length;
- }
- function matchesPattern(string, pattern) {
- return new RegExp(pattern).test(string);
- }
- function groupByGroupId(properties) {
- return minDash.groupBy(properties, 'group');
- }
- function findCustomGroup(groups, id) {
- return minDash.find(groups, g => g.id === id);
- }
- function ErrorProperties(props) {
- const {
- element,
- index,
- property
- } = props;
- const {
- binding,
- label
- } = property;
- const {
- errorRef
- } = binding;
- const businessObject = ModelUtil.getBusinessObject(element),
- errorEventDefinitions = findExtensions(businessObject, ['camunda:ErrorEventDefinition']);
- if (!errorEventDefinitions.length) {
- return;
- }
- const errorEventDefinition = findCamundaErrorEventDefinition(element, errorRef);
- const id = `${element.id}-errorEventDefinition-${index}`;
- let entries = [];
- entries = Error$1({
- idPrefix: id,
- element,
- errorEventDefinition
- }); // (1) remove global error referenced entry
- // entries.shift();
- entries = removeEntry$1(entries, '-errorRef'); // (2) remove throw expression input
- // entries.pop();
- entries = removeEntry$1(entries, '-expression'); // (3) add disabled throw expression input
- entries.push({
- id: `${id}-expression`,
- component: Expression,
- errorEventDefinition,
- property
- });
- const item = {
- id,
- label: label || getErrorLabel(errorEventDefinition),
- entries
- };
- return item;
- }
- function Expression(props) {
- const {
- errorEventDefinition,
- id
- } = props;
- const translate = useService('translate');
- const debounce = useService('debounceInput');
- const setValue = () => {};
- const getValue = () => {
- return errorEventDefinition.get('camunda:expression');
- };
- return propertiesPanel.TextFieldEntry({
- element: errorEventDefinition,
- id,
- label: translate('Throw expression'),
- getValue,
- setValue,
- debounce,
- disabled: true
- });
- }
- function removeEntry$1(entries, suffix) {
- const entry = entries.find(({
- id
- }) => id.endsWith(suffix));
- return minDash.without(entries, entry);
- }
- function InputProperties(props) {
- const {
- element,
- index,
- property
- } = props;
- const {
- binding,
- description,
- label
- } = property;
- const {
- name
- } = binding;
- const businessObject = ModelUtil.getBusinessObject(element),
- inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- const inputParameter = inputOutput && findInputParameter(inputOutput, binding);
- const id = `${element.id}-inputParameter-${index}`;
- let entries = [];
- if (inputParameter) {
- entries = InputOutputParameter({
- idPrefix: id,
- element,
- parameter: inputParameter
- }); // (1) remove name entry
- entries = removeEntry(entries, '-name');
- } // (2) add local variable assignment entry
- entries.unshift({
- id: `${id}-local-variable-assignment`,
- component: LocalVariableAssignment,
- inputParameter,
- property
- }); // (3) add description entry
- if (description) {
- entries.unshift({
- id: `${id}-description`,
- component: Description$1,
- text: description
- });
- } // @barmac: binding#name is required so there is no third option
- const item = {
- id,
- label: label || name,
- entries
- };
- return item;
- } // TODO(philippfromme): add text entry to properties-panel
- function Description$1(props) {
- const {
- id,
- text
- } = props;
- return jsxRuntime.jsx("div", {
- class: "bio-properties-panel-entry",
- "data-entry-id": id,
- children: jsxRuntime.jsx("div", {
- class: "bio-properties-panel-description",
- children: jsxRuntime.jsx(PropertyDescription, {
- description: text
- })
- })
- });
- }
- function LocalVariableAssignment(props) {
- const {
- element,
- id,
- property,
- inputParameter
- } = props;
- const {
- binding
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- modeling = useService('modeling'),
- translate = useService('translate');
- const getValue = () => {
- return inputParameter;
- };
- const setValue = value => {
- if (value) {
- addInputParameter(element, property, bpmnFactory, modeling);
- } else {
- removeInputParameter(element, binding, modeling);
- }
- };
- return propertiesPanel.ToggleSwitchEntry({
- id,
- label: translate('Local variable assignment'),
- switcherLabel: inputParameter ? translate('On') : translate('Off'),
- description: inputParameter ? '' : translate('Parameter won\'t be created as local variable.'),
- getValue,
- setValue
- });
- }
- function addInputParameter(element, property, bpmnFactory, modeling) {
- const {
- binding,
- value
- } = property;
- const businessObject = ModelUtil.getBusinessObject(element);
- const extensionElements = businessObject.get('extensionElements');
- const inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- let updatedBusinessObject, update;
- if (!extensionElements) {
- updatedBusinessObject = businessObject;
- const extensionElements = createExtensionElements$1(businessObject, bpmnFactory),
- inputOutput = createInputOutput$1(binding, value, bpmnFactory, extensionElements);
- extensionElements.values.push(inputOutput);
- update = {
- extensionElements
- };
- } else if (!inputOutput) {
- updatedBusinessObject = extensionElements;
- const inputOutput = createInputOutput$1(binding, value, bpmnFactory, extensionElements);
- update = {
- values: extensionElements.get('values').concat(inputOutput)
- };
- } else {
- updatedBusinessObject = inputOutput;
- const inputParameter = createInputParameter(binding, value, bpmnFactory);
- inputParameter.$parent = inputOutput;
- update = {
- inputParameters: inputOutput.get('camunda:inputParameters').concat(inputParameter)
- };
- }
- modeling.updateModdleProperties(element, updatedBusinessObject, update);
- }
- function removeInputParameter(element, binding, modeling) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const inputOutput = findExtension(businessObject, 'camunda:InputOutput'),
- inputParameters = inputOutput.get('camunda:inputParameters');
- const inputParameter = findInputParameter(inputOutput, binding);
- modeling.updateModdleProperties(element, inputOutput, {
- inputParameters: minDash.without(inputParameters, inputParameter)
- });
- }
- function removeEntry(entries, suffix) {
- const entry = entries.find(({
- id
- }) => id.endsWith(suffix));
- return minDash.without(entries, entry);
- }
- function createExtensionElements$1(businessObject, bpmnFactory) {
- return createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- }
- function createInputOutput$1(binding, value, bpmnFactory, extensionElements) {
- const inputParameter = createInputParameter(binding, value, bpmnFactory);
- const inputOutput = createElement('camunda:InputOutput', {
- inputParameters: [inputParameter],
- outputParameters: []
- }, extensionElements, bpmnFactory);
- inputParameter.$parent = inputOutput;
- return inputOutput;
- }
- function OutputProperties(props) {
- const {
- element,
- index,
- injector,
- property
- } = props;
- const {
- binding,
- description,
- label
- } = property;
- const {
- name
- } = binding;
- const businessObject = ModelUtil.getBusinessObject(element),
- inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- const translate = injector.get('translate');
- const outputParameter = inputOutput && findOutputParameter(inputOutput, binding);
- const id = `${element.id}-outputParameter-${index}`;
- let entries = []; // (1) add description entry
- if (description) {
- entries.push({
- id: `${id}-description`,
- component: Description,
- text: description
- });
- } // (2) add local variable assignment entry
- entries.push({
- id: `${id}-local-variable-assignment`,
- component: ProcessVariableAssignment,
- outputParameter,
- property
- });
- if (outputParameter) {
- // (3) add assign to process variable entry
- entries.push({
- id: `${id}-assign-to-process-variable`,
- component: AssignToProcessVariable,
- property
- });
- }
- const item = {
- id,
- label: label || name || translate('<unnamed>'),
- entries
- };
- return item;
- } // TODO(philippfromme): add text entry to properties-panel
- function Description(props) {
- const {
- id,
- text
- } = props;
- return jsxRuntime.jsx("div", {
- class: "bio-properties-panel-entry",
- "data-entry-id": id,
- children: jsxRuntime.jsx("div", {
- class: "bio-properties-panel-description",
- children: jsxRuntime.jsx(PropertyDescription, {
- description: text
- })
- })
- });
- }
- function ProcessVariableAssignment(props) {
- const {
- element,
- id,
- property,
- outputParameter
- } = props;
- const {
- binding
- } = property;
- const bpmnFactory = useService('bpmnFactory'),
- modeling = useService('modeling'),
- translate = useService('translate');
- const getValue = () => {
- return outputParameter;
- };
- const setValue = value => {
- if (value) {
- addOutputParameter(element, property, bpmnFactory, modeling);
- } else {
- removeOutputParameter(element, binding, modeling);
- }
- };
- return propertiesPanel.ToggleSwitchEntry({
- id,
- label: translate('Process variable assignment'),
- switcherLabel: outputParameter ? translate('On') : translate('Off'),
- description: outputParameter ? '' : translate('Parameter won\'t be available in process scope.'),
- getValue,
- setValue
- });
- }
- function AssignToProcessVariable(props) {
- const {
- element,
- id,
- property
- } = props;
- const {
- binding
- } = property;
- const inputOutput = findExtension(element, 'camunda:InputOutput'),
- outputParameter = findOutputParameter(inputOutput, binding);
- const commandStack = useService('commandStack'),
- debounce = useService('debounceInput'),
- translate = useService('translate');
- const setValue = value => {
- commandStack.execute('element.updateModdleProperties', {
- element,
- moddleElement: outputParameter,
- properties: {
- name: value
- }
- });
- };
- const getValue = () => {
- return outputParameter.get('camunda:name');
- };
- const validate = value => {
- if (!value) {
- return translate('Process variable name must not be empty.');
- } else if (containsSpace(value)) {
- return translate('Process variable name must not contain spaces.');
- }
- };
- return propertiesPanel.TextFieldEntry({
- debounce,
- element: outputParameter,
- id,
- label: translate('Assign to process variable'),
- getValue,
- setValue,
- validate
- });
- }
- function addOutputParameter(element, property, bpmnFactory, modeling) {
- const {
- binding,
- value
- } = property;
- const businessObject = ModelUtil.getBusinessObject(element);
- const extensionElements = businessObject.get('extensionElements');
- const inputOutput = findExtension(businessObject, 'camunda:InputOutput');
- let updatedBusinessObject, update;
- if (!extensionElements) {
- updatedBusinessObject = businessObject;
- const extensionElements = createExtensionElements(businessObject, bpmnFactory),
- inputOutput = createInputOutput(binding, value, bpmnFactory, extensionElements);
- extensionElements.values.push(inputOutput);
- update = {
- extensionElements
- };
- } else if (!inputOutput) {
- updatedBusinessObject = extensionElements;
- const inputOutput = createInputOutput(binding, value, bpmnFactory, extensionElements);
- update = {
- values: extensionElements.get('values').concat(inputOutput)
- };
- } else {
- updatedBusinessObject = inputOutput;
- const outputParameter = createOutputParameter(binding, value, bpmnFactory);
- outputParameter.$parent = inputOutput;
- update = {
- outputParameters: inputOutput.get('camunda:outputParameters').concat(outputParameter)
- };
- }
- modeling.updateModdleProperties(element, updatedBusinessObject, update);
- }
- function removeOutputParameter(element, binding, modeling) {
- const businessObject = ModelUtil.getBusinessObject(element);
- const inputOutput = findExtension(businessObject, 'camunda:InputOutput'),
- outputParameters = inputOutput.get('camunda:outputParameters');
- const outputParameter = findOutputParameter(inputOutput, binding);
- modeling.updateModdleProperties(element, inputOutput, {
- outputParameters: minDash.without(outputParameters, outputParameter)
- });
- }
- function createExtensionElements(businessObject, bpmnFactory) {
- return createElement('bpmn:ExtensionElements', {
- values: []
- }, businessObject, bpmnFactory);
- }
- function createInputOutput(binding, value, bpmnFactory, extensionElements) {
- const outputParameter = createOutputParameter(binding, value, bpmnFactory);
- const inputOutput = createElement('camunda:InputOutput', {
- inputParameters: [],
- outputParameters: [outputParameter]
- }, extensionElements, bpmnFactory);
- outputParameter.$parent = inputOutput;
- return inputOutput;
- }
- const CAMUNDA_ERROR_EVENT_DEFINITION_TYPE = 'camunda:errorEventDefinition',
- CAMUNDA_INPUT_PARAMETER_TYPE = 'camunda:inputParameter',
- CAMUNDA_OUTPUT_PARAMETER_TYPE = 'camunda:outputParameter';
- const LOWER_PRIORITY = 300;
- class ElementTemplatesPropertiesProvider {
- constructor(elementTemplates, propertiesPanel, injector) {
- propertiesPanel.registerProvider(LOWER_PRIORITY, this);
- this._elementTemplates = elementTemplates;
- this._injector = injector;
- }
- getGroups(element) {
- return groups => {
- const injector = this._injector;
- if (!this._shouldShowTemplateProperties(element)) {
- return groups;
- } // (0) Copy provided groups
- groups = groups.slice();
- const templatesGroup = {
- element,
- id: 'ElementTemplates__Template',
- label: 'Template',
- component: createElementTemplatesGroup(),
- entries: TemplateProps({
- element,
- elementTemplates: this._elementTemplates
- })
- }; // (1) Add templates group
- addGroupsAfter('documentation', groups, [templatesGroup]);
- const elementTemplate = this._elementTemplates.get(element);
- if (elementTemplate) {
- const templateSpecificGroups = [].concat(createInputGroup(element, elementTemplate, injector) || [], createOutputGroup(element, elementTemplate, injector) || [], createErrorGroup(element, elementTemplate, injector) || [], CustomProperties({
- element,
- elementTemplate
- })); // (2) add template-specific properties groups
- addGroupsAfter('ElementTemplates__Template', groups, templateSpecificGroups);
- } // (3) apply entries visible
- if (getTemplateId(element)) {
- groups = filterWithEntriesVisible(elementTemplate || {}, groups);
- }
- return groups;
- };
- }
- _shouldShowTemplateProperties(element) {
- return getTemplateId(element) || this._elementTemplates.getAll(element).length;
- }
- }
- ElementTemplatesPropertiesProvider.$inject = ['elementTemplates', 'propertiesPanel', 'injector']; // helper /////////////////////
- function createInputGroup(element, elementTemplate, injector) {
- const translate = injector.get('translate');
- const group = {
- label: translate('Inputs'),
- id: 'ElementTemplates__Input',
- component: propertiesPanel.ListGroup,
- items: []
- };
- const properties = elementTemplate.properties.filter(({
- binding,
- type
- }) => {
- return !type && binding.type === CAMUNDA_INPUT_PARAMETER_TYPE;
- });
- properties.forEach((property, index) => {
- const item = InputProperties({
- element,
- index,
- property
- });
- if (item) {
- group.items.push(item);
- }
- }); // remove if empty
- if (!group.items.length) {
- return null;
- }
- return group;
- }
- function createOutputGroup(element, elementTemplate, injector) {
- const translate = injector.get('translate');
- const group = {
- label: translate('Outputs'),
- id: 'ElementTemplates__Output',
- component: propertiesPanel.ListGroup,
- items: []
- };
- const properties = elementTemplate.properties.filter(({
- binding,
- type
- }) => {
- return !type && binding.type === CAMUNDA_OUTPUT_PARAMETER_TYPE;
- });
- properties.forEach((property, index) => {
- const item = OutputProperties({
- element,
- index,
- property,
- injector
- });
- if (item) {
- group.items.push(item);
- }
- }); // remove if empty
- if (!group.items.length) {
- return null;
- }
- return group;
- }
- function createErrorGroup(element, elementTemplate, injector) {
- const translate = injector.get('translate');
- const group = {
- label: translate('Errors'),
- id: 'ElementTemplates__Error',
- component: propertiesPanel.ListGroup,
- items: []
- };
- const properties = elementTemplate.properties.filter(({
- binding,
- type
- }) => {
- return !type && binding.type === CAMUNDA_ERROR_EVENT_DEFINITION_TYPE;
- });
- properties.forEach((property, index) => {
- const item = ErrorProperties({
- element,
- index,
- property
- });
- if (item) {
- group.items.push(item);
- }
- }); // remove if empty
- if (!group.items.length) {
- return null;
- }
- return group;
- }
- /**
- *
- * @param {string} id
- * @param {Array<{ id: string }} groups
- * @param {Array<{ id: string }>} groupsToAdd
- */
- function addGroupsAfter(id, groups, groupsToAdd) {
- const index = groups.findIndex(group => group.id === id);
- if (index !== -1) {
- groups.splice(index + 1, 0, ...groupsToAdd);
- } else {
- // add in the beginning if group with provided id is missing
- groups.unshift(...groupsToAdd);
- }
- }
- function filterWithEntriesVisible(template, groups) {
- if (!template.entriesVisible) {
- return groups.filter(group => {
- return group.id === 'general' || group.id.startsWith('ElementTemplates__');
- });
- }
- return groups;
- }
- var index = {
- __depends__: [commandsModule, translateModule__default["default"], camundaPlatformPropertiesProviderModule],
- __init__: ['elementTemplatesLoader', 'replaceBehavior', 'elementTemplatesPropertiesProvider'],
- elementTemplates: ['type', ElementTemplates$1],
- elementTemplatesLoader: ['type', ElementTemplatesLoader$1],
- replaceBehavior: ['type', ReplaceBehavior],
- elementTemplatesPropertiesProvider: ['type', ElementTemplatesPropertiesProvider]
- };
- /* eslint-disable react-hooks/rules-of-hooks */
- const DescriptionProvider = {
- assignmentDefinitionAssignee: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#assignments",
- target: "_blank",
- rel: "noopener",
- title: translate('User task documentation'),
- children: translate('How to configure a user task')
- });
- },
- conditionExpression: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/exclusive-gateways/#conditions",
- target: "_blank",
- rel: "noopener",
- title: translate('Conditions documentation'),
- children: translate('How to define conditions')
- });
- },
- decisionId: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#defining-a-task",
- target: "_blank",
- rel: "noopener",
- title: translate('Business rule task documentation'),
- children: translate('How to configure a business rule task')
- });
- },
- formType: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/user-tasks/#user-task-forms",
- target: "_blank",
- rel: "noopener",
- title: translate('User task form documentation'),
- children: translate('How to link a form')
- });
- },
- messageSubscriptionCorrelationKey: element => {
- const translate = useService('translate');
- if (ModelUtil.is(element, 'bpmn:ReceiveTask')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/receive-tasks/#messages",
- target: "_blank",
- rel: "noopener",
- title: translate('Receive task documentation'),
- children: translate('How to configure a receive task')
- });
- }
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#messages",
- target: "_blank",
- rel: "noopener",
- title: translate('Message event documentation'),
- children: translate('How to configure a message event')
- });
- },
- messageName: element => {
- const translate = useService('translate');
- if (ModelUtil.is(element, 'bpmn:StartEvent') && !isInEventSubProcess(element)) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#messages",
- target: "_blank",
- rel: "noopener",
- title: translate('Message event documentation'),
- children: translate('How to configure a message event')
- });
- }
- },
- targetProcessId: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/call-activities/",
- target: "_blank",
- rel: "noopener",
- title: translate('Call activity documentation'),
- children: translate('How to call another process')
- });
- },
- taskDefinitionType: element => {
- const translate = useService('translate');
- if (ModelUtil.is(element, 'bpmn:ServiceTask')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/service-tasks/#task-definition",
- target: "_blank",
- rel: "noopener",
- title: translate('Service task documentation'),
- children: translate('How to configure a service task')
- });
- }
- if (ModelUtil.is(element, 'bpmn:BusinessRuleTask')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/business-rule-tasks/#defining-a-task",
- target: "_blank",
- rel: "noopener",
- title: translate('Business rule task documentation'),
- children: translate('How to configure a business rule task')
- });
- }
- if (ModelUtil.is(element, 'bpmn:ScriptTask')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/script-tasks/#defining-a-task",
- target: "_blank",
- rel: "noopener",
- title: translate('Script task documentation'),
- children: translate('How to configure a script task')
- });
- }
- if (ModelUtil.is(element, 'bpmn:SendTask')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/send-tasks/#defining-a-task",
- target: "_blank",
- rel: "noopener",
- title: translate('Send task documentation'),
- children: translate('How to configure a send task')
- });
- }
- if (ModelUtil.is(element, 'bpmn:ThrowEvent')) {
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#message-throw-events",
- target: "_blank",
- rel: "noopener",
- title: translate('Message throw event documentation'),
- children: translate('How to configure a message throw event')
- });
- }
- },
- 'multiInstance-inputCollection': element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/multi-instance/#defining-the-collection-to-iterate-over",
- target: "_blank",
- rel: "noopener",
- title: translate('Multi instance documentation'),
- children: translate('How to configure a multi instance activity')
- });
- },
- errorCode: element => {
- const translate = useService('translate');
- return jsxRuntime.jsx("a", {
- href: "https://docs.camunda.io/docs/components/modeler/bpmn/error-events/#defining-the-error",
- target: "_blank",
- rel: "noopener",
- title: translate('Error event documentation'),
- children: translate('How to configure an error event')
- });
- }
- };
- function isInEventSubProcess(element) {
- const bo = ModelUtil.getBusinessObject(element),
- parent = bo.$parent;
- return ModelUtil.is(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
- }
- exports.BpmnPropertiesPanelModule = index$3;
- exports.BpmnPropertiesProviderModule = index$2;
- exports.CamundaPlatformPropertiesProviderModule = camundaPlatformPropertiesProviderModule;
- exports.CloudElementTemplatesPropertiesProviderModule = index$1;
- exports.CloudElementTemplatesValidator = Validator;
- exports.ElementTemplatesPropertiesProviderModule = index;
- exports.ZeebeDescriptionProvider = DescriptionProvider;
- exports.ZeebePropertiesProviderModule = zeebePropertiesProviderModule;
- exports.useService = useService;
- //# sourceMappingURL=index.js.map
|