@pb33f/cowboy-components 0.14.0 → 0.15.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/dist/{_baseUniq-DxKTOiyd.js → _baseUniq-DkvmJCFv.js} +1 -1
- package/dist/{_baseUniq-BCBHARBa.cjs → _baseUniq-FTe2FRsZ.cjs} +1 -1
- package/dist/{arc-BuSUjh0s.js → arc-CYzOnlSi.js} +2 -2
- package/dist/{arc-CH-0H1TF.cjs → arc-tHE-eDC1.cjs} +1 -1
- package/dist/{architecture-YZFGNWBL-BTpBH05L.js → architecture-YZFGNWBL-CHrkvOqY.js} +1 -1
- package/dist/{architecture-YZFGNWBL-BPn_727R.cjs → architecture-YZFGNWBL-CoFOgOkv.cjs} +1 -1
- package/dist/{architectureDiagram-Q4EWVU46-DiD3e6PQ.cjs → architectureDiagram-Q4EWVU46-BNgO6IDb.cjs} +1 -1
- package/dist/{architectureDiagram-Q4EWVU46-CYewkKfJ.js → architectureDiagram-Q4EWVU46-BlVPlre4.js} +4 -4
- package/dist/{blockDiagram-DXYQGD6D-C1Xzgnrv.js → blockDiagram-DXYQGD6D-CmuWyVpp.js} +6 -6
- package/dist/{blockDiagram-DXYQGD6D-B1FzGfTA.cjs → blockDiagram-DXYQGD6D-DTH4brTo.cjs} +1 -1
- package/dist/{c4Diagram-AHTNJAMY-L6Az2dvx.js → c4Diagram-AHTNJAMY-Bd457Kk0.js} +2 -2
- package/dist/{c4Diagram-AHTNJAMY-c5bsYT5q.cjs → c4Diagram-AHTNJAMY-D4IMO6iJ.cjs} +1 -1
- package/dist/{change-list-item-Bu_mPv-k.js → change-list-item-BRSBlaLu.js} +348 -350
- package/dist/{change-list-item-4xBSo3-U.cjs → change-list-item-Dy1GNFQ8.cjs} +91 -91
- package/dist/{channel-BR_Krb9l.cjs → channel-Ct_j6JZf.cjs} +1 -1
- package/dist/{channel-Bo_TnECw.js → channel-rcMAVtNO.js} +1 -1
- package/dist/{chunk-4BX2VUAB-B1uaSl0e.cjs → chunk-4BX2VUAB-D4UkiLWV.cjs} +1 -1
- package/dist/{chunk-4BX2VUAB-ClX8oE7L.js → chunk-4BX2VUAB-XJuJGw_Z.js} +1 -1
- package/dist/{chunk-4TB4RGXK-D0JpJZOs.cjs → chunk-4TB4RGXK-BxahB5gv.cjs} +1 -1
- package/dist/{chunk-4TB4RGXK-DzEEAztK.js → chunk-4TB4RGXK-CnipwGVI.js} +5 -5
- package/dist/{chunk-55IACEB6-595ZDi6s.cjs → chunk-55IACEB6-CEDZ87Yr.cjs} +1 -1
- package/dist/{chunk-55IACEB6-DL_DHCyZ.js → chunk-55IACEB6-D2v5xo07.js} +1 -1
- package/dist/{chunk-EDXVE4YY-CQbtNtXr.cjs → chunk-EDXVE4YY-CP7pBxXD.cjs} +1 -1
- package/dist/{chunk-EDXVE4YY-BII9TpbV.js → chunk-EDXVE4YY-DtZEtPNM.js} +1 -1
- package/dist/{chunk-FMBD7UC4-cN7XywSK.js → chunk-FMBD7UC4-B2FUllsE.js} +1 -1
- package/dist/{chunk-FMBD7UC4-BO92YnlB.cjs → chunk-FMBD7UC4-slHNYrdA.cjs} +1 -1
- package/dist/{chunk-OYMX7WX6-DTXPUCgU.js → chunk-OYMX7WX6-Cx27mmAN.js} +3 -3
- package/dist/{chunk-OYMX7WX6-BxqhsynN.cjs → chunk-OYMX7WX6-j5BWPw4q.cjs} +1 -1
- package/dist/{chunk-QZHKN3VN-C-mnteH7.cjs → chunk-QZHKN3VN-CfbDcaIZ.cjs} +1 -1
- package/dist/{chunk-QZHKN3VN-Biauj3yN.js → chunk-QZHKN3VN-CxT_HDdj.js} +1 -1
- package/dist/{chunk-YZCP3GAM-WiD5REgL.cjs → chunk-YZCP3GAM-C2IM6BuV.cjs} +1 -1
- package/dist/{chunk-YZCP3GAM-eo-UEr6G.js → chunk-YZCP3GAM-DpgFVAJS.js} +1 -1
- package/dist/{classDiagram-6PBFFD2Q-ay2Efc0y.cjs → classDiagram-6PBFFD2Q-BJp1AGm6.cjs} +1 -1
- package/dist/{classDiagram-v2-HSJHXN6E-8kzuzUL4.js → classDiagram-6PBFFD2Q-CEDs-xzV.js} +2 -2
- package/dist/{classDiagram-v2-HSJHXN6E-ay2Efc0y.cjs → classDiagram-v2-HSJHXN6E-BJp1AGm6.cjs} +1 -1
- package/dist/{classDiagram-6PBFFD2Q-8kzuzUL4.js → classDiagram-v2-HSJHXN6E-CEDs-xzV.js} +2 -2
- package/dist/{clone-CC2YvoOD.js → clone-BYMmv0vr.js} +1 -1
- package/dist/clone-CMeAJ3XK.cjs +1 -0
- package/dist/components/bundle-toolbar/bundle-toolbar.d.ts +0 -1
- package/dist/components/bundle-toolbar/bundle-toolbar.js +1 -3
- package/dist/components/editor/editor.js +114 -18
- package/dist/components/model-renderer/rendered-node.css.js +10 -0
- package/dist/components/model-renderer/rendered-node.d.ts +2 -0
- package/dist/components/model-renderer/rendered-node.js +16 -4
- package/dist/components/premium-gate/premium-gate.d.ts +1 -0
- package/dist/components/premium-gate/premium-gate.js +6 -0
- package/dist/components/rodeo/roundup.d.ts +7 -0
- package/dist/components/rodeo/roundup.js +40 -0
- package/dist/components/rodeo/user-detail.js +6 -3
- package/dist/components/the-doctor/doctor-editor-panel.css.js +67 -30
- package/dist/components/the-doctor/doctor-editor-panel.d.ts +1 -0
- package/dist/components/the-doctor/doctor-editor-panel.js +9 -1
- package/dist/components/the-doctor/doctor-navigator-panel.css.js +1 -0
- package/dist/components/the-doctor/doctor-sidebar-panel.d.ts +4 -1
- package/dist/components/the-doctor/doctor-sidebar-panel.js +18 -3
- package/dist/components/the-doctor/printing-press-docs-unavailable.css.d.ts +2 -0
- package/dist/components/the-doctor/printing-press-docs-unavailable.css.js +34 -0
- package/dist/components/the-doctor/printing-press-docs-unavailable.d.ts +12 -0
- package/dist/components/the-doctor/printing-press-docs-unavailable.js +35 -0
- package/dist/components/the-doctor/printing-press-export-controls.css.d.ts +2 -0
- package/dist/components/the-doctor/printing-press-export-controls.css.js +26 -0
- package/dist/components/the-doctor/printing-press-export-controls.d.ts +16 -0
- package/dist/components/the-doctor/printing-press-export-controls.js +75 -0
- package/dist/components/the-doctor/the-doctor.css.js +148 -8
- package/dist/components/the-doctor/the-doctor.d.ts +52 -2
- package/dist/components/the-doctor/the-doctor.js +581 -23
- package/dist/components/workspaces/workspace-view.d.ts +1 -5
- package/dist/components/workspaces/workspace-view.js +4 -11
- package/dist/controllers/diagnostic-controller.d.ts +2 -0
- package/dist/controllers/diagnostic-controller.js +40 -1
- package/dist/controllers/diagramatron-controller.d.ts +2 -6
- package/dist/controllers/diagramatron-controller.js +4 -1
- package/dist/controllers/node-clicker-controller.d.ts +2 -3
- package/dist/controllers/spec-controller.js +1 -1
- package/dist/controllers/workspace-controller.d.ts +1 -2
- package/dist/controllers/workspace-controller.js +2 -2
- package/dist/{cose-bilkent-S5V4N54A-BvU_SKfP.js → cose-bilkent-S5V4N54A-8KG9LqBY.js} +2 -2
- package/dist/{cose-bilkent-S5V4N54A-CjLPT2aq.cjs → cose-bilkent-S5V4N54A-Tlz_fqGx.cjs} +1 -1
- package/dist/{cowboy-components-B5MDHQs5.js → cowboy-components-CPx4P290.js} +12271 -12619
- package/dist/{cowboy-components-DMQv-nwp.cjs → cowboy-components-DDfCPnUY.cjs} +847 -958
- package/dist/{dagre-KV5264BT-BJ3g2OfF.cjs → dagre-KV5264BT-DPqcbQdq.cjs} +1 -1
- package/dist/{dagre-KV5264BT-CZZ7IWMJ.js → dagre-KV5264BT-DSCWDkcl.js} +5 -5
- package/dist/{diagram-5BDNPKRD-BtgWDNH6.js → diagram-5BDNPKRD-D-Y0PkPP.js} +4 -4
- package/dist/{diagram-5BDNPKRD-C8f_rKrj.cjs → diagram-5BDNPKRD-Ioi_2Lul.cjs} +1 -1
- package/dist/{diagram-G4DWMVQ6-CdbbbjZ1.cjs → diagram-G4DWMVQ6-BRmyn8WA.cjs} +1 -1
- package/dist/{diagram-G4DWMVQ6-Cvo7MOEn.js → diagram-G4DWMVQ6-Cl1WmwJV.js} +4 -4
- package/dist/{diagram-MMDJMWI5-CmuOqtUd.cjs → diagram-MMDJMWI5-CTASKErj.cjs} +1 -1
- package/dist/{diagram-MMDJMWI5-BBZMNBAZ.js → diagram-MMDJMWI5-vq4gDD7H.js} +3 -3
- package/dist/{diagram-TYMM5635-BDWJ5rTp.cjs → diagram-TYMM5635-DEnqo3aX.cjs} +1 -1
- package/dist/{diagram-TYMM5635-BJ6YAfrg.js → diagram-TYMM5635-DSUFes5l.js} +3 -3
- package/dist/{erDiagram-SMLLAGMA-CYctRkDG.js → erDiagram-SMLLAGMA-BiPGCCxs.js} +4 -4
- package/dist/{erDiagram-SMLLAGMA-oQiAbd77.cjs → erDiagram-SMLLAGMA-CyaiSIV2.cjs} +1 -1
- package/dist/events/doctor.d.ts +3 -0
- package/dist/events/doctor.js +2 -0
- package/dist/{flowDiagram-DWJPFMVM-Cl2ZAgx-.cjs → flowDiagram-DWJPFMVM-Bqf8cwLG.cjs} +1 -1
- package/dist/{flowDiagram-DWJPFMVM-XzVvDcKE.js → flowDiagram-DWJPFMVM-C9rhk5uL.js} +6 -6
- package/dist/{ganttDiagram-T4ZO3ILL-Bw3whz8Z.js → ganttDiagram-T4ZO3ILL-BP9h2UTv.js} +3 -3
- package/dist/{ganttDiagram-T4ZO3ILL-D6p69Xut.cjs → ganttDiagram-T4ZO3ILL-DaR_t9rW.cjs} +1 -1
- package/dist/{gitGraph-7Q5UKJZL-CV8uXlc6.js → gitGraph-7Q5UKJZL-CHmm38gX.js} +1 -1
- package/dist/{gitGraph-7Q5UKJZL-Dc00T47S.cjs → gitGraph-7Q5UKJZL-DytqCQiv.cjs} +1 -1
- package/dist/{gitGraphDiagram-UUTBAWPF-DO7-Vg9n.cjs → gitGraphDiagram-UUTBAWPF-BGuOUavm.cjs} +1 -1
- package/dist/{gitGraphDiagram-UUTBAWPF-DyF52xzw.js → gitGraphDiagram-UUTBAWPF-ecgG5qHi.js} +4 -4
- package/dist/{graph-BNtv6wPN.js → graph-Bv4HICS-.js} +2 -2
- package/dist/{graph-nnOjqfSF.cjs → graph-DpFK38bp.cjs} +1 -1
- package/dist/{info-OMHHGYJF-DenwEztT.cjs → info-OMHHGYJF-CUIG00cp.cjs} +1 -1
- package/dist/info-OMHHGYJF-CoTbguMJ.js +5 -0
- package/dist/{infoDiagram-42DDH7IO-D5ZWT_PY.js → infoDiagram-42DDH7IO--5_30AyR.js} +2 -2
- package/dist/{infoDiagram-42DDH7IO-CDwaPJgE.cjs → infoDiagram-42DDH7IO-CuAPDz-b.cjs} +1 -1
- package/dist/interfaces/doctor-interfaces.d.ts +10 -2
- package/dist/{ishikawaDiagram-UXIWVN3A-DgxKja6G.cjs → ishikawaDiagram-UXIWVN3A-B8zjZXR2.cjs} +1 -1
- package/dist/{ishikawaDiagram-UXIWVN3A-DO1TQj8y.js → ishikawaDiagram-UXIWVN3A-BVoGYP0J.js} +1 -1
- package/dist/{journeyDiagram-VCZTEJTY-BOrvmHFC.js → journeyDiagram-VCZTEJTY-CmQ65Rzd.js} +4 -4
- package/dist/{journeyDiagram-VCZTEJTY-CJCEu2Bp.cjs → journeyDiagram-VCZTEJTY-Cs5uPgLz.cjs} +1 -1
- package/dist/{kanban-definition-6JOO6SKY-DbcLaE1y.js → kanban-definition-6JOO6SKY-BUllH7Pr.js} +2 -2
- package/dist/{kanban-definition-6JOO6SKY-DEuqG8My.cjs → kanban-definition-6JOO6SKY-Bpd9pm1_.cjs} +1 -1
- package/dist/{layout-US8yryxu.js → layout-B93j_9jn.js} +4 -4
- package/dist/{layout-C5IxZs51.cjs → layout-zdFgePaJ.cjs} +1 -1
- package/dist/{linear-Bmlq6WJ8.cjs → linear-D1T5mBBn.cjs} +1 -1
- package/dist/{linear-D6nUCk2i.js → linear-EAwz3euQ.js} +1 -1
- package/dist/{mermaid-parser.core-DvOBQD0s.js → mermaid-parser.core-D4IlYn7u.js} +13 -13
- package/dist/{mermaid-parser.core-COvBhcPG.cjs → mermaid-parser.core-S6P-fvNi.cjs} +2 -2
- package/dist/{min-gCZaz5eW.js → min-BcEbrjrR.js} +2 -2
- package/dist/{min-BeG6JEx2.cjs → min-Cp2y5NY5.cjs} +1 -1
- package/dist/{mindmap-definition-QFDTVHPH-Bf7uOPBO.js → mindmap-definition-QFDTVHPH-CZXaWtPo.js} +3 -3
- package/dist/{mindmap-definition-QFDTVHPH-Bh_mtad8.cjs → mindmap-definition-QFDTVHPH-CkLdkLZi.cjs} +1 -1
- package/dist/model/api-response.d.ts +1 -0
- package/dist/model/feature-flags.d.ts +1 -0
- package/dist/model/feature-flags.js +1 -0
- package/dist/model/roundup-stats.d.ts +7 -0
- package/dist/{packet-4T2RLAQJ-EX3JjNtR.cjs → packet-4T2RLAQJ-CWdQm1p_.cjs} +1 -1
- package/dist/{packet-4T2RLAQJ-CnjxgpUP.js → packet-4T2RLAQJ-CqUj6pUH.js} +1 -1
- package/dist/pie-ZZUOXDRM-Dt-GliGo.js +5 -0
- package/dist/{pie-ZZUOXDRM-S9g0lXgu.cjs → pie-ZZUOXDRM-DxRGMKj-.cjs} +1 -1
- package/dist/{pieDiagram-DEJITSTG-An0q-g5y.cjs → pieDiagram-DEJITSTG-CeFtWjEL.cjs} +1 -1
- package/dist/{pieDiagram-DEJITSTG-DIkSdQCd.js → pieDiagram-DEJITSTG-DF8iOEQ1.js} +5 -5
- package/dist/{quadrantDiagram-34T5L4WZ-CBlxIaIn.js → quadrantDiagram-34T5L4WZ-DIrQ_CoV.js} +2 -2
- package/dist/{quadrantDiagram-34T5L4WZ-B5f35ihC.cjs → quadrantDiagram-34T5L4WZ-DbENKFQB.cjs} +1 -1
- package/dist/radar-PYXPWWZC-B0qn40ys.js +5 -0
- package/dist/{radar-PYXPWWZC-C0zC2ZSo.cjs → radar-PYXPWWZC-DbQi3NfV.cjs} +1 -1
- package/dist/{requirementDiagram-MS252O5E-CLQv0oWl.js → requirementDiagram-MS252O5E-BmJ9tgw2.js} +3 -3
- package/dist/{requirementDiagram-MS252O5E-C2bJ8iZf.cjs → requirementDiagram-MS252O5E-CmwBghn1.cjs} +1 -1
- package/dist/{sankeyDiagram-XADWPNL6-BPSHvjZ8.js → sankeyDiagram-XADWPNL6-D6nKYWbU.js} +1 -1
- package/dist/{sankeyDiagram-XADWPNL6--gS8yJdi.cjs → sankeyDiagram-XADWPNL6-_NTd9nNm.cjs} +1 -1
- package/dist/{sequenceDiagram-FGHM5R23-C8D7r5pW.cjs → sequenceDiagram-FGHM5R23-DvARbSg3.cjs} +1 -1
- package/dist/{sequenceDiagram-FGHM5R23-Pz7V2MNd.js → sequenceDiagram-FGHM5R23-gj6-9UEl.js} +3 -3
- package/dist/services/linting-service.d.ts +1 -0
- package/dist/services/linting-service.js +3 -0
- package/dist/services/printing-press-service.d.ts +27 -0
- package/dist/services/printing-press-service.js +125 -0
- package/dist/{stateDiagram-FHFEXIEX-D5m6EHM0.js → stateDiagram-FHFEXIEX-CDfhkt5o.js} +5 -5
- package/dist/{stateDiagram-FHFEXIEX-BAF5DJ1S.cjs → stateDiagram-FHFEXIEX-CUoMK5qv.cjs} +1 -1
- package/dist/{stateDiagram-v2-QKLJ7IA2-Bewn3XVh.js → stateDiagram-v2-QKLJ7IA2-DiPwdbAK.js} +2 -2
- package/dist/{stateDiagram-v2-QKLJ7IA2-D8ygFuIi.cjs → stateDiagram-v2-QKLJ7IA2-DkUny04G.cjs} +1 -1
- package/dist/{timeline-definition-GMOUNBTQ-D_q_Aq0R.js → timeline-definition-GMOUNBTQ-GxzCrHrx.js} +2 -2
- package/dist/{timeline-definition-GMOUNBTQ-DGnNWVK8.cjs → timeline-definition-GMOUNBTQ-bpnHyBjo.cjs} +1 -1
- package/dist/{treeView-SZITEDCU-CJ-dtg22.js → treeView-SZITEDCU-DIrUF69A.js} +1 -1
- package/dist/{treeView-SZITEDCU-D_h6_ShC.cjs → treeView-SZITEDCU-zJeBKhxU.cjs} +1 -1
- package/dist/{treemap-W4RFUUIX-BtKxSF22.cjs → treemap-W4RFUUIX-DIVItjGt.cjs} +1 -1
- package/dist/{treemap-W4RFUUIX-B9GQw9aZ.js → treemap-W4RFUUIX-De3UvqNM.js} +1 -1
- package/dist/{vennDiagram-DHZGUBPP-JEim8wmH.js → vennDiagram-DHZGUBPP-C8gJOl_U.js} +1 -1
- package/dist/{vennDiagram-DHZGUBPP-amyk4YMx.cjs → vennDiagram-DHZGUBPP-CPciBxaz.cjs} +1 -1
- package/dist/{wardley-RL74JXVD-sMbm0y_r.js → wardley-RL74JXVD-C7Xl9U8K.js} +1 -1
- package/dist/{wardley-RL74JXVD-Cni1Bfk_.cjs → wardley-RL74JXVD-pImcCh7M.cjs} +1 -1
- package/dist/{wardleyDiagram-NUSXRM2D-C2MLJ-IT.js → wardleyDiagram-NUSXRM2D-C5cuHNUZ.js} +3 -3
- package/dist/{wardleyDiagram-NUSXRM2D-BxrRpNG2.cjs → wardleyDiagram-NUSXRM2D-cJNJYk25.cjs} +1 -1
- package/dist/{xychartDiagram-5P7HB3ND-CpDJRyka.cjs → xychartDiagram-5P7HB3ND-Bg7uOCAC.cjs} +1 -1
- package/dist/{xychartDiagram-5P7HB3ND-CSCEAZnj.js → xychartDiagram-5P7HB3ND-Ws1GisBM.js} +3 -3
- package/package.json +1 -1
- package/dist/clone-DAIpdsWe.cjs +0 -1
- package/dist/info-OMHHGYJF-BEJOj8rC.js +0 -5
- package/dist/pie-ZZUOXDRM-B0-esN8S.js +0 -5
- package/dist/radar-PYXPWWZC-1Ezs-b76.js +0 -5
|
@@ -4,6 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var TheDoctor_1;
|
|
7
8
|
import '@shoelace-style/shoelace/dist/components/split-panel/split-panel.js';
|
|
8
9
|
import '@shoelace-style/shoelace/dist/components/tab-group/tab-group.js';
|
|
9
10
|
import '@shoelace-style/shoelace/dist/components/tab-panel/tab-panel.js';
|
|
@@ -17,7 +18,7 @@ import { customElement, property, query, state } from "lit/decorators.js";
|
|
|
17
18
|
import { html, LitElement, nothing } from "lit";
|
|
18
19
|
import { ref, createRef } from "lit/directives/ref.js";
|
|
19
20
|
import { SpecEditor } from "../editor/editor.js";
|
|
20
|
-
import { ActiveView, AddToast, ArchiveURLRequested, BuiltInRulesetChanged, CreditEmpty, CustomRulesetEnabled, DocumentReferenceClicked, EditorClicked, EditorUpdated, ExplorerEqualizerChanged, ExplorerEqualizerFiltered, ExplorerPovModeExit, ExplorerNodeClicked, ExportRuleset, LoadRenderedNodeIntoInspector, ModelTreeNodeClicked, NodeReferenceClicked, NukeWorkspaceEvent, OpenDrawer, OpenSettings, ProblemClicked, Reboot, RolodexRootFileSelected, RolodexTreeNodeClicked, RuleClicked, RulesetSaved, RuleViolationClicked, StartSessionFailed, CreditStreamUpdated, SocketDisconnected, DiagramRequested, TimelineViolationsLoaded, BundleRequested, BundleDownloadRequested, BundleCopyRequested, } from "../../events/doctor.js";
|
|
21
|
+
import { ActiveView, AddToast, ArchiveURLRequested, BuiltInRulesetChanged, CreditEmpty, CustomRulesetEnabled, DocumentReferenceClicked, EditorClicked, EditorUpdated, ExplorerEqualizerChanged, ExplorerEqualizerFiltered, ExplorerPovModeExit, ExplorerNodeClicked, ExportRuleset, LoadRenderedNodeIntoInspector, ModelTreeNodeClicked, NodeReferenceClicked, NukeWorkspaceEvent, OpenDrawer, OpenSettings, ProblemClicked, Reboot, RolodexRootFileSelected, RolodexTreeNodeClicked, RuleClicked, RulesetSaved, RuleViolationClicked, StartSessionFailed, CreditStreamUpdated, SocketDisconnected, DiagramRequested, TimelineViolationsLoaded, BundleRequested, BundleDownloadRequested, BundleCopyRequested, PrintingPressZipExportRequested, PrintingPressTarballExportRequested, } from "../../events/doctor.js";
|
|
21
22
|
import { CreateBagManager } from "@pb33f/saddlebag";
|
|
22
23
|
import { LintingService } from "../../services/linting-service.js";
|
|
23
24
|
import { ProblemList } from "../problem-list/problem-list.js";
|
|
@@ -49,6 +50,8 @@ import spinnerCss from "../../css/spinner.css.js";
|
|
|
49
50
|
import { resolveNodeIdFromHash } from "../../utils/node-helpers.js";
|
|
50
51
|
import { UploadArchiveComponent } from "./upload-archive.js";
|
|
51
52
|
import '../premium-gate/premium-gate.js';
|
|
53
|
+
import './printing-press-docs-unavailable.js';
|
|
54
|
+
import './printing-press-export-controls.js';
|
|
52
55
|
import tooltipCss from "../../css/tooltip.css.js";
|
|
53
56
|
import { NukeWorkspaceComponent } from "./nuke-workspace.js";
|
|
54
57
|
import { CreditTicker } from "../credit-ticker/credit-ticker.js";
|
|
@@ -76,13 +79,14 @@ import { GitHubController } from "../../controllers/github-controller.js";
|
|
|
76
79
|
import { DiagramatronController } from "../../controllers/diagramatron-controller.js";
|
|
77
80
|
import { TimelineController } from "../../controllers/timeline-controller.js";
|
|
78
81
|
import { BundleController } from "../../controllers/bundle-controller.js";
|
|
79
|
-
import {
|
|
82
|
+
import { PB33F_THEME, DarkTheme } from "../theme-switcher/theme-switcher.js";
|
|
83
|
+
import { PB33F_THEME_CHANGE } from "../../events/theme.js";
|
|
80
84
|
import '../bundle-toolbar/bundle-toolbar.js';
|
|
81
85
|
import { WorkspaceService } from '../../services/workspace-service.js';
|
|
82
86
|
import { WalletService } from '../../services/wallet-service.js';
|
|
83
87
|
import { GlobalTaskService } from '../../services/global-task-service.js';
|
|
84
88
|
import { GitHubService } from '../../services/github-service.js';
|
|
85
|
-
import {
|
|
89
|
+
import { PrintingPressService } from '../../services/printing-press-service.js';
|
|
86
90
|
import { GenericDetailsDrawer } from '../details-drawer/generic-details-drawer.js';
|
|
87
91
|
import { DrawerContentRegistry } from '../../services/drawer-content-registry.js';
|
|
88
92
|
import { TabCacheController } from '../../controllers/tab-cache-controller.js';
|
|
@@ -128,13 +132,18 @@ export const GitHubStateBag = "pb33f-doctor-github-state";
|
|
|
128
132
|
export const DefaultDocument = "pb33f-doctor-document";
|
|
129
133
|
export const DocumentProblems = "pb33f-doctor-problems";
|
|
130
134
|
export const DoctorEndpoint = "doctor-endpoint";
|
|
131
|
-
let TheDoctor = class TheDoctor extends LitElement {
|
|
135
|
+
let TheDoctor = TheDoctor_1 = class TheDoctor extends LitElement {
|
|
132
136
|
constructor(doctorEndpoint = "https://doctor.pb33f.io") {
|
|
133
137
|
super();
|
|
134
138
|
this.toolsEditorHasContent = false;
|
|
135
139
|
this.editorDirty = false;
|
|
136
140
|
this.bundleLoading = false;
|
|
137
141
|
this.isBundled = false;
|
|
142
|
+
this.printingPressDocsPending = false;
|
|
143
|
+
this.printingPressDocsReady = false;
|
|
144
|
+
this.printingPressDocsAccessDenied = false;
|
|
145
|
+
this.printingPressDocsRetryableError = false;
|
|
146
|
+
this.docsTakeoverApplied = false;
|
|
138
147
|
// Use ref directives instead of @query for better control
|
|
139
148
|
this.tardisControlRef = createRef();
|
|
140
149
|
this.editorRef = createRef();
|
|
@@ -168,7 +177,6 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
168
177
|
WalletService.doctorEndpoint = this.doctorEndpoint;
|
|
169
178
|
GlobalTaskService.doctorEndpoint = this.doctorEndpoint;
|
|
170
179
|
GitHubService.doctorEndpoint = this.doctorEndpoint;
|
|
171
|
-
ApiKeyService.doctorEndpoint = this.doctorEndpoint;
|
|
172
180
|
// bus it up
|
|
173
181
|
this.bus = CreateBus();
|
|
174
182
|
this.events = createDoctorEventChannels(this.bus);
|
|
@@ -235,12 +243,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
235
243
|
requestUpdate: () => this.requestUpdate(),
|
|
236
244
|
getOriginalFileName: () => this.rolodexRootPath || 'openapi'
|
|
237
245
|
});
|
|
238
|
-
this.
|
|
239
|
-
getBrokerId: () => this.brokerController?.brokerConnectionId,
|
|
240
|
-
sendToast: (toast) => this.sendToast(toast)
|
|
241
|
-
});
|
|
242
|
-
// Initialize workspace view after GitHub controller and API key controller are created
|
|
243
|
-
this.workspaceController.initializeView(this.githubController, this.apiKeyController);
|
|
246
|
+
this.workspaceController.initializeView(this.githubController);
|
|
244
247
|
this.globalTaskView = new GlobalTaskView();
|
|
245
248
|
//this.globalTaskView.mockMode = true; // Enable mock mode for demo
|
|
246
249
|
this.globalTaskView.setController(this.globalTaskController);
|
|
@@ -388,6 +391,10 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
388
391
|
this.addTrackedListener(this, BundleRequested, this.handleBundleRequested.bind(this));
|
|
389
392
|
this.addTrackedListener(this, BundleDownloadRequested, this.handleBundleDownload.bind(this));
|
|
390
393
|
this.addTrackedListener(this, BundleCopyRequested, this.handleBundleCopy.bind(this));
|
|
394
|
+
this.addTrackedListener(this, PrintingPressZipExportRequested, this.handlePrintingPressZipExport.bind(this));
|
|
395
|
+
this.addTrackedListener(this, PrintingPressTarballExportRequested, this.handlePrintingPressTarballExport.bind(this));
|
|
396
|
+
this.addTrackedListener(window, 'message', this.handlePrintingPressMessage.bind(this));
|
|
397
|
+
this.addTrackedListener(window, PB33F_THEME_CHANGE, this.handleThemeChangeForPrintingPress.bind(this));
|
|
391
398
|
// hijack navigation buttons - store reference for cleanup
|
|
392
399
|
this.popstateHandler = (e) => {
|
|
393
400
|
const state = e.state;
|
|
@@ -448,7 +455,9 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
448
455
|
'feedback': 'Feedback'
|
|
449
456
|
};
|
|
450
457
|
this.currentViewName = viewNames[tabName] || tabName;
|
|
451
|
-
|
|
458
|
+
if (event.detail.focusPanel !== false) {
|
|
459
|
+
this.managePanelFocus(this.sidebarPanel, tabName);
|
|
460
|
+
}
|
|
452
461
|
}
|
|
453
462
|
openSidebar() {
|
|
454
463
|
if (this.sidebarClosed && this.sidebarPanel) {
|
|
@@ -490,6 +499,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
490
499
|
'spec': 'Specification Editor',
|
|
491
500
|
'explorer': 'Explorer',
|
|
492
501
|
'tardis': 'Timeline',
|
|
502
|
+
'docs': 'API Docs',
|
|
493
503
|
'workspaces': 'Workspaces'
|
|
494
504
|
};
|
|
495
505
|
this.currentViewName = viewNames[tabName] || tabName;
|
|
@@ -529,6 +539,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
529
539
|
case 'docs':
|
|
530
540
|
this.hideMinimapIcon();
|
|
531
541
|
this.hideDiagnosisButton();
|
|
542
|
+
this.preloadPrintingPressDocs();
|
|
532
543
|
break;
|
|
533
544
|
}
|
|
534
545
|
}
|
|
@@ -661,6 +672,12 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
661
672
|
// Don't fetch history here - wait until doctor is fully booted
|
|
662
673
|
}
|
|
663
674
|
});
|
|
675
|
+
this.syncDocsTakeoverLayout();
|
|
676
|
+
}
|
|
677
|
+
updated(changedProperties) {
|
|
678
|
+
if (changedProperties.has('selectedEditorTab')) {
|
|
679
|
+
this.syncDocsTakeoverLayout();
|
|
680
|
+
}
|
|
664
681
|
}
|
|
665
682
|
disconnectedCallback() {
|
|
666
683
|
super.disconnectedCallback();
|
|
@@ -730,8 +747,54 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
730
747
|
sendToast(toast) {
|
|
731
748
|
this.toastManager.addToastManually(toast);
|
|
732
749
|
}
|
|
733
|
-
updateInspectorDivider() {
|
|
734
|
-
|
|
750
|
+
updateInspectorDivider() {
|
|
751
|
+
if (this.selectedEditorTab === 'docs')
|
|
752
|
+
return;
|
|
753
|
+
this.panelDividerManager.updateInspectorDivider();
|
|
754
|
+
}
|
|
755
|
+
updateExplorerDivider() {
|
|
756
|
+
if (this.selectedEditorTab === 'docs')
|
|
757
|
+
return;
|
|
758
|
+
this.panelDividerManager.updateExplorerDivider();
|
|
759
|
+
}
|
|
760
|
+
syncDocsTakeoverLayout() {
|
|
761
|
+
const docsActive = this.selectedEditorTab === 'docs';
|
|
762
|
+
const explorerPanel = this.splitPanelExplorer;
|
|
763
|
+
const inspectorPanel = this.splitPanelInspector;
|
|
764
|
+
if (!explorerPanel || !inspectorPanel) {
|
|
765
|
+
return;
|
|
766
|
+
}
|
|
767
|
+
if (docsActive) {
|
|
768
|
+
if (!this.docsTakeoverApplied) {
|
|
769
|
+
this.explorerPositionBeforeDocs = explorerPanel.position > 0 ? explorerPanel.position : 12;
|
|
770
|
+
this.inspectorPositionBeforeDocs = inspectorPanel.position > 0 ? inspectorPanel.position : 50;
|
|
771
|
+
this.docsTakeoverApplied = true;
|
|
772
|
+
}
|
|
773
|
+
explorerPanel.style.setProperty('--min', '0');
|
|
774
|
+
explorerPanel.style.setProperty('--max', '100%');
|
|
775
|
+
explorerPanel.position = 0;
|
|
776
|
+
explorerPanel.disabled = true;
|
|
777
|
+
inspectorPanel.style.setProperty('--min', '0');
|
|
778
|
+
inspectorPanel.style.setProperty('--max', '100%');
|
|
779
|
+
inspectorPanel.position = 100;
|
|
780
|
+
inspectorPanel.disabled = true;
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
783
|
+
if (!this.docsTakeoverApplied) {
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
explorerPanel.style.removeProperty('--min');
|
|
787
|
+
explorerPanel.style.removeProperty('--max');
|
|
788
|
+
explorerPanel.disabled = false;
|
|
789
|
+
explorerPanel.position = this.explorerPositionBeforeDocs ?? 12;
|
|
790
|
+
inspectorPanel.style.removeProperty('--min');
|
|
791
|
+
inspectorPanel.style.removeProperty('--max');
|
|
792
|
+
inspectorPanel.disabled = false;
|
|
793
|
+
inspectorPanel.position = this.inspectorPositionBeforeDocs ?? 50;
|
|
794
|
+
this.docsTakeoverApplied = false;
|
|
795
|
+
this.explorerPositionBeforeDocs = undefined;
|
|
796
|
+
this.inspectorPositionBeforeDocs = undefined;
|
|
797
|
+
}
|
|
735
798
|
updateRefmapBag(currentPath, result) {
|
|
736
799
|
let refMap = this.referenceMapBag?.get(ReferenceMapBag);
|
|
737
800
|
let cp = currentPath ?? "";
|
|
@@ -831,6 +894,468 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
831
894
|
handleBundleCopy() {
|
|
832
895
|
this.bundleController.copyToClipboard();
|
|
833
896
|
}
|
|
897
|
+
async handlePrintingPressZipExport() {
|
|
898
|
+
await this.handlePrintingPressExport('zip');
|
|
899
|
+
}
|
|
900
|
+
async handlePrintingPressTarballExport() {
|
|
901
|
+
await this.handlePrintingPressExport('tar.gz');
|
|
902
|
+
}
|
|
903
|
+
async handlePrintingPressExport(format) {
|
|
904
|
+
try {
|
|
905
|
+
await PrintingPressService.exportDocs(format, this.brokerController?.brokerConnectionId);
|
|
906
|
+
this.sendToast({
|
|
907
|
+
id: crypto.randomUUID(),
|
|
908
|
+
type: ToastType.SUCCESS,
|
|
909
|
+
title: "docs exported",
|
|
910
|
+
body: `Printing Press docs exported as ${format}.`
|
|
911
|
+
});
|
|
912
|
+
}
|
|
913
|
+
catch (error) {
|
|
914
|
+
this.sendToast({
|
|
915
|
+
id: crypto.randomUUID(),
|
|
916
|
+
type: ToastType.ERROR,
|
|
917
|
+
title: "docs export failed",
|
|
918
|
+
body: error?.detail || error?.title || 'Unable to export generated docs.'
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
handlePrintingPressTask(taskId) {
|
|
923
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
924
|
+
this.printingPressDocsTaskId = taskId;
|
|
925
|
+
this.printingPressDocsPending = true;
|
|
926
|
+
this.printingPressDocsReady = false;
|
|
927
|
+
this.printingPressDocsError = undefined;
|
|
928
|
+
this.printingPressDocsAccessDenied = false;
|
|
929
|
+
this.printingPressDocsRetryableError = false;
|
|
930
|
+
this.printingPressDocsUrl = undefined;
|
|
931
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
932
|
+
this.requestUpdate();
|
|
933
|
+
this.globalTaskController.waitForTask(taskId).then(async (task) => {
|
|
934
|
+
if (this.printingPressDocsTaskId !== taskId) {
|
|
935
|
+
return;
|
|
936
|
+
}
|
|
937
|
+
if (task.status !== 'completed') {
|
|
938
|
+
this.printingPressDocsPending = false;
|
|
939
|
+
this.printingPressDocsReady = false;
|
|
940
|
+
this.printingPressDocsUrl = undefined;
|
|
941
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
942
|
+
this.printingPressDocsError = task.error || task.message || 'Printing Press failed to build generated docs.';
|
|
943
|
+
this.printingPressDocsAccessDenied = this.isPrintingPressAccessDeniedError(task);
|
|
944
|
+
this.printingPressDocsRetryableError = true;
|
|
945
|
+
this.requestUpdate();
|
|
946
|
+
return;
|
|
947
|
+
}
|
|
948
|
+
await this.loadPrintingPressDocsForTask(taskId);
|
|
949
|
+
});
|
|
950
|
+
}
|
|
951
|
+
preloadPrintingPressDocs(options = {}) {
|
|
952
|
+
this.tabCache.markEditorTabLoaded('docs');
|
|
953
|
+
if (this.printingPressDocsPending && !options.refresh) {
|
|
954
|
+
return;
|
|
955
|
+
}
|
|
956
|
+
if (!options.refresh && this.printingPressDocsUrl && !this.printingPressDocsError) {
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
if (!options.refresh && this.printingPressDocsError && !this.printingPressDocsRetryableError) {
|
|
960
|
+
return;
|
|
961
|
+
}
|
|
962
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
963
|
+
const requestId = this.createPrintingPressRequestId();
|
|
964
|
+
this.printingPressDocsTaskId = requestId;
|
|
965
|
+
this.printingPressDocsPending = true;
|
|
966
|
+
this.printingPressDocsReady = false;
|
|
967
|
+
this.printingPressDocsError = undefined;
|
|
968
|
+
this.printingPressDocsAccessDenied = false;
|
|
969
|
+
this.printingPressDocsRetryableError = false;
|
|
970
|
+
this.printingPressDocsUrl = undefined;
|
|
971
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
972
|
+
this.requestUpdate();
|
|
973
|
+
void this.loadCurrentPrintingPressDocs(requestId);
|
|
974
|
+
}
|
|
975
|
+
markPrintingPressDocsUnavailable(detail) {
|
|
976
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
977
|
+
this.printingPressDocsTaskId = undefined;
|
|
978
|
+
this.printingPressDocsPending = false;
|
|
979
|
+
this.printingPressDocsReady = false;
|
|
980
|
+
this.printingPressDocsError = detail;
|
|
981
|
+
this.printingPressDocsAccessDenied = this.isPrintingPressAccessDeniedError({ detail });
|
|
982
|
+
this.printingPressDocsRetryableError = false;
|
|
983
|
+
this.printingPressDocsUrl = undefined;
|
|
984
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
985
|
+
this.requestUpdate();
|
|
986
|
+
}
|
|
987
|
+
resetPrintingPressDocsState() {
|
|
988
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
989
|
+
this.printingPressDocsTaskId = undefined;
|
|
990
|
+
this.printingPressDocsPending = false;
|
|
991
|
+
this.printingPressDocsReady = false;
|
|
992
|
+
this.printingPressDocsError = undefined;
|
|
993
|
+
this.printingPressDocsAccessDenied = false;
|
|
994
|
+
this.printingPressDocsRetryableError = false;
|
|
995
|
+
this.printingPressDocsUrl = undefined;
|
|
996
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
997
|
+
}
|
|
998
|
+
async loadCurrentPrintingPressDocs(requestId) {
|
|
999
|
+
try {
|
|
1000
|
+
const brokerId = this.brokerController?.brokerConnectionId;
|
|
1001
|
+
const result = await PrintingPressService.ensureWorkspaceDocs(brokerId);
|
|
1002
|
+
if (this.printingPressDocsTaskId !== requestId) {
|
|
1003
|
+
return;
|
|
1004
|
+
}
|
|
1005
|
+
if (result.status !== 'completed') {
|
|
1006
|
+
if (!result.taskId) {
|
|
1007
|
+
throw new Error('Printing Press did not return a task ID.');
|
|
1008
|
+
}
|
|
1009
|
+
this.handlePrintingPressTask(result.taskId);
|
|
1010
|
+
return;
|
|
1011
|
+
}
|
|
1012
|
+
await this.loadPrintingPressDocsFromResult(requestId, result, brokerId);
|
|
1013
|
+
}
|
|
1014
|
+
catch (error) {
|
|
1015
|
+
if (this.printingPressDocsTaskId !== requestId) {
|
|
1016
|
+
return;
|
|
1017
|
+
}
|
|
1018
|
+
this.printingPressDocsPending = false;
|
|
1019
|
+
this.printingPressDocsReady = false;
|
|
1020
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1021
|
+
this.printingPressDocsError = error?.detail || error?.message || 'Unable to load generated docs.';
|
|
1022
|
+
this.printingPressDocsAccessDenied = this.isPrintingPressAccessDeniedError(error);
|
|
1023
|
+
this.printingPressDocsRetryableError = true;
|
|
1024
|
+
this.requestUpdate();
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
async loadPrintingPressDocsForTask(taskId) {
|
|
1028
|
+
try {
|
|
1029
|
+
const brokerId = this.brokerController?.brokerConnectionId;
|
|
1030
|
+
const result = await PrintingPressService.fetchTaskResult(taskId, brokerId);
|
|
1031
|
+
if (this.printingPressDocsTaskId !== taskId) {
|
|
1032
|
+
return;
|
|
1033
|
+
}
|
|
1034
|
+
await this.loadPrintingPressDocsFromResult(taskId, result, brokerId);
|
|
1035
|
+
}
|
|
1036
|
+
catch (error) {
|
|
1037
|
+
if (this.printingPressDocsTaskId !== taskId) {
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
1040
|
+
this.printingPressDocsPending = false;
|
|
1041
|
+
this.printingPressDocsReady = false;
|
|
1042
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1043
|
+
this.printingPressDocsError = error?.detail || error?.message || 'Unable to load generated docs.';
|
|
1044
|
+
this.printingPressDocsAccessDenied = this.isPrintingPressAccessDeniedError(error);
|
|
1045
|
+
this.printingPressDocsRetryableError = true;
|
|
1046
|
+
this.requestUpdate();
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
async loadPrintingPressDocsFromResult(requestId, result, brokerId) {
|
|
1050
|
+
const docsUrl = result.docsUrl || result.url;
|
|
1051
|
+
if (!docsUrl) {
|
|
1052
|
+
throw new Error('Printing Press did not return a docs URL.');
|
|
1053
|
+
}
|
|
1054
|
+
const absoluteUrl = PrintingPressService.absoluteDocsUrl(docsUrl);
|
|
1055
|
+
const preflight = await PrintingPressService.preflightDocs(absoluteUrl, brokerId);
|
|
1056
|
+
if (this.printingPressDocsTaskId !== requestId) {
|
|
1057
|
+
return;
|
|
1058
|
+
}
|
|
1059
|
+
if (!preflight.ok) {
|
|
1060
|
+
const accessDenied = preflight.status === 401 || preflight.status === 403;
|
|
1061
|
+
this.printingPressDocsPending = false;
|
|
1062
|
+
this.printingPressDocsReady = false;
|
|
1063
|
+
this.printingPressDocsUrl = undefined;
|
|
1064
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1065
|
+
this.printingPressDocsAccessDenied = accessDenied;
|
|
1066
|
+
this.printingPressDocsRetryableError = true;
|
|
1067
|
+
this.printingPressDocsError = accessDenied
|
|
1068
|
+
? 'Access denied. Sign in with access to this workspace to view these docs.'
|
|
1069
|
+
: `Unable to load generated docs (${preflight.status}).`;
|
|
1070
|
+
this.requestUpdate();
|
|
1071
|
+
return;
|
|
1072
|
+
}
|
|
1073
|
+
this.printingPressDocsUrl = absoluteUrl;
|
|
1074
|
+
try {
|
|
1075
|
+
this.printingPressDocsExpectedOrigin = new URL(absoluteUrl).origin;
|
|
1076
|
+
}
|
|
1077
|
+
catch {
|
|
1078
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1079
|
+
}
|
|
1080
|
+
this.printingPressDocsReady = false;
|
|
1081
|
+
this.printingPressDocsPending = true;
|
|
1082
|
+
this.printingPressDocsError = undefined;
|
|
1083
|
+
this.printingPressDocsAccessDenied = false;
|
|
1084
|
+
this.printingPressDocsRetryableError = false;
|
|
1085
|
+
this.armPrintingPressDocsReadyWatchdog(requestId);
|
|
1086
|
+
this.tabCache.markEditorTabLoaded('docs');
|
|
1087
|
+
this.requestUpdate();
|
|
1088
|
+
}
|
|
1089
|
+
handlePrintingPressMessage(event) {
|
|
1090
|
+
if (!this.printingPressDocsExpectedOrigin) {
|
|
1091
|
+
return;
|
|
1092
|
+
}
|
|
1093
|
+
if (event.origin !== this.printingPressDocsExpectedOrigin) {
|
|
1094
|
+
return;
|
|
1095
|
+
}
|
|
1096
|
+
const frameWindow = this.findPrintingPressIframeWindow();
|
|
1097
|
+
if (!frameWindow || event.source !== frameWindow) {
|
|
1098
|
+
return;
|
|
1099
|
+
}
|
|
1100
|
+
const data = event.data;
|
|
1101
|
+
if (!data || typeof data !== 'object') {
|
|
1102
|
+
return;
|
|
1103
|
+
}
|
|
1104
|
+
if (data.type === 'ppress:ready') {
|
|
1105
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
1106
|
+
this.printingPressDocsPending = false;
|
|
1107
|
+
this.printingPressDocsReady = true;
|
|
1108
|
+
this.printingPressDocsError = undefined;
|
|
1109
|
+
this.printingPressDocsAccessDenied = false;
|
|
1110
|
+
this.printingPressDocsRetryableError = false;
|
|
1111
|
+
this.sendCurrentThemeToPrintingPress(event.source);
|
|
1112
|
+
this.sendPrintingPressArchiveControls(event.source);
|
|
1113
|
+
this.requestUpdate();
|
|
1114
|
+
return;
|
|
1115
|
+
}
|
|
1116
|
+
if (data.type === 'ppress:export') {
|
|
1117
|
+
void this.handlePrintingPressDocumentExport(data.format, data.diagnostics === true, data.llm === true);
|
|
1118
|
+
return;
|
|
1119
|
+
}
|
|
1120
|
+
if (data.type === 'ppress:error') {
|
|
1121
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
1122
|
+
this.printingPressDocsPending = false;
|
|
1123
|
+
this.printingPressDocsReady = false;
|
|
1124
|
+
this.printingPressDocsUrl = undefined;
|
|
1125
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1126
|
+
this.printingPressDocsError = data.message || 'Unable to load generated docs.';
|
|
1127
|
+
this.printingPressDocsAccessDenied = data.status === 401 || data.status === 403;
|
|
1128
|
+
this.printingPressDocsRetryableError = true;
|
|
1129
|
+
this.requestUpdate();
|
|
1130
|
+
}
|
|
1131
|
+
}
|
|
1132
|
+
async handlePrintingPressDocumentExport(format, diagnostics = false, llm = false) {
|
|
1133
|
+
const archiveFormat = format === 'tar.gz' ? 'tar.gz' : 'zip';
|
|
1134
|
+
if (!this.printingPressDocsUrl) {
|
|
1135
|
+
this.sendToast({
|
|
1136
|
+
id: crypto.randomUUID(),
|
|
1137
|
+
type: ToastType.ERROR,
|
|
1138
|
+
title: "docs export failed",
|
|
1139
|
+
body: 'Generated docs are not loaded yet.'
|
|
1140
|
+
});
|
|
1141
|
+
return;
|
|
1142
|
+
}
|
|
1143
|
+
if (!this.authController?.authenticated) {
|
|
1144
|
+
this.openPrintingPressExportGate();
|
|
1145
|
+
return;
|
|
1146
|
+
}
|
|
1147
|
+
try {
|
|
1148
|
+
await PrintingPressService.exportDocumentDocs(this.printingPressDocsUrl, {
|
|
1149
|
+
format: archiveFormat,
|
|
1150
|
+
diagnostics,
|
|
1151
|
+
llm,
|
|
1152
|
+
brokerId: this.brokerController?.brokerConnectionId
|
|
1153
|
+
});
|
|
1154
|
+
this.sendToast({
|
|
1155
|
+
id: crypto.randomUUID(),
|
|
1156
|
+
type: ToastType.SUCCESS,
|
|
1157
|
+
title: "docs exported",
|
|
1158
|
+
body: `Printing Press docs exported as ${archiveFormat}.`
|
|
1159
|
+
});
|
|
1160
|
+
}
|
|
1161
|
+
catch (error) {
|
|
1162
|
+
if (this.shouldOpenPrintingPressExportGate(error)) {
|
|
1163
|
+
this.openPrintingPressExportGate();
|
|
1164
|
+
return;
|
|
1165
|
+
}
|
|
1166
|
+
this.sendToast({
|
|
1167
|
+
id: crypto.randomUUID(),
|
|
1168
|
+
type: ToastType.ERROR,
|
|
1169
|
+
title: "docs export failed",
|
|
1170
|
+
body: error?.detail || error?.title || error?.message || 'Unable to export generated docs.'
|
|
1171
|
+
});
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
shouldOpenPrintingPressExportGate(error) {
|
|
1175
|
+
const status = Number(error?.status ?? error?.response?.status ?? 0);
|
|
1176
|
+
return status === 401 || (!this.authController?.authenticated && this.isPrintingPressAccessDeniedError(error));
|
|
1177
|
+
}
|
|
1178
|
+
openPrintingPressExportGate() {
|
|
1179
|
+
this.printingPressExportGate?.openGate('unauthenticated');
|
|
1180
|
+
}
|
|
1181
|
+
armPrintingPressDocsReadyWatchdog(taskId) {
|
|
1182
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
1183
|
+
this.printingPressDocsReadyTimeout = setTimeout(() => {
|
|
1184
|
+
this.printingPressDocsReadyTimeout = undefined;
|
|
1185
|
+
if (this.printingPressDocsTaskId !== taskId) {
|
|
1186
|
+
return;
|
|
1187
|
+
}
|
|
1188
|
+
if (this.printingPressDocsReady) {
|
|
1189
|
+
return;
|
|
1190
|
+
}
|
|
1191
|
+
this.printingPressDocsPending = false;
|
|
1192
|
+
this.printingPressDocsReady = false;
|
|
1193
|
+
this.printingPressDocsUrl = undefined;
|
|
1194
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1195
|
+
this.printingPressDocsError = 'Generated docs did not finish loading.';
|
|
1196
|
+
this.printingPressDocsAccessDenied = false;
|
|
1197
|
+
this.printingPressDocsRetryableError = true;
|
|
1198
|
+
this.requestUpdate();
|
|
1199
|
+
}, TheDoctor_1.PRINTING_PRESS_DOCS_READY_TIMEOUT_MS);
|
|
1200
|
+
}
|
|
1201
|
+
clearPrintingPressDocsReadyWatchdog() {
|
|
1202
|
+
if (this.printingPressDocsReadyTimeout !== undefined) {
|
|
1203
|
+
clearTimeout(this.printingPressDocsReadyTimeout);
|
|
1204
|
+
this.printingPressDocsReadyTimeout = undefined;
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
createPrintingPressRequestNonce() {
|
|
1208
|
+
if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
|
|
1209
|
+
return crypto.randomUUID();
|
|
1210
|
+
}
|
|
1211
|
+
return `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
1212
|
+
}
|
|
1213
|
+
createPrintingPressRequestId() {
|
|
1214
|
+
return `preload:${this.createPrintingPressRequestNonce()}`;
|
|
1215
|
+
}
|
|
1216
|
+
handlePrintingPressDocsIframeError() {
|
|
1217
|
+
this.clearPrintingPressDocsReadyWatchdog();
|
|
1218
|
+
this.printingPressDocsPending = false;
|
|
1219
|
+
this.printingPressDocsReady = false;
|
|
1220
|
+
this.printingPressDocsUrl = undefined;
|
|
1221
|
+
this.printingPressDocsExpectedOrigin = undefined;
|
|
1222
|
+
this.printingPressDocsError = 'Unable to load generated docs.';
|
|
1223
|
+
this.printingPressDocsAccessDenied = false;
|
|
1224
|
+
this.printingPressDocsRetryableError = true;
|
|
1225
|
+
this.requestUpdate();
|
|
1226
|
+
}
|
|
1227
|
+
handlePrintingPressDocsIframeLoad() {
|
|
1228
|
+
this.sendPrintingPressArchiveControls();
|
|
1229
|
+
window.setTimeout(() => this.sendPrintingPressArchiveControls(), 50);
|
|
1230
|
+
}
|
|
1231
|
+
handleThemeChangeForPrintingPress(event) {
|
|
1232
|
+
const detail = event.detail;
|
|
1233
|
+
if (!detail?.theme) {
|
|
1234
|
+
return;
|
|
1235
|
+
}
|
|
1236
|
+
this.sendThemeToPrintingPress(detail.theme);
|
|
1237
|
+
}
|
|
1238
|
+
sendCurrentThemeToPrintingPress(target) {
|
|
1239
|
+
const stored = (typeof localStorage !== 'undefined' && localStorage.getItem(PB33F_THEME)) || DarkTheme;
|
|
1240
|
+
this.sendThemeToPrintingPress(stored, target ?? undefined);
|
|
1241
|
+
}
|
|
1242
|
+
sendThemeToPrintingPress(theme, target) {
|
|
1243
|
+
if (!this.printingPressDocsExpectedOrigin) {
|
|
1244
|
+
return;
|
|
1245
|
+
}
|
|
1246
|
+
const win = target || this.findPrintingPressIframeWindow();
|
|
1247
|
+
if (!win) {
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1250
|
+
try {
|
|
1251
|
+
win.postMessage({ type: 'doctor:theme', theme }, this.printingPressDocsExpectedOrigin);
|
|
1252
|
+
}
|
|
1253
|
+
catch {
|
|
1254
|
+
// intentional: failure to post a theme update is not user-actionable
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
sendPrintingPressArchiveControls(target) {
|
|
1258
|
+
if (!this.printingPressDocsExpectedOrigin) {
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
const win = target || this.findPrintingPressIframeWindow();
|
|
1262
|
+
if (!win) {
|
|
1263
|
+
return;
|
|
1264
|
+
}
|
|
1265
|
+
try {
|
|
1266
|
+
win.postMessage({ type: 'doctor:archive-controls', enabled: true }, this.printingPressDocsExpectedOrigin);
|
|
1267
|
+
}
|
|
1268
|
+
catch {
|
|
1269
|
+
// intentional: export controls are a hosted enhancement, docs remain usable without them
|
|
1270
|
+
}
|
|
1271
|
+
}
|
|
1272
|
+
findPrintingPressIframeWindow() {
|
|
1273
|
+
const root = this.renderRoot ?? this;
|
|
1274
|
+
const iframe = root.querySelector('iframe.printing-press-docs-frame');
|
|
1275
|
+
return iframe?.contentWindow ?? null;
|
|
1276
|
+
}
|
|
1277
|
+
renderPrintingPressDocsPanel() {
|
|
1278
|
+
if (!this.tabCache.shouldRenderEditorTab('docs')) {
|
|
1279
|
+
return nothing;
|
|
1280
|
+
}
|
|
1281
|
+
return html `
|
|
1282
|
+
<div class="printing-press-docs-panel">
|
|
1283
|
+
<div class="printing-press-docs-content">
|
|
1284
|
+
${this.renderPrintingPressDocs()}
|
|
1285
|
+
</div>
|
|
1286
|
+
</div>
|
|
1287
|
+
`;
|
|
1288
|
+
}
|
|
1289
|
+
renderPrintingPressDocs() {
|
|
1290
|
+
if (!this.tabCache.shouldRenderEditorTab('docs')) {
|
|
1291
|
+
return nothing;
|
|
1292
|
+
}
|
|
1293
|
+
if (this.printingPressDocsError) {
|
|
1294
|
+
if (this.printingPressDocsAccessDenied) {
|
|
1295
|
+
return this.renderPrintingPressAccessDenied();
|
|
1296
|
+
}
|
|
1297
|
+
return html `
|
|
1298
|
+
<pb33f-printing-press-docs-unavailable
|
|
1299
|
+
.detail=${this.printingPressDocsError}>
|
|
1300
|
+
</pb33f-printing-press-docs-unavailable>
|
|
1301
|
+
`;
|
|
1302
|
+
}
|
|
1303
|
+
if (!this.printingPressDocsUrl) {
|
|
1304
|
+
return this.printingPressDocsPending ? this.renderPrintingPressDocsPending() : nothing;
|
|
1305
|
+
}
|
|
1306
|
+
return html `
|
|
1307
|
+
<div class="printing-press-docs-shell">
|
|
1308
|
+
<iframe
|
|
1309
|
+
class="printing-press-docs-frame ${this.printingPressDocsReady ? 'ready' : 'loading'}"
|
|
1310
|
+
src="${this.printingPressDocsUrl}"
|
|
1311
|
+
width="100%"
|
|
1312
|
+
height="100%"
|
|
1313
|
+
style="border: none"
|
|
1314
|
+
@load=${this.handlePrintingPressDocsIframeLoad}
|
|
1315
|
+
@error=${this.handlePrintingPressDocsIframeError}>
|
|
1316
|
+
</iframe>
|
|
1317
|
+
${this.printingPressDocsPending ? html `
|
|
1318
|
+
<div class="printing-press-docs-overlay">
|
|
1319
|
+
${this.renderPrintingPressDocsPending()}
|
|
1320
|
+
</div>
|
|
1321
|
+
` : nothing}
|
|
1322
|
+
</div>
|
|
1323
|
+
`;
|
|
1324
|
+
}
|
|
1325
|
+
renderPrintingPressAccessDenied() {
|
|
1326
|
+
const accessDeniedUrl = new URL('/access-denied', ModelService.doctorEndpoint).toString();
|
|
1327
|
+
return html `
|
|
1328
|
+
<iframe
|
|
1329
|
+
class="printing-press-docs-access-denied-frame"
|
|
1330
|
+
src="${accessDeniedUrl}"
|
|
1331
|
+
width="100%"
|
|
1332
|
+
height="100%"
|
|
1333
|
+
style="border: none"
|
|
1334
|
+
title="access denied">
|
|
1335
|
+
</iframe>
|
|
1336
|
+
`;
|
|
1337
|
+
}
|
|
1338
|
+
isPrintingPressAccessDeniedError(error) {
|
|
1339
|
+
const status = Number(error?.status ?? error?.response?.status ?? 0);
|
|
1340
|
+
if (status === 401 || status === 403) {
|
|
1341
|
+
return true;
|
|
1342
|
+
}
|
|
1343
|
+
const text = `${error?.title ?? ''} ${error?.detail ?? ''} ${error?.message ?? ''} ${error?.error ?? ''}`.toLowerCase();
|
|
1344
|
+
return text.includes('access denied') || text.includes('authentication required') || text.includes('requires authentication');
|
|
1345
|
+
}
|
|
1346
|
+
renderPrintingPressDocsPending() {
|
|
1347
|
+
return html `
|
|
1348
|
+
<div class="printing-press-docs-pending" aria-live="polite">
|
|
1349
|
+
<div class="printing-press-docs-pending-nav" aria-hidden="true">
|
|
1350
|
+
<span></span><span></span><span></span><span></span><span></span>
|
|
1351
|
+
</div>
|
|
1352
|
+
<div class="printing-press-docs-pending-main">
|
|
1353
|
+
<h2>building api docs</h2>
|
|
1354
|
+
<p>Printing Press is preparing the static docs.</p>
|
|
1355
|
+
</div>
|
|
1356
|
+
</div>
|
|
1357
|
+
`;
|
|
1358
|
+
}
|
|
834
1359
|
handleEditorUpdatedForBundle(event) {
|
|
835
1360
|
if (event.detail.id === 'spec' && this.isBundled) {
|
|
836
1361
|
this.bundleController.reset();
|
|
@@ -862,6 +1387,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
862
1387
|
this.modelController.renderedNodeComponent.node = null;
|
|
863
1388
|
this.sidebarPanel?.showTab('overview');
|
|
864
1389
|
this.bundleController.reset();
|
|
1390
|
+
this.resetPrintingPressDocsState();
|
|
865
1391
|
this.isBundled = false;
|
|
866
1392
|
this.modelTree.isBundled = false;
|
|
867
1393
|
this.importDisabled = false;
|
|
@@ -878,6 +1404,9 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
878
1404
|
this.docBag?.set(DefaultDocument, result);
|
|
879
1405
|
this.diagnosticController.loadStoredDiagnostics();
|
|
880
1406
|
this.updateWorkspaceReadOnlyState();
|
|
1407
|
+
if (this.selectedEditorTab === 'docs') {
|
|
1408
|
+
this.preloadPrintingPressDocs();
|
|
1409
|
+
}
|
|
881
1410
|
}).finally(() => {
|
|
882
1411
|
this.isRebooting = false;
|
|
883
1412
|
});
|
|
@@ -1092,8 +1621,8 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1092
1621
|
}
|
|
1093
1622
|
return this._controlTabs;
|
|
1094
1623
|
}
|
|
1095
|
-
_showControlTab(panel) {
|
|
1096
|
-
this.sidebarPanel?.showTab(panel);
|
|
1624
|
+
_showControlTab(panel, options) {
|
|
1625
|
+
this.sidebarPanel?.showTab(panel, options);
|
|
1097
1626
|
}
|
|
1098
1627
|
_getSelectedControlTab() {
|
|
1099
1628
|
const activeTab = this.sidebarPanel?.tabGroup?.querySelector('sl-tab[active]');
|
|
@@ -1108,7 +1637,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1108
1637
|
}
|
|
1109
1638
|
return this._editorTabs;
|
|
1110
1639
|
}
|
|
1111
|
-
_showEditorTab(panel) {
|
|
1640
|
+
_showEditorTab(panel, _options) {
|
|
1112
1641
|
this.editorPanel?.showTab(panel);
|
|
1113
1642
|
}
|
|
1114
1643
|
_getSelectedEditorTab() {
|
|
@@ -1123,7 +1652,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1123
1652
|
}
|
|
1124
1653
|
return this._navigatorTabs;
|
|
1125
1654
|
}
|
|
1126
|
-
_showNavigatorTab(panel) {
|
|
1655
|
+
_showNavigatorTab(panel, _options) {
|
|
1127
1656
|
this.navigatorPanel?.showTab(panel);
|
|
1128
1657
|
}
|
|
1129
1658
|
_getSelectedNavigatorTab() {
|
|
@@ -1238,7 +1767,8 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1238
1767
|
overlay = html `
|
|
1239
1768
|
<div class="overlay" @click="return false"></div>`;
|
|
1240
1769
|
}
|
|
1241
|
-
const
|
|
1770
|
+
const docsActive = this.selectedEditorTab === 'docs';
|
|
1771
|
+
const mainPanelView = docsActive ? nothing : html `
|
|
1242
1772
|
<pb33f-doctor-sidebar-panel
|
|
1243
1773
|
slot="end"
|
|
1244
1774
|
role="complementary"
|
|
@@ -1265,6 +1795,12 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1265
1795
|
${this.nukeWorkspace}
|
|
1266
1796
|
${this.toastManager}
|
|
1267
1797
|
${this.globalTaskView}
|
|
1798
|
+
<pb33f-premium-gate
|
|
1799
|
+
id="printing-press-export-gate"
|
|
1800
|
+
dialogTitle="Show us your credentials, partner"
|
|
1801
|
+
featureName="Export API Docs"
|
|
1802
|
+
featureExplanation="Howdy! In order to export generated API docs, we're going to need you to authenticate first. Tell us who you are, and we will give you a bunch of free credit to use.">
|
|
1803
|
+
</pb33f-premium-gate>
|
|
1268
1804
|
<sl-dialog open id="loading-overlay" class="dialog-overview"
|
|
1269
1805
|
style="--width: 30vw" no-header>
|
|
1270
1806
|
<h3 class="loading">OpenAPI Doctor is booting...</h3>
|
|
@@ -1291,7 +1827,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1291
1827
|
<div class="doctor">
|
|
1292
1828
|
${this.errorBanner}
|
|
1293
1829
|
${overlay}
|
|
1294
|
-
<sl-split-panel id="explorer-split-panel" class="split-panel-explorer" position="12"
|
|
1830
|
+
<sl-split-panel id="explorer-split-panel" class="split-panel-explorer ${docsActive ? 'docs-takeover' : ''}" position="12"
|
|
1295
1831
|
@sl-reposition="${this.updateExplorerDivider}">
|
|
1296
1832
|
<sl-icon id="split-divider-tree" slot="divider" name="grip-vertical" class="divider-vert" aria-hidden="true"></sl-icon>
|
|
1297
1833
|
<div slot="start" class="model-tree" role="navigation" aria-label="Document navigation">
|
|
@@ -1321,7 +1857,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1321
1857
|
<div slot="end">
|
|
1322
1858
|
<sl-split-panel id="inspector-split-panel"
|
|
1323
1859
|
@sl-reposition="${this.updateInspectorDivider}"
|
|
1324
|
-
class="split-panel ${this.unavailable ? 'unavailable' : ''}">
|
|
1860
|
+
class="split-panel ${this.unavailable ? 'unavailable' : ''} ${docsActive ? 'docs-mode' : ''}">
|
|
1325
1861
|
<sl-icon id="split-divider" slot="divider" name="grip-vertical"
|
|
1326
1862
|
class="divider-vert" aria-hidden="true"></sl-icon>
|
|
1327
1863
|
<div class="editor" slot="start" role="main" aria-label="API specification editor">
|
|
@@ -1353,7 +1889,7 @@ let TheDoctor = class TheDoctor extends LitElement {
|
|
|
1353
1889
|
</div>
|
|
1354
1890
|
</pb33f-tardis-control>
|
|
1355
1891
|
` : nothing}</div>
|
|
1356
|
-
<div slot="docs"
|
|
1892
|
+
<div slot="docs" class="docs-slot">${this.renderPrintingPressDocsPanel()}</div>
|
|
1357
1893
|
<div slot="workspaces">${this.tabCache.shouldRenderEditorTab('workspaces') ? this.workspaceController.workspaceView : nothing}</div>
|
|
1358
1894
|
</pb33f-doctor-editor-panel>
|
|
1359
1895
|
</div>
|
|
@@ -1408,6 +1944,7 @@ TheDoctor.styles = [theDoctorCss,
|
|
|
1408
1944
|
tooltipCss,
|
|
1409
1945
|
panelsCss,
|
|
1410
1946
|
nukeCss];
|
|
1947
|
+
TheDoctor.PRINTING_PRESS_DOCS_READY_TIMEOUT_MS = 12000;
|
|
1411
1948
|
__decorate([
|
|
1412
1949
|
query('sl-radio-group#export-ruleset-radio')
|
|
1413
1950
|
], TheDoctor.prototype, "exportSelection", void 0);
|
|
@@ -1417,6 +1954,9 @@ __decorate([
|
|
|
1417
1954
|
__decorate([
|
|
1418
1955
|
query('sl-dialog#loading-overlay')
|
|
1419
1956
|
], TheDoctor.prototype, "loadingOverlay", void 0);
|
|
1957
|
+
__decorate([
|
|
1958
|
+
query('pb33f-premium-gate#printing-press-export-gate')
|
|
1959
|
+
], TheDoctor.prototype, "printingPressExportGate", void 0);
|
|
1420
1960
|
__decorate([
|
|
1421
1961
|
query('#url-input-button')
|
|
1422
1962
|
], TheDoctor.prototype, "urlInputButton", void 0);
|
|
@@ -1504,13 +2044,31 @@ __decorate([
|
|
|
1504
2044
|
__decorate([
|
|
1505
2045
|
state()
|
|
1506
2046
|
], TheDoctor.prototype, "isBundled", void 0);
|
|
2047
|
+
__decorate([
|
|
2048
|
+
state()
|
|
2049
|
+
], TheDoctor.prototype, "printingPressDocsPending", void 0);
|
|
2050
|
+
__decorate([
|
|
2051
|
+
state()
|
|
2052
|
+
], TheDoctor.prototype, "printingPressDocsUrl", void 0);
|
|
2053
|
+
__decorate([
|
|
2054
|
+
state()
|
|
2055
|
+
], TheDoctor.prototype, "printingPressDocsReady", void 0);
|
|
2056
|
+
__decorate([
|
|
2057
|
+
state()
|
|
2058
|
+
], TheDoctor.prototype, "printingPressDocsError", void 0);
|
|
2059
|
+
__decorate([
|
|
2060
|
+
state()
|
|
2061
|
+
], TheDoctor.prototype, "printingPressDocsAccessDenied", void 0);
|
|
2062
|
+
__decorate([
|
|
2063
|
+
state()
|
|
2064
|
+
], TheDoctor.prototype, "selectedEditorTab", void 0);
|
|
1507
2065
|
__decorate([
|
|
1508
2066
|
state()
|
|
1509
2067
|
], TheDoctor.prototype, "rolodexDividerPosition", void 0);
|
|
1510
2068
|
__decorate([
|
|
1511
2069
|
state()
|
|
1512
2070
|
], TheDoctor.prototype, "currentViewName", void 0);
|
|
1513
|
-
TheDoctor = __decorate([
|
|
2071
|
+
TheDoctor = TheDoctor_1 = __decorate([
|
|
1514
2072
|
customElement("pb33f-doctor")
|
|
1515
2073
|
], TheDoctor);
|
|
1516
2074
|
export { TheDoctor };
|