tocco-hkvag-bundle 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/build/webpack.js +3 -0
- package/changelog.md +2 -0
- package/dist/002a2ac7b7d3b3b807ddcb210cfc91eb.js +1 -0
- package/dist/003671ee2a876e7614cd94390e2255b3.js +1 -0
- package/dist/0144de97a3c256f81447e7e7135780e5.js +1 -0
- package/dist/02174460fe8ff6a6bc19db86543b9600.js +1 -0
- package/dist/023545291c7d55eb893591da836fc73d.js +1 -0
- package/dist/029ed9161a8d24a9c2ba97124020989d.js +1 -0
- package/dist/02b97d3c4a7e895228beec69fb63e420.js +1 -0
- package/dist/03452373324e7ceaf58e3830eafd1a28.js +1 -0
- package/dist/03980cb12dacd26148c22bb61fce440f.js +1 -0
- package/dist/039ae6f160cd9781bcbb003484e23cdc.js +1 -0
- package/dist/03aae8272914723a7bf85b984385032c.js +1 -0
- package/dist/04d6fdc95fde068c2adbfaefceda64f4.js +1 -0
- package/dist/04fb736126f6470e31b35815dd726766.js +1 -0
- package/dist/05edc16945dbd5dbfc620a42a1da296a.js +1 -0
- package/dist/069a0d6b093e73e820f6a60a91fa614b.js +1 -0
- package/dist/06d958315fc6cdbb28576b03e43203aa.js +1 -0
- package/dist/07397bd479cbc34bc04576b4f15bdf18.js +1 -0
- package/dist/07567125b93045706d81f17f7d04e262.js +1 -0
- package/dist/078dd0bd08c93b1512e3d1b777591b21.js +1 -0
- package/dist/08d12eee2127dc573b757f69752c6704.js +1 -0
- package/dist/0972f21af3e75388ef55435c0b3b831d.js +1 -0
- package/dist/0973bb38b2e3efd2a879fd8e81d50fce.js +1 -0
- package/dist/0a1d9862d917663419ac2dd2e8193267.js +1 -0
- package/dist/0b06cbc7edf78b6f2810187262e7630b.js +1 -0
- package/dist/0c1e757d25446799bcab87a8607dee60.js +1 -0
- package/dist/0d419aec4c7e2317238c3502a967b560.js +1 -0
- package/dist/0d8cca845a71e82acc3ffc1fc95c94f3.js +1 -0
- package/dist/0e693b29bbe881d5b78f15fb9cacbedd.js +1 -0
- package/dist/0e9e3e7130e916ab2a5074104cf58c10.js +1 -0
- package/dist/0f147528a6f36ca40c8b3ec796429f58.js +1 -0
- package/dist/10132993df2cf9c9423b53a8a44379ab.js +1 -0
- package/dist/1034e3807d1bcf55cb564491950237ab.js +1 -0
- package/dist/10c464f3f882bfeeefbc0934c2ee9fbe.js +1 -0
- package/dist/111d9fdb9864abba36298d1a0807fe6d.js +1 -0
- package/dist/116d29a13f16f0a9bf9c25eaa2186c24.js +1 -0
- package/dist/119f6c45ea400e3c27e1ce172e4c881d.js +1 -0
- package/dist/11e3a2a8fb5bcb9d19298a80cafd3f5a.js +1 -0
- package/dist/12f1dfe288cde1fda28776dbc2b17abe.js +1 -0
- package/dist/130340e2c62b9e858f186dab5f491e55.js +1 -0
- package/dist/135747176621bcc94e9edd0323a81d3c.js +1 -0
- package/dist/13eda3507db9cbfb400f46b9b3ff6553.js +1 -0
- package/dist/1495a3d68b15b8622c53f6688b64809f.js +1 -0
- package/dist/151786e5421aae5a57d862be1387a079.js +1 -0
- package/dist/1533058f0ce13acdaa8d5bdc7d147bef.js +1 -0
- package/dist/154e51d48e7dc7f244bf748e4deb64f9.js +1 -0
- package/dist/15f3800d33b854ba476c9daf1b9e0326.js +1 -0
- package/dist/16b5146f5e9b7a1a196f6d11a6187282.js +1 -0
- package/dist/170487867de05784a96608617bdd544d.js +1 -0
- package/dist/1736cea368ae85240f34289307fdf67f.js +1 -0
- package/dist/17632e1e19e438f431784dfd77e01773.js +1 -0
- package/dist/17b41db8dd7120d3a88417a1490f57b7.js +1 -0
- package/dist/17dc98279d24649d3ca77cbce8c44e83.js +1 -0
- package/dist/1875ecdf54e78b5f07ff1bd944cf794b.js +1 -0
- package/dist/19017707f34649cae551ee9d5ea1edbf.js +1 -0
- package/dist/191feb6103c36b202bc01ba262916cdf.js +1 -0
- package/dist/19df93bf1797b4caf8232cc4b544f865.js +1 -0
- package/dist/1ab96c77da77918d9160c787732c68a6.js +1 -0
- package/dist/1b0aafebfed87a44ca58bc041571f054.js +1 -0
- package/dist/1b15b9f88acaf59b96e59c6b5f32da12.js +1 -0
- package/dist/1c57b3481f295105588972ffa1305521.js +1 -0
- package/dist/1d633c2bf495c2c286fe37d00950e1d4.js +1 -0
- package/dist/1db8d65ab1ad8dbb0aae7b9ebe280ca7.js +1 -0
- package/dist/2091e4c01015d7dda392116f3ae59801.js +1 -0
- package/dist/211511e7b374f57ad31acaf49dbdccb1.js +1 -0
- package/dist/2184bcd361a0e38d249bc49439d994cb.js +1 -0
- package/dist/2272c6632c52c3e402ab27b8045ab8f1.js +1 -0
- package/dist/23602ad4c88f0f19e7a0a12454ebf556.js +1 -0
- package/dist/23bb1a9f279e7a732bfd405350aab114.js +1 -0
- package/dist/24a3ff38afde257888d755ece9bfd704.js +1 -0
- package/dist/250c230f9465d8affc02c67d41d7e067.js +1 -0
- package/dist/25718a469574ade47e23567d8c543169.js +1 -0
- package/dist/25896c7babd9d46a58cc37029ff93568.js +1 -0
- package/dist/25eda4bb98e40a82cfd5b4bf9fbc06ec.js +1 -0
- package/dist/2611b2dc99534665bf6734ddfa6b8de4.js +1 -0
- package/dist/262f489eb59166e1215642b60446d123.js +1 -0
- package/dist/2765855f04cd6d7fb7fcf0a81c1e2022.js +1 -0
- package/dist/277128dcbc226dfeb8fde9391fb24787.js +1 -0
- package/dist/2772fa250d538d9b7a8702fb6c50d195.js +1 -0
- package/dist/27730a0bdc6f430cc85049a46a73a029.js +1 -0
- package/dist/283970c76db99e2d0d90f0e7c45494f9.js +1 -0
- package/dist/28785bea435918d49b290d27bf660baa.js +1 -0
- package/dist/2ad349208b3a727abb3c9f943865a27c.js +1 -0
- package/dist/2adc6bc4a8a2bf35636e8fc7fe0df2dd.js +1 -0
- package/dist/2dd82c65030101b60dffccedd8741c6e.js +1 -0
- package/dist/2f055ac4066041b9008dd6aebf9df34b.js +1 -0
- package/dist/2f25a4dc442bc9aebc58cae30c50c3e2.js +1 -0
- package/dist/2f55cddc8eb85b63ee5b4ce0e5488230.js +1 -0
- package/dist/2fc0239242a898632ca8aa451cb930c2.js +1 -0
- package/dist/2fe2904fc024afaf81732563cb83e547.js +1 -0
- package/dist/3063479c31202a0d1ecf707b2a4ce742.js +1 -0
- package/dist/30d2b805bcbc5d6bd558d7bdf9137a0e.js +1 -0
- package/dist/32398e706069c4b609b5cfa872917ebf.js +1 -0
- package/dist/32f291b1164c2610ed1a9260677d15f0.js +1 -0
- package/dist/330c0deacbfbbb6f1249b5bd887d608a.js +1 -0
- package/dist/33b4e371d4983ab56f4db08627119f0b.js +1 -0
- package/dist/349237ad9565dc823ce7bcb7527ba7ee.js +1 -0
- package/dist/3564e45dfb2ed064007f910db434889f.js +1 -0
- package/dist/3567d1ea443427e944a6f189a0898819.js +1 -0
- package/dist/356c61041d30223f74711e79c8bb8ae9.js +1 -0
- package/dist/363d3bac8dcd9a83332c3758185ce080.js +1 -0
- package/dist/37172facd8a534a38f378ca2a9c7c11b.js +1 -0
- package/dist/37ee3b5201ae2e2dc5dc8b1b20ad900e.js +1 -0
- package/dist/38b1d18836e38ee7b4deaeba0c35f7b8.js +1 -0
- package/dist/392e4c8d74cb1c9267a14eb0270ba2d6.js +1 -0
- package/dist/39fea85ed7dd99d7c6c9e59b7040523f.js +1 -0
- package/dist/3a3b2fef963d6c2c49c5b11b74a9ea81.js +1 -0
- package/dist/3a6ca6958d003ae67bb7fefc8713ee93.js +1 -0
- package/dist/3afb97252c417c5f0dd54e20b1954f63.js +1 -0
- package/dist/3b02cca9e95276a74f3ed2bbc7a64ce6.js +1 -0
- package/dist/3b190e5159c72fb7e27271956772bcba.js +1 -0
- package/dist/3b544bb2c5a4e7b225a4b50235a0fd6d.js +1 -0
- package/dist/3b6e7dc98c47eeafd851ca5072db4be6.js +1 -0
- package/dist/3c1857a15493f62c5c85c13007a6c32c.js +1 -0
- package/dist/3c5b59a666c5d39d9ba9cc054d36a410.js +1 -0
- package/dist/3cd75b9fb238f5af900205216be23a66.js +1 -0
- package/dist/3d7fd940e543a183c4c376ef0d65773a.js +1 -0
- package/dist/3ea020c57c2bbf457a8497df313b2e5c.js +1 -0
- package/dist/40f9100a898e3396df73051eb7c44cb8.js +1 -0
- package/dist/410ecb602443afbd5908a14f39b40eb2.js +1 -0
- package/dist/4123d5ea3e1f99dd3a5f2a89e16c6e59.js +1 -0
- package/dist/41469950e6a0ef73a57342235b44c55a.js +1 -0
- package/dist/4150db3307181a1afef55ab2c9ec191e.js +1 -0
- package/dist/43139bfbcbce9de597b4985dc1e6a03b.js +1 -0
- package/dist/432aff60ba31a74d2120031fdc894775.js +1 -0
- package/dist/4430c55f023b72fb5e389cee9351b38c.js +1 -0
- package/dist/45873024a393c691246898090c972cd3.js +1 -0
- package/dist/4686855c499be892779f614770ec2cf7.js +1 -0
- package/dist/474c86d7a4a0fa50030c6503fdb52392.js +1 -0
- package/dist/47cc855409817d6be0f272cff5d8a566.js +1 -0
- package/dist/47e5776dff3b80ed69ab5947dba33c76.js +1 -0
- package/dist/4816d92f4fbed14925ed1946f4135365.js +1 -0
- package/dist/48e9351c5623d4da657ce7d5d0267ea6.js +1 -0
- package/dist/49582665262ff6179b9f3a98adf7ed5c.js +1 -0
- package/dist/49c44a682cc7627c4a2e8b4d1cfec022.js +1 -0
- package/dist/4b692785a8a6340a89e6067274a7583c.js +1 -0
- package/dist/4b73278b511eebb4d0f44a0eec778327.js +1 -0
- package/dist/4b75999ea99d719689337def2fab50a3.js +1 -0
- package/dist/4bf3bc1fbdd26ac698fef1bdf26e3ff4.js +1 -0
- package/dist/4d0ebf4c528cee9b0cdd3e076e06570b.js +1 -0
- package/dist/4d156ee0485ab4b40b090a3cd7b995a9.js +1 -0
- package/dist/4d6d9020e7e5c8d8dee7a5e374355f05.js +1 -0
- package/dist/4d8cb7033879cb7fcc7a43798e2bde22.js +1 -0
- package/dist/4dec4bb457555975c148226534ecbdbe.js +1 -0
- package/dist/4e389cce6fb8f78845fab249bce43c0b.js +1 -0
- package/dist/4ef80ee74467e0297eec3cc03092da01.js +1 -0
- package/dist/4f89e8c1a691faf5f1bfe3987ddf108a.js +1 -0
- package/dist/5061ac5e99882b9f26051a5d73c75271.js +1 -0
- package/dist/50bd9a652785963a5d7d24bda4dee4ca.js +1 -0
- package/dist/51f903c5ce5284a63196247cffb5ca40.js +1 -0
- package/dist/52c9726f9e52ed3a57c0634718366029.js +1 -0
- package/dist/52ee9d28ed4c3389951a46084343a993.js +1 -0
- package/dist/52fd09d1713345d9ee64dc7daea9fd6f.js +1 -0
- package/dist/531e426da5d4c152efe1e9522991e466.js +1 -0
- package/dist/5352ecd8e5f1a2637b48e18cc406edb1.js +1 -0
- package/dist/53e2fb3b82eafad81897aab9ab79edff.js +1 -0
- package/dist/53e3600928916423671f3388e2d67844.js +1 -0
- package/dist/54560f13b36626237959e93b7771a484.js +1 -0
- package/dist/54a10f3bddad1e6da452fee7124fe846.js +1 -0
- package/dist/54a7b0b5248e428a4a703329f36e286f.js +1 -0
- package/dist/55a1830305eaf8f525aad4c04c138483.js +1 -0
- package/dist/569511c9ae26db72043c2c03e327e25a.js +1 -0
- package/dist/56ddbe1e119db3c02da97dc04012cf2b.js +1 -0
- package/dist/57f4109bd1f06be4dc2bcb8ff7eaf1e5.js +1 -0
- package/dist/582e24f5ba929e358fadfc7be4c18025.js +1 -0
- package/dist/58598705e7012f4ca1eb1dd21d3c59a5.js +1 -0
- package/dist/5861dfe4f2c7823623e82d0619c5bf06.js +1 -0
- package/dist/58aab872dbdb5e1607076e1935130e03.js +1 -0
- package/dist/58c35e5c73bbc1664bbd67c570342aa0.js +1 -0
- package/dist/593029c5822af3b8beebe4d13b801f98.js +1 -0
- package/dist/59cc05504a1c823b6d4796bf6b430822.js +1 -0
- package/dist/5a496ae20cc576bef1d35972548207cf.js +1 -0
- package/dist/5b2b9bc695bfdee92665388010a7e74d.js +1 -0
- package/dist/5b6a626249d0bc43e412fffa6a9ee177.js +1 -0
- package/dist/5bfe07d37fe8de98aaf6da53691e8f82.js +1 -0
- package/dist/5cab33610b8d9c1aee4db4672811cb5f.js +1 -0
- package/dist/5cd4e1282f4409600b942819b7aa4f21.js +1 -0
- package/dist/5d3314103b00c8ea165c6f9f6757f794.js +1 -0
- package/dist/5d833ca045603c1105d2db3b9d931274.js +1 -0
- package/dist/5df362c9904925cdf574d9506e4be76d.js +1 -0
- package/dist/5e55b301888460bd06c8e26d1011e01a.js +1 -0
- package/dist/5e8a4f4320a07ae4bb1d8a5cd621d955.js +1 -0
- package/dist/5f3ce6efab3c679ec1ad25ab0b3f6b2f.js +1 -0
- package/dist/5f8e9f09349e37425d6ef96bf1bf7a2d.js +1 -0
- package/dist/5fc5b7fdc1899b18bee20c7905c76182.js +1 -0
- package/dist/5fedbf948ed123687f77167fac1faf8b.js +1 -0
- package/dist/6231f0100394f756aac18e8d972d8f2b.js +1 -0
- package/dist/6257c20a623b032171b358cc95a1adab.js +1 -0
- package/dist/62a96977e725e8bc809dc80afe0fedf1.js +1 -0
- package/dist/6327ff8d569aa463a91e5ea774d1980e.js +1 -0
- package/dist/63596b4896732fb322ab0496b4be1e74.js +1 -0
- package/dist/6365d65802807679247605c8df7ea9ec.js +1 -0
- package/dist/6416bde11154c29c4e296eb82fed0bdf.js +1 -0
- package/dist/645b74a0625033669c9d0440b32e3fd0.js +1 -0
- package/dist/64a5f4d62507d032038dcd76d15188e1.js +1 -0
- package/dist/64d6924350bd7706850cdc0dcc76ccf6.js +1 -0
- package/dist/65bbce52648dff5652ec5f16ff6488d0.js +1 -0
- package/dist/663ffb67b9683a2126410325d1a5a152.js +1 -0
- package/dist/6707296f86034ccf2225ce3c27370114.js +1 -0
- package/dist/686915e134683f72ea5f3c227a6f13be.js +1 -0
- package/dist/69ec362e03850ff2d49044acbb19b385.js +1 -0
- package/dist/6aa13e92b5cf7d479e73acdc7c05abf3.js +1 -0
- package/dist/6b07bdedc12700f257d08813b3c0887f.js +1 -0
- package/dist/6bbbe63c75c85941f855ab27fb5f36db.js +1 -0
- package/dist/6bd6ab18aaa4ce0e16f01dbc09477829.js +1 -0
- package/dist/6c0a75dc5671c3f237a79f6e45b9891c.js +1 -0
- package/dist/6c67587c2093ac3a19da9f2196e040b7.js +1 -0
- package/dist/6d38cef4a006e6cfe54a6117aba7b600.js +1 -0
- package/dist/6e860ea82b2868e605b25cf5f3e79c3b.js +1 -0
- package/dist/6f77d1c97d1c6937d21c4a1034be62b6.js +1 -0
- package/dist/6f98e187bb10a8a52ae5f770af4b3ad5.js +1 -0
- package/dist/6faa9e5f2a0122d2333fa450337a09b0.js +1 -0
- package/dist/700530bc418f23dccca7db36bfa9f745.js +1 -0
- package/dist/70074e0c785c9a808dea76c7c7d17af3.js +1 -0
- package/dist/70286c33cab463fd576766adecd2d5d9.js +1 -0
- package/dist/7080d2a1db1608264a6d9d9fbaf2cce8.js +1 -0
- package/dist/714763ddd9bd466c95df7b042900bb87.js +1 -0
- package/dist/71f39fefd16025c224fe31cdb352ae01.js +1 -0
- package/dist/724a16861717b5b4f786d24b56b62614.js +1 -0
- package/dist/725da29f1643c2263a437c08a1454aea.js +1 -0
- package/dist/7283474943e921206e7c6ab061760b39.js +1 -0
- package/dist/73cdbb2580cd6a02d989c86e56bb83f3.js +1 -0
- package/dist/755114145e5b97e5571a160a39e716db.js +1 -0
- package/dist/76157bd9c645f5ff31363b7af4a9e86b.js +1 -0
- package/dist/7620537538da40e17ccbf70a43f4fd0c.js +1 -0
- package/dist/764b59bdd3a89e14f88c9d63020551a1.js +1 -0
- package/dist/77aaca51c1c32acaf32656d45f4dc017.js +1 -0
- package/dist/77c629df0ebf40b066d0ffeb34b7711b.js +1 -0
- package/dist/78b1ba82f7882d931072c4ef6e87f579.js +1 -0
- package/dist/796a2d1a925ed311f35e5fc5907a3132.js +1 -0
- package/dist/7abc8b6c17be848321a446cfd88c27a9.js +1 -0
- package/dist/7b149fc44540735190f0abe7546a69ad.js +1 -0
- package/dist/7cb0b8a8e8a8bf596c70d97c89fbe2d1.js +1 -0
- package/dist/7cc98960277ab04470e3ff9ed5fc6028.js +1 -0
- package/dist/7d64980faff5b041a461fd0ba3e2f3f5.js +1 -0
- package/dist/7e4099fc2d04c7c1cf96892b962ba4ec.js +1 -0
- package/dist/7e4b5afab13800eedc72d1669997de99.js +1 -0
- package/dist/7f79d4bde67c8013b187889b63e25bce.js +1 -0
- package/dist/7f9a9efc9ab681fcbf6400e2adb368a9.js +1 -0
- package/dist/805cb6232d7a9fa46025d48a43622ecf.js +1 -0
- package/dist/80ddbf4f0fdde4ddba57130e61043017.js +1 -0
- package/dist/8211ff24c6eb59feeb74cf3ae60e4e5d.js +1 -0
- package/dist/83387cb17a7680f59240e7b399e3ac2b.js +1 -0
- package/dist/839e3594798c1942d3c92f9acfaa5f0b.js +1 -0
- package/dist/83bd353f98aa901411c82b8af58d1296.js +1 -0
- package/dist/83d1c691b58768e3ec0a1f88450a7ceb.js +1 -0
- package/dist/842f79fb31926b8da1739c33c365da8d.js +1 -0
- package/dist/843c762c24f7fac628d8c62519a7b308.js +1 -0
- package/dist/84abf03cc94d264bb38020b4ac5f76e1.js +1 -0
- package/dist/852f0ecd7b17e3bfd700a821ff438f7e.js +1 -0
- package/dist/8731c9411475c19fb09b60f7dcbe1a52.js +1 -0
- package/dist/875ae58e8015a6d08dbc9d0c04e24638.js +1 -0
- package/dist/879d6bc1ca1dde95a9a98dc7a2ab0d06.js +1 -0
- package/dist/87bce6f50196688852142c679227b1b9.js +1 -0
- package/dist/88c5669303ea9c7b7c172b45a6ea365d.js +1 -0
- package/dist/88e2feda80ac8cfb28f1dc0ec833b40d.js +1 -0
- package/dist/894052ca1f8f35cc1cf7cfb29ef75027.js +1 -0
- package/dist/894edcaf39c3c95818e3949d737ed459.js +1 -0
- package/dist/8a31266178067a316bb2503147cdb5cb.js +1 -0
- package/dist/8a6c57a8223a58263ee86e7df95bc985.js +1 -0
- package/dist/8a70eec5a46e423328f1e9d7d1a87f41.js +1 -0
- package/dist/8afb70e6a4c526e4f16bf49fb8cf3c35.js +1 -0
- package/dist/8b0e5da82a1aa923f454ee2e6568850b.js +1 -0
- package/dist/8bc0134df3327edc15fad4011a7ef8c8.js +1 -0
- package/dist/8cfffdd2f772eec8342fdfc4d511e0cc.js +1 -0
- package/dist/8d7988f603ec76ecb92315442285a83d.js +1 -0
- package/dist/8d9bb1799d9b98db107e84f10132e17f.js +1 -0
- package/dist/8db78ecdca0cf3c5f423eca8766fd5cd.js +1 -0
- package/dist/8db9f93698f3eea94f936fcb5986f1a3.js +1 -0
- package/dist/8de1f09307a99c5a8bb0a53d32fbaaa9.js +1 -0
- package/dist/8ed58ed9c7e1cb1ae1f2830d29011ffb.js +1 -0
- package/dist/8eede17ae9e4d25c3c17b8a8a7fc3c3d.js +1 -0
- package/dist/8efee5c45bbfdd52eec7a8a0eec72ec3.js +1 -0
- package/dist/8f8ce96f0f6ce8d8a30d5f2dcb4eca76.js +1 -0
- package/dist/8fa2dead80e1f4956c4c5c868ebb0b81.js +1 -0
- package/dist/917b2857799bc462cb464bfe770581a8.js +1 -0
- package/dist/919edf70e532c72ecd4b9579c1879bc2.js +1 -0
- package/dist/92164e5d714ab4cda2b91eede29bc191.js +1 -0
- package/dist/9296988a753e8e251ff627aef2c929e8.js +1 -0
- package/dist/92e96a5183122509403347f8fde3e407.js +1 -0
- package/dist/92f4aab5c66f6269c7054c8fbcb3de13.js +1 -0
- package/dist/938b32f75aefeab50ba608132c5862c8.js +1 -0
- package/dist/93be766c753e075a3f7d5b89b3ee04ce.js +1 -0
- package/dist/9404e76c18135b12716e6da4c6cea788.js +1 -0
- package/dist/945ea249c1f1d3595cc55a51046d9032.js +1 -0
- package/dist/949a350e1d9f92839865e927eb00673f.js +1 -0
- package/dist/951a8cbe4efaab1b1451ffd8904fc9dd.js +1 -0
- package/dist/962969a46fefcace3305abd4d6e14a2e.js +1 -0
- package/dist/9696a4229fb787eeb25b26f1274b75ee.js +1 -0
- package/dist/979239ac9b74c2c57dcc2b66e7e3b353.js +1 -0
- package/dist/9807cf1e443a7440371904b6525f37eb.js +1 -0
- package/dist/9827973b533de05b338533a0211d97d9.js +1 -0
- package/dist/99e41196ce05ad5fb70891b44ac227e8.js +1 -0
- package/dist/9a73a8c225dc6db280e2ca2429a93a42.js +1 -0
- package/dist/9b1fd9cf4206cc32e84150c49707d811.js +1 -0
- package/dist/9b3441051d8551264ac58b36253b9b10.js +1 -0
- package/dist/9b5a6ec07bb0a2daade10189696fc399.js +1 -0
- package/dist/9b80d1a12acd18c90e41ca92073122a7.js +1 -0
- package/dist/9d29de85381ba75c190573ea82708954.js +1 -0
- package/dist/9ed8c3550b5c3c1e878d0692f0338cb7.js +1 -0
- package/dist/9fd3f255cfd09016ec7f4896bc51864c.js +1 -0
- package/dist/a1c8660c5bcc6b6a43a7fb3c351174d9.js +1 -0
- package/dist/a2746fc96d535b19c120d4b87dc86ef1.js +1 -0
- package/dist/a4359dd961aff7979121730f1a000715.js +1 -0
- package/dist/a4bedde07e392f8ebf64341b61f75df2.js +1 -0
- package/dist/a4d638b976f02f35740be031f996e088.js +1 -0
- package/dist/a4e021a4b5d5d65cc87fee17c1886c3f.js +1 -0
- package/dist/a533e643002830be2da76c9527265860.js +1 -0
- package/dist/a58f90f6c8db84024327b4d9059c991e.js +1 -0
- package/dist/a6b8f5b8c9ce7808c5ca6baccdf1ad1e.js +1 -0
- package/dist/a709bba98acec5da3ea6258e245514cb.js +1 -0
- package/dist/a72ec8ab4a5bdfd6695dfa5fa86ef30d.js +1 -0
- package/dist/a9cb92db2399f7ac97ad55fe79fe5c20.js +1 -0
- package/dist/a9ed61bdf8ae777e7a6f68bf7175e839.js +1 -0
- package/dist/aa0eee504d52a12d3a30bbd523afcc34.js +1 -0
- package/dist/aa5623ec68d23fedb9c9c115c7d99063.js +1 -0
- package/dist/ab237eed5fd16ab99c06f0d28d465edb.js +1 -0
- package/dist/ab3d46f8dd12e29e10eb35c5e406bbcb.js +1 -0
- package/dist/ac0681e93739efad9b6f1b85453d6a1b.js +1 -0
- package/dist/ac12519ccf3cc323b28f70e35f922e3f.js +1 -0
- package/dist/acaef5b3d4971efbf24be1a229186ff5.js +1 -0
- package/dist/acb898eefa176c3f28344f5780cceb63.js +1 -0
- package/dist/ad88ef07c8c702b1a5f1e3d19c1052c7.js +1 -0
- package/dist/aefed4953ced506e20b934606ac083f3.js +1 -0
- package/dist/b02d982ccb1011197a5a24800b178a0a.js +1 -0
- package/dist/b1170472ae4b50e3b0070eb991e502fe.js +1 -0
- package/dist/b1e349371cb9c226905c846706ad8b93.js +1 -0
- package/dist/b1f3f77a9279cdb38846ebe13c3438bc.js +1 -0
- package/dist/b20cd9acf45420fcacfd923754185663.js +1 -0
- package/dist/b306285dfd802d091e788de0f96b8cb2.js +1 -0
- package/dist/b33ef9b4202539d3690251cb8213a034.js +1 -0
- package/dist/b441455dc6e976e97db83dc2be48fd3c.js +1 -0
- package/dist/b491027881efabe4493ad65daf3368de.js +1 -0
- package/dist/b49ae09a10a2a2d6dfc7ba9cb37cbbb3.js +1 -0
- package/dist/b7ee0efbcdf094a7f8b23108a209a273.js +1 -0
- package/dist/b808fb222140a85b23ebbe0fffa906d9.js +1 -0
- package/dist/b881dca9d9a80f61d87374b4bd5a2dd5.js +1 -0
- package/dist/b8b6bd460e7da0ba8f3b2218327966ee.js +1 -0
- package/dist/b8cb123e6c753c6031ab9c6a4acbbcd6.js +1 -0
- package/dist/b934b22e8f8a8b1ba81dbc2cf058b0cd.js +1 -0
- package/dist/b943c561d9e064f79f938275bad6e597.js +1 -0
- package/dist/b992b348ffb6453e4a02a60e71c5304e.js +1 -0
- package/dist/ba6b8b3e06cd9d0aee9c69278ee84647.js +1 -0
- package/dist/bb5bab7a675544fe31ddb7f4a77dffb9.js +1 -0
- package/dist/bba393726b199f66d8b4314385c1f2f0.js +1 -0
- package/dist/bf37de323316c6ae5745fc11fd576b1c.js +1 -0
- package/dist/bfaa80a916ebecb2398b5b63590a0c05.js +1 -0
- package/dist/c1ef58663e7326fe623bed35be305efd.js +1 -0
- package/dist/c3174a46927bbec0fbd8946f97bd7170.js +1 -0
- package/dist/c3f345c994392d97785925e790513a9f.js +1 -0
- package/dist/c4e58637b4d14c303e29d3ce4b4a210f.js +1 -0
- package/dist/c4ee489cb1eb39f3d31e99fcc78e886e.js +1 -0
- package/dist/c51840077c684be0e7e13339f85cd4a9.js +1 -0
- package/dist/c520430800e81c168e3324d36625f0a3.js +1 -0
- package/dist/c530988d2b1966fd10a4d99fa3877e1b.js +1 -0
- package/dist/c64d6e1e72024bb5d3d3e9bfc19d183d.js +1 -0
- package/dist/c80e89199aef31e48addb2b35ea96365.js +1 -0
- package/dist/c84e779b889a1e11ad87fb7176d9f6be.js +1 -0
- package/dist/c92169023ff93e3c3e03bc2f4c73615a.js +1 -0
- package/dist/c97c8951af9153f36715121ab359334c.js +1 -0
- package/dist/cb652f200fc3dd740b2e7f678a9272ea.js +1 -0
- package/dist/cbdbd623038183a8c068dd24ecd90682.js +1 -0
- package/dist/cbdc4ca43a8c940a6c3f59a8b6f17df5.js +1 -0
- package/dist/cbf021d377207ecc00145a138fd03f0f.js +1 -0
- package/dist/cd29b6e52c3ebcbaee8c7bb709fd1d8e.js +1 -0
- package/dist/cd88309c904c403022c51d1fa3ee4bf3.js +1 -0
- package/dist/cd9a17f94a922c7c88000b1b3cdd67df.js +1 -0
- package/dist/cf188b3f83735389d47bb12fc9f7069a.js +1 -0
- package/dist/cf26dd07f19bcb5b7efbf057a6cfeb8f.js +1 -0
- package/dist/cf3f6b1c74c72cb5d02870022dbc9f94.js +1 -0
- package/dist/cf9c7cbfc2b609b9ae59daeab82719c4.js +1 -0
- package/dist/cfe1a9dd61dd943a574fc6c7157372f7.js +1 -0
- package/dist/chunk-560.e083861e4ba4bf666fd1.js +2 -0
- package/dist/chunk-560.e083861e4ba4bf666fd1.js.map +1 -0
- package/dist/chunk-562.6d11924523edde11df1a.js +12 -0
- package/dist/chunk-562.6d11924523edde11df1a.js.map +1 -0
- package/dist/chunk-608.676abd0600d08792c6af.js +2 -0
- package/dist/chunk-608.676abd0600d08792c6af.js.map +1 -0
- package/dist/chunk-817.7cd15c2c53621ea44f0b.js +2 -0
- package/dist/chunk-817.7cd15c2c53621ea44f0b.js.map +1 -0
- package/dist/chunk-actions.e44ed4305c3f83a474c9.js +2 -0
- package/dist/chunk-actions.e44ed4305c3f83a474c9.js.map +1 -0
- package/dist/chunk-code-editor.8e97812c4c00b945b6a3.js +12 -0
- package/dist/chunk-code-editor.8e97812c4c00b945b6a3.js.map +1 -0
- package/dist/chunk-vendor-fontawesome.6fbfcd1cf747d9255191.js +1 -0
- package/dist/chunk-vendor-icons.497f2dab812d65535985.js +1 -0
- package/dist/chunk-vendor-libphonenumber-js.0486c0567d6b3639978e.js +1 -0
- package/dist/ckeditor4/adapters/jquery.js +1 -0
- package/dist/ckeditor4/ckeditor.js +1 -0
- package/dist/ckeditor4/config.js +5 -0
- package/dist/ckeditor4/contents.css +208 -0
- package/dist/ckeditor4/lang/de-ch.js +1 -0
- package/dist/ckeditor4/lang/de.js +1 -0
- package/dist/ckeditor4/lang/en.js +1 -0
- package/dist/ckeditor4/lang/fr.js +1 -0
- package/dist/ckeditor4/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/a11yhelp.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/af.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ar.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/az.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/bg.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ca.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/cs.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/cy.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/da.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/el.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/en-au.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/en-gb.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/eo.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/es-mx.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/es.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/et.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/eu.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/fa.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/fi.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/fo.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/fr-ca.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/gl.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/gu.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/he.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/hi.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/hr.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/hu.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/id.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ja.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/km.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ko.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ku.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/lt.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/lv.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/mk.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/mn.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/nb.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/nl.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/no.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/oc.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/pl.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/pt-br.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/pt.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ro.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ru.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/si.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sk.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sl.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sq.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sr-latn.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sr.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/sv.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/th.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/tr.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/tt.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/ug.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/uk.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/vi.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/zh-cn.js +1 -0
- package/dist/ckeditor4/plugins/a11yhelp/dialogs/lang/zh.js +1 -0
- package/dist/ckeditor4/plugins/about/dialogs/about.js +1 -0
- package/dist/ckeditor4/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
- package/dist/ckeditor4/plugins/about/dialogs/logo_ckeditor.png +0 -0
- package/dist/ckeditor4/plugins/adobeair/plugin.js +1 -0
- package/dist/ckeditor4/plugins/autocomplete/plugin.js +1 -0
- package/dist/ckeditor4/plugins/autocomplete/skins/default.css +38 -0
- package/dist/ckeditor4/plugins/autoembed/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/autoembed/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/autoembed/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/autoembed/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/autoembed/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/autoembed/plugin.js +1 -0
- package/dist/ckeditor4/plugins/autogrow/plugin.js +1 -0
- package/dist/ckeditor4/plugins/autolink/plugin.js +1 -0
- package/dist/ckeditor4/plugins/balloonpanel/plugin.js +1 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/kama/balloonpanel.css +220 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono/balloonpanel.css +237 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono/images/close.png +0 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono/images/hidpi/close.png +0 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono-lisa/balloonpanel.css +223 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono-lisa/images/close.png +0 -0
- package/dist/ckeditor4/plugins/balloonpanel/skins/moono-lisa/images/hidpi/close.png +0 -0
- package/dist/ckeditor4/plugins/balloontoolbar/plugin.js +1 -0
- package/dist/ckeditor4/plugins/balloontoolbar/skins/default.css +95 -0
- package/dist/ckeditor4/plugins/balloontoolbar/skins/kama/balloontoolbar.css +30 -0
- package/dist/ckeditor4/plugins/balloontoolbar/skins/moono/balloontoolbar.css +34 -0
- package/dist/ckeditor4/plugins/balloontoolbar/skins/moono-lisa/balloontoolbar.css +44 -0
- package/dist/ckeditor4/plugins/bbcode/plugin.js +1 -0
- package/dist/ckeditor4/plugins/bidi/icons/bidiltr.png +0 -0
- package/dist/ckeditor4/plugins/bidi/icons/bidirtl.png +0 -0
- package/dist/ckeditor4/plugins/bidi/icons/hidpi/bidiltr.png +0 -0
- package/dist/ckeditor4/plugins/bidi/icons/hidpi/bidirtl.png +0 -0
- package/dist/ckeditor4/plugins/bidi/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/bidi/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/bidi/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/bidi/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/bidi/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/bidi/plugin.js +1 -0
- package/dist/ckeditor4/plugins/clipboard/dialogs/paste.js +1 -0
- package/dist/ckeditor4/plugins/cloudservices/plugin.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/css/codemirror.min.css +1 -0
- package/dist/ckeditor4/plugins/codemirror/dialogs/codemirrorAbout.js +5 -0
- package/dist/ckeditor4/plugins/codemirror/dialogs/logo.png +0 -0
- package/dist/ckeditor4/plugins/codemirror/images/LICENSE-fontawesome.txt +34 -0
- package/dist/ckeditor4/plugins/codemirror/images/autocomplete.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/autoformat.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/codemirror.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/commentselectedrange.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/find.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/replace.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/images/uncommentselectedrange.svg +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/beautify.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.addon.merge.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.addons.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.addons.search.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.bbcode.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.bbcodemixed.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.handlebars.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.htmlmixed.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.javascript.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.php.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.sql.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/js/codemirror.mode.twig.min.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/codemirror/plugin.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/dialogs/codesnippet.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/icons/codesnippet.png +0 -0
- package/dist/ckeditor4/plugins/codesnippet/icons/hidpi/codesnippet.png +0 -0
- package/dist/ckeditor4/plugins/codesnippet/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/CHANGES.md +827 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/LICENSE +24 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/README.ru.md +171 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/highlight.pack.js +1 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/arta.css +160 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/ascetic.css +50 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-dune.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-dune.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-forest.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-forest.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-heath.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-heath.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-lakeside.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-seaside.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/atelier-seaside.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/brown_paper.css +105 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/brown_papersq.png +0 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/dark.css +105 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/default.css +153 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/docco.css +132 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/far.css +113 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/foundation.css +133 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/github.css +125 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/googlecode.css +147 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/idea.css +122 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/ir_black.css +105 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/magula.css +122 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/mono-blue.css +62 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/monokai.css +127 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/monokai_sublime.css +149 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/obsidian.css +154 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/paraiso.dark.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/paraiso.light.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/pojoaque.css +106 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/pojoaque.jpg +0 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/railscasts.css +182 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/rainbow.css +112 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/school_book.css +113 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/school_book.png +0 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/solarized_dark.css +107 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/solarized_light.css +107 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/sunburst.css +160 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/tomorrow-night-blue.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/tomorrow-night-bright.css +92 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/tomorrow-night-eighties.css +92 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/tomorrow-night.css +93 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/tomorrow.css +90 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/vs.css +89 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/xcode.css +158 -0
- package/dist/ckeditor4/plugins/codesnippet/lib/highlight/styles/zenburn.css +116 -0
- package/dist/ckeditor4/plugins/codesnippet/plugin.js +1 -0
- package/dist/ckeditor4/plugins/codesnippetgeshi/plugin.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/icons/bgcolor.png +0 -0
- package/dist/ckeditor4/plugins/colorbutton/icons/hidpi/bgcolor.png +0 -0
- package/dist/ckeditor4/plugins/colorbutton/icons/hidpi/textcolor.png +0 -0
- package/dist/ckeditor4/plugins/colorbutton/icons/textcolor.png +0 -0
- package/dist/ckeditor4/plugins/colorbutton/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/colorbutton/plugin.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/dialogs/colordialog.css +20 -0
- package/dist/ckeditor4/plugins/colordialog/dialogs/colordialog.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/colordialog/plugin.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/cursors/cursor-disabled.svg +25 -0
- package/dist/ckeditor4/plugins/copyformatting/cursors/cursor.svg +14 -0
- package/dist/ckeditor4/plugins/copyformatting/icons/copyformatting.png +0 -0
- package/dist/ckeditor4/plugins/copyformatting/icons/hidpi/copyformatting.png +0 -0
- package/dist/ckeditor4/plugins/copyformatting/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/plugin.js +1 -0
- package/dist/ckeditor4/plugins/copyformatting/styles/copyformatting.css +45 -0
- package/dist/ckeditor4/plugins/devtools/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/devtools/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/devtools/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/devtools/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/devtools/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/devtools/plugin.js +1 -0
- package/dist/ckeditor4/plugins/dialog/dialogDefinition.js +0 -0
- package/dist/ckeditor4/plugins/dialog/styles/dialog.css +18 -0
- package/dist/ckeditor4/plugins/dialogadvtab/plugin.js +1 -0
- package/dist/ckeditor4/plugins/div/dialogs/div.js +1 -0
- package/dist/ckeditor4/plugins/div/icons/creatediv.png +0 -0
- package/dist/ckeditor4/plugins/div/icons/hidpi/creatediv.png +0 -0
- package/dist/ckeditor4/plugins/div/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/div/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/div/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/div/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/div/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/div/plugin.js +1 -0
- package/dist/ckeditor4/plugins/divarea/plugin.js +1 -0
- package/dist/ckeditor4/plugins/docprops/dialogs/docprops.js +1 -0
- package/dist/ckeditor4/plugins/docprops/icons/docprops-rtl.png +0 -0
- package/dist/ckeditor4/plugins/docprops/icons/docprops.png +0 -0
- package/dist/ckeditor4/plugins/docprops/icons/hidpi/docprops-rtl.png +0 -0
- package/dist/ckeditor4/plugins/docprops/icons/hidpi/docprops.png +0 -0
- package/dist/ckeditor4/plugins/docprops/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/docprops/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/docprops/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/docprops/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/docprops/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/docprops/plugin.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/dialogs/easyimagealt.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimagealigncenter.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimagealignleft.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimagealignright.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimagealt.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimagefull.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimageside.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/easyimageupload.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimagealigncenter.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimagealignleft.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimagealignright.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimagealt.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimagefull.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimageside.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/icons/hidpi/easyimageupload.png +0 -0
- package/dist/ckeditor4/plugins/easyimage/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/plugin.js +1 -0
- package/dist/ckeditor4/plugins/easyimage/styles/easyimage.css +118 -0
- package/dist/ckeditor4/plugins/editorplaceholder/plugin.js +1 -0
- package/dist/ckeditor4/plugins/embed/icons/embed.png +0 -0
- package/dist/ckeditor4/plugins/embed/icons/hidpi/embed.png +0 -0
- package/dist/ckeditor4/plugins/embed/plugin.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/dialogs/embedbase.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/embedbase/plugin.js +1 -0
- package/dist/ckeditor4/plugins/embedsemantic/icons/embedsemantic.png +0 -0
- package/dist/ckeditor4/plugins/embedsemantic/icons/hidpi/embedsemantic.png +0 -0
- package/dist/ckeditor4/plugins/embedsemantic/plugin.js +1 -0
- package/dist/ckeditor4/plugins/emoji/assets/iconsall.png +0 -0
- package/dist/ckeditor4/plugins/emoji/assets/iconsall.svg +58 -0
- package/dist/ckeditor4/plugins/emoji/emoji.json +1 -0
- package/dist/ckeditor4/plugins/emoji/icons/emojipanel.png +0 -0
- package/dist/ckeditor4/plugins/emoji/icons/hidpi/emojipanel.png +0 -0
- package/dist/ckeditor4/plugins/emoji/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/emoji/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/emoji/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/emoji/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/emoji/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/emoji/plugin.js +1 -0
- package/dist/ckeditor4/plugins/emoji/skins/default.css +237 -0
- package/dist/ckeditor4/plugins/exportpdf/CHANGELOG.md +72 -0
- package/dist/ckeditor4/plugins/exportpdf/LICENSE.md +18 -0
- package/dist/ckeditor4/plugins/exportpdf/icons/exportpdf.png +0 -0
- package/dist/ckeditor4/plugins/exportpdf/icons/hidpi/exportpdf.png +0 -0
- package/dist/ckeditor4/plugins/exportpdf/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/exportpdf/plugin.js +1 -0
- package/dist/ckeditor4/plugins/exportpdf/plugindefinition.js +0 -0
- package/dist/ckeditor4/plugins/find/dialogs/find.js +1 -0
- package/dist/ckeditor4/plugins/find/icons/find-rtl.png +0 -0
- package/dist/ckeditor4/plugins/find/icons/find.png +0 -0
- package/dist/ckeditor4/plugins/find/icons/hidpi/find-rtl.png +0 -0
- package/dist/ckeditor4/plugins/find/icons/hidpi/find.png +0 -0
- package/dist/ckeditor4/plugins/find/icons/hidpi/replace.png +0 -0
- package/dist/ckeditor4/plugins/find/icons/replace.png +0 -0
- package/dist/ckeditor4/plugins/find/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/find/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/find/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/find/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/find/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/find/plugin.js +1 -0
- package/dist/ckeditor4/plugins/flash/plugin.js +1 -0
- package/dist/ckeditor4/plugins/font/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/font/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/font/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/font/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/font/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/font/plugin.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/button.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/checkbox.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/form.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/hiddenfield.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/radio.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/select.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/textarea.js +1 -0
- package/dist/ckeditor4/plugins/forms/dialogs/textfield.js +1 -0
- package/dist/ckeditor4/plugins/forms/icons/button.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/checkbox.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/form.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hiddenfield.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/button.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/checkbox.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/form.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/hiddenfield.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/imagebutton.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/radio.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/select-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/select.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/textarea-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/textarea.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/textfield-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/hidpi/textfield.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/imagebutton.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/radio.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/select-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/select.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/textarea-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/textarea.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/textfield-rtl.png +0 -0
- package/dist/ckeditor4/plugins/forms/icons/textfield.png +0 -0
- package/dist/ckeditor4/plugins/forms/images/hiddenfield.gif +0 -0
- package/dist/ckeditor4/plugins/forms/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/forms/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/forms/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/forms/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/forms/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/forms/plugin.js +1 -0
- package/dist/ckeditor4/plugins/iframe/dialogs/iframe.js +1 -0
- package/dist/ckeditor4/plugins/iframe/icons/hidpi/iframe.png +0 -0
- package/dist/ckeditor4/plugins/iframe/icons/iframe.png +0 -0
- package/dist/ckeditor4/plugins/iframe/images/placeholder.png +0 -0
- package/dist/ckeditor4/plugins/iframe/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/iframe/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/iframe/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/iframe/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/iframe/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/iframe/plugin.js +1 -0
- package/dist/ckeditor4/plugins/iframedialog/plugin.js +1 -0
- package/dist/ckeditor4/plugins/image/dialogs/image.js +1 -0
- package/dist/ckeditor4/plugins/image/images/noimage.png +0 -0
- package/dist/ckeditor4/plugins/image2/dialogs/image2.js +1 -0
- package/dist/ckeditor4/plugins/image2/icons/hidpi/image.png +0 -0
- package/dist/ckeditor4/plugins/image2/icons/image.png +0 -0
- package/dist/ckeditor4/plugins/image2/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/image2/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/image2/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/image2/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/image2/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/image2/plugin.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/plugin.js +1 -0
- package/dist/ckeditor4/plugins/imagebase/styles/imagebase.css +9 -0
- package/dist/ckeditor4/plugins/indentblock/plugin.js +1 -0
- package/dist/ckeditor4/plugins/justify/icons/hidpi/justifyblock.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/hidpi/justifycenter.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/hidpi/justifyleft.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/hidpi/justifyright.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/justifyblock.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/justifycenter.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/justifyleft.png +0 -0
- package/dist/ckeditor4/plugins/justify/icons/justifyright.png +0 -0
- package/dist/ckeditor4/plugins/justify/plugin.js +1 -0
- package/dist/ckeditor4/plugins/language/icons/hidpi/language.png +0 -0
- package/dist/ckeditor4/plugins/language/icons/language.png +0 -0
- package/dist/ckeditor4/plugins/language/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/language/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/language/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/language/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/language/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/language/plugin.js +1 -0
- package/dist/ckeditor4/plugins/link/dialogs/anchor.js +1 -0
- package/dist/ckeditor4/plugins/link/dialogs/link.js +1 -0
- package/dist/ckeditor4/plugins/link/images/anchor.png +0 -0
- package/dist/ckeditor4/plugins/link/images/hidpi/anchor.png +0 -0
- package/dist/ckeditor4/plugins/liststyle/dialogs/liststyle.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/liststyle/plugin.js +1 -0
- package/dist/ckeditor4/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
- package/dist/ckeditor4/plugins/magicline/images/hidpi/icon.png +0 -0
- package/dist/ckeditor4/plugins/magicline/images/icon-rtl.png +0 -0
- package/dist/ckeditor4/plugins/magicline/images/icon.png +0 -0
- package/dist/ckeditor4/plugins/mathjax/dialogs/mathjax.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/icons/hidpi/mathjax.png +0 -0
- package/dist/ckeditor4/plugins/mathjax/icons/mathjax.png +0 -0
- package/dist/ckeditor4/plugins/mathjax/images/loader.gif +0 -0
- package/dist/ckeditor4/plugins/mathjax/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/mathjax/plugin.js +1 -0
- package/dist/ckeditor4/plugins/mentions/plugin.js +1 -0
- package/dist/ckeditor4/plugins/newpage/icons/hidpi/newpage-rtl.png +0 -0
- package/dist/ckeditor4/plugins/newpage/icons/hidpi/newpage.png +0 -0
- package/dist/ckeditor4/plugins/newpage/icons/newpage-rtl.png +0 -0
- package/dist/ckeditor4/plugins/newpage/icons/newpage.png +0 -0
- package/dist/ckeditor4/plugins/newpage/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/newpage/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/newpage/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/newpage/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/newpage/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/newpage/plugin.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/icons/hidpi/pagebreak-rtl.png +0 -0
- package/dist/ckeditor4/plugins/pagebreak/icons/hidpi/pagebreak.png +0 -0
- package/dist/ckeditor4/plugins/pagebreak/icons/pagebreak-rtl.png +0 -0
- package/dist/ckeditor4/plugins/pagebreak/icons/pagebreak.png +0 -0
- package/dist/ckeditor4/plugins/pagebreak/images/pagebreak.gif +0 -0
- package/dist/ckeditor4/plugins/pagebreak/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/pagebreak/plugin.js +1 -0
- package/dist/ckeditor4/plugins/panelbutton/plugin.js +1 -0
- package/dist/ckeditor4/plugins/pastefromgdocs/filter/default.js +1 -0
- package/dist/ckeditor4/plugins/pastefromlibreoffice/filter/default.js +1 -0
- package/dist/ckeditor4/plugins/pastefromword/filter/default.js +1 -0
- package/dist/ckeditor4/plugins/pastetools/filter/common.js +1 -0
- package/dist/ckeditor4/plugins/pastetools/filter/image.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/dialogs/placeholder.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/icons/hidpi/placeholder.png +0 -0
- package/dist/ckeditor4/plugins/placeholder/icons/placeholder.png +0 -0
- package/dist/ckeditor4/plugins/placeholder/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/placeholder/plugin.js +1 -0
- package/dist/ckeditor4/plugins/preview/icons/hidpi/preview-rtl.png +0 -0
- package/dist/ckeditor4/plugins/preview/icons/hidpi/preview.png +0 -0
- package/dist/ckeditor4/plugins/preview/icons/preview-rtl.png +0 -0
- package/dist/ckeditor4/plugins/preview/icons/preview.png +0 -0
- package/dist/ckeditor4/plugins/preview/images/pagebreak.gif +0 -0
- package/dist/ckeditor4/plugins/preview/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/preview/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/preview/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/preview/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/preview/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/preview/plugin.js +1 -0
- package/dist/ckeditor4/plugins/preview/preview.html +13 -0
- package/dist/ckeditor4/plugins/preview/styles/screen.css +10 -0
- package/dist/ckeditor4/plugins/print/icons/hidpi/print.png +0 -0
- package/dist/ckeditor4/plugins/print/icons/print.png +0 -0
- package/dist/ckeditor4/plugins/print/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/print/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/print/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/print/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/print/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/print/plugin.js +1 -0
- package/dist/ckeditor4/plugins/save/icons/hidpi/save.png +0 -0
- package/dist/ckeditor4/plugins/save/icons/save.png +0 -0
- package/dist/ckeditor4/plugins/save/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/save/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/save/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/save/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/save/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/save/plugin.js +1 -0
- package/dist/ckeditor4/plugins/scayt/CHANGELOG.md +4 -0
- package/dist/ckeditor4/plugins/scayt/LICENSE.md +28 -0
- package/dist/ckeditor4/plugins/scayt/dialogs/dialog.css +23 -0
- package/dist/ckeditor4/plugins/scayt/dialogs/options.js +1 -0
- package/dist/ckeditor4/plugins/scayt/dialogs/toolbar.css +71 -0
- package/dist/ckeditor4/plugins/scayt/skins/moono-lisa/scayt.css +25 -0
- package/dist/ckeditor4/plugins/selectall/icons/hidpi/selectall.png +0 -0
- package/dist/ckeditor4/plugins/selectall/icons/selectall.png +0 -0
- package/dist/ckeditor4/plugins/selectall/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/selectall/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/selectall/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/selectall/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/selectall/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/selectall/plugin.js +1 -0
- package/dist/ckeditor4/plugins/sharedspace/plugin.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/icons/hidpi/showblocks-rtl.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/icons/hidpi/showblocks.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/icons/showblocks-rtl.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/icons/showblocks.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_address.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_blockquote.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_div.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h1.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h2.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h3.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h4.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h5.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_h6.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_p.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/images/block_pre.png +0 -0
- package/dist/ckeditor4/plugins/showblocks/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/showblocks/plugin.js +1 -0
- package/dist/ckeditor4/plugins/smiley/dialogs/smiley.js +1 -0
- package/dist/ckeditor4/plugins/smiley/icons/hidpi/smiley.png +0 -0
- package/dist/ckeditor4/plugins/smiley/icons/smiley.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/angel_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/angel_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/angry_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/angry_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/broken_heart.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/broken_heart.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/confused_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/confused_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/cry_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/cry_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/devil_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/devil_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/embaressed_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/embarrassed_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/embarrassed_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/envelope.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/envelope.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/heart.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/heart.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/kiss.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/kiss.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/lightbulb.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/lightbulb.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/omg_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/omg_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/regular_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/regular_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/sad_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/sad_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/shades_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/shades_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/teeth_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/teeth_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/thumbs_down.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/thumbs_down.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/thumbs_up.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/thumbs_up.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/tongue_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/tongue_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/tounge_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/whatchutalkingabout_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/images/wink_smile.gif +0 -0
- package/dist/ckeditor4/plugins/smiley/images/wink_smile.png +0 -0
- package/dist/ckeditor4/plugins/smiley/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/smiley/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/smiley/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/smiley/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/smiley/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/smiley/plugin.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/dialogs/sourcedialog.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/icons/hidpi/sourcedialog-rtl.png +0 -0
- package/dist/ckeditor4/plugins/sourcedialog/icons/hidpi/sourcedialog.png +0 -0
- package/dist/ckeditor4/plugins/sourcedialog/icons/sourcedialog-rtl.png +0 -0
- package/dist/ckeditor4/plugins/sourcedialog/icons/sourcedialog.png +0 -0
- package/dist/ckeditor4/plugins/sourcedialog/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/sourcedialog/plugin.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/af.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ar.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/az.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/bg.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ca.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/cs.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/cy.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/da.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/el.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/en-au.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/en-ca.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/en-gb.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/eo.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/es-mx.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/es.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/et.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/eu.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/fa.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/fi.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/fr-ca.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/gl.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/he.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/hr.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/hu.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/id.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ja.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/km.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ko.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ku.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/lt.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/lv.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/nb.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/nl.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/no.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/oc.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/pl.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/pt-br.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/pt.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ro.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ru.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/si.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sk.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sl.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sq.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sr-latn.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sr.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/sv.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/th.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/tr.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/tt.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/ug.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/uk.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/vi.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/zh-cn.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/lang/zh.js +1 -0
- package/dist/ckeditor4/plugins/specialchar/dialogs/specialchar.js +1 -0
- package/dist/ckeditor4/plugins/stylesheetparser/plugin.js +1 -0
- package/dist/ckeditor4/plugins/table/dialogs/table.js +1 -0
- package/dist/ckeditor4/plugins/tableresize/plugin.js +1 -0
- package/dist/ckeditor4/plugins/tableselection/styles/tableselection.css +36 -0
- package/dist/ckeditor4/plugins/tabletools/dialogs/tableCell.js +1 -0
- package/dist/ckeditor4/plugins/templates/dialogs/templates.css +84 -0
- package/dist/ckeditor4/plugins/templates/dialogs/templates.js +1 -0
- package/dist/ckeditor4/plugins/templates/icons/hidpi/templates-rtl.png +0 -0
- package/dist/ckeditor4/plugins/templates/icons/hidpi/templates.png +0 -0
- package/dist/ckeditor4/plugins/templates/icons/templates-rtl.png +0 -0
- package/dist/ckeditor4/plugins/templates/icons/templates.png +0 -0
- package/dist/ckeditor4/plugins/templates/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/templates/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/templates/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/templates/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/templates/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/templates/plugin.js +1 -0
- package/dist/ckeditor4/plugins/templates/templatedefinition.js +0 -0
- package/dist/ckeditor4/plugins/templates/templates/default.js +1 -0
- package/dist/ckeditor4/plugins/templates/templates/images/template1.gif +0 -0
- package/dist/ckeditor4/plugins/templates/templates/images/template2.gif +0 -0
- package/dist/ckeditor4/plugins/templates/templates/images/template3.gif +0 -0
- package/dist/ckeditor4/plugins/textmatch/plugin.js +1 -0
- package/dist/ckeditor4/plugins/textwatcher/plugin.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/dialogs/uicolor.css +20 -0
- package/dist/ckeditor4/plugins/uicolor/dialogs/uicolor.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/icons/hidpi/uicolor.png +0 -0
- package/dist/ckeditor4/plugins/uicolor/icons/uicolor.png +0 -0
- package/dist/ckeditor4/plugins/uicolor/lang/de-ch.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/lang/de.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/lang/en.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/lang/fr.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/lang/it.js +1 -0
- package/dist/ckeditor4/plugins/uicolor/plugin.js +1 -0
- package/dist/ckeditor4/plugins/uploadfile/plugin.js +1 -0
- package/dist/ckeditor4/plugins/widget/images/handle.png +0 -0
- package/dist/ckeditor4/skins/kama/dialog.css +5 -0
- package/dist/ckeditor4/skins/kama/dialog_ie.css +5 -0
- package/dist/ckeditor4/skins/kama/dialog_ie7.css +5 -0
- package/dist/ckeditor4/skins/kama/dialog_ie8.css +5 -0
- package/dist/ckeditor4/skins/kama/dialog_iequirks.css +5 -0
- package/dist/ckeditor4/skins/kama/editor.css +5 -0
- package/dist/ckeditor4/skins/kama/editor_ie.css +5 -0
- package/dist/ckeditor4/skins/kama/editor_ie7.css +5 -0
- package/dist/ckeditor4/skins/kama/editor_ie8.css +5 -0
- package/dist/ckeditor4/skins/kama/editor_iequirks.css +5 -0
- package/dist/ckeditor4/skins/kama/icons.png +0 -0
- package/dist/ckeditor4/skins/kama/icons_hidpi.png +0 -0
- package/dist/ckeditor4/skins/kama/images/dialog_sides.gif +0 -0
- package/dist/ckeditor4/skins/kama/images/dialog_sides.png +0 -0
- package/dist/ckeditor4/skins/kama/images/dialog_sides_rtl.png +0 -0
- package/dist/ckeditor4/skins/kama/images/mini.gif +0 -0
- package/dist/ckeditor4/skins/kama/images/spinner.gif +0 -0
- package/dist/ckeditor4/skins/kama/images/sprites.png +0 -0
- package/dist/ckeditor4/skins/kama/images/sprites_ie6.png +0 -0
- package/dist/ckeditor4/skins/kama/images/toolbar_start.gif +0 -0
- package/dist/ckeditor4/skins/kama/readme.md +38 -0
- package/dist/ckeditor4/skins/kama/skin.js +1 -0
- package/dist/ckeditor4/skins/moono/dialog.css +5 -0
- package/dist/ckeditor4/skins/moono/dialog_ie.css +5 -0
- package/dist/ckeditor4/skins/moono/dialog_ie7.css +5 -0
- package/dist/ckeditor4/skins/moono/dialog_ie8.css +5 -0
- package/dist/ckeditor4/skins/moono/dialog_iequirks.css +5 -0
- package/dist/ckeditor4/skins/moono/editor.css +5 -0
- package/dist/ckeditor4/skins/moono/editor_gecko.css +5 -0
- package/dist/ckeditor4/skins/moono/editor_ie.css +5 -0
- package/dist/ckeditor4/skins/moono/editor_ie7.css +5 -0
- package/dist/ckeditor4/skins/moono/editor_ie8.css +5 -0
- package/dist/ckeditor4/skins/moono/editor_iequirks.css +5 -0
- package/dist/ckeditor4/skins/moono/icons.png +0 -0
- package/dist/ckeditor4/skins/moono/icons_hidpi.png +0 -0
- package/dist/ckeditor4/skins/moono/images/anchor.png +0 -0
- package/dist/ckeditor4/skins/moono/images/arrow.png +0 -0
- package/dist/ckeditor4/skins/moono/images/close.png +0 -0
- package/dist/ckeditor4/skins/moono/images/hidpi/anchor.png +0 -0
- package/dist/ckeditor4/skins/moono/images/hidpi/close.png +0 -0
- package/dist/ckeditor4/skins/moono/images/hidpi/lock-open.png +0 -0
- package/dist/ckeditor4/skins/moono/images/hidpi/lock.png +0 -0
- package/dist/ckeditor4/skins/moono/images/hidpi/refresh.png +0 -0
- package/dist/ckeditor4/skins/moono/images/lock-open.png +0 -0
- package/dist/ckeditor4/skins/moono/images/lock.png +0 -0
- package/dist/ckeditor4/skins/moono/images/refresh.png +0 -0
- package/dist/ckeditor4/skins/moono/images/spinner.gif +0 -0
- package/dist/ckeditor4/skins/moono/readme.md +49 -0
- package/dist/ckeditor4/skins/moono/skin.js +1 -0
- package/dist/ckeditor4/skins/moono-lisa/dialog.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/dialog_ie.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/dialog_ie8.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/dialog_iequirks.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/editor.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/editor_gecko.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/editor_ie.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/editor_ie8.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/editor_iequirks.css +5 -0
- package/dist/ckeditor4/skins/moono-lisa/icons.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/icons_hidpi.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/arrow.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/close.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/hidpi/close.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/hidpi/lock-open.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/hidpi/lock.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/hidpi/refresh.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/lock-open.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/lock.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/refresh.png +0 -0
- package/dist/ckeditor4/skins/moono-lisa/images/spinner.gif +0 -0
- package/dist/ckeditor4/skins/moono-lisa/readme.md +46 -0
- package/dist/ckeditor4/styles.js +1 -0
- package/dist/ckeditor4/vendor/promise.js +1 -0
- package/dist/d1db2c4677dd2ee7a0c690c58798a013.js +1 -0
- package/dist/d1f0ad8ca2a550bc292669b06a614f79.js +1 -0
- package/dist/d3a6de3a3eae748464b9d49001eba546.js +1 -0
- package/dist/d3c6f63283deafb27231ec767a161534.js +1 -0
- package/dist/d43ad5f9bad9a042b49b2592c7639c28.js +1 -0
- package/dist/d492c085b5834c819ba21542b9147966.js +1 -0
- package/dist/d4f1a314cb3668f8e17f24bccf0229b6.js +1 -0
- package/dist/d542dda7308361c34af2afb9b70d755a.js +1 -0
- package/dist/d5999827bd3af6b813a871de344b109a.js +1 -0
- package/dist/d5a6140d581e5c4eb200259ce372f40b.js +1 -0
- package/dist/d5f79987405c2169278f8de37bcc9d05.js +1 -0
- package/dist/d723acafb30584c955c9aeaedb3e03f0.js +1 -0
- package/dist/d72f9e2d15bf7a51a613e2f116b1a2df.js +1 -0
- package/dist/d78d3b050ea95b068380d975fd413fd7.js +1 -0
- package/dist/d7d616d4aa8fd3f51d681242853dcde9.js +1 -0
- package/dist/d83cda12aee0c87c8b381a1234bf7798.js +1 -0
- package/dist/d8f7ecdd496f3caf14f5afbedfff1937.js +1 -0
- package/dist/d990538e9bb18371ca4e54a043b544a3.js +1 -0
- package/dist/da3a9dc1f8b62f2221f1040e8d207d0e.js +1 -0
- package/dist/daad7cddd8afb1713b51cf5882d2da34.js +1 -0
- package/dist/db8ca5cfb6fe4aaef215f116f6991784.js +1 -0
- package/dist/dc8240db39815020378555a4d80571c3.js +1 -0
- package/dist/ddbc961769cd2ff4d4a7a136168ebf4c.js +1 -0
- package/dist/de0fd4fd7c2d7a4887cbc99eed91f797.js +1 -0
- package/dist/df350f726187b69bcededaaed6cf5f31.js +1 -0
- package/dist/e0adad8a8579bf99f3e22f7c214a5c64.js +1 -0
- package/dist/e0c565aadda4787ba4ef4456c0a7ee29.js +1 -0
- package/dist/e0d8e58814f40cb5f60e1fe5fb37e9fa.js +1 -0
- package/dist/e0fa6a4fe8bff90d50ce812e666957ca.js +1 -0
- package/dist/e13fc7d468ab9b5797f2a44412ca2f00.js +1 -0
- package/dist/e2b38a8393be2cf23f3894ace3efb1c3.js +1 -0
- package/dist/e2fe8f0d4fd950b20b30fabaea96b3f8.js +1 -0
- package/dist/e45a0dfd102b67ad7cdefe10500bf0d7.js +1 -0
- package/dist/e4917fa7632b01d28e99304d32d989f7.js +1 -0
- package/dist/e4bea9a2a2680d970c13cc4ed89bc1a0.js +1 -0
- package/dist/e542ddbb78bb244c0465f22e0e11ab61.js +1 -0
- package/dist/e61779df91186b23e7adf2d1968b2708.js +1 -0
- package/dist/e6ad50b520736b595970c9e07029c3f1.js +1 -0
- package/dist/e6e768df4733fa1a1c8a9b06a24ff2fd.js +1 -0
- package/dist/e7e1a807af3160b342e0a3550cf8f7c5.js +1 -0
- package/dist/e874d975c9128dc6eb9a513d088bed9f.js +1 -0
- package/dist/e9c8f7e13e00284ce126890bf7ac46fd.js +1 -0
- package/dist/eaa55a522fb2cb2f0287711f42344984.js +1 -0
- package/dist/eb90ad711d5c00d78fa48b9b9a9fe065.js +1 -0
- package/dist/ebaed1b3f483c7391037315a62571718.js +1 -0
- package/dist/ecdb4966f685f3e44b1f28fae46827a3.js +1 -0
- package/dist/eda1064525b2e3ea3e2eaba9bbff6ec1.js +1 -0
- package/dist/ee3ddecefdf957d6d016821cd903afa5.js +1 -0
- package/dist/ef87482c92662e8b69a21f47588474ea.js +1 -0
- package/dist/efbb5510bc35424b261de45355e3a626.js +1 -0
- package/dist/efc14cdf19554635e477781704353ec2.js +1 -0
- package/dist/eff4371180dfac54de25ed3a0105d82f.js +1 -0
- package/dist/f1889728797be19372facc2c832f8065.js +1 -0
- package/dist/f316506de87117d7f440fe7c6fba692c.js +1 -0
- package/dist/f326f2f263b1498fedbe1d07d7254d10.js +1 -0
- package/dist/f3a21a0f236d2b7d45be954c32efaa14.js +1 -0
- package/dist/f59696ab0f6f26c339d7e6bb1d73a5c3.js +1 -0
- package/dist/f5d50af31e924b65e3bd3764e8d1df3a.js +1 -0
- package/dist/f5dfa3d3658fddbce84d7c3ecd5504f0.js +1 -0
- package/dist/f6a1ff9a83e32555a4e3c7b99727e02d.js +1 -0
- package/dist/f6d7091e70dee6c74956acfef2464d08.js +1 -0
- package/dist/f8ee12a5cfa6ff1d3550ef30a238d89a.js +1 -0
- package/dist/f93c341314b490174cf67fed1ca62ee0.js +1 -0
- package/dist/fa0c561bb37040fc8145e5c70ea64912.js +1 -0
- package/dist/fb08407a1b7ad7f9a2da2a7845f596c5.js +1 -0
- package/dist/fc84e4779f22e5f1c9a70f56f47e0ed6.js +1 -0
- package/dist/fcae41196f7c52ef8b0e17065fb0ebcf.js +1 -0
- package/dist/fd5bc50b18c9f46380cbe5ec1ac2127b.js +1 -0
- package/dist/fd9645aaf1f70c8abc562be41bee25fc.js +1 -0
- package/dist/fec23c6964d6cf25681d1f3e24b076a4.js +1 -0
- package/dist/ff9176b28afa428194276840d85679ef.js +1 -0
- package/dist/ffd3b83e8b5878f4785591ff54b1dfff.js +1 -0
- package/dist/hkvag-student-id.js +48 -0
- package/dist/hkvag-student-id.js.map +1 -0
- package/package.json +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-actions.e44ed4305c3f83a474c9.js","mappings":"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","sources":["webpack:///./packages/actions/input-edit-info/src/components/InputEditInformation/InputEditInformation.js","webpack:///./packages/actions/input-edit-info/src/components/InputEditInformation/InputEditInformationContainer.js","webpack:///./packages/actions/input-edit-info/src/modules/inputEditInfo/actions.js","webpack:///./packages/actions/input-edit-info/src/modules/inputEditInfo/reducer.js","webpack:///./packages/actions/input-edit-info/src/modules/inputEditInfo/index.js","webpack:///./packages/actions/input-edit-info/src/modules/inputEditInfo/sagas.js","webpack:///./packages/actions/input-edit-info/src/modules/reducers.js","webpack:///./packages/actions/input-edit-info/src/main.js","webpack:///./packages/actions/input-edit-info/src/input.js","webpack:///./packages/actions/copy/src/modules/copy/actions.js","webpack:///./packages/actions/copy/src/components/CopyProgress/CopyProgress.js","webpack:///./packages/actions/copy/src/components/CopyProgress/CopyProgressContainer.js","webpack:///./packages/actions/copy/src/components/CopyProgress/index.js","webpack:///./packages/actions/copy/src/modules/copy/sagas.js","webpack:///./packages/actions/copy/src/modules/reducers.js","webpack:///./packages/actions/copy/src/main.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/modules/evaluationExecutionParticipationAction/actions.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/utils/form.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ParticipationForm/ParticipationForm.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ParticipationForm/ParticipationFormContainer.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ParticipationView/ParticipationView.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ParticipationView/ParticipationViewContainer.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/input.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/modules/evaluationExecutionParticipationAction/reducer.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ShareAnswerModal/StyledComponents.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/components/ShareAnswerModal/ShareAnswerModal.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/modules/evaluationExecutionParticipationAction/sagas.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/modules/reducers.js","webpack:///./packages/actions/evaluation-execution-participation-action/src/main.js","webpack:///./packages/actions/event-registration-action/src/modules/eventRegistrationAction/actions.js","webpack:///./packages/widgets/login/src/modules/actions.js","webpack:///./packages/widgets/login/src/types/Pages.js","webpack:///./packages/widgets/login/src/modules/login/actions.js","webpack:///./packages/widgets/login/src/components/form-components/FormMessage/FormMessage.js","webpack:///./packages/widgets/login/src/components/form-components/FormMessage/index.js","webpack:///./packages/widgets/login/src/components/form-components/LoginButton/StyledComponents.js","webpack:///./packages/widgets/login/src/components/form-components/LoginButton/LoginButton.js","webpack:///./packages/widgets/login/src/components/form-components/LoginButton/index.js","webpack:///./packages/widgets/login/src/components/form-components/Title/Title.js","webpack:///./packages/widgets/login/src/components/form-components/Title/index.js","webpack:///./packages/widgets/login/src/components/form-components/useAutoFill.js","webpack:///./packages/widgets/login/src/components/StyledLoginForm.js","webpack:///./packages/widgets/login/src/components/LoginForm/LoginForm.js","webpack:///./packages/widgets/login/src/components/LoginForm/LoginFormContainer.js","webpack:///./packages/widgets/login/src/components/LoginForm/index.js","webpack:///./packages/widgets/login/src/components/PasswordRequest/PasswordRequest.js","webpack:///./packages/widgets/login/src/components/PasswordRequest/PasswordRequestContainer.js","webpack:///./packages/widgets/login/src/components/PasswordRequest/index.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/actions.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/actions.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/validationRules/actions.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/FailureMessage/messages.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/FailureMessage/FailureMessage.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/FailureMessage/index.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/ValidationRules/ValidationRules.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/ValidationRules/index.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/StyledPasswordInput.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/PasswordInput.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/StyledPasswordUpdateDialog.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/PasswordUpdateDialog.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/PasswordUpdateDialogContainer.js","webpack:///./packages/widgets/login/src/components/passwordUpdate/PasswordUpdateDialog/index.js","webpack:///./packages/actions/two-factor-connector/src/modules/actions.js","webpack:///./packages/actions/two-factor-connector/src/components/GlobalStyledComponents.js","webpack:///./packages/actions/two-factor-connector/src/components/Result/StyledComponents.js","webpack:///./packages/actions/two-factor-connector/src/components/Result/Result.js","webpack:///./packages/actions/two-factor-connector/src/components/Result/ResultContainer.js","webpack:///./packages/actions/two-factor-connector/src/components/Result/index.js","webpack:///./packages/core/tocco-ui/src/QRCode/QRCode.js","webpack:///./packages/actions/two-factor-connector/src/components/Secret/StyledComponents.js","webpack:///./packages/actions/two-factor-connector/src/components/Secret/Secret.js","webpack:///./packages/actions/two-factor-connector/src/components/Secret/SecretContainer.js","webpack:///./packages/actions/two-factor-connector/src/components/Secret/index.js","webpack:///./packages/actions/two-factor-connector/src/components/Start/Start.js","webpack:///./packages/actions/two-factor-connector/src/components/Start/StartContainer.js","webpack:///./packages/actions/two-factor-connector/src/components/Start/index.js","webpack:///./packages/actions/two-factor-connector/src/components/Verification/StyledComponents.js","webpack:///./packages/actions/two-factor-connector/src/components/Verification/Verification.js","webpack:///./packages/actions/two-factor-connector/src/components/Verification/VerificationContainer.js","webpack:///./packages/actions/two-factor-connector/src/components/Verification/index.js","webpack:///./packages/actions/two-factor-connector/src/components/TwoFactorConnector/TwoFactorConnector.js","webpack:///./packages/actions/two-factor-connector/src/components/TwoFactorConnector/TwoFactorConnectorContainer.js","webpack:///./packages/actions/two-factor-connector/src/components/TwoFactorConnector/index.js","webpack:///./packages/actions/two-factor-connector/src/modules/reducer.js","webpack:///./packages/actions/two-factor-connector/src/modules/sagas.js","webpack:///./packages/actions/two-factor-connector/src/modules/index.js","webpack:///./packages/actions/two-factor-connector/src/main.js","webpack:///./packages/widgets/login/src/components/TwoFactorConnectorForm/TwoFactorConnectorForm.js","webpack:///./packages/widgets/login/src/components/TwoFactorConnectorForm/TwoFactorConnectorContainer.js","webpack:///./packages/widgets/login/src/components/TwoFactorConnectorForm/index.js","webpack:///./packages/widgets/login/src/components/TwoStepLoginForm/StyledTwoStepLoginForm.js","webpack:///./packages/widgets/login/src/components/TwoStepLoginForm/TwoStepLoginForm.js","webpack:///./packages/widgets/login/src/components/TwoStepLoginForm/TwoStepLoginContainer.js","webpack:///./packages/widgets/login/src/components/TwoStepLoginForm/index.js","webpack:///./packages/widgets/login/src/components/UsernameForm/UsernameForm.js","webpack:///./packages/widgets/login/src/components/UsernameForm/UsernameFormContainer.js","webpack:///./packages/widgets/login/src/components/UsernameForm/index.js","webpack:///./packages/widgets/login/src/components/Login/Login.js","webpack:///./packages/widgets/login/src/components/Login/LoginContainer.js","webpack:///./packages/widgets/login/src/components/Login/index.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/dialog/actions.js","webpack:///./packages/widgets/login/src/modules/login/reducer.js","webpack:///./packages/widgets/login/src/modules/login/index.js","webpack:///./packages/widgets/login/src/modules/loginForm/actions.js","webpack:///./packages/widgets/login/src/modules/loginForm/reducer.js","webpack:///./packages/widgets/login/src/modules/loginForm/index.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/dialog/reducer.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/dialog/index.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/dialog/sagas.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/utils.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/reducer.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/index.js","webpack:///./packages/widgets/login/src/visibilityStatus.js","webpack:///./packages/widgets/login/src/modules/twoStepLogin/actions.js","webpack:///./packages/widgets/login/src/modules/sagas.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/validate.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/password/sagas.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/sagas.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/validationRules/reducer.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/validationRules/index.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/validationRules/sagas.js","webpack:///./packages/widgets/login/src/modules/passwordUpdate/reducers.js","webpack:///./packages/widgets/login/src/modules/twoStepLogin/reducer.js","webpack:///./packages/widgets/login/src/modules/twoStepLogin/index.js","webpack:///./packages/widgets/login/src/modules/reducers.js","webpack:///./packages/widgets/login/src/LoginApp.js","webpack:///./packages/widgets/login/src/components/LoadUsernameMask/LoadUsernameMask.js","webpack:///./packages/widgets/login/src/components/LoadUsernameMask/LoadUsernameMaskContainer.js","webpack:///./packages/widgets/login/src/components/LoadUsernameMask/index.js","webpack:///./packages/widgets/login/src/PasswordUpdateApp.js","webpack:///./packages/widgets/login/src/main.js","webpack:///./packages/widgets/sso-login/src/utils/loginWindow.js","webpack:///./packages/widgets/sso-login/src/utils/popUp.js","webpack:///./packages/core/tocco-util/src/color/hexToRgb.js","webpack:///./packages/core/tocco-util/src/color/contrast.js","webpack:///./packages/core/tocco-util/src/color/index.js","webpack:///./packages/widgets/sso-login/src/components/ProviderButton/StyledProviderButton.js","webpack:///./packages/widgets/sso-login/src/components/ProviderButton/ProviderButton.js","webpack:///./packages/widgets/sso-login/src/components/LoginBox/StyledComponents.js","webpack:///./packages/widgets/sso-login/src/components/LoginBox/useAutoLogin.js","webpack:///./packages/widgets/sso-login/src/components/LoginBox/LoginBox.js","webpack:///./packages/widgets/sso-login/src/components/LoginBox/index.js","webpack:///./packages/widgets/sso-login/src/modules/actions.js","webpack:///./packages/widgets/sso-login/src/containers/LoginBoxContainer.js","webpack:///./packages/widgets/sso-login/src/modules/reducer.js","webpack:///./packages/widgets/sso-login/src/utils/providers.js","webpack:///./packages/widgets/sso-login/src/visibilityStatus.js","webpack:///./packages/widgets/sso-login/src/modules/sagas.js","webpack:///./packages/widgets/sso-login/src/modules/index.js","webpack:///./packages/widgets/sso-login/src/main.js","webpack:///./packages/actions/event-registration-action/src/components/Login/StyledComponents.js","webpack:///./packages/actions/event-registration-action/src/components/Login/Login.js","webpack:///./packages/actions/event-registration-action/src/components/Login/LoginContainer.js","webpack:///./packages/actions/event-registration-action/src/components/Login/index.js","webpack:///./packages/actions/event-registration-action/src/utils/eventQuestions.js","webpack:///./packages/actions/event-registration-action/src/utils/modules.js","webpack:///./packages/actions/event-registration-action/src/components/RegisterForm/RegisterForm.js","webpack:///./packages/actions/event-registration-action/src/components/RegisterForm/RegisterFormContainer.js","webpack:///./packages/actions/event-registration-action/src/components/RegisterView/RegisterView.js","webpack:///./packages/actions/event-registration-action/src/components/RegisterView/RegisterViewContainer.js","webpack:///./packages/actions/event-registration-action/src/components/EventRegistration/EventRegistration.js","webpack:///./packages/actions/event-registration-action/src/components/EventRegistration/EventRegistrationContainer.js","webpack:///./packages/actions/event-registration-action/src/components/EventRegistration/index.js","webpack:///./packages/actions/event-registration-action/src/input.js","webpack:///./packages/actions/event-registration-action/src/modules/eventRegistrationAction/reducer.js","webpack:///./packages/widgets/sso-login/src/modules/sagasUtils.js","webpack:///./packages/actions/event-registration-action/src/modules/eventRegistrationAction/sagas.js","webpack:///./packages/actions/event-registration-action/src/utils/termInfos.js","webpack:///./packages/actions/event-registration-action/src/modules/reducers.js","webpack:///./packages/actions/event-registration-action/src/main.js","webpack:///./packages/core/app-extensions/src/templateValues/modules/actions.js","webpack:///./packages/core/app-extensions/src/templateValues/modules/reducer.js","webpack:///./packages/core/app-extensions/src/templateValues/components/TemplateSelect.js","webpack:///./packages/core/app-extensions/src/templateValues/components/TemplateSelectContainer.js","webpack:///./packages/core/app-extensions/src/templateValues/components/TemplateForm.js","webpack:///./packages/core/app-extensions/src/templateValues/modules/sagas.js","webpack:///./packages/core/app-extensions/src/templateValues/components/TemplateFormContainer.js","webpack:///./packages/core/app-extensions/src/templateValues/index.js","webpack:///./packages/core/app-extensions/src/templateValues/addToStore.js","webpack:///./packages/actions/export/src/modules/export/actions.js","webpack:///./packages/actions/export/src/components/StyledComponents.js","webpack:///./packages/actions/export/src/components/Export.js","webpack:///./packages/actions/export/src/components/ExportContainer.js","webpack:///./packages/actions/export/src/modules/export/reducer.js","webpack:///./packages/actions/export/src/modules/export/sagas.js","webpack:///./packages/actions/export/src/modules/reducers.js","webpack:///./packages/actions/export/src/main.js","webpack:///./packages/actions/input-edit/src/components/Action/index.js","webpack:///./packages/actions/input-edit/src/modules/inputEditSearch/actions.js","webpack:///./packages/actions/input-edit/src/modules/inputEditTable/actions.js","webpack:///./packages/actions/input-edit/src/components/InputEditSearch/StyledComponents.js","webpack:///./packages/actions/input-edit/src/components/InputEditSearch/InputEditSearch.js","webpack:///./packages/actions/input-edit/src/components/InputEditSearch/InputEditSearchContainer.js","webpack:///./packages/actions/input-edit/src/modules/inputEditPagination/actions.js","webpack:///./packages/actions/input-edit/src/components/InputEditTable/keyHandler.js","webpack:///./packages/actions/input-edit/src/components/InputEditTable/StyledComponents.js","webpack:///./packages/actions/input-edit/src/components/InputEditTable/InputEditTable.js","webpack:///./packages/actions/input-edit/src/components/InputEditTable/InputEditTableContainer.js","webpack:///./packages/actions/input-edit/src/components/InputEdit/StyledInputEdit.js","webpack:///./packages/actions/input-edit/src/components/InputEdit/InputEdit.js","webpack:///./packages/actions/input-edit/src/components/InputEdit/InputEditContainer.js","webpack:///./packages/actions/input-edit/src/modules/inputEdit/actions.js","webpack:///./packages/actions/input-edit/src/modules/inputEdit/reducer.js","webpack:///./packages/actions/input-edit/src/modules/inputEdit/index.js","webpack:///./packages/actions/input-edit/src/modules/inputEdit/sagas.js","webpack:///./packages/actions/input-edit/src/modules/inputEditPagination/reducer.js","webpack:///./packages/actions/input-edit/src/modules/inputEditPagination/index.js","webpack:///./packages/actions/input-edit/src/modules/inputEditTable/utils.js","webpack:///./packages/actions/input-edit/src/modules/inputEditTable/sagas.js","webpack:///./packages/actions/input-edit/src/modules/inputEditPagination/sagas.js","webpack:///./packages/actions/input-edit/src/modules/inputEditSearch/reducer.js","webpack:///./packages/actions/input-edit/src/modules/inputEditSearch/index.js","webpack:///./packages/actions/input-edit/src/modules/inputEditSearch/sagas.js","webpack:///./packages/actions/input-edit/src/modules/inputEditTable/reducer.js","webpack:///./packages/actions/input-edit/src/modules/inputEditTable/index.js","webpack:///./packages/actions/input-edit/src/modules/reducers.js","webpack:///./packages/actions/input-edit/src/main.js","webpack:///./packages/actions/input-edit/src/customActions.js","webpack:///./packages/actions/job-offer-apply/src/modules/jobOfferApply/actions.js","webpack:///./packages/actions/job-offer-apply/src/components/ApplicationForm/Form.js","webpack:///./packages/actions/job-offer-apply/src/components/ApplicationForm/FormContainer.js","webpack:///./packages/actions/job-offer-apply/src/components/ApplicationForm/ApplicationForm.js","webpack:///./packages/actions/job-offer-apply/src/components/ApplicationForm/ApplicationFormContainer.js","webpack:///./packages/actions/job-offer-apply/src/modules/jobOfferApply/reducer.js","webpack:///./packages/actions/job-offer-apply/src/modules/jobOfferApply/sagas.js","webpack:///./packages/actions/job-offer-apply/src/modules/reducers.js","webpack:///./packages/actions/job-offer-apply/src/main.js","webpack:///./packages/actions/mailing-list-mail-action/src/modules/mailAction/actions.js","webpack:///./packages/actions/mailing-list-mail-action/src/components/StyledComponents.js","webpack:///./packages/actions/mailing-list-mail-action/src/components/MailAction/MailAction.js","webpack:///./packages/actions/mailing-list-mail-action/src/components/MailAction/MailActionContainer.js","webpack:///./packages/actions/mailing-list-mail-action/src/modules/mailAction/reducer.js","webpack:///./packages/actions/mailing-list-mail-action/src/modules/mailAction/sagas.js","webpack:///./packages/actions/mailing-list-mail-action/src/modules/reducers.js","webpack:///./packages/actions/mailing-list-mail-action/src/main.js","webpack:///./packages/actions/subscribe-calendar/src/modules/subscribeCalendar/actions.js","webpack:///./packages/actions/subscribe-calendar/src/components/StyledComponents.js","webpack:///./packages/actions/subscribe-calendar/src/components/SubscribeCalendarCopy.js","webpack:///./packages/actions/subscribe-calendar/src/components/SubscribeCalendarCopyContainer.js","webpack:///./packages/actions/subscribe-calendar/src/modules/subscribeCalendar/reducer.js","webpack:///./packages/actions/subscribe-calendar/src/modules/subscribeCalendar/index.js","webpack:///./packages/actions/subscribe-calendar/src/modules/subscribeCalendar/sagas.js","webpack:///./packages/actions/subscribe-calendar/src/modules/reducers.js","webpack:///./packages/actions/subscribe-calendar/src/main.js"],"sourcesContent":["import PropTypes from 'prop-types'\nimport {field} from 'tocco-app-extensions'\nimport {StatedValue} from 'tocco-ui'\n\nconst InputEditInformation = ({information}) => (\n <>\n {information.map(({id, type, label, value}) => {\n const Field = field.factory('readOnly', type)\n return (\n <StatedValue key={id} label={label} immutable={true} hasValue={true}>\n <Field formField={{dataType: type}} value={value} mappingType=\"readOnly\" />\n </StatedValue>\n )\n })}\n </>\n)\n\nInputEditInformation.propTypes = {\n information: PropTypes.array.isRequired\n}\n\nexport default InputEditInformation\n","import {connect} from 'react-redux'\n\nimport InputEditInformation from './InputEditInformation'\n\nconst mapStateToProps = state => ({\n information: state.inputEditInfo.information\n})\n\nexport default connect(mapStateToProps)(InputEditInformation)\n","export const INITIALIZE_INFORMATION = 'inputEditInfo/INITIALIZE_INFORMATION'\nexport const SET_INFORMATION = 'inputEditInfo/SET_INFORMATION'\n\nexport const initializeInformation = () => ({\n type: INITIALIZE_INFORMATION\n})\n\nexport const setInformation = information => ({\n type: SET_INFORMATION,\n payload: {information}\n})\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n information: []\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_INFORMATION]: reducerUtil.singleTransferReducer('information')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\nexport default reducer\n","import {all, takeLatest, call, put, select} from 'redux-saga/effects'\nimport {rest} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nconst inputSelector = state => state.input\n\nexport default function* sagas() {\n yield all([takeLatest(actions.INITIALIZE_INFORMATION, initialize)])\n}\n\nexport function* initialize() {\n const {selection} = yield select(inputSelector)\n const {body} = yield call(rest.requestSaga, 'inputEdit/information', {method: 'POST', body: selection})\n yield put(actions.setInformation(body))\n}\n","import inputEditInfoReducer, {sagas as inputEditInfoSaga} from './inputEditInfo'\n\nexport default {\n inputEditInfo: inputEditInfoReducer\n}\n\nexport const sagas = [inputEditInfoSaga]\n","import {appFactory, selection} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport InputEditInformation from './components/InputEditInformation'\nimport {getDispatchActions} from './input'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'input-edit-info'\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <InputEditInformation />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: getDispatchActions(),\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst InputEditInfoApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName})\n return component\n}\n\nInputEditInfoApp.propTypes = {\n selection: selection.propType.isRequired\n}\n\nexport default InputEditInfoApp\n","import {initializeInformation} from './modules/inputEditInfo/actions'\n\nexport const getDispatchActions = () => [initializeInformation()]\n","export const START_COPY = 'copy/START_COPY'\n\nexport const startCopy = () => ({\n type: START_COPY\n})\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {LoadMask} from 'tocco-ui'\n\nconst CopyProgress = ({startCopy}) => {\n useEffect(() => {\n startCopy()\n }, [startCopy])\n\n return <LoadMask />\n}\n\nCopyProgress.propTypes = {\n startCopy: PropTypes.func.isRequired\n}\n\nexport default CopyProgress\n","import {connect} from 'react-redux'\n\nimport {startCopy} from '../../modules/copy/actions'\nimport CopyProgress from './CopyProgress'\n\nconst mapActionCreators = {\n startCopy\n}\n\nexport default connect(null, mapActionCreators)(CopyProgress)\n","import CopyProgressContainer from './CopyProgressContainer'\n\nexport default CopyProgressContainer\n","import {all, call, put, select, takeLatest} from 'redux-saga/effects'\nimport {rest, form, externalEvents, selection as selectionUtil} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nexport const inputSelector = state => state.input\n\nexport default function* sagas() {\n yield all([takeLatest(actions.START_COPY, copy)])\n}\n\nexport function* copy() {\n const {\n selection,\n navigationStrategy,\n context: {formName}\n } = yield select(inputSelector)\n const entities = yield call(selectionUtil.getEntities, selection, rest.fetchEntitiesPage)\n\n if (entities.keys.length === 1) {\n const values = yield call(getValues, entities.entityName, entities.keys[0], formName)\n yield put(externalEvents.fireExternalEvent('onCancel'))\n yield call(navigationStrategy.navigateToCreateRelative, null, {defaultValues: values})\n } else {\n throw new Error('Invalid selection')\n }\n}\n\nconst extractKeysFromValue = value => {\n if (Array.isArray(value)) {\n return value.map(v => v.key)\n }\n if (typeof value === 'object') {\n return value.key\n }\n return value\n}\n\nconst extractValue = entityPath => {\n const {type, value} = entityPath\n if (['document', 'binary'].includes(type)) {\n return value\n }\n\n return extractKeysFromValue(value)\n}\n\nexport function* getValues(entityName, entityKey, formName) {\n const paths = yield call(getPaths, formName)\n const sourceEntity = yield call(rest.fetchEntity, entityName, entityKey, {paths})\n\n return Object.entries(sourceEntity.paths)\n .map(([id, valueObject]) => {\n const value = valueObject.value\n if (value === null || value === '' || (Array.isArray(value) && value.length === 0)) {\n return null\n }\n\n return {id, value: extractValue(valueObject)}\n })\n .filter(d => !!d)\n}\n\nexport function* getPaths(formName) {\n const formDefinition = yield call(rest.fetchForm, formName, 'create')\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition, false)\n return fieldDefinitions.filter(f => f.ignoreCopy !== true && f.path).map(e => e.path)\n}\n","import {sagas as copySagas} from './copy'\n\nexport default {}\nexport const sagas = [copySagas]\n","import PropTypes from 'prop-types'\nimport {appFactory, externalEvents, selection} from 'tocco-app-extensions'\nimport {reducer as reducerUtil, navigationStrategy} from 'tocco-util'\n\nimport CopyProgress from './components/CopyProgress'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'copy'\n\nconst EXTERNAL_EVENTS = ['emitAction', 'onSuccess', 'onCancel', 'onError']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <CopyProgress />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__DEV__ && __PACKAGE_NAME__ === packageName) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n } else {\n appFactory.registerAppInRegistry(packageName, initApp)\n }\n})()\n\nconst CopyApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nCopyApp.propTypes = {\n selection: selection.propType.isRequired,\n navigationStrategy: navigationStrategy.propTypes.isRequired,\n context: PropTypes.shape({\n formName: PropTypes.string\n }),\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {})\n}\n\nexport default CopyApp\n","export const LOAD_FORM_INFO = 'evaluationExecutionParticipationAction/LOAD_FORM_INFO'\nexport const SET_UUID = 'evaluationExecutionParticipationAction/SET_UUID'\nexport const LOAD_UUID = 'evaluationExecutionParticipationAction/LOAD_UUID'\nexport const SET_FORM_DEFINITION = 'evaluationExecutionParticipationAction/SET_FORM_DEFINITION'\nexport const SET_FIELD_DEFINITIONS = 'evaluationExecutionParticipationAction/SET_FIELD_DEFINITIONS'\nexport const SET_EVALUATION = 'evaluationExecutionParticipationAction/SET_EVALUATION'\nexport const SET_LOADED = 'evaluationExecutionParticipationAction/SET_LOADED'\nexport const ADD_PSEUDO_ENTITY_PATHS = 'evaluationExecutionParticipationAction/ADD_PSEUDO_ENTITY_PATHS'\nexport const SUBMIT_FORM = 'evaluationExecutionParticipationAction/SUBMIT_FORM'\nexport const DISPLAY_SHARE_ANSWER_MODAL = 'evaluationExecutionParticipationAction/DISPLAY_SHARE_ANSWER_MODAL'\nexport const REMOVE_SHAREABLE_ANSWERS = 'evaluationExecutionParticipationAction/REMOVE_SHAREABLE_ANSWERS'\nexport const FINISH_EVALUATION = 'evaluationExecutionParticipationAction/FINISH_EVALUATION'\n\nexport const loadFormInfo = () => ({\n type: LOAD_FORM_INFO\n})\n\nexport const setUuid = uuid => ({\n type: SET_UUID,\n payload: {uuid}\n})\n\nexport const loadUuid = selection => ({\n type: LOAD_UUID,\n payload: {selection}\n})\n\nexport const setFormDefinition = formDefinition => ({\n type: SET_FORM_DEFINITION,\n payload: {formDefinition}\n})\n\nexport const setFieldDefinitions = fieldDefinitions => ({\n type: SET_FIELD_DEFINITIONS,\n payload: {fieldDefinitions}\n})\n\nexport const setEvaluation = evaluation => ({\n type: SET_EVALUATION,\n payload: {evaluation}\n})\n\nexport const setLoaded = loaded => ({\n type: SET_LOADED,\n payload: {loaded}\n})\n\nexport const addPseudoEntityPaths = pseudoEntityPaths => ({\n type: ADD_PSEUDO_ENTITY_PATHS,\n payload: {\n pseudoEntityPaths\n }\n})\n\nexport const submitForm = () => ({\n type: SUBMIT_FORM\n})\n\nexport const displayShareAnswerModal = () => ({\n type: DISPLAY_SHARE_ANSWER_MODAL\n})\n\nexport const removeShareableAnswers = answerIds => ({\n type: REMOVE_SHAREABLE_ANSWERS,\n payload: {\n answerIds\n }\n})\n\nexport const finishEvaluation = () => ({\n type: FINISH_EVALUATION\n})\n","import _flatten from 'lodash/flatten'\nimport {form} from 'tocco-app-extensions'\nimport {remoteLogger} from 'tocco-util'\n\nexport const createEmptyForm = (id, readonly, children) => ({\n id,\n componentType: 'form',\n children: [\n {\n id: 'box1',\n label: null,\n componentType: 'layout',\n children: [\n {\n id: 'box1',\n label: null,\n componentType: 'layout',\n children,\n layoutType: 'vertical-box'\n }\n ],\n layoutType: 'horizontal-box'\n }\n ],\n readonly\n})\n\nexport const createVerticalBox = (id, label, children) => ({\n id,\n label,\n componentType: 'layout',\n children,\n layoutType: 'vertical-box'\n})\n\nexport const mapQuestion = (question, commentLabel, suggestionLabel) => [\n ...mapQuestionField(question, suggestionLabel),\n ...(question.commentField ? [mapCommentField(question, commentLabel)] : []),\n ..._flatten(question.parallelQuestions.map(q => mapQuestion(q, commentLabel)))\n]\n\nconst mapQuestionField = (question, suggestionLabel) => {\n switch (question.type) {\n case 'textquestion':\n return [\n form.createTextField(\n `question_${question.key}`,\n mapTextValue(question.textAnswer, !question.writable),\n question.question,\n question.required,\n !question.writable\n )\n ]\n case 'singlechoice':\n return [\n form.createSingleChoiceField(\n `question_${question.key}`,\n mapChoiceOptions(question),\n question.question,\n question.required,\n !question.writable\n )\n ]\n case 'multiplechoice':\n return [\n form.createMultipleChoiceField(\n `question_${question.key}`,\n mapChoiceOptions(question),\n question.question,\n question.required,\n !question.writable\n )\n ]\n case 'singlechoicedropdown':\n return [\n form.createSelectField(\n `question_${question.key}`,\n mapSelectOptions(question),\n question.question,\n false,\n question.required,\n !question.writable\n )\n ]\n case 'multiplechoicedropdown':\n return [\n form.createSelectField(\n `question_${question.key}`,\n mapSelectOptions(question),\n question.question,\n true,\n question.required,\n !question.writable\n )\n ]\n case 'suggestedtextquestion':\n return [\n form.createSelectField(\n `suggestion_${question.key}`,\n mapSelectOptions(question),\n suggestionLabel,\n false,\n question.required,\n !question.writable\n ),\n form.createTextField(\n `question_${question.key}`,\n mapTextValue(question.textAnswer, !question.writable),\n question.question,\n question.required,\n !question.writable\n )\n ]\n default:\n remoteLogger.logError(`Type \"${question.type}\" is not supported`)\n return []\n }\n}\n\nconst mapTextValue = (value, readonly) => {\n // display whitespace character else readonly field is hidden by form builder\n if (readonly) {\n return value || ' '\n }\n\n return value\n}\n\nconst mapChoiceOptions = question =>\n Object.entries(question.answers).map(([key, value]) =>\n form.createChoiceOption(key, value, question.selectedValues.includes(key))\n )\n\nconst mapSelectOptions = question =>\n Object.entries(question.answers).map(([key, value]) =>\n form.createSelectOption(key, value, question.selectedValues.includes(key))\n )\n\nconst mapCommentField = (question, commentLabel) =>\n form.createTextField(\n `comment_${question.key}`,\n mapTextValue(question.comment, !question.writable),\n commentLabel,\n false,\n !question.writable\n )\n\nexport const getShareableQuestions = evaluation =>\n _flatten(evaluation.questionCategories.map(c => c.questions)).filter(q => q.shareable)\n\nexport const getQuestionByKey = (evaluation, key) =>\n _flatten(evaluation.questionCategories.map(c => c.questions)).find(q => q.key === key)\n\nexport const getAnswerValue = (value, questionType) => {\n switch (questionType) {\n case 'textquestion':\n case 'suggestedtextquestion':\n return value\n case 'singlechoice':\n return value.options.find(o => o.checked)?.id || null\n case 'multiplechoice':\n return value.options.filter(o => o.checked).map(o => o.id)\n case 'singlechoicedropdown':\n return value.options.find(o => o.selected)?.key || null\n case 'multiplechoicedropdown':\n return value.options.filter(o => o.selected).map(o => o.key)\n default:\n remoteLogger.logError(`Type \"${questionType}\" is not supported`)\n return null\n }\n}\n","import PropTypes from 'prop-types'\nimport {reduxForm} from 'redux-form'\nimport {form, selection as selectionUtil} from 'tocco-app-extensions'\nimport {Button} from 'tocco-ui'\n\nimport {getShareableQuestions} from '../../utils/form'\n\nexport const REDUX_FORM_NAME = 'evaluation-execution-participation-action'\n\nconst ParticipationForm = ({\n formDefinition,\n formValues,\n evaluation,\n submitting,\n valid,\n displayShareAnswerModal,\n submitForm,\n finishEvaluation,\n fireExternalEvent,\n selection,\n intl\n}) => {\n const handleBack = () => fireExternalEvent('onCancel')\n\n const formEventProps = form.hooks.useFormEvents({submitForm})\n\n return (\n <form {...formEventProps}>\n <form.FormBuilder\n entity={{key: evaluation.key, model: 'Evaluation_party_assignment'}}\n formName={REDUX_FORM_NAME}\n formDefinition={formDefinition}\n formValues={formValues}\n fieldMappingType=\"editable\"\n mode=\"create\"\n />\n {selection ? (\n <Button\n label={intl.formatMessage({id: 'client.actions.evaluation-execution-participation-action.back'})}\n look=\"raised\"\n onClick={handleBack}\n />\n ) : null}\n {!evaluation.readOnly ? (\n <Button\n disabled={submitting}\n label={intl.formatMessage({id: 'client.actions.evaluation-execution-participation-action.submit'})}\n type=\"submit\"\n look=\"raised\"\n ink=\"primary\"\n />\n ) : null}\n {!evaluation.readOnly && getShareableQuestions(evaluation).length > 0 ? (\n <Button\n disabled={submitting}\n label={intl.formatMessage({id: 'client.actions.evaluation-execution-participation-action.shareable'})}\n look=\"raised\"\n onClick={displayShareAnswerModal}\n />\n ) : null}\n {!evaluation.readOnly && evaluation.isFinishable ? (\n <Button\n disabled={submitting || !valid}\n label={intl.formatMessage({id: 'client.actions.evaluation-execution-participation-action.finish'})}\n look=\"raised\"\n onClick={finishEvaluation}\n />\n ) : null}\n </form>\n )\n}\n\nParticipationForm.propTypes = {\n formDefinition: PropTypes.object,\n formValues: PropTypes.object,\n evaluation: PropTypes.object,\n submitting: PropTypes.bool,\n valid: PropTypes.bool,\n displayShareAnswerModal: PropTypes.func.isRequired,\n submitForm: PropTypes.func.isRequired,\n finishEvaluation: PropTypes.func.isRequired,\n fireExternalEvent: PropTypes.func.isRequired,\n selection: selectionUtil.propType,\n intl: PropTypes.object.isRequired\n}\n\nexport default reduxForm({form: REDUX_FORM_NAME, destroyOnUnmount: false})(ParticipationForm)\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {getFormValues} from 'redux-form'\nimport {externalEvents, form} from 'tocco-app-extensions'\n\nimport {\n displayShareAnswerModal,\n submitForm,\n finishEvaluation\n} from '../../modules/evaluationExecutionParticipationAction/actions'\nimport ParticipationForm, {REDUX_FORM_NAME} from './ParticipationForm'\n\nconst mapActionCreators = {\n displayShareAnswerModal,\n submitForm,\n finishEvaluation,\n fireExternalEvent: externalEvents.fireExternalEvent\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.evaluationExecutionParticipationAction.formDefinition,\n formValues: getFormValues(REDUX_FORM_NAME)(state),\n evaluation: state.evaluationExecutionParticipationAction.evaluation,\n formErrors: form.selectors.getFormErrors(REDUX_FORM_NAME)(state),\n selection: state.input.selection\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(ParticipationForm))\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {form} from 'tocco-app-extensions'\nimport {LoadMask, Typography} from 'tocco-ui'\n\nimport ParticipationForm from '../ParticipationForm'\n\nconst ParticipationView = ({loadFormInfo, fieldDefinitions, formDefinition, uuid, evaluation, loaded}) => {\n useEffect(() => {\n if (uuid) {\n loadFormInfo()\n }\n }, [loadFormInfo, uuid])\n\n const handleSyncValidate = form.hooks.useSyncValidation({fieldDefinitions, formDefinition})\n\n return (\n <LoadMask required={[loaded]}>\n <>\n <Typography.H1>{evaluation.questionnaireLabel}</Typography.H1>\n <Typography.H5>{evaluation.user}</Typography.H5>\n <Typography.H5>{evaluation.sourceEntity}</Typography.H5>\n <Typography.P>{evaluation.description}</Typography.P>\n </>\n <ParticipationForm validate={handleSyncValidate} />\n </LoadMask>\n )\n}\n\nParticipationView.propTypes = {\n loadFormInfo: PropTypes.func.isRequired,\n formDefinition: PropTypes.object,\n fieldDefinitions: PropTypes.arrayOf(PropTypes.object),\n evaluation: PropTypes.shape({\n questionnaireLabel: PropTypes.string,\n user: PropTypes.string,\n sourceEntity: PropTypes.string,\n description: PropTypes.string\n }),\n uuid: PropTypes.string,\n loaded: PropTypes.bool\n}\n\nexport default ParticipationView\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {loadFormInfo} from '../../modules/evaluationExecutionParticipationAction/actions'\nimport ParticipationView from './ParticipationView'\n\nconst mapActionCreators = {\n loadFormInfo\n}\nconst mapStateToProps = state => ({\n formDefinition: state.evaluationExecutionParticipationAction.formDefinition,\n fieldDefinitions: state.evaluationExecutionParticipationAction.fieldDefinitions,\n uuid: state.evaluationExecutionParticipationAction.uuid,\n evaluation: state.evaluationExecutionParticipationAction.evaluation,\n loaded: state.evaluationExecutionParticipationAction.loaded\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(ParticipationView))\n","import {action} from 'tocco-util'\n\nimport {loadUuid, setUuid} from './modules/evaluationExecutionParticipationAction/actions'\n\nexport const getDispatchActions = input => action.getDispatchActions(input, actionSettings)\n\nconst actionSettings = [\n {\n name: 'selection',\n action: loadUuid,\n argsFactory: input => [input.selection]\n },\n {\n name: 'uuid',\n action: setUuid,\n argsFactory: input => [input.uuid]\n }\n]\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n uuid: null,\n formDefinition: null,\n fieldDefinitions: null,\n evaluation: {},\n loaded: false,\n pseudoEntityPaths: {}\n}\n\nconst addPseudoEntityPaths = (state, {payload: {pseudoEntityPaths}}) => ({\n ...state,\n pseudoEntityPaths: {...state.pseudoEntityPaths, ...pseudoEntityPaths}\n})\n\nconst removeShareableAnswers = (state, {payload: {answerIds}}) => ({\n ...state,\n evaluation: {\n ...state.evaluation,\n questionCategories: state.evaluation.questionCategories.map(c => ({\n ...c,\n questions: c.questions.map(q => ({\n ...q,\n ...(answerIds.includes(q.key) ? {shareable: false} : {})\n }))\n }))\n }\n})\n\nconst ACTION_HANDLERS = {\n [actions.SET_UUID]: reducerUtil.singleTransferReducer('uuid'),\n [actions.SET_FORM_DEFINITION]: reducerUtil.singleTransferReducer('formDefinition'),\n [actions.SET_FIELD_DEFINITIONS]: reducerUtil.singleTransferReducer('fieldDefinitions'),\n [actions.SET_EVALUATION]: reducerUtil.singleTransferReducer('evaluation'),\n [actions.SET_LOADED]: reducerUtil.singleTransferReducer('loaded'),\n [actions.ADD_PSEUDO_ENTITY_PATHS]: addPseudoEntityPaths,\n [actions.REMOVE_SHAREABLE_ANSWERS]: removeShareableAnswers\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import styled from 'styled-components'\nimport {scale, StyledButton, theme} from 'tocco-ui'\n\nexport const StyledButtonWrapper = styled.div`\n position: sticky;\n bottom: 0;\n padding-top: ${scale.space(0)};\n background-color: ${theme.color('paper')};\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n","import PropTypes from 'prop-types'\nimport {useState} from 'react'\nimport {FormattedMessage, injectIntl} from 'react-intl'\nimport {Button, ColumnPicker} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from './StyledComponents'\n\nconst ShareAnswerModal = ({questions, onOk, intl}) => {\n const initialColumns = questions.map(q => ({\n id: q.key,\n label: q.question,\n hidden: true\n }))\n const [columns, setColumns] = useState(initialColumns)\n\n const handleOk = () => {\n const selectedQuestionKeys = columns.filter(c => !c.hidden).map(c => c.id)\n onOk(selectedQuestionKeys)\n }\n\n return (\n <>\n <ColumnPicker intl={intl} columns={columns} onColumnsChange={setColumns} dndEnabled={false} />\n <StyledButtonWrapper>\n <Button onClick={handleOk} ink=\"primary\" look=\"raised\">\n <FormattedMessage id=\"client.actions.evaluation-execution-participation-action.shareable\" />\n </Button>\n </StyledButtonWrapper>\n </>\n )\n}\n\nShareAnswerModal.propTypes = {\n questions: PropTypes.array,\n onOk: PropTypes.func,\n intl: PropTypes.object.isRequired\n}\n\nexport default injectIntl(ShareAnswerModal)\n","import {FormattedMessage} from 'react-intl'\nimport {actions as formActions, getFormValues} from 'redux-form'\nimport * as formActionTypes from 'redux-form/es/actionTypes'\nimport {channel} from 'redux-saga'\nimport {all, call, delay, put, select, take, takeLatest} from 'redux-saga/effects'\nimport {appFactory, externalEvents, form, notification, rest, selection as selectionUtil} from 'tocco-app-extensions'\nimport {api} from 'tocco-util'\n\nimport {REDUX_FORM_NAME} from '../../components/ParticipationForm'\nimport ShareAnswerModal from '../../components/ShareAnswerModal/ShareAnswerModal'\nimport {getDispatchActions} from '../../input'\nimport {\n createEmptyForm,\n createVerticalBox,\n getShareableQuestions,\n mapQuestion,\n getQuestionByKey,\n getAnswerValue\n} from '../../utils/form'\nimport * as actions from './actions'\n\nexport const evaluationExecutionParticipationActionSelector = state => state.evaluationExecutionParticipationAction\nexport const inputSelector = state => state.input\nexport const textResourceSelector = (state, key) => state.intl.messages[key]\n\nexport const PSEUDO_FIELD_SUGGESTION_PREFIX = 'pseudoField_suggestion_'\nexport const PSEUDO_FIELD_COMMENT_PREFIX = 'pseudoField_comment_'\nexport const PSEUDO_FIELD_QUESTION_PREFIX = 'pseudoField_question_'\n\nexport default function* sagas() {\n yield all([\n takeLatest(appFactory.INPUT_CHANGED, inputChanged),\n takeLatest(actions.LOAD_UUID, loadUuid),\n takeLatest(actions.LOAD_FORM_INFO, loadFormInfo),\n takeLatest(actions.SUBMIT_FORM, submitForm),\n takeLatest(actions.DISPLAY_SHARE_ANSWER_MODAL, displayShareAnswerModal),\n takeLatest(actions.FINISH_EVALUATION, finishEvaluation),\n takeLatest(formActionTypes.CHANGE, onChange)\n ])\n}\n\nexport function* inputChanged({payload: {input}}) {\n const derivedActions = getDispatchActions(input)\n yield all(derivedActions.map(action => put(action)))\n}\n\nexport function* loadUuid({payload: {selection}}) {\n const key = selectionUtil.getSingleKey(selection, 'Evaluation_party_assignment')\n const entity = yield call(rest.fetchEntity, 'Evaluation_party_assignment', key, {paths: ['uuid']})\n yield put(actions.setUuid(entity.paths.uuid.value))\n}\n\nexport function* loadFormInfo() {\n const evaluation = yield call(loadEvaluation)\n\n const children = []\n for (const c of evaluation.questionCategories) {\n children.push(createVerticalBox(c.label, c.label, yield call(mapCategory, c.questions)))\n }\n const formDefinition = createEmptyForm('pseudoFormDefinition', evaluation.readOnly, children)\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition)\n const {actionProperties} = yield select(inputSelector)\n const modifiedFormDefinition = yield call(addReportsToForm, actionProperties?.reportDisplayId, formDefinition)\n\n yield all([\n put(actions.setFormDefinition(modifiedFormDefinition)),\n put(actions.setFieldDefinitions(fieldDefinitions))\n ])\n\n const {pseudoEntityPaths} = yield select(evaluationExecutionParticipationActionSelector)\n const entityValues = yield call(api.getFlattenEntity, {model: '', paths: {...pseudoEntityPaths}})\n const formValues = yield call(form.entityToFormValues, entityValues, fieldDefinitions)\n yield put(formActions.initialize(REDUX_FORM_NAME, formValues))\n\n yield put(actions.setLoaded(true))\n}\n\nexport function* loadEvaluation() {\n const {uuid} = yield select(evaluationExecutionParticipationActionSelector)\n\n const response = yield call(rest.requestSaga, `widgets/evaluationExecutionParticipation/${uuid}`, {\n acceptedErrorCodes: ['LOADING_EVALUATION_FAILED']\n })\n if (response.status === 200) {\n const evaluation = response.body\n yield put(actions.setEvaluation(evaluation))\n return evaluation\n } else if (response.body.errorCode === 'LOADING_EVALUATION_FAILED') {\n yield put(notification.toaster({type: 'error', title: response.body.message}))\n }\n}\n\nexport function* mapCategory(questions) {\n const boxes = []\n\n const commentLabel = yield select(\n textResourceSelector,\n 'client.actions.evaluation-execution-participation-action.comment'\n )\n const suggestionLabel = yield select(\n textResourceSelector,\n 'client.actions.evaluation-execution-participation-action.suggestion'\n )\n for (const question of questions) {\n const pseudoFields = [...mapQuestion(question, commentLabel, suggestionLabel)]\n yield put(actions.addPseudoEntityPaths(form.getMergedEntityPaths(pseudoFields)))\n boxes.push(\n createVerticalBox(\n question.key,\n ' ',\n pseudoFields.map(f => f.formField)\n )\n )\n }\n\n return boxes\n}\n\nexport function* addReportsToForm(reportDisplayId, formDefinition) {\n if (reportDisplayId) {\n const queries = yield call(getReportDisplayQueries, reportDisplayId)\n const fullfilledReportDisplayQueriesKeys = yield call(evaluateConditions, queries)\n const reports = yield call(getReports, fullfilledReportDisplayQueriesKeys)\n\n const groupLabel = yield select(textResourceSelector, 'client.actiongroup.output')\n return yield call(form.addReports, formDefinition, reports, groupLabel)\n } else {\n return formDefinition\n }\n}\n\nexport function* getReportDisplayQueries(reportDisplayId) {\n const reportDisplayQueries = yield call(\n rest.fetchAllEntities,\n 'Report_display_query',\n {\n where: `relReport_display.unique_id ==\"${reportDisplayId}\"`,\n paths: 'query'\n },\n {method: 'GET'}\n )\n\n return reportDisplayQueries.map(e => ({key: e.key, query: e.paths.query.value}))\n}\n\nexport function* evaluateConditions(queries) {\n const {evaluation} = yield select(evaluationExecutionParticipationActionSelector)\n const fullFilledReportDisplayQueries = []\n for (const query of queries) {\n const fullfilled =\n (yield call(rest.fetchEntityCount, 'Evaluation_party_assignment', {\n where: `pk == ${evaluation.key} and (${query.query})`\n })) === 1\n if (fullfilled) {\n fullFilledReportDisplayQueries.push(query.key)\n }\n }\n return fullFilledReportDisplayQueries\n}\n\nexport function* getReports(fullfilledReportDisplayQueriesKeys) {\n if (fullfilledReportDisplayQueriesKeys.length === 0) {\n return []\n }\n\n const reports = yield call(\n rest.fetchAllEntities,\n 'Report',\n {\n where: `IN(relReport_display_query.pk, ${fullfilledReportDisplayQueriesKeys.join(', ')})`,\n paths: 'label,unique_id'\n },\n {method: 'GET'}\n )\n\n return reports.map(r => ({\n actionType: 'report',\n componentType: 'report',\n id: r.paths.unique_id.value,\n label: r.paths.label.value,\n reportId: r.paths.unique_id.value,\n showConfirmation: false,\n icon: 'file-pdf'\n }))\n}\n\nexport function* submitForm() {\n yield put(formActions.startSubmit(REDUX_FORM_NAME))\n yield delay(250)\n yield put(formActions.stopSubmit(REDUX_FORM_NAME))\n}\n\nexport function* displayShareAnswerModal() {\n const {evaluation} = yield select(evaluationExecutionParticipationActionSelector)\n const answerChannel = yield call(channel)\n\n yield put(\n notification.modal(\n 'evaluation-execution-participation-action-share-answers',\n 'client.actions.evaluation-execution-participation-action.shareAnswer.title',\n null,\n ({close}) => {\n const onOk = selectedQuestionKeys => {\n close()\n answerChannel.put(selectedQuestionKeys)\n }\n\n return <ShareAnswerModal questions={getShareableQuestions(evaluation)} onOk={onOk} />\n },\n true\n )\n )\n\n const selectedQuestionKeys = yield take(answerChannel)\n yield call(shareAnswers, selectedQuestionKeys)\n}\n\nexport function* shareAnswers(questionKeys) {\n const {uuid} = yield select(evaluationExecutionParticipationActionSelector)\n\n const resource = `widgets/evaluationExecutionParticipation/${uuid}/shareAnswers`\n const options = {\n method: 'POST',\n body: {\n questionKeys\n }\n }\n\n const response = yield call(rest.requestSaga, resource, options)\n\n if (response.status === 204) {\n yield put(actions.removeShareableAnswers(questionKeys))\n\n const shareSuccess = yield select(\n textResourceSelector,\n 'client.actions.evaluation-execution-participation-action.shareAnswer.success'\n )\n yield put(notification.toaster({type: 'success', title: shareSuccess}))\n }\n}\n\nexport function* finishEvaluation() {\n const answerChannel = yield call(channel)\n const onYes = () => answerChannel.put(true)\n const onNo = () => answerChannel.put(false)\n const onCancel = () => answerChannel.put(false)\n\n yield put(\n notification.yesNoQuestion(\n <FormattedMessage id=\"client.actions.evaluation-execution-participation-action.finish.title\" />,\n <FormattedMessage id=\"client.actions.evaluation-execution-participation-action.finish.message\" />,\n <FormattedMessage id=\"client.common.yes\" />,\n <FormattedMessage id=\"client.common.no\" />,\n onYes,\n onNo,\n onCancel\n )\n )\n\n const confirmed = yield take(answerChannel)\n if (confirmed) {\n yield call(executeFinishEvaluation)\n }\n}\n\nexport function* executeFinishEvaluation() {\n yield put(formActions.startSubmit(REDUX_FORM_NAME))\n\n const {uuid} = yield select(evaluationExecutionParticipationActionSelector)\n const resource = `widgets/evaluationExecutionParticipation/${uuid}/finish`\n const options = {\n method: 'POST',\n acceptedErrorCodes: ['FINISHING_EVALUATION_FAILED']\n }\n\n const response = yield call(rest.requestSaga, resource, options)\n if (response.status === 204) {\n const {selection} = yield select(inputSelector)\n // if fullscreen action was opened from list navigate back to list\n // if fullscreen action was opened via uuid show empty page and fire visibility status\n if (selection) {\n yield put(externalEvents.fireExternalEvent('onCancel'))\n } else {\n yield put(externalEvents.fireExternalEvent('onSuccess'))\n }\n } else if (response.body.errorCode === 'FINISHING_EVALUATION_FAILED') {\n yield put(notification.toaster({type: 'error', title: response.body.message}))\n }\n\n yield put(formActions.stopSubmit(REDUX_FORM_NAME))\n}\n\nexport function* onChange({payload, meta}) {\n if (meta.form === REDUX_FORM_NAME) {\n if (meta.field.startsWith(PSEUDO_FIELD_SUGGESTION_PREFIX)) {\n yield call(onChangeSuggestion, meta.field, payload)\n } else if (meta.field.startsWith(PSEUDO_FIELD_COMMENT_PREFIX)) {\n yield call(onChangeComment, meta.field, payload)\n } else if (meta.field.startsWith(PSEUDO_FIELD_QUESTION_PREFIX)) {\n yield call(onChangeAnswer, meta.field, payload)\n }\n }\n}\n\nexport function* onChangeSuggestion(fieldName, payload) {\n const textFieldName = fieldName.replace(PSEUDO_FIELD_SUGGESTION_PREFIX, PSEUDO_FIELD_QUESTION_PREFIX)\n const formValues = yield call(loadFormValues, REDUX_FORM_NAME)\n const selectedSuggestion = payload.options.find(o => o.selected)?.display\n const newValue = `${formValues[textFieldName]} ${selectedSuggestion}`\n yield put(formActions.change(REDUX_FORM_NAME, textFieldName, newValue))\n}\n\n// helper function to allow easy mocking in test\nexport function* loadFormValues(formId) {\n return yield select(getFormValues(formId))\n}\n\nexport function* onChangeComment(fieldName, comment) {\n const questionKey = fieldName.replace(PSEUDO_FIELD_COMMENT_PREFIX, '')\n yield call(saveChangedField, questionKey, {comment}, 'saveComment')\n}\n\nexport function* onChangeAnswer(fieldName, payload) {\n const {evaluation} = yield select(evaluationExecutionParticipationActionSelector)\n const questionKey = fieldName.replace(PSEUDO_FIELD_QUESTION_PREFIX, '')\n const question = getQuestionByKey(evaluation, questionKey)\n const answer = getAnswerValue(payload, question.type)\n yield call(saveChangedField, questionKey, {answer}, 'saveAnswer')\n}\n\nexport function* saveChangedField(questionKey, body, endpoint) {\n const {uuid} = yield select(evaluationExecutionParticipationActionSelector)\n const resource = `widgets/evaluationExecutionParticipation/${uuid}/questions/${questionKey}/${endpoint}`\n const options = {\n method: 'PUT',\n body\n }\n\n yield call(rest.requestSaga, resource, options)\n}\n","import {reducer as form} from 'redux-form'\n\nimport evaluationExecutionParticipationActionReducer from './evaluationExecutionParticipationAction/reducer'\nimport evaluationExecutionParticipationActionSagas from './evaluationExecutionParticipationAction/sagas'\n\nexport default {\n evaluationExecutionParticipationAction: evaluationExecutionParticipationActionReducer,\n form\n}\n\nexport const sagas = [evaluationExecutionParticipationActionSagas]\n","import PropTypes from 'prop-types'\nimport {\n actions,\n appFactory,\n externalEvents,\n selection,\n formData,\n actionEmitter,\n notification\n} from 'tocco-app-extensions'\nimport {reducer as reducerUtil, appContext} from 'tocco-util'\n\nimport ParticipationView from './components/ParticipationView'\nimport {getDispatchActions} from './input'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'evaluation-execution-participation-action'\nconst EXTERNAL_EVENTS = ['onSuccess', 'onCancel', 'emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <ParticipationView />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n formData.addToStore(store, () => ({}))\n actionEmitter.addToStore(store, state => state.input.emitAction)\n actions.addToStore(store, () => ({\n appComponent: actions.actionFactory({})\n }))\n const handleNotifications = !events?.emitAction\n notification.addToStore(store, handleNotifications)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: getDispatchActions(input),\n publicPath,\n textResourceModules: ['actiongroup', 'component', 'common', 'actions', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst EvaluationExecutionParticipationAction = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nEvaluationExecutionParticipationAction.propTypes = {\n appContext: appContext.propTypes.isRequired,\n selection: selection.propType,\n uuid: PropTypes.string,\n actionProperties: PropTypes.shape({\n reportDisplayId: PropTypes.string\n })\n}\n\nexport default EvaluationExecutionParticipationAction\n","export const LOAD_FORM_INFO = 'eventRegistrationAction/LOAD_FORM_INFO'\nexport const SET_EVENT_KEY = 'eventRegistrationAction/SET_EVENT_KEY'\nexport const SET_FORM_DEFINITION = 'eventRegistrationAction/SET_FORM_DEFINITION'\nexport const SET_EVENT_FORM_NAME = 'eventRegistrationAction/SET_EVENT_FORM_NAME'\nexport const SET_FIELD_DEFINITIONS = 'eventRegistrationAction/SET_FIELD_DEFINITIONS'\nexport const SET_FORM_SCOPE = 'eventRegistrationAction/SET_FORM_SCOPE'\nexport const SET_CURRENT_USER = 'eventRegistrationAction/SET_CURRENT_USER'\nexport const SET_LOADED = 'eventRegistrationAction/SET_INITIALIZED'\nexport const REGISTER = 'eventRegistrationAction/REGISTER'\nexport const SET_QUESTION_TYPE_MAP = 'eventRegistrationAction/SET_QUESTION_TYPE_MAP'\nexport const ADD_PSEUDO_ENTITY_PATHS = 'eventRegistrationAction/ADD_PSEUDO_ENTITY_PATHS'\nexport const CHECK_SSO_AVAILABLE = 'eventRegistrationAction/CHECK_SSO_AVAILABLE'\nexport const SET_SSO_AVAILABLE = 'eventRegistrationAction/SET_SSO_AVAILABLE'\nexport const SET_NEW_USER_EMAIL = 'eventRegistrationAction/SET_NEW_USER_EMAIL'\n\nexport const loadFormInfo = () => ({\n type: LOAD_FORM_INFO\n})\n\nexport const setEventKey = eventKey => ({\n type: SET_EVENT_KEY,\n payload: {eventKey}\n})\n\nexport const setFormDefinition = formDefinition => ({\n type: SET_FORM_DEFINITION,\n payload: {formDefinition}\n})\n\nexport const setEventFormName = eventFormName => ({\n type: SET_EVENT_FORM_NAME,\n payload: {eventFormName}\n})\n\nexport const setFieldDefinitions = fieldDefinitions => ({\n type: SET_FIELD_DEFINITIONS,\n payload: {fieldDefinitions}\n})\n\nexport const setFormScope = formScope => ({\n type: SET_FORM_SCOPE,\n payload: {formScope}\n})\n\nexport const setCurrentUser = currentUser => ({\n type: SET_CURRENT_USER,\n payload: {currentUser}\n})\n\nexport const setLoaded = loaded => ({\n type: SET_LOADED,\n payload: {loaded}\n})\n\nexport const register = () => ({\n type: REGISTER\n})\n\nexport const setQuestionTypeMap = questionTypeMap => ({\n type: SET_QUESTION_TYPE_MAP,\n payload: {\n questionTypeMap\n }\n})\n\nexport const addPseudoEntityPaths = pseudoEntityPaths => ({\n type: ADD_PSEUDO_ENTITY_PATHS,\n payload: {\n pseudoEntityPaths\n }\n})\n\nexport const checkSsoAvailable = () => ({\n type: CHECK_SSO_AVAILABLE\n})\n\nexport const setSsoAvailable = ssoAvailable => ({\n type: SET_SSO_AVAILABLE,\n payload: {\n ssoAvailable\n }\n})\n\nexport const setNewUserEmail = newUserEmail => ({\n type: SET_NEW_USER_EMAIL,\n payload: {\n newUserEmail\n }\n})\n","export const INITIALIZE = 'login/INITIALIZE'\nexport const INITIALIZED = 'login/INITIALIZED'\nexport const LOGIN = 'login/LOGIN'\nexport const REQUEST_PASSWORD = 'login/REQUEST_PASSWORD'\nexport const CHECK_USERNAME = 'login/CHECK_USERNAME'\n\nexport const initialize = () => ({\n type: INITIALIZE\n})\n\nexport const initialized = () => ({\n type: INITIALIZED\n})\n\nexport const login = (username, password, captchaToken, userCode) => ({\n type: LOGIN,\n payload: {\n username,\n password,\n captchaToken,\n userCode\n }\n})\n\nexport const requestPassword = username => ({\n type: REQUEST_PASSWORD,\n payload: {\n username\n }\n})\n\nexport const checkUsername = username => ({\n type: CHECK_USERNAME,\n payload: {\n username\n }\n})\n","export const Pages = {\n USERNAME_FORM: 'USERNAME_FORM',\n LOGIN_FORM: 'LOGIN_FORM',\n PASSWORD_REQUEST: 'PASSWORD_REQUEST',\n TWOSTEPLOGIN: 'TWOSTEPLOGIN',\n PASSWORD_UPDATE: 'PASSWORD_UPDATE',\n TWOSTEPLOGIN_ACTIVATION: 'TWOSTEPLOGIN_ACTIVATION'\n}\n","export const CHANGE_PAGE = 'login/CHANGE_PAGE'\nexport const SET_ENTRY_PAGE = 'login/SET_ENTRY_PAGE'\nexport const SET_USERNAME = 'login/SET_USERNAME'\nexport const SET_PASSWORD = 'login/SET_PASSWORD'\nexport const SET_CAPTCHA_KEY = 'login/SET_CAPTCHA_KEY'\n\nexport const setEntryPage = entryPage => ({\n type: SET_ENTRY_PAGE,\n payload: {\n entryPage\n }\n})\nexport const changePage = currentPage => ({\n type: CHANGE_PAGE,\n payload: {\n currentPage\n }\n})\n\nexport const setUsername = username => ({\n type: SET_USERNAME,\n payload: {\n username\n }\n})\n\nexport const setPassword = password => ({\n type: SET_PASSWORD,\n payload: {\n password\n }\n})\n\nexport const setCaptchaKey = captchaKey => ({\n type: SET_CAPTCHA_KEY,\n payload: {\n captchaKey\n }\n})\n","import PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport {SignalList} from 'tocco-ui'\n\nconst FormMessage = ({message, intl}) => {\n const msg = id => intl.formatMessage({id})\n\n if (message && message.text) {\n return (\n <SignalList.List>\n <SignalList.Item condition={message.negative ? 'danger' : 'base'} label={msg(message.text)} />\n </SignalList.List>\n )\n }\n return null\n}\n\nFormMessage.propTypes = {\n intl: PropTypes.object.isRequired,\n message: PropTypes.shape({text: PropTypes.string, negative: PropTypes.bool})\n}\n\nexport default injectIntl(FormMessage)\n","import FormMessage from './FormMessage'\n\nexport default FormMessage\n","import styled from 'styled-components'\nimport {Button, scale, theme} from 'tocco-ui'\n\nexport const StyledLoginButton = styled(Button)`\n &&& {\n font-size: ${scale.font(1.3)};\n border-radius: ${theme.radii('buttonLarge')};\n display: flex;\n justify-content: center;\n padding: 1.25rem 0;\n width: 100%;\n margin-top: 20px;\n margin-bottom: 10px;\n\n &:not(:last-child) {\n margin-right: 0;\n }\n }\n`\n","import PropTypes from 'prop-types'\n\nimport {StyledLoginButton} from './StyledComponents'\n\nconst LoginButton = ({disabled, pending, label, ...props}) => (\n <StyledLoginButton\n disabled={disabled}\n pending={pending}\n label={label}\n ink=\"primary\"\n look=\"raised\"\n type=\"submit\"\n {...props}\n />\n)\n\nLoginButton.propTypes = {\n disabled: PropTypes.bool,\n pending: PropTypes.bool,\n label: PropTypes.string\n}\n\nexport default LoginButton\n","import LoginButton from './LoginButton'\n\nexport default LoginButton\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {Typography} from 'tocco-ui'\n\nconst Title = ({title, subtitle}) => (\n <>\n <Typography.H5>\n <FormattedMessage id={title} />\n </Typography.H5>\n {subtitle && (\n <Typography.P>\n <FormattedMessage id={subtitle} />\n </Typography.P>\n )}\n </>\n)\n\nTitle.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string\n}\n\nexport default Title\n","import Title from './Title'\n\nexport default Title\n","import {useState} from 'react'\n\nconst useAutoFill = onChange => {\n const [autoFill, setAutoFill] = useState(false)\n\n const handleChange = e => {\n onChange(e.target.value)\n setAutoFill(false)\n }\n\n const handleAutoFill = e => {\n if (e.animationName === 'onAutoFillStart') {\n setAutoFill(true)\n }\n }\n\n const inputProps = {\n onAnimationStart: handleAutoFill,\n onChange: handleChange\n }\n\n return [autoFill, inputProps]\n}\n\nexport default useAutoFill\n","import styled from 'styled-components'\nimport {StyledInputCss, StyledEditableWrapperCss, Button, StyledButton, StyledButtonGroup, scale} from 'tocco-ui'\n\nexport const StyledLoginFormInput = styled.input`\n /* stylelint-disable-next-line block-no-empty */\n @keyframes onAutoFillStart {\n from {\n }\n }\n\n &&&& {\n ${StyledInputCss}\n transition: background-color 50000s, color 50000s, filter 50000s;\n\n &:-webkit-autofill {\n animation-duration: 50000s;\n animation-name: onAutoFillStart;\n }\n padding-top: ${scale.space(-0.9)};\n padding-bottom: ${scale.space(-0.9)};\n }\n`\n\nexport const StyledLoginFormInputWrapper = styled.div`\n &&& {\n ${StyledEditableWrapperCss}\n }\n`\n\nexport const StyledTransparentButton = styled(Button)`\n &&& {\n margin-right: 0;\n background-color: transparent;\n padding: ${scale.space(-0.1)} 0;\n width: 100%;\n justify-content: center;\n\n &:hover {\n background-color: transparent;\n }\n }\n`\n\nexport const StyledLoginFormWrapper = styled.div`\n ${StyledButtonGroup} {\n margin-top: ${scale.space(0.47)};\n width: auto;\n flex-direction: column;\n\n ${StyledButton} {\n flex-grow: 1;\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport {useCallback, useEffect, useRef} from 'react'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport {StatedValue} from 'tocco-ui'\nimport {react} from 'tocco-util'\n\nimport {Pages} from '../../types/Pages'\nimport FormMessage from '../form-components/FormMessage'\nimport LoginButton from '../form-components/LoginButton'\nimport Title from '../form-components/Title'\nimport useAutoFill from '../form-components/useAutoFill'\nimport {\n StyledLoginFormInput,\n StyledLoginFormInputWrapper,\n StyledLoginFormWrapper,\n StyledTransparentButton\n} from '../StyledLoginForm'\n\nconst LoginForm = ({\n captchaKey,\n changePage,\n intl,\n login,\n loginPending,\n message,\n password,\n recaptchaActivated,\n setPassword,\n setUsername,\n showTitle,\n username,\n entryPage\n}) => {\n const [usernameAutoFill, usernameAutoFillProps] = useAutoFill(setUsername)\n const [passwordAutoFill, passwordAutoFillProps] = useAutoFill(setPassword)\n const recaptchaRef = useRef()\n\n const hasUsernameForm = entryPage === Pages.USERNAME_FORM\n\n const msg = id => intl.formatMessage({id})\n const prevRecaptchaActivated = react.usePrevious(recaptchaActivated)\n\n const handleSubmit = useCallback(\n async e => {\n if (e) {\n e.preventDefault()\n }\n\n let recaptchaToken = null\n if (recaptchaActivated) {\n recaptchaToken = await recaptchaRef.current.executeAsync()\n recaptchaRef.current.reset()\n }\n\n login(username, password, recaptchaToken)\n },\n [login, username, password, recaptchaActivated]\n )\n\n useEffect(() => {\n if (recaptchaActivated && !prevRecaptchaActivated) {\n handleSubmit()\n }\n }, [recaptchaActivated, prevRecaptchaActivated, handleSubmit])\n\n const passwordFocus = !!username\n const usernameFocus = !passwordFocus\n\n return (\n <StyledLoginFormWrapper>\n {showTitle && <Title title=\"client.login.form.title\" subtitle=\"client.login.form.introduction\" />}\n <form onSubmit={handleSubmit}>\n <StatedValue\n hasValue={!!username || usernameAutoFill}\n id=\"login-username\"\n label={msg('client.login.form.userPlaceholder')}\n immutable={hasUsernameForm}\n >\n <StyledLoginFormInputWrapper>\n <StyledLoginFormInput\n autoFocus={usernameFocus}\n name=\"user\"\n data-cy=\"login-form_user-input\"\n required\n type=\"text\"\n value={username}\n disabled={hasUsernameForm}\n onFocus={e => e.target.select()}\n {...usernameAutoFillProps}\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n\n <StatedValue\n hasValue={!!password || passwordAutoFill}\n id=\"login-password\"\n label={msg('client.login.form.passwordPlaceholder')}\n >\n <StyledLoginFormInputWrapper>\n <StyledLoginFormInput\n autoFocus={passwordFocus}\n name=\"password\"\n data-cy=\"login-form_password-input\"\n required\n type=\"password\"\n value={password}\n onFocus={e => e.target.select()}\n {...passwordAutoFillProps}\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n\n <FormMessage message={message} />\n\n {captchaKey && recaptchaActivated && (\n <ReCAPTCHA ref={recaptchaRef} badge=\"bottomright\" size=\"invisible\" sitekey={captchaKey} hl={intl.locale} />\n )}\n <LoginButton\n disabled={loginPending || (username === '' && !usernameAutoFill) || (password === '' && !passwordAutoFill)}\n label={msg('client.login.form.button')}\n pending={loginPending}\n data-cy=\"login-form_login-button\"\n />\n <StyledTransparentButton\n label={msg('client.login.form.forgotLink')}\n onClick={() => changePage(Pages.PASSWORD_REQUEST)}\n data-cy=\"login-form_request-button\"\n />\n {hasUsernameForm && (\n <StyledTransparentButton\n label={msg('client.login.form.backLink')}\n onClick={() => changePage(Pages.USERNAME_FORM)}\n />\n )}\n </form>\n </StyledLoginFormWrapper>\n )\n}\n\nLoginForm.propTypes = {\n captchaKey: PropTypes.string,\n changePage: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n login: PropTypes.func.isRequired,\n loginPending: PropTypes.bool.isRequired,\n message: PropTypes.shape({\n negative: PropTypes.bool,\n text: PropTypes.string\n }),\n password: PropTypes.string,\n recaptchaActivated: PropTypes.bool,\n setPassword: PropTypes.func.isRequired,\n setUsername: PropTypes.func.isRequired,\n showTitle: PropTypes.bool,\n username: PropTypes.string,\n entryPage: PropTypes.string\n}\n\nexport default LoginForm\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {login} from '../../modules/actions'\nimport {changePage, setUsername, setPassword} from '../../modules/login/actions'\nimport LoginForm from './LoginForm'\n\nconst mapActionCreators = {\n changePage,\n setUsername,\n setPassword,\n login\n}\n\nconst mapStateToProps = state => ({\n username: state.login.username,\n password: state.login.password,\n message: state.loginForm.message,\n loginPending: state.loginForm.loginPending,\n captchaKey: state.login.captchaKey,\n recaptchaActivated: state.loginForm.recaptchaActivated,\n entryPage: state.login.entryPage\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(LoginForm))\n","import LoginForm from './LoginFormContainer'\n\nexport default LoginForm\n","import PropTypes from 'prop-types'\nimport {useState} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {StatedValue, Typography} from 'tocco-ui'\n\nimport {Pages} from '../../types/Pages'\nimport LoginButton from '../form-components/LoginButton'\nimport Title from '../form-components/Title'\nimport {\n StyledLoginFormInput,\n StyledLoginFormInputWrapper,\n StyledLoginFormWrapper,\n StyledTransparentButton\n} from '../StyledLoginForm'\n\nconst PasswordRequest = ({entryPage, username, requestPassword, intl, showTitle, pending, changePage}) => {\n const [userName, setUserName] = useState(username || '')\n\n const hasUsernameForm = entryPage === Pages.USERNAME_FORM\n\n const handleSubmit = e => {\n e.preventDefault()\n requestPassword(userName)\n }\n\n const handleUsernameChange = e => {\n setUserName(e.target.value)\n }\n\n const msg = id => intl.formatMessage({id})\n\n return (\n <StyledLoginFormWrapper>\n {showTitle && <Title title=\"client.login.passwordRequest.title\" />}\n {!hasUsernameForm && (\n <Typography.P>\n <FormattedMessage id=\"client.login.passwordRequest.introduction\" />\n </Typography.P>\n )}\n <form onSubmit={handleSubmit}>\n <StatedValue\n hasValue={Boolean(userName)}\n id=\"login-username\"\n label={msg('client.login.form.userPlaceholder')}\n immutable={hasUsernameForm}\n >\n <StyledLoginFormInputWrapper>\n <StyledLoginFormInput\n name=\"user\"\n onChange={handleUsernameChange}\n required\n type=\"text\"\n value={userName}\n disabled={hasUsernameForm}\n data-cy=\"password-request_input\"\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n\n <LoginButton\n disabled={!userName || pending}\n label={msg('client.login.passwordRequest.button')}\n pending={pending}\n data-cy=\"password-request_submit-button\"\n />\n <StyledTransparentButton\n disabled={pending}\n label={msg('client.login.passwordRequest.abortButton')}\n name=\"abort\"\n onClick={() => changePage(Pages.LOGIN_FORM)}\n data-cy=\"password-request_abort-button\"\n />\n </form>\n </StyledLoginFormWrapper>\n )\n}\n\nPasswordRequest.propTypes = {\n intl: PropTypes.object.isRequired,\n changePage: PropTypes.func.isRequired,\n requestPassword: PropTypes.func.isRequired,\n showTitle: PropTypes.bool,\n pending: PropTypes.bool,\n username: PropTypes.string,\n entryPage: PropTypes.string\n}\n\nexport default PasswordRequest\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {requestPassword} from '../../modules/actions'\nimport {changePage} from '../../modules/login/actions'\nimport PasswordRequest from './PasswordRequest'\n\nconst mapActionCreators = {\n changePage,\n requestPassword\n}\n\nconst mapStateToProps = state => ({\n username: state.login.username,\n pending: state.loginForm.loginPending,\n entryPage: state.login.entryPage\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(PasswordRequest))\n","import PasswordRequest from './PasswordRequestContainer'\n\nexport default PasswordRequest\n","export const INITIALIZED = 'INITIALIZED'\n\nexport const initialized = () => ({\n type: INITIALIZED\n})\n","export const UPDATE_OLD_PASSWORD = 'PasswordUpdateDialog/UPDATE_OLD_PASSWORD'\nexport const UPDATE_NEW_PASSWORD = 'PasswordUpdateDialog/UPDATE_NEW_PASSWORD'\nexport const SET_NEW_PASSWORD = 'PasswordUpdateDialog/SET_NEW_PASSWORD'\nexport const SET_NEW_PASSWORD_VALIDATION_ERRORS = 'PasswordUpdateDialog/SET_NEW_PASSWORD_VALIDATION_ERRORS'\nexport const UPDATE_NEW_PASSWORD_REPEAT = 'PasswordUpdateDialog/UPDATE_NEW_PASSWORD_REPEAT'\nexport const SAVE_PASSWORD = 'PasswordUpdateDialog/SAVE_PASSWORD'\nexport const SAVE_PASSWORD_SUCCESS = 'PasswordUpdateDialog/SAVE_PASSWORD_SUCCESS'\nexport const SAVE_PASSWORD_FAILURE = 'PasswordUpdateDialog/SAVE_PASSWORD_FAILURE'\nexport const VALIDATE = 'PasswordUpdateDialog/VALIDATE'\nexport const RESET_PASSWORD_UPDATED_FAILED = 'PasswordUpdateDialog/RESET_PASSWORD_UPDATED_FAILED'\n\nexport const updateOldPassword = oldPassword => ({\n type: UPDATE_OLD_PASSWORD,\n payload: {\n oldPassword\n }\n})\n\nexport const updateNewPassword = newPassword => ({\n type: UPDATE_NEW_PASSWORD,\n payload: {\n newPassword\n }\n})\n\nexport const setNewPassword = newPassword => ({\n type: SET_NEW_PASSWORD,\n payload: {\n newPassword\n }\n})\n\nexport const setNewPasswordValidationErrors = errors => ({\n type: SET_NEW_PASSWORD_VALIDATION_ERRORS,\n payload: {\n errors\n }\n})\n\nexport const updateNewPasswordRepeat = newPasswordRepeat => ({\n type: UPDATE_NEW_PASSWORD_REPEAT,\n payload: {\n newPasswordRepeat\n }\n})\n\nexport const savePassword = captchaToken => ({\n type: SAVE_PASSWORD,\n payload: {\n captchaToken\n }\n})\n\nexport const savePasswordSuccess = () => ({\n type: SAVE_PASSWORD_SUCCESS\n})\n\nexport const savePasswordFailure = (errorCode, validationMessages) => ({\n type: SAVE_PASSWORD_FAILURE,\n payload: {\n errorCode,\n validationMessages\n }\n})\n\nexport const validate = () => ({\n type: VALIDATE\n})\n\nexport const resetPasswordUpdateFailed = () => ({\n type: RESET_PASSWORD_UPDATED_FAILED\n})\n","export const FETCH_VALIDATION_RULES = 'PasswordUpdateDialog/FETCH_VALIDATION_RULES'\nexport const SET_VALIDATION_RULES = 'PasswordUpdateDialog/SET_VALIDATION_RULES'\n\nexport const fetchValidationRules = () => ({\n type: FETCH_VALIDATION_RULES\n})\n\nexport const setValidationRules = rules => ({\n type: SET_VALIDATION_RULES,\n payload: {\n rules\n }\n})\n","export const DEFAULT = 'client.login.passwordUpdate.failure'\n\nexport const messages = {\n INVALID_CREDENTIALS: 'client.login.passwordUpdate.invalidCredentials',\n UNEXPECTED_ERROR: 'client.login.passwordUpdate.unexpectedError'\n}\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {design, SignalList} from 'tocco-ui'\n\nimport {messages, DEFAULT as DEFAULT_MESSAGE} from './messages'\n\nfunction getMessage(errorCode) {\n return messages[errorCode] || DEFAULT_MESSAGE\n}\n\nconst FailureMessage = props => (\n <SignalList.List>\n <SignalList.Item condition={design.condition.DANGER}>\n <FormattedMessage id={getMessage(props.errorCode)} />\n </SignalList.Item>\n </SignalList.List>\n)\n\nFailureMessage.propTypes = {\n errorCode: PropTypes.string\n}\n\nexport default FailureMessage\n","import FailureMessage from './FailureMessage'\n\nexport default FailureMessage\n","import PropTypes from 'prop-types'\nimport {design, SignalList} from 'tocco-ui'\n\nconst ValidationRules = props => (\n <SignalList.List>\n {props.rules.map((rule, index) => {\n let condition = null\n\n let message = rule.message\n\n if (props.errors) {\n const error = props.errors[rule.name]\n if (error === true) {\n condition = design.condition.DANGER\n } else if (typeof error === 'string') {\n condition = design.condition.DANGER\n message = error\n } else {\n condition = design.condition.SUCCESS\n }\n }\n\n return <SignalList.Item condition={condition} key={index} label={message} />\n })}\n </SignalList.List>\n)\n\nValidationRules.propTypes = {\n errors: PropTypes.object,\n rules: PropTypes.array.isRequired,\n rulesNeutral: PropTypes.bool\n}\n\nexport default ValidationRules\n","import ValidationRules from './ValidationRules'\n\nexport default ValidationRules\n","import styled from 'styled-components'\nimport {StyledInputCss, StyledEditableWrapperCss} from 'tocco-ui'\n\nexport const StyledPasswordInput = styled.input.attrs(props => ({\n type: 'password'\n}))`\n &&&& {\n ${StyledInputCss}\n }\n`\n\nexport const StyledPasswordInputWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n }\n`\n","import PropTypes from 'prop-types'\nimport {design, StatedValue} from 'tocco-ui'\n\nimport {StyledPasswordInput, StyledPasswordInputWrapper} from './StyledPasswordInput'\n\nconst PasswordInput = props => {\n const getSignal = () => {\n if (props.value) {\n if (props.valid === undefined) {\n return null\n }\n\n return props.valid ? design.condition.SUCCESS : design.condition.DANGER\n }\n return null\n }\n\n return (\n <StatedValue\n hasValue={!!props.value}\n id={`${props.name}-input`}\n immutable={props.readOnly === true}\n label={props.label}\n signal={getSignal()}\n >\n <StyledPasswordInputWrapper immutable={props.readOnly === true}>\n <StyledPasswordInput\n id={`${props.name}-input`}\n value={props.value}\n onChange={e => props.onChange(e.target.value)}\n disabled={props.readOnly === true}\n immutable={props.readOnly === true}\n onKeyDown={props.onKeyDown}\n autoFocus={props.autoFocus}\n />\n </StyledPasswordInputWrapper>\n </StatedValue>\n )\n}\n\nPasswordInput.propTypes = {\n name: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n readOnly: PropTypes.bool,\n onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n valid: PropTypes.bool\n}\n\nexport default PasswordInput\n","import styled from 'styled-components'\nimport {StyledButton} from 'tocco-ui'\n\nexport default styled.div`\n ${StyledButton} {\n width: 100%;\n }\n`\n","import PropTypes from 'prop-types'\nimport {useRef, useEffect} from 'react'\nimport ReCAPTCHA from 'react-google-recaptcha'\nimport {FormattedMessage} from 'react-intl'\nimport styled from 'styled-components'\nimport {LoadMask, SignalList, Typography} from 'tocco-ui'\n\nimport LoginButton from '../../form-components/LoginButton'\nimport Title from '../../form-components/Title'\nimport FailureMessage from '../FailureMessage'\nimport ValidationRules from '../ValidationRules'\nimport PasswordInput from './PasswordInput'\nimport StyledPasswordUpdateDialog from './StyledPasswordUpdateDialog'\n\nconst StyledValidationRulesWrapper = styled.div`\n margin: 1rem;\n`\n\nconst PasswordUpdateDialog = ({\n captchaKey,\n fetchValidationRules,\n forcedUpdate,\n initialized,\n intl,\n password,\n savePassword,\n showOldPasswordField,\n showTitle,\n updateNewPassword,\n updateNewPasswordRepeat,\n updateOldPassword,\n validationRules\n}) => {\n const recaptchaRef = useRef()\n\n useEffect(() => {\n fetchValidationRules()\n }, [fetchValidationRules])\n\n useEffect(() => {\n if (validationRules) {\n initialized()\n }\n }, [validationRules, initialized])\n\n const handleSubmit = async e => {\n e.preventDefault()\n\n if (isSubmittable() === true) {\n const recaptchaToken = await recaptchaRef.current.executeAsync()\n recaptchaRef.current.reset()\n savePassword(recaptchaToken)\n }\n }\n\n const isSubmittable = () => {\n if (!password.newPasswordRepeat) {\n return false\n }\n if (password.newPassword !== password.newPasswordRepeat) {\n return false\n }\n if (password.passwordUpdatePending) {\n return false\n }\n return true\n }\n\n const msg = id => intl.formatMessage({id})\n\n if (!validationRules) {\n return <LoadMask />\n }\n\n const oldPasswordReadOnly = password.passwordUpdatePending\n const newPasswordReadOnly = (!password.oldPassword && showOldPasswordField) || password.passwordUpdatePending\n const newPasswordRepeatReadOnly =\n !password.newPassword ||\n password.passwordUpdatePending ||\n (password.newPasswordValidationErrors && Object.keys(password.newPasswordValidationErrors).length > 0)\n\n return (\n <StyledPasswordUpdateDialog>\n {showTitle && <Title title=\"client.login.passwordUpdate.title\" />}\n {forcedUpdate && (\n <Typography.P>\n <FormattedMessage id=\"client.login.passwordUpdate.introduction\" />\n </Typography.P>\n )}\n <form onSubmit={handleSubmit}>\n {showOldPasswordField === true && (\n <PasswordInput\n tabIndex={1}\n label={msg('client.login.passwordUpdate.oldPassword')}\n name=\"oldPassword\"\n value={password.oldPassword}\n onChange={updateOldPassword}\n readOnly={oldPasswordReadOnly}\n autoFocus\n {...(password.passwordUpdateFailed &&\n password.passwordUpdateErrorCode === 'INVALID_CREDENTIALS' && {valid: false})}\n />\n )}\n <PasswordInput\n tabIndex={2}\n label={msg('client.login.passwordUpdate.newPassword')}\n name=\"newPassword\"\n value={password.newPassword}\n onChange={updateNewPassword}\n readOnly={newPasswordReadOnly}\n autoFocus={showOldPasswordField !== true}\n valid={!newPasswordRepeatReadOnly}\n />\n <StyledValidationRulesWrapper>\n <ValidationRules\n rules={validationRules}\n errors={password.newPasswordValidationErrors}\n rulesNeutral={!password.newPassword}\n />\n </StyledValidationRulesWrapper>\n <PasswordInput\n tabIndex={3}\n label={msg('client.login.passwordUpdate.newPasswordRepeat')}\n name=\"newPasswordRepeat\"\n value={password.newPasswordRepeat}\n onChange={updateNewPasswordRepeat}\n readOnly={newPasswordRepeatReadOnly}\n valid={isSubmittable()}\n />\n\n {password.newPasswordRepeat && password.newPassword !== password.newPasswordRepeat && (\n <SignalList.List>\n <SignalList.Item condition=\"danger\" label={<FormattedMessage id=\"client.login.passwordUpdate.noMatch\" />} />\n </SignalList.List>\n )}\n\n {password.passwordUpdateFailed === true && <FailureMessage errorCode={password.passwordUpdateErrorCode} />}\n <LoginButton\n pending={password.passwordUpdatePending}\n disabled={isSubmittable() === false}\n label={msg('client.login.passwordUpdate.saveButton')}\n />\n {captchaKey && (\n <ReCAPTCHA ref={recaptchaRef} badge=\"bottomright\" size=\"invisible\" sitekey={captchaKey} hl={intl.locale} />\n )}\n </form>\n </StyledPasswordUpdateDialog>\n )\n}\n\nPasswordUpdateDialog.propTypes = {\n captchaKey: PropTypes.string,\n fetchValidationRules: PropTypes.func.isRequired,\n forcedUpdate: PropTypes.bool,\n initialized: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n password: PropTypes.shape({\n newPassword: PropTypes.string.isRequired,\n newPasswordRepeat: PropTypes.string.isRequired,\n newPasswordValidationErrors: PropTypes.object,\n oldPassword: PropTypes.string.isRequired,\n passwordUpdateErrorCode: PropTypes.string,\n passwordUpdateFailed: PropTypes.bool,\n passwordUpdatePending: PropTypes.bool.isRequired\n }).isRequired,\n savePassword: PropTypes.func.isRequired,\n showOldPasswordField: PropTypes.bool,\n showTitle: PropTypes.bool,\n updateNewPassword: PropTypes.func.isRequired,\n updateNewPasswordRepeat: PropTypes.func.isRequired,\n updateOldPassword: PropTypes.func.isRequired,\n validationRules: PropTypes.array\n}\n\nexport default PasswordUpdateDialog\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialized} from '../../../modules/passwordUpdate/actions'\nimport {\n updateOldPassword,\n updateNewPassword,\n updateNewPasswordRepeat,\n savePassword\n} from '../../../modules/passwordUpdate/password'\nimport {fetchValidationRules} from '../../../modules/passwordUpdate/validationRules'\nimport PasswordUpdateDialog from './PasswordUpdateDialog'\n\nconst mapActionCreators = {\n updateOldPassword,\n updateNewPassword,\n updateNewPasswordRepeat,\n fetchValidationRules,\n savePassword,\n initialized\n}\n\nconst mapStateToProps = state => ({\n password: state.passwordUpdate.password,\n validationRules: state.passwordUpdate.validationRules,\n showOldPasswordField: state.passwordUpdate.dialog.showOldPasswordField,\n forcedUpdate: state.passwordUpdate.dialog.forcedUpdate,\n captchaKey: state.login.captchaKey\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(PasswordUpdateDialog))\n","import PasswordUpdateDialog from './PasswordUpdateDialogContainer'\n\nexport default PasswordUpdateDialog\n","export const CONNECT_LOGIN = 'two-factor-connector/CONNECT_LOGIN'\nexport const INITIALIZE = 'two-factor-connector/INITIALIZE'\nexport const SET_TWO_STEP_ACTIVE = 'two-factor-connector/SET_TWO_STEP_ACTIVE'\nexport const SET_SECRET = 'two-factor-connector/SET_SECRET'\nexport const SET_USER_NAME = 'two-factor-connector/SET_USER_NAME'\nexport const REQUEST_SECRET = 'two-factor-connector/REQUEST_SECRET'\nexport const GO_TO_SECRET_VERIFICATION = 'two-factor-connector/GO_TO_SECRET_VERIFICATION'\nexport const GO_TO_START = 'two-factor-connector/GO_TO_START'\nexport const GO_TO_SECRET = 'two-factor-connector/GO_TO_SECRET'\nexport const VERIFY_CODE = 'two-factor-connector/VERIFY_CODE'\nexport const SUCCESS = 'root/SUCCESS'\nexport const SET_SETUP_SUCCESSFUL = 'root/SET_SETUP_SUCCESSFUL'\nexport const GO_TO_RESULT = 'root/GO_TO_RESULT'\n\nexport const initialize = () => ({\n type: INITIALIZE\n})\n\nexport const setTwoFactorActive = twoFactorActive => ({\n type: SET_TWO_STEP_ACTIVE,\n payload: {\n twoFactorActive\n }\n})\n\nexport const setSecret = secret => ({\n type: SET_SECRET,\n payload: {\n secret\n }\n})\n\nexport const setUserName = username => ({\n type: SET_USER_NAME,\n payload: {\n username\n }\n})\n\nexport const requestSecret = () => ({\n type: REQUEST_SECRET\n})\n\nexport const goToSecretVerification = () => ({\n type: GO_TO_SECRET_VERIFICATION\n})\n\nexport const goToStart = () => ({\n type: GO_TO_START\n})\n\nexport const goToSecret = () => ({\n type: GO_TO_SECRET\n})\n\nexport const verifyCode = userCode => ({\n type: VERIFY_CODE,\n payload: {\n userCode\n }\n})\n\nexport const success = () => ({\n type: SUCCESS\n})\n\nexport const setSetupSuccessful = setupSuccessful => ({\n type: SET_SETUP_SUCCESSFUL,\n payload: {\n setupSuccessful\n }\n})\n\nexport const goToResult = () => ({\n type: GO_TO_RESULT\n})\n","import styled from 'styled-components'\nimport {scale, StyledButton} from 'tocco-ui'\n\nexport const StyledButtonWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n margin-top: ${scale.space(0.5)};\n\n > ${StyledButton} {\n margin-right: 0;\n }\n`\n","import styled from 'styled-components'\nimport {scale, themeSelector} from 'tocco-ui'\n\nexport const StyledMessageWrapper = styled.div`\n display: grid;\n grid-template-columns: 9% 1fr;\n grid-column-gap: ${scale.space(-0.5)};\n`\n\nexport const StyledIconWrapper = styled.span`\n display: flex;\n align-items: center;\n color: ${({isSuccessful}) =>\n isSuccessful ? themeSelector.color('signal.success') : themeSelector.color('signal.danger')};\n font-size: ${scale.font(10)};\n\n > * {\n max-width: 100%;\n }\n`\n\nexport const StyledTextWrapper = styled.div`\n display: flex;\n align-items: center;\n`\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, Typography, Icon, useOnEnterHandler} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from '../GlobalStyledComponents'\nimport {StyledMessageWrapper, StyledIconWrapper, StyledTextWrapper} from './StyledComponents'\n\nconst Result = ({success, goToStart, setupSuccessful, intl}) => {\n useOnEnterHandler(success)\n const msg = id => intl.formatMessage({id})\n\n if (setupSuccessful) {\n return (\n <>\n <StyledMessageWrapper>\n <StyledIconWrapper isSuccessful={true}>\n <Icon icon={'check'} />\n </StyledIconWrapper>\n <StyledTextWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.successfulText\" />\n </Typography.P>\n </StyledTextWrapper>\n </StyledMessageWrapper>\n <StyledButtonWrapper>\n <Button label={msg('client.two-factor-connector.okButton')} ink=\"primary\" look=\"raised\" onClick={success} />\n </StyledButtonWrapper>\n </>\n )\n }\n\n return (\n <>\n <StyledMessageWrapper>\n <StyledIconWrapper isSuccessful={false}>\n <Icon icon={'times'} />\n </StyledIconWrapper>\n <StyledTextWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.errorText\" />\n </Typography.P>\n </StyledTextWrapper>\n </StyledMessageWrapper>\n <StyledButtonWrapper>\n <Button label={msg('client.two-factor-connector.okButton')} ink=\"primary\" look=\"raised\" onClick={goToStart} />\n </StyledButtonWrapper>\n </>\n )\n}\n\nResult.propTypes = {\n intl: PropTypes.object.isRequired,\n success: PropTypes.func.isRequired,\n goToStart: PropTypes.func.isRequired,\n setupSuccessful: PropTypes.bool\n}\n\nexport default Result\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {success, goToStart} from '../../modules/actions'\nimport Result from './Result'\n\nconst mapActionCreators = {\n success,\n goToStart\n}\n\nconst mapStateToProps = state => ({\n setupSuccessful: state.twoFactorConnector.setupSuccessful\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Result))\n","import Result from './ResultContainer'\n\nexport default Result\n","import PropTypes from 'prop-types'\nimport QRCodeC from 'qrcode.react'\n\n/**\n * Use to display a string as QR-Code Image.\n */\nconst QRCode = ({value}) => <QRCodeC value={value} renderAs=\"svg\" />\n\nQRCode.propTypes = {\n /**\n * Value that will be shown as qr-code. e.g. an Url.\n */\n value: PropTypes.string\n}\n\nexport default QRCode\n","import styled from 'styled-components'\nimport {scale} from 'tocco-ui'\n\nexport const StyledQRCodeWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin: ${scale.space(1.2)} ${scale.space(1)} ${scale.space(1.5)} ${scale.space(1)};\n`\n\nexport const StyledParagraph = styled.div`\n display: flex;\n justify-content: center;\n margin-top: ${scale.space(-1)};\n margin-bottom: ${scale.space(-0.9)};\n`\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {QRCode, Typography, Button, useOnEnterHandler} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from '../GlobalStyledComponents'\nimport {StyledQRCodeWrapper, StyledParagraph} from './StyledComponents'\n\nconst Secret = ({secret, goToSecretVerification}) => {\n useOnEnterHandler(goToSecretVerification)\n\n return (\n <>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.qrCodeInfo\" />\n </Typography.P>\n <StyledQRCodeWrapper>\n <QRCode value={secret.uri} />\n </StyledQRCodeWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.secretInfo\" />\n </Typography.P>\n <StyledParagraph>\n <Typography.B>{secret.secret}</Typography.B>\n </StyledParagraph>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.backupInfo\" />\n </Typography.P>\n <StyledButtonWrapper>\n <Button ink=\"primary\" look=\"raised\" onClick={goToSecretVerification}>\n <FormattedMessage id=\"client.two-factor-connector.nextButton\" />\n </Button>\n </StyledButtonWrapper>\n </>\n )\n}\n\nSecret.propTypes = {\n secret: PropTypes.shape({\n secret: PropTypes.string.isRequired,\n uri: PropTypes.string.isRequired\n }).isRequired,\n goToSecretVerification: PropTypes.func.isRequired\n}\n\nexport default Secret\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {goToSecretVerification} from '../../modules/actions'\nimport Secret from './Secret'\n\nconst mapActionCreators = {\n goToSecretVerification\n}\n\nconst mapStateToProps = state => ({\n secret: state.twoFactorConnector.secret\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Secret))\n","import Secret from './SecretContainer'\n\nexport default Secret\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, Typography, useOnEnterHandler} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from '../GlobalStyledComponents'\n\nconst Start = ({twoFactorActive, forced, requestSecret, intl}) => {\n useOnEnterHandler(requestSecret)\n const msg = id => intl.formatMessage({id})\n\n const renderInfo = () => {\n if (twoFactorActive) {\n return <FormattedMessage id=\"client.two-factor-connector.overwriteInfo\" />\n }\n\n const infoMsg = forced ? msg('client.two-factor-connector.forcedInfo') : msg('client.two-factor-connector.info')\n return <span dangerouslySetInnerHTML={{__html: infoMsg}} />\n }\n\n return (\n <>\n <Typography.P>{renderInfo()}</Typography.P>\n <StyledButtonWrapper>\n <Button\n label={msg('client.two-factor-connector.nextButton')}\n ink=\"primary\"\n look=\"raised\"\n onClick={requestSecret}\n />\n </StyledButtonWrapper>\n </>\n )\n}\n\nStart.propTypes = {\n intl: PropTypes.object.isRequired,\n requestSecret: PropTypes.func.isRequired,\n twoFactorActive: PropTypes.bool,\n forced: PropTypes.bool\n}\n\nexport default Start\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialize, requestSecret} from '../../modules/actions'\nimport Start from './Start'\n\nconst mapActionCreators = {\n initialize,\n requestSecret\n}\n\nconst mapStateToProps = state => ({\n twoFactorActive: state.twoFactorConnector.twoFactorActive,\n secret: state.twoFactorConnector.secret,\n forced: state.input.forced\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Start))\n","import Start from './StartContainer'\n\nexport default Start\n","import styled from 'styled-components'\nimport {StyledEditableWrapperCss} from 'tocco-ui'\n\nexport const StyledLoginFormInputWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n }\n`\n","import PropTypes from 'prop-types'\nimport {useState} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, EditableValue, StatedValue, Typography, useOnEnterHandler} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from '../GlobalStyledComponents'\nimport {StyledLoginFormInputWrapper} from './StyledComponents'\n\nconst Verification = ({verifyCode, intl}) => {\n const [userCode, setUserCode] = useState(null)\n const msg = id => intl.formatMessage({id})\n const handleVerifyClick = () => verifyCode(userCode)\n const isSubmittable = userCode && userCode.toString().length >= 6\n const handleSubmit = e => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n\n if (isSubmittable) {\n handleVerifyClick()\n }\n }\n\n useOnEnterHandler(handleSubmit)\n\n return (\n <>\n <Typography.P>\n <FormattedMessage id=\"client.two-factor-connector.verificationText\" />\n </Typography.P>\n <form onSubmit={handleSubmit}>\n <StatedValue\n hasValue={Boolean(userCode)}\n id=\"verification-input\"\n label={msg('client.two-factor-connector.verificationInputLabel')}\n >\n <StyledLoginFormInputWrapper>\n <EditableValue\n type=\"integer\"\n value={userCode}\n events={{onChange: setUserCode}}\n options={{format: '### ###', allowLeadingZeros: true}}\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n <StyledButtonWrapper>\n <Button\n label={msg('client.two-factor-connector.okButton')}\n ink=\"primary\"\n look=\"raised\"\n type=\"submit\"\n disabled={!isSubmittable}\n />\n </StyledButtonWrapper>\n </form>\n </>\n )\n}\n\nVerification.propTypes = {\n intl: PropTypes.object.isRequired,\n verifyCode: PropTypes.func.isRequired\n}\n\nexport default Verification\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {verifyCode} from '../../modules/actions'\nimport Verification from './Verification'\n\nconst mapActionCreators = {\n verifyCode\n}\n\nconst mapStateToProps = (state, props) => ({})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Verification))\n","import Verification from './VerificationContainer'\n\nexport default Verification\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {notification} from 'tocco-app-extensions'\nimport {LoadMask} from 'tocco-ui'\n\nimport Result from '../Result'\nimport Secret from '../Secret'\nimport Start from '../Start'\nimport Verification from '../Verification'\n\nconst stages = {\n Start: 0,\n Secret: 1,\n Verification: 2,\n Result: 3\n}\n\nconst TwoFactorConnector = ({initialize, stage}) => {\n useEffect(() => {\n initialize()\n }, [initialize])\n\n const renderContent = () => {\n switch (stage) {\n case stages.Start:\n return <Start />\n case stages.Secret:\n return <Secret />\n case stages.Verification:\n return <Verification />\n case stages.Result:\n return <Result />\n default:\n return <LoadMask />\n }\n }\n\n return (\n <>\n <notification.Notifications />\n {renderContent()}\n </>\n )\n}\n\nTwoFactorConnector.propTypes = {\n stage: PropTypes.number,\n initialize: PropTypes.func.isRequired,\n twoFactorActive: PropTypes.bool,\n secret: PropTypes.shape({\n secret: PropTypes.string,\n uri: PropTypes.string\n })\n}\n\nexport default TwoFactorConnector\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialize} from '../../modules/actions'\nimport TwoFactorConnector from './TwoFactorConnector'\n\nconst mapActionCreators = {\n initialize\n}\n\nconst mapStateToProps = state => ({\n stage: state.twoFactorConnector.stage\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(TwoFactorConnector))\n","import TwoFactorConnector from './TwoFactorConnectorContainer'\n\nexport default TwoFactorConnector\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst setStage = stage => state => ({\n ...state,\n stage\n})\n\nconst ACTION_HANDLERS = {\n [actions.SET_TWO_STEP_ACTIVE]: reducerUtil.singleTransferReducer('twoFactorActive'),\n [actions.SET_SECRET]: reducerUtil.singleTransferReducer('secret'),\n [actions.SET_USER_NAME]: reducerUtil.singleTransferReducer('username'),\n [actions.SET_SETUP_SUCCESSFUL]: reducerUtil.singleTransferReducer('setupSuccessful'),\n [actions.GO_TO_START]: setStage(0),\n [actions.GO_TO_SECRET]: setStage(1),\n [actions.GO_TO_SECRET_VERIFICATION]: setStage(2),\n [actions.GO_TO_RESULT]: setStage(3)\n}\n\nconst initialState = {\n stage: null,\n twoFactorActive: null,\n secret: null,\n username: null,\n setupSuccessful: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _get from 'lodash/get'\nimport {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {rest, externalEvents} from 'tocco-app-extensions'\nimport {request} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst twoFactorField = 'relTwo_step_login_status'\nconst twoFactorActiveState = '1'\n\nexport const usernameSelector = state => state.twoFactorConnector.username\nexport const secretSelector = state => state.twoFactorConnector.secret\nexport const inputSelector = state => state.input\n\nexport function* requestSecret() {\n const {secret: inputSecret} = yield select(inputSelector)\n if (!inputSecret) {\n const username = yield select(usernameSelector)\n const principalsResponse = yield call(rest.requestSaga, `principals/${username}/two-factor`, {method: 'GET'})\n const {secret, totpUri} = principalsResponse.body\n yield put(actions.setSecret({secret, uri: totpUri}))\n }\n yield put(actions.goToSecret())\n}\n\nexport function sendRequest(url, options) {\n return request.executeRequest(url, options).then(request.extractBody)\n}\n\n/* the regular two-factor endpoint can only be accessed while logged in to secure against anonymous activation of\n two-factor validation on arbitrary accounts, so without a session we send a request to the login servlet which uses\n the forced two-factor authenticator to validate login data and activate the two-factor login */\nfunction* activateTwoFactorWithoutSession(secret, userCode, username, password) {\n const data = {\n secret,\n userCode,\n username,\n password\n }\n\n const response = yield call(sendRequest, 'login', {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'\n }),\n body: Object.keys(data)\n .filter(k => !!data[k])\n .sort()\n .map(k => `${encodeURIComponent(k)}=${encodeURIComponent(data[k])}`)\n .join('&')\n })\n\n yield put(actions.setSetupSuccessful(_get(response, 'TWOSTEPLOGIN_ACTIVATION.success', false)))\n}\n\nfunction* activateTwoFactor(username, secret, code) {\n const codeVerifyResponse = yield call(rest.requestSaga, `principals/${username}/two-factor`, {\n method: 'POST',\n body: {\n secret,\n code\n },\n acceptedStatusCodes: [400]\n })\n\n yield put(actions.setSetupSuccessful(codeVerifyResponse.status === 204))\n}\n\nexport function* verifyCode({payload: {userCode}}) {\n const username = yield select(usernameSelector)\n const {secret} = yield select(secretSelector)\n const {password, forced} = yield select(inputSelector)\n\n if (forced) {\n yield call(activateTwoFactorWithoutSession, secret, userCode, username, password)\n } else {\n yield call(activateTwoFactor, username, secret, userCode)\n }\n yield put(actions.goToResult())\n}\n\nexport function* initialize() {\n yield call(loadPrincipal2FAInfo)\n const {secret} = yield select(inputSelector)\n if (secret) {\n yield put(actions.setSecret(secret))\n }\n yield put(actions.goToStart())\n}\n\nexport function* success() {\n yield put(externalEvents.fireExternalEvent('onSuccess'))\n}\n\nexport function* loadPrincipal2FAInfo() {\n const username = yield call(getUsername)\n yield put(actions.setUserName(username))\n const where = `username === \"${username}\"`\n const principals = yield call(rest.fetchEntitiesPage, 'Principal', {where, paths: [twoFactorField]})\n\n if (principals.length > 1) {\n throw new Error(`More than one user found for username ${username}`)\n }\n\n const twoFactorKey = _get(principals, `[0].paths.${twoFactorField}.value.key`)\n const twoFactorActive = twoFactorKey === twoFactorActiveState\n\n yield put(actions.setTwoFactorActive(twoFactorActive))\n}\n\nfunction* getUsername() {\n const {username: inputUsername} = yield select(inputSelector)\n if (inputUsername) {\n return inputUsername\n } else {\n const principalsResponse = yield call(rest.requestSaga, 'principals')\n return principalsResponse.body.username\n }\n}\n\nexport function* fireResize() {\n yield put(externalEvents.fireExternalEvent('onResize'))\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.REQUEST_SECRET, requestSecret),\n takeLatest(actions.VERIFY_CODE, verifyCode),\n takeLatest(actions.INITIALIZE, initialize),\n takeLatest(actions.SUCCESS, success),\n takeLatest(actions.GO_TO_START, fireResize),\n takeLatest(actions.GO_TO_SECRET, fireResize),\n takeLatest(actions.GO_TO_SECRET_VERIFICATION, fireResize),\n takeLatest(actions.GO_TO_RESULT, fireResize)\n ])\n}\n","import twoFactorConnector from './reducer'\nimport rootSaga from './sagas'\n\nexport default {\n twoFactorConnector\n}\n\nexport const sagas = [rootSaga]\n","import PropTypes from 'prop-types'\nimport {appFactory, errorLogging, externalEvents, notification} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport TwoFactorConnector from './components/TwoFactorConnector'\nimport reducers, {sagas} from './modules'\n\nconst packageName = 'two-factor-connector'\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <TwoFactorConnector />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n\n notification.addToStore(store, true)\n errorLogging.addToStore(store, true, ['console', 'remote', 'notification'])\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducer', () => {\n const hotReloadedReducers = require('./modules/reducer').default\n reducerUtil.hotReloadReducers(app.store, hotReloadedReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst EXTERNAL_EVENTS = ['onSuccess', 'onCancel', 'onResize']\n\nconst TwoFactorConnectorApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nTwoFactorConnectorApp.propTypes = {\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => ({...propTypes, [event]: PropTypes.func}), {}),\n username: PropTypes.string,\n password: PropTypes.string,\n secret: PropTypes.shape({\n secret: PropTypes.string.isRequired,\n uri: PropTypes.string.isRequired\n }),\n forced: PropTypes.bool\n}\n\nexport default TwoFactorConnectorApp\nexport const app = appFactory.createBundleableApp(packageName, initApp, TwoFactorConnectorApp)\n","import PropTypes from 'prop-types'\nimport TwoFactorConnectorApp from 'tocco-two-factor-connector/src/main'\n\nimport {Pages} from '../../types/Pages'\nimport Title from '../form-components/Title'\n\nconst TwoFactorConnectorForm = ({locale, username, password, secret, showTitle, changePage}) => {\n return (\n <div>\n {showTitle && <Title title=\"client.login.form.title\" />}\n <TwoFactorConnectorApp\n locale={locale}\n username={username}\n password={password}\n secret={secret}\n forced={true}\n onSuccess={() => {\n changePage(Pages.LOGIN_FORM)\n }}\n />\n </div>\n )\n}\n\nTwoFactorConnectorForm.propTypes = {\n locale: PropTypes.string,\n username: PropTypes.string.isRequired,\n password: PropTypes.string.isRequired,\n secret: PropTypes.shape({\n text: PropTypes.string.isRequired,\n uri: PropTypes.string.isRequired\n }).isRequired,\n showTitle: PropTypes.bool,\n changePage: PropTypes.func.isRequired\n}\n\nexport default TwoFactorConnectorForm\n","import {connect} from 'react-redux'\n\nimport {changePage} from '../../modules/login/actions'\nimport TwoFactorConnectorForm from './TwoFactorConnectorForm'\n\nconst mapActionCreators = {\n changePage\n}\n\nconst mapStateToProps = state => ({\n username: state.login.username,\n password: state.login.password,\n secret: state.twoStepLogin.secret,\n locale: state.intl.locale\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(TwoFactorConnectorForm)\n","import TwoFactorConnectorForm from './TwoFactorConnectorContainer'\n\nexport default TwoFactorConnectorForm\n","import styled from 'styled-components'\nimport {StyledButton, StyledInputCss, StyledEditableValue} from 'tocco-ui'\n\nexport const StyledTwoStepLogin = styled.div`\n ${StyledButton} {\n width: 100%;\n }\n\n ${StyledEditableValue} {\n ${StyledInputCss}\n padding-top: .7rem;\n padding-bottom: 0.7rem;\n }\n`\n","import PropTypes from 'prop-types'\nimport {useState, useLayoutEffect, useRef} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {StatedValue, Typography, EditableValue} from 'tocco-ui'\n\nimport LoginButton from '../form-components/LoginButton'\nimport Title from '../form-components/Title'\nimport {StyledLoginFormInputWrapper} from '../StyledLoginForm'\nimport {StyledTwoStepLogin} from './StyledTwoStepLoginForm'\n\nconst TwoStepLoginForm = ({username, password, showTitle, loginPending, login, intl}) => {\n const [userCode, setUserCode] = useState(null)\n const formEl = useRef()\n\n useLayoutEffect(() => {\n const firstInput = formEl.current.querySelector('input')\n firstInput.focus()\n }, [])\n\n const handleSubmit = e => {\n e.preventDefault()\n login(username, password, null, userCode)\n }\n\n const msg = id => intl.formatMessage({id})\n return (\n <StyledTwoStepLogin>\n {showTitle && <Title title=\"client.login.form.title\" />}\n <form onSubmit={handleSubmit} ref={formEl}>\n <Typography.P>\n <FormattedMessage id=\"client.login.twoStepLogin.introduction\" />\n </Typography.P>\n <StatedValue\n hasValue={!!userCode}\n id=\"twoFactorCode-label\"\n label={msg('client.login.twoStepLogin.codePlaceholder')}\n >\n <StyledLoginFormInputWrapper>\n <EditableValue\n type=\"integer\"\n value={userCode}\n events={{onChange: setUserCode}}\n options={{format: '### ###', allowLeadingZeros: true}}\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n <LoginButton\n disabled={!userCode || userCode.toString().length < 6 || loginPending}\n label={msg('client.login.form.button')}\n pending={loginPending}\n />\n </form>\n </StyledTwoStepLogin>\n )\n}\n\nTwoStepLoginForm.propTypes = {\n intl: PropTypes.object.isRequired,\n login: PropTypes.func.isRequired,\n username: PropTypes.string.isRequired,\n password: PropTypes.string.isRequired,\n showTitle: PropTypes.bool,\n loginPending: PropTypes.bool\n}\n\nexport default TwoStepLoginForm\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {login} from '../../modules/actions'\nimport TwoStepLoginForm from './TwoStepLoginForm'\n\nconst mapActionCreators = {\n login\n}\n\nconst mapStateToProps = state => ({\n username: state.login.username,\n password: state.login.password,\n loginPending: state.loginForm.loginPending\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(TwoStepLoginForm))\n","import TwoStepLoginForm from './TwoStepLoginContainer'\n\nexport default TwoStepLoginForm\n","import PropTypes from 'prop-types'\nimport {useCallback} from 'react'\nimport {StatedValue} from 'tocco-ui'\n\nimport FormMessage from '../form-components/FormMessage'\nimport LoginButton from '../form-components/LoginButton'\nimport Title from '../form-components/Title'\nimport useAutoFill from '../form-components/useAutoFill'\nimport {StyledLoginFormInput, StyledLoginFormInputWrapper, StyledLoginFormWrapper} from '../StyledLoginForm'\n\nconst UsernameForm = ({intl, checkUsername, loginPending, message, setUsername, showTitle, username}) => {\n const [usernameAutoFill, usernameAutoFillProps] = useAutoFill(setUsername)\n\n const msg = id => intl.formatMessage({id})\n\n const handleSubmit = useCallback(\n async e => {\n if (e) {\n e.preventDefault()\n }\n\n checkUsername(username)\n },\n [checkUsername, username]\n )\n\n return (\n <StyledLoginFormWrapper>\n {showTitle && <Title title=\"client.login.form.title\" subtitle=\"client.login.form.introduction\" />}\n <form onSubmit={handleSubmit}>\n <StatedValue\n hasValue={!!username || usernameAutoFill}\n id=\"login-username\"\n label={msg('client.login.form.userEmailPlaceholder')}\n >\n <StyledLoginFormInputWrapper>\n <StyledLoginFormInput\n autoFocus\n name=\"user\"\n required\n type=\"text\"\n value={username}\n onFocus={e => e.target.select()}\n {...usernameAutoFillProps}\n />\n </StyledLoginFormInputWrapper>\n </StatedValue>\n\n <FormMessage message={message} />\n\n <LoginButton\n disabled={!usernameAutoFill && (loginPending || username === '')}\n label={msg('client.login.form.next')}\n pending={loginPending}\n />\n </form>\n </StyledLoginFormWrapper>\n )\n}\n\nUsernameForm.propTypes = {\n intl: PropTypes.object.isRequired,\n checkUsername: PropTypes.func.isRequired,\n loginPending: PropTypes.bool.isRequired,\n message: PropTypes.shape({\n negative: PropTypes.bool,\n text: PropTypes.string\n }),\n setUsername: PropTypes.func.isRequired,\n showTitle: PropTypes.bool,\n username: PropTypes.string\n}\n\nexport default UsernameForm\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {checkUsername} from '../../modules/actions'\nimport {setUsername} from '../../modules/login/actions'\nimport UsernameForm from './UsernameForm'\n\nconst mapActionCreators = {\n setUsername,\n checkUsername\n}\n\nconst mapStateToProps = state => ({\n username: state.login.username,\n message: state.loginForm.message,\n loginPending: state.loginForm.loginPending\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(UsernameForm))\n","import UsernameForm from './UsernameFormContainer'\n\nexport default UsernameForm\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {createGlobalStyle} from 'styled-components'\n\nimport {Pages} from '../../types/Pages'\nimport LoginForm from '../LoginForm'\nimport PasswordRequest from '../PasswordRequest'\nimport PasswordUpdate from '../passwordUpdate/PasswordUpdateDialog'\nimport TwoFactorConnector from '../TwoFactorConnectorForm'\nimport TwoStepLogin from '../TwoStepLoginForm'\nimport UsernameForm from '../UsernameForm'\n\nconst GlobalRecaptchaBadgeStyle = createGlobalStyle`\n .grecaptcha-badge {\n z-index: 9999999;\n opacity: .8;\n }\n`\n\nconst Login = ({initialize, showTitle, currentPage}) => {\n useEffect(() => {\n initialize()\n }, [initialize])\n\n return (\n <>\n <GlobalRecaptchaBadgeStyle />\n {(() => {\n switch (currentPage) {\n case Pages.PASSWORD_UPDATE:\n return <PasswordUpdate showTitle={showTitle} />\n case Pages.PASSWORD_REQUEST:\n return <PasswordRequest showTitle={showTitle} />\n case Pages.TWOSTEPLOGIN:\n return <TwoStepLogin showTitle={showTitle} />\n case Pages.TWOSTEPLOGIN_ACTIVATION:\n return <TwoFactorConnector />\n case Pages.USERNAME_FORM:\n return <UsernameForm showTitle={showTitle} />\n default:\n return <LoginForm showTitle={showTitle} />\n }\n })()}\n </>\n )\n}\n\nLogin.propTypes = {\n initialize: PropTypes.func.isRequired,\n currentPage: PropTypes.string,\n showTitle: PropTypes.bool\n}\n\nexport default Login\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialize} from '../../modules/actions'\nimport Login from './Login'\n\nconst mapActionCreators = {\n initialize\n}\n\nconst mapStateToProps = (state, props) => ({\n currentPage: props.currentPage || state.login.currentPage,\n showTitle: props.showTitle\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Login))\n","import Login from './LoginContainer'\n\nexport default Login\n","export const SET_SHOW_OLD_PASSWORD = 'PasswordUpdateDialog/SET_SHOW_OLD_PASSWORD'\nexport const SET_STANDALONE = 'PasswordUpdateDialog/SET_STANDALONE'\nexport const SET_FORCED_UPDATE = 'PasswordUpdateDialog/SET_FORCED_UPDATE'\nexport const SET_USERNAME_OR_PK = 'PasswordUpdateDialog/SET_USERNAME_OR_PK'\nexport const SET_CURRENT_USERNAME = 'PasswordUpdateDialog/SET_CURRENT_USERNAME'\n\nexport const setShowOldPasswordField = showOldPasswordField => ({\n type: SET_SHOW_OLD_PASSWORD,\n payload: {\n showOldPasswordField\n }\n})\n\nexport const setForcedUpdate = forcedUpdate => ({\n type: SET_FORCED_UPDATE,\n payload: {\n forcedUpdate\n }\n})\n\nexport const setStandalone = standalone => ({\n type: SET_STANDALONE,\n payload: {\n standalone\n }\n})\n\nexport const setUsernameOrPk = usernameOrPk => ({\n type: SET_USERNAME_OR_PK,\n payload: {\n usernameOrPk\n }\n})\n\nexport const setCurrentUsername = () => ({\n type: SET_CURRENT_USERNAME\n})\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_ENTRY_PAGE]: reducerUtil.singleTransferReducer('entryPage'),\n [actions.CHANGE_PAGE]: reducerUtil.singleTransferReducer('currentPage'),\n [actions.SET_USERNAME]: reducerUtil.singleTransferReducer('username'),\n [actions.SET_PASSWORD]: reducerUtil.singleTransferReducer('password'),\n [actions.SET_CAPTCHA_KEY]: reducerUtil.singleTransferReducer('captchaKey')\n}\n\nconst initialState = {\n entryPage: undefined,\n currentPage: undefined,\n username: '',\n password: '',\n captchaKey: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\n\nexport default reducer\n","export const SET_MESSAGE = 'loginForm/SET_MESSAGE'\nexport const CLEAR_MESSAGE = 'loginForm/CLEAR_MESSAGE'\nexport const SET_PENDING = 'loginForm/SET_PENDING'\nexport const ACTIVATE_RECAPTCHA = 'loginForm/ACTIVATE_RECAPTCHA'\n\nexport const setMessage = (text, negative = false) => ({\n type: SET_MESSAGE,\n payload: {\n text,\n negative\n }\n})\n\nexport const clearMessage = () => ({\n type: CLEAR_MESSAGE\n})\n\nexport const setPending = (pending = false) => ({\n type: SET_PENDING,\n payload: {\n pending\n }\n})\n\nexport const activateRecaptcha = () => ({\n type: ACTIVATE_RECAPTCHA\n})\n","import {SET_MESSAGE, SET_PENDING, ACTIVATE_RECAPTCHA, CLEAR_MESSAGE} from './actions'\n\nconst setMessage = (state, {payload}) => {\n const {text, negative} = payload\n return {\n ...state,\n message: {\n text,\n negative\n }\n }\n}\n\nconst clearMessage = state => {\n return {\n ...state,\n message: {}\n }\n}\n\nconst setPending = (state, {payload}) => ({\n ...state,\n loginPending: payload.pending\n})\n\nconst activateRecaptcha = state => ({\n ...state,\n recaptchaActivated: true\n})\n\nconst ACTION_HANDLERS = {\n [SET_MESSAGE]: setMessage,\n [CLEAR_MESSAGE]: clearMessage,\n [SET_PENDING]: setPending,\n [ACTIVATE_RECAPTCHA]: activateRecaptcha\n}\n\nconst initialState = {\n message: {},\n loginPending: false,\n recaptchaActivated: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\n\nexport default reducer\n","import * as actions from './actions'\n\nconst initialState = {\n showOldPasswordField: true,\n forcedUpdate: false,\n standalone: true,\n usernameOrPk: ''\n}\n\nconst singleTransferReducer = attributeName => {\n return (state, {payload}) => {\n const val = payload[attributeName]\n return {\n ...state,\n [attributeName]: val\n }\n }\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_SHOW_OLD_PASSWORD]: singleTransferReducer('showOldPasswordField'),\n [actions.SET_FORCED_UPDATE]: singleTransferReducer('forcedUpdate'),\n [actions.SET_STANDALONE]: singleTransferReducer('standalone'),\n [actions.SET_USERNAME_OR_PK]: singleTransferReducer('usernameOrPk')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\n\nexport default reducer\n","import {all, call, put, takeLatest} from 'redux-saga/effects'\nimport {rest} from 'tocco-app-extensions'\nimport {consoleLogger} from 'tocco-util'\n\nimport * as actions from './actions'\n\nexport const validationRulesSelector = state => state.passwordUpdate.validationRules\nexport const inputSelector = state => state.input\nexport const usernameOrPkSelector = state => state.passwordUpdate.dialog.usernameOrPk\nexport const passwordSelector = state => state.passwordUpdate.password\nexport const standaloneSelector = state => state.passwordUpdate.dialog.standalone\nexport const intlSelector = state => state.intl\n\nexport default function* sagas() {\n yield all([takeLatest(actions.SET_CURRENT_USERNAME, setCurrentUsername)])\n}\n\nexport function* setCurrentUsername() {\n const options = {\n acceptedStatusCodes: [403]\n }\n const response = yield call(rest.requestSaga, 'principals', options)\n if (response.status === 403) {\n consoleLogger.logError('input \"username\" on password-update is mandatory if no user is logged in')\n } else {\n const {username} = response.body\n yield put(actions.setUsernameOrPk(username))\n }\n}\n","export function isEmptyObject(object) {\n // http://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object\n return Object.keys(object).length === 0 && object.constructor === Object\n}\n\nexport function validationMessagesToErrorMap(messages) {\n const errors = {}\n messages.forEach(message => {\n errors[message.ruleName] = message.message\n })\n return errors\n}\n","import * as actions from './actions'\nimport {validationMessagesToErrorMap} from './utils'\n\nconst initialState = {\n oldPassword: '',\n newPassword: '',\n newPasswordRepeat: '',\n newPasswordValidationErrors: null,\n passwordUpdatePending: false,\n passwordUpdateFailed: false,\n passwordUpdateErrorCode: null\n}\n\nconst updateOldPassword = (state, {payload}) => ({\n ...state,\n oldPassword: payload.oldPassword\n})\n\nconst setNewPassword = (state, {payload}) => ({\n ...state,\n newPassword: payload.newPassword\n})\n\nconst setNewPasswordValidationErrors = (state, {payload}) => ({\n ...state,\n newPasswordValidationErrors: payload.errors\n})\n\nconst updateNewPasswordRepeat = (state, {payload}) => ({\n ...state,\n newPasswordRepeat: payload.newPasswordRepeat\n})\n\nconst savePassword = state => ({\n ...state,\n passwordUpdatePending: true,\n passwordUpdateFailed: false\n})\n\nconst savePasswordSuccess = state => initialState\n\nconst savePasswordFailure = (state, {payload}) => {\n if (payload.validationMessages) {\n const errors = validationMessagesToErrorMap(payload.validationMessages)\n return {\n ...state,\n passwordUpdatePending: false,\n newPasswordValidationErrors: errors\n }\n } else {\n return {\n ...state,\n passwordUpdatePending: false,\n passwordUpdateFailed: true,\n passwordUpdateErrorCode: payload.errorCode\n }\n }\n}\n\nconst resetPasswordUpdateFailed = (state, {payload}) => ({\n ...state,\n passwordUpdateFailed: false\n})\n\nconst ACTION_HANDLERS = {\n [actions.UPDATE_OLD_PASSWORD]: updateOldPassword,\n [actions.SET_NEW_PASSWORD]: setNewPassword,\n [actions.SET_NEW_PASSWORD_VALIDATION_ERRORS]: setNewPasswordValidationErrors,\n [actions.UPDATE_NEW_PASSWORD_REPEAT]: updateNewPasswordRepeat,\n [actions.SAVE_PASSWORD]: savePassword,\n [actions.SAVE_PASSWORD_SUCCESS]: savePasswordSuccess,\n [actions.SAVE_PASSWORD_FAILURE]: savePasswordFailure,\n [actions.RESET_PASSWORD_UPDATED_FAILED]: resetPasswordUpdateFailed\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {updateOldPassword, updateNewPassword, updateNewPasswordRepeat, savePassword} from './actions'\nimport reducer from './reducer'\nimport sagas from './sagas'\n\nexport {updateOldPassword, updateNewPassword, updateNewPasswordRepeat, savePassword}\n\nexport {sagas}\n\nexport default reducer\n","export const VisibilityStatus = {\n passwordUpdateSuccess: 'password_update_success',\n passwordUpdateFailed: 'password_update_failed'\n}\n","export const SET_SECRET = 'login/SET_SECRET'\n\nexport const setSecret = secret => ({\n type: SET_SECRET,\n payload: {\n secret\n }\n})\n","import {takeLatest, put, select, call, all} from 'redux-saga/effects'\nimport {externalEvents, rest, appFactory} from 'tocco-app-extensions'\nimport {consoleLogger, request, queryString} from 'tocco-util'\n\nimport {Pages} from '../types/Pages'\nimport * as actions from './actions'\nimport * as loginActions from './login/actions'\nimport {setMessage, clearMessage, setPending, activateRecaptcha} from './loginForm/actions'\nimport {setUsernameOrPk, setForcedUpdate} from './passwordUpdate/dialog/actions'\nimport {updateOldPassword} from './passwordUpdate/password/actions'\nimport {setSecret} from './twoStepLogin/actions'\n\nexport const DEFAULT_TIMEOUT = 30\n\nexport const loginSelector = state => state.login\nexport const inputSelector = state => state.input\n\nexport function* requestPasswordSaga({payload}) {\n const {entryPage} = yield select(loginSelector)\n yield put(setPending(true))\n yield call(rest.requestSaga, `principals/${payload.username}/password-reset`, {method: 'POST'})\n yield put(loginActions.setUsername(payload.username))\n yield put(loginActions.changePage(Pages.LOGIN_FORM))\n const hasUsernameForm = entryPage === Pages.USERNAME_FORM\n const message = hasUsernameForm\n ? 'client.login.from.passwordRequestedWithValidUsername'\n : 'client.login.from.passwordRequested'\n yield put(setMessage(message))\n yield put(setPending(false))\n}\n\nexport function doRequest(url, options) {\n return new Promise(resolve => {\n request\n .executeRequest(url, options)\n .then(request.extractBody)\n .then(json => resolve(json))\n .catch(e => {\n consoleLogger.logError('Failed to execute request', e)\n resolve({success: false})\n })\n })\n}\n\nexport function* doLoginRequest(data) {\n return yield call(doRequest, 'login', getOptions(data))\n}\n\nexport function* doSessionRequest() {\n return yield call(doRequest, 'session', {method: 'POST'})\n}\n\nfunction getOptions(data = {}) {\n return {\n method: 'POST',\n headers: new Headers({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'\n }),\n body: Object.keys(data)\n .filter(k => !!data[k])\n .sort()\n .map(k => `${encodeURIComponent(k)}=${encodeURIComponent(data[k])}`)\n .join('&')\n }\n}\n\nexport function* handleTwoStepLoginResponse() {\n yield put(loginActions.changePage(Pages.TWOSTEPLOGIN))\n}\n\nexport function* handleTwoStepActivationResponse(response) {\n const twoFactorResponse = response[Pages.TWOSTEPLOGIN_ACTIVATION]\n yield put(setSecret(twoFactorResponse))\n yield put(loginActions.changePage(Pages.TWOSTEPLOGIN_ACTIVATION))\n}\n\nexport function* handlePasswordUpdateResponse() {\n const login = yield select(loginSelector)\n yield put(updateOldPassword(login.password))\n yield put(setUsernameOrPk(login.username))\n yield put(setForcedUpdate(true))\n yield put(loginActions.changePage(Pages.PASSWORD_UPDATE))\n}\n\nexport function* handleBlockResponse() {\n yield put(setMessage('client.login.form.blocked', true))\n}\n\nexport function* handleFailedResponse() {\n yield put(setMessage('client.login.form.failed', true))\n}\n\nexport function* handleInvalidUsernameEmailResponse() {\n yield put(setMessage('client.login.form.invalidUsernameEmail', true))\n}\n\nexport function* handleRedirect() {\n const redirectUrl = yield loadRedirectUrl()\n if (redirectUrl) {\n window.location.href = redirectUrl\n }\n}\n\nexport function* loadRedirectUrl() {\n const {_redirect_url: queryUrl} = queryString.fromQueryString(window.location.search)\n if (queryUrl) {\n return queryUrl\n } else {\n const {redirectUrl: inputUrl} = yield select(inputSelector)\n return inputUrl\n }\n}\n\nexport function* handleSuccessfulLogin(response) {\n yield call(appFactory.reinitialiseCache)\n yield put(loginActions.setPassword(''))\n const timeout = response.timeout || DEFAULT_TIMEOUT\n yield put(externalEvents.fireExternalEvent('loginSuccess', {timeout}))\n}\n\nexport function* checkUsername({payload}) {\n const {username} = payload\n yield put(clearMessage())\n yield put(setPending(true))\n\n const response = yield call(rest.requestSaga, `client/username/check/${username}`, {method: 'GET'})\n const {existingUser, validEmail} = response.body\n if (existingUser) {\n yield put(loginActions.changePage(Pages.LOGIN_FORM))\n } else if (validEmail) {\n yield put(externalEvents.fireExternalEvent('register', {username}))\n } else {\n yield call(handleInvalidUsernameEmailResponse)\n }\n yield put(setPending(false))\n}\n\nexport function* loginSaga({payload}) {\n const {username, password, captchaToken, userCode} = payload\n const loginData = {\n username,\n password,\n ...(captchaToken && {captchaToken}),\n ...(userCode && {userCode})\n }\n yield put(setPending(true))\n\n const response = yield call(doLoginRequest, loginData)\n if (response.success) {\n yield call(handleSuccessfulLogin, response)\n yield call(handleRedirect)\n } else {\n yield put(loginActions.changePage(Pages.LOGIN_FORM)) // in order to display possible error message\n if (response.CAPTCHA) {\n yield put(activateRecaptcha())\n } else if (response.TWOSTEPLOGIN) {\n yield call(handleTwoStepLoginResponse, response)\n } else if (response.RESET_PASSWORD_REQUIRED) {\n yield call(handlePasswordUpdateResponse)\n } else if (response.LOGIN_BLOCKED) {\n yield call(handleBlockResponse)\n } else if (response.TWOSTEPLOGIN_ACTIVATION) {\n yield call(handleTwoStepActivationResponse, response)\n } else {\n yield call(handleFailedResponse)\n }\n yield put(setPending(false))\n }\n}\n\nexport function* checkSessionSaga() {\n const response = yield call(doSessionRequest)\n\n if (response.success) {\n yield call(handleSuccessfulLogin, response)\n }\n\n return response.success\n}\n\nexport function* loadSettings() {\n const settings = yield call(rest.fetchServerSettings)\n yield put(loginActions.setCaptchaKey(settings.captchaKey))\n}\n\nexport function* initialize() {\n const success = yield call(checkSessionSaga)\n yield call(loadSettings)\n if (success) {\n yield call(handleRedirect)\n }\n}\n\nexport function* clearMessagesOnPageChange() {\n yield put(clearMessage())\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(loginActions.CHANGE_PAGE, clearMessagesOnPageChange),\n takeLatest(actions.LOGIN, loginSaga),\n takeLatest(actions.CHECK_USERNAME, checkUsername),\n takeLatest(actions.REQUEST_PASSWORD, requestPasswordSaga),\n takeLatest(actions.INITIALIZE, initialize)\n ])\n}\n","export const RULE_PASSWORD_NOT_CHANGED = 'PASSWORD_NOT_CHANGED'\nexport const RULE_LENGTH = 'LENGTH'\nexport const RULE_CHARACTER_INSUFFICIENT_LOWERCASE = 'CHARACTER_INSUFFICIENT_LOWERCASE'\nexport const RULE_CHARACTER_INSUFFICIENT_UPPERCASE = 'CHARACTER_INSUFFICIENT_UPPERCASE'\nexport const RULE_CHARACTER_INSUFFICIENT_DIGIT = 'CHARACTER_INSUFFICIENT_DIGIT'\n\nfunction validateCharacterRule(password, regex, min, max) {\n if (typeof password !== 'string') {\n return false\n }\n\n const initialLength = password.length\n const lengthWithoutSpecificChars = password.replace(regex, '').length\n const specificCharsCount = initialLength - lengthWithoutSpecificChars\n\n return (\n (min === undefined || min === null || specificCharsCount >= min) &&\n (max === undefined || max === null || specificCharsCount <= max)\n )\n}\n\nconst VALIDATORS = {\n [RULE_PASSWORD_NOT_CHANGED]: (newPassword, oldPassword) =>\n typeof newPassword === 'string' && typeof oldPassword === 'string' && newPassword !== oldPassword,\n [RULE_LENGTH]: (newPassword, oldPassword, rule) =>\n typeof newPassword === 'string' &&\n (rule.params.min === undefined || rule.params.min === null || newPassword.length >= rule.params.min) &&\n (rule.params.max === undefined || rule.params.max === null || newPassword.length <= rule.params.max),\n [RULE_CHARACTER_INSUFFICIENT_LOWERCASE]: (newPassword, oldPassword, rule) =>\n validateCharacterRule(newPassword, /[a-z]/g, rule.params.min, rule.params.max),\n [RULE_CHARACTER_INSUFFICIENT_UPPERCASE]: (newPassword, oldPassword, rule) =>\n validateCharacterRule(newPassword, /[A-Z]/g, rule.params.min, rule.params.max),\n [RULE_CHARACTER_INSUFFICIENT_DIGIT]: (newPassword, oldPassword, rule) =>\n validateCharacterRule(newPassword, /[0-9]/g, rule.params.min, rule.params.max)\n}\n\nfunction validate(newPassword, oldPassword, validationRules) {\n const errors = {}\n\n if (validationRules) {\n validationRules.forEach(rule => {\n const validator = VALIDATORS[rule.name]\n if (validator) {\n const valid = validator(newPassword, oldPassword, rule)\n if (valid !== true) {\n errors[rule.name] = true\n }\n }\n })\n }\n\n return errors\n}\n\nexport default validate\n","import {takeLatest, call, select, put, all} from 'redux-saga/effects'\nimport {externalEvents, rest} from 'tocco-app-extensions'\n\nimport {VisibilityStatus} from '../../../visibilityStatus'\nimport {setPassword} from '../../login/actions'\nimport {loginSaga} from '../../sagas'\nimport * as actions from './actions'\nimport {isEmptyObject, validationMessagesToErrorMap} from './utils'\nimport localValidate from './validate'\n\nexport const validationRulesSelector = state => state.passwordUpdate.validationRules\nexport const inputSelector = state => state.input\nexport const usernameOrPkSelector = state => state.passwordUpdate.dialog.usernameOrPk\nexport const passwordSelector = state => state.passwordUpdate.password\nexport const standaloneSelector = state => state.passwordUpdate.dialog.standalone\nexport const intlSelector = state => state.intl\n\nexport function* storePassword(usernameOrPk, data, captchaToken) {\n const options = {\n method: 'POST',\n acceptedStatusCodes: [400],\n body: {\n ...data,\n captchaToken\n }\n }\n\n try {\n const resp = yield call(rest.requestSaga, `principals/${usernameOrPk}/password-update`, options)\n return resp.ok ? {error: null} : {error: resp.body}\n } catch (exception) {\n return {error: {errorCode: 'UNEXPECTED_ERROR', exception}}\n }\n}\n\nexport function* remoteValidate(usernameOrPk, data) {\n const {locale} = yield select(intlSelector)\n\n const options = {\n method: 'POST',\n body: data,\n queryParams: {locale}\n }\n\n try {\n const resp = yield call(rest.requestSaga, `principals/${usernameOrPk}/password-validation`, options)\n return resp.body\n } catch (exception) {\n // validation request failed for some reason. we ignore that.\n // (validation takes place on actual update request again)\n return {valid: true, exception}\n }\n}\n\nexport function* updateNewPassword(action) {\n yield put(actions.setNewPassword(action.payload.newPassword))\n yield put(actions.validate())\n}\n\nexport function* validate() {\n const validationRules = yield select(validationRulesSelector)\n const password = yield select(passwordSelector)\n\n const errors = localValidate(password.newPassword, password.oldPassword, validationRules)\n\n if (!isEmptyObject(errors)) {\n yield put(actions.setNewPasswordValidationErrors(errors))\n } else {\n const usernameOrPk = yield select(usernameOrPkSelector)\n const data = yield call(getData)\n const result = yield call(remoteValidate, usernameOrPk, data)\n if (result.valid === true) {\n yield put(actions.setNewPasswordValidationErrors({}))\n } else {\n const validationMessageErrors = validationMessagesToErrorMap(result.validationMessages)\n yield put(actions.setNewPasswordValidationErrors(validationMessageErrors))\n }\n }\n}\n\nexport function* savePassword({payload: {captchaToken}}) {\n const usernameOrPk = yield select(usernameOrPkSelector)\n const data = yield call(getData)\n const result = yield call(storePassword, usernameOrPk, data, captchaToken)\n\n if (result.error) {\n if (result.error.valid === false) {\n yield put(actions.savePasswordFailure(null, result.error.validationMessages))\n } else {\n yield put(actions.savePasswordFailure(result.error.errorCode))\n }\n yield put(externalEvents.fireVisibilityStatusChangeEvent([VisibilityStatus.passwordUpdateFailed]))\n } else {\n const standalone = yield select(standaloneSelector)\n if (standalone) {\n yield put(\n externalEvents.fireExternalEvent('success', {\n newPassword: data.newPassword\n })\n )\n } else {\n const loginData = yield call(getLoginData)\n yield put(setPassword(loginData.payload.password))\n yield call(loginSaga, loginData)\n }\n\n yield put(actions.savePasswordSuccess())\n yield put(externalEvents.fireVisibilityStatusChangeEvent([VisibilityStatus.passwordUpdateSuccess]))\n }\n}\n\nexport function* getData() {\n const input = yield select(inputSelector)\n const password = yield select(passwordSelector)\n\n return {\n oldPassword: input.oldPassword ? input.oldPassword : password.oldPassword,\n newPassword: password.newPassword\n }\n}\n\nexport function* getLoginData() {\n const password = yield select(passwordSelector)\n const usernameOrPk = yield select(usernameOrPkSelector)\n\n return {\n payload: {\n username: usernameOrPk,\n password: password.newPasswordRepeat\n }\n }\n}\n\nexport function* formChanged() {\n yield put(actions.resetPasswordUpdateFailed())\n}\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.UPDATE_NEW_PASSWORD, updateNewPassword),\n takeLatest(actions.VALIDATE, validate),\n takeLatest(actions.SAVE_PASSWORD, savePassword),\n takeLatest(actions.UPDATE_NEW_PASSWORD, formChanged),\n takeLatest(actions.UPDATE_OLD_PASSWORD, formChanged),\n takeLatest(actions.UPDATE_NEW_PASSWORD_REPEAT, formChanged)\n ])\n}\n","import {put, takeLatest, all} from 'redux-saga/effects'\nimport {externalEvents} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nexport function* resizeWatcher() {\n yield put(externalEvents.fireExternalEvent('resize'))\n}\n\nexport default function* sagas() {\n yield all([takeLatest(actions.INITIALIZED, resizeWatcher)])\n}\n","import * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_VALIDATION_RULES]: (state, action) => action.payload.rules\n}\n\nconst initialState = null\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {fetchValidationRules} from './actions'\nimport reducer from './reducer'\nimport sagas from './sagas'\n\nexport {fetchValidationRules}\n\nexport {sagas}\n\nexport default reducer\n","import {takeLatest, call, put, select, all} from 'redux-saga/effects'\nimport {rest} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nexport const usernameOrPkSelector = state => state.passwordUpdate.dialog.usernameOrPk\nexport const intlSelector = state => state.intl\n\nexport function* loadValidationRules(usernameOrPk, locale = '') {\n const resource = `principals/${usernameOrPk}/password-rules`\n\n const validationResponse = yield call(rest.requestSaga, resource, {queryParams: {locale}})\n return validationResponse.body\n}\n\nexport function* fetchValidationRules() {\n const usernameOrPk = yield select(usernameOrPkSelector)\n const {locale} = yield select(intlSelector)\n\n const response = yield call(loadValidationRules, usernameOrPk, locale)\n yield put(actions.setValidationRules(response.rules))\n}\n\nexport default function* sagas() {\n yield all([takeLatest(actions.FETCH_VALIDATION_RULES, fetchValidationRules)])\n}\n","import dialog, {sagas as dialogSagas} from './dialog'\nimport password, {sagas as passwordSagas} from './password'\nimport mainSagas from './sagas'\nimport validationRules, {sagas as validationRulesSagas} from './validationRules'\n\nexport default {\n dialog,\n password,\n validationRules\n}\n\nexport const sagas = [dialogSagas, mainSagas, passwordSagas, validationRulesSagas]\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_SECRET]: reducerUtil.singleTransferReducer('secret')\n}\n\nconst initialState = {\n secret: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\n\nexport default reducer\n","import {combineReducers} from 'redux'\n\nimport login from './login'\nimport loginForm from './loginForm'\nimport passwordUpdateReducers, {sagas as passwordUpdateSagas} from './passwordUpdate/reducers'\nimport mainSagas from './sagas'\nimport twoStepLogin from './twoStepLogin'\n\nexport default {\n login,\n loginForm,\n passwordUpdate: combineReducers(passwordUpdateReducers),\n twoStepLogin\n}\n\nexport const sagas = [mainSagas, ...passwordUpdateSagas]\n","import PropTypes from 'prop-types'\nimport {appFactory, errorLogging, externalEvents} from 'tocco-app-extensions'\nimport {env, appContext} from 'tocco-util'\n\nimport Login from './components/Login'\nimport * as login from './modules/login/actions'\nimport * as passwordUpdate from './modules/passwordUpdate/dialog/actions'\nimport loginReducers, {sagas} from './modules/reducers'\nimport {Pages} from './types/Pages'\n\nconst packageName = 'login'\n\nconst EXTERNAL_EVENTS = ['loginSuccess', 'register', 'resize']\nconst ENTRY_PAGE_MAP = {\n username: Pages.USERNAME_FORM,\n 'password-request': Pages.PASSWORD_REQUEST,\n login: Pages.LOGIN_FORM\n}\n\nexport const initLoginApp = (id, input, events, publicPath, customTheme) => {\n const entryPage = ENTRY_PAGE_MAP[input.entryPage] || Pages.LOGIN_FORM\n\n const actions = [\n passwordUpdate.setShowOldPasswordField(false),\n passwordUpdate.setStandalone(false),\n login.setUsername(input.username || ''),\n login.setEntryPage(entryPage),\n login.changePage(entryPage)\n ]\n\n const showTitle = !!input.showTitle\n const content = <Login showTitle={showTitle} />\n\n const store = appFactory.createStore(loginReducers, sagas, input, packageName)\n\n env.setInputEnvs(input)\n\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n errorLogging.addToStore(store, true, ['console', 'remote'])\n\n return appFactory.createApp(packageName, content, store, {\n input,\n actions,\n publicPath,\n textResourceModules: ['login'],\n customTheme\n })\n}\n\nexport const LoginApp = props => {\n const {component} = appFactory.useApp({\n initApp: initLoginApp,\n props,\n packageName,\n externalEvents: EXTERNAL_EVENTS\n })\n return component\n}\n\nLoginApp.propTypes = {\n showTitle: PropTypes.bool,\n locale: PropTypes.string,\n entryPage: PropTypes.oneOf(['username', 'login', 'password-request']),\n username: PropTypes.string,\n setLocale: PropTypes.func,\n backendUrl: PropTypes.string,\n redirectUrl: PropTypes.string,\n appContext: appContext.propTypes,\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {})\n}\n","import PropTypes from 'prop-types'\nimport {LoadMask} from 'tocco-ui'\n\nimport Login from '../../components/Login'\n\nconst LoadUsernameMask = ({usernameOrPk, showTitle}) => (\n <LoadMask required={[usernameOrPk]}>\n <Login currentPage=\"PASSWORD_UPDATE\" showTitle={showTitle} />\n </LoadMask>\n)\n\nLoadUsernameMask.propTypes = {\n usernameOrPk: PropTypes.any,\n showTitle: PropTypes.bool\n}\n\nexport default LoadUsernameMask\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport Test from './LoadUsernameMask'\n\nconst mapActionCreators = {}\n\nconst mapStateToProps = (state, props) => ({\n usernameOrPk: state.passwordUpdate.dialog.usernameOrPk\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Test))\n","import LoadUsernameMaskContainer from './LoadUsernameMaskContainer'\n\nexport default LoadUsernameMaskContainer\n","import PropTypes from 'prop-types'\nimport {appFactory, errorLogging, externalEvents} from 'tocco-app-extensions'\nimport {env, appContext} from 'tocco-util'\n\nimport LoadUsernameMask from './components/LoadUsernameMask'\nimport * as passwordUpdate from './modules/passwordUpdate/dialog/actions'\nimport loginReducers, {sagas} from './modules/reducers'\n\nconst packageName = 'password-update'\n\nconst EXTERNAL_EVENTS_PASSWORD_UPDATE = ['success', 'resize', 'onVisibilityStatusChange']\n\nexport const initPasswordUpdateApp = (id, input, events, publicPath, customTheme) => {\n const showTitle = !!input.showTitle\n const forcedUpdate = !!input.forcedUpdate\n\n const content = <LoadUsernameMask showTitle={showTitle} />\n\n const actions = [passwordUpdate.setForcedUpdate(forcedUpdate)]\n if (typeof input.username !== 'string' || input.username.length === 0) {\n actions.push(passwordUpdate.setCurrentUsername())\n } else {\n actions.push(passwordUpdate.setUsernameOrPk(input.username))\n }\n\n if (typeof input.showOldPasswordField === 'boolean') {\n actions.push(passwordUpdate.setShowOldPasswordField(input.showOldPasswordField))\n }\n\n const store = appFactory.createStore(loginReducers, sagas, input, packageName)\n\n env.setInputEnvs(input)\n\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS_PASSWORD_UPDATE, state.input))\n errorLogging.addToStore(store, true, ['console', 'remote'])\n\n return appFactory.createApp(packageName, content, store, {\n input,\n actions,\n publicPath,\n textResourceModules: ['login'],\n customTheme\n })\n}\n\nexport const PasswordUpdateApp = props => {\n const {component} = appFactory.useApp({\n initApp: initPasswordUpdateApp,\n props,\n packageName,\n externalEvents: EXTERNAL_EVENTS_PASSWORD_UPDATE\n })\n return component\n}\n\nPasswordUpdateApp.propTypes = {\n username: PropTypes.string,\n showTitle: PropTypes.bool,\n showOldPasswordField: PropTypes.bool,\n oldPassword: PropTypes.string,\n backendUrl: PropTypes.string,\n appContext: appContext.propTypes,\n ...EXTERNAL_EVENTS_PASSWORD_UPDATE.reduce(\n (propTypes, event) => ({\n ...propTypes,\n [event]: PropTypes.func\n }),\n {}\n )\n}\n","import {appFactory} from 'tocco-app-extensions'\nimport {reducer as reducerUtil, consoleLogger} from 'tocco-util'\n\nimport {initLoginApp, LoginApp} from './LoginApp'\nimport {initPasswordUpdateApp, PasswordUpdateApp} from './PasswordUpdateApp'\n\nconst packageName = 'login'\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initLoginApp)\n appFactory.registerAppInRegistry('password-update', initPasswordUpdateApp)\n\n if (__DEV__) {\n const input = __DEV_PACKAGE_INPUT__ || require('./dev/login_input.json')\n consoleLogger.log(`${packageName} - input:`, input)\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n }\n\n const app = initLoginApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nexport {PasswordUpdateApp}\nexport default LoginApp\nexport const app = appFactory.createBundleableApp(packageName, initLoginApp, LoginApp)\nexport const appPasswordUpdate = appFactory.createBundleableApp(\n 'password-update',\n initPasswordUpdateApp,\n PasswordUpdateApp\n)\n","import {env} from 'tocco-util'\n\nimport {getPopUpFeatures} from './popUp'\n\nexport const openLoginWindow = (loginEndpoint, loginCompleted, provider) => {\n const isWidget = env.getEmbedType() === 'widget'\n\n const baseUrl = __DEV__ ? '' : env.getBackendUrl()\n\n const redirectUri = encodeURIComponent(`${baseUrl}/nice2/sso-callback`)\n const sourceUri = encodeURIComponent(window.location.href)\n\n const providerParam = `provider=${provider.unique_id}`\n const sourceUriParam = `&sourceUri=${sourceUri}`\n // apply nice_auth cookie on customers extranet domain instead of tocco.ch-domain\n const redirectUriParam = isWidget ? `&redirectUri=${redirectUri}` : ''\n\n const url = `${baseUrl}${loginEndpoint}?${providerParam}${sourceUriParam}${redirectUriParam}`\n\n const popUp = window.open(url, provider.label, getPopUpFeatures(650, 500))\n\n window.ssoPopUpCallback = result => {\n popUp.close()\n loginCompleted(result)\n }\n}\n","import _reduce from 'lodash/reduce'\n\nexport const getPopUpFeatures = (height = 200, width = 200) => {\n const features = {\n height,\n width,\n left: window.screen.width / 2 - width / 2,\n top: window.screen.height / 2 - height / 2,\n resizable: 1,\n scrollbars: 1,\n status: 1\n }\n\n return _reduce(features, (result, value, key) => [...result, `${key}=${value}`], []).join(',')\n}\n","const RADIX = 16\n\nexport const hexToRgb = (hex, fallBack = null) => {\n if (!hex) {\n return fallBack\n }\n\n hex = normalizeHex(hex)\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\n return result\n ? {\n r: parseInt(result[1], RADIX),\n g: parseInt(result[2], RADIX),\n b: parseInt(result[3], RADIX)\n }\n : fallBack\n}\n\nconst normalizeHex = hex => {\n if (!hex.startsWith('#')) {\n hex = '#' + hex\n }\n return hex.padEnd(7, '0')\n}\n","import {hexToRgb} from './hexToRgb'\n\nconst LUMIANCE_LIMIT = 0.25\n\nconst calculateLight = colorItem => {\n let c = colorItem / 255.0\n if (c <= 0.03928) {\n c = c / 12.92\n } else {\n c = Math.pow((c + 0.055) / 1.055, 2.4)\n }\n return c\n}\n\nconst calculateLumiance = color =>\n 0.2126 * calculateLight(color.r) + 0.7152 * calculateLight(color.g) + 0.0722 * calculateLight(color.b)\n\n/***\n * Returns a dark or bright value depending on the given color.\n * This could be used to choose a pleasant font color to a background color.\n * @param hexColor Hex Color code\n * @param brightValue Bright value can be overridden. Default is the color white as hex.\n * @param darkValue Dark value can be overridden. Default is the color black as hex.\n * @returns {string}\n */\nexport const getContrastColor = (hexColor, brightValue = '#FFFFFF', darkValue = '#000000') => {\n const rgbColor = hexToRgb(hexColor)\n\n if (rgbColor) {\n return calculateLumiance(rgbColor) > LUMIANCE_LIMIT ? darkValue : brightValue\n }\n\n return brightValue\n}\n","import {getContrastColor} from './contrast'\nimport {hexToRgb} from './hexToRgb'\n\nexport default {getContrastColor, hexToRgb}\n","import styled from 'styled-components'\nimport {StyledButton, theme, scale} from 'tocco-ui'\nimport {color} from 'tocco-util'\n\nexport default styled(StyledButton)`\n && {\n margin-right: 0;\n flex: 1;\n font-size: ${scale.font(1.3)};\n justify-content: center;\n border-radius: ${theme.radii('buttonLarge')};\n background-color: ${({primaryColor}) => primaryColor};\n color: ${({secondaryColor}) => color.getContrastColor(secondaryColor)};\n\n span {\n margin-left: ${scale.space(-0.8)};\n padding: ${scale.space(-0.55)} 0;\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport {Icon} from 'tocco-ui'\n\nimport {openLoginWindow} from '../../utils/loginWindow'\nimport StyledProviderButton from './StyledProviderButton'\n\nconst ProviderButton = ({provider, loginCompleted, loginEndpoint}) => {\n const clickHandler = () => {\n openLoginWindow(loginEndpoint, loginCompleted, provider)\n }\n\n return (\n <StyledProviderButton\n primaryColor={provider.button_primary_color}\n secondaryColor={provider.button_secondary_color}\n onClick={clickHandler}\n >\n {provider.button_icon && <Icon position=\"prepend\" icon={provider.button_icon} />}\n <span>{provider.button_label}</span>\n </StyledProviderButton>\n )\n}\n\nProviderButton.propTypes = {\n provider: PropTypes.shape({\n button_primary_color: PropTypes.string,\n button_secondary_color: PropTypes.string,\n button_icon: PropTypes.string,\n button_label: PropTypes.string\n }),\n loginEndpoint: PropTypes.string.isRequired,\n loginCompleted: PropTypes.func.isRequired\n}\n\nexport default ProviderButton\n","import styled from 'styled-components'\nimport {StyledSpan, themeSelector, scale} from 'tocco-ui'\n\nexport const StyledButtonContainer = styled.div`\n width: 100%;\n margin-top: ${scale.space(1.2)};\n display: grid;\n grid-gap: ${scale.space(-0.4)};\n grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n\n @media (max-width: 1024px) {\n margin-top: ${scale.space(0.2)};\n }\n`\n\nexport const StyledSsoError = styled(StyledSpan)`\n && {\n display: inline-block;\n margin-top: ${scale.space(-0.5)};\n margin-bottom: ${scale.space(-0.5)};\n text-align: center;\n width: 100%;\n color: ${themeSelector.color('signal.danger')};\n }\n`\n","import {useEffect} from 'react'\nimport {react} from 'tocco-util'\n\nimport {openLoginWindow} from '../../utils/loginWindow'\n\nconst useAutoLogin = ({autoLogin, providers, loginEndpoint, loginCompleted}) => {\n const prevProviders = react.usePrevious(providers)\n\n useEffect(() => {\n if (autoLogin && (!prevProviders || prevProviders.length === 0) && providers.length > 0) {\n const autoLoginProvider = providers.find(entity => entity.unique_id === autoLogin)\n\n if (autoLoginProvider) {\n openLoginWindow(loginEndpoint, loginCompleted, autoLoginProvider)\n }\n }\n }, [prevProviders, providers, autoLogin, loginEndpoint, loginCompleted])\n}\n\nexport default useAutoLogin\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Icon} from 'tocco-ui'\n\nimport ProviderButton from '../ProviderButton/ProviderButton'\nimport {StyledButtonContainer, StyledSsoError} from './StyledComponents'\nimport useAutoLogin from './useAutoLogin'\n\nconst LoginBox = ({loadProviders, autoLogin, providers = [], loginEndpoint, loginCompleted, showError}) => {\n useEffect(() => {\n loadProviders()\n }, [loadProviders])\n\n useAutoLogin({autoLogin, providers, loginEndpoint, loginCompleted})\n\n const ProviderButtons = providers.map((provider, idx) => (\n <ProviderButton key={idx} provider={provider} loginEndpoint={loginEndpoint} loginCompleted={loginCompleted} />\n ))\n\n return (\n <>\n <StyledButtonContainer>{ProviderButtons}</StyledButtonContainer>\n {showError && (\n <StyledSsoError breakWords={true}>\n <Icon icon={'times'} />\n <FormattedMessage id=\"client.sso-login.error\" />\n </StyledSsoError>\n )}\n </>\n )\n}\n\nLoginBox.propTypes = {\n loginEndpoint: PropTypes.string,\n loginCompleted: PropTypes.func.isRequired,\n loadProviders: PropTypes.func.isRequired,\n providers: PropTypes.array,\n autoLogin: PropTypes.string,\n showError: PropTypes.bool\n}\n\nexport default LoginBox\n","import LoginBox from './LoginBox'\n\nexport default LoginBox\n","export const LOAD_PROVIDERS = 'root/LOAD_PROVIDERS'\nexport const SET_PROVIDERS = 'root/SET_PROVIDERS'\nexport const LOGIN_COMPLETED = 'root/LOGIN_COMPLETED'\nexport const SET_SHOW_ERROR = 'root/SET_SHOW_ERROR'\n\nexport const loadProviders = () => ({\n type: LOAD_PROVIDERS\n})\n\nexport const setProviders = providers => ({\n type: SET_PROVIDERS,\n payload: {\n providers\n }\n})\n\nexport const loginCompleted = result => ({\n type: LOGIN_COMPLETED,\n payload: {\n result\n }\n})\n\nexport const setShowError = showError => ({\n type: SET_SHOW_ERROR,\n payload: {\n showError\n }\n})\n","import {connect} from 'react-redux'\n\nimport LoginBox from '../components/LoginBox'\nimport * as actions from '../modules/actions'\n\nconst mapActionCreators = {\n loadProviders: actions.loadProviders,\n loginCompleted: actions.loginCompleted\n}\n\nconst mapStateToProps = state => {\n return {\n providers: state.ssoLogin.providers,\n loginEndpoint: state.input.ssoLoginEndpoint,\n autoLogin: state.input.autoLogin,\n showError: state.ssoLogin.showError\n }\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(LoginBox)\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_PROVIDERS]: reducerUtil.singleTransferReducer('providers'),\n [actions.SET_SHOW_ERROR]: reducerUtil.singleTransferReducer('showError')\n}\n\nconst initialState = {\n providers: [],\n showError: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _reduce from 'lodash/reduce'\n\nexport const transformProviderEntities = response =>\n response.data.map(provider =>\n _reduce(\n provider.paths,\n (result, value, key) => {\n return {...result, [key]: value.value}\n },\n {}\n )\n )\n","export const VisibilityStatus = {\n loginFailed: 'login_failed',\n registrationStarted: 'registration_started'\n}\n","import {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {externalEvents, rest, appFactory} from 'tocco-app-extensions'\nimport {request, queryString, env} from 'tocco-util'\n\nimport {transformProviderEntities} from '../utils/providers'\nimport {VisibilityStatus} from '../visibilityStatus'\nimport * as actions from './actions'\n\nconst entityName = 'Openid_provider'\n\nexport const intlSelector = state => state.intl\nexport const inputSelector = state => state.input\n\nexport function* loadProviders() {\n const intl = yield select(intlSelector)\n\n const query = {\n paths: ['unique_id', 'label', 'button_primary_color', 'button_secondary_color', 'button_icon', 'button_label'],\n conditions: {locale: intl.locale, active: true}\n }\n\n const entities = yield call(rest.fetchAllEntities, entityName, query, {method: 'GET'}, transformProviderEntities)\n yield put(actions.setProviders(entities))\n}\n\nexport function* doLoginRequest() {\n yield call(request.executeRequest, 'login', {\n method: 'GET',\n headers: new Headers({\n 'X-Business-Unit': env.getBusinessUnit()\n })\n })\n}\n\nexport function* getRedirectUrl() {\n const {_redirect_url: queryUrl} = yield call(queryString.fromQueryString, window.location.search)\n const {redirectUrl: inputUrl} = yield select(inputSelector)\n\n return queryUrl || inputUrl\n}\n\nexport function* handleRedirect() {\n const redirectUrl = yield call(getRedirectUrl)\n if (redirectUrl) {\n window.location.href = redirectUrl\n }\n}\n\nexport function* loginCompleted({payload: {result}}) {\n const {appContext} = yield select(inputSelector)\n\n yield call(appFactory.reinitialiseCache)\n\n if (appContext?.embedType === 'widget') {\n if (result?.successful) {\n // call /nice2/login to notify WordPress Tocco Plugin that user has logged in\n yield call(doLoginRequest)\n yield call(handleRedirect)\n } else if (result?.registration) {\n yield put(externalEvents.fireVisibilityStatusChangeEvent([VisibilityStatus.registrationStarted]))\n } else {\n yield put(externalEvents.fireVisibilityStatusChangeEvent([VisibilityStatus.loginFailed]))\n }\n }\n\n yield put(actions.setShowError(!result?.successful && !result?.registration))\n yield put(externalEvents.fireExternalEvent('loginCompleted', result))\n}\n\nexport default function* mainSagas() {\n yield all([takeLatest(actions.LOAD_PROVIDERS, loadProviders), takeLatest(actions.LOGIN_COMPLETED, loginCompleted)])\n}\n","import ssoLogin from './reducer'\nimport rootSaga from './sagas'\nimport * as sagasUtils from './sagasUtils'\n\nexport default {\n ssoLogin\n}\n\nconst sagas = [rootSaga]\nexport {sagas, sagasUtils}\n","import PropTypes from 'prop-types'\nimport {appFactory, externalEvents} from 'tocco-app-extensions'\nimport {appContext, reducer as reducerUtil, env, consoleLogger} from 'tocco-util'\n\nimport LoginBoxContainer from './containers/LoginBoxContainer'\nimport reducers, {sagas, sagasUtils} from './modules'\n\nconst packageName = 'sso-login'\n\nconst EXTERNAL_EVENTS = ['loginCompleted', 'onVisibilityStatusChange']\n\nconst initApp = (id, input, events, publicPath) => {\n env.setInputEnvs(input)\n\n const content = <LoginBoxContainer />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = __DEV_PACKAGE_INPUT__ || require('./dev/input.json')\n consoleLogger.log(`${packageName} - input:`, input)\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/index', () => {\n const hotReloadedReducers = require('./modules').default\n reducerUtil.hotReloadReducers(app.store, hotReloadedReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst SsoLoginApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nSsoLoginApp.propTypes = {\n ssoLoginEndpoint: PropTypes.string.isRequired,\n locale: PropTypes.string,\n autoLogin: PropTypes.bool,\n appContext: appContext.propTypes,\n businessUnit: PropTypes.string,\n redirectUrl: PropTypes.string\n}\n\nexport default SsoLoginApp\nexport const app = appFactory.createBundleableApp(packageName, initApp, SsoLoginApp)\nexport {sagasUtils}\n","import styled from 'styled-components'\nimport {declareFont, scale} from 'tocco-ui'\n\nexport const StyledContainer = styled.div`\n max-width: 420px;\n margin: 0 auto;\n`\n\nexport const StyledChoiceText = styled.div`\n ${declareFont()}\n text-align: center;\n padding: ${scale.space(0.6)} 0;\n`\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport LoginApp from 'tocco-login/src/main'\nimport SsoLoginApp from 'tocco-sso-login/src/main'\nimport {Typography} from 'tocco-ui'\n\nimport {StyledChoiceText, StyledContainer} from './StyledComponents'\n\nconst Login = ({ssoAvailable, checkSsoAvailable, locale, onLoggedIn, onSsoLogin, onRegister, fireExternalEvent}) => {\n useEffect(() => {\n checkSsoAvailable()\n }, [checkSsoAvailable])\n\n useEffect(() => {\n fireExternalEvent('onAuthenticationPage')\n }, [fireExternalEvent])\n\n return (\n <div>\n <StyledContainer>\n <Typography.H2>\n <FormattedMessage id=\"client.actions.event-registration-action.loginTitle\" />\n </Typography.H2>\n {ssoAvailable && (\n <div>\n <SsoLoginApp ssoLoginEndpoint=\"/sso\" loginCompleted={onSsoLogin} locale={locale} />\n <StyledChoiceText>\n <FormattedMessage id=\"client.actions.event-registration-action.loginChoice\" />\n </StyledChoiceText>\n </div>\n )}\n <LoginApp\n showTitle={false}\n register={onRegister}\n loginSuccess={onLoggedIn}\n locale={locale}\n entryPage=\"username\"\n />\n </StyledContainer>\n </div>\n )\n}\n\nLogin.propTypes = {\n checkSsoAvailable: PropTypes.func.isRequired,\n onLoggedIn: PropTypes.func.isRequired,\n onSsoLogin: PropTypes.func.isRequired,\n onRegister: PropTypes.func.isRequired,\n fireExternalEvent: PropTypes.func.isRequired,\n ssoAvailable: PropTypes.bool,\n locale: PropTypes.string\n}\n\nexport default Login\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {externalEvents} from 'tocco-app-extensions'\n\nimport {checkSsoAvailable} from '../../modules/eventRegistrationAction/actions'\nimport Login from './Login'\n\nconst mapActionCreators = {\n checkSsoAvailable,\n fireExternalEvent: externalEvents.fireExternalEvent\n}\n\nconst mapStateToProps = state => ({\n ssoAvailable: state.eventRegistrationAction.ssoAvailable,\n locale: state.intl.locale\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Login))\n","import Login from './LoginContainer'\n\nexport default Login\n","import {form} from 'tocco-app-extensions'\nimport {remoteLogger} from 'tocco-util'\n\nconst getPrefixedPath = key => `eventQuestion_${key}`\n\nconst getEventQuestionType = eventQuestion => eventQuestion.paths.relEvent_question_type.value.paths.unique_id.value\nconst getEventQuestionEventKey = eventQuestion => eventQuestion.paths.relEvent.value.key\n\nexport const mapQuestionToPseudoField = eventQuestion => {\n const label = eventQuestion.paths.label.value\n const mandatory = eventQuestion.paths.mandatory.value\n const path = getPrefixedPath(eventQuestion.key)\n const type = getEventQuestionType(eventQuestion)\n\n const choiceOptions = eventQuestion.paths.relRegistration_answer_option.value\n .sort((a, b) => a.paths.sorting.value - b.paths.sorting.value)\n .map(o => form.createChoiceOption(o.key, o.paths.answer.value, false))\n\n switch (type) {\n case 'text_single_line':\n return form.createStringField(path, '', label, mandatory)\n case 'text_multi_line':\n return form.createTextField(path, '', label, mandatory)\n case 'single_choice':\n return form.createSingleChoiceField(path, choiceOptions, label, mandatory)\n case 'multiple_choice':\n return form.createMultipleChoiceField(path, choiceOptions, label, mandatory)\n default:\n remoteLogger.logError(`Event question type \"${type}\" is not supported`)\n }\n}\n\nexport const isEventQuestionField = fieldName => fieldName.startsWith(form.transformPath(getPrefixedPath('')))\n\nexport const shouldRenderQuestionField = (fieldName, eventKeys, questionTypeMap) => {\n const questions = Object.entries(questionTypeMap)\n .reduce((acc, [key, {eventKey}]) => [...acc, ...(eventKeys.includes(eventKey) ? [key] : [])], [])\n .map(getPrefixedPath)\n\n return questions.includes(form.transformPathBack(fieldName))\n}\n\nexport const getQuestionTypeMap = eventQuestions =>\n eventQuestions.reduce(\n (acc, eventQuestion) => ({\n ...acc,\n [eventQuestion.key]: {\n type: getEventQuestionType(eventQuestion),\n eventKey: getEventQuestionEventKey(eventQuestion)\n }\n }),\n {}\n )\n\nexport const mapQuestionsToBean = (questionTypeMap, eventKeys, pseudoFields) =>\n Object.entries(questionTypeMap)\n .filter(([_key, {eventKey}]) => eventKeys.includes(eventKey))\n .map(([key, {type}]) => ({\n key,\n type,\n value: mapPseudoFieldToQuestionValue(type, key, pseudoFields)\n }))\n\nconst mapPseudoFieldToQuestionValue = (type, key, pseudoFields) => {\n const rawValue = pseudoFields[getPrefixedPath(key)]\n switch (type) {\n case 'text_single_line':\n case 'text_multi_line':\n return rawValue\n case 'single_choice':\n return rawValue.options.find(o => o.checked)?.id || null\n case 'multiple_choice':\n return rawValue.options.filter(o => o.checked).map(o => o.id)\n default:\n remoteLogger.logError(`Event question type \"${type}\" is not supported`)\n }\n}\n","import {form} from 'tocco-app-extensions'\n\nconst REQUIRED = 'required'\nconst OPTIONAL = 'optional'\nconst getPrefixedPath = key => `modules_${key}`\n\nexport const getRequiredModules = modules =>\n modules.filter(m => m.paths.relEvent_relationship_type.value?.paths?.unique_id?.value === REQUIRED)\n\nexport const getOptionalModules = modules =>\n modules.filter(m => m.paths.relEvent_relationship_type.value?.paths?.unique_id?.value !== REQUIRED)\n\nexport const mapModulesToPseudoField = (label, modules, required, displays, minSelection, maxSelection) => {\n const path = getPrefixedPath(required ? REQUIRED : OPTIONAL)\n\n const choiceOptions = modules\n .sort((a, b) => a.paths.sorting.value - b.paths.sorting.value)\n .map(o => {\n const {key, model} = o.paths.relCourse.value\n return form.createChoiceOption(key, displays[model][key], required)\n })\n\n return form.createMultipleChoiceFieldWithSelection(path, choiceOptions, label, required, minSelection, maxSelection)\n}\n\nexport const mapFormValuesToModuleKeys = formValues => {\n const pseudoFields = {\n [getPrefixedPath(REQUIRED)]: formValues[form.transformPath(getPrefixedPath(REQUIRED))],\n [getPrefixedPath(OPTIONAL)]: formValues[form.transformPath(getPrefixedPath(OPTIONAL))]\n }\n return mapModulesToBean(pseudoFields)\n}\n\nexport const mapModulesToBean = pseudoFields => [\n ...mapPseudoFieldToModuleKeys(REQUIRED, pseudoFields),\n ...mapPseudoFieldToModuleKeys(OPTIONAL, pseudoFields)\n]\n\nconst mapPseudoFieldToModuleKeys = (type, pseudoFields) => {\n const rawValue = pseudoFields[getPrefixedPath(type)]\n return rawValue ? rawValue.options.filter(o => o.checked).map(o => o.id) : []\n}\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {reduxForm} from 'redux-form'\nimport {form} from 'tocco-app-extensions'\nimport {Button} from 'tocco-ui'\n\nimport {isEventQuestionField, shouldRenderQuestionField} from '../../utils/eventQuestions'\nimport {mapFormValuesToModuleKeys} from '../../utils/modules'\n\nexport const REDUX_FORM_NAME = 'event-registration-action'\n\nconst RegisterForm = ({\n formDefinition,\n formScope,\n formValues,\n submitting,\n valid,\n currentUser,\n register,\n fireExternalEvent,\n eventKey,\n questionTypeMap,\n intl\n}) => {\n const formEventProps = form.hooks.useFormEvents({submitForm: register})\n\n useEffect(() => {\n fireExternalEvent('onRegisterPage')\n }, [fireExternalEvent])\n\n const shouldRenderField = fieldName => {\n if (isEventQuestionField(fieldName)) {\n const eventKeys = mapFormValuesToModuleKeys(formValues)\n return shouldRenderQuestionField(fieldName, [eventKey, ...eventKeys], questionTypeMap)\n }\n return true\n }\n\n return (\n <form {...formEventProps}>\n <form.FormBuilder\n entity={currentUser}\n formName={REDUX_FORM_NAME}\n formDefinition={formDefinition}\n formValues={formValues}\n fieldMappingType=\"editable\"\n mode={formScope}\n beforeRenderField={shouldRenderField}\n />\n <Button\n disabled={submitting || !valid}\n label={intl.formatMessage({id: 'client.actions.event-registration-action.submit'})}\n type=\"submit\"\n look=\"raised\"\n ink=\"primary\"\n />\n </form>\n )\n}\n\nRegisterForm.propTypes = {\n formDefinition: PropTypes.object,\n formScope: PropTypes.string,\n currentUser: PropTypes.object,\n formValues: PropTypes.object,\n submitting: PropTypes.bool,\n valid: PropTypes.bool,\n register: PropTypes.func.isRequired,\n fireExternalEvent: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n questionTypeMap: PropTypes.object,\n eventKey: PropTypes.string.isRequired\n}\n\nexport default reduxForm({form: REDUX_FORM_NAME, destroyOnUnmount: false})(RegisterForm)\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {getFormValues} from 'redux-form'\nimport {form, externalEvents} from 'tocco-app-extensions'\n\nimport {register} from '../../modules/eventRegistrationAction/actions'\nimport RegisterForm, {REDUX_FORM_NAME} from './RegisterForm'\n\nconst mapActionCreators = {\n register,\n fireExternalEvent: externalEvents.fireExternalEvent\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.eventRegistrationAction.formDefinition,\n formScope: state.eventRegistrationAction.formScope,\n currentUser: state.eventRegistrationAction.currentUser,\n loaded: state.eventRegistrationAction.loaded,\n questionTypeMap: state.eventRegistrationAction.questionTypeMap,\n formValues: getFormValues(REDUX_FORM_NAME)(state),\n formErrors: form.selectors.getFormErrors(REDUX_FORM_NAME)(state)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(RegisterForm))\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {form} from 'tocco-app-extensions'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\nimport {LoadMask} from 'tocco-ui'\n\nimport RegisterForm from '../RegisterForm'\n\nconst EventRegistrationAction = ({\n formDefinition,\n eventFormName,\n fieldDefinitions,\n formScope,\n formInitialValues,\n loaded,\n loadFormInfo,\n eventKey\n}) => {\n useEffect(() => {\n loadFormInfo()\n }, [loadFormInfo])\n\n const handleAsyncValidate = form.hooks.useAsyncValidation({\n formInitialValues,\n fieldDefinitions,\n formDefinition,\n mode: formScope\n })\n const handleSyncValidate = form.hooks.useSyncValidation({fieldDefinitions, formDefinition})\n\n return (\n <LoadMask required={[loaded]}>\n {eventFormName && (\n <EntityDetailApp entityName=\"Event\" formName={eventFormName} entityId={eventKey} mode=\"update\" />\n )}\n <RegisterForm\n validate={handleSyncValidate}\n asyncValidate={handleAsyncValidate}\n asyncBlurFields={fieldDefinitions ? form.getUsedPaths(fieldDefinitions) : null}\n eventKey={eventKey}\n />\n </LoadMask>\n )\n}\n\nEventRegistrationAction.propTypes = {\n loaded: PropTypes.bool,\n loadFormInfo: PropTypes.func.isRequired,\n formDefinition: PropTypes.object,\n eventFormName: PropTypes.string,\n fieldDefinitions: PropTypes.arrayOf(PropTypes.object),\n formScope: PropTypes.string,\n formInitialValues: PropTypes.object,\n intl: PropTypes.object.isRequired,\n eventKey: PropTypes.string.isRequired\n}\n\nexport default EventRegistrationAction\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {getFormInitialValues} from 'redux-form'\n\nimport {loadFormInfo} from '../../modules/eventRegistrationAction/actions'\nimport {REDUX_FORM_NAME} from '../RegisterForm'\nimport EventRegistrationActionView from './RegisterView'\n\nconst mapActionCreators = {\n loadFormInfo\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.eventRegistrationAction.formDefinition,\n eventFormName: state.eventRegistrationAction.eventFormName,\n fieldDefinitions: state.eventRegistrationAction.fieldDefinitions,\n formScope: state.eventRegistrationAction.formScope,\n loaded: state.eventRegistrationAction.loaded,\n eventKey: state.eventRegistrationAction.eventKey,\n formInitialValues: getFormInitialValues(REDUX_FORM_NAME)(state)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(EventRegistrationActionView))\n","import PropTypes from 'prop-types'\nimport {useEffect, useState} from 'react'\nimport {LoadMask} from 'tocco-ui'\n\nimport Login from '../Login'\nimport RegisterView from '../RegisterView'\n\nconst Pages = {\n Login: 'Login',\n RegisterView: 'RegisterView'\n}\n\nconst EventRegistration = ({doSessionCheck, loggedIn, setNewUserEmail}) => {\n const [page, changePage] = useState(null)\n\n useEffect(() => {\n doSessionCheck()\n }, [doSessionCheck])\n\n useEffect(() => {\n if (loggedIn === true) {\n changePage(Pages.RegisterView)\n } else if (loggedIn === false) {\n changePage(Pages.Login)\n }\n }, [loggedIn])\n\n return (\n <LoadMask required={[typeof loggedIn !== 'undefined', page !== null]}>\n {(() => {\n switch (page) {\n case Pages.RegisterView:\n return <RegisterView />\n case Pages.Login:\n default:\n return (\n <Login\n onLoggedIn={() => changePage(Pages.RegisterView)}\n onSsoLogin={({successful}) => {\n if (successful) {\n changePage(Pages.RegisterView)\n }\n }}\n onRegister={({username}) => {\n setNewUserEmail(username)\n changePage(Pages.RegisterView)\n }}\n />\n )\n }\n })()}\n </LoadMask>\n )\n}\n\nEventRegistration.propTypes = {\n setNewUserEmail: PropTypes.func.isRequired,\n doSessionCheck: PropTypes.func.isRequired,\n loggedIn: PropTypes.bool\n}\n\nexport default EventRegistration\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {login} from 'tocco-app-extensions'\n\nimport {setNewUserEmail} from '../../modules/eventRegistrationAction/actions'\nimport EventRegistration from './EventRegistration'\n\nconst mapActionCreators = {\n doSessionCheck: login.doSessionCheck,\n setNewUserEmail\n}\n\nconst mapStateToProps = state => ({\n loggedIn: state.login.loggedIn\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(EventRegistration))\n","import EventRegistration from './EventRegistrationContainer'\n\nexport default EventRegistration\n","import {selection as selectionUtil} from 'tocco-app-extensions'\nimport {action} from 'tocco-util'\n\nimport {setEventKey} from './modules/eventRegistrationAction/actions'\n\nexport const getDispatchActions = input => action.getDispatchActions(input, actionSettings)\n\nconst actionSettings = [\n {\n name: 'selection',\n action: setEventKey,\n argsFactory: input => [selectionUtil.getSingleKey(input.selection, 'Event')]\n },\n {\n name: 'eventKey',\n action: setEventKey,\n argsFactory: input => [input.eventKey]\n }\n]\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n eventKey: null,\n formDefinition: null,\n eventFormName: null,\n fieldDefinitions: null,\n formScope: null,\n currentUser: null,\n loaded: false,\n questionTypeMap: undefined,\n pseudoEntityPaths: {},\n ssoAvailable: false,\n newUserEmail: undefined\n}\n\nconst addPseudoEntityPaths = (state, {payload: {pseudoEntityPaths}}) => ({\n ...state,\n pseudoEntityPaths: {...state.pseudoEntityPaths, ...pseudoEntityPaths}\n})\n\nconst ACTION_HANDLERS = {\n [actions.SET_EVENT_KEY]: reducerUtil.singleTransferReducer('eventKey'),\n [actions.SET_FORM_DEFINITION]: reducerUtil.singleTransferReducer('formDefinition'),\n [actions.SET_EVENT_FORM_NAME]: reducerUtil.singleTransferReducer('eventFormName'),\n [actions.SET_FIELD_DEFINITIONS]: reducerUtil.singleTransferReducer('fieldDefinitions'),\n [actions.SET_FORM_SCOPE]: reducerUtil.singleTransferReducer('formScope'),\n [actions.SET_CURRENT_USER]: reducerUtil.singleTransferReducer('currentUser'),\n [actions.SET_LOADED]: reducerUtil.singleTransferReducer('loaded'),\n [actions.SET_QUESTION_TYPE_MAP]: reducerUtil.singleTransferReducer('questionTypeMap'),\n [actions.ADD_PSEUDO_ENTITY_PATHS]: addPseudoEntityPaths,\n [actions.SET_SSO_AVAILABLE]: reducerUtil.singleTransferReducer('ssoAvailable'),\n [actions.SET_NEW_USER_EMAIL]: reducerUtil.singleTransferReducer('newUserEmail')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {call} from 'redux-saga/effects'\nimport {rest} from 'tocco-app-extensions'\nimport {cache} from 'tocco-util'\n\nexport function* isSsoAvailable() {\n const modules = yield call(rest.requestSaga, 'modules')\n const ssoModuleAvailable = modules.body.modules.includes('nice.optional.sso')\n if (!ssoModuleAvailable) {\n return false\n }\n const ssoProviderCount = yield call(rest.fetchEntityCount, 'Openid_provider', {where: 'active == true'})\n return ssoProviderCount > 0\n}\n\nexport function* checkSsoAvailable() {\n const cachedSsoAvailable = cache.getLongTerm('server', 'ssoAvailable')\n if (cachedSsoAvailable !== undefined) {\n return cachedSsoAvailable\n } else {\n const ssoAvailable = yield call(isSsoAvailable)\n cache.addLongTerm('server', 'ssoAvailable', ssoAvailable)\n return ssoAvailable\n }\n}\n","import {actions as formActions, getFormValues} from 'redux-form'\nimport {all, call, put, select, takeLatest} from 'redux-saga/effects'\nimport {appFactory, rest, form, display, externalEvents, notification} from 'tocco-app-extensions'\nimport {sagasUtils} from 'tocco-sso-login/src/main'\nimport {api, env, validation} from 'tocco-util'\n\nimport {REDUX_FORM_NAME} from '../../components/RegisterForm'\nimport {getDispatchActions} from '../../input'\nimport {mapQuestionToPseudoField, mapQuestionsToBean, getQuestionTypeMap} from '../../utils/eventQuestions'\nimport {getOptionalModules, getRequiredModules, mapModulesToBean, mapModulesToPseudoField} from '../../utils/modules'\nimport {mapTermInfoToPseudoField} from '../../utils/termInfos'\nimport * as actions from './actions'\n\nexport const eventRegistrationActionSelector = state => state.eventRegistrationAction\nexport const textResourceSelector = (state, key) => state.intl.messages[key]\n\nexport default function* sagas() {\n yield all([\n takeLatest(appFactory.INPUT_CHANGED, inputChanged),\n takeLatest(actions.LOAD_FORM_INFO, loadFormInfo),\n takeLatest(actions.REGISTER, register),\n takeLatest(actions.CHECK_SSO_AVAILABLE, checkSsoAvailable)\n ])\n}\n\nexport function* inputChanged({payload}) {\n const {input} = payload\n\n const derivedActions = getDispatchActions(input)\n yield all(derivedActions.map(action => put(action)))\n}\n\nexport function* loadFormInfo() {\n const formInfo = yield call(loadFormDefinition)\n yield call(loadCurrentUser, formInfo)\n yield put(actions.setLoaded(true))\n}\n\nexport function* loadFormDefinition() {\n const {eventKey} = yield select(eventRegistrationActionSelector)\n const widgetConfigKey = env.getWidgetConfigKey()\n const {\n body: {formName, formScope, eventFormName, agbInfo, privacyProtectionInfo}\n } = yield call(rest.requestSaga, `widgets/eventRegistration/${eventKey}/registrationForm`, {\n method: 'GET',\n queryParams: {\n _widget_key: widgetConfigKey\n }\n })\n const formDefinition = yield call(fetchForm, formName, formScope, eventKey)\n\n const modules = yield call(loadModules, eventKey)\n const moduleEventKeys = modules.map(m => m.paths.relCourse.value.key)\n\n const modulesPseudoFormFields = yield call(getModulesPseudoFormFields, modules)\n const questionsPseudoFormFields = yield call(getQuestionsPseudoFormFields, eventKey, moduleEventKeys)\n const termsPseudoFormFields = yield call(getTermsPseudoFormFields, agbInfo, privacyProtectionInfo)\n\n let newFormDefinition = form.replaceBoxChildren(\n formDefinition,\n 'never_hide_event_question_box',\n questionsPseudoFormFields\n )\n newFormDefinition = form.replaceBoxChildren(newFormDefinition, 'never_hide_modules_box', modulesPseudoFormFields)\n newFormDefinition = form.replaceBoxChildren(newFormDefinition, 'never_hide_terms_box', termsPseudoFormFields)\n\n const fieldDefinitions = yield call(form.getFieldDefinitions, newFormDefinition)\n\n yield all([\n put(actions.setFormDefinition(newFormDefinition)),\n put(actions.setEventFormName(eventFormName)),\n put(actions.setFormScope(formScope)),\n put(actions.setFieldDefinitions(fieldDefinitions))\n ])\n return {formDefinition: newFormDefinition, fieldDefinitions, formName, formScope}\n}\n\nexport function* fetchForm(formName, formScope, id) {\n const formDefinition = yield call(rest.fetchForm, formName, formScope)\n return {\n ...formDefinition,\n createEndpoint: `widgets/eventRegistration/${id}/validate`,\n updateEndpoint: `widgets/eventRegistration/${id}/validate`\n }\n}\n\nexport function* getQuestionsPseudoFormFields(eventKey, moduleEventKeys) {\n const query = {\n where: `IN(relEvent.pk, ${[eventKey, ...moduleEventKeys].join(', ')}) and published`,\n paths: [\n 'label',\n 'mandatory',\n 'relRegistration_answer_option.answer',\n 'relRegistration_answer_option.sorting',\n 'relEvent_question_type.unique_id',\n 'relEvent'\n ]\n }\n\n const eventQuestions = yield call(rest.fetchAllEntities, 'Event_question', query, {method: 'GET'})\n yield put(actions.setQuestionTypeMap(getQuestionTypeMap(eventQuestions)))\n const questionsPseudoFields = eventQuestions.map(eventQuestion => mapQuestionToPseudoField(eventQuestion))\n yield put(actions.addPseudoEntityPaths(form.getMergedEntityPaths(questionsPseudoFields)))\n return questionsPseudoFields.map(f => f.formField)\n}\n\nexport function* loadModuleValidation() {\n const {eventKey} = yield select(eventRegistrationActionSelector)\n const paths = ['maximal_optional_modules', 'minimal_optional_modules']\n const eventEntity = yield call(rest.fetchEntity, 'Event', eventKey, {paths})\n\n const minOptionalModules = eventEntity.paths.minimal_optional_modules.value\n const maxOptionalModules = eventEntity.paths.maximal_optional_modules.value\n\n return {\n minOptionalModules,\n maxOptionalModules\n }\n}\n\nexport function* loadModules(eventKey) {\n const {query, entityName} = api.eventRegistration.getEventRelationshipModulesQuery(eventKey)\n const modules = yield call(rest.fetchAllEntities, entityName, query, {method: 'GET'})\n return modules\n}\n\nexport function* getModulesPseudoFormFields(modules) {\n const displays = yield call(rest.fetchDisplays, api.getDisplayRequest(modules.map(m => m.paths.relCourse.value)))\n\n const optionalModuleValidation = yield call(loadModuleValidation)\n\n const requiredModules = getRequiredModules(modules)\n const optionalModules = getOptionalModules(modules)\n\n const requiredLabel = yield select(textResourceSelector, 'client.actions.event-registration-action.modules.required')\n const optionalLabel = yield select(textResourceSelector, 'client.actions.event-registration-action.modules.optional')\n\n const modulesPseudoFields = [\n ...(requiredModules.length > 0\n ? [\n mapModulesToPseudoField(\n requiredLabel,\n requiredModules,\n true,\n displays,\n requiredModules.length,\n requiredModules.length\n )\n ]\n : []),\n ...(optionalModules.length > 0\n ? [\n mapModulesToPseudoField(\n optionalLabel,\n optionalModules,\n false,\n displays,\n optionalModuleValidation.minOptionalModules,\n optionalModuleValidation.maxOptionalModules\n )\n ]\n : [])\n ]\n\n yield put(actions.addPseudoEntityPaths(form.getMergedEntityPaths(modulesPseudoFields)))\n return modulesPseudoFields.map(f => f.formField)\n}\n\nexport function* getTermsPseudoFormFields(agbInfo, privacyProtectionInfo) {\n const termInfoFields = [\n {...agbInfo, key: 'agb'},\n {...privacyProtectionInfo, key: 'privacy_protection'}\n ]\n .filter(({showTerms}) => showTerms)\n .map(termInfo => mapTermInfoToPseudoField(termInfo))\n const mergedPaths = yield call(form.getMergedEntityPaths, termInfoFields)\n yield put(actions.addPseudoEntityPaths(mergedPaths))\n return termInfoFields.map(f => f.formField)\n}\n\nexport function* loadCurrentUser(formInfo) {\n const users = yield call(rest.fetchEntitiesPage, 'User', {where: 'pk == :currentUser'})\n\n const {fieldDefinitions} = formInfo\n if (users.length === 1) {\n const paths = yield call(form.getUsedPaths, fieldDefinitions, field => field.pseudoField !== true)\n const user = yield call(rest.fetchEntity, 'User', users[0].key, {paths}, {useSelectors: true})\n\n const {pseudoEntityPaths} = yield select(eventRegistrationActionSelector)\n user.paths = {\n ...user.paths,\n ...pseudoEntityPaths\n }\n\n yield all([put(actions.setCurrentUser(user)), call(setupForm, user, formInfo)])\n } else {\n yield call(setupFormForNewUser, fieldDefinitions)\n }\n}\n\nexport function* setupForm(user, {fieldDefinitions, formName, formScope}) {\n const flattenEntity = yield call(api.getFlattenEntity, user)\n\n yield call(display.enhanceEntityWithDisplayExpressions, flattenEntity, formName, fieldDefinitions, formScope)\n yield call(display.enhanceEntityWithDisplays, flattenEntity, fieldDefinitions)\n\n const formValues = yield call(form.entityToFormValues, flattenEntity, fieldDefinitions)\n\n yield put(formActions.initialize(REDUX_FORM_NAME, formValues))\n}\n\nexport function* setupFormForNewUser(fieldDefinitions) {\n const defaultValues = yield call(form.getDefaultValues, fieldDefinitions)\n const {pseudoEntityPaths, newUserEmail} = yield select(eventRegistrationActionSelector)\n const entityValues = yield call(api.getFlattenEntity, {model: 'User', paths: {...pseudoEntityPaths}})\n const formValues = yield call(\n form.entityToFormValues,\n {...entityValues, ...defaultValues, ...(newUserEmail ? {email: newUserEmail} : {})},\n fieldDefinitions\n )\n yield put(formActions.initialize(REDUX_FORM_NAME, formValues))\n}\n\nexport function* register() {\n yield put(formActions.startSubmit(REDUX_FORM_NAME))\n\n const bean = yield call(loadRegisterBean)\n const widgetConfigKey = env.getWidgetConfigKey()\n const body = {\n ...bean\n }\n\n const {eventKey} = yield select(eventRegistrationActionSelector)\n const response = yield call(rest.requestSaga, `widgets/eventRegistration/${eventKey}/register`, {\n method: 'POST',\n queryParams: {\n _widget_key: widgetConfigKey\n },\n body,\n acceptedErrorCodes: ['VALIDATION_FAILED']\n })\n if (response.status === 201) {\n yield put(externalEvents.fireExternalEvent('onSuccess'))\n } else {\n yield put(formActions.stopSubmit(REDUX_FORM_NAME))\n if (response.body.errorCode === 'VALIDATION_FAILED') {\n yield put(\n notification.toaster({\n type: 'error',\n title: 'client.component.actions.validationError',\n body: validation.getErrorCompact(response.body.errors)\n })\n )\n } else {\n yield put(externalEvents.fireExternalEvent('onError'))\n }\n }\n}\n\nexport function* loadRegisterBean() {\n const formValues = yield select(getFormValues(REDUX_FORM_NAME))\n const {fieldDefinitions, questionTypeMap, eventKey} = yield select(eventRegistrationActionSelector)\n const flatEntity = yield call(form.formValuesToFlattenEntity, formValues, fieldDefinitions)\n const splittedFlatEntity = form.splitFlattenEntity(flatEntity, fieldDefinitions)\n\n const user = yield call(api.toEntity, splittedFlatEntity.entity)\n const modules = mapModulesToBean(splittedFlatEntity.pseudoFields)\n const questions = mapQuestionsToBean(questionTypeMap, [eventKey, ...modules], splittedFlatEntity.pseudoFields)\n\n return {\n user,\n questions,\n modules\n }\n}\n\nexport function* checkSsoAvailable() {\n const ssoAvailable = yield call(sagasUtils.checkSsoAvailable)\n yield put(actions.setSsoAvailable(ssoAvailable))\n}\n","import {form} from 'tocco-app-extensions'\n\nconst getPrefixedPath = key => `termInfo_${key}`\n\nconst getTermText = (text, link) => {\n if (link) {\n return `<a target=\"_blank\" href=\"${link}\">${text}</a>`\n } else {\n return text\n }\n}\n\nexport const mapTermInfoToPseudoField = ({key, text, link, isConfirmation}) => {\n const path = getPrefixedPath(key)\n const termText = getTermText(text, link)\n\n if (isConfirmation) {\n return form.createCheckbox(path, false, termText, true, {renderHtmlInOptions: !!link})\n } else {\n return form.createDisplayField(path, termText, '')\n }\n}\n","import {reducer as form} from 'redux-form'\n\nimport eventRegistrationActionReducer from './eventRegistrationAction/reducer'\nimport eventRegistrationActionSagas from './eventRegistrationAction/sagas'\n\nexport default {\n eventRegistrationAction: eventRegistrationActionReducer,\n form\n}\n\nexport const sagas = [eventRegistrationActionSagas]\n","import PropTypes from 'prop-types'\nimport {appFactory, selection, formData, externalEvents, actionEmitter, notification, login} from 'tocco-app-extensions'\nimport {reducer as reducerUtil, appContext} from 'tocco-util'\n\nimport EventRegistration from './components/EventRegistration'\nimport {getDispatchActions} from './input'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'event-registration-action'\nconst EXTERNAL_EVENTS = ['onSuccess', 'onError', 'onAuthenticationPage', 'onRegisterPage', 'emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <EventRegistration />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n formData.addToStore(store, () => ({}))\n actionEmitter.addToStore(store, state => state.input.emitAction)\n const handleNotifications = !events?.emitAction\n notification.addToStore(store, handleNotifications)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n login.addToStore(store)\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: getDispatchActions(input),\n publicPath,\n textResourceModules: ['component', 'common', 'actions', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst EventRegistrationAction = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nEventRegistrationAction.propTypes = {\n appContext: appContext.propTypes.isRequired,\n selection: selection.propType,\n eventKey: PropTypes.string\n}\n\nexport default EventRegistrationAction\n","export const INITIALIZE_TEMPLATES = 'templateValues/INITIALIZE_TEMPLATES'\nexport const SET_FORM = 'templateValues/SET_FORM'\nexport const SET_INITIALIZED = 'templateValues/SET_INITIALIZED'\nexport const FETCH_TEMPLATES = 'templateValues/FETCH_TEMPLATES'\nexport const SET_TEMPLATE_OPTIONS = 'templateValues/SET_TEMPLATE_OPTIONS'\nexport const SET_TEMPLATE_VALUES = 'templateValues/SET_TEMPLATE_VALUES'\nexport const SET_FIELD_DEFINITIONS = 'templateValues/SET_FIELD_DEFINITIONS'\n\nexport const initializeTemplates = (templateEntityName, formName, selection, customTemplateFields, defaultValues) => ({\n type: INITIALIZE_TEMPLATES,\n payload: {templateEntityName, formName, selection, customTemplateFields, defaultValues}\n})\n\nexport const setForm = formDefinition => ({\n type: SET_FORM,\n payload: {formDefinition}\n})\n\nexport const setInitialized = initialized => ({\n type: SET_INITIALIZED,\n payload: {initialized}\n})\n\nexport const fetchTemplates = (templateEntityName, selection, customTemplateFields) => ({\n type: FETCH_TEMPLATES,\n payload: {templateEntityName, selection, customTemplateFields}\n})\n\nexport const setTemplateOptions = templateOptions => ({\n type: SET_TEMPLATE_OPTIONS,\n payload: {templateOptions}\n})\n\nexport const setValuesFromTemplate = (templateEntityName, template, customTemplateFields) => ({\n type: SET_TEMPLATE_VALUES,\n payload: {templateEntityName, template, customTemplateFields}\n})\n\nexport const setFieldDefinitions = fieldDefinitions => ({\n type: SET_FIELD_DEFINITIONS,\n payload: {\n fieldDefinitions\n }\n})\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_INITIALIZED]: reducerUtil.singleTransferReducer('initialized'),\n [actions.SET_FORM]: reducerUtil.singleTransferReducer('formDefinition'),\n [actions.SET_FIELD_DEFINITIONS]: reducerUtil.singleTransferReducer('fieldDefinitions'),\n [actions.SET_TEMPLATE_OPTIONS]: reducerUtil.singleTransferReducer('templateOptions'),\n [actions.SET_TEMPLATE_VALUES]: reducerUtil.mappingTransferReducer('template', 'selectedTemplate')\n}\n\nconst initialState = {\n formDefinition: null,\n fieldDefinitions: null,\n templateOptions: [],\n selectedTemplate: null,\n initialized: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {Select, Panel, Typography, StatedValue, Layout} from 'tocco-ui'\n\nconst TemplateSelect = ({\n templateEntityName,\n templateOptions,\n setValuesFromTemplate,\n selectedTemplate,\n customTemplateFields,\n intl\n}) => {\n return (\n <Layout.Container>\n <Panel.Wrapper isFramed={true} isOpen={true}>\n <Panel.Header>\n <Typography.H4>\n <FormattedMessage id=\"client.rest.action.template\" />\n </Typography.H4>\n </Panel.Header>\n <Panel.Body>\n <StatedValue\n label={intl.formatMessage({id: `client.entities.${templateEntityName}`})}\n hasValue={!!selectedTemplate}\n >\n <Select\n options={templateOptions}\n onChange={value => setValuesFromTemplate(templateEntityName, value, customTemplateFields)}\n value={selectedTemplate}\n />\n </StatedValue>\n </Panel.Body>\n </Panel.Wrapper>\n </Layout.Container>\n )\n}\n\nTemplateSelect.propTypes = {\n templateEntityName: PropTypes.string.isRequired,\n templateOptions: PropTypes.arrayOf(\n PropTypes.shape({\n display: PropTypes.string,\n key: PropTypes.string\n })\n ),\n setValuesFromTemplate: PropTypes.func.isRequired,\n selectedTemplate: PropTypes.shape({\n display: PropTypes.string,\n key: PropTypes.string\n }),\n customTemplateFields: PropTypes.objectOf(PropTypes.func),\n intl: PropTypes.object.isRequired\n}\n\nexport default TemplateSelect\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {setValuesFromTemplate} from '../modules/actions'\nimport TemplateSelect from './TemplateSelect'\n\nconst mapActionCreators = {\n setValuesFromTemplate\n}\n\nconst mapStateToProps = state => ({\n templateOptions: state.templateValues.templateOptions,\n selectedTemplate: state.templateValues.selectedTemplate\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(TemplateSelect))\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {reduxForm} from 'redux-form'\n\nimport form from '../../form'\nimport selectionPropType from '../../selection'\nimport TemplateSelect from './TemplateSelectContainer'\n\nexport const REDUX_FORM_NAME = 'template'\n\nconst TemplateForm = ({\n templateEntityName,\n formName,\n formDefinition,\n initializeTemplates,\n customTemplateFields = {},\n defaultValues = {},\n selection\n}) => {\n // run only once on mount\n useEffect(() => {\n initializeTemplates(templateEntityName, formName, selection, customTemplateFields, defaultValues)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n if (formDefinition) {\n return (\n <>\n <TemplateSelect templateEntityName={templateEntityName} customTemplateFields={customTemplateFields} />\n\n <form.FormBuilder\n entity={undefined}\n formName={formName}\n formDefinition={formDefinition}\n fieldMappingType={'editable'}\n mode={'create'}\n />\n </>\n )\n } else {\n return null\n }\n}\n\nTemplateForm.propTypes = {\n templateEntityName: PropTypes.string.isRequired,\n formName: PropTypes.string.isRequired,\n formDefinition: PropTypes.object,\n initializeTemplates: PropTypes.func.isRequired,\n customTemplateFields: PropTypes.objectOf(PropTypes.func),\n defaultValues: PropTypes.object,\n selection: selectionPropType.propType\n}\n\nexport default reduxForm({form: REDUX_FORM_NAME, destroyOnUnmount: false})(TemplateForm)\n","import _isFunction from 'lodash/isFunction'\nimport {actions as formActions, getFormValues} from 'redux-form'\nimport {all, call, put, takeLatest, select} from 'redux-saga/effects'\nimport {api} from 'tocco-util'\n\nimport display from '../../display'\nimport form from '../../form'\nimport rest from '../../rest'\nimport {REDUX_FORM_NAME} from '../components/TemplateForm'\nimport * as actions from './actions'\n\nexport const initializedSelector = state => state.templateValues.initialized\nexport const formDefinitionSelector = state => state.templateValues.formDefinition\nexport const fieldDefinitionSelector = state => state.templateValues.fieldDefinitions\nexport const selectedTemplateSelector = state => state.templateValues.selectedTemplate\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.INITIALIZE_TEMPLATES, initialize),\n takeLatest(actions.FETCH_TEMPLATES, fetchTemplates),\n takeLatest(actions.SET_TEMPLATE_VALUES, setTemplateValues)\n ])\n}\n\nexport function* initialize({payload}) {\n const currentFormDefinition = yield select(formDefinitionSelector)\n if (!currentFormDefinition) {\n const {formName, defaultValues, customTemplateFields} = payload\n const formDefinition = yield call(rest.fetchForm, formName, 'detail')\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition)\n yield put(actions.setFieldDefinitions(fieldDefinitions))\n yield put(actions.setForm(formDefinition))\n\n yield put(formActions.initialize(REDUX_FORM_NAME))\n\n yield call(setFormValues, defaultValues, fieldDefinitions, customTemplateFields)\n yield call(fetchTemplates, {payload})\n }\n}\n\nexport function* fetchTemplates({payload: {templateEntityName, selection, customTemplateFields}}) {\n const {\n body: {templates, defaultTemplate}\n } = yield call(rest.requestSaga, `templates/${templateEntityName}`, {\n method: 'POST',\n body: selection\n })\n const templateOptions = templates.map(responseTemplateTransformer(templateEntityName))\n yield put(actions.setTemplateOptions(templateOptions))\n\n const selectedTemplate = yield select(selectedTemplateSelector)\n if (!selectedTemplate && defaultTemplate) {\n yield put(\n actions.setValuesFromTemplate(\n templateEntityName,\n responseTemplateTransformer(templateEntityName)(defaultTemplate),\n customTemplateFields\n )\n )\n } else {\n yield put(actions.setInitialized(true))\n }\n}\n\nconst responseTemplateTransformer = templateEntityName => template => ({\n display: template.label,\n key: template.key,\n model: templateEntityName\n})\n\nexport function* setTemplateValues({payload: {templateEntityName, template, customTemplateFields}}) {\n if (template) {\n const fieldDefinitions = yield select(fieldDefinitionSelector)\n const paths = [...fieldDefinitions.map(field => field.id), ...Object.keys(customTemplateFields)]\n const templateValues = yield call(rest.fetchEntity, templateEntityName, template.key, {paths})\n const flattenedValues = yield call(api.getFlattenEntity, templateValues)\n yield call(setFormValues, flattenedValues, fieldDefinitions, customTemplateFields)\n } else {\n Object.values(customTemplateFields).forEach(f => f(null))\n }\n\n const initialized = yield select(initializedSelector)\n if (!initialized) {\n yield put(actions.setInitialized(true))\n }\n}\n\nexport function* setFormValues(values, fieldDefinitions, customTemplateFields) {\n yield call(display.enhanceEntityWithDisplays, values, fieldDefinitions)\n\n const formValues = yield call(form.entityToFormValues, values, fieldDefinitions)\n for (const [fieldName, fieldValue] of Object.entries(formValues).filter(([, value]) => !!value)) {\n if (_isFunction(customTemplateFields[fieldName])) {\n customTemplateFields[fieldName](fieldValue)\n } else {\n yield put(formActions.change(REDUX_FORM_NAME, fieldName, fieldValue))\n }\n }\n}\n\nexport function* getValues() {\n const formValues = yield select(getFormValues(REDUX_FORM_NAME))\n const fieldDefinitions = yield select(fieldDefinitionSelector)\n return yield call(form.formValuesToFlattenEntity, formValues, fieldDefinitions)\n}\n","import {connect} from 'react-redux'\n\nimport syncValidation from '../../form/syncValidation'\nimport {initializeTemplates} from '../modules/actions'\nimport TemplateForm from './TemplateForm'\n\nconst mapActionCreators = {\n initializeTemplates\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.templateValues.formDefinition,\n validate: state.templateValues.fieldDefinitions\n ? syncValidation(state.templateValues.fieldDefinitions, state.templateValues.formDefinition)\n : () => ({})\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(TemplateForm)\n","import addToStore from './addToStore'\nimport {REDUX_FORM_NAME as reduxFormName} from './components/TemplateForm'\nimport TemplateForm from './components/TemplateFormContainer'\nimport {getValues} from './modules/sagas'\n\nexport default {\n TemplateForm,\n reduxFormName,\n getFormValues: getValues,\n addToStore\n}\n","import {reducer as form} from 'redux-form'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport reducer from './modules/reducer'\nimport sagas from './modules/sagas'\n\nexport default store => {\n reducerUtil.injectReducers(store, {templateValues: reducer})\n reducerUtil.injectReducers(store, {form})\n store.sagaMiddleware.run(sagas)\n}\n","export const LOAD_FORM_DATA = 'exportAction/LOAD_FORM_DATA'\nexport const SET_AVAILABLE_COLUMNS = 'exportAction/SET_AVAILABLE_COLUMNS'\nexport const SET_DEFAULT_COLUMNS = 'exportAction/SET_DEFAULT_COLUMNS'\nexport const SET_TEMPLATE_COLUMNS = 'exportAction/SET_TEMPLATE_COLUMNS'\nexport const SET_DEFAULT_VALUES = 'exportAction/SET_DEFAULT_VALUES'\nexport const RUN_EXPORT = 'exportAction/RUN_EXPORT'\nexport const HANDLE_TEMPLATE_CHANGE = 'exportAction/HANDLE_TEMPLATE_CHANGE'\n\nexport const loadFormData = selection => ({\n type: LOAD_FORM_DATA,\n payload: {selection}\n})\n\nexport const setDefaultValues = defaultValues => ({\n type: SET_DEFAULT_VALUES,\n payload: {\n defaultValues\n }\n})\n\nexport const setAvailableColumns = availableColumns => ({\n type: SET_AVAILABLE_COLUMNS,\n payload: {\n availableColumns\n }\n})\n\nexport const setDefaultColumns = defaultColumns => ({\n type: SET_DEFAULT_COLUMNS,\n payload: {\n defaultColumns\n }\n})\n\nexport const setTemplateColumns = templateColumns => ({\n type: SET_TEMPLATE_COLUMNS,\n payload: {\n templateColumns\n }\n})\n\nexport const runExport = columns => ({\n type: RUN_EXPORT,\n payload: {\n columns\n }\n})\n\nexport const handleTemplateChange = text => ({\n type: HANDLE_TEMPLATE_CHANGE,\n payload: {\n text\n }\n})\n","import styled from 'styled-components'\nimport {scale, StyledButton, theme} from 'tocco-ui'\n\nexport const StyledButtonWrapper = styled.div`\n position: sticky;\n bottom: 0;\n padding-top: ${scale.space(0)};\n background-color: ${theme.color('paper')};\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n","import PropTypes from 'prop-types'\nimport {useEffect, useState} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {templateValues, selection as selectionPropType} from 'tocco-app-extensions'\nimport {Button, ColumnPicker, LoadMask} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from './StyledComponents'\n\nconst Export = ({\n selection,\n intl,\n availableColumns,\n loadFormData,\n defaultValues,\n runExport,\n handleTemplateChange,\n templatesInitialized,\n formValid\n}) => {\n const [columns, setColumns] = useState(availableColumns)\n useEffect(() => {\n loadFormData(selection)\n }, [loadFormData, selection])\n\n useEffect(() => {\n setColumns(availableColumns)\n }, [availableColumns])\n\n return (\n <LoadMask required={[defaultValues]}>\n <templateValues.TemplateForm\n templateEntityName=\"Export_template\"\n formName=\"Export_template_action\"\n selection={selection}\n customTemplateFields={{\n text: value => handleTemplateChange(value)\n }}\n defaultValues={defaultValues}\n />\n\n <LoadMask required={[columns, templatesInitialized]}>\n <ColumnPicker intl={intl} columns={columns} onColumnsChange={setColumns} dndEnabled={true} />\n <StyledButtonWrapper>\n <Button onClick={() => runExport(columns)} ink=\"primary\" look=\"raised\" disabled={!formValid}>\n <FormattedMessage id=\"client.actions.export.form.generate\" />\n </Button>\n </StyledButtonWrapper>\n </LoadMask>\n </LoadMask>\n )\n}\n\nExport.propTypes = {\n selection: selectionPropType.propType,\n intl: PropTypes.object.isRequired,\n formValid: PropTypes.bool.isRequired,\n availableColumns: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n hidden: PropTypes.bool\n })\n ),\n loadFormData: PropTypes.func.isRequired,\n runExport: PropTypes.func.isRequired,\n defaultValues: PropTypes.object,\n handleTemplateChange: PropTypes.func.isRequired,\n templatesInitialized: PropTypes.bool\n}\n\nexport default Export\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {isValid} from 'redux-form'\nimport {templateValues} from 'tocco-app-extensions'\n\nimport {loadFormData, runExport, handleTemplateChange} from '../modules/export/actions'\nimport Export from './Export'\n\nconst mapActionCreators = {\n loadFormData,\n runExport,\n handleTemplateChange\n}\n\nconst mapStateToProps = state => ({\n availableColumns: state.exportAction.availableColumns,\n defaultValues: state.exportAction.defaultValues,\n selection: state.input.selection,\n templatesInitialized: state.templateValues.initialized,\n formValid: isValid(templateValues.reduxFormName)(state)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Export))\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_AVAILABLE_COLUMNS]: reducerUtil.singleTransferReducer('availableColumns'),\n [actions.SET_DEFAULT_COLUMNS]: reducerUtil.singleTransferReducer('defaultColumns'),\n [actions.SET_TEMPLATE_COLUMNS]: reducerUtil.singleTransferReducer('templateColumns'),\n [actions.SET_DEFAULT_VALUES]: reducerUtil.singleTransferReducer('defaultValues')\n}\n\nconst initialState = {\n availableColumns: null,\n defaultColumns: null,\n templateColumns: null,\n defaultValues: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _get from 'lodash/get'\nimport _intersectionBy from 'lodash/intersectionBy'\nimport _unionBy from 'lodash/unionBy'\nimport {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {rest, templateValues, externalEvents} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nexport const selectionSelector = state => state.input.selection\nexport const availableColumnsSelector = state => state.exportAction.availableColumns\nexport const defaultColumnsSelector = state => state.exportAction.defaultColumns\nexport const templateColumnsSelector = state => state.exportAction.templateColumns\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.LOAD_FORM_DATA, loadFormData),\n takeLatest(actions.RUN_EXPORT, runExport),\n takeLatest(actions.HANDLE_TEMPLATE_CHANGE, handleTemplateChange),\n takeLatest(actions.SET_DEFAULT_COLUMNS, calculateAvailableColumns),\n takeLatest(actions.SET_TEMPLATE_COLUMNS, calculateAvailableColumns)\n ])\n}\n\nexport function* loadFormData({payload: {selection}}) {\n const {body: formData} = yield call(rest.requestSaga, 'action/export/formData', {\n method: 'POST',\n body: selection\n })\n\n yield call(setColumns, actions.setDefaultColumns, formData.columns)\n yield put(actions.setDefaultValues(formData.defaultValues))\n}\n\nexport function* runExport({payload: {columns}}) {\n const selectedPaths = columns\n .filter(column => !column.hidden)\n .reduce((acc, column) => ({...acc, [column.id]: column.label}), {})\n const selection = yield select(selectionSelector)\n const formValues = yield call(templateValues.getFormValues)\n const exportData = {\n paths: selectedPaths,\n printFieldNames: _get(formValues, 'print_field_names', false),\n languageKey: _get(formValues, ['relCorrespondence_language', 'key']),\n formatKey: _get(formValues, ['relExport_format', 'key']),\n filename: _get(formValues, 'filename'),\n archive: _get(formValues, 'archive', false)\n }\n yield call(rest.requestSaga, 'action/export', {\n method: 'POST',\n body: {\n selection,\n params: {background: true},\n additionalProperties: exportData\n }\n })\n // close action without message, notification gets handled over websocket\n yield put(externalEvents.fireExternalEvent('onSuccess', {title: null}))\n}\n\nexport function* handleTemplateChange({payload: {text}}) {\n if (text) {\n const selection = yield select(selectionSelector)\n const {body: templatePaths} = yield call(rest.requestSaga, 'action/export/templatePaths', {\n method: 'POST',\n body: {\n entityName: selection.entityName,\n text\n }\n })\n yield call(setColumns, actions.setTemplateColumns, templatePaths.columns)\n } else {\n yield put(actions.setTemplateColumns(null))\n }\n}\n\nfunction* setColumns(actionCreator, columns) {\n yield put(\n actionCreator(\n columns.map(column => ({\n id: column.fieldName,\n label: column.label,\n hidden: !column.selected\n }))\n )\n )\n}\n\nexport function* calculateAvailableColumns() {\n const availableColumns = yield select(availableColumnsSelector)\n const defaultColumns = yield select(defaultColumnsSelector)\n const templateColumns = yield select(templateColumnsSelector)\n\n if (templateColumns) {\n const allColumns = _unionBy(\n templateColumns,\n defaultColumns.map(column => ({\n ...column,\n hidden: true\n })),\n column => column.id\n )\n yield put(actions.setAvailableColumns(allColumns))\n } else if (availableColumns) {\n const selectedColumns = _intersectionBy(availableColumns, defaultColumns, column => column.id)\n yield put(actions.setAvailableColumns(selectedColumns))\n } else {\n yield put(actions.setAvailableColumns(defaultColumns))\n }\n}\n","import exportAction, {sagas as exportSagas} from './export'\n\nexport default {\n exportAction\n}\n\nexport const sagas = [exportSagas]\n","import PropTypes from 'prop-types'\nimport {appFactory, formData, templateValues, selection, externalEvents} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport Export from './components/ExportContainer'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'export'\n\nconst EXTERNAL_EVENTS = ['onSuccess']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <Export />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n formData.addToStore(store, () => ({}))\n templateValues.addToStore(store)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['actions', 'entities', 'entity-list', 'client', 'component', 'common', 'rest', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst ExportApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nExportApp.propTypes = {\n selection: selection.propType.isRequired,\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {})\n}\n\nexport default ExportApp\n","import {lazy} from 'react'\nimport {actions} from 'tocco-app-extensions'\n\nconst actionMap = {\n 'input-edit-info': lazy(() => import(/* webpackChunkName: \"actions\" */ './actions/InputEditInfo'))\n}\n\nconst LazyAction = actions.actionFactory(actionMap)\n\nexport default LazyAction\n","export const INITIALIZE_SEARCH = 'inputEditSearch/INITIALIZE_SEARCH'\nexport const SET_FORM = 'inputEditSearch/SET_FORM'\nexport const SET_SEARCH_QUERIES = 'inputEditSearch/SET_SEARCH_QUERIES'\nexport const SET_INITIALIZED = 'inputEditSearch/SET_INITIALIZED'\n\nexport const initializeSearch = () => ({\n type: INITIALIZE_SEARCH\n})\n\nexport const setForm = form => ({\n type: SET_FORM,\n payload: {form}\n})\n\nexport const setSearchQueries = searchQueries => ({\n type: SET_SEARCH_QUERIES,\n payload: {searchQueries}\n})\n\nexport const setInitialized = initialized => ({\n type: SET_INITIALIZED,\n payload: {\n initialized\n }\n})\n","export const INITIALIZE_TABLE = 'inputEditTable/INITIALIZE_TABLE'\nexport const LOAD_DATA = 'inputEditTable/LOAD_DATA'\nexport const SET_DATA = 'inputEditTable/SET_DATA'\nexport const SET_EDIT_FORM = 'inputEditTable/SET_EDIT_FORM'\nexport const UPDATE_VALUE = 'inputEditTable/UPDATE_VALUE'\nexport const SET_VALUE = 'inputEditTable/SET_VALUE'\nexport const SET_SORTING = 'inputEditTable/SET_SORTING'\nexport const SET_DATA_FORM_COLUMNS = 'inputEditTable/SET_DATA_FORM_COLUMNS'\nexport const SET_ACTION_DEFINITIONS = 'inputEditTable/SET_ACTION_DEFINITIONS'\nexport const SET_DATA_LOADING_IN_PROGRESS = 'inputEditTable/SET_DATA_LOADING_IN_PROGRESS'\nexport const SET_CALCULATING = 'inputEditTable/SET_CALCULATING'\n\nexport const initializeTable = () => ({\n type: INITIALIZE_TABLE\n})\n\nexport const loadData = () => ({\n type: LOAD_DATA\n})\n\nexport const setData = data => ({\n type: SET_DATA,\n payload: {data}\n})\n\nexport const setEditForm = form => ({\n type: SET_EDIT_FORM,\n payload: form\n})\n\nexport const updateValue = (inputDataKey, node, value) => ({\n type: UPDATE_VALUE,\n payload: {\n inputDataKey,\n node,\n value\n }\n})\n\nexport const setValue = (inputDataKey, node, value) => ({\n type: SET_VALUE,\n payload: {\n inputDataKey,\n node,\n value\n }\n})\n\nexport const setSorting = (field, add) => ({\n type: SET_SORTING,\n payload: {\n field,\n add\n }\n})\n\nexport const setDataFormColumns = dataFormColumns => ({\n type: SET_DATA_FORM_COLUMNS,\n payload: {\n dataFormColumns\n }\n})\n\nexport const setActionDefinitions = actionDefinitions => ({\n type: SET_ACTION_DEFINITIONS,\n payload: {\n actionDefinitions\n }\n})\n\nexport const setDataLoadingInProgress = dataLoadingInProgress => ({\n type: SET_DATA_LOADING_IN_PROGRESS,\n payload: {\n dataLoadingInProgress\n }\n})\n\nexport const setCalculating = (inputData, loading) => ({\n type: SET_CALCULATING,\n payload: {\n inputData,\n loading\n }\n})\n","import styled from 'styled-components'\nimport {scale, theme} from 'tocco-ui'\n\nexport const Box = styled.div`\n background-color: ${theme.color('paper')};\n overflow-y: auto;\n padding: ${scale.space(-1.1)} ${scale.space(-0.375)} 0 ${scale.space(-1.1)};\n position: relative;\n\n &:first-of-type {\n z-index: 2; // higher than StyledTether to prevent cover on scroll\n }\n`\n\nexport const StyledExtendSearchButtonWrapper = styled.div`\n && {\n width: 100%;\n text-align: center;\n }\n`\n","import _debounce from 'lodash/debounce'\nimport PropTypes from 'prop-types'\nimport {useState} from 'react'\nimport {form} from 'tocco-app-extensions'\nimport SimpleFormApp from 'tocco-simple-form/src/main'\nimport {Ball} from 'tocco-ui'\nimport {tqlBuilder, env, api} from 'tocco-util'\n\nimport {Box, StyledExtendSearchButtonWrapper} from './StyledComponents'\n\nconst InputEditSearch = ({form: searchFormDefinition, setSearchFields}) => {\n const embedType = env.getEmbedType()\n const isAdmin = ['admin', 'legacy-admin'].includes(embedType)\n\n const [showExtendedSearchForm, setShowExtendedSearchForm] = useState(isAdmin)\n\n const toggleExtendedSearchForm = () => {\n setShowExtendedSearchForm(!showExtendedSearchForm)\n }\n\n if (!searchFormDefinition.children) {\n return null\n }\n\n const fields = form.getFieldDefinitions(searchFormDefinition)\n const simpleSearchFields = fields.filter(field => field.simpleSearch === true).map(field => field.path || field.id)\n const extendable = !isAdmin && !fields.every(field => simpleSearchFields.includes(field.id))\n\n const shouldRenderField = name => showExtendedSearchForm || simpleSearchFields.includes(name)\n\n return (\n <Box>\n {extendable && (\n <StyledExtendSearchButtonWrapper>\n <Ball\n data-cy=\"extend-search-button\"\n icon={`chevron-${showExtendedSearchForm ? 'up' : 'down'}`}\n onClick={toggleExtendedSearchForm}\n title={'asdf'}\n />\n </StyledExtendSearchButtonWrapper>\n )}\n <SimpleFormApp\n form={searchFormDefinition}\n onChange={_debounce(handleChange(searchFormDefinition, setSearchFields), 500)}\n noButtons\n validate={false}\n mappingType=\"search\"\n mode=\"search\"\n beforeRenderField={shouldRenderField}\n />\n </Box>\n )\n}\n\nconst handleChange =\n (searchFormDefinition, setSearchFields) =>\n ({values}) => {\n if (Object.keys(values).length > 0) {\n const tql = transformFormValuesToTql(values, searchFormDefinition)\n setSearchFields(tql)\n } else {\n setSearchFields([])\n }\n }\n\nconst transformFormValuesToTql = (values, searchFormDefinition) =>\n Object.entries(values)\n .filter(([key]) => !Object.values(api.metaFields).includes(key))\n .map(([path, value]) => ({\n path,\n fieldType: getFieldType(path, searchFormDefinition),\n value\n }))\n .filter(({path, fieldType, value}) => value && (!Array.isArray(value) || value.length > 0))\n .map(({path, fieldType, value}) => tqlBuilder.getTql(path, value, fieldType))\n .filter(tql => tql.length > 0)\n\nconst getFieldType = (path, searchFormDefinition) => {\n const container = searchFormDefinition.children.find(child => child.children.length > 0)\n if (container) {\n const field = container.children.find(child => child.id === path)\n\n return field.children.length > 0 ? field.children[0].dataType : field.dataType\n }\n}\n\nInputEditSearch.propTypes = {\n form: PropTypes.object.isRequired,\n setSearchFields: PropTypes.func.isRequired\n}\n\nexport default InputEditSearch\n","import {connect} from 'react-redux'\n\nimport {setSearchQueries} from '../../modules/inputEditSearch/actions'\nimport InputEditSearch from './InputEditSearch'\n\nconst mapActionCreators = {\n setSearchFields: setSearchQueries\n}\n\nconst mapStateToProps = state => ({\n form: state.inputEditSearch.form\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(InputEditSearch)\n","export const SET_CURRENT_PAGE = 'inputEditPagination/SET_CURRENT_PAGE'\nexport const SET_TOTAL_COUNT = 'inputEditPagination/SET_TOTAL_COUNT'\n\nexport const setCurrentPage = currentPage => ({\n type: SET_CURRENT_PAGE,\n payload: {currentPage}\n})\n\nexport const setTotalCount = totalCount => ({\n type: SET_TOTAL_COUNT,\n payload: {\n totalCount\n }\n})\n","export const arrowKeyHandler = event => {\n if (\n ['INPUT', 'TEXTAREA'].includes(document.activeElement.tagName) &&\n ['ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowUp'].includes(event.key)\n ) {\n event.preventDefault()\n const [rowIndex, columnIndex] = document.activeElement.id.split(':')\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n const currentIndex = Number.parseInt(rowIndex)\n const indexDiff = event.key === 'ArrowUp' ? -1 : 1\n const idToFocus = `${currentIndex + indexDiff}:${columnIndex}`\n const elementToFocus = document.getElementById(idToFocus)\n focusElement(elementToFocus)\n } else if (event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n const currentIndex = Number.parseInt(columnIndex)\n const indexDiff = event.key === 'ArrowLeft' ? -1 : 1\n const elementToFocus = findHorizontalElementToFocus(rowIndex, currentIndex, indexDiff)\n focusElement(elementToFocus)\n }\n }\n}\n\n/**\n * there might be readonly fields mixed in, so we need to check the rest of the fields\n * @param rowIndex which row to navigate in\n * @param currentIndex last checked cell index\n * @param indexDiff which direction to move in\n * @returns {HTMLElement}\n */\nconst findHorizontalElementToFocus = (rowIndex, currentIndex, indexDiff) => {\n const adjustedIndex = currentIndex + indexDiff\n const idToFocus = `${rowIndex}:${adjustedIndex}`\n const elementToFocus = document.getElementById(idToFocus)\n if (elementToFocus) {\n if (['INPUT', 'TEXTAREA'].includes(elementToFocus.tagName) && !elementToFocus.disabled) {\n return elementToFocus\n } else {\n return findHorizontalElementToFocus(rowIndex, adjustedIndex, indexDiff)\n }\n } else {\n return elementToFocus\n }\n}\n\nconst focusElement = elementToFocus => {\n if (elementToFocus) {\n // Reacts NumberFormat is clingy and steals focus when using left and right arrow keys, so we steal it back\n setTimeout(() => {\n elementToFocus.focus()\n }, 0)\n }\n}\n","import styled from 'styled-components'\nimport {scale, themeSelector, declareFocus, StyledReactSelectOuterWrapper} from 'tocco-ui'\n\nexport const StyledInputEditTableWrapper = styled.div`\n width: 100%;\n height: 100%;\n overflow: auto;\n`\n\nexport const StyledCell = styled.div`\n ${StyledReactSelectOuterWrapper} {\n margin-right: ${scale.space(-0.37)};\n border: 1px solid ${themeSelector.color('border')};\n padding: ${scale.space(-2)} ${scale.space(-1.7)} ${scale.space(-2)} ${scale.space(-1)};\n background-color: ${themeSelector.color('paper')};\n border-radius: ${themeSelector.radii('form')};\n }\n\n &&&& {\n input,\n textarea,\n &.single-select > span > div {\n border: 1px solid ${themeSelector.color('border')};\n padding-left: ${scale.space(-1)};\n padding-right: ${scale.space(-1)};\n border-radius: ${themeSelector.radii('form')};\n\n &:not([disabled]):hover {\n cursor: pointer;\n }\n /* prevent focus style within react select components */\n :not([id*='react-select']) {\n ${declareFocus}\n }\n }\n\n &.single-select > span {\n display: inline-block;\n width: 100%;\n margin-left: 5px;\n margin-bottom: 5px;\n background-color: ${themeSelector.color('paper')};\n }\n\n &.single-select button {\n margin-bottom: 2px;\n margin-right: 2px;\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport {useEffect, useState} from 'react'\nimport {field} from 'tocco-app-extensions'\nimport {Table, EditableValue, FormattedValue, LoadingSpinner} from 'tocco-ui'\nimport {api, env} from 'tocco-util'\n\nimport {arrowKeyHandler} from './keyHandler'\nimport {StyledCell, StyledInputEditTableWrapper} from './StyledComponents'\n\nconst dataCellRenderer = (fieldDefinition, data) => {\n const {path, dataType} = fieldDefinition\n const Field = field.factory('list', dataType)\n const value = data[path]\n\n return (\n <StyledCell key={path}>\n <Field type={dataType} mappingType=\"list\" formField={fieldDefinition} value={value} breakWords={false} />\n </StyledCell>\n )\n}\n\nconst keyBuilder = (row, column) => `${row}:${column}`\n\n// should use fieldFactory to handle this the same as in regular forms, refactor in TOCDEV-6551\nconst getReadOnlyValue = (value, dataType) => {\n switch (dataType) {\n case 'percent':\n return value / 100\n default:\n return value\n }\n}\n\nconst inputCellRenderer = (fieldDefinition, data, updateValue, rowIdx) => {\n const {readonly, id, dataType, options} = fieldDefinition.definition\n\n const pk = data.pk\n const value = data[id]\n\n if (readonly) {\n if (data?.loading > 0) {\n return (\n <StyledCell key={id}>\n <LoadingSpinner size=\"1.8em\" icon=\"circle-notch-light\" />\n </StyledCell>\n )\n } else {\n const readOnlyValue = getReadOnlyValue(value, dataType)\n return (\n <StyledCell key={id}>\n <FormattedValue id={id} type={dataType} value={readOnlyValue} options={options} />\n </StyledCell>\n )\n }\n } else {\n return (\n <StyledCell key={id}>\n <EditableValue\n id={keyBuilder(rowIdx, fieldDefinition.idx)}\n type={dataType}\n value={value}\n options={options}\n events={{\n onChange: changedValue => {\n updateValue(pk, id, changedValue)\n },\n onFocus: ({target}) => target.select()\n }}\n />\n </StyledCell>\n )\n }\n}\n\nconst InputEditTable = ({\n data,\n dataFormColumns,\n inputEditForm,\n updateValue,\n sorting,\n setSorting,\n dataLoadingInProgress,\n totalCount,\n currentPage,\n recordsPerPage,\n setCurrentPage\n}) => {\n const [columns, setColumns] = useState([])\n const [columnPosition, setColumnPosition] = useState([])\n\n useEffect(() => {\n const dataColumns = api.getColumnDefinition(dataFormColumns, sorting, dataCellRenderer)\n\n const inputColumns = inputEditForm.map((c, idx) => ({\n idx,\n id: c.id,\n label: c.label,\n sorting: {\n sortable: false\n },\n definition: c,\n resizable: true,\n dynamic: true,\n alignment: api.isRightAligned(c) ? 'right' : 'left',\n CellRenderer: ({rowData, column, rowIdx}) => inputCellRenderer(column, rowData, updateValue, rowIdx)\n }))\n\n const cc = [...dataColumns, ...inputColumns].sort(\n (a, b) => columnPosition.findIndex(e => e === a.id) - columnPosition.findIndex(e => e === b.id)\n )\n setColumns(cc)\n }, [columnPosition, dataFormColumns, inputEditForm, sorting, updateValue])\n\n const onColumnPositionChange = (dragColumn, dropColumn) => {\n setColumnPosition(\n columns.reduce(\n (acc, c) => [\n ...acc,\n ...(c.id === dropColumn ? [c.id, dragColumn] : []),\n ...(c.id === dragColumn ? [] : [c.id])\n ],\n []\n )\n )\n }\n\n if (columns.length === 0) {\n return null\n }\n\n const embedType = env.getEmbedType()\n const isAdmin = ['admin', 'legacy-admin'].includes(embedType)\n\n return (\n <StyledInputEditTableWrapper onKeyDown={arrowKeyHandler}>\n <Table\n dataLoadingInProgress={dataLoadingInProgress}\n columns={columns}\n data={data}\n onSortingChange={setSorting}\n onColumnPositionChange={onColumnPositionChange}\n paginationInfo={{\n currentPage,\n recordsPerPage,\n totalCount\n }}\n onPageChange={setCurrentPage}\n scrollBehaviour={isAdmin ? 'inline' : 'none'}\n />\n </StyledInputEditTableWrapper>\n )\n}\n\nInputEditTable.propTypes = {\n data: PropTypes.array.isRequired,\n dataFormColumns: PropTypes.arrayOf(PropTypes.shape({id: PropTypes.string})),\n sorting: PropTypes.arrayOf(\n PropTypes.shape({\n field: PropTypes.string,\n order: PropTypes.string\n })\n ),\n inputEditForm: PropTypes.array.isRequired,\n updateValue: PropTypes.func.isRequired,\n setSorting: PropTypes.func.isRequired,\n dataLoadingInProgress: PropTypes.bool,\n totalCount: PropTypes.number,\n currentPage: PropTypes.number.isRequired,\n recordsPerPage: PropTypes.number.isRequired,\n setCurrentPage: PropTypes.func.isRequired\n}\n\nexport default InputEditTable\n","import {connect} from 'react-redux'\n\nimport {setCurrentPage} from '../../modules/inputEditPagination/actions'\nimport {updateValue, setSorting} from '../../modules/inputEditTable/actions'\nimport InputEditTable from './InputEditTable'\n\nconst mapActionCreators = {\n updateValue,\n setSorting,\n setCurrentPage\n}\n\nconst mapStateToProps = state => {\n return {\n data: state.inputEditTable.data,\n dataFormColumns: state.inputEditTable.dataFormColumns,\n inputEditForm: state.inputEditTable.inputEditForm,\n sorting: state.inputEditTable.sorting,\n dataLoadingInProgress: state.inputEditTable.dataLoadingInProgress,\n totalCount: state.inputEditPagination.totalCount,\n currentPage: state.inputEditPagination.currentPage,\n recordsPerPage: state.inputEditPagination.recordsPerPage\n }\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(InputEditTable)\n","import styled from 'styled-components'\nimport {theme} from 'tocco-ui'\n\nexport const StyledPaneWrapper = styled.div`\n display: flex;\n height: 100%;\n flex-direction: column;\n`\n\nexport const StyledListView = styled.div`\n display: grid;\n grid-template-rows: [action-start] auto [table-start] minmax(0, 1fr);\n height: 100%;\n width: 100%;\n`\n\nexport const StyledActionsWrapper = styled.div`\n display: flex;\n background-color: ${theme.color('paper')};\n margin-bottom: 3px;\n /* remove left padding on widget */\n padding: ${({env}) => (env === 'widget' ? '0 0 8px 0' : '8px')};\n grid-row-start: action-start;\n flex-wrap: wrap;\n`\nexport const StyledListWrapper = styled.div`\n grid-row-start: table-start;\n`\n","import PropTypes from 'prop-types'\nimport {useEffect, useState} from 'react'\nimport {actions, notification, selection as selectionPropType} from 'tocco-app-extensions'\nimport {SidepanelMainContent, Sidepanel, SidepanelContainer, SidepanelHeader, BackButton} from 'tocco-ui'\nimport {env} from 'tocco-util'\n\nimport InputEditSearch from '../InputEditSearch'\nimport InputEditTable from '../InputEditTable/InputEditTableContainer'\nimport {StyledActionsWrapper, StyledPaneWrapper, StyledListWrapper, StyledListView} from './StyledInputEdit'\n\nconst InputEdit = ({\n selection,\n onActionClick,\n handleNotifications,\n initializeTable,\n initializeSearch,\n actionDefinitions\n}) => {\n useEffect(() => {\n initializeTable()\n initializeSearch()\n }, [selection, initializeTable, initializeSearch])\n\n const [isCollapsed, setIsCollapsed] = useState(false)\n\n const customRenderedActions = {\n cancel: definition => (\n <BackButton onClick={() => onActionClick(definition)} icon={definition.icon} label={definition.label} />\n )\n }\n\n const Actions = actionDefinitions.map(definition => (\n <actions.Action\n key={definition.id}\n definition={definition}\n selection={selection}\n customRenderedActions={customRenderedActions}\n />\n ))\n\n const embedType = env.getEmbedType()\n const isAdmin = ['admin', 'legacy-admin'].includes(embedType)\n\n return (\n <>\n {handleNotifications && <notification.Notifications />}\n <StyledPaneWrapper>\n <SidepanelContainer\n sidepanelPosition={isAdmin ? 'left' : 'top'}\n sidepanelCollapsed={isCollapsed}\n setSidepanelCollapsed={setIsCollapsed}\n scrollBehaviour={isAdmin ? 'inline' : 'none'}\n >\n <Sidepanel>\n <SidepanelHeader />\n <InputEditSearch />\n </Sidepanel>\n\n <SidepanelMainContent>\n <StyledListView>\n <StyledActionsWrapper>{Actions}</StyledActionsWrapper>\n <StyledListWrapper>\n <InputEditTable />\n </StyledListWrapper>\n </StyledListView>\n </SidepanelMainContent>\n </SidepanelContainer>\n </StyledPaneWrapper>\n </>\n )\n}\n\nInputEdit.propTypes = {\n selection: selectionPropType.propType.isRequired,\n handleNotifications: PropTypes.bool,\n initializeTable: PropTypes.func.isRequired,\n initializeSearch: PropTypes.func.isRequired,\n actionDefinitions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired\n })\n ),\n onActionClick: PropTypes.func.isRequired,\n notify: PropTypes.func.isRequired\n}\n\nexport default InputEdit\n","import {connect} from 'react-redux'\nimport {notification, actions} from 'tocco-app-extensions'\n\nimport {initializeSearch} from '../../modules/inputEditSearch/actions'\nimport {initializeTable} from '../../modules/inputEditTable/actions'\nimport InputEdit from './InputEdit'\n\nconst mapActionCreators = {\n initializeTable,\n initializeSearch,\n notify: notification.toaster,\n onActionClick: actions.actions.actionInvoke\n}\n\nconst mapStateToProps = state => ({\n selection: state.input.selection,\n actionDefinitions: state.inputEditTable.actionDefinitions,\n handleNotifications: state.inputEdit.handleNotifications\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(InputEdit)\n","export const SET_HANDLE_NOTIFICATIONS = 'inputEdit/SET_HANDLE_NOTIFICATIONS'\nexport const SET_UPDATE_IN_PROGRESS = 'inputEdit/SET_UPDATE_IN_PROGRESS'\n\nexport const setHandleNotifications = handleNotifications => ({\n type: SET_HANDLE_NOTIFICATIONS,\n payload: {\n handleNotifications\n }\n})\n\nexport const setSelectionUpdateInProgress = updateInProgress => ({\n type: SET_UPDATE_IN_PROGRESS,\n payload: {\n updateInProgress\n }\n})\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport {SET_HANDLE_NOTIFICATIONS, SET_UPDATE_IN_PROGRESS} from './actions'\n\nconst initialState = {\n handleNotifications: false,\n updateInProgress: false\n}\n\nconst ACTION_HANDLERS = {\n [SET_HANDLE_NOTIFICATIONS]: reducerUtil.singleTransferReducer('handleNotifications'),\n [SET_UPDATE_IN_PROGRESS]: reducerUtil.singleTransferReducer('updateInProgress')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\nexport default reducer\n","import {all, call, put, select, takeLatest} from 'redux-saga/effects'\nimport {actions, rest, appFactory} from 'tocco-app-extensions'\n\nimport * as inputEditTableActions from '../inputEditTable/actions'\nimport * as inputEditAction from './actions'\n\nconst inputSelector = state => state.input\n\nexport default function* sagas() {\n yield all([\n takeLatest(appFactory.INPUT_INITIALIZED, updateInputDatas),\n takeLatest(actions.actions.ACTION_INVOKED, reload)\n ])\n}\n\nexport function* reload() {\n yield put(inputEditTableActions.initializeTable())\n}\n\nexport function* updateInputDatas() {\n yield put(inputEditAction.setSelectionUpdateInProgress(true))\n const {selection} = yield select(inputSelector)\n yield call(rest.requestSaga, 'inputEdit/update-input-datas', {method: 'POST', body: selection})\n yield put(inputEditAction.setSelectionUpdateInProgress(false))\n}\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport {SET_CURRENT_PAGE, SET_TOTAL_COUNT} from './actions'\n\nconst initialState = {\n totalCount: 0,\n currentPage: 1,\n recordsPerPage: 25\n}\n\nconst ACTION_HANDLERS = {\n [SET_TOTAL_COUNT]: reducerUtil.singleTransferReducer('totalCount'),\n [SET_CURRENT_PAGE]: reducerUtil.singleTransferReducer('currentPage')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\nexport default reducer\n","import {api} from 'tocco-util'\n\nexport const transformResponseData = response =>\n response.body.data\n .map(dataRecord => {\n const splitObj = Object.keys(dataRecord).reduce(\n (acc, key) => {\n const isInputField = !isNaN(parseInt(key)) || key === 'rating' // textchoice has no exams but is an input\n return {\n ...acc,\n ...(isInputField\n ? {\n inputFields: {\n ...acc.inputFields,\n [key]: dataRecord[key]\n }\n }\n : {\n entityFields: {\n ...acc.entityFields,\n [key]: dataRecord[key]\n }\n })\n }\n },\n {\n inputFields: {},\n entityFields: {}\n }\n )\n\n return {...splitObj.inputFields, ...api.flattenPaths(splitObj.entityFields)}\n })\n .map(dataRecord => ({...dataRecord, __key: dataRecord.pk}))\n","import {all, call, put, select, take, takeEvery, takeLatest} from 'redux-saga/effects'\nimport {notification, rest} from 'tocco-app-extensions'\n\nimport * as inputEditActions from '../inputEdit/actions'\nimport {setTotalCount} from '../inputEditPagination/actions'\nimport * as searchFormActions from '../inputEditSearch/actions'\nimport * as actions from './actions'\nimport {transformResponseData} from './utils'\n\nexport const inputSelector = state => state.input\nexport const inputEditSelector = state => state.inputEdit\nexport const inputEditTableSelector = state => state.inputEditTable\nexport const inputEditSearchSelector = state => state.inputEditSearch\nexport const searchQueriesSelector = state => state.inputEditSearch.searchQueries\nexport const inputEditPaginationSelector = state => state.inputEditPagination\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.INITIALIZE_TABLE, initialize),\n takeLatest(actions.LOAD_DATA, loadData),\n takeEvery(actions.UPDATE_VALUE, updateValue),\n takeLatest(actions.SET_SORTING, loadData)\n ])\n}\n\nexport function* processDataForm(dataForm, readonly, readonlyActions = [], hiddenActions = []) {\n const actionDefinitions = dataForm.children\n .find(child => child.id === 'main-action-bar')\n .children.filter(child => child.componentType === 'action')\n .filter(child => !hiddenActions.includes(child.id))\n .filter(child => !readonly || readonlyActions.includes(child.id))\n .map(child => ({\n ...child,\n scope: 'detail'\n }))\n\n yield put(actions.setActionDefinitions(actionDefinitions))\n\n const dataFormColumns = dataForm.children.find(child => child.componentType === 'table').children\n\n yield put(actions.setDataFormColumns(dataFormColumns))\n}\n\nexport function* initialize() {\n yield put(actions.setDataLoadingInProgress(true))\n const {actionProperties, selection} = yield select(inputSelector)\n const inputEditDataForm =\n actionProperties && actionProperties.inputEditDataForm ? actionProperties.inputEditDataForm : 'Input_edit_data'\n const [editFormDefinition, dataForm] = yield all([\n call(rest.requestSaga, 'inputEdit/form', {method: 'POST', body: selection}),\n call(rest.fetchForm, inputEditDataForm, 'list')\n ])\n const {editColumns, readonly, readonlyActions, hiddenActions} = editFormDefinition.body\n if (readonly) {\n editColumns.forEach(c => (c.readonly = true))\n yield put(\n notification.toaster({\n type: 'info',\n title: 'client.actions.InputEdit.input_closed'\n })\n )\n }\n yield put(actions.setEditForm({inputEditForm: editColumns}))\n yield call(processDataForm, dataForm, readonly, readonlyActions, hiddenActions)\n\n const {initialized: searchFormInitialized} = yield select(inputEditSearchSelector)\n if (!searchFormInitialized) {\n yield take(searchFormActions.SET_INITIALIZED)\n }\n const {updateInProgress} = yield select(inputEditSelector)\n if (updateInProgress) {\n yield take(({payload, type}) => type === inputEditActions.SET_UPDATE_IN_PROGRESS && !payload.updateInProgress)\n }\n yield call(loadData, {})\n}\n\nexport function* loadData({newSorting, newSearchQueries, newPage}) {\n yield put(actions.setDataLoadingInProgress(true))\n const {selection} = yield select(inputSelector)\n const sorting = newSorting || (yield select(inputEditTableSelector)).sorting\n const searchQueries = newSearchQueries || (yield select(searchQueriesSelector))\n const currentPage = newPage || (yield select(inputEditPaginationSelector)).currentPage\n const {recordsPerPage} = yield select(inputEditPaginationSelector)\n const dataFormColumns = (yield select(inputEditTableSelector)).dataFormColumns\n const paths = getPathsFromTable(dataFormColumns)\n const searchBean = rest.buildRequestQuery({\n limit: recordsPerPage,\n sorting,\n page: currentPage,\n where: searchQueries.join(' and '),\n paths\n })\n const response = yield call(rest.requestSaga, 'inputEdit/data/search', {\n method: 'POST',\n body: {\n selection,\n searchBean\n }\n })\n\n const transformedData = yield call(transformResponseData, response)\n yield put(actions.setData(transformedData))\n yield put(setTotalCount(response.body.count))\n yield put(actions.setDataLoadingInProgress(false))\n}\n\nconst getPathsFromTable = dataFormColumns => [\n 'pk',\n ...dataFormColumns.flatMap(column => column.children.map(field => field.path))\n]\n\nexport function* updateValue({payload: {inputDataKey, node, value}}) {\n yield put(actions.setValue(inputDataKey, node, value))\n yield put(actions.setCalculating(inputDataKey, true))\n\n const response = yield call(rest.requestSaga, 'inputEdit/data', {\n method: 'POST',\n body: {\n inputDataKey,\n node,\n value\n }\n })\n yield handleResponse(response, inputDataKey)\n}\n\nfunction* handleResponse(response, inputDataKey) {\n const values = response.body.calculatedValues\n if (values) {\n const actionsToPut = values.map(value => actions.setValue(value.inputDataKey, value.node, value.value))\n yield all(actionsToPut.map(action => put(action)))\n }\n yield put(actions.setCalculating(inputDataKey, false))\n}\n","import {all, takeLatest, call} from 'redux-saga/effects'\n\nimport * as actions from '../inputEditPagination/actions'\nimport {loadData} from '../inputEditTable/sagas'\n\nexport default function* sagas() {\n yield all([takeLatest(actions.SET_CURRENT_PAGE, setCurrentPage)])\n}\n\nexport function* setCurrentPage({payload: {currentPage}}) {\n yield call(loadData, {newPage: currentPage})\n}\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n form: {},\n initialized: false,\n searchQueries: []\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_FORM]: reducerUtil.singleTransferReducer('form'),\n [actions.SET_SEARCH_QUERIES]: reducerUtil.singleTransferReducer('searchQueries'),\n [actions.SET_INITIALIZED]: reducerUtil.singleTransferReducer('initialized')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\nexport default reducer\n","import {all, takeLatest, call, put, select} from 'redux-saga/effects'\nimport {rest} from 'tocco-app-extensions'\n\nimport * as actions from '../inputEditSearch/actions'\nimport {loadData} from '../inputEditTable/sagas'\n\nexport const inputEditSelector = state => state.inputEdit\nexport const inputEditSearchSelector = state => state.inputEditSearch\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.INITIALIZE_SEARCH, initialize),\n takeLatest(actions.SET_SEARCH_QUERIES, setSearchQueries)\n ])\n}\n\nexport function* initialize() {\n const form = yield call(rest.fetchForm, 'Input_edit_data', 'search')\n yield put(actions.setForm(form))\n}\n\nexport function* setSearchQueries({payload}) {\n const {initialized} = yield select(inputEditSearchSelector)\n if (initialized) {\n yield call(loadData, {newSearchQueries: payload.searchQueries})\n } else {\n yield put(actions.setInitialized(true))\n }\n}\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n actionDefinitions: [],\n dataFormColumns: [],\n data: [],\n inputEditForm: [],\n sorting: [],\n dataLoadingInProgress: false\n}\n\nconst setValue = (state, action) => {\n const {inputDataKey, node, value} = action.payload\n return {\n ...state,\n data: state.data.reduce((acc, val) => {\n if (val.pk === inputDataKey) {\n return [\n ...acc,\n {\n ...val,\n [node]: value\n }\n ]\n }\n return [...acc, val]\n }, [])\n }\n}\n\nconst defaultOrder = 'asc'\nconst getOpposite = order => (order === 'asc' ? 'desc' : 'asc')\nconst setSorting = (state, {payload: {field, add}}) => {\n if (!add) {\n const currentSorting = state.sorting\n const order =\n currentSorting.length > 0 && currentSorting[0].field === field\n ? getOpposite(currentSorting[0].order)\n : defaultOrder\n return {\n ...state,\n sorting: [{field, order}]\n }\n } else {\n const contains = state.sorting.filter(s => s.field === field)\n const order = contains.length > 0 ? getOpposite(contains[0].order) : defaultOrder\n\n return {\n ...state,\n sorting: [...state.sorting.filter(s => s.field !== field), {field, order}]\n }\n }\n}\n\nconst incrementLoadingCounter = data => (data.loading || 0) + 1\nconst decrementLoadingCounter = data => Math.max((data.loading || 0) - 1, 0)\n\nconst setCalculating = (state, {payload: {inputData, loading}}) => {\n return {\n ...state,\n data: state.data.map(data => {\n if (data.pk === inputData) {\n return {\n ...data,\n loading: loading ? incrementLoadingCounter(data) : decrementLoadingCounter(data)\n }\n } else {\n return data\n }\n })\n }\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_DATA_FORM_COLUMNS]: reducerUtil.singleTransferReducer('dataFormColumns'),\n [actions.SET_ACTION_DEFINITIONS]: reducerUtil.singleTransferReducer('actionDefinitions'),\n [actions.SET_EDIT_FORM]: reducerUtil.singleTransferReducer('inputEditForm'),\n [actions.SET_DATA]: reducerUtil.singleTransferReducer('data'),\n [actions.SET_DATA_LOADING_IN_PROGRESS]: reducerUtil.singleTransferReducer('dataLoadingInProgress'),\n [actions.SET_VALUE]: setValue,\n [actions.SET_SORTING]: setSorting,\n [actions.SET_CALCULATING]: setCalculating\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import reducer from './reducer'\nimport sagas from './sagas'\n\nexport {sagas}\nexport default reducer\n","import inputEditReducer, {sagas as inputEditSagas} from './inputEdit'\nimport inputEditPaginationReducer, {sagas as inputEditPaginationSagas} from './inputEditPagination'\nimport inputEditSearchReducer, {sagas as inputEditSearchSagas} from './inputEditSearch'\nimport inputEditTableReducer, {sagas as inputEditTableSagas} from './inputEditTable'\n\nexport default {\n inputEdit: inputEditReducer,\n inputEditTable: inputEditTableReducer,\n inputEditSearch: inputEditSearchReducer,\n inputEditPagination: inputEditPaginationReducer\n}\n\nexport const sagas = [inputEditSagas, inputEditTableSagas, inputEditSearchSagas, inputEditPaginationSagas]\n","import PropTypes from 'prop-types'\nimport {actionEmitter, actions, appFactory, errorLogging, notification} from 'tocco-app-extensions'\nimport {appContext, reducer as reducerUtil, env} from 'tocco-util'\n\nimport Action from './components/Action'\nimport InputEdit from './components/InputEdit/InputEditContainer'\nimport customActions from './customActions'\nimport {setHandleNotifications} from './modules/inputEdit/actions'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'input-edit'\n\nconst EXTERNAL_EVENTS = ['emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n env.setInputEnvs(input)\n\n const content = <InputEdit />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n actionEmitter.addToStore(store, state => state.input.emitAction)\n actions.dynamicActionsAddToStore(store)\n actions.addToStore(store, () => ({\n customActions: customActions(input),\n appComponent: Action\n }))\n const handleNotifications = !events?.emitAction\n notification.addToStore(store, handleNotifications)\n errorLogging.addToStore(store, handleNotifications, ['console', 'remote', 'notification'])\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [setHandleNotifications(handleNotifications)],\n publicPath,\n textResourceModules: ['component', 'common', 'actions', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst InputEditApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nInputEditApp.propTypes = {\n selection: PropTypes.object,\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {}),\n appContext: appContext.propTypes\n}\n\nexport default InputEditApp\nexport const app = appFactory.createBundleableApp(packageName, initApp, InputEditApp)\n","export default ({onCancel}) => ({\n cancel: onCancel\n})\n","export const LOAD_FORM_DEFINITION = 'jobOfferApply/LOAD_FORM_DEFINITION'\nexport const SET_FORM_DEFINITION = 'jobOfferApply/SET_FORM_DEFINITION'\nexport const SET_FIELD_DEFINITIONS = 'jobOfferApply/SET_FIELD_DEFINITIONS'\nexport const SEND_APPLICATION = 'jobOfferApply/SEND_APPLICATION'\n\nexport const loadFormDefinition = () => ({\n type: LOAD_FORM_DEFINITION\n})\n\nexport const setFormDefinition = formDefinition => ({\n type: SET_FORM_DEFINITION,\n payload: {formDefinition}\n})\n\nexport const setFieldDefinitions = fieldDefinitions => ({\n type: SET_FIELD_DEFINITIONS,\n payload: {fieldDefinitions}\n})\n\nexport const sendApplication = () => ({\n type: SEND_APPLICATION\n})\n","import PropTypes from 'prop-types'\nimport {reduxForm} from 'redux-form'\nimport {form} from 'tocco-app-extensions'\nimport {Button} from 'tocco-ui'\n\nexport const REDUX_FORM_NAME = 'job-offer-apply'\n\nconst Form = ({formDefinition, submitting, valid, sendApplication, intl}) => {\n const formEventProps = form.hooks.useFormEvents({submitForm: sendApplication})\n return (\n <form {...formEventProps}>\n <form.FormBuilder\n formName={REDUX_FORM_NAME}\n formDefinition={formDefinition}\n fieldMappingType=\"editable\"\n mode={'create'}\n />\n <Button\n disabled={submitting || !valid}\n label={intl.formatMessage({id: 'client.actions.job-offer-apply.submit'})}\n type=\"submit\"\n look=\"raised\"\n ink=\"primary\"\n />\n </form>\n )\n}\n\nForm.propTypes = {\n formDefinition: PropTypes.object,\n submitting: PropTypes.bool,\n valid: PropTypes.bool,\n sendApplication: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nexport default reduxForm({form: REDUX_FORM_NAME, destroyOnUnmount: false})(Form)\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {form} from 'tocco-app-extensions'\n\nimport {sendApplication} from '../../modules/jobOfferApply/actions'\nimport Form, {REDUX_FORM_NAME} from './Form'\n\nconst mapActionCreators = {\n sendApplication\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.jobOfferApply.formDefinition,\n formErrors: form.selectors.getFormErrors(REDUX_FORM_NAME)(state)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Form))\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {selection as selectionUtil, form} from 'tocco-app-extensions'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\nimport {LoadMask} from 'tocco-ui'\n\nimport Form from './FormContainer'\n\nconst ApplicationForm = ({\n selection,\n fireExternalEvent,\n formDefinition,\n fieldDefinitions,\n formInitialValues,\n loadFormDefinition\n}) => {\n useEffect(() => {\n fireExternalEvent('onApplicationForm')\n }, [fireExternalEvent])\n useEffect(() => {\n loadFormDefinition()\n }, [loadFormDefinition])\n\n const jobOfferKey = selectionUtil.getSingleKey(selection, 'Job_offer')\n\n const handleAsyncValidate = form.hooks.useAsyncValidation({\n formInitialValues,\n fieldDefinitions,\n formDefinition,\n mode: 'create'\n })\n const handleSyncValidate = form.hooks.useSyncValidation({fieldDefinitions, formDefinition})\n\n return (\n <LoadMask required={[formDefinition, fieldDefinitions]}>\n <EntityDetailApp entityName=\"Job_offer\" formName=\"Job_application_offer\" entityId={jobOfferKey} mode=\"update\" />\n <Form\n validate={handleSyncValidate}\n asyncValidate={handleAsyncValidate}\n asyncBlurFields={fieldDefinitions ? form.getUsedPaths(fieldDefinitions) : null}\n />\n </LoadMask>\n )\n}\n\nApplicationForm.propTypes = {\n selection: selectionUtil.propType.isRequired,\n formDefinition: PropTypes.object,\n fieldDefinitions: PropTypes.arrayOf(PropTypes.object),\n formInitialValues: PropTypes.object,\n loadFormDefinition: PropTypes.func.isRequired,\n fireExternalEvent: PropTypes.func.isRequired\n}\n\nexport default ApplicationForm\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\nimport {getFormInitialValues} from 'redux-form'\nimport {externalEvents} from 'tocco-app-extensions'\n\nimport {loadFormDefinition} from '../../modules/jobOfferApply/actions'\nimport ApplicationForm from './ApplicationForm'\nimport {REDUX_FORM_NAME} from './Form'\n\nconst mapActionCreators = {\n loadFormDefinition,\n fireExternalEvent: externalEvents.fireExternalEvent\n}\n\nconst mapStateToProps = state => ({\n selection: state.input.selection,\n formDefinition: state.jobOfferApply.formDefinition,\n fieldDefinitions: state.jobOfferApply.fieldDefinitions,\n formInitialValues: getFormInitialValues(REDUX_FORM_NAME)(state)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(ApplicationForm))\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n formDefinition: null,\n fieldDefinitions: null\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_FORM_DEFINITION]: reducerUtil.singleTransferReducer('formDefinition'),\n [actions.SET_FIELD_DEFINITIONS]: reducerUtil.singleTransferReducer('fieldDefinitions')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {actions as formActions, getFormValues} from 'redux-form'\nimport {all, call, put, select, takeLatest} from 'redux-saga/effects'\nimport {rest, form, externalEvents, notification, selection as selectionUtil} from 'tocco-app-extensions'\nimport {api, env, validation} from 'tocco-util'\n\nimport {REDUX_FORM_NAME} from '../../components/ApplicationForm'\nimport * as actions from './actions'\n\nexport const jobOfferApplySelector = state => state.jobOfferApply\nexport const inputSelector = state => state.input\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.LOAD_FORM_DEFINITION, loadFormDefinition),\n takeLatest(actions.SEND_APPLICATION, sendApplication)\n ])\n}\n\nexport function* loadFormDefinition() {\n const {selection} = yield select(inputSelector)\n const jobOfferKey = selectionUtil.getSingleKey(selection, 'Job_offer')\n const formDefinition = {\n ...(yield call(rest.fetchForm, 'Job_application', 'create')),\n createEndpoint: `/widgets/jobOfferApply/${jobOfferKey}`\n }\n\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition)\n\n const defaultValues = yield call(form.getDefaultValues, fieldDefinitions)\n const entityValues = yield call(api.getFlattenEntity, {model: 'Application'})\n const formValues = yield call(form.entityToFormValues, {...entityValues, ...defaultValues}, fieldDefinitions)\n yield put(formActions.initialize(REDUX_FORM_NAME, formValues))\n\n yield all([put(actions.setFieldDefinitions(fieldDefinitions)), put(actions.setFormDefinition(formDefinition))])\n}\n\nexport function* sendApplication() {\n yield put(formActions.startSubmit(REDUX_FORM_NAME))\n\n const formValues = yield select(getFormValues(REDUX_FORM_NAME))\n const {fieldDefinitions} = yield select(jobOfferApplySelector)\n const flatEntity = yield call(form.formValuesToFlattenEntity, formValues, fieldDefinitions)\n const application = yield call(api.toEntity, flatEntity)\n\n const widgetConfigKey = env.getWidgetConfigKey()\n\n const {selection} = yield select(inputSelector)\n const jobOfferKey = selectionUtil.getSingleKey(selection, 'Job_offer')\n const response = yield call(rest.requestSaga, `widgets/jobOfferApply/${jobOfferKey}`, {\n method: 'POST',\n queryParams: {\n _widget_key: widgetConfigKey\n },\n body: application,\n acceptedErrorCodes: ['VALIDATION_FAILED']\n })\n if (response.status === 201) {\n yield put(externalEvents.fireExternalEvent('onSuccess'))\n } else {\n yield put(formActions.stopSubmit(REDUX_FORM_NAME))\n if (response.body.errorCode === 'VALIDATION_FAILED') {\n yield put(\n notification.toaster({\n type: 'error',\n title: 'client.component.actions.validationError',\n body: validation.getErrorCompact(response.body.errors)\n })\n )\n } else {\n yield put(externalEvents.fireExternalEvent('onError'))\n }\n }\n}\n","import {reducer as form} from 'redux-form'\n\nimport jobOfferApplyReducer from './jobOfferApply/reducer'\nimport jobOfferApplySagas from './jobOfferApply/sagas'\n\nexport default {\n jobOfferApply: jobOfferApplyReducer,\n form\n}\n\nexport const sagas = [jobOfferApplySagas]\n","import {appFactory, selection, externalEvents, actionEmitter, notification, formData} from 'tocco-app-extensions'\nimport {reducer as reducerUtil, appContext} from 'tocco-util'\n\nimport ApplicationForm from './components/ApplicationForm'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'job-offer-apply'\nconst EXTERNAL_EVENTS = ['onSuccess', 'onApplicationForm', 'emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <ApplicationForm />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n formData.addToStore(store, () => ({}))\n actionEmitter.addToStore(store, state => state.input.emitAction)\n const handleNotifications = !events?.emitAction\n notification.addToStore(store, handleNotifications)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', 'actions', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst JobOfferApplyApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName})\n return component\n}\n\nJobOfferApplyApp.propTypes = {\n appContext: appContext.propTypes.isRequired,\n selection: selection.propType.isRequired\n}\n\nexport default JobOfferApplyApp\n","export const INIT_MAIL_ACTION = 'mailAction/INIT_MAIL_ACTION'\nexport const SET_FORM_DEFINITION = 'mailAction/SET_FORM_DEFINITION'\nexport const SEND_MAIL = 'mailAction/SEND_MAIL'\nexport const VALIDATE = 'mailAction/VALIDATE'\nexport const SET_FORM_VALID = 'mailAction/SET_FORM_VALID'\n\nexport const initMailAction = () => ({\n type: INIT_MAIL_ACTION\n})\n\nexport const setFormDefinition = formDefinition => ({\n type: SET_FORM_DEFINITION,\n payload: {formDefinition}\n})\n\nexport const sendMail = () => ({\n type: SEND_MAIL\n})\n\nexport const validate = () => ({\n type: VALIDATE\n})\n\nexport const setFormValid = formValid => ({\n type: SET_FORM_VALID,\n payload: {formValid}\n})\n","import styled from 'styled-components'\nimport {scale} from 'tocco-ui'\n\nexport const StyledButtonWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n padding-right: ${scale.space(0)};\n\n button {\n margin-right: 0;\n }\n`\n","import PropTypes from 'prop-types'\nimport {useEffect} from 'react'\nimport {reduxForm} from 'redux-form'\nimport {form} from 'tocco-app-extensions'\nimport {LoadMask, Button} from 'tocco-ui'\n\nimport {StyledButtonWrapper} from '../StyledComponents'\n\nexport const REDUX_FORM_NAME = 'mailing-list-action'\n\nconst MailAction = ({initMailAction, formDefinition, sendMail, validate, formValid, intl}) => {\n useEffect(() => {\n initMailAction()\n }, [initMailAction])\n\n const onSubmit = e => {\n e.preventDefault()\n e.stopPropagation()\n sendMail()\n }\n\n return (\n <LoadMask required={[formDefinition]}>\n <form onSubmit={onSubmit} onChange={validate}>\n <form.FormBuilder\n entity={undefined}\n formName={REDUX_FORM_NAME}\n formDefinition={formDefinition}\n fieldMappingType={'editable'}\n mode={'create'}\n />\n <StyledButtonWrapper>\n <Button\n disabled={!formValid}\n label={intl.formatMessage({id: 'client.actions.mailing-list-mail-action.submit'})}\n type=\"submit\"\n look=\"raised\"\n ink=\"primary\"\n />\n </StyledButtonWrapper>\n </form>\n </LoadMask>\n )\n}\n\nMailAction.propTypes = {\n initMailAction: PropTypes.func.isRequired,\n formDefinition: PropTypes.object,\n sendMail: PropTypes.func.isRequired,\n validate: PropTypes.func.isRequired,\n formValid: PropTypes.bool.isRequired,\n intl: PropTypes.object.isRequired\n}\n\nexport default reduxForm({form: REDUX_FORM_NAME, destroyOnUnmount: false})(MailAction)\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initMailAction, sendMail, validate} from '../../modules/mailAction/actions'\nimport MailAction from './MailAction'\n\nconst mapActionCreators = {\n initMailAction,\n sendMail,\n validate\n}\n\nconst mapStateToProps = state => ({\n formDefinition: state.mailAction.formDefinition,\n formValid: state.mailAction.formValid\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(MailAction))\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialState = {\n formDefinition: null,\n formValid: false\n}\n\nconst ACTION_HANDLERS = {\n [actions.SET_FORM_DEFINITION]: reducerUtil.singleTransferReducer('formDefinition'),\n [actions.SET_FORM_VALID]: reducerUtil.singleTransferReducer('formValid')\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _isEmpty from 'lodash/isEmpty'\nimport {getFormValues, actions as formActions} from 'redux-form'\nimport {all, call, put, select, takeLatest, debounce} from 'redux-saga/effects'\nimport {rest, form, externalEvents} from 'tocco-app-extensions'\nimport {api, env} from 'tocco-util'\n\nimport {REDUX_FORM_NAME} from '../../components/MailAction'\nimport * as actions from './actions'\n\nexport const mailActionSelector = state => state.mailAction\nexport const inputSelector = state => state.input\n\nexport default function* sagas() {\n yield all([\n takeLatest(actions.INIT_MAIL_ACTION, initMailAction),\n takeLatest(actions.SEND_MAIL, sendMail),\n debounce(500, actions.VALIDATE, validate)\n ])\n}\n\nexport function* initMailAction() {\n yield call(loadFormDefinition)\n const emailTemplate = yield call(loadEmailTemplate)\n const formValues = {\n subject: emailTemplate?.subject?.value,\n cc: emailTemplate?.cc?.value,\n template: emailTemplate?.mail_text?.value\n }\n yield put(formActions.initialize(REDUX_FORM_NAME, formValues))\n}\n\nexport function* loadFormDefinition() {\n const formDefinition = yield call(rest.fetchForm, 'Mailing_list_mail_action', 'create')\n yield put(actions.setFormDefinition(formDefinition))\n}\n\nexport function* loadEmailTemplate() {\n const widgetConfigKey = env.getWidgetConfigKey()\n const where = `relMailing_list_widget_config.relWidget_config.pk==${widgetConfigKey}`\n const emailTemplate = yield call(\n rest.fetchEntitiesPage,\n 'Email_template',\n {where, paths: ['subject', 'cc', 'mail_text']},\n {method: 'GET'}\n )\n return emailTemplate.length > 0 ? emailTemplate[0].paths : {}\n}\n\nexport function* validate() {\n const formValues = yield select(getFormValues(REDUX_FORM_NAME))\n const {formDefinition} = yield select(mailActionSelector)\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition)\n const validator = yield call(form.syncValidation, fieldDefinitions, formDefinition)\n const errors = yield call(validator, formValues)\n yield put(actions.setFormValid(_isEmpty(errors)))\n}\n\nexport function* sendMail() {\n yield put(actions.setFormValid(false))\n const {\n selection,\n actionProperties: {widgetKey, eventKey}\n } = yield select(inputSelector)\n const formValues = yield select(getFormValues(REDUX_FORM_NAME))\n const {formDefinition} = yield select(mailActionSelector)\n const fieldDefinitions = yield call(form.getFieldDefinitions, formDefinition)\n const flattened = yield call(form.formValuesToFlattenEntity, formValues, fieldDefinitions)\n const mailSettings = api.toEntity(flattened)\n const resource = '/actions/MailingListMailAction/send'\n const options = {\n method: 'POST',\n queryParams: {\n _widget_key: widgetKey\n },\n body: {\n selection,\n mailSettings,\n eventKey\n }\n }\n const response = yield call(rest.requestSaga, resource, options)\n const type = response.body.success ? 'onSuccess' : 'onError'\n yield put(\n externalEvents.fireExternalEvent(type, {\n title: response.body.message\n })\n )\n}\n","import {reducer as form} from 'redux-form'\n\nimport mailActionReducer from './mailAction/reducer'\nimport mailActionSagas from './mailAction/sagas'\n\nexport default {\n mailAction: mailActionReducer,\n form\n}\n\nexport const sagas = [mailActionSagas]\n","import PropTypes from 'prop-types'\nimport {appFactory, selection, formData, externalEvents, actionEmitter} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport MailAction from './components/MailAction'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'mailing-list-mail-action'\n\nconst EXTERNAL_EVENTS = ['onSuccess', 'onError']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <MailAction />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n formData.addToStore(store, () => ({}))\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n actionEmitter.addToStore(store)\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', 'actions', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst MailingListMailAction = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nMailingListMailAction.propTypes = {\n selection: selection.propType.isRequired,\n actionProperties: PropTypes.object.isRequired\n}\n\nexport default MailingListMailAction\n","export const FETCH_CALENDAR_LINKS = 'subscribeCalendar/FETCH_CALENDAR_LINKS'\nexport const SET_CALENDAR_LINKS = 'subscribeCalendar/SET_CALENDAR_LINKS'\nexport const COPY_CALENDAR_LINK = 'subscribeCalendar/COPY_CALENDAR_LINK'\n\nexport const fetchCalendarLinks = () => ({\n type: FETCH_CALENDAR_LINKS\n})\n\nexport const setCalendarLinks = links => ({\n type: SET_CALENDAR_LINKS,\n payload: {\n links\n }\n})\n\nexport const copyCalendarLink = link => ({\n type: COPY_CALENDAR_LINK,\n payload: {\n link\n }\n})\n","import styled from 'styled-components'\nimport {scale, StyledCode} from 'tocco-ui'\n\nexport const StyledCalendarCopy = styled(StyledCode)`\n && {\n white-space: pre;\n padding: ${scale.space(0.3)};\n }\n`\n\nexport const StyledButtonWrapper = styled.div`\n margin-top: ${scale.space(0.6)};\n display: flex;\n justify-content: flex-end;\n`\n","import PropTypes from 'prop-types'\nimport React, {useEffect} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, LoadMask, StyledLabel} from 'tocco-ui'\n\nimport {StyledButtonWrapper, StyledCalendarCopy} from './StyledComponents'\n\nconst SubscribeCalendarCopy = ({fetchCalendarLinks, copyCalendarLink, links}) => {\n useEffect(() => {\n fetchCalendarLinks()\n }, [fetchCalendarLinks])\n\n return (\n <LoadMask required={[links]}>\n {links?.map((link, index) => (\n <React.Fragment key={index}>\n <StyledLabel>{link.label}</StyledLabel>\n <StyledCalendarCopy>{link.link}</StyledCalendarCopy>\n <StyledButtonWrapper>\n <Button type=\"button\" onClick={() => copyCalendarLink(link.link)} ink=\"primary\" look=\"raised\">\n <FormattedMessage id=\"client.subscribe-calendar.copy\" />\n </Button>\n </StyledButtonWrapper>\n </React.Fragment>\n ))}\n </LoadMask>\n )\n}\n\nSubscribeCalendarCopy.propTypes = {\n fetchCalendarLinks: PropTypes.func.isRequired,\n copyCalendarLink: PropTypes.func.isRequired,\n links: PropTypes.arrayOf(PropTypes.shape({link: PropTypes.string, label: PropTypes.string}))\n}\n\nexport default SubscribeCalendarCopy\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {copyCalendarLink, fetchCalendarLinks} from '../modules/subscribeCalendar'\nimport SubscribeCalendarCopy from './SubscribeCalendarCopy'\n\nconst mapActionCreators = {\n copyCalendarLink,\n fetchCalendarLinks\n}\n\nconst mapStateToProps = state => ({\n links: state.subscribeCalendar.links\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(SubscribeCalendarCopy))\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_CALENDAR_LINKS]: reducerUtil.singleTransferReducer('links')\n}\n\nconst initialState = {\n links: undefined\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {copyCalendarLink, fetchCalendarLinks} from './actions'\nimport reducer from './reducer'\nimport sagas from './sagas'\n\nexport {copyCalendarLink, fetchCalendarLinks}\nexport {sagas}\nexport default reducer\n","import {all, call, put, takeEvery, takeLatest} from 'redux-saga/effects'\nimport {externalEvents, rest, notification} from 'tocco-app-extensions'\nimport {js, consoleLogger, api} from 'tocco-util'\n\nimport * as actions from './actions'\n\nexport const subscribeCalendarSelector = state => state.subscribeCalendar\n\nexport default function* sagas() {\n yield all([\n takeEvery(actions.FETCH_CALENDAR_LINKS, fetchCalendarLinks),\n takeLatest(actions.COPY_CALENDAR_LINK, copyCalendarLink)\n ])\n}\n\nexport function* fetchCalendarLinks() {\n const where = 'exists(relCalendar where relLecturer.pk == :currentUser or relParticipant.pk == :currentUser)'\n const entities = yield call(\n rest.fetchAllEntities,\n 'Calendar_export_conf',\n {where, paths: ['uuid', 'relCalendar.relCalendar_type.label']},\n {method: 'GET'}\n )\n if (entities.length > 0) {\n const {\n body: {baseUrl}\n } = yield call(rest.requestSaga, 'calendar/export/getBaseUrl')\n const calendarLinks = entities\n .map(entity => api.getFlattenEntity(entity))\n .map(entity => ({\n link: `${baseUrl}/${entity.uuid}`,\n label: entity['relCalendar.relCalendar_type.label'].join(', ')\n }))\n yield put(actions.setCalendarLinks(calendarLinks))\n } else {\n yield put(\n externalEvents.fireExternalEvent('onError', {\n title: 'client.actions.subscribe-calendar.toasterTitle',\n message: 'client.actions.subscribe-calendar.noCalendars'\n })\n )\n }\n}\n\nexport function* copyCalendarLink({payload: {link}}) {\n try {\n yield call(js.copyToClipboard, link)\n yield put(\n notification.toaster({\n type: 'success',\n title: 'client.actions.subscribe-calendar.toasterTitle',\n body: 'client.actions.subscribe-calendar.copiedMessage'\n })\n )\n } catch (err) {\n consoleLogger.logError('Failed to copy calendar subscription link', err)\n yield put(\n notification.toaster({\n type: 'error',\n title: 'client.actions.subscribe-calendar.toasterTitle',\n body: 'client.actions.subscribe-calendar.copyFailedMessage'\n })\n )\n }\n}\n","import subscribeCalendarReducer, {sagas as subscribeCalendarSagas} from './subscribeCalendar'\n\nexport default {\n subscribeCalendar: subscribeCalendarReducer\n}\n\nexport const sagas = [subscribeCalendarSagas]\n","import PropTypes from 'prop-types'\nimport {actionEmitter, appFactory, externalEvents, notification} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport SubscribeCalendar from './components/SubscribeCalendarCopyContainer'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'subscribe-calendar'\n\nconst EXTERNAL_EVENTS = ['emitAction', 'onError']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <SubscribeCalendar />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n actionEmitter.addToStore(store, state => state.input.emitAction)\n notification.addToStore(store, false)\n externalEvents.addToStore(store, state => appFactory.getEvents(EXTERNAL_EVENTS, state.input))\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const hotReloadedReducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, hotReloadedReducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst SubscribeCalendarApp = props => {\n return initApp(packageName, props, appFactory.getEvents(EXTERNAL_EVENTS, props)).component\n}\n\nSubscribeCalendarApp.propTypes = {\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {})\n}\n\nexport default SubscribeCalendarApp\n"],"names":["information","map","id","type","label","value","Field","field","StatedValue","immutable","hasValue","formField","dataType","mappingType","connect","state","inputEditInfo","InputEditInformation","INITIALIZE_INFORMATION","SET_INFORMATION","initialState","ACTION_HANDLERS","actions","reducerUtil","action","handler","sagas","initialize","inputSelector","input","all","takeLatest","select","selection","call","rest","method","body","put","payload","inputEditInfoReducer","inputEditInfoSaga","packageName","initApp","events","publicPath","content","store","appFactory","reducers","textResourceModules","InputEditInfoApp","props","component","propTypes","START_COPY","startCopy","useEffect","LoadMask","mapActionCreators","CopyProgress","copy","getValues","getPaths","navigationStrategy","formName","context","selectionUtil","entities","keys","length","entityName","values","externalEvents","navigateToCreateRelative","defaultValues","Error","extractValue","entityPath","includes","Array","isArray","v","key","extractKeysFromValue","entityKey","paths","sourceEntity","Object","entries","valueObject","filter","d","formDefinition","form","fieldDefinitions","f","ignoreCopy","path","e","copySagas","EXTERNAL_EVENTS","CopyApp","PropTypes","reduce","event","LOAD_FORM_INFO","SET_UUID","LOAD_UUID","SET_FORM_DEFINITION","SET_FIELD_DEFINITIONS","SET_EVALUATION","SET_LOADED","ADD_PSEUDO_ENTITY_PATHS","SUBMIT_FORM","DISPLAY_SHARE_ANSWER_MODAL","REMOVE_SHAREABLE_ANSWERS","FINISH_EVALUATION","setUuid","uuid","setFormDefinition","setFieldDefinitions","setEvaluation","evaluation","createEmptyForm","readonly","children","componentType","layoutType","createVerticalBox","mapQuestion","question","commentLabel","suggestionLabel","mapQuestionField","commentField","mapCommentField","_flatten","parallelQuestions","q","mapTextValue","textAnswer","writable","required","mapChoiceOptions","mapSelectOptions","remoteLogger","answers","selectedValues","comment","getShareableQuestions","questionCategories","c","questions","shareable","getQuestionByKey","find","getAnswerValue","questionType","options","o","checked","selected","REDUX_FORM_NAME","reduxForm","destroyOnUnmount","formValues","submitting","valid","displayShareAnswerModal","submitForm","finishEvaluation","fireExternalEvent","intl","formEventProps","entity","model","fieldMappingType","mode","Button","formatMessage","look","onClick","readOnly","disabled","ink","isFinishable","evaluationExecutionParticipationAction","getFormValues","formErrors","injectIntl","ParticipationForm","loadFormInfo","loaded","handleSyncValidate","Typography","questionnaireLabel","user","description","validate","ParticipationView","getDispatchActions","actionSettings","name","argsFactory","pseudoEntityPaths","answerIds","StyledButtonWrapper","styled","scale","theme","StyledButton","onOk","initialColumns","hidden","useState","columns","setColumns","ColumnPicker","onColumnsChange","dndEnabled","selectedQuestionKeys","loadEvaluation","mapCategory","addReportsToForm","getReportDisplayQueries","evaluateConditions","getReports","shareAnswers","executeFinishEvaluation","onChangeSuggestion","loadFormValues","onChangeComment","onChangeAnswer","saveChangedField","evaluationExecutionParticipationActionSelector","textResourceSelector","messages","PSEUDO_FIELD_SUGGESTION_PREFIX","PSEUDO_FIELD_COMMENT_PREFIX","PSEUDO_FIELD_QUESTION_PREFIX","inputChanged","loadUuid","formActionTypes","onChange","derivedActions","push","actionProperties","reportDisplayId","modifiedFormDefinition","api","entityValues","formActions","acceptedErrorCodes","response","status","errorCode","notification","title","message","boxes","pseudoFields","queries","fullfilledReportDisplayQueriesKeys","reports","groupLabel","where","reportDisplayQueries","query","fullFilledReportDisplayQueries","join","r","actionType","unique_id","reportId","showConfirmation","icon","delay","channel","answerChannel","close","take","questionKeys","resource","shareSuccess","onYes","onNo","onCancel","meta","startsWith","fieldName","textFieldName","replace","selectedSuggestion","display","newValue","formId","questionKey","answer","endpoint","evaluationExecutionParticipationActionSagas","formData","actionEmitter","emitAction","appComponent","handleNotifications","EvaluationExecutionParticipationAction","appContext","SET_EVENT_KEY","SET_EVENT_FORM_NAME","SET_FORM_SCOPE","SET_CURRENT_USER","REGISTER","SET_QUESTION_TYPE_MAP","CHECK_SSO_AVAILABLE","SET_SSO_AVAILABLE","SET_NEW_USER_EMAIL","setEventKey","eventKey","setEventFormName","eventFormName","setFormScope","formScope","addPseudoEntityPaths","setSsoAvailable","ssoAvailable","INITIALIZE","LOGIN","REQUEST_PASSWORD","CHECK_USERNAME","login","username","password","captchaToken","userCode","Pages","CHANGE_PAGE","SET_ENTRY_PAGE","SET_USERNAME","SET_PASSWORD","SET_CAPTCHA_KEY","setEntryPage","entryPage","changePage","currentPage","setUsername","setPassword","text","SignalList","condition","negative","StyledLoginButton","pending","subtitle","autoFill","setAutoFill","onAnimationStart","animationName","target","StyledLoginFormInput","StyledInputCss","StyledLoginFormInputWrapper","StyledEditableWrapperCss","StyledTransparentButton","StyledLoginFormWrapper","StyledButtonGroup","captchaKey","loginPending","recaptchaActivated","showTitle","useAutoFill","usernameAutoFill","usernameAutoFillProps","passwordAutoFill","passwordAutoFillProps","recaptchaRef","useRef","hasUsernameForm","msg","prevRecaptchaActivated","react","handleSubmit","useCallback","preventDefault","recaptchaToken","current","executeAsync","reset","passwordFocus","usernameFocus","onSubmit","autoFocus","onFocus","ref","badge","size","sitekey","hl","locale","loginForm","LoginForm","requestPassword","userName","setUserName","Boolean","PasswordRequest","INITIALIZED","UPDATE_OLD_PASSWORD","UPDATE_NEW_PASSWORD","SET_NEW_PASSWORD","SET_NEW_PASSWORD_VALIDATION_ERRORS","UPDATE_NEW_PASSWORD_REPEAT","SAVE_PASSWORD","SAVE_PASSWORD_SUCCESS","SAVE_PASSWORD_FAILURE","VALIDATE","RESET_PASSWORD_UPDATED_FAILED","updateOldPassword","oldPassword","setNewPasswordValidationErrors","errors","savePasswordFailure","validationMessages","FETCH_VALIDATION_RULES","SET_VALIDATION_RULES","INVALID_CREDENTIALS","UNEXPECTED_ERROR","design","rules","rule","index","error","StyledPasswordInput","StyledPasswordInputWrapper","signal","undefined","onKeyDown","StyledValidationRulesWrapper","fetchValidationRules","forcedUpdate","initialized","savePassword","showOldPasswordField","updateNewPassword","updateNewPasswordRepeat","validationRules","isSubmittable","newPasswordRepeat","newPassword","passwordUpdatePending","oldPasswordReadOnly","newPasswordReadOnly","newPasswordRepeatReadOnly","newPasswordValidationErrors","StyledPasswordUpdateDialog","tabIndex","passwordUpdateFailed","passwordUpdateErrorCode","rulesNeutral","passwordUpdate","dialog","PasswordUpdateDialog","SET_TWO_STEP_ACTIVE","SET_SECRET","SET_USER_NAME","REQUEST_SECRET","GO_TO_SECRET_VERIFICATION","GO_TO_START","GO_TO_SECRET","VERIFY_CODE","SUCCESS","SET_SETUP_SUCCESSFUL","GO_TO_RESULT","setTwoFactorActive","twoFactorActive","setSecret","secret","goToStart","setSetupSuccessful","setupSuccessful","StyledMessageWrapper","StyledIconWrapper","isSuccessful","themeSelector","StyledTextWrapper","success","useOnEnterHandler","twoFactorConnector","Result","renderAs","StyledQRCodeWrapper","StyledParagraph","goToSecretVerification","uri","Secret","forced","requestSecret","infoMsg","dangerouslySetInnerHTML","__html","renderInfo","Start","verifyCode","setUserCode","toString","stopPropagation","EditableValue","format","allowLeadingZeros","Verification","stages","stage","renderContent","TwoFactorConnector","setStage","activateTwoFactorWithoutSession","activateTwoFactor","loadPrincipal2FAInfo","getUsername","fireResize","mainSagas","twoFactorField","usernameSelector","secretSelector","principalsResponse","totpUri","sendRequest","url","request","then","data","headers","Headers","k","sort","encodeURIComponent","_get","code","acceptedStatusCodes","codeVerifyResponse","principals","twoFactorKey","inputUsername","rootSaga","errorLogging","TwoFactorConnectorApp","onSuccess","twoStepLogin","TwoFactorConnectorForm","StyledTwoStepLogin","StyledEditableValue","formEl","useLayoutEffect","querySelector","focus","TwoStepLoginForm","checkUsername","UsernameForm","GlobalRecaptchaBadgeStyle","createGlobalStyle","Login","SET_SHOW_OLD_PASSWORD","SET_STANDALONE","SET_FORCED_UPDATE","SET_USERNAME_OR_PK","SET_CURRENT_USERNAME","setShowOldPasswordField","setForcedUpdate","setUsernameOrPk","usernameOrPk","SET_MESSAGE","CLEAR_MESSAGE","SET_PENDING","ACTIVATE_RECAPTCHA","setMessage","clearMessage","setPending","standalone","singleTransferReducer","attributeName","val","setCurrentUsername","consoleLogger","validationMessagesToErrorMap","forEach","ruleName","VisibilityStatus","doLoginRequest","doSessionRequest","handleTwoStepLoginResponse","handleTwoStepActivationResponse","handlePasswordUpdateResponse","handleBlockResponse","handleFailedResponse","handleInvalidUsernameEmailResponse","handleRedirect","loadRedirectUrl","handleSuccessfulLogin","checkSessionSaga","loadSettings","clearMessagesOnPageChange","loginSelector","requestPasswordSaga","loginActions","doRequest","Promise","resolve","json","getOptions","twoFactorResponse","redirectUrl","window","location","href","queryString","search","queryUrl","_redirect_url","inputUrl","timeout","existingUser","validEmail","loginSaga","loginData","CAPTCHA","TWOSTEPLOGIN","RESET_PASSWORD_REQUIRED","LOGIN_BLOCKED","TWOSTEPLOGIN_ACTIVATION","settings","validateCharacterRule","regex","min","max","specificCharsCount","VALIDATORS","params","validator","storePassword","remoteValidate","getData","getLoginData","formChanged","validationRulesSelector","usernameOrPkSelector","passwordSelector","standaloneSelector","intlSelector","resp","ok","exception","queryParams","localValidate","object","constructor","result","validationMessageErrors","resizeWatcher","loadValidationRules","validationResponse","dialogSagas","passwordSagas","validationRulesSagas","combineReducers","passwordUpdateReducers","passwordUpdateSagas","ENTRY_PAGE_MAP","initLoginApp","customTheme","loginReducers","env","LoginApp","setLocale","backendUrl","Test","EXTERNAL_EVENTS_PASSWORD_UPDATE","initPasswordUpdateApp","PasswordUpdateApp","openLoginWindow","loginEndpoint","loginCompleted","provider","isWidget","baseUrl","redirectUri","sourceUri","providerParam","sourceUriParam","redirectUriParam","popUp","open","height","width","features","left","screen","top","resizable","scrollbars","_reduce","getPopUpFeatures","ssoPopUpCallback","RADIX","hexToRgb","hex","fallBack","normalizeHex","exec","parseInt","g","b","padEnd","calculateLight","colorItem","Math","pow","calculateLumiance","color","hexColor","brightValue","darkValue","rgbColor","primaryColor","secondaryColor","StyledProviderButton","button_primary_color","button_secondary_color","button_icon","position","button_label","StyledButtonContainer","StyledSsoError","StyledSpan","autoLogin","providers","prevProviders","autoLoginProvider","loadProviders","showError","useAutoLogin","ProviderButtons","idx","breakWords","LOAD_PROVIDERS","SET_PROVIDERS","LOGIN_COMPLETED","SET_SHOW_ERROR","ssoLogin","ssoLoginEndpoint","LoginBox","transformProviderEntities","getRedirectUrl","conditions","active","embedType","successful","registration","LoginBoxContainer","SsoLoginApp","businessUnit","StyledContainer","StyledChoiceText","declareFont","checkSsoAvailable","onLoggedIn","onSsoLogin","onRegister","register","loginSuccess","eventRegistrationAction","getPrefixedPath","getEventQuestionType","eventQuestion","relEvent_question_type","getEventQuestionEventKey","relEvent","mapQuestionToPseudoField","mandatory","choiceOptions","relRegistration_answer_option","a","sorting","getQuestionTypeMap","eventQuestions","acc","mapQuestionsToBean","questionTypeMap","eventKeys","mapPseudoFieldToQuestionValue","rawValue","REQUIRED","OPTIONAL","getRequiredModules","modules","m","relEvent_relationship_type","getOptionalModules","mapModulesToPseudoField","displays","minSelection","maxSelection","relCourse","mapModulesToBean","mapPseudoFieldToModuleKeys","currentUser","beforeRenderField","isEventQuestionField","mapFormValuesToModuleKeys","shouldRenderQuestionField","RegisterForm","formInitialValues","handleAsyncValidate","entityId","asyncValidate","asyncBlurFields","getFormInitialValues","EventRegistrationActionView","doSessionCheck","loggedIn","setNewUserEmail","page","newUserEmail","EventRegistration","isSsoAvailable","ssoProviderCount","cachedSsoAvailable","cache","loadFormDefinition","fetchForm","getQuestionsPseudoFormFields","loadModuleValidation","loadModules","getModulesPseudoFormFields","getTermsPseudoFormFields","loadCurrentUser","setupFormForNewUser","loadRegisterBean","eventRegistrationActionSelector","formInfo","widgetConfigKey","_widget_key","agbInfo","privacyProtectionInfo","moduleEventKeys","modulesPseudoFormFields","questionsPseudoFormFields","termsPseudoFormFields","newFormDefinition","createEndpoint","updateEndpoint","questionsPseudoFields","eventEntity","minOptionalModules","minimal_optional_modules","maxOptionalModules","maximal_optional_modules","optionalModuleValidation","requiredModules","optionalModules","requiredLabel","optionalLabel","modulesPseudoFields","termInfoFields","showTerms","termInfo","link","isConfirmation","termText","getTermText","renderHtmlInOptions","mergedPaths","users","pseudoField","useSelectors","setupForm","flattenEntity","email","bean","validation","flatEntity","splittedFlatEntity","sagasUtils","eventRegistrationActionSagas","EventRegistrationAction","INITIALIZE_TEMPLATES","SET_FORM","SET_INITIALIZED","FETCH_TEMPLATES","SET_TEMPLATE_OPTIONS","SET_TEMPLATE_VALUES","setForm","setInitialized","setTemplateOptions","templateOptions","setValuesFromTemplate","templateEntityName","template","customTemplateFields","selectedTemplate","reducer","Layout","Panel","isFramed","isOpen","Select","templateValues","TemplateSelect","initializeTemplates","setFormValues","initializedSelector","formDefinitionSelector","fieldDefinitionSelector","selectedTemplateSelector","fetchTemplates","setTemplateValues","templates","defaultTemplate","responseTemplateTransformer","flattenedValues","fieldValue","_isFunction","TemplateForm","syncValidation","reduxFormName","addToStore","sagaMiddleware","run","LOAD_FORM_DATA","SET_AVAILABLE_COLUMNS","SET_DEFAULT_COLUMNS","SET_TEMPLATE_COLUMNS","SET_DEFAULT_VALUES","RUN_EXPORT","HANDLE_TEMPLATE_CHANGE","setAvailableColumns","availableColumns","setDefaultColumns","defaultColumns","setTemplateColumns","templateColumns","loadFormData","runExport","handleTemplateChange","templatesInitialized","formValid","exportAction","isValid","Export","calculateAvailableColumns","selectionSelector","availableColumnsSelector","defaultColumnsSelector","templateColumnsSelector","selectedPaths","column","exportData","printFieldNames","languageKey","formatKey","filename","archive","background","additionalProperties","templatePaths","actionCreator","allColumns","_unionBy","selectedColumns","_intersectionBy","exportSagas","ExportApp","actionMap","lazy","INITIALIZE_SEARCH","SET_SEARCH_QUERIES","INITIALIZE_TABLE","LOAD_DATA","SET_DATA","SET_EDIT_FORM","UPDATE_VALUE","SET_VALUE","SET_SORTING","SET_DATA_FORM_COLUMNS","SET_ACTION_DEFINITIONS","SET_DATA_LOADING_IN_PROGRESS","SET_CALCULATING","initializeTable","setValue","inputDataKey","node","setDataFormColumns","dataFormColumns","setActionDefinitions","actionDefinitions","setDataLoadingInProgress","dataLoadingInProgress","setCalculating","inputData","loading","Box","StyledExtendSearchButtonWrapper","handleChange","searchFormDefinition","setSearchFields","tql","transformFormValuesToTql","fieldType","getFieldType","tqlBuilder","container","child","isAdmin","showExtendedSearchForm","setShowExtendedSearchForm","fields","simpleSearchFields","simpleSearch","extendable","every","Ball","_debounce","noButtons","searchQueries","inputEditSearch","InputEditSearch","SET_CURRENT_PAGE","SET_TOTAL_COUNT","arrowKeyHandler","document","activeElement","tagName","split","rowIndex","columnIndex","currentIndex","Number","indexDiff","idToFocus","elementToFocus","getElementById","focusElement","findHorizontalElementToFocus","adjustedIndex","setTimeout","StyledInputEditTableWrapper","StyledCell","StyledReactSelectOuterWrapper","declareFocus","dataCellRenderer","fieldDefinition","inputEditForm","updateValue","setSorting","totalCount","recordsPerPage","setCurrentPage","columnPosition","setColumnPosition","dataColumns","inputColumns","sortable","definition","dynamic","alignment","CellRenderer","rowData","rowIdx","row","pk","readOnlyValue","getReadOnlyValue","FormattedValue","changedValue","inputCellRenderer","cc","findIndex","Table","onSortingChange","onColumnPositionChange","dragColumn","dropColumn","paginationInfo","onPageChange","scrollBehaviour","add","inputEditTable","inputEditPagination","InputEditTable","StyledPaneWrapper","StyledListView","StyledActionsWrapper","StyledListWrapper","onActionClick","initializeSearch","isCollapsed","setIsCollapsed","customRenderedActions","cancel","BackButton","Actions","SidepanelContainer","sidepanelPosition","sidepanelCollapsed","setSidepanelCollapsed","Sidepanel","SidepanelHeader","SidepanelMainContent","notify","inputEdit","InputEdit","SET_HANDLE_NOTIFICATIONS","SET_UPDATE_IN_PROGRESS","setHandleNotifications","setSelectionUpdateInProgress","updateInProgress","reload","updateInputDatas","inputEditTableActions","inputEditAction","transformResponseData","dataRecord","splitObj","isInputField","isNaN","inputFields","entityFields","__key","handleResponse","inputEditSelector","inputEditTableSelector","inputEditSearchSelector","searchQueriesSelector","inputEditPaginationSelector","loadData","takeEvery","processDataForm","dataForm","readonlyActions","hiddenActions","scope","inputEditDataForm","editFormDefinition","editColumns","searchFormActions","inputEditActions","newSorting","newSearchQueries","newPage","getPathsFromTable","searchBean","limit","transformedData","count","flatMap","calculatedValues","actionsToPut","setSearchQueries","getOpposite","order","incrementLoadingCounter","decrementLoadingCounter","contains","s","currentSorting","inputEditReducer","inputEditSearchReducer","inputEditPaginationReducer","inputEditSagas","inputEditTableSagas","inputEditSearchSagas","inputEditPaginationSagas","customActions","Action","InputEditApp","LOAD_FORM_DEFINITION","SEND_APPLICATION","sendApplication","jobOfferApply","Form","jobOfferKey","ApplicationForm","jobOfferApplySelector","application","jobOfferApplySagas","JobOfferApplyApp","INIT_MAIL_ACTION","SEND_MAIL","SET_FORM_VALID","setFormValid","initMailAction","sendMail","mailAction","MailAction","loadEmailTemplate","mailActionSelector","debounce","emailTemplate","subject","mail_text","_isEmpty","widgetKey","flattened","mailSettings","mailActionSagas","MailingListMailAction","FETCH_CALENDAR_LINKS","SET_CALENDAR_LINKS","COPY_CALENDAR_LINK","StyledCalendarCopy","StyledCode","fetchCalendarLinks","copyCalendarLink","links","subscribeCalendar","SubscribeCalendarCopy","calendarLinks","js","subscribeCalendarReducer","subscribeCalendarSagas","SubscribeCalendarApp"],"sourceRoot":""}
|