diff --git a/compile-less.sh b/compile-less.sh index 3a6185b..30de236 100755 --- a/compile-less.sh +++ b/compile-less.sh @@ -4,6 +4,7 @@ for file in src/**/*.less do FROM=$file TO=${file/.*/.css} - echo "$FROM --> $TO" - node_modules/less/bin/lessc "$FROM" "$TO" + SOURCE_MAP=${file/.*/.css.map} + echo "$FROM --> $TO & $SOURCE_MAP" + node_modules/less/bin/lessc "$FROM" "$TO" --source-map="$SOURCE_MAP" done diff --git a/package.json b/package.json index 77e75ee..8787c8c 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/react-dom": "^18.2.7", "bootstrap": "^5.3.0", "react": "^18.2.0", + "react-bootstrap": "^2.8.0", "react-dom": "^18.2.0", "react-hook-form": "^7.45.2", "react-router-dom": "^6.14.2", diff --git a/src/components/Helpers.tsx b/src/components/Helpers.tsx new file mode 100644 index 0000000..86a01be --- /dev/null +++ b/src/components/Helpers.tsx @@ -0,0 +1,3 @@ +export function SignedNumberToText(val: number) : string { + return val > 0 ? '+'+val : val.toString() +} diff --git a/src/components/KarakterKepzettsegek.tsx b/src/components/KarakterKepzettsegek.tsx index ccca418..cbd78a6 100644 --- a/src/components/KarakterKepzettsegek.tsx +++ b/src/components/KarakterKepzettsegek.tsx @@ -2,7 +2,13 @@ import React from "react"; import KepzettsegSelector from "./KepzettsegSelector"; import {Osztaly} from "../domain-models/osztaly"; import {UseFormRegisterReturn} from "react-hook-form"; -import {Kepzettseg, Kepzettsegek, KepzettsegId, KepzettsegLista} from "../domain-models/kepzettsegek"; +import { + AvailableKezpettsegList, + Kepzettseg, + Kepzettsegek, + KepzettsegId, + KepzettsegLista +} from "../domain-models/kepzettsegek"; import {Modifier} from "../domain-models/tulajdonsag"; import {Faj} from "../domain-models/faj"; @@ -42,7 +48,7 @@ function KarakterKepzettsegek (props: { }) { const { faj, osztaly, t_int, register, watch } = props - const availableKepzettsegList = KepzettsegLista.filter(k => k.Osztalyok == null || k.Osztalyok.includes(osztaly)) + const availableKepzettsegList = AvailableKezpettsegList(osztaly) let numberOfKepzettseg = 3 + Modifier(t_int) + (faj === Faj.Ember ? 1 : 0) console.log('Raw Number of Kepzetsegek = ', numberOfKepzettseg) @@ -74,7 +80,7 @@ function KarakterKepzettsegek (props: { } const tolvajKepzettsegek = KepzettsegLista.filter(k => k.Osztalyok != null && k.Osztalyok.includes(Osztaly.Tolvaj)) - const getTolvajKepzettsegN = (n: number) => Kepzettsegek[watch('tolvaj_kep_'+n, tolvajKepzettsegek[n].Id) as KepzettsegId] + const getTolvajKepzettsegN = (n: number) => Kepzettsegek[watch('tolvaj_kepzettseg.'+n, tolvajKepzettsegek[n].Id) as KepzettsegId] const getTolvajKepzettsegListaN = (n: number) => { let response = tolvajKepzettsegek; @@ -98,7 +104,7 @@ function KarakterKepzettsegek (props: { numberOfKepzettseg={numberOfKepzettseg} availableKepzettsegList={availableKepzettsegList} getKepzettsegListaN={getKepzettsegListaN} - register={(n: number) => register('kep_' + n)} + register={(n: number) => register('kepzettseg.' + n)} getKepzettsegN={getKepzettsegN} /> {osztaly === Osztaly.Tolvaj && register('tolvaj_kep_' + n)} + register={(n: number) => register('tolvaj_kepzettseg.' + n)} getKepzettsegN={getTolvajKepzettsegN} />} } diff --git a/src/components/MasodlagosErtekek.tsx b/src/components/MasodlagosErtekek.tsx new file mode 100644 index 0000000..3d8363a --- /dev/null +++ b/src/components/MasodlagosErtekek.tsx @@ -0,0 +1,161 @@ +import React from "react"; +import {Osztaly} from "../domain-models/osztaly"; +import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag"; +import {OverlayTrigger, Tooltip} from "react-bootstrap"; +import {SignedNumberToText} from "./Helpers"; + +function HP(osztaly: Osztaly, egeszseg: number) { + let base = 4; + switch (osztaly){ + case Osztaly.Barbar: + base = 12 + break; + case Osztaly.Amazon: + case Osztaly.Ijasz: + case Osztaly.Kaloz: + case Osztaly.Harcos: + base = 10; + break + case Osztaly.Pap: + base = 8; + break; + case Osztaly.Tolvaj: + base = 6; + break; + case Osztaly.Varazslo: + case Osztaly.Illuzionista: + base = 4; + break; + } + return base + Modifier(egeszseg) +} + +function TamadasBonusz(osztaly: Osztaly) : number { + switch (osztaly){ + case Osztaly.Barbar: + case Osztaly.Amazon: + case Osztaly.Ijasz: + case Osztaly.Kaloz: + case Osztaly.Harcos: + return 2; + case Osztaly.Pap: + case Osztaly.Tolvaj: + return 0; + case Osztaly.Varazslo: + case Osztaly.Illuzionista: + return 0; + } +} + +function KozelharciTB(osztaly: Osztaly, tulajdonsagok: KarakterTulajdonsagok): number { + const base = TamadasBonusz(osztaly); + if (osztaly === Osztaly.Kaloz && tulajdonsagok.t_ugy > tulajdonsagok.t_ero) { + return base + Modifier(tulajdonsagok.t_ugy) + } + return base + Modifier(tulajdonsagok.t_ero) +} + +function KitartasMento(osztaly: Osztaly) : number { + switch (osztaly){ + case Osztaly.Barbar: + case Osztaly.Amazon: + case Osztaly.Ijasz: + case Osztaly.Kaloz: + case Osztaly.Harcos: + case Osztaly.Pap: + return 2; + case Osztaly.Tolvaj: + case Osztaly.Varazslo: + case Osztaly.Illuzionista: + return 0; + } +} + +function ReflexMento(osztaly: Osztaly) : number { + switch (osztaly){ + case Osztaly.Tolvaj: + return 2; + case Osztaly.Barbar: + case Osztaly.Amazon: + case Osztaly.Ijasz: + case Osztaly.Kaloz: + case Osztaly.Harcos: + case Osztaly.Pap: + case Osztaly.Varazslo: + case Osztaly.Illuzionista: + return 0; + } +} + +function AkarateroMento(osztaly: Osztaly) : number { + switch (osztaly){ + case Osztaly.Pap: + case Osztaly.Varazslo: + case Osztaly.Illuzionista: + return 2; + case Osztaly.Tolvaj: + case Osztaly.Barbar: + case Osztaly.Amazon: + case Osztaly.Ijasz: + case Osztaly.Kaloz: + case Osztaly.Harcos: + return 0; + } +} + +function MasodlagosErtekek(props: {osztaly: Osztaly, tulajdonsagok: () => KarakterTulajdonsagok}) { + + const { osztaly, tulajdonsagok } = props; + + const tooltip = ( + + Hentelési Potenciál + + ); + + return <> +
+
Másodlagos értékek
+
+
+
+
+ +

{HP(osztaly, tulajdonsagok().t_egs)}

+
+
+ +

{10+Modifier(tulajdonsagok().t_ugy)}

+
+
+ +

{SignedNumberToText(KozelharciTB(osztaly, tulajdonsagok()))}

+
+
+ +

{SignedNumberToText(TamadasBonusz(osztaly) + Modifier(tulajdonsagok().t_ugy))}

+
+
+
+
+ +

{SignedNumberToText(KitartasMento(osztaly) + Modifier(tulajdonsagok().t_egs))}

+
+
+ +

{SignedNumberToText(ReflexMento(osztaly) + Modifier(tulajdonsagok().t_ugy))}

+
+
+ +

{SignedNumberToText(AkarateroMento(osztaly) + Modifier(tulajdonsagok().t_bol))}

+
+
+
+ +} + +export default MasodlagosErtekek \ No newline at end of file diff --git a/src/components/TulajdonsagInput.tsx b/src/components/TulajdonsagInput.tsx index 3bb5da5..b169767 100644 --- a/src/components/TulajdonsagInput.tsx +++ b/src/components/TulajdonsagInput.tsx @@ -2,10 +2,8 @@ import React from "react"; import {Faj, FajLabel} from "../domain-models/faj"; import {Modifier} from "../domain-models/tulajdonsag"; +import {SignedNumberToText} from "./Helpers"; -export function SignedNumberToText(val: number) : string { - return val > 0 ? '+'+val : val.toString() -} function fajiModositoText(faj: Faj, szamolas: (f: Faj) => number) : string { const mod = szamolas(faj) diff --git a/src/components/Tulajdonsagok.tsx b/src/components/Tulajdonsagok.tsx index 29b7689..de5bce8 100644 --- a/src/components/Tulajdonsagok.tsx +++ b/src/components/Tulajdonsagok.tsx @@ -22,61 +22,61 @@ function Tulajdonsagok(props: {
Tulajdonságok
Number(watch(Tulajdonsag.Ero, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Ero, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Ero)} - register={() => register(Tulajdonsag.Ero, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Ero, tulajdonsagDefaultOptions)} tooLowError='Túl gyenge vagy, nem bírtad felemelni a kezed a jelentkezéshez!' tooHighError='Szét szakadtak az izmaid!' /> Number(watch(Tulajdonsag.Ugyesseg, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Ugyesseg, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Ugyesseg)} - register={() => register(Tulajdonsag.Ugyesseg, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Ugyesseg, tulajdonsagDefaultOptions)} tooLowError='Orrabuktál jelentkezés helyett!' tooHighError='Emberfeletti zsonglörködésedre záptojással válaszoltak a helyiek!' /> Number(watch(Tulajdonsag.Egeszseg, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Egeszseg, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Egeszseg)} - register={() => register(Tulajdonsag.Egeszseg, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Egeszseg, tulajdonsagDefaultOptions)} tooLowError='Túl beteg vagy ahhoz, hogy kalandozni menj!' tooHighError='Kicsattanó egészségedet csak a diambroid állíthatja meg, minő véletlen, hogy pont az arcodba robbant...' /> Number(watch(Tulajdonsag.Intelligencia, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Intelligencia, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Intelligencia)} - register={() => register(Tulajdonsag.Intelligencia, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Intelligencia, tulajdonsagDefaultOptions)} tooLowError='Elfelejtetted, hogy mikor is kéne kalandozni indulni!' tooHighError='Ilyen tudás és logika birtokában mi szükséged van új információkra? Mindent le tudsz vezetni a már meglévő ismereteidből, és ezt azonnal beláttad.' /> Number(watch(Tulajdonsag.Bolcsesseg, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Bolcsesseg, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Bolcsesseg)} - register={() => register(Tulajdonsag.Bolcsesseg, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Bolcsesseg, tulajdonsagDefaultOptions)} tooLowError='Nem bírtál ellenállni a kíváncsiságodnak, hogy közelebbről is megvizsgáld a tőr hegyét. Nagyon közelről.' tooHighError='Hatalmas bölcsességedben beláttad a kalandozás veszélyeit és inkább más tevékenységbe fogtál.' /> Number(watch(Tulajdonsag.Karizma, 10))} + getCurrentValue={() => Number(watch('tul.'+Tulajdonsag.Karizma, 10))} currentFaj={currentFaj} fajiModosito={TulajdonsagModositokFajokra(Tulajdonsag.Karizma)} - register={() => register(Tulajdonsag.Karizma, tulajdonsagDefaultOptions)} + register={() => register('tul.'+Tulajdonsag.Karizma, tulajdonsagDefaultOptions)} tooLowError='Mintha taszítanád az embereket, sose sikerült kalandozó csapatot találnod.' tooHighError='Az ellenkező nem tagjai nem engedték, hogy útnak indulj.' /> diff --git a/src/domain-models/kepzettsegek.ts b/src/domain-models/kepzettsegek.ts index 269e46c..88d968d 100644 --- a/src/domain-models/kepzettsegek.ts +++ b/src/domain-models/kepzettsegek.ts @@ -204,4 +204,8 @@ export const KepzettsegLista: Kepzettseg[] = [ export const Kepzettsegek: Record = KepzettsegLista.reduce( (acc: Record, k) => { acc[k.Id] = k; return acc; }, - {} as Record); \ No newline at end of file + {} as Record); + +export function AvailableKezpettsegList(osztaly: Osztaly): Kepzettseg[] { + return KepzettsegLista.filter(k => k.Osztalyok == null || k.Osztalyok.includes(osztaly)) +} \ No newline at end of file diff --git a/src/domain-models/tulajdonsag.ts b/src/domain-models/tulajdonsag.ts index 66432b8..09a3b05 100644 --- a/src/domain-models/tulajdonsag.ts +++ b/src/domain-models/tulajdonsag.ts @@ -10,6 +10,8 @@ export enum Tulajdonsag { Karizma = 't_kar', } +export type KarakterTulajdonsagok = Record + export function TulajdonsagLabel(tul: Tulajdonsag) : string { switch (tul) { case Tulajdonsag.Bolcsesseg: return 'Bölcsesség'; diff --git a/src/pages/CreateCharacter.tsx b/src/pages/CreateCharacter.tsx index 4a13872..b7104ca 100644 --- a/src/pages/CreateCharacter.tsx +++ b/src/pages/CreateCharacter.tsx @@ -8,6 +8,7 @@ import Tulajdonsagok from "../components/Tulajdonsagok"; import OsztalySelector from "../components/OsztalySelector"; import KarakterKepzettsegek from "../components/KarakterKepzettsegek"; import {Tulajdonsag} from "../domain-models/tulajdonsag"; +import MasodlagosErtekek from "../components/MasodlagosErtekek"; const FAJ_FIELD_NAME = 'faj' const OSZTALY_FIELD_NAME = 'osztaly' @@ -70,6 +71,9 @@ function CreateCharacterPage() { watch={watch} /> +
+ watch('tul', {})} /> +
diff --git a/yarn.lock b/yarn.lock index 08e4e99..a41a86f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1132,6 +1132,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -1683,11 +1690,45 @@ schema-utils "^3.0.0" source-map "^0.7.3" +"@popperjs/core@^2.11.6": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@react-aria/ssr@^3.5.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.7.1.tgz#11d0fac17e50028459aad325c2d093dbb2960f68" + integrity sha512-ovVPSD1WlRpZHt7GI9DqJrWG3OIYS+NXQ9y5HIewMJpSe+jPQmMQfyRmgX4EnvmxSlp0u04Wg/7oItcoSIb/RA== + dependencies: + "@swc/helpers" "^0.5.0" + "@remix-run/router@1.7.2": version "1.7.2" resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== +"@restart/hooks@^0.4.9": + version "0.4.11" + resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.11.tgz#8876ccce1d4ad2a4b793a31689d63df36cf56088" + integrity sha512-Ft/ncTULZN6ldGHiF/k5qt72O8JyRMOeg0tApvCni8LkoiEahO+z3TNxfXIVGy890YtWVDvJAl662dVJSJXvMw== + dependencies: + dequal "^2.0.3" + +"@restart/ui@^1.6.3": + version "1.6.6" + resolved "https://registry.yarnpkg.com/@restart/ui/-/ui-1.6.6.tgz#3481e2eaf15d7cae55bb2f518624e10d19c75800" + integrity sha512-eC3puKuWE1SRYbojWHXnvCNHGgf3uzHCb6JOhnF4OXPibOIPEkR1sqDSkL643ydigxwh+ruCa1CmYHlzk7ikKA== + dependencies: + "@babel/runtime" "^7.21.0" + "@popperjs/core" "^2.11.6" + "@react-aria/ssr" "^3.5.0" + "@restart/hooks" "^0.4.9" + "@types/warning" "^3.0.0" + dequal "^2.0.3" + dom-helpers "^5.2.0" + uncontrollable "^8.0.1" + warning "^4.0.3" + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -1867,6 +1908,13 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@swc/helpers@^0.5.0": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + "@testing-library/dom@^8.5.0": version "8.20.1" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f" @@ -2162,6 +2210,13 @@ dependencies: "@types/react" "*" +"@types/react-transition-group@^4.4.5": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" + integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== + dependencies: + "@types/react" "*" + "@types/react@*", "@types/react@^18.2.15": version "18.2.15" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.15.tgz#14792b35df676c20ec3cf595b262f8c615a73066" @@ -2171,6 +2226,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@>=16.9.11": + version "18.2.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@1.17.1": version "1.17.1" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" @@ -2241,6 +2305,11 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== +"@types/warning@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" + integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA== + "@types/ws@^8.5.5": version "8.5.5" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb" @@ -3220,6 +3289,11 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== +classnames@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + clean-css@^5.2.2: version "5.3.2" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" @@ -3860,6 +3934,14 @@ dom-converter@^0.2.0: dependencies: utila "~0.4" +dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + dom-serializer@0: version "0.2.2" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" @@ -5211,6 +5293,13 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -6332,7 +6421,7 @@ lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7573,7 +7662,15 @@ prompts@^2.0.1, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.8.1: +prop-types-extra@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" + integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== + dependencies: + react-is "^16.3.2" + warning "^4.0.0" + +prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -7668,6 +7765,24 @@ react-app-polyfill@^3.0.0: regenerator-runtime "^0.13.9" whatwg-fetch "^3.6.2" +react-bootstrap@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-2.8.0.tgz#781f254b33090c1d50ed521b40697727267c6add" + integrity sha512-e/aNtxl0Z2ozrIaR82jr6Zz7ss9GSoaXpQaxmvtDUsTZIq/XalkduR/ZXP6vbQHz2T4syvjA+4FbtwELxxmpww== + dependencies: + "@babel/runtime" "^7.21.0" + "@restart/hooks" "^0.4.9" + "@restart/ui" "^1.6.3" + "@types/react-transition-group" "^4.4.5" + classnames "^2.3.2" + dom-helpers "^5.2.1" + invariant "^2.2.4" + prop-types "^15.8.1" + prop-types-extra "^1.1.0" + react-transition-group "^4.4.5" + uncontrollable "^7.2.1" + warning "^4.0.3" + react-dev-utils@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" @@ -7716,7 +7831,7 @@ react-hook-form@^7.45.2: resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.45.2.tgz#c757f3d5e633ccb186443d57c10fc511df35721a" integrity sha512-9s45OdTaKN+4NSTbXVqeDITd/nwIg++nxJGL8+OD5uf1DxvhsXQ641kaYHk5K28cpIOTYm71O/fYk7rFaygb3A== -react-is@^16.13.1: +react-is@^16.13.1, react-is@^16.3.2: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -7731,6 +7846,11 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" @@ -7806,6 +7926,16 @@ react-scripts@5.0.1: optionalDependencies: fsevents "^2.3.2" +react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -7881,6 +8011,11 @@ regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" @@ -8846,6 +8981,11 @@ tslib@^2.0.3, tslib@^2.3.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.4.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -8949,6 +9089,21 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +uncontrollable@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738" + integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ== + dependencies: + "@babel/runtime" "^7.6.3" + "@types/react" ">=16.9.11" + invariant "^2.2.4" + react-lifecycles-compat "^3.0.4" + +uncontrollable@^8.0.1: + version "8.0.4" + resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.4.tgz#a0a8307f638795162fafd0550f4a1efa0f8c5eb6" + integrity sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -9092,6 +9247,13 @@ walker@^1.0.7: dependencies: makeerror "1.0.12" +warning@^4.0.0, warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"