@epic-web/workshop-app 5.22.4 → 5.23.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/build/client/assets/{_-CHaVBRQw.js → _-BaHOmd8F.js} +2 -2
- package/build/client/assets/{_-CHaVBRQw.js.map → _-BaHOmd8F.js.map} +1 -1
- package/build/client/assets/_basePickBy-B3Ji82Lk.js +2 -0
- package/build/client/assets/_basePickBy-B3Ji82Lk.js.map +1 -0
- package/build/client/assets/_baseUniq-BoGoqSUm.js +2 -0
- package/build/client/assets/_baseUniq-BoGoqSUm.js.map +1 -0
- package/build/client/assets/{_exerciseNumber-3uq8PYSd.js → _exerciseNumber-DtILU6SM.js} +2 -2
- package/build/client/assets/{_exerciseNumber-3uq8PYSd.js.map → _exerciseNumber-DtILU6SM.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-D5VDI7vZ.js → _exerciseNumber_._stepNumber-DoOFEk-P.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-D5VDI7vZ.js.map → _exerciseNumber_._stepNumber-DoOFEk-P.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_.finished-3Iv9ikNq.js → _exerciseNumber_.finished-CEK9anWX.js} +2 -2
- package/build/client/assets/{_exerciseNumber_.finished-3Iv9ikNq.js.map → _exerciseNumber_.finished-CEK9anWX.js.map} +1 -1
- package/build/client/assets/{_layout-DV29dlKr.js → _layout-B_BIIcpM.js} +2 -2
- package/build/client/assets/{_layout-DV29dlKr.js.map → _layout-B_BIIcpM.js.map} +1 -1
- package/build/client/assets/_layout-D1r_62oj.js +6 -0
- package/build/client/assets/_layout-D1r_62oj.js.map +1 -0
- package/build/client/assets/{_layout-CwTidn3v.js → _layout-D7_F6t3x.js} +2 -2
- package/build/client/assets/{_layout-CwTidn3v.js.map → _layout-D7_F6t3x.js.map} +1 -1
- package/build/client/assets/_layout-DzlTTMQ0.js +2 -0
- package/build/client/assets/_layout-DzlTTMQ0.js.map +1 -0
- package/build/client/assets/accordion-CpiLc1m2.js +2 -0
- package/build/client/assets/accordion-CpiLc1m2.js.map +1 -0
- package/build/client/assets/{account-CN4B8rm4.js → account-CbFDiVNd.js} +2 -2
- package/build/client/assets/{account-CN4B8rm4.js.map → account-CbFDiVNd.js.map} +1 -1
- package/build/client/assets/app-CQvK51s0.js +2 -0
- package/build/client/assets/{app-lUkT_xku.js.map → app-CQvK51s0.js.map} +1 -1
- package/build/client/assets/{app-DGPT3Jy6.css → app-DSmkkXO5.css} +1 -1
- package/build/client/assets/arc-rF8TbXNV.js +2 -0
- package/build/client/assets/arc-rF8TbXNV.js.map +1 -0
- package/build/client/assets/architectureDiagram-IEHRJDOE-D7gCCmY9.js +37 -0
- package/build/client/assets/architectureDiagram-IEHRJDOE-D7gCCmY9.js.map +1 -0
- package/build/client/assets/blockDiagram-JOT3LUYC-yGQOzhkw.js +122 -0
- package/build/client/assets/blockDiagram-JOT3LUYC-yGQOzhkw.js.map +1 -0
- package/build/client/assets/{button-ChOzbirS.js → button-Dt4EcDfR.js} +2 -2
- package/build/client/assets/{button-ChOzbirS.js.map → button-Dt4EcDfR.js.map} +1 -1
- package/build/client/assets/c4Diagram-VJAJSXHY-CTFjYF37.js +11 -0
- package/build/client/assets/c4Diagram-VJAJSXHY-CTFjYF37.js.map +1 -0
- package/build/client/assets/channel-5s71-OE9.js +2 -0
- package/build/client/assets/channel-5s71-OE9.js.map +1 -0
- package/build/client/assets/chunk-4BMEZGHF-BIe0IUDz.js +2 -0
- package/build/client/assets/chunk-4BMEZGHF-BIe0IUDz.js.map +1 -0
- package/build/client/assets/chunk-A2AXSNBT-B-nCbUBj.js +165 -0
- package/build/client/assets/chunk-A2AXSNBT-B-nCbUBj.js.map +1 -0
- package/build/client/assets/chunk-AEK57VVT-B-cCHPs2.js +221 -0
- package/build/client/assets/chunk-AEK57VVT-B-cCHPs2.js.map +1 -0
- package/build/client/assets/chunk-D6G4REZN-EQ3R8OZx.js +2 -0
- package/build/client/assets/chunk-D6G4REZN-EQ3R8OZx.js.map +1 -0
- package/build/client/assets/chunk-RZ5BOZE2-h6svq8Xk.js +2 -0
- package/build/client/assets/chunk-RZ5BOZE2-h6svq8Xk.js.map +1 -0
- package/build/client/assets/chunk-XZIHB7SX-74-HFRcU.js +2 -0
- package/build/client/assets/chunk-XZIHB7SX-74-HFRcU.js.map +1 -0
- package/build/client/assets/classDiagram-GIVACNV2-CWogZCzR.js +2 -0
- package/build/client/assets/classDiagram-GIVACNV2-CWogZCzR.js.map +1 -0
- package/build/client/assets/classDiagram-v2-COTLJTTW-CWogZCzR.js +2 -0
- package/build/client/assets/classDiagram-v2-COTLJTTW-CWogZCzR.js.map +1 -0
- package/build/client/assets/clone-nHZ14b_E.js +2 -0
- package/build/client/assets/clone-nHZ14b_E.js.map +1 -0
- package/build/client/assets/{components-DrvY4pal.js → components-5arJTWsS.js} +5 -5
- package/build/client/assets/{components-DrvY4pal.js.map → components-5arJTWsS.js.map} +1 -1
- package/build/client/assets/cytoscape.esm-BY7v1xhs.js +332 -0
- package/build/client/assets/cytoscape.esm-BY7v1xhs.js.map +1 -0
- package/build/client/assets/dagre-OKDRZEBW-Bq-HgVN8.js +5 -0
- package/build/client/assets/dagre-OKDRZEBW-Bq-HgVN8.js.map +1 -0
- package/build/client/assets/diagram-SSKATNLV-Cls675Lh.js +44 -0
- package/build/client/assets/diagram-SSKATNLV-Cls675Lh.js.map +1 -0
- package/build/client/assets/diagram-VNBRO52H-CJDqBhLa.js +25 -0
- package/build/client/assets/diagram-VNBRO52H-CJDqBhLa.js.map +1 -0
- package/build/client/assets/diff-8N5KyD7o.js +2 -0
- package/build/client/assets/{diff-CVrsnWqw.js.map → diff-8N5KyD7o.js.map} +1 -1
- package/build/client/assets/{diff-CTHVtVGQ.js → diff-Bu4t2NGL.js} +2 -2
- package/build/client/assets/{diff-CTHVtVGQ.js.map → diff-Bu4t2NGL.js.map} +1 -1
- package/build/client/assets/{discord-gROK6Zn6.js → discord-BU7RzE6-.js} +2 -2
- package/build/client/assets/{discord-gROK6Zn6.js.map → discord-BU7RzE6-.js.map} +1 -1
- package/build/client/assets/discord-ut4t-aMQ.js +2 -0
- package/build/client/assets/discord-ut4t-aMQ.js.map +1 -0
- package/build/client/assets/entry.client-BLUlgPHE.js +44 -0
- package/build/client/assets/{entry.client-CQusg5Iz.js.map → entry.client-BLUlgPHE.js.map} +1 -1
- package/build/client/assets/epic-video-DN9DRRHf.js +3206 -0
- package/build/client/assets/epic-video-DN9DRRHf.js.map +1 -0
- package/build/client/assets/erDiagram-Q7BY3M3F-DdKn4jVQ.js +61 -0
- package/build/client/assets/erDiagram-Q7BY3M3F-DdKn4jVQ.js.map +1 -0
- package/build/client/assets/{error-boundary-CAu3AmhN.js → error-boundary-B07cWiEy.js} +2 -2
- package/build/client/assets/{error-boundary-CAu3AmhN.js.map → error-boundary-B07cWiEy.js.map} +1 -1
- package/build/client/assets/{finished-9PhQncNF.js → finished-B3G1RUDO.js} +2 -2
- package/build/client/assets/{finished-9PhQncNF.js.map → finished-B3G1RUDO.js.map} +1 -1
- package/build/client/assets/flowDiagram-4HSFHLVR-5Mg796nh.js +162 -0
- package/build/client/assets/flowDiagram-4HSFHLVR-5Mg796nh.js.map +1 -0
- package/build/client/assets/ganttDiagram-APWFNJXF-YO2fxWzG.js +258 -0
- package/build/client/assets/ganttDiagram-APWFNJXF-YO2fxWzG.js.map +1 -0
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-DQCZvhP_.js +66 -0
- package/build/client/assets/gitGraphDiagram-7IBYFJ6S-DQCZvhP_.js.map +1 -0
- package/build/client/assets/graph-BFAO9Sgp.js +2 -0
- package/build/client/assets/graph-BFAO9Sgp.js.map +1 -0
- package/build/client/assets/{index-egcHQOpF.js → index-B8yUFowV.js} +2 -2
- package/build/client/assets/{index-egcHQOpF.js.map → index-B8yUFowV.js.map} +1 -1
- package/build/client/assets/{index-qo6WmPUa.js → index-BfCSiT_X.js} +2 -2
- package/build/client/assets/{index-qo6WmPUa.js.map → index-BfCSiT_X.js.map} +1 -1
- package/build/client/assets/index-BmMpCvYx.js +2 -0
- package/build/client/assets/index-BmMpCvYx.js.map +1 -0
- package/build/client/assets/index-CEP3Xxa0.js +36 -0
- package/build/client/assets/index-CEP3Xxa0.js.map +1 -0
- package/build/client/assets/index-Dkt2MSig.js +2 -0
- package/build/client/assets/index-Dkt2MSig.js.map +1 -0
- package/build/client/assets/index-Do-KWT0a.js +42 -0
- package/build/client/assets/index-Do-KWT0a.js.map +1 -0
- package/build/client/assets/index-Dsusf_Av.js +38 -0
- package/build/client/assets/{index-CGzylDPY.js.map → index-Dsusf_Av.js.map} +1 -1
- package/build/client/assets/index-DvQyydjU.js +3 -0
- package/build/client/assets/index-DvQyydjU.js.map +1 -0
- package/build/client/assets/{index-CYZfnGWa.js → index-Fw2eA3AF.js} +2 -2
- package/build/client/assets/{index-CYZfnGWa.js.map → index-Fw2eA3AF.js.map} +1 -1
- package/build/client/assets/infoDiagram-PH2N3AL5-x87RxSs8.js +3 -0
- package/build/client/assets/infoDiagram-PH2N3AL5-x87RxSs8.js.map +1 -0
- package/build/client/assets/init-Gi6I4Gst.js +2 -0
- package/build/client/assets/init-Gi6I4Gst.js.map +1 -0
- package/build/client/assets/journeyDiagram-U35MCT3I-D5yGbOLJ.js +139 -0
- package/build/client/assets/journeyDiagram-U35MCT3I-D5yGbOLJ.js.map +1 -0
- package/build/client/assets/kanban-definition-NDS4AKOZ-BM6KyRww.js +89 -0
- package/build/client/assets/kanban-definition-NDS4AKOZ-BM6KyRww.js.map +1 -0
- package/build/client/assets/katex-ChWnQ-fc.js +262 -0
- package/build/client/assets/katex-ChWnQ-fc.js.map +1 -0
- package/build/client/assets/layout-qCiM2Jgn.js +2 -0
- package/build/client/assets/layout-qCiM2Jgn.js.map +1 -0
- package/build/client/assets/linear-B3zp51yW.js +2 -0
- package/build/client/assets/linear-B3zp51yW.js.map +1 -0
- package/build/client/assets/{loading-CPEkK5hO.js → loading-BPTYJOXN.js} +2 -2
- package/build/client/assets/{loading-CPEkK5hO.js.map → loading-BPTYJOXN.js.map} +1 -1
- package/build/client/assets/login-CfyUfm-m.js +2 -0
- package/build/client/assets/{login-C9JmYc0v.js.map → login-CfyUfm-m.js.map} +1 -1
- package/build/client/assets/{manifest-4acdd3e2.js → manifest-fe4b7228.js} +1 -1
- package/build/client/assets/mdx-Dfsh6Vjk.js +3 -0
- package/build/client/assets/mdx-Dfsh6Vjk.js.map +1 -0
- package/build/client/assets/mermaid.core-ZaxoMXOj.js +214 -0
- package/build/client/assets/mermaid.core-ZaxoMXOj.js.map +1 -0
- package/build/client/assets/mindmap-definition-ALO5MXBD-CF3siXp6.js +96 -0
- package/build/client/assets/mindmap-definition-ALO5MXBD-CF3siXp6.js.map +1 -0
- package/build/client/assets/misc-2sBiisF5.js +2 -0
- package/build/client/assets/misc-2sBiisF5.js.map +1 -0
- package/build/client/assets/{nav-chevrons-DCuva9-Q.js → nav-chevrons-CV-dpXNR.js} +2 -2
- package/build/client/assets/{nav-chevrons-DCuva9-Q.js.map → nav-chevrons-CV-dpXNR.js.map} +1 -1
- package/build/client/assets/{onboarding-DzfDHJg_.js → onboarding-5LC4kIVW.js} +2 -2
- package/build/client/assets/{onboarding-DzfDHJg_.js.map → onboarding-5LC4kIVW.js.map} +1 -1
- package/build/client/assets/{online-BsTX44az.js → online-IWqRB9zP.js} +2 -2
- package/build/client/assets/{online-BsTX44az.js.map → online-IWqRB9zP.js.map} +1 -1
- package/build/client/assets/ordinal-Cboi1Yqb.js +2 -0
- package/build/client/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/build/client/assets/{pe-DXT2FOp1.js → pe-BShc2dvc.js} +2 -2
- package/build/client/assets/{pe-DXT2FOp1.js.map → pe-BShc2dvc.js.map} +1 -1
- package/build/client/assets/pieDiagram-IB7DONF6-B-gWQIHI.js +31 -0
- package/build/client/assets/pieDiagram-IB7DONF6-B-gWQIHI.js.map +1 -0
- package/build/client/assets/{preferences-BYBJKp8k.js → preferences-BkWQyRCq.js} +2 -2
- package/build/client/assets/{preferences-BYBJKp8k.js.map → preferences-BkWQyRCq.js.map} +1 -1
- package/build/client/assets/presence-BAL3jDku.js +28 -0
- package/build/client/assets/presence-BAL3jDku.js.map +1 -0
- package/build/client/assets/preview-D4amucCL.js +2 -0
- package/build/client/assets/{preview-DaTpH6lj.js.map → preview-D4amucCL.js.map} +1 -1
- package/build/client/assets/{product-BKhLQKd7.js → product-Cyum2biy.js} +2 -2
- package/build/client/assets/{product-BKhLQKd7.js.map → product-Cyum2biy.js.map} +1 -1
- package/build/client/assets/progress-BJ4ADF-s.js +2 -0
- package/build/client/assets/progress-BJ4ADF-s.js.map +1 -0
- package/build/client/assets/{progress-bar-ZCHf2Y4W.js → progress-bar-DgnkQxQw.js} +2 -2
- package/build/client/assets/{progress-bar-ZCHf2Y4W.js.map → progress-bar-DgnkQxQw.js.map} +1 -1
- package/build/client/assets/quadrantDiagram-7GDLP6J5-BQzo7p61.js +8 -0
- package/build/client/assets/quadrantDiagram-7GDLP6J5-BQzo7p61.js.map +1 -0
- package/build/client/assets/radar-MK3ICKWK-CM-Iz9PA.js +129 -0
- package/build/client/assets/radar-MK3ICKWK-CM-Iz9PA.js.map +1 -0
- package/build/client/assets/requirementDiagram-KVF5MWMF-DzaHc66R.js +65 -0
- package/build/client/assets/requirementDiagram-KVF5MWMF-DzaHc66R.js.map +1 -0
- package/build/client/assets/revalidation-ws-ho-umDqd.js +2 -0
- package/build/client/assets/{revalidation-ws-BoJZTvOQ.js.map → revalidation-ws-ho-umDqd.js.map} +1 -1
- package/build/client/assets/{root-4MvCzrFd.js → root-tJmOmO9T.js} +3 -3
- package/build/client/assets/{root-4MvCzrFd.js.map → root-tJmOmO9T.js.map} +1 -1
- package/build/client/assets/sankeyDiagram-QLVOVGJD-DfAVeZCk.js +11 -0
- package/build/client/assets/sankeyDiagram-QLVOVGJD-DfAVeZCk.js.map +1 -0
- package/build/client/assets/sequenceDiagram-X6HHIX6F-CljZRLoS.js +123 -0
- package/build/client/assets/sequenceDiagram-X6HHIX6F-CljZRLoS.js.map +1 -0
- package/build/client/assets/{set-playground-IUJCGVu2.js → set-playground-DW2Ys-rV.js} +2 -2
- package/build/client/assets/{set-playground-IUJCGVu2.js.map → set-playground-DW2Ys-rV.js.map} +1 -1
- package/build/client/assets/stateDiagram-DGXRK772-BzVfGv3W.js +2 -0
- package/build/client/assets/stateDiagram-DGXRK772-BzVfGv3W.js.map +1 -0
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-8oX001yq.js +2 -0
- package/build/client/assets/stateDiagram-v2-YXO3MK2T-8oX001yq.js.map +1 -0
- package/build/client/assets/{support-CW3-Iilk.js → support-Bg0iSyle.js} +2 -2
- package/build/client/assets/{support-CW3-Iilk.js.map → support-Bg0iSyle.js.map} +1 -1
- package/build/client/assets/tailwind-DtnE_2an.css +1 -0
- package/build/client/assets/test-C14D-N72.js +2 -0
- package/build/client/assets/{test-B8jDo0X4.js.map → test-C14D-N72.js.map} +1 -1
- package/build/client/assets/tests-6__AtHpI.js +4 -0
- package/build/client/assets/{tests-y-atkhWB.js.map → tests-6__AtHpI.js.map} +1 -1
- package/build/client/assets/timeline-definition-BDJGKUSR-2TO9MtLY.js +62 -0
- package/build/client/assets/timeline-definition-BDJGKUSR-2TO9MtLY.js.map +1 -0
- package/build/client/assets/tooltip-Bzd6O8vq.js +2 -0
- package/build/client/assets/tooltip-Bzd6O8vq.js.map +1 -0
- package/build/client/assets/{use-event-source-AZJtQsFX.js → use-event-source-Dar8h_B8.js} +2 -2
- package/build/client/assets/{use-event-source-AZJtQsFX.js.map → use-event-source-Dar8h_B8.js.map} +1 -1
- package/build/client/assets/{user-C0j04V55.js → user-DNSnhqGn.js} +2 -2
- package/build/client/assets/{user-C0j04V55.js.map → user-DNSnhqGn.js.map} +1 -1
- package/build/client/assets/{version-D61Qvt0X.js → version-DriSvNMy.js} +2 -2
- package/build/client/assets/{version-D61Qvt0X.js.map → version-DriSvNMy.js.map} +1 -1
- package/build/client/assets/{workshop-config-oL_FWDKq.js → workshop-config-DchzGYJM.js} +2 -2
- package/build/client/assets/{workshop-config-oL_FWDKq.js.map → workshop-config-DchzGYJM.js.map} +1 -1
- package/build/client/assets/xychartDiagram-VJFVF3MP-Dh4nsbBT.js +8 -0
- package/build/client/assets/xychartDiagram-VJFVF3MP-Dh4nsbBT.js.map +1 -0
- package/build/server/index.js +50 -58
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +6 -0
- package/package.json +6 -5
- package/build/client/assets/_layout-Brb3LPqZ.js +0 -5
- package/build/client/assets/_layout-Brb3LPqZ.js.map +0 -1
- package/build/client/assets/_layout-CkabS-6c.js +0 -9
- package/build/client/assets/_layout-CkabS-6c.js.map +0 -1
- package/build/client/assets/accordion-BjQ-5Z44.js +0 -2
- package/build/client/assets/accordion-BjQ-5Z44.js.map +0 -1
- package/build/client/assets/app-lUkT_xku.js +0 -2
- package/build/client/assets/diff-CVrsnWqw.js +0 -2
- package/build/client/assets/discord-Cl4hiMqz.js +0 -2
- package/build/client/assets/discord-Cl4hiMqz.js.map +0 -1
- package/build/client/assets/entry.client-CQusg5Iz.js +0 -44
- package/build/client/assets/epic-video-BQtjG_Y0.js +0 -3053
- package/build/client/assets/epic-video-BQtjG_Y0.js.map +0 -1
- package/build/client/assets/index-BncqUVfr.js +0 -39
- package/build/client/assets/index-BncqUVfr.js.map +0 -1
- package/build/client/assets/index-CB8bjE90.js +0 -3
- package/build/client/assets/index-CB8bjE90.js.map +0 -1
- package/build/client/assets/index-CGzylDPY.js +0 -38
- package/build/client/assets/index-CMYl882D.js +0 -36
- package/build/client/assets/index-CMYl882D.js.map +0 -1
- package/build/client/assets/index-CSGHuBiw.js +0 -5
- package/build/client/assets/index-CSGHuBiw.js.map +0 -1
- package/build/client/assets/index-mZJ8sz9i.js +0 -2
- package/build/client/assets/index-mZJ8sz9i.js.map +0 -1
- package/build/client/assets/login-C9JmYc0v.js +0 -2
- package/build/client/assets/mdx-CnaWQCDw.js +0 -2
- package/build/client/assets/mdx-CnaWQCDw.js.map +0 -1
- package/build/client/assets/misc-CQmANiHr.js +0 -2
- package/build/client/assets/misc-CQmANiHr.js.map +0 -1
- package/build/client/assets/presence-D5UF-NOM.js +0 -28
- package/build/client/assets/presence-D5UF-NOM.js.map +0 -1
- package/build/client/assets/preview-DaTpH6lj.js +0 -2
- package/build/client/assets/progress-DwE8EkAa.js +0 -2
- package/build/client/assets/progress-DwE8EkAa.js.map +0 -1
- package/build/client/assets/revalidation-ws-BoJZTvOQ.js +0 -2
- package/build/client/assets/tailwind-O9k3JIDs.css +0 -1
- package/build/client/assets/test-B8jDo0X4.js +0 -2
- package/build/client/assets/tests-y-atkhWB.js +0 -4
- package/build/client/assets/tooltip-Cd0yJoQb.js +0 -2
- package/build/client/assets/tooltip-Cd0yJoQb.js.map +0 -1
- /package/build/client/assets/{epic-video-DUnRvy1A.css → epic-video-D2Xftn6t.css} +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import{g as Dt,s as wt}from"./chunk-RZ5BOZE2-h6svq8Xk.js";import{_ as u,b as Vt,a as Lt,s as Mt,g as Bt,q as Ft,t as Yt,c as tt,l as D,z as Pt,y as zt,B as Gt,D as Kt,p as Zt,r as Ut,d as jt,u as Wt}from"./mermaid.core-ZaxoMXOj.js";import{c as Qt}from"./channel-5s71-OE9.js";import"./mdx-Dfsh6Vjk.js";import"./index-Dsusf_Av.js";import"./misc-2sBiisF5.js";import"./components-5arJTWsS.js";import"./epic-video-DN9DRRHf.js";import"./index-CEP3Xxa0.js";import"./tooltip-Bzd6O8vq.js";import"./pe-BShc2dvc.js";import"./online-IWqRB9zP.js";import"./loading-BPTYJOXN.js";import"./user-DNSnhqGn.js";import"./workshop-config-DchzGYJM.js";import"./progress-bar-DgnkQxQw.js";var dt=function(){var s=u(function(R,n,a,c){for(a=a||{},c=R.length;c--;a[R[c]]=n);return a},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,50],h=[1,10],d=[1,11],l=[1,12],o=[1,13],f=[1,20],_=[1,21],E=[1,22],V=[1,23],Z=[1,24],S=[1,19],et=[1,25],U=[1,26],T=[1,18],L=[1,33],st=[1,34],it=[1,35],rt=[1,36],nt=[1,37],pt=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,50,63,64,65,66,67],O=[1,42],A=[1,43],M=[1,52],B=[40,50,68,69],F=[1,63],Y=[1,61],N=[1,58],P=[1,62],z=[1,64],j=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,63,64,65,66,67],yt=[63,64,65,66,67],ft=[1,81],_t=[1,80],gt=[1,78],bt=[1,79],mt=[6,10,42,47],v=[6,10,13,41,42,47,48,49],W=[1,89],Q=[1,88],X=[1,87],G=[19,56],Et=[1,98],kt=[1,97],at=[19,56,58,60],ct={trace:u(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,COLON:13,role:14,STYLE_SEPARATOR:15,idList:16,BLOCK_START:17,attributes:18,BLOCK_STOP:19,SQS:20,SQE:21,title:22,title_value:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,direction:29,classDefStatement:30,classStatement:31,styleStatement:32,direction_tb:33,direction_bt:34,direction_rl:35,direction_lr:36,CLASSDEF:37,stylesOpt:38,separator:39,UNICODE_TEXT:40,STYLE_TEXT:41,COMMA:42,CLASS:43,STYLE:44,style:45,styleComponent:46,SEMI:47,NUM:48,BRKT:49,ENTITY_NAME:50,attribute:51,attributeType:52,attributeName:53,attributeKeyTypeList:54,attributeComment:55,ATTRIBUTE_WORD:56,attributeKeyType:57,",":58,ATTRIBUTE_KEY:59,COMMENT:60,cardinality:61,relType:62,ZERO_OR_ONE:63,ZERO_OR_MORE:64,ONE_OR_MORE:65,ONLY_ONE:66,MD_PARENT:67,NON_IDENTIFYING:68,IDENTIFYING:69,WORD:70,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:"COLON",15:"STYLE_SEPARATOR",17:"BLOCK_START",19:"BLOCK_STOP",20:"SQS",21:"SQE",22:"title",23:"title_value",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"direction_tb",34:"direction_bt",35:"direction_rl",36:"direction_lr",37:"CLASSDEF",40:"UNICODE_TEXT",41:"STYLE_TEXT",42:"COMMA",43:"CLASS",44:"STYLE",47:"SEMI",48:"NUM",49:"BRKT",50:"ENTITY_NAME",56:"ATTRIBUTE_WORD",58:",",59:"ATTRIBUTE_KEY",60:"COMMENT",63:"ZERO_OR_ONE",64:"ZERO_OR_MORE",65:"ONE_OR_MORE",66:"ONLY_ONE",67:"MD_PARENT",68:"NON_IDENTIFYING",69:"IDENTIFYING",70:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,9],[9,7],[9,7],[9,4],[9,6],[9,3],[9,5],[9,1],[9,3],[9,7],[9,9],[9,6],[9,8],[9,4],[9,6],[9,2],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[9,1],[29,1],[29,1],[29,1],[29,1],[30,4],[16,1],[16,1],[16,3],[16,3],[31,3],[32,4],[38,1],[38,3],[45,1],[45,2],[39,1],[39,1],[39,1],[46,1],[46,1],[46,1],[46,1],[11,1],[11,1],[18,1],[18,2],[51,2],[51,3],[51,3],[51,4],[52,1],[53,1],[54,1],[54,3],[57,1],[55,1],[12,3],[61,1],[61,1],[61,1],[61,1],[61,1],[62,1],[62,1],[14,1],[14,1],[14,1]],performAction:u(function(n,a,c,r,p,t,K){var e=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[e-1].push(t[e]),this.$=t[e-1];break;case 4:case 5:this.$=t[e];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[e-4]),r.addEntity(t[e-2]),r.addRelationship(t[e-4],t[e],t[e-2],t[e-3]);break;case 9:r.addEntity(t[e-8]),r.addEntity(t[e-4]),r.addRelationship(t[e-8],t[e],t[e-4],t[e-5]),r.setClass([t[e-8]],t[e-6]),r.setClass([t[e-4]],t[e-2]);break;case 10:r.addEntity(t[e-6]),r.addEntity(t[e-2]),r.addRelationship(t[e-6],t[e],t[e-2],t[e-3]),r.setClass([t[e-6]],t[e-4]);break;case 11:r.addEntity(t[e-6]),r.addEntity(t[e-4]),r.addRelationship(t[e-6],t[e],t[e-4],t[e-5]),r.setClass([t[e-4]],t[e-2]);break;case 12:r.addEntity(t[e-3]),r.addAttributes(t[e-3],t[e-1]);break;case 13:r.addEntity(t[e-5]),r.addAttributes(t[e-5],t[e-1]),r.setClass([t[e-5]],t[e-3]);break;case 14:r.addEntity(t[e-2]);break;case 15:r.addEntity(t[e-4]),r.setClass([t[e-4]],t[e-2]);break;case 16:r.addEntity(t[e]);break;case 17:r.addEntity(t[e-2]),r.setClass([t[e-2]],t[e]);break;case 18:r.addEntity(t[e-6],t[e-4]),r.addAttributes(t[e-6],t[e-1]);break;case 19:r.addEntity(t[e-8],t[e-6]),r.addAttributes(t[e-8],t[e-1]),r.setClass([t[e-8]],t[e-3]);break;case 20:r.addEntity(t[e-5],t[e-3]);break;case 21:r.addEntity(t[e-7],t[e-5]),r.setClass([t[e-7]],t[e-2]);break;case 22:r.addEntity(t[e-3],t[e-1]);break;case 23:r.addEntity(t[e-5],t[e-3]),r.setClass([t[e-5]],t[e]);break;case 24:case 25:this.$=t[e].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[e].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[e-3],r.addClass(t[e-2],t[e-1]);break;case 37:case 38:case 56:case 64:this.$=[t[e]];break;case 39:case 40:this.$=t[e-2].concat([t[e]]);break;case 41:this.$=t[e-2],r.setClass(t[e-1],t[e]);break;case 42:this.$=t[e-3],r.addCssStyles(t[e-2],t[e-1]);break;case 43:this.$=[t[e]];break;case 44:t[e-2].push(t[e]),this.$=t[e-2];break;case 46:this.$=t[e-1]+t[e];break;case 54:case 76:case 77:this.$=t[e].replace(/"/g,"");break;case 55:case 78:this.$=t[e];break;case 57:t[e].push(t[e-1]),this.$=t[e];break;case 58:this.$={type:t[e-1],name:t[e]};break;case 59:this.$={type:t[e-2],name:t[e-1],keys:t[e]};break;case 60:this.$={type:t[e-2],name:t[e-1],comment:t[e]};break;case 61:this.$={type:t[e-3],name:t[e-2],keys:t[e-1],comment:t[e]};break;case 62:case 63:case 66:this.$=t[e];break;case 65:t[e-2].push(t[e]),this.$=t[e-2];break;case 67:this.$=t[e].replace(/"/g,"");break;case 68:this.$={cardA:t[e],relType:t[e-1],cardB:t[e-2]};break;case 69:this.$=r.Cardinality.ZERO_OR_ONE;break;case 70:this.$=r.Cardinality.ZERO_OR_MORE;break;case 71:this.$=r.Cardinality.ONE_OR_MORE;break;case 72:this.$=r.Cardinality.ONLY_ONE;break;case 73:this.$=r.Cardinality.MD_PARENT;break;case 74:this.$=r.Identification.NON_IDENTIFYING;break;case 75:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},s(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:d,26:l,28:o,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,7],{1:[2,1]}),s(i,[2,3]),{9:27,11:9,22:h,24:d,26:l,28:o,29:14,30:15,31:16,32:17,33:f,34:_,35:E,36:V,37:Z,40:S,43:et,44:U,50:T},s(i,[2,5]),s(i,[2,6]),s(i,[2,16],{12:28,61:32,15:[1,29],17:[1,30],20:[1,31],63:L,64:st,65:it,66:rt,67:nt}),{23:[1,38]},{25:[1,39]},{27:[1,40]},s(i,[2,27]),s(i,[2,28]),s(i,[2,29]),s(i,[2,30]),s(i,[2,31]),s(pt,[2,54]),s(pt,[2,55]),s(i,[2,32]),s(i,[2,33]),s(i,[2,34]),s(i,[2,35]),{16:41,40:O,41:A},{16:44,40:O,41:A},{16:45,40:O,41:A},s(i,[2,4]),{11:46,40:S,50:T},{16:47,40:O,41:A},{18:48,19:[1,49],51:50,52:51,56:M},{11:53,40:S,50:T},{62:54,68:[1,55],69:[1,56]},s(B,[2,69]),s(B,[2,70]),s(B,[2,71]),s(B,[2,72]),s(B,[2,73]),s(i,[2,24]),s(i,[2,25]),s(i,[2,26]),{13:F,38:57,41:Y,42:N,45:59,46:60,48:P,49:z},s(j,[2,37]),s(j,[2,38]),{16:65,40:O,41:A,42:N},{13:F,38:66,41:Y,42:N,45:59,46:60,48:P,49:z},{13:[1,67],15:[1,68]},s(i,[2,17],{61:32,12:69,17:[1,70],42:N,63:L,64:st,65:it,66:rt,67:nt}),{19:[1,71]},s(i,[2,14]),{18:72,19:[2,56],51:50,52:51,56:M},{53:73,56:[1,74]},{56:[2,62]},{21:[1,75]},{61:76,63:L,64:st,65:it,66:rt,67:nt},s(yt,[2,74]),s(yt,[2,75]),{6:ft,10:_t,39:77,42:gt,47:bt},{40:[1,82],41:[1,83]},s(mt,[2,43],{46:84,13:F,41:Y,48:P,49:z}),s(v,[2,45]),s(v,[2,50]),s(v,[2,51]),s(v,[2,52]),s(v,[2,53]),s(i,[2,41],{42:N}),{6:ft,10:_t,39:85,42:gt,47:bt},{14:86,40:W,50:Q,70:X},{16:90,40:O,41:A},{11:91,40:S,50:T},{18:92,19:[1,93],51:50,52:51,56:M},s(i,[2,12]),{19:[2,57]},s(G,[2,58],{54:94,55:95,57:96,59:Et,60:kt}),s([19,56,59,60],[2,63]),s(i,[2,22],{15:[1,100],17:[1,99]}),s([40,50],[2,68]),s(i,[2,36]),{13:F,41:Y,45:101,46:60,48:P,49:z},s(i,[2,47]),s(i,[2,48]),s(i,[2,49]),s(j,[2,39]),s(j,[2,40]),s(v,[2,46]),s(i,[2,42]),s(i,[2,8]),s(i,[2,76]),s(i,[2,77]),s(i,[2,78]),{13:[1,102],42:N},{13:[1,104],15:[1,103]},{19:[1,105]},s(i,[2,15]),s(G,[2,59],{55:106,58:[1,107],60:kt}),s(G,[2,60]),s(at,[2,64]),s(G,[2,67]),s(at,[2,66]),{18:108,19:[1,109],51:50,52:51,56:M},{16:110,40:O,41:A},s(mt,[2,44],{46:84,13:F,41:Y,48:P,49:z}),{14:111,40:W,50:Q,70:X},{16:112,40:O,41:A},{14:113,40:W,50:Q,70:X},s(i,[2,13]),s(G,[2,61]),{57:114,59:Et},{19:[1,115]},s(i,[2,20]),s(i,[2,23],{17:[1,116],42:N}),s(i,[2,11]),{13:[1,117],42:N},s(i,[2,10]),s(at,[2,65]),s(i,[2,18]),{18:118,19:[1,119],51:50,52:51,56:M},{14:120,40:W,50:Q,70:X},{19:[1,121]},s(i,[2,21]),s(i,[2,9]),s(i,[2,19])],defaultActions:{52:[2,62],72:[2,57]},parseError:u(function(n,a){if(a.recoverable)this.trace(n);else{var c=new Error(n);throw c.hash=a,c}},"parseError"),parse:u(function(n){var a=this,c=[0],r=[],p=[null],t=[],K=this.table,e="",H=0,St=0,It=2,Tt=1,xt=t.slice.call(arguments,1),y=Object.create(this.lexer),I={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(I.yy[ot]=this.yy[ot]);y.setInput(n,I.yy),I.yy.lexer=y,I.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var lt=y.yylloc;t.push(lt);var vt=y.options&&y.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ct(b){c.length=c.length-2*b,p.length=p.length-b,t.length=t.length-b}u(Ct,"popStack");function Ot(){var b;return b=r.pop()||y.lex()||Tt,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=a.symbols_[b]||b),b}u(Ot,"lex");for(var g,x,m,ht,C={},J,k,At,$;;){if(x=c[c.length-1],this.defaultActions[x]?m=this.defaultActions[x]:((g===null||typeof g>"u")&&(g=Ot()),m=K[x]&&K[x][g]),typeof m>"u"||!m.length||!m[0]){var ut="";$=[];for(J in K[x])this.terminals_[J]&&J>It&&$.push("'"+this.terminals_[J]+"'");y.showPosition?ut="Parse error on line "+(H+1)+`:
|
|
2
|
+
`+y.showPosition()+`
|
|
3
|
+
Expecting `+$.join(", ")+", got '"+(this.terminals_[g]||g)+"'":ut="Parse error on line "+(H+1)+": Unexpected "+(g==Tt?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(ut,{text:y.match,token:this.terminals_[g]||g,line:y.yylineno,loc:lt,expected:$})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+g);switch(m[0]){case 1:c.push(g),p.push(y.yytext),t.push(y.yylloc),c.push(m[1]),g=null,St=y.yyleng,e=y.yytext,H=y.yylineno,lt=y.yylloc;break;case 2:if(k=this.productions_[m[1]][1],C.$=p[p.length-k],C._$={first_line:t[t.length-(k||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(k||1)].first_column,last_column:t[t.length-1].last_column},vt&&(C._$.range=[t[t.length-(k||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(C,[e,St,H,I.yy,m[1],p,t].concat(xt)),typeof ht<"u")return ht;k&&(c=c.slice(0,-1*k*2),p=p.slice(0,-1*k),t=t.slice(0,-1*k)),c.push(this.productions_[m[1]][0]),p.push(C.$),t.push(C._$),At=K[c[c.length-2]][c[c.length-1]],c.push(At);break;case 3:return!0}}return!0},"parse")},Rt=function(){var R={EOF:1,parseError:u(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:u(function(n,a){return this.yy=a||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:u(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var a=n.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},"input"),unput:u(function(n){var a=n.length,c=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===r.length?this.yylloc.first_column:0)+r[r.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:u(function(){return this._more=!0,this},"more"),reject:u(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:u(function(n){this.unput(this.match.slice(n))},"less"),pastInput:u(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:u(function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:u(function(){var n=this.pastInput(),a=new Array(n.length+1).join("-");return n+this.upcomingInput()+`
|
|
5
|
+
`+a+"^"},"showPosition"),test_match:u(function(n,a){var c,r,p;if(this.options.backtrack_lexer&&(p={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(p.yylloc.range=this.yylloc.range.slice(0))),r=n[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+n[0].length},this.yytext+=n[0],this.match+=n[0],this.matches=n,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(n[0].length),this.matched+=n[0],c=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var t in p)this[t]=p[t];return!1}return!1},"test_match"),next:u(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var n,a,c,r;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),t=0;t<p.length;t++)if(c=this._input.match(this.rules[p[t]]),c&&(!a||c[0].length>a[0].length)){if(a=c,r=t,this.options.backtrack_lexer){if(n=this.test_match(c,p[t]),n!==!1)return n;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(n=this.test_match(a,p[r]),n!==!1?n:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
|
|
6
|
+
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:u(function(){var a=this.next();return a||this.lex()},"lex"),begin:u(function(a){this.conditionStack.push(a)},"begin"),popState:u(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:u(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:u(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:u(function(a){this.begin(a)},"pushState"),stateStackSize:u(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:u(function(a,c,r,p){switch(r){case 0:return this.begin("acc_title"),24;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),26;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return 33;case 8:return 34;case 9:return 35;case 10:return 36;case 11:return 10;case 12:break;case 13:return 8;case 14:return 50;case 15:return 70;case 16:return 4;case 17:return this.begin("block"),17;case 18:return 49;case 19:return 49;case 20:return 42;case 21:return 15;case 22:return 13;case 23:break;case 24:return 59;case 25:return 56;case 26:return 56;case 27:return 60;case 28:break;case 29:return this.popState(),19;case 30:return c.yytext[0];case 31:return 20;case 32:return 21;case 33:return this.begin("style"),44;case 34:return this.popState(),10;case 35:break;case 36:return 13;case 37:return 42;case 38:return 49;case 39:return this.begin("style"),37;case 40:return 43;case 41:return 63;case 42:return 65;case 43:return 65;case 44:return 65;case 45:return 63;case 46:return 63;case 47:return 64;case 48:return 64;case 49:return 64;case 50:return 64;case 51:return 64;case 52:return 65;case 53:return 64;case 54:return 65;case 55:return 66;case 56:return 66;case 57:return 66;case 58:return 66;case 59:return 63;case 60:return 64;case 61:return 65;case 62:return 67;case 63:return 68;case 64:return 69;case 65:return 69;case 66:return 68;case 67:return 68;case 68:return 68;case 69:return 41;case 70:return 47;case 71:return 40;case 72:return 48;case 73:return c.yytext[0];case 74:return 6}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:#)/i,/^(?:#)/i,/^(?:,)/i,/^(?::::)/i,/^(?::)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:([^\s]*)[~].*[~]([^\s]*))/i,/^(?:([\*A-Za-z_\u00C0-\uFFFF][A-Za-z0-9\-\_\[\]\(\)\u00C0-\uFFFF\*]*))/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:style\b)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?::)/i,/^(?:,)/i,/^(?:#)/i,/^(?:classDef\b)/i,/^(?:class\b)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\s*u\b)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:;)/i,/^(?:([^\x00-\x7F]|\w|-|\*)+)/i,/^(?:[0-9])/i,/^(?:.)/i,/^(?:$)/i],conditions:{style:{rules:[34,35,36,37,38,69,70],inclusive:!1},acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},block:{rules:[23,24,25,26,27,28,29,30],inclusive:!1},INITIAL:{rules:[0,2,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,71,72,73,74],inclusive:!0}}};return R}();ct.lexer=Rt;function q(){this.yy={}}return u(q,"Parser"),q.prototype=ct,ct.Parser=q,new q}();dt.parser=dt;var Xt=dt,w,qt=(w=class{constructor(){this.entities=new Map,this.relationships=[],this.classes=new Map,this.direction="TB",this.Cardinality={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},this.Identification={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},this.setAccTitle=Vt,this.getAccTitle=Lt,this.setAccDescription=Mt,this.getAccDescription=Bt,this.setDiagramTitle=Ft,this.getDiagramTitle=Yt,this.getConfig=u(()=>tt().er,"getConfig"),this.clear(),this.addEntity=this.addEntity.bind(this),this.addAttributes=this.addAttributes.bind(this),this.addRelationship=this.addRelationship.bind(this),this.setDirection=this.setDirection.bind(this),this.addCssStyles=this.addCssStyles.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.setAccTitle=this.setAccTitle.bind(this),this.setAccDescription=this.setAccDescription.bind(this)}addEntity(i,h=""){var d;return this.entities.has(i)?!((d=this.entities.get(i))!=null&&d.alias)&&h&&(this.entities.get(i).alias=h,D.info(`Add alias '${h}' to entity '${i}'`)):(this.entities.set(i,{id:`entity-${i}-${this.entities.size}`,label:i,attributes:[],alias:h,shape:"erBox",look:tt().look??"default",cssClasses:"default",cssStyles:[]}),D.info("Added new entity :",i)),this.entities.get(i)}getEntity(i){return this.entities.get(i)}getEntities(){return this.entities}getClasses(){return this.classes}addAttributes(i,h){const d=this.addEntity(i);let l;for(l=h.length-1;l>=0;l--)h[l].keys||(h[l].keys=[]),h[l].comment||(h[l].comment=""),d.attributes.push(h[l]),D.debug("Added attribute ",h[l].name)}addRelationship(i,h,d,l){const o=this.entities.get(i),f=this.entities.get(d);if(!o||!f)return;const _={entityA:o.id,roleA:h,entityB:f.id,relSpec:l};this.relationships.push(_),D.debug("Added new relationship :",_)}getRelationships(){return this.relationships}getDirection(){return this.direction}setDirection(i){this.direction=i}getCompiledStyles(i){let h=[];for(const d of i){const l=this.classes.get(d);l!=null&&l.styles&&(h=[...h,...l.styles??[]].map(o=>o.trim())),l!=null&&l.textStyles&&(h=[...h,...l.textStyles??[]].map(o=>o.trim()))}return h}addCssStyles(i,h){for(const d of i){const l=this.entities.get(d);if(!h||!l)return;for(const o of h)l.cssStyles.push(o)}}addClass(i,h){i.forEach(d=>{let l=this.classes.get(d);l===void 0&&(l={id:d,styles:[],textStyles:[]},this.classes.set(d,l)),h&&h.forEach(function(o){if(/color/.exec(o)){const f=o.replace("fill","bgFill");l.textStyles.push(f)}l.styles.push(o)})})}setClass(i,h){for(const d of i){const l=this.entities.get(d);if(l)for(const o of h)l.cssClasses+=" "+o}}clear(){this.entities=new Map,this.classes=new Map,this.relationships=[],Pt()}getData(){const i=[],h=[],d=tt();for(const o of this.entities.keys()){const f=this.entities.get(o);f&&(f.cssCompiledStyles=this.getCompiledStyles(f.cssClasses.split(" ")),i.push(f))}let l=0;for(const o of this.relationships){const f={id:zt(o.entityA,o.entityB,{prefix:"id",counter:l++}),type:"normal",curve:"basis",start:o.entityA,end:o.entityB,label:o.roleA,labelpos:"c",thickness:"normal",classes:"relationshipLine",arrowTypeStart:o.relSpec.cardB.toLowerCase(),arrowTypeEnd:o.relSpec.cardA.toLowerCase(),pattern:o.relSpec.relType=="IDENTIFYING"?"solid":"dashed",look:d.look};h.push(f)}return{nodes:i,edges:h,other:{},config:d,direction:"TB"}}},u(w,"ErDB"),w),Nt={};Kt(Nt,{draw:()=>Ht});var Ht=u(async function(s,i,h,d){D.info("REF0:"),D.info("Drawing er diagram (unified)",i);const{securityLevel:l,er:o,layout:f}=tt(),_=d.db.getData(),E=Dt(i,l);_.type=d.type,_.layoutAlgorithm=Zt(f),_.config.flowchart.nodeSpacing=(o==null?void 0:o.nodeSpacing)||140,_.config.flowchart.rankSpacing=(o==null?void 0:o.rankSpacing)||80,_.direction=d.db.getDirection(),_.markers=["only_one","zero_or_one","one_or_more","zero_or_more"],_.diagramId=i,await Ut(_,E),_.layoutAlgorithm==="elk"&&E.select(".edges").lower();const V=E.selectAll('[id*="-background"]');Array.from(V).length>0&&V.each(function(){const S=jt(this),U=S.attr("id").replace("-background",""),T=E.select(`#${CSS.escape(U)}`);if(!T.empty()){const L=T.attr("transform");S.attr("transform",L)}});const Z=8;Wt.insertTitle(E,"erDiagramTitleText",(o==null?void 0:o.titleTopMargin)??25,d.db.getDiagramTitle()),wt(E,Z,"erDiagram",(o==null?void 0:o.useMaxWidth)??!0)},"draw"),Jt=u((s,i)=>{const h=Qt,d=h(s,"r"),l=h(s,"g"),o=h(s,"b");return Gt(d,l,o,i)},"fade"),$t=u(s=>`
|
|
7
|
+
.entityBox {
|
|
8
|
+
fill: ${s.mainBkg};
|
|
9
|
+
stroke: ${s.nodeBorder};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.relationshipLabelBox {
|
|
13
|
+
fill: ${s.tertiaryColor};
|
|
14
|
+
opacity: 0.7;
|
|
15
|
+
background-color: ${s.tertiaryColor};
|
|
16
|
+
rect {
|
|
17
|
+
opacity: 0.5;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.labelBkg {
|
|
22
|
+
background-color: ${Jt(s.tertiaryColor,.5)};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.edgeLabel .label {
|
|
26
|
+
fill: ${s.nodeBorder};
|
|
27
|
+
font-size: 14px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.label {
|
|
31
|
+
font-family: ${s.fontFamily};
|
|
32
|
+
color: ${s.nodeTextColor||s.textColor};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.edge-pattern-dashed {
|
|
36
|
+
stroke-dasharray: 8,8;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.node rect,
|
|
40
|
+
.node circle,
|
|
41
|
+
.node ellipse,
|
|
42
|
+
.node polygon
|
|
43
|
+
{
|
|
44
|
+
fill: ${s.mainBkg};
|
|
45
|
+
stroke: ${s.nodeBorder};
|
|
46
|
+
stroke-width: 1px;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.relationshipLine {
|
|
50
|
+
stroke: ${s.lineColor};
|
|
51
|
+
stroke-width: 1;
|
|
52
|
+
fill: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.marker {
|
|
56
|
+
fill: none !important;
|
|
57
|
+
stroke: ${s.lineColor} !important;
|
|
58
|
+
stroke-width: 1;
|
|
59
|
+
}
|
|
60
|
+
`,"getStyles"),te=$t,ge={parser:Xt,get db(){return new qt},renderer:Nt,styles:te};export{ge as diagram};
|
|
61
|
+
//# sourceMappingURL=erDiagram-Q7BY3M3F-DdKn4jVQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erDiagram-Q7BY3M3F-DdKn4jVQ.js","sources":["../../../../../node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-Q7BY3M3F.mjs"],"sourcesContent":["import {\n getDiagramElement,\n setupViewPortForSVG\n} from \"./chunk-RZ5BOZE2.mjs\";\nimport {\n getRegisteredLayoutAlgorithm,\n render\n} from \"./chunk-TYCBKAJE.mjs\";\nimport \"./chunk-IIMUDSI4.mjs\";\nimport \"./chunk-VV3M67IP.mjs\";\nimport \"./chunk-HRU6DDCH.mjs\";\nimport \"./chunk-K557N5IZ.mjs\";\nimport \"./chunk-H2D2JQ3I.mjs\";\nimport \"./chunk-C3MQ5ANM.mjs\";\nimport {\n getEdgeId,\n utils_default\n} from \"./chunk-O4NI6UNU.mjs\";\nimport {\n __export,\n __name,\n clear,\n getAccDescription,\n getAccTitle,\n getConfig2 as getConfig,\n getDiagramTitle,\n log,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-YTJNT7DU.mjs\";\n\n// src/diagrams/er/parser/erDiagram.jison\nvar parser = function() {\n var o = /* @__PURE__ */ __name(function(k, v, o2, l) {\n for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;\n return o2;\n }, \"o\"), $V0 = [6, 8, 10, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 43, 44, 50], $V1 = [1, 10], $V2 = [1, 11], $V3 = [1, 12], $V4 = [1, 13], $V5 = [1, 20], $V6 = [1, 21], $V7 = [1, 22], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 19], $Vb = [1, 25], $Vc = [1, 26], $Vd = [1, 18], $Ve = [1, 33], $Vf = [1, 34], $Vg = [1, 35], $Vh = [1, 36], $Vi = [1, 37], $Vj = [6, 8, 10, 13, 15, 17, 20, 21, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 43, 44, 50, 63, 64, 65, 66, 67], $Vk = [1, 42], $Vl = [1, 43], $Vm = [1, 52], $Vn = [40, 50, 68, 69], $Vo = [1, 63], $Vp = [1, 61], $Vq = [1, 58], $Vr = [1, 62], $Vs = [1, 64], $Vt = [6, 8, 10, 13, 17, 22, 24, 26, 28, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 48, 49, 50, 63, 64, 65, 66, 67], $Vu = [63, 64, 65, 66, 67], $Vv = [1, 81], $Vw = [1, 80], $Vx = [1, 78], $Vy = [1, 79], $Vz = [6, 10, 42, 47], $VA = [6, 10, 13, 41, 42, 47, 48, 49], $VB = [1, 89], $VC = [1, 88], $VD = [1, 87], $VE = [19, 56], $VF = [1, 98], $VG = [1, 97], $VH = [19, 56, 58, 60];\n var parser2 = {\n trace: /* @__PURE__ */ __name(function trace() {\n }, \"trace\"),\n yy: {},\n symbols_: { \"error\": 2, \"start\": 3, \"ER_DIAGRAM\": 4, \"document\": 5, \"EOF\": 6, \"line\": 7, \"SPACE\": 8, \"statement\": 9, \"NEWLINE\": 10, \"entityName\": 11, \"relSpec\": 12, \"COLON\": 13, \"role\": 14, \"STYLE_SEPARATOR\": 15, \"idList\": 16, \"BLOCK_START\": 17, \"attributes\": 18, \"BLOCK_STOP\": 19, \"SQS\": 20, \"SQE\": 21, \"title\": 22, \"title_value\": 23, \"acc_title\": 24, \"acc_title_value\": 25, \"acc_descr\": 26, \"acc_descr_value\": 27, \"acc_descr_multiline_value\": 28, \"direction\": 29, \"classDefStatement\": 30, \"classStatement\": 31, \"styleStatement\": 32, \"direction_tb\": 33, \"direction_bt\": 34, \"direction_rl\": 35, \"direction_lr\": 36, \"CLASSDEF\": 37, \"stylesOpt\": 38, \"separator\": 39, \"UNICODE_TEXT\": 40, \"STYLE_TEXT\": 41, \"COMMA\": 42, \"CLASS\": 43, \"STYLE\": 44, \"style\": 45, \"styleComponent\": 46, \"SEMI\": 47, \"NUM\": 48, \"BRKT\": 49, \"ENTITY_NAME\": 50, \"attribute\": 51, \"attributeType\": 52, \"attributeName\": 53, \"attributeKeyTypeList\": 54, \"attributeComment\": 55, \"ATTRIBUTE_WORD\": 56, \"attributeKeyType\": 57, \",\": 58, \"ATTRIBUTE_KEY\": 59, \"COMMENT\": 60, \"cardinality\": 61, \"relType\": 62, \"ZERO_OR_ONE\": 63, \"ZERO_OR_MORE\": 64, \"ONE_OR_MORE\": 65, \"ONLY_ONE\": 66, \"MD_PARENT\": 67, \"NON_IDENTIFYING\": 68, \"IDENTIFYING\": 69, \"WORD\": 70, \"$accept\": 0, \"$end\": 1 },\n terminals_: { 2: \"error\", 4: \"ER_DIAGRAM\", 6: \"EOF\", 8: \"SPACE\", 10: \"NEWLINE\", 13: \"COLON\", 15: \"STYLE_SEPARATOR\", 17: \"BLOCK_START\", 19: \"BLOCK_STOP\", 20: \"SQS\", 21: \"SQE\", 22: \"title\", 23: \"title_value\", 24: \"acc_title\", 25: \"acc_title_value\", 26: \"acc_descr\", 27: \"acc_descr_value\", 28: \"acc_descr_multiline_value\", 33: \"direction_tb\", 34: \"direction_bt\", 35: \"direction_rl\", 36: \"direction_lr\", 37: \"CLASSDEF\", 40: \"UNICODE_TEXT\", 41: \"STYLE_TEXT\", 42: \"COMMA\", 43: \"CLASS\", 44: \"STYLE\", 47: \"SEMI\", 48: \"NUM\", 49: \"BRKT\", 50: \"ENTITY_NAME\", 56: \"ATTRIBUTE_WORD\", 58: \",\", 59: \"ATTRIBUTE_KEY\", 60: \"COMMENT\", 63: \"ZERO_OR_ONE\", 64: \"ZERO_OR_MORE\", 65: \"ONE_OR_MORE\", 66: \"ONLY_ONE\", 67: \"MD_PARENT\", 68: \"NON_IDENTIFYING\", 69: \"IDENTIFYING\", 70: \"WORD\" },\n productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 5], [9, 9], [9, 7], [9, 7], [9, 4], [9, 6], [9, 3], [9, 5], [9, 1], [9, 3], [9, 7], [9, 9], [9, 6], [9, 8], [9, 4], [9, 6], [9, 2], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [9, 1], [29, 1], [29, 1], [29, 1], [29, 1], [30, 4], [16, 1], [16, 1], [16, 3], [16, 3], [31, 3], [32, 4], [38, 1], [38, 3], [45, 1], [45, 2], [39, 1], [39, 1], [39, 1], [46, 1], [46, 1], [46, 1], [46, 1], [11, 1], [11, 1], [18, 1], [18, 2], [51, 2], [51, 3], [51, 3], [51, 4], [52, 1], [53, 1], [54, 1], [54, 3], [57, 1], [55, 1], [12, 3], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [62, 1], [62, 1], [14, 1], [14, 1], [14, 1]],\n performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {\n var $0 = $$.length - 1;\n switch (yystate) {\n case 1:\n break;\n case 2:\n this.$ = [];\n break;\n case 3:\n $$[$0 - 1].push($$[$0]);\n this.$ = $$[$0 - 1];\n break;\n case 4:\n case 5:\n this.$ = $$[$0];\n break;\n case 6:\n case 7:\n this.$ = [];\n break;\n case 8:\n yy.addEntity($$[$0 - 4]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n break;\n case 9:\n yy.addEntity($$[$0 - 8]);\n yy.addEntity($$[$0 - 4]);\n yy.addRelationship($$[$0 - 8], $$[$0], $$[$0 - 4], $$[$0 - 5]);\n yy.setClass([$$[$0 - 8]], $$[$0 - 6]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 10:\n yy.addEntity($$[$0 - 6]);\n yy.addEntity($$[$0 - 2]);\n yy.addRelationship($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 3]);\n yy.setClass([$$[$0 - 6]], $$[$0 - 4]);\n break;\n case 11:\n yy.addEntity($$[$0 - 6]);\n yy.addEntity($$[$0 - 4]);\n yy.addRelationship($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 5]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 12:\n yy.addEntity($$[$0 - 3]);\n yy.addAttributes($$[$0 - 3], $$[$0 - 1]);\n break;\n case 13:\n yy.addEntity($$[$0 - 5]);\n yy.addAttributes($$[$0 - 5], $$[$0 - 1]);\n yy.setClass([$$[$0 - 5]], $$[$0 - 3]);\n break;\n case 14:\n yy.addEntity($$[$0 - 2]);\n break;\n case 15:\n yy.addEntity($$[$0 - 4]);\n yy.setClass([$$[$0 - 4]], $$[$0 - 2]);\n break;\n case 16:\n yy.addEntity($$[$0]);\n break;\n case 17:\n yy.addEntity($$[$0 - 2]);\n yy.setClass([$$[$0 - 2]], $$[$0]);\n break;\n case 18:\n yy.addEntity($$[$0 - 6], $$[$0 - 4]);\n yy.addAttributes($$[$0 - 6], $$[$0 - 1]);\n break;\n case 19:\n yy.addEntity($$[$0 - 8], $$[$0 - 6]);\n yy.addAttributes($$[$0 - 8], $$[$0 - 1]);\n yy.setClass([$$[$0 - 8]], $$[$0 - 3]);\n break;\n case 20:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n break;\n case 21:\n yy.addEntity($$[$0 - 7], $$[$0 - 5]);\n yy.setClass([$$[$0 - 7]], $$[$0 - 2]);\n break;\n case 22:\n yy.addEntity($$[$0 - 3], $$[$0 - 1]);\n break;\n case 23:\n yy.addEntity($$[$0 - 5], $$[$0 - 3]);\n yy.setClass([$$[$0 - 5]], $$[$0]);\n break;\n case 24:\n case 25:\n this.$ = $$[$0].trim();\n yy.setAccTitle(this.$);\n break;\n case 26:\n case 27:\n this.$ = $$[$0].trim();\n yy.setAccDescription(this.$);\n break;\n case 32:\n yy.setDirection(\"TB\");\n break;\n case 33:\n yy.setDirection(\"BT\");\n break;\n case 34:\n yy.setDirection(\"RL\");\n break;\n case 35:\n yy.setDirection(\"LR\");\n break;\n case 36:\n this.$ = $$[$0 - 3];\n yy.addClass($$[$0 - 2], $$[$0 - 1]);\n break;\n case 37:\n case 38:\n case 56:\n case 64:\n this.$ = [$$[$0]];\n break;\n case 39:\n case 40:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n case 41:\n this.$ = $$[$0 - 2];\n yy.setClass($$[$0 - 1], $$[$0]);\n break;\n case 42:\n ;\n this.$ = $$[$0 - 3];\n yy.addCssStyles($$[$0 - 2], $$[$0 - 1]);\n break;\n case 43:\n this.$ = [$$[$0]];\n break;\n case 44:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 46:\n this.$ = $$[$0 - 1] + $$[$0];\n break;\n case 54:\n case 76:\n case 77:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 55:\n case 78:\n this.$ = $$[$0];\n break;\n case 57:\n $$[$0].push($$[$0 - 1]);\n this.$ = $$[$0];\n break;\n case 58:\n this.$ = { type: $$[$0 - 1], name: $$[$0] };\n break;\n case 59:\n this.$ = { type: $$[$0 - 2], name: $$[$0 - 1], keys: $$[$0] };\n break;\n case 60:\n this.$ = { type: $$[$0 - 2], name: $$[$0 - 1], comment: $$[$0] };\n break;\n case 61:\n this.$ = { type: $$[$0 - 3], name: $$[$0 - 2], keys: $$[$0 - 1], comment: $$[$0] };\n break;\n case 62:\n case 63:\n case 66:\n this.$ = $$[$0];\n break;\n case 65:\n $$[$0 - 2].push($$[$0]);\n this.$ = $$[$0 - 2];\n break;\n case 67:\n this.$ = $$[$0].replace(/\"/g, \"\");\n break;\n case 68:\n this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };\n break;\n case 69:\n this.$ = yy.Cardinality.ZERO_OR_ONE;\n break;\n case 70:\n this.$ = yy.Cardinality.ZERO_OR_MORE;\n break;\n case 71:\n this.$ = yy.Cardinality.ONE_OR_MORE;\n break;\n case 72:\n this.$ = yy.Cardinality.ONLY_ONE;\n break;\n case 73:\n this.$ = yy.Cardinality.MD_PARENT;\n break;\n case 74:\n this.$ = yy.Identification.NON_IDENTIFYING;\n break;\n case 75:\n this.$ = yy.Identification.IDENTIFYING;\n break;\n }\n }, \"anonymous\"),\n table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: 9, 22: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V5, 34: $V6, 35: $V7, 36: $V8, 37: $V9, 40: $Va, 43: $Vb, 44: $Vc, 50: $Vd }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 27, 11: 9, 22: $V1, 24: $V2, 26: $V3, 28: $V4, 29: 14, 30: 15, 31: 16, 32: 17, 33: $V5, 34: $V6, 35: $V7, 36: $V8, 37: $V9, 40: $Va, 43: $Vb, 44: $Vc, 50: $Vd }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 16], { 12: 28, 61: 32, 15: [1, 29], 17: [1, 30], 20: [1, 31], 63: $Ve, 64: $Vf, 65: $Vg, 66: $Vh, 67: $Vi }), { 23: [1, 38] }, { 25: [1, 39] }, { 27: [1, 40] }, o($V0, [2, 27]), o($V0, [2, 28]), o($V0, [2, 29]), o($V0, [2, 30]), o($V0, [2, 31]), o($Vj, [2, 54]), o($Vj, [2, 55]), o($V0, [2, 32]), o($V0, [2, 33]), o($V0, [2, 34]), o($V0, [2, 35]), { 16: 41, 40: $Vk, 41: $Vl }, { 16: 44, 40: $Vk, 41: $Vl }, { 16: 45, 40: $Vk, 41: $Vl }, o($V0, [2, 4]), { 11: 46, 40: $Va, 50: $Vd }, { 16: 47, 40: $Vk, 41: $Vl }, { 18: 48, 19: [1, 49], 51: 50, 52: 51, 56: $Vm }, { 11: 53, 40: $Va, 50: $Vd }, { 62: 54, 68: [1, 55], 69: [1, 56] }, o($Vn, [2, 69]), o($Vn, [2, 70]), o($Vn, [2, 71]), o($Vn, [2, 72]), o($Vn, [2, 73]), o($V0, [2, 24]), o($V0, [2, 25]), o($V0, [2, 26]), { 13: $Vo, 38: 57, 41: $Vp, 42: $Vq, 45: 59, 46: 60, 48: $Vr, 49: $Vs }, o($Vt, [2, 37]), o($Vt, [2, 38]), { 16: 65, 40: $Vk, 41: $Vl, 42: $Vq }, { 13: $Vo, 38: 66, 41: $Vp, 42: $Vq, 45: 59, 46: 60, 48: $Vr, 49: $Vs }, { 13: [1, 67], 15: [1, 68] }, o($V0, [2, 17], { 61: 32, 12: 69, 17: [1, 70], 42: $Vq, 63: $Ve, 64: $Vf, 65: $Vg, 66: $Vh, 67: $Vi }), { 19: [1, 71] }, o($V0, [2, 14]), { 18: 72, 19: [2, 56], 51: 50, 52: 51, 56: $Vm }, { 53: 73, 56: [1, 74] }, { 56: [2, 62] }, { 21: [1, 75] }, { 61: 76, 63: $Ve, 64: $Vf, 65: $Vg, 66: $Vh, 67: $Vi }, o($Vu, [2, 74]), o($Vu, [2, 75]), { 6: $Vv, 10: $Vw, 39: 77, 42: $Vx, 47: $Vy }, { 40: [1, 82], 41: [1, 83] }, o($Vz, [2, 43], { 46: 84, 13: $Vo, 41: $Vp, 48: $Vr, 49: $Vs }), o($VA, [2, 45]), o($VA, [2, 50]), o($VA, [2, 51]), o($VA, [2, 52]), o($VA, [2, 53]), o($V0, [2, 41], { 42: $Vq }), { 6: $Vv, 10: $Vw, 39: 85, 42: $Vx, 47: $Vy }, { 14: 86, 40: $VB, 50: $VC, 70: $VD }, { 16: 90, 40: $Vk, 41: $Vl }, { 11: 91, 40: $Va, 50: $Vd }, { 18: 92, 19: [1, 93], 51: 50, 52: 51, 56: $Vm }, o($V0, [2, 12]), { 19: [2, 57] }, o($VE, [2, 58], { 54: 94, 55: 95, 57: 96, 59: $VF, 60: $VG }), o([19, 56, 59, 60], [2, 63]), o($V0, [2, 22], { 15: [1, 100], 17: [1, 99] }), o([40, 50], [2, 68]), o($V0, [2, 36]), { 13: $Vo, 41: $Vp, 45: 101, 46: 60, 48: $Vr, 49: $Vs }, o($V0, [2, 47]), o($V0, [2, 48]), o($V0, [2, 49]), o($Vt, [2, 39]), o($Vt, [2, 40]), o($VA, [2, 46]), o($V0, [2, 42]), o($V0, [2, 8]), o($V0, [2, 76]), o($V0, [2, 77]), o($V0, [2, 78]), { 13: [1, 102], 42: $Vq }, { 13: [1, 104], 15: [1, 103] }, { 19: [1, 105] }, o($V0, [2, 15]), o($VE, [2, 59], { 55: 106, 58: [1, 107], 60: $VG }), o($VE, [2, 60]), o($VH, [2, 64]), o($VE, [2, 67]), o($VH, [2, 66]), { 18: 108, 19: [1, 109], 51: 50, 52: 51, 56: $Vm }, { 16: 110, 40: $Vk, 41: $Vl }, o($Vz, [2, 44], { 46: 84, 13: $Vo, 41: $Vp, 48: $Vr, 49: $Vs }), { 14: 111, 40: $VB, 50: $VC, 70: $VD }, { 16: 112, 40: $Vk, 41: $Vl }, { 14: 113, 40: $VB, 50: $VC, 70: $VD }, o($V0, [2, 13]), o($VE, [2, 61]), { 57: 114, 59: $VF }, { 19: [1, 115] }, o($V0, [2, 20]), o($V0, [2, 23], { 17: [1, 116], 42: $Vq }), o($V0, [2, 11]), { 13: [1, 117], 42: $Vq }, o($V0, [2, 10]), o($VH, [2, 65]), o($V0, [2, 18]), { 18: 118, 19: [1, 119], 51: 50, 52: 51, 56: $Vm }, { 14: 120, 40: $VB, 50: $VC, 70: $VD }, { 19: [1, 121] }, o($V0, [2, 21]), o($V0, [2, 9]), o($V0, [2, 19])],\n defaultActions: { 52: [2, 62], 72: [2, 57] },\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n }, \"parseError\"),\n parse: /* @__PURE__ */ __name(function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = \"\", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer2 = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer2.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer2;\n sharedState.yy.parser = this;\n if (typeof lexer2.yylloc == \"undefined\") {\n lexer2.yylloc = {};\n }\n var yyloc = lexer2.yylloc;\n lstack.push(yyloc);\n var ranges = lexer2.options && lexer2.options.ranges;\n if (typeof sharedState.yy.parseError === \"function\") {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n __name(popStack, \"popStack\");\n function lex() {\n var token;\n token = tstack.pop() || lexer2.lex() || EOF;\n if (typeof token !== \"number\") {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n __name(lex, \"lex\");\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == \"undefined\") {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === \"undefined\" || !action.length || !action[0]) {\n var errStr = \"\";\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push(\"'\" + this.terminals_[p] + \"'\");\n }\n }\n if (lexer2.showPosition) {\n errStr = \"Parse error on line \" + (yylineno + 1) + \":\\n\" + lexer2.showPosition() + \"\\nExpecting \" + expected.join(\", \") + \", got '\" + (this.terminals_[symbol] || symbol) + \"'\";\n } else {\n errStr = \"Parse error on line \" + (yylineno + 1) + \": Unexpected \" + (symbol == EOF ? \"end of input\" : \"'\" + (this.terminals_[symbol] || symbol) + \"'\");\n }\n this.parseError(errStr, {\n text: lexer2.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer2.yylineno,\n loc: yyloc,\n expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error(\"Parse Error: multiple actions possible at state: \" + state + \", token: \" + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer2.yytext);\n lstack.push(lexer2.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer2.yyleng;\n yytext = lexer2.yytext;\n yylineno = lexer2.yylineno;\n yyloc = lexer2.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== \"undefined\") {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n }, \"parse\")\n };\n var lexer = /* @__PURE__ */ function() {\n var lexer2 = {\n EOF: 1,\n parseError: /* @__PURE__ */ __name(function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n }, \"parseError\"),\n // resets the lexer, sets new input\n setInput: /* @__PURE__ */ __name(function(input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = \"\";\n this.conditionStack = [\"INITIAL\"];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0, 0];\n }\n this.offset = 0;\n return this;\n }, \"setInput\"),\n // consumes and returns one char from the input\n input: /* @__PURE__ */ __name(function() {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n this._input = this._input.slice(1);\n return ch;\n }, \"input\"),\n // unshifts one char (or a string) into the input\n unput: /* @__PURE__ */ __name(function(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len\n };\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n }, \"unput\"),\n // When called from action, caches matched text and appends it on next action\n more: /* @__PURE__ */ __name(function() {\n this._more = true;\n return this;\n }, \"more\"),\n // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\n reject: /* @__PURE__ */ __name(function() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n return this;\n }, \"reject\"),\n // retain first n characters of the match\n less: /* @__PURE__ */ __name(function(n) {\n this.unput(this.match.slice(n));\n }, \"less\"),\n // displays already matched input, i.e. for error messages\n pastInput: /* @__PURE__ */ __name(function() {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? \"...\" : \"\") + past.substr(-20).replace(/\\n/g, \"\");\n }, \"pastInput\"),\n // displays upcoming input, i.e. for error messages\n upcomingInput: /* @__PURE__ */ __name(function() {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20 - next.length);\n }\n return (next.substr(0, 20) + (next.length > 20 ? \"...\" : \"\")).replace(/\\n/g, \"\");\n }, \"upcomingInput\"),\n // displays the character position where the lexing error occurred, i.e. for error messages\n showPosition: /* @__PURE__ */ __name(function() {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n }, \"showPosition\"),\n // test the lexed token: return FALSE when not a match, otherwise return token\n test_match: /* @__PURE__ */ __name(function(match, indexed_rule) {\n var token, lines, backup;\n if (this.options.backtrack_lexer) {\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length : this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false;\n }\n return false;\n }, \"test_match\"),\n // return next match in input\n next: /* @__PURE__ */ __name(function() {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n var token, match, tempMatch, index;\n if (!this._more) {\n this.yytext = \"\";\n this.match = \"\";\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue;\n } else {\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError(\"Lexical error on line \" + (this.yylineno + 1) + \". Unrecognized text.\\n\" + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n }, \"next\"),\n // return next match that has a token\n lex: /* @__PURE__ */ __name(function lex() {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n }, \"lex\"),\n // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\n begin: /* @__PURE__ */ __name(function begin(condition) {\n this.conditionStack.push(condition);\n }, \"begin\"),\n // pop the previously active lexer condition state off the condition stack\n popState: /* @__PURE__ */ __name(function popState() {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n }, \"popState\"),\n // produce the lexer rule set which is active for the currently active lexer condition state\n _currentRules: /* @__PURE__ */ __name(function _currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n }, \"_currentRules\"),\n // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\n topState: /* @__PURE__ */ __name(function topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n }, \"topState\"),\n // alias for begin(condition)\n pushState: /* @__PURE__ */ __name(function pushState(condition) {\n this.begin(condition);\n }, \"pushState\"),\n // return the number of states currently on the stack\n stateStackSize: /* @__PURE__ */ __name(function stateStackSize() {\n return this.conditionStack.length;\n }, \"stateStackSize\"),\n options: { \"case-insensitive\": true },\n performAction: /* @__PURE__ */ __name(function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {\n var YYSTATE = YY_START;\n switch ($avoiding_name_collisions) {\n case 0:\n this.begin(\"acc_title\");\n return 24;\n break;\n case 1:\n this.popState();\n return \"acc_title_value\";\n break;\n case 2:\n this.begin(\"acc_descr\");\n return 26;\n break;\n case 3:\n this.popState();\n return \"acc_descr_value\";\n break;\n case 4:\n this.begin(\"acc_descr_multiline\");\n break;\n case 5:\n this.popState();\n break;\n case 6:\n return \"acc_descr_multiline_value\";\n break;\n case 7:\n return 33;\n break;\n case 8:\n return 34;\n break;\n case 9:\n return 35;\n break;\n case 10:\n return 36;\n break;\n case 11:\n return 10;\n break;\n case 12:\n break;\n case 13:\n return 8;\n break;\n case 14:\n return 50;\n break;\n case 15:\n return 70;\n break;\n case 16:\n return 4;\n break;\n case 17:\n this.begin(\"block\");\n return 17;\n break;\n case 18:\n return 49;\n break;\n case 19:\n return 49;\n break;\n case 20:\n return 42;\n break;\n case 21:\n return 15;\n break;\n case 22:\n return 13;\n break;\n case 23:\n break;\n case 24:\n return 59;\n break;\n case 25:\n return 56;\n break;\n case 26:\n return 56;\n break;\n case 27:\n return 60;\n break;\n case 28:\n break;\n case 29:\n this.popState();\n return 19;\n break;\n case 30:\n return yy_.yytext[0];\n break;\n case 31:\n return 20;\n break;\n case 32:\n return 21;\n break;\n case 33:\n this.begin(\"style\");\n return 44;\n break;\n case 34:\n this.popState();\n return 10;\n break;\n case 35:\n break;\n case 36:\n return 13;\n break;\n case 37:\n return 42;\n break;\n case 38:\n return 49;\n break;\n case 39:\n this.begin(\"style\");\n return 37;\n break;\n case 40:\n return 43;\n break;\n case 41:\n return 63;\n break;\n case 42:\n return 65;\n break;\n case 43:\n return 65;\n break;\n case 44:\n return 65;\n break;\n case 45:\n return 63;\n break;\n case 46:\n return 63;\n break;\n case 47:\n return 64;\n break;\n case 48:\n return 64;\n break;\n case 49:\n return 64;\n break;\n case 50:\n return 64;\n break;\n case 51:\n return 64;\n break;\n case 52:\n return 65;\n break;\n case 53:\n return 64;\n break;\n case 54:\n return 65;\n break;\n case 55:\n return 66;\n break;\n case 56:\n return 66;\n break;\n case 57:\n return 66;\n break;\n case 58:\n return 66;\n break;\n case 59:\n return 63;\n break;\n case 60:\n return 64;\n break;\n case 61:\n return 65;\n break;\n case 62:\n return 67;\n break;\n case 63:\n return 68;\n break;\n case 64:\n return 69;\n break;\n case 65:\n return 69;\n break;\n case 66:\n return 68;\n break;\n case 67:\n return 68;\n break;\n case 68:\n return 68;\n break;\n case 69:\n return 41;\n break;\n case 70:\n return 47;\n break;\n case 71:\n return 40;\n break;\n case 72:\n return 48;\n break;\n case 73:\n return yy_.yytext[0];\n break;\n case 74:\n return 6;\n break;\n }\n }, \"anonymous\"),\n rules: [/^(?:accTitle\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*:\\s*)/i, /^(?:(?!\\n||)*[^\\n]*)/i, /^(?:accDescr\\s*\\{\\s*)/i, /^(?:[\\}])/i, /^(?:[^\\}]*)/i, /^(?:.*direction\\s+TB[^\\n]*)/i, /^(?:.*direction\\s+BT[^\\n]*)/i, /^(?:.*direction\\s+RL[^\\n]*)/i, /^(?:.*direction\\s+LR[^\\n]*)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?:[\\s]+)/i, /^(?:\"[^\"%\\r\\n\\v\\b\\\\]+\")/i, /^(?:\"[^\"]*\")/i, /^(?:erDiagram\\b)/i, /^(?:\\{)/i, /^(?:#)/i, /^(?:#)/i, /^(?:,)/i, /^(?::::)/i, /^(?::)/i, /^(?:\\s+)/i, /^(?:\\b((?:PK)|(?:FK)|(?:UK))\\b)/i, /^(?:([^\\s]*)[~].*[~]([^\\s]*))/i, /^(?:([\\*A-Za-z_\\u00C0-\\uFFFF][A-Za-z0-9\\-\\_\\[\\]\\(\\)\\u00C0-\\uFFFF\\*]*))/i, /^(?:\"[^\"]*\")/i, /^(?:[\\n]+)/i, /^(?:\\})/i, /^(?:.)/i, /^(?:\\[)/i, /^(?:\\])/i, /^(?:style\\b)/i, /^(?:[\\n]+)/i, /^(?:\\s+)/i, /^(?::)/i, /^(?:,)/i, /^(?:#)/i, /^(?:classDef\\b)/i, /^(?:class\\b)/i, /^(?:one or zero\\b)/i, /^(?:one or more\\b)/i, /^(?:one or many\\b)/i, /^(?:1\\+)/i, /^(?:\\|o\\b)/i, /^(?:zero or one\\b)/i, /^(?:zero or more\\b)/i, /^(?:zero or many\\b)/i, /^(?:0\\+)/i, /^(?:\\}o\\b)/i, /^(?:many\\(0\\))/i, /^(?:many\\(1\\))/i, /^(?:many\\b)/i, /^(?:\\}\\|)/i, /^(?:one\\b)/i, /^(?:only one\\b)/i, /^(?:1\\b)/i, /^(?:\\|\\|)/i, /^(?:o\\|)/i, /^(?:o\\{)/i, /^(?:\\|\\{)/i, /^(?:\\s*u\\b)/i, /^(?:\\.\\.)/i, /^(?:--)/i, /^(?:to\\b)/i, /^(?:optionally to\\b)/i, /^(?:\\.-)/i, /^(?:-\\.)/i, /^(?:([^\\x00-\\x7F]|\\w|-|\\*)+)/i, /^(?:;)/i, /^(?:([^\\x00-\\x7F]|\\w|-|\\*)+)/i, /^(?:[0-9])/i, /^(?:.)/i, /^(?:$)/i],\n conditions: { \"style\": { \"rules\": [34, 35, 36, 37, 38, 69, 70], \"inclusive\": false }, \"acc_descr_multiline\": { \"rules\": [5, 6], \"inclusive\": false }, \"acc_descr\": { \"rules\": [3], \"inclusive\": false }, \"acc_title\": { \"rules\": [1], \"inclusive\": false }, \"block\": { \"rules\": [23, 24, 25, 26, 27, 28, 29, 30], \"inclusive\": false }, \"INITIAL\": { \"rules\": [0, 2, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 31, 32, 33, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 74], \"inclusive\": true } }\n };\n return lexer2;\n }();\n parser2.lexer = lexer;\n function Parser() {\n this.yy = {};\n }\n __name(Parser, \"Parser\");\n Parser.prototype = parser2;\n parser2.Parser = Parser;\n return new Parser();\n}();\nparser.parser = parser;\nvar erDiagram_default = parser;\n\n// src/diagrams/er/erDb.ts\nvar ErDB = class {\n constructor() {\n this.entities = /* @__PURE__ */ new Map();\n this.relationships = [];\n this.classes = /* @__PURE__ */ new Map();\n this.direction = \"TB\";\n this.Cardinality = {\n ZERO_OR_ONE: \"ZERO_OR_ONE\",\n ZERO_OR_MORE: \"ZERO_OR_MORE\",\n ONE_OR_MORE: \"ONE_OR_MORE\",\n ONLY_ONE: \"ONLY_ONE\",\n MD_PARENT: \"MD_PARENT\"\n };\n this.Identification = {\n NON_IDENTIFYING: \"NON_IDENTIFYING\",\n IDENTIFYING: \"IDENTIFYING\"\n };\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setAccDescription = setAccDescription;\n this.getAccDescription = getAccDescription;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getConfig = /* @__PURE__ */ __name(() => getConfig().er, \"getConfig\");\n this.clear();\n this.addEntity = this.addEntity.bind(this);\n this.addAttributes = this.addAttributes.bind(this);\n this.addRelationship = this.addRelationship.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.addCssStyles = this.addCssStyles.bind(this);\n this.addClass = this.addClass.bind(this);\n this.setClass = this.setClass.bind(this);\n this.setAccTitle = this.setAccTitle.bind(this);\n this.setAccDescription = this.setAccDescription.bind(this);\n }\n static {\n __name(this, \"ErDB\");\n }\n /**\n * Add entity\n * @param name - The name of the entity\n * @param alias - The alias of the entity\n */\n addEntity(name, alias = \"\") {\n if (!this.entities.has(name)) {\n this.entities.set(name, {\n id: `entity-${name}-${this.entities.size}`,\n label: name,\n attributes: [],\n alias,\n shape: \"erBox\",\n look: getConfig().look ?? \"default\",\n cssClasses: \"default\",\n cssStyles: []\n });\n log.info(\"Added new entity :\", name);\n } else if (!this.entities.get(name)?.alias && alias) {\n this.entities.get(name).alias = alias;\n log.info(`Add alias '${alias}' to entity '${name}'`);\n }\n return this.entities.get(name);\n }\n getEntity(name) {\n return this.entities.get(name);\n }\n getEntities() {\n return this.entities;\n }\n getClasses() {\n return this.classes;\n }\n addAttributes(entityName, attribs) {\n const entity = this.addEntity(entityName);\n let i;\n for (i = attribs.length - 1; i >= 0; i--) {\n if (!attribs[i].keys) {\n attribs[i].keys = [];\n }\n if (!attribs[i].comment) {\n attribs[i].comment = \"\";\n }\n entity.attributes.push(attribs[i]);\n log.debug(\"Added attribute \", attribs[i].name);\n }\n }\n /**\n * Add a relationship\n *\n * @param entA - The first entity in the relationship\n * @param rolA - The role played by the first entity in relation to the second\n * @param entB - The second entity in the relationship\n * @param rSpec - The details of the relationship between the two entities\n */\n addRelationship(entA, rolA, entB, rSpec) {\n const entityA = this.entities.get(entA);\n const entityB = this.entities.get(entB);\n if (!entityA || !entityB) {\n return;\n }\n const rel = {\n entityA: entityA.id,\n roleA: rolA,\n entityB: entityB.id,\n relSpec: rSpec\n };\n this.relationships.push(rel);\n log.debug(\"Added new relationship :\", rel);\n }\n getRelationships() {\n return this.relationships;\n }\n getDirection() {\n return this.direction;\n }\n setDirection(dir) {\n this.direction = dir;\n }\n getCompiledStyles(classDefs) {\n let compiledStyles = [];\n for (const customClass of classDefs) {\n const cssClass = this.classes.get(customClass);\n if (cssClass?.styles) {\n compiledStyles = [...compiledStyles, ...cssClass.styles ?? []].map((s) => s.trim());\n }\n if (cssClass?.textStyles) {\n compiledStyles = [...compiledStyles, ...cssClass.textStyles ?? []].map((s) => s.trim());\n }\n }\n return compiledStyles;\n }\n addCssStyles(ids, styles) {\n for (const id of ids) {\n const entity = this.entities.get(id);\n if (!styles || !entity) {\n return;\n }\n for (const style of styles) {\n entity.cssStyles.push(style);\n }\n }\n }\n addClass(ids, style) {\n ids.forEach((id) => {\n let classNode = this.classes.get(id);\n if (classNode === void 0) {\n classNode = { id, styles: [], textStyles: [] };\n this.classes.set(id, classNode);\n }\n if (style) {\n style.forEach(function(s) {\n if (/color/.exec(s)) {\n const newStyle = s.replace(\"fill\", \"bgFill\");\n classNode.textStyles.push(newStyle);\n }\n classNode.styles.push(s);\n });\n }\n });\n }\n setClass(ids, classNames) {\n for (const id of ids) {\n const entity = this.entities.get(id);\n if (entity) {\n for (const className of classNames) {\n entity.cssClasses += \" \" + className;\n }\n }\n }\n }\n clear() {\n this.entities = /* @__PURE__ */ new Map();\n this.classes = /* @__PURE__ */ new Map();\n this.relationships = [];\n clear();\n }\n getData() {\n const nodes = [];\n const edges = [];\n const config = getConfig();\n for (const entityKey of this.entities.keys()) {\n const entityNode = this.entities.get(entityKey);\n if (entityNode) {\n entityNode.cssCompiledStyles = this.getCompiledStyles(entityNode.cssClasses.split(\" \"));\n nodes.push(entityNode);\n }\n }\n let count = 0;\n for (const relationship of this.relationships) {\n const edge = {\n id: getEdgeId(relationship.entityA, relationship.entityB, {\n prefix: \"id\",\n counter: count++\n }),\n type: \"normal\",\n curve: \"basis\",\n start: relationship.entityA,\n end: relationship.entityB,\n label: relationship.roleA,\n labelpos: \"c\",\n thickness: \"normal\",\n classes: \"relationshipLine\",\n arrowTypeStart: relationship.relSpec.cardB.toLowerCase(),\n arrowTypeEnd: relationship.relSpec.cardA.toLowerCase(),\n pattern: relationship.relSpec.relType == \"IDENTIFYING\" ? \"solid\" : \"dashed\",\n look: config.look\n };\n edges.push(edge);\n }\n return { nodes, edges, other: {}, config, direction: \"TB\" };\n }\n};\n\n// src/diagrams/er/erRenderer-unified.ts\nvar erRenderer_unified_exports = {};\n__export(erRenderer_unified_exports, {\n draw: () => draw\n});\nimport { select } from \"d3\";\nvar draw = /* @__PURE__ */ __name(async function(text, id, _version, diag) {\n log.info(\"REF0:\");\n log.info(\"Drawing er diagram (unified)\", id);\n const { securityLevel, er: conf, layout } = getConfig();\n const data4Layout = diag.db.getData();\n const svg = getDiagramElement(id, securityLevel);\n data4Layout.type = diag.type;\n data4Layout.layoutAlgorithm = getRegisteredLayoutAlgorithm(layout);\n data4Layout.config.flowchart.nodeSpacing = conf?.nodeSpacing || 140;\n data4Layout.config.flowchart.rankSpacing = conf?.rankSpacing || 80;\n data4Layout.direction = diag.db.getDirection();\n data4Layout.markers = [\"only_one\", \"zero_or_one\", \"one_or_more\", \"zero_or_more\"];\n data4Layout.diagramId = id;\n await render(data4Layout, svg);\n if (data4Layout.layoutAlgorithm === \"elk\") {\n svg.select(\".edges\").lower();\n }\n const backgroundNodes = svg.selectAll('[id*=\"-background\"]');\n if (Array.from(backgroundNodes).length > 0) {\n backgroundNodes.each(function() {\n const backgroundNode = select(this);\n const backgroundId = backgroundNode.attr(\"id\");\n const nonBackgroundId = backgroundId.replace(\"-background\", \"\");\n const nonBackgroundNode = svg.select(`#${CSS.escape(nonBackgroundId)}`);\n if (!nonBackgroundNode.empty()) {\n const transform = nonBackgroundNode.attr(\"transform\");\n backgroundNode.attr(\"transform\", transform);\n }\n });\n }\n const padding = 8;\n utils_default.insertTitle(\n svg,\n \"erDiagramTitleText\",\n conf?.titleTopMargin ?? 25,\n diag.db.getDiagramTitle()\n );\n setupViewPortForSVG(svg, padding, \"erDiagram\", conf?.useMaxWidth ?? true);\n}, \"draw\");\n\n// src/diagrams/er/styles.ts\nimport * as khroma from \"khroma\";\nvar fade = /* @__PURE__ */ __name((color, opacity) => {\n const channel2 = khroma.channel;\n const r = channel2(color, \"r\");\n const g = channel2(color, \"g\");\n const b = channel2(color, \"b\");\n return khroma.rgba(r, g, b, opacity);\n}, \"fade\");\nvar getStyles = /* @__PURE__ */ __name((options) => `\n .entityBox {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${options.tertiaryColor};\n opacity: 0.7;\n background-color: ${options.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .labelBkg {\n background-color: ${fade(options.tertiaryColor, 0.5)};\n }\n\n .edgeLabel .label {\n fill: ${options.nodeBorder};\n font-size: 14px;\n }\n\n .label {\n font-family: ${options.fontFamily};\n color: ${options.nodeTextColor || options.textColor};\n }\n\n .edge-pattern-dashed {\n stroke-dasharray: 8,8;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon\n {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n .relationshipLine {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n }\n\n .marker {\n fill: none !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n }\n`, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/er/erDiagram.ts\nvar diagram = {\n parser: erDiagram_default,\n get db() {\n return new ErDB();\n },\n renderer: erRenderer_unified_exports,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["parser","o","__name","k","v","o2","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","parser2","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","str","hash","error","input","self","stack","tstack","vstack","lstack","table","TERROR","EOF","args","lexer2","sharedState","yyloc","ranges","popStack","n","lex","token","symbol","state","action","r","yyval","p","len","newState","expected","errStr","lexer","ch","lines","oldLines","past","next","pre","c","match","indexed_rule","backup","tempMatch","index","rules","i","condition","yy_","$avoiding_name_collisions","YY_START","Parser","erDiagram_default","ErDB","_a","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","getConfig","name","alias","log","entityName","attribs","entity","entA","rolA","entB","rSpec","entityA","entityB","rel","dir","classDefs","compiledStyles","customClass","cssClass","s","ids","styles","id","style","classNode","newStyle","classNames","className","clear","nodes","edges","config","entityKey","entityNode","count","relationship","edge","getEdgeId","erRenderer_unified_exports","__export","draw","text","_version","diag","securityLevel","conf","layout","data4Layout","svg","getDiagramElement","getRegisteredLayoutAlgorithm","render","backgroundNodes","backgroundNode","select","nonBackgroundId","nonBackgroundNode","transform","padding","utils_default","setupViewPortForSVG","fade","color","opacity","channel2","khroma.channel","g","b","khroma.rgba","getStyles","options","styles_default","diagram"],"mappings":"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ET,IAAK,GACH,YAAK,MAAM,WAAW,EACf,GAET,IAAK,GACH,YAAK,SAAU,EACR,kBAET,IAAK,GACH,KAAK,MAAM,qBAAqB,EAChC,MACF,IAAK,GACH,KAAK,SAAU,EACf,MACF,IAAK,GACH,MAAO,4BAET,IAAK,GACH,MAAO,IAET,IAAK,GACH,MAAO,IAET,IAAK,GACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MACF,IAAK,IACH,MAAO,GAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,GAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MACF,IAAK,IACH,YAAK,SAAU,EACR,GAET,IAAK,IACH,OAAOD,EAAI,OAAO,CAAC,EAErB,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,YAAK,SAAU,EACR,GAET,IAAK,IACH,MACF,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,YAAK,MAAM,OAAO,EACX,GAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,IAAK,IACH,MAAO,IAET,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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i,b as a,j as o,i as c}from"./index-
|
|
2
|
-
//# sourceMappingURL=error-boundary-
|
|
1
|
+
import{a as i,b as a,j as o,i as c}from"./index-Dsusf_Av.js";import{g as m}from"./misc-2sBiisF5.js";function f({defaultStatusHandler:s=({error:r})=>o.jsxs("p",{children:[r.status," ",r.data]}),statusHandlers:e,unexpectedErrorHandler:t=r=>o.jsx("p",{children:m(r)})}){const r=i(),n=a();return typeof document<"u"&&console.error(r),o.jsx("div",{className:"container flex items-center justify-center p-20 text-h2",children:c(r)?((e==null?void 0:e[r.status])??s)({error:r,params:n}):t(r)})}export{f as G};
|
|
2
|
+
//# sourceMappingURL=error-boundary-B07cWiEy.js.map
|
package/build/client/assets/{error-boundary-CAu3AmhN.js.map → error-boundary-B07cWiEy.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary-
|
|
1
|
+
{"version":3,"file":"error-boundary-B07cWiEy.js","sources":["../../../app/components/error-boundary.tsx"],"sourcesContent":["import {\n\tisRouteErrorResponse,\n\tuseParams,\n\tuseRouteError,\n\ttype ErrorResponse,\n} from '@remix-run/react'\nimport { getErrorMessage } from '#app/utils/misc.tsx'\n\ntype StatusHandler = (info: {\n\terror: ErrorResponse\n\tparams: Record<string, string | undefined>\n}) => React.ReactNode | null\n\nexport function GeneralErrorBoundary({\n\tdefaultStatusHandler = ({ error }) => (\n\t\t<p>\n\t\t\t{error.status} {error.data}\n\t\t</p>\n\t),\n\tstatusHandlers,\n\tunexpectedErrorHandler = (error) => <p>{getErrorMessage(error)}</p>,\n}: {\n\tdefaultStatusHandler?: StatusHandler\n\tstatusHandlers?: Record<number, StatusHandler>\n\tunexpectedErrorHandler?: (error: unknown) => React.ReactNode | null\n}) {\n\tconst error = useRouteError()\n\tconst params = useParams()\n\n\tif (typeof document !== 'undefined') {\n\t\tconsole.error(error)\n\t}\n\n\treturn (\n\t\t<div className=\"container flex items-center justify-center p-20 text-h2\">\n\t\t\t{isRouteErrorResponse(error)\n\t\t\t\t? (statusHandlers?.[error.status] ?? defaultStatusHandler)({\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t})\n\t\t\t\t: unexpectedErrorHandler(error)}\n\t\t</div>\n\t)\n}\n"],"names":["GeneralErrorBoundary","defaultStatusHandler","error","statusHandlers","unexpectedErrorHandler","getErrorMessage","useRouteError","params","useParams","jsx","isRouteErrorResponse"],"mappings":"oGAaO,SAASA,EAAqB,CACpC,qBAAAC,EAAuB,CAAC,CAAE,MAAAC,CAAM,WAC9B,IACC,CAAA,SAAA,CAAMA,EAAA,OAAO,IAAEA,EAAM,IAAA,EACvB,EAED,eAAAC,EACA,uBAAAC,EAA0BF,SAAW,IAAG,CAAA,SAAAG,EAAgBH,CAAK,CAAE,CAAA,CAChE,EAIG,CACF,MAAMA,EAAQI,EAAc,EACtBC,EAASC,EAAU,EAErB,OAAA,OAAO,SAAa,KACvB,QAAQ,MAAMN,CAAK,EAInBO,EAAA,IAAC,MAAI,CAAA,UAAU,0DACb,SAAAC,EAAqBR,CAAK,IACvBC,GAAA,YAAAA,EAAiBD,EAAM,UAAWD,GAAsB,CACzD,MAAAC,EACA,OAAAK,CAAA,CACA,EACAH,EAAuBF,CAAK,EAChC,CAEF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,r as l}from"./index-
|
|
2
|
-
//# sourceMappingURL=finished-
|
|
1
|
+
import{j as e,r as l}from"./index-Dsusf_Av.js";import{E as n}from"./index-B8yUFowV.js";import{E as a}from"./epic-video-DN9DRRHf.js";import{I as c,a as d}from"./misc-2sBiisF5.js";import{L as m}from"./loading-BPTYJOXN.js";import{N as f}from"./nav-chevrons-CV-dpXNR.js";import{u as h}from"./revalidation-ws-ho-umDqd.js";import{M as p,E as x}from"./mdx-Dfsh6Vjk.js";import{u}from"./online-IWqRB9zP.js";import{g as j}from"./seo-pBpFCWsy.js";import{P as b}from"./progress-BJ4ADF-s.js";import{u as g}from"./index-CEP3Xxa0.js";import{u as v,L as w}from"./components-5arJTWsS.js";import"./user-DNSnhqGn.js";import"./workshop-config-DchzGYJM.js";import"./progress-bar-DgnkQxQw.js";import"./pe-BShc2dvc.js";import"./tooltip-Bzd6O8vq.js";const G={getSitemapEntries:()=>[{route:"/finished"}]},Q=({matches:s})=>{var i;const r=(i=s.find(o=>o.id==="root"))==null?void 0:i.data;return r?j({title:`🎉 ${r==null?void 0:r.workshopTitle}`,description:`Elaboration for ${r==null?void 0:r.workshopTitle}`,ogTitle:`Finished ${r==null?void 0:r.workshopTitle}`,ogDescription:"You finished! Time to submit feedback.",instructor:r.instructor,requestInfo:r.requestInfo}):[]},N={h1:()=>null};function Y(){const s=v();return h({watchPaths:["./exercises/FINISHED.mdx"]}),e.jsx("div",{className:"flex h-full flex-grow flex-col",children:e.jsxs("main",{className:"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1",children:[e.jsxs("div",{className:"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r",children:[e.jsx("h1",{className:"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none",children:e.jsx("div",{className:"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2",children:e.jsxs("div",{className:"flex items-center justify-start gap-x-2",children:[e.jsx(w,{to:"/",className:"hover:underline",children:s.workshopTitle}),e.jsx("span",{children:"/"}),e.jsx("span",{children:"Elaboration"})]})})}),e.jsx("article",{className:"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",id:s.articleId,children:s.finishedCode?e.jsx(a,{epicVideoInfosPromise:s.epicVideoInfosPromise,children:e.jsx("div",{className:"prose dark:prose-invert sm:prose-lg",children:e.jsx(p,{code:s.finishedCode,components:N})})}):"No finished instructions yet..."}),e.jsx(n,{elementQuery:`#${s.articleId}`}),e.jsx(b,{type:"workshop-finished",className:"h-14 border-t px-6"}),e.jsxs("div",{className:"flex h-16 justify-between border-b-4 border-t lg:border-b-0",children:[e.jsx("div",{}),s.workshopFinished.status==="success"?e.jsx(x,{file:s.workshopFinished.file,relativePath:s.workshopFinished.relativePath}):null,e.jsx(f,{prev:s.prevStepLink,next:{to:"/"}})]})]}),e.jsx(k,{workshopTitle:s.workshopTitle,workshopFormEmbedUrl:s.workshopFormEmbedUrl})]})})}function k({workshopTitle:s,workshopFormEmbedUrl:r}){const i=g(),[o,t]=l.useState(!1);return u()?e.jsxs("div",{className:"relative flex-shrink-0",children:[o?null:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center",children:e.jsx(m,{children:e.jsxs("span",{children:["Loading ",s," Elaboration form"]})})}),e.jsx("iframe",{onLoad:()=>t(!0),onError:()=>t(!0),title:"Elaboration",src:r,className:d("absolute inset-0 flex h-full w-full transition-opacity duration-300",o?"opacity-100":"opacity-0"),style:{colorScheme:i}})]}):e.jsx("div",{className:"relative flex-shrink-0",children:e.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center text-foreground-destructive",children:e.jsx(c,{name:"WifiNoConnection",size:"xl",children:e.jsxs("span",{children:["Unable to load the ",e.jsx("a",{href:r,className:"underline",children:`${s} feedback form`})," when offline"]})})})})}export{Y as default,G as handle,Q as meta};
|
|
2
|
+
//# sourceMappingURL=finished-B3G1RUDO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finished-9PhQncNF.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getWorkshopConfig } from '@epic-web/workshop-utils/config.server'\nimport { getEpicVideoInfos } from '@epic-web/workshop-utils/epic-api.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport {\n\tunstable_data as data,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport * as React from 'react'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { Icon } from '#app/components/icons.tsx'\nimport { Loading } from '#app/components/loading.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { useRevalidationWS } from '#app/components/revalidation-ws.js'\nimport { type loader as rootLoader } from '#app/root.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useIsOnline } from '#app/utils/online.ts'\nimport { getSeoMetaTags } from '#app/utils/seo.js'\nimport { EditFileOnGitHub } from '../launch-editor.tsx'\nimport { ProgressToggle } from '../progress.tsx'\nimport { useTheme } from '../theme/index.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => [{ route: '/finished' }],\n}\n\nexport const meta: MetaFunction<typeof loader, { root: typeof rootLoader }> = ({\n\tmatches,\n}) => {\n\tconst rootData = matches.find((m) => m.id === 'root')?.data\n\tif (!rootData) return []\n\n\treturn getSeoMetaTags({\n\t\ttitle: `🎉 ${rootData?.workshopTitle}`,\n\t\tdescription: `Elaboration for ${rootData?.workshopTitle}`,\n\t\togTitle: `Finished ${rootData?.workshopTitle}`,\n\t\togDescription: `You finished! Time to submit feedback.`,\n\t\tinstructor: rootData.instructor,\n\t\trequestInfo: rootData.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('finishedLoader')\n\tconst exercises = await getExercises({ request, timings })\n\tconst compiledFinished = await time(() => getWorkshopFinished({ request }), {\n\t\ttimings,\n\t\ttype: 'compileMdx',\n\t\tdesc: 'compileMdx in finished',\n\t})\n\n\tconst lastExercises = exercises[exercises.length - 1]\n\tconst workshopConfig = getWorkshopConfig()\n\tconst workshopTitle = workshopConfig.title\n\tconst workshopFormTemplate = workshopConfig.forms.workshop\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn data(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(workshopTitle)}-finished`,\n\t\t\tworkshopTitle,\n\t\t\tworkshopFormEmbedUrl,\n\t\t\tfinishedCode:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? compiledFinished.compiled.code\n\t\t\t\t\t: null,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(compiledFinished.compiled.epicVideoEmbeds, {\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null,\n\t\t\tworkshopFinished: {\n\t\t\t\tstatus: compiledFinished.compiled.status,\n\t\t\t\tfile: compiledFinished.file,\n\t\t\t\trelativePath: compiledFinished.relativePath,\n\t\t\t},\n\t\t\tprevStepLink: lastExercises\n\t\t\t\t? {\n\t\t\t\t\t\tto: `/${lastExercises.exerciseNumber}/finished`,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function ExerciseFinished() {\n\tconst data = useLoaderData<typeof loader>()\n\tuseRevalidationWS({ watchPaths: ['./exercises/FINISHED.mdx'] })\n\treturn (\n\t\t<div className=\"flex h-full flex-grow flex-col\">\n\t\t\t<main className=\"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1\">\n\t\t\t\t<div className=\"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r\">\n\t\t\t\t\t<h1 className=\"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none\">\n\t\t\t\t\t\t<div className=\"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-start gap-x-2\">\n\t\t\t\t\t\t\t\t<Link to=\"/\" className=\"hover:underline\">\n\t\t\t\t\t\t\t\t\t{data.workshopTitle}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<span>/</span>\n\t\t\t\t\t\t\t\t<span>Elaboration</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<article\n\t\t\t\t\t\tclassName=\"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8\"\n\t\t\t\t\t\tid={data.articleId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data.finishedCode ? (\n\t\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"prose dark:prose-invert sm:prose-lg\">\n\t\t\t\t\t\t\t\t\t<Mdx code={data.finishedCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t// TODO: render a random dad joke...\n\t\t\t\t\t\t\t'No finished instructions yet...'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</article>\n\t\t\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t\t\t<ProgressToggle\n\t\t\t\t\t\ttype=\"workshop-finished\"\n\t\t\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex h-16 justify-between border-b-4 border-t lg:border-b-0\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t{data.workshopFinished.status === 'success' ? (\n\t\t\t\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\t\t\t\tfile={data.workshopFinished.file}\n\t\t\t\t\t\t\t\trelativePath={data.workshopFinished.relativePath}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavChevrons prev={data.prevStepLink} next={{ to: '/' }} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Survey\n\t\t\t\t\tworkshopTitle={data.workshopTitle}\n\t\t\t\t\tworkshopFormEmbedUrl={data.workshopFormEmbedUrl}\n\t\t\t\t/>\n\t\t\t</main>\n\t\t</div>\n\t)\n}\n\nfunction Survey({\n\tworkshopTitle,\n\tworkshopFormEmbedUrl,\n}: {\n\tworkshopTitle: string\n\tworkshopFormEmbedUrl: string\n}) {\n\tconst theme = useTheme()\n\tconst [iframeLoaded, setIframeLoaded] = React.useState(false)\n\tconst isOnline = useIsOnline()\n\tif (!isOnline) {\n\t\treturn (\n\t\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center text-foreground-destructive\">\n\t\t\t\t\t<Icon name=\"WifiNoConnection\" size=\"xl\">\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{'Unable to load the '}\n\t\t\t\t\t\t\t<a href={workshopFormEmbedUrl} className=\"underline\">\n\t\t\t\t\t\t\t\t{`${workshopTitle} feedback form`}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{' when offline'}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\treturn (\n\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t{!iframeLoaded ? (\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center\">\n\t\t\t\t\t<Loading>\n\t\t\t\t\t\t<span>Loading {workshopTitle} Elaboration form</span>\n\t\t\t\t\t</Loading>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<iframe\n\t\t\t\tonLoad={() => setIframeLoaded(true)}\n\t\t\t\t// show what would have shown if there is an error\n\t\t\t\tonError={() => setIframeLoaded(true)}\n\t\t\t\ttitle=\"Elaboration\"\n\t\t\t\tsrc={workshopFormEmbedUrl}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute inset-0 flex h-full w-full transition-opacity duration-300',\n\t\t\t\t\tiframeLoaded ? 'opacity-100' : 'opacity-0',\n\t\t\t\t)}\n\t\t\t\tstyle={{ colorScheme: theme }}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","route","meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","useRevalidationWS","watchPaths","className","children","jsxs","jsx","Link","to","articleId","finishedCode","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","code","components","ElementScrollRestoration","elementQuery","ProgressToggle","type","workshopFinished","status","EditFileOnGitHub","file","relativePath","NavChevrons","prev","prevStepLink","next","Survey","workshopFormEmbedUrl","theme","useTheme","iframeLoaded","setIframeLoaded","React","useIsOnline","Loading","onLoad","onError","src","cn","style","colorScheme","Icon","name","size","href"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"finished-B3G1RUDO.js","sources":["../../../app/routes/_app+/finished.tsx"],"sourcesContent":["import { ElementScrollRestoration } from '@epic-web/restore-scroll'\nimport {\n\tgetExercises,\n\tgetWorkshopFinished,\n} from '@epic-web/workshop-utils/apps.server'\nimport { getWorkshopConfig } from '@epic-web/workshop-utils/config.server'\nimport { getEpicVideoInfos } from '@epic-web/workshop-utils/epic-api.server'\nimport {\n\tcombineServerTimings,\n\tgetServerTimeHeader,\n\tmakeTimings,\n\ttime,\n} from '@epic-web/workshop-utils/timing.server'\nimport { type SEOHandle } from '@nasa-gcn/remix-seo'\nimport {\n\tunstable_data as data,\n\ttype HeadersFunction,\n\ttype LoaderFunctionArgs,\n\ttype MetaFunction,\n} from '@remix-run/node'\nimport { Link, useLoaderData } from '@remix-run/react'\nimport slugify from '@sindresorhus/slugify'\nimport * as React from 'react'\nimport { EpicVideoInfoProvider } from '#app/components/epic-video.tsx'\nimport { Icon } from '#app/components/icons.tsx'\nimport { Loading } from '#app/components/loading.tsx'\nimport { NavChevrons } from '#app/components/nav-chevrons.tsx'\nimport { useRevalidationWS } from '#app/components/revalidation-ws.js'\nimport { type loader as rootLoader } from '#app/root.tsx'\nimport { Mdx } from '#app/utils/mdx.tsx'\nimport { cn } from '#app/utils/misc.tsx'\nimport { useIsOnline } from '#app/utils/online.ts'\nimport { getSeoMetaTags } from '#app/utils/seo.js'\nimport { EditFileOnGitHub } from '../launch-editor.tsx'\nimport { ProgressToggle } from '../progress.tsx'\nimport { useTheme } from '../theme/index.tsx'\n\nexport const handle: SEOHandle = {\n\tgetSitemapEntries: () => [{ route: '/finished' }],\n}\n\nexport const meta: MetaFunction<typeof loader, { root: typeof rootLoader }> = ({\n\tmatches,\n}) => {\n\tconst rootData = matches.find((m) => m.id === 'root')?.data\n\tif (!rootData) return []\n\n\treturn getSeoMetaTags({\n\t\ttitle: `🎉 ${rootData?.workshopTitle}`,\n\t\tdescription: `Elaboration for ${rootData?.workshopTitle}`,\n\t\togTitle: `Finished ${rootData?.workshopTitle}`,\n\t\togDescription: `You finished! Time to submit feedback.`,\n\t\tinstructor: rootData.instructor,\n\t\trequestInfo: rootData.requestInfo,\n\t})\n}\n\nexport async function loader({ request }: LoaderFunctionArgs) {\n\tconst timings = makeTimings('finishedLoader')\n\tconst exercises = await getExercises({ request, timings })\n\tconst compiledFinished = await time(() => getWorkshopFinished({ request }), {\n\t\ttimings,\n\t\ttype: 'compileMdx',\n\t\tdesc: 'compileMdx in finished',\n\t})\n\n\tconst lastExercises = exercises[exercises.length - 1]\n\tconst workshopConfig = getWorkshopConfig()\n\tconst workshopTitle = workshopConfig.title\n\tconst workshopFormTemplate = workshopConfig.forms.workshop\n\tconst workshopFormEmbedUrl = workshopFormTemplate.replace(\n\t\t'{workshopTitle}',\n\t\tencodeURIComponent(workshopTitle),\n\t)\n\treturn data(\n\t\t{\n\t\t\tarticleId: `workshop-${slugify(workshopTitle)}-finished`,\n\t\t\tworkshopTitle,\n\t\t\tworkshopFormEmbedUrl,\n\t\t\tfinishedCode:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? compiledFinished.compiled.code\n\t\t\t\t\t: null,\n\t\t\tepicVideoInfosPromise:\n\t\t\t\tcompiledFinished.compiled.status === 'success'\n\t\t\t\t\t? getEpicVideoInfos(compiledFinished.compiled.epicVideoEmbeds, {\n\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t})\n\t\t\t\t\t: null,\n\t\t\tworkshopFinished: {\n\t\t\t\tstatus: compiledFinished.compiled.status,\n\t\t\t\tfile: compiledFinished.file,\n\t\t\t\trelativePath: compiledFinished.relativePath,\n\t\t\t},\n\t\t\tprevStepLink: lastExercises\n\t\t\t\t? {\n\t\t\t\t\t\tto: `/${lastExercises.exerciseNumber}/finished`,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t},\n\t\t{\n\t\t\theaders: {\n\t\t\t\t'Server-Timing': getServerTimeHeader(timings),\n\t\t\t},\n\t\t},\n\t)\n}\n\nexport const headers: HeadersFunction = ({ loaderHeaders, parentHeaders }) => {\n\tconst headers = {\n\t\t'Cache-Control': loaderHeaders.get('Cache-Control') ?? '',\n\t\t'Server-Timing': combineServerTimings(loaderHeaders, parentHeaders),\n\t}\n\treturn headers\n}\n\nconst mdxComponents = { h1: () => null }\n\nexport default function ExerciseFinished() {\n\tconst data = useLoaderData<typeof loader>()\n\tuseRevalidationWS({ watchPaths: ['./exercises/FINISHED.mdx'] })\n\treturn (\n\t\t<div className=\"flex h-full flex-grow flex-col\">\n\t\t\t<main className=\"grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1\">\n\t\t\t\t<div className=\"relative col-span-1 row-span-1 flex h-full flex-col lg:border-r\">\n\t\t\t\t\t<h1 className=\"h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none\">\n\t\t\t\t\t\t<div className=\"flex h-14 flex-wrap items-center justify-between gap-x-2 py-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-center justify-start gap-x-2\">\n\t\t\t\t\t\t\t\t<Link to=\"/\" className=\"hover:underline\">\n\t\t\t\t\t\t\t\t\t{data.workshopTitle}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t<span>/</span>\n\t\t\t\t\t\t\t\t<span>Elaboration</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</h1>\n\t\t\t\t\t<article\n\t\t\t\t\t\tclassName=\"shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8\"\n\t\t\t\t\t\tid={data.articleId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{data.finishedCode ? (\n\t\t\t\t\t\t\t<EpicVideoInfoProvider\n\t\t\t\t\t\t\t\tepicVideoInfosPromise={data.epicVideoInfosPromise}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"prose dark:prose-invert sm:prose-lg\">\n\t\t\t\t\t\t\t\t\t<Mdx code={data.finishedCode} components={mdxComponents} />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</EpicVideoInfoProvider>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t// TODO: render a random dad joke...\n\t\t\t\t\t\t\t'No finished instructions yet...'\n\t\t\t\t\t\t)}\n\t\t\t\t\t</article>\n\t\t\t\t\t<ElementScrollRestoration elementQuery={`#${data.articleId}`} />\n\t\t\t\t\t<ProgressToggle\n\t\t\t\t\t\ttype=\"workshop-finished\"\n\t\t\t\t\t\tclassName=\"h-14 border-t px-6\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"flex h-16 justify-between border-b-4 border-t lg:border-b-0\">\n\t\t\t\t\t\t<div />\n\t\t\t\t\t\t{data.workshopFinished.status === 'success' ? (\n\t\t\t\t\t\t\t<EditFileOnGitHub\n\t\t\t\t\t\t\t\tfile={data.workshopFinished.file}\n\t\t\t\t\t\t\t\trelativePath={data.workshopFinished.relativePath}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<NavChevrons prev={data.prevStepLink} next={{ to: '/' }} />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Survey\n\t\t\t\t\tworkshopTitle={data.workshopTitle}\n\t\t\t\t\tworkshopFormEmbedUrl={data.workshopFormEmbedUrl}\n\t\t\t\t/>\n\t\t\t</main>\n\t\t</div>\n\t)\n}\n\nfunction Survey({\n\tworkshopTitle,\n\tworkshopFormEmbedUrl,\n}: {\n\tworkshopTitle: string\n\tworkshopFormEmbedUrl: string\n}) {\n\tconst theme = useTheme()\n\tconst [iframeLoaded, setIframeLoaded] = React.useState(false)\n\tconst isOnline = useIsOnline()\n\tif (!isOnline) {\n\t\treturn (\n\t\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center text-foreground-destructive\">\n\t\t\t\t\t<Icon name=\"WifiNoConnection\" size=\"xl\">\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{'Unable to load the '}\n\t\t\t\t\t\t\t<a href={workshopFormEmbedUrl} className=\"underline\">\n\t\t\t\t\t\t\t\t{`${workshopTitle} feedback form`}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{' when offline'}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Icon>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)\n\t}\n\treturn (\n\t\t<div className=\"relative flex-shrink-0\">\n\t\t\t{!iframeLoaded ? (\n\t\t\t\t<div className=\"absolute inset-0 z-10 flex items-center justify-center\">\n\t\t\t\t\t<Loading>\n\t\t\t\t\t\t<span>Loading {workshopTitle} Elaboration form</span>\n\t\t\t\t\t</Loading>\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t<iframe\n\t\t\t\tonLoad={() => setIframeLoaded(true)}\n\t\t\t\t// show what would have shown if there is an error\n\t\t\t\tonError={() => setIframeLoaded(true)}\n\t\t\t\ttitle=\"Elaboration\"\n\t\t\t\tsrc={workshopFormEmbedUrl}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'absolute inset-0 flex h-full w-full transition-opacity duration-300',\n\t\t\t\t\tiframeLoaded ? 'opacity-100' : 'opacity-0',\n\t\t\t\t)}\n\t\t\t\tstyle={{ colorScheme: theme }}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["handle","getSitemapEntries","route","meta","matches","rootData","find","m","id","data","getSeoMetaTags","title","workshopTitle","description","ogTitle","ogDescription","instructor","requestInfo","mdxComponents","h1","ExerciseFinished","useLoaderData","useRevalidationWS","watchPaths","className","children","jsxs","jsx","Link","to","articleId","finishedCode","EpicVideoInfoProvider","epicVideoInfosPromise","Mdx","code","components","ElementScrollRestoration","elementQuery","ProgressToggle","type","workshopFinished","status","EditFileOnGitHub","file","relativePath","NavChevrons","prev","prevStepLink","next","Survey","workshopFormEmbedUrl","theme","useTheme","iframeLoaded","setIframeLoaded","React","useIsOnline","Loading","onLoad","onError","src","cn","style","colorScheme","Icon","name","size","href"],"mappings":"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"}
|