@memberjunction/ng-dashboards 6.2.0-edge.4 → 6.2.0-edge.5
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/AI/components/vectors/sensitive-fields.d.ts +53 -0
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -0
- package/dist/AI/components/vectors/sensitive-fields.js +226 -0
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts +126 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.js +168 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +49 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +428 -230
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Communication/communication-agent-context.d.ts +11 -1
- package/dist/Communication/communication-agent-context.d.ts.map +1 -1
- package/dist/Communication/communication-agent-context.js +15 -0
- package/dist/Communication/communication-agent-context.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +5 -0
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts +27 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +722 -78
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +25 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +74 -5
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +1 -0
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.d.ts.map +1 -1
- package/dist/DevTools/class-registry.component.js +1 -0
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.d.ts.map +1 -1
- package/dist/DevTools/event-monitor.component.js +2 -0
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/grid-width-lab.component.d.ts.map +1 -1
- package/dist/DevTools/grid-width-lab.component.js +1 -0
- package/dist/DevTools/grid-width-lab.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +1 -0
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +1 -0
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.d.ts.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +1 -0
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.d.ts.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.js +1 -0
- package/dist/DevTools/tab-strip-lab.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +5 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +8 -5
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +24 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +16 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +87 -33
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-inspector.component.d.ts +130 -0
- package/dist/LoginStudio/login-studio-inspector.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-inspector.component.js +781 -0
- package/dist/LoginStudio/login-studio-inspector.component.js.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts +153 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js +857 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -0
- package/dist/Workflows/components/workflow-runs-resource.component.js +4 -4
- package/dist/Workflows/components/workflow-runs-resource.component.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +2 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +11 -3
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +72 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-monitor.component.js","sourceRoot":"","sources":["../../src/DevTools/event-monitor.component.ts","../../src/DevTools/event-monitor.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAuD,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAW,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAmB,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;;;;;;ICOtF,wBAAmD;IAAC,+BAA8B;IAAA,sBAAM;IAAA,iBAAO;;;IAE/F,wBAAoD;IAAC,+BAA8B;IAAA,qBAAK;IAAA,iBAAO;;;;IAoDnG,kCAAoE;IAApC,0MAAkB,EAAE,KAAC;IACjD,wBAAiC;IACrC,iBAAS;;;IASL,kCAAoB;IAAA,YAAO;IAAA,iBAAS;;;IAA5B,4BAAW;IAAC,cAAO;IAAP,0BAAO;;;IAU3B,kCAAoB;IAAA,YAAO;IAAA,iBAAS;;;IAA5B,4BAAW;IAAC,cAAO;IAAP,0BAAO;;;IAWvB,kCAAoB;IAAA,YAAO;IAAA,iBAAS;;;IAA5B,4BAAW;IAAC,cAAO;IAAP,0BAAO;;;;IAJnC,AADJ,+BAA4B,gBACO;IAAA,oBAAI;IAAA,iBAAQ;IAC3C,kCAAoF;IAA1D,mTAAwB;IAAC,0MAAiB,qBAAc,KAAC;IAC/E,kCAAiB;IAAA,YAAmC;IAAA,iBAAS;IAC7D,6HAEC;IAET,AADI,iBAAS,EACP;;;IANwB,eAAwB;IAAxB,iDAAwB;IAC7B,eAAmC;IAAnC,mEAAmC;IACpD,cAEC;IAFD,gCAEC;;;;IAMT,kCAAkG;IAAnD,0LAAS,qBAAc,KAAC;IACnE,wBAAiC;IAAC,+BACtC;IAAA,iBAAS;;;IAYD,wBAA2G;;;IAA5C,AAA3C,0DAA0C,yCAAwC;;;IAStG,wBAA2G;;;IAA5C,AAA3C,0DAA0C,yCAAwC;;;IAStG,wBAA2G;;;IAA5C,AAA3C,0DAA0C,yCAAwC;;;IAStG,wBAA2G;;;IAA5C,AAA3C,0DAA0C,yCAAwC;;;IAQ9G,qCACoD;;;IAA3B,AAArB,AADqC,AAAzB,6CAAwB,0BAAmB,4BACnC,gCAAyB;;;IAqBL,AAA5B,+BAA4B,WAAM;IAAA,YAAqB;;IAAO,AAAP,iBAAO,EAAM;;;IAAlC,eAAqB;IAArB,uDAAqB;;;IAEvD,+BAA+B;IAC3B,wBAAoC;IACpC,4BAAM;IAAA,0CAA0B;IACpC,AADoC,iBAAO,EACrC;;;IAJR,AAFF,4HAAsB,sGAEb;;;IAFT,2CAOC;;;;IAvBL,AADJ,+BAA4D,cACN;IAAzB,uNAAS,wBAAc,KAAC;IAC7C,wBACgD;IAChD,gCAA0B;IAAA,YAAyC;;IAAA,iBAAO;IAC1E,gCAAsD;IAAA,YAAc;IAAA,iBAAO;IAC3E,gCAA0B;IAAA,YAA0B;IAAA,iBAAO;IAC3D,iCAA2D;IAAA,aAAuB;IAAA,iBAAO;IACzF,iCAA6E;IAAA,aAAiB;IAAA,iBAAO;IACrG,mCAG6B;IADrB,2MAAS,wBAAwB,wBAAE,wBAAc,KAAC;IAEtD,yBAAqC;IAE7C,AADI,iBAAS,EACP;IACN,oGAAoB;IAUxB,iBAAM;;;IA1Bc,mDAAuC;IAGhD,eAAwC;IAAxC,oDAAwC;IACjB,eAAyC;IAAzC,6EAAyC;IACzC,eAA2B;;IAAC,cAAc;IAAd,iCAAc;IAC1C,eAA0B;IAA1B,kDAA0B;IACrB,cAA2B;IAA3B,4CAA2B;IAAC,cAAuB;IAAvB,0CAAuB;IACrD,cAA+C;IAA/C,2DAA+C;IAAC,cAAiB;IAAjB,oCAAiB;IAQlG,eASC;IATD,2CASC;;;IA1BT,yIA4BC;;;IA5BD,oCA4BC;;ADzJb;;;;GAIG;AAQI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,qBAAqB;IAuBxC;IArBJ,SAAS,GAAG,GAAG,CAAC;IACzB,MAAM,GAAe,EAAE,CAAC;IACxB,MAAM,GAAG,KAAK,CAAC;IACf,UAAU,GAAG,IAAI,CAAC;IAClB,MAAM,GAAG,EAAE,CAAC;IACZ,UAAU,GAAG,EAAE,CAAC,CAAC,WAAW;IAC5B,eAAe,GAAG,EAAE,CAAC,CAAC,WAAW;IACjC,UAAU,GAAG,EAAE,CAAC,CAAC,WAAW;IAC5B,UAAU,GAAa,EAAE,CAAC;IAC1B,eAAe,GAAa,EAAE,CAAC;IAC/B,UAAU,GAAa,EAAE,CAAC;IAC1B,KAAK,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/C,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,SAAS,GAAc,MAAM,CAAC;IAC9B,OAAO,GAAY,MAAM,CAAC;IAEzB,GAAG,CAAgB;IACnB,GAAG,GAAG,CAAC,CAAC;IACR,UAAU,GAAa,EAAE,CAAC,CAAC,kCAAkC;IAC7D,SAAS,CAAkC;IAEnD,YAAoB,GAAsB;QACtC,KAAK,EAAE,CAAC;QADQ,QAAG,GAAH,GAAG,CAAmB;IAE1C,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAEM,eAAe;QAClB,yEAAyE;QACzE,wEAAwE;QACxE,gFAAgF;QAChF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAEM,WAAW;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAEO,SAAS;QACb,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAoB,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;IACvC,CAAC;IAEO,SAAS;QACb,aAAa,CAAC,IAAI,CAAoB,cAAc,EAAE;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAEe,KAAK,CAAC,sBAAsB,KAAsB,OAAO,eAAe,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,oBAAoB,KAAsB,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAErF,WAAW;QACd,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEM,gBAAgB;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEM,SAAS,CAAC,GAAa;QAC1B,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,iBAAiB,CAAC,IAAY;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEM,WAAW,CAAC,KAAgB;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,iFAAiF;IAC1E,YAAY;QACf,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,GAAa;QAChC,MAAM,OAAO,GAAG;YACZ,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE;YACtC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,aAAa;YAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;SACjB,CAAC;QACF,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,6EAA6E;IAC7E,IAAW,YAAY;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAClD,CAAC;IACD,IAAW,SAAS;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,mBAAmB,CAAC;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACpE,CAAC;IACD,IAAW,UAAU;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,uBAAuB,CAAC;QAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,6BAA6B,CAAC;IAC7E,CAAC;IACD,IAAW,YAAY;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,oEAAoE,CAAC;QAC3G,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,yEAAyE,CAAC;QACxH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,gDAAgD,CAAC;IAC9E,CAAC;IAED,IAAW,cAAc;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,eAAe;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5F,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC;YACJ,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACnB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;QACN,CAAC;QAED,gFAAgF;QAChF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,CAAM,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC/C,KAAK,MAAM,CAAC,CAAM,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC5D,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;gBACpF,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;gBAC9E,OAAO,CAAC,CAAU,OAAO,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IACzF,CAAC;IAED,IAAW,WAAW;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnD,CAAC;IAEM,UAAU,GAAG,CAAC,EAAU,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEvD,gCAAgC;IAExB,SAAS;QACb,IAAI,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,GAAY,EAAE,EAAE;gBAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,MAAM,CAAC;YACL,sCAAsC;QAC1C,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,GAAY;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,aAAa,GAAI,GAAG,CAAC,SAAoE,EAAE,WAAW,EAAE,IAAI,IAAI,gBAAgB,CAAC;QACvI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEpD,MAAM,GAAG,GAAa;YAClB,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI;YACJ,SAAS,EAAE,IAAI;YACf,aAAa;YACb,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;YACxD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,UAAU;SACb,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAEO,iBAAiB,CAAC,IAAa;QACnC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7F,OAAO,IAAI,CAAC,CAAC,qCAAqC;IACtD,CAAC;IAEO,QAAQ;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,sEAAsE;QACtE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEO,aAAa,CAAC,IAAa;QAC/B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QACpD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,IAAI,CAAC,MAAM,QAAQ,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC/E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,kCAAkC;IAClC,EAAE;IACF,kEAAkE;IAClE,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,2CAA2C;IAE3C,uEAAuE;IAC/D,mBAAmB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,MAAM,OAAO,GAAG,6BAA6B,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC/B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,wEAAwE;YACxE,wEAAwE;YACxE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS,EAAE,CAAC,CAAC,aAAa;gBAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAC,CAAC;SACN,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACK,wBAAwB;QAC5B,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,EAAE;YAC7C;gBACI,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,+EAA+E;gBAC5F,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;gBACnD,OAAO,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;aACJ;YACD;gBACI,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,gDAAgD;gBAC7D,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;gBACnD,OAAO,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,IAAI,CAAC,MAAM;wBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;aACJ;YACD;gBACI,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,8DAA8D;gBAC3E,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;gBACnD,OAAO,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;aACJ;YACD;gBACI,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,6FAA6F;gBAC1G,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;gBACjG,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;aACpF;YACD;gBACI,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,+GAA+G;gBAC5H,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;gBAC3G,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;aACzF;YACD;gBACI,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,wGAAwG;gBACrH,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;gBACnD,OAAO,EAAE,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC7B,CAAC;aACJ;YACD;gBACI,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,gGAAgG;gBAC7G,eAAe,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;wBAC3E,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;qBACvD;oBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;iBACnC;gBACD,OAAO,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;aAC/E;SACJ,CAAC,CAAC;IACP,CAAC;IAED,+DAA+D;IACvD,gBAAgB,CAAC,MAA+B;QACpD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC,MAAM,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,mEAAmE;IAC3D,qBAAqB,CAAC,MAA+B;QACzD,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC,MAAM,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,iEAAiE;IACzD,WAAW,CAAC,MAA+B;QAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAY,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;QACjH,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,MAAM,GAAG,GAAG,iBAAiB,CAAU,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;+GA5bQ,qBAAqB;6DAArB,qBAAqB;YCtCtB,AADJ,AALJ,AADJ,8BAA6C,iCAKyB,aACjD,gBAKqD;YADtD,kGAAS,iBAAa,IAAC;YAIzB,AAFF,6EAAc,uDAEL;YAGb,iBAAS;YACT,iCAAmG;YAApD,kGAAS,WAAO,IAAC;YAC5D,uBAAoD;YAAC,+BAA8B;YAAA,qBAAK;YAGpG,AADI,AADI,AAD4F,iBAAO,EAC1F,EACP,EACgB;YAGtB,AADJ,+BAAsB,cACG;YACjB,wBAA0D;YAEtD,AADJ,4BAAK,eAC0B;YAAA,aAAgC;YAAA,iBAAM;YACjE,gCAA2B;YAAA,aAAuD;YAE1F,AADI,AADsF,iBAAM,EACtF,EACJ;YAGE,AADJ,AADJ,+BAAqB,WACZ,eAC0B;YAAA,aAAoB;YAAA,iBAAM;YACrD,gCAA2B;YAAA,+BAAc;YAEjD,AADI,AAD6C,iBAAM,EAC7C,EACJ;YAGE,AADJ,AADJ,+BAAqB,WACZ,eAC0B;YAAA,aAAkC;YAAA,iBAAM;YACnE,gCAA2B;YAAA,0BAAS;YAE5C,AADI,AADwC,iBAAM,EACxC,EACJ;YAGE,AADJ,AADJ,+BAAqB,WACZ,eAC0B;YAAA,aAAuB;YAAA,iBAAM;YACxD,gCAA2B;YAAA,4BAAW;YAE9C,AADI,AAD0C,iBAAM,EAC1C,EACJ;YAGE,AADJ,AADJ,gCAAoC,WAC3B,eAC+C;YAAA,aAAiB;YAAA,iBAAM;YACvE,gCAA2B;YAAA,6BAAY;YAGnD,AADI,AADI,AAD2C,iBAAM,EAC3C,EACJ,EACJ;YAGF,AADJ,gCAAwB,eACQ;YACxB,yBAAiD;YACjD,kCAI0C;YADnC,4MAAoB;YACpB,kHAAiB,kBAAc,IAAC;YAJvC,iBAI0C;YAC1C,6FAAc;YAKlB,iBAAM;YAGF,AADJ,gCAA4B,iBACO;YAAA,qBAAI;YAAA,iBAAQ;YAC3C,mCAAoF;YAA1D,qNAAwB;YAAC,mHAAiB,kBAAc,IAAC;YAC/E,mCAAiB;YAAA,aAAmC;YAAA,iBAAS;YAC7D,gHAEC;YAET,AADI,iBAAS,EACP;YAGF,AADJ,gCAA4B,iBACO;YAAA,0BAAS;YAAA,iBAAQ;YAChD,mCAAyF;YAA/D,+NAA6B;YAAC,mHAAiB,kBAAc,IAAC;YACpF,mCAAiB;YAAA,aAA6C;YAAA,iBAAS;YACvE,gHAEC;YAET,AADI,iBAAS,EACP;YAEN,0FAA6B;YAY7B,6FAAwB;YAK5B,iBAAM;YAIE,AADJ,AADJ,gCAAqB,eACU,kBAIe;YAA9B,mGAAS,gBAAY,MAAM,CAAC,IAAC;YACjC,uBACA;YAAA,wFAA4B;YAGhC,iBAAS;YACT,mCAGsC;YAA9B,mGAAS,gBAAY,MAAM,CAAC,IAAC;YACjC,uBACA;YAAA,wFAA4B;YAGhC,iBAAS;YACT,mCAG2C;YAAnC,mGAAS,gBAAY,WAAW,CAAC,IAAC;YACtC,uBACA;YAAA,wFAAiC;YAGrC,iBAAS;YACT,mCAG2C;YAAnC,mGAAS,gBAAY,WAAW,CAAC,IAAC;YACtC,4BACA;YAAA,wFAAiC;YAGrC,iBAAS;YACT,iCAAmC;YAAA,wBAAO;YAAA,iBAAO;YACjD,4BAA0C;YAC9C,iBAAM;YAKJ,AAHF,qGAAmC,yDAG1B;YAgCjB,AADI,iBAAM,EACJ;;YAlLc,eAAqD;YAArD,uEAAqD;YACzD,cAIC;YAJD,oCAIC;YAUe,eAAiC;YAAjC,8CAAiC;YAEtB,eAAgC;YAAhC,oDAAgC;YAChC,eAAuD;YAAvD,2EAAuD;YAKvD,eAAoB;YAApB,wCAAoB;YAMpB,eAAkC;YAAlC,+DAAkC;YAMlC,eAAuB;YAAvB,oDAAuB;YAMF,eAAiB;YAAjB,qCAAiB;YAY9D,eAAoB;YAApB,0CAAoB;YAE3B,cAIC;YAJD,sCAIC;YAKyB,eAAwB;YAAxB,8CAAwB;YAC7B,eAAmC;YAAnC,gEAAmC;YACpD,cAEC;YAFD,6BAEC;YAMqB,eAA6B;YAA7B,mDAA6B;YAClC,eAA6C;YAA7C,0EAA6C;YAC9D,cAEC;YAFD,kCAEC;YAIT,eAUC;YAVD,qDAUC;YAED,cAIC;YAJD,gDAIC;YAOW,eAA4C;YAA5C,yDAA4C;YAGhD,eAEC;YAFD,oDAEC;YAIG,cAA4C;YAA5C,yDAA4C;YAGhD,eAEC;YAFD,oDAEC;YAIG,cAAiD;YAAjD,8DAAiD;YAGrD,eAEC;YAFD,yDAEC;YAIG,cAAiD;YAAjD,8DAAiD;YAGrD,eAEC;YAFD,yDAEC;YAMT,eAiCC;YAjCD,2DAiCC;;;AD9II,qBAAqB;IAPjC,aAAa,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;GAOjD,qBAAqB,CA6bjC;;iFA7bY,qBAAqB;cANjC,SAAS;6BACM,KAAK,YACP,kBAAkB;;kFAInB,qBAAqB","sourcesContent":["import { Component, OnInit, OnDestroy, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RegisterClass, MJGlobal, MJEvent } from '@memberjunction/global';\nimport { Subscription } from 'rxjs';\nimport { DevToolsPrefs } from './dev-tools-prefs';\nimport { BuildEventMonitorAgentContext } from './dev-tools-agent-context';\nimport { AgentToolResult, ValidateStringParam, ValidateEnumParam } from '../shared/agent-tool-validation';\n\ninterface EventMonitorPrefs {\n filter?: string;\n typeFilter?: string;\n componentFilter?: string;\n codeFilter?: string;\n sortField?: SortField;\n sortDir?: SortDir;\n}\n\ninterface EventRow {\n seq: number;\n timestamp: Date;\n type: string;\n eventCode?: string;\n componentName: string;\n summary: string;\n args: unknown;\n expanded: boolean;\n /** True when args is null/undefined/empty — used to render a clean empty-state on expand. */\n hasPayload: boolean;\n}\n\ntype SortField = 'time' | 'type' | 'eventCode' | 'component';\ntype SortDir = 'asc' | 'desc';\n\n/**\n * Event Monitor — live tail of `MJGlobal.Instance.GetEventListener()`.\n * Captures events into a ring buffer (configurable cap) with filtering,\n * pause/resume, click-to-expand-payload, copy.\n */\n@RegisterClass(BaseResourceComponent, 'EventMonitorInspector')\n@Component({\n standalone: false,\n selector: 'mj-event-monitor',\n templateUrl: './event-monitor.component.html',\n styleUrls: ['./inspector-shared.css', './event-monitor.component.css']\n})\nexport class EventMonitorComponent extends BaseResourceComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly MaxEvents = 500;\n public Events: EventRow[] = [];\n public Paused = false;\n public AutoScroll = true;\n public Filter = '';\n public TypeFilter = ''; // '' = all\n public ComponentFilter = ''; // '' = all\n public CodeFilter = ''; // '' = all\n public KnownTypes: string[] = [];\n public KnownComponents: string[] = [];\n public KnownCodes: string[] = [];\n public Stats = { captured: 0, perSecond: 0, kept: 0 };\n public StartedAt = new Date();\n public SortField: SortField = 'time';\n public SortDir: SortDir = 'desc';\n\n private sub?: Subscription;\n private seq = 0;\n private rateBucket: number[] = []; // event timestamps within last 1s\n private rateTimer?: ReturnType<typeof setInterval>;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit(): void {\n this.loadPrefs();\n this.subscribe();\n this.rateTimer = setInterval(() => this.tickRate(), 500);\n this.NotifyLoadComplete();\n }\n\n public ngAfterViewInit(): void {\n // Publish the initial agent context and register the client tools the AI\n // agent can invoke against this surface. Ongoing re-emit happens in the\n // user-action methods (pause/clear/filter/sort) and in tickRate (live metrics).\n this.publishAgentContext();\n this.registerAgentClientTools();\n }\n\n public ngOnDestroy(): void {\n this.savePrefs();\n this.sub?.unsubscribe();\n if (this.rateTimer) clearInterval(this.rateTimer);\n }\n\n private loadPrefs(): void {\n const p = DevToolsPrefs.Get<EventMonitorPrefs>('eventMonitor');\n if (!p) return;\n this.Filter = p.filter ?? '';\n this.TypeFilter = p.typeFilter ?? '';\n this.ComponentFilter = p.componentFilter ?? '';\n this.CodeFilter = p.codeFilter ?? '';\n this.SortField = p.sortField ?? 'time';\n this.SortDir = p.sortDir ?? 'desc';\n }\n\n private savePrefs(): void {\n DevToolsPrefs.Save<EventMonitorPrefs>('eventMonitor', {\n filter: this.Filter,\n typeFilter: this.TypeFilter,\n componentFilter: this.ComponentFilter,\n codeFilter: this.CodeFilter,\n sortField: this.SortField,\n sortDir: this.SortDir\n });\n }\n\n public override async GetResourceDisplayName(): Promise<string> { return 'Event Monitor'; }\n public override async GetResourceIconClass(): Promise<string> { return 'fa-solid fa-bolt'; }\n\n public TogglePause(): void {\n this.Paused = !this.Paused;\n this.cdr.markForCheck();\n this.publishAgentContext();\n }\n\n public ToggleAutoScroll(): void {\n this.AutoScroll = !this.AutoScroll;\n }\n\n public Clear(): void {\n this.Events = [];\n this.seq = 0;\n this.Stats.kept = 0;\n this.cdr.markForCheck();\n this.publishAgentContext();\n }\n\n public ToggleRow(row: EventRow): void {\n row.expanded = !row.expanded;\n }\n\n public OnTypeFilterClick(type: string): void {\n this.TypeFilter = this.TypeFilter === type ? '' : type;\n this.publishAgentContext();\n }\n\n public OnSortClick(field: SortField): void {\n if (this.SortField === field) {\n this.SortDir = this.SortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this.SortField = field;\n this.SortDir = field === 'time' ? 'desc' : 'asc';\n }\n this.savePrefs();\n this.publishAgentContext();\n }\n\n /** Public so the template can call on every ngModelChange (filters, selects). */\n public PersistPrefs(): void {\n this.savePrefs();\n this.publishAgentContext();\n }\n\n public async OnCopyRow(row: EventRow): Promise<void> {\n const payload = {\n timestamp: row.timestamp.toISOString(),\n type: row.type,\n eventCode: row.eventCode,\n component: row.componentName,\n args: row.args\n };\n try {\n await navigator.clipboard.writeText(JSON.stringify(payload, null, 2));\n } catch { /* clipboard unavailable */ }\n }\n\n /** Empty-state presentation for the event list — varies by capture state. */\n public get EmptyVariant(): 'empty' | 'warning' | 'no-results' {\n if (this.Stats.captured === 0) return 'empty';\n return this.Paused ? 'warning' : 'no-results';\n }\n public get EmptyIcon(): string {\n if (this.Stats.captured === 0) return 'fa-solid fa-radio';\n return this.Paused ? 'fa-solid fa-pause' : 'fa-solid fa-filter';\n }\n public get EmptyTitle(): string {\n if (this.Stats.captured === 0) return 'Listening for events…';\n return this.Paused ? 'Capture is paused' : 'No events match your filter';\n }\n public get EmptyMessage(): string {\n if (this.Stats.captured === 0) return 'Trigger an action — saves, navigation, AI events all show up here.';\n if (this.Paused) return `${this.Stats.captured} events fired since you paused. Click Resume to start collecting again.`;\n return `${this.Stats.kept} events in buffer · clear filters to see them.`;\n }\n\n public get FilteredEvents(): EventRow[] {\n let list = this.Events;\n if (this.TypeFilter) list = list.filter(e => e.type === this.TypeFilter);\n if (this.ComponentFilter) list = list.filter(e => e.componentName === this.ComponentFilter);\n if (this.CodeFilter) list = list.filter(e => (e.eventCode ?? '') === this.CodeFilter);\n\n const q = this.Filter.trim().toLowerCase();\n if (q) {\n list = list.filter(e =>\n e.type.toLowerCase().includes(q) ||\n e.componentName.toLowerCase().includes(q) ||\n e.summary.toLowerCase().includes(q) ||\n (e.eventCode && e.eventCode.toLowerCase().includes(q))\n );\n }\n\n // Sort (always returns a new array — preserves the natural seq order otherwise)\n const dir = this.SortDir === 'asc' ? 1 : -1;\n const sorted = [...list].sort((a, b) => {\n switch (this.SortField) {\n case 'time': return (a.seq - b.seq) * dir;\n case 'type': return a.type.localeCompare(b.type) * dir;\n case 'eventCode': return (a.eventCode ?? '').localeCompare(b.eventCode ?? '') * dir;\n case 'component': return a.componentName.localeCompare(b.componentName) * dir;\n default: return 0;\n }\n });\n return sorted;\n }\n\n public ClearFilters(): void {\n this.Filter = '';\n this.TypeFilter = '';\n this.ComponentFilter = '';\n this.CodeFilter = '';\n this.savePrefs();\n this.publishAgentContext();\n }\n\n public get HasActiveFilters(): boolean {\n return !!(this.Filter || this.TypeFilter || this.ComponentFilter || this.CodeFilter);\n }\n\n public get UptimeLabel(): string {\n const ms = Date.now() - this.StartedAt.getTime();\n const s = Math.floor(ms / 1000);\n const m = Math.floor(s / 60);\n const remainder = s % 60;\n return m > 0 ? `${m}m ${remainder}s` : `${s}s`;\n }\n\n public TrackBySeq = (_i: number, e: EventRow) => e.seq;\n\n // ---------- private ----------\n\n private subscribe(): void {\n try {\n // withReplay = true so we get historical events that were emitted\n // before this component mounted (within MJGlobal's replay buffer).\n this.sub = MJGlobal.Instance.GetEventListener(true).subscribe((evt: MJEvent) => {\n this.handleEvent(evt);\n });\n } catch {\n // Listener unavailable; silent (rare)\n }\n }\n\n private handleEvent(evt: MJEvent): void {\n this.Stats.captured++;\n this.rateBucket.push(Date.now());\n\n if (this.Paused) return;\n\n const type = String(evt.event ?? 'Unknown');\n if (!this.KnownTypes.includes(type)) {\n this.KnownTypes = [...this.KnownTypes, type].sort();\n }\n\n const componentName = (evt.component as { constructor?: { name?: string } } | null | undefined)?.constructor?.name ?? '(no component)';\n if (!this.KnownComponents.includes(componentName)) {\n this.KnownComponents = [...this.KnownComponents, componentName].sort();\n }\n const code = evt.eventCode;\n if (code && !this.KnownCodes.includes(code)) {\n this.KnownCodes = [...this.KnownCodes, code].sort();\n }\n\n const hasPayload = this.computeHasPayload(evt.args);\n\n const row: EventRow = {\n seq: ++this.seq,\n timestamp: new Date(),\n type,\n eventCode: code,\n componentName,\n summary: hasPayload ? this.summarizeArgs(evt.args) : '—',\n args: evt.args,\n expanded: false,\n hasPayload\n };\n\n this.Events = [row, ...this.Events];\n if (this.Events.length > this.MaxEvents) {\n this.Events = this.Events.slice(0, this.MaxEvents);\n }\n this.Stats.kept = this.Events.length;\n this.cdr.markForCheck();\n }\n\n private computeHasPayload(args: unknown): boolean {\n if (args === null || args === undefined) return false;\n if (typeof args === 'string') return args.length > 0;\n if (Array.isArray(args)) return args.length > 0;\n if (typeof args === 'object') return Object.keys(args as Record<string, unknown>).length > 0;\n return true; // numbers, booleans count as payload\n }\n\n private tickRate(): void {\n const cutoff = Date.now() - 1000;\n this.rateBucket = this.rateBucket.filter(t => t >= cutoff);\n this.Stats.perSecond = this.rateBucket.length;\n this.cdr.markForCheck();\n // Keep the agent's view of live metrics (event count / rate) current.\n this.publishAgentContext();\n }\n\n private summarizeArgs(args: unknown): string {\n if (args === null || args === undefined) return '—';\n if (typeof args === 'string') return args.length > 80 ? args.slice(0, 77) + '…' : args;\n if (typeof args === 'number' || typeof args === 'boolean') return String(args);\n if (Array.isArray(args)) return `[ ${args.length} item${args.length === 1 ? '' : 's'} ]`;\n if (typeof args === 'object') {\n const keys = Object.keys(args as Record<string, unknown>);\n if (keys.length === 0) return '{ }';\n return `{ ${keys.slice(0, 3).join(', ')}${keys.length > 3 ? ', …' : ''} }`;\n }\n return String(args);\n }\n\n // ========================================\n // AI AGENT CONTEXT & CLIENT TOOLS\n //\n // 🔒 SAFETY BOUNDARY — CLASSIFICATION: SAFE developer diagnostic.\n // The Event Monitor is a live tail of MJGlobal's event bus. The context and\n // tools below report/control only the monitor's own capture state — event\n // counts, live rate, pause flag, the user's filters and sort. No tool reads\n // or mutates application data; the surface is a read-only diagnostic with\n // capture controls scoped entirely to this inspector's in-memory ring buffer.\n // ========================================\n\n /** Publish the current Event Monitor capture state to the AI agent. */\n private publishAgentContext(): void {\n const filtered = this.FilteredEvents;\n const context = BuildEventMonitorAgentContext({\n EventCount: this.Stats.captured,\n BufferedCount: this.Stats.kept,\n EventsPerSecond: this.Stats.perSecond,\n Paused: this.Paused,\n TextFilter: this.Filter,\n TypeFilter: this.TypeFilter,\n ComponentFilter: this.ComponentFilter,\n CodeFilter: this.CodeFilter,\n SortField: this.SortField,\n SortDirection: this.SortDir,\n FilteredCount: filtered.length,\n KnownTypes: this.KnownTypes,\n KnownComponents: this.KnownComponents,\n KnownCodes: this.KnownCodes,\n // Secret-free summaries of the most-recent visible events. `summary` is\n // already a redacted payload-shape preview (keys/length, never values).\n RecentEvents: filtered.slice(0, 25).map(e => ({\n Type: e.type,\n Component: e.componentName,\n Summary: e.summary,\n })),\n });\n this.navigationService.SetAgentContext(this, context);\n }\n\n /**\n * Register the client tools the AI agent can invoke against the Event Monitor.\n * All operate on the inspector's own capture state — no application mutation.\n * Tools: PauseEventMonitor / ResumeEventMonitor, ClearEventLog,\n * FilterEventsByType, FilterEventsByComponent, ClearEventFilters,\n * SetEventMonitorSort.\n */\n private registerAgentClientTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'PauseEventMonitor',\n Description: 'Pause live event capture (events keep counting but are not added to the log).',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n if (!this.Paused) this.TogglePause();\n return { Success: true };\n },\n },\n {\n Name: 'ResumeEventMonitor',\n Description: 'Resume live event capture after it was paused.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n if (this.Paused) this.TogglePause();\n return { Success: true };\n },\n },\n {\n Name: 'ClearEventLog',\n Description: 'Clear all events currently held in the Event Monitor buffer.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.Clear();\n return { Success: true };\n },\n },\n {\n Name: 'FilterEventsByType',\n Description: 'Filter the event log to a single event type. Pass an empty string to clear the type filter.',\n ParameterSchema: { type: 'object', properties: { type: { type: 'string' } }, required: ['type'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByType(params),\n },\n {\n Name: 'FilterEventsByComponent',\n Description: 'Filter the event log to a single emitting component name. Pass an empty string to clear the component filter.',\n ParameterSchema: { type: 'object', properties: { component: { type: 'string' } }, required: ['component'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByComponent(params),\n },\n {\n Name: 'ClearEventFilters',\n Description: 'Clear all active Event Monitor filters (text, type, component, code) so every captured event is shown.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.ClearFilters();\n this.cdr.markForCheck();\n return { Success: true };\n },\n },\n {\n Name: 'SetEventMonitorSort',\n Description: 'Set the event log sort field (time | type | eventCode | component) and direction (asc | desc).',\n ParameterSchema: {\n type: 'object',\n properties: {\n field: { type: 'string', enum: ['time', 'type', 'eventCode', 'component'] },\n direction: { type: 'string', enum: ['asc', 'desc'] },\n },\n required: ['field', 'direction'],\n },\n Handler: async (params: Record<string, unknown>) => this.toolSetSort(params),\n },\n ]);\n }\n\n /** Apply (or clear, on empty string) the event-type filter. */\n private toolFilterByType(params: Record<string, unknown>): AgentToolResult {\n const validated = ValidateStringParam(params['type'], 'type');\n if (!validated.ok) {\n return validated.result;\n }\n this.TypeFilter = validated.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n\n /** Apply (or clear, on empty string) the component-name filter. */\n private toolFilterByComponent(params: Record<string, unknown>): AgentToolResult {\n const validated = ValidateStringParam(params['component'], 'component');\n if (!validated.ok) {\n return validated.result;\n }\n this.ComponentFilter = validated.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n\n /** Set the sort field + direction from validated enum params. */\n private toolSetSort(params: Record<string, unknown>): AgentToolResult {\n const field = ValidateEnumParam<SortField>(params['field'], ['time', 'type', 'eventCode', 'component'], 'field');\n if (!field.ok) {\n return field.result;\n }\n const dir = ValidateEnumParam<SortDir>(params['direction'], ['asc', 'desc'], 'direction');\n if (!dir.ok) {\n return dir.result;\n }\n this.SortField = field.value;\n this.SortDir = dir.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n}\n","<div class=\"mj-inspector mj-inspector--solo\">\n <mj-page-header-interior\n Role=\"region\"\n AriaLabel=\"Event monitor\"\n Title=\"Event Monitor\"\n Subtitle=\"Live tail of MJGlobal events with filter and pause\">\n <div actions>\n <button mjButton\n variant=\"secondary\"\n size=\"sm\"\n (click)=\"TogglePause()\"\n [title]=\"Paused ? 'Resume capture' : 'Pause capture'\">\n @if (Paused) {\n <i class=\"fa-solid fa-play\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Resume</span>\n } @else {\n <i class=\"fa-solid fa-pause\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Pause</span>\n }\n </button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Clear()\" title=\"Clear all captured events\">\n <i class=\"fa-solid fa-broom\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Clear</span>\n </button>\n </div>\n </mj-page-header-interior>\n\n <div class=\"em-stats\">\n <div class=\"em-stat\">\n <i class=\"em-pulse\" [class.em-pulse--paused]=\"Paused\"></i>\n <div>\n <div class=\"em-stat-value\">{{ Paused ? 'PAUSED' : 'LIVE' }}</div>\n <div class=\"em-stat-label\">{{ Paused ? 'Capture suspended' : 'Capturing events' }}</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.captured }}</div>\n <div class=\"em-stat-label\">Total captured</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.kept }} / {{ MaxEvents }}</div>\n <div class=\"em-stat-label\">In buffer</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.perSecond }}/s</div>\n <div class=\"em-stat-label\">Last second</div>\n </div>\n </div>\n <div class=\"em-stat em-stat--right\">\n <div>\n <div class=\"em-stat-value em-stat-value--small\">{{ UptimeLabel }}</div>\n <div class=\"em-stat-label\">Watching for</div>\n </div>\n </div>\n </div>\n\n <div class=\"em-toolbar\">\n <div class=\"em-search-wrap\">\n <i class=\"fa-solid fa-search em-search-icon\"></i>\n <input type=\"search\"\n class=\"em-search\"\n placeholder=\"Filter by type, component, payload…\"\n [(ngModel)]=\"Filter\"\n (ngModelChange)=\"PersistPrefs()\" />\n @if (Filter) {\n <button class=\"em-search-clear\" (click)=\"Filter = ''\" title=\"Clear\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Type</label>\n <select class=\"em-select\" [(ngModel)]=\"TypeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All types ({{ KnownTypes.length }})</option>\n @for (t of KnownTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Component</label>\n <select class=\"em-select\" [(ngModel)]=\"ComponentFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All components ({{ KnownComponents.length }})</option>\n @for (c of KnownComponents; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n\n @if (KnownCodes.length > 0) {\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Code</label>\n <select class=\"em-select\" [(ngModel)]=\"CodeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All codes ({{ KnownCodes.length }})</option>\n @for (c of KnownCodes; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n }\n\n @if (HasActiveFilters) {\n <button class=\"em-clear-filters\" type=\"button\" (click)=\"ClearFilters()\" title=\"Clear all filters\">\n <i class=\"fa-solid fa-xmark\"></i> Clear filters\n </button>\n }\n </div>\n\n <div class=\"em-list\">\n <div class=\"em-table-head\">\n <button type=\"button\"\n class=\"em-th em-th--time\"\n [class.em-th--sorted]=\"SortField === 'time'\"\n (click)=\"OnSortClick('time')\">\n Time\n @if (SortField === 'time') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--type\"\n [class.em-th--sorted]=\"SortField === 'type'\"\n (click)=\"OnSortClick('type')\">\n Type\n @if (SortField === 'type') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--code\"\n [class.em-th--sorted]=\"SortField === 'eventCode'\"\n (click)=\"OnSortClick('eventCode')\">\n Code\n @if (SortField === 'eventCode') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--component\"\n [class.em-th--sorted]=\"SortField === 'component'\"\n (click)=\"OnSortClick('component')\">\n Component\n @if (SortField === 'component') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <span class=\"em-th em-th--summary\">Summary</span>\n <span class=\"em-th em-th--actions\"></span>\n </div>\n\n @if (FilteredEvents.length === 0) {\n <mj-empty-state [Variant]=\"EmptyVariant\" [Icon]=\"EmptyIcon\"\n [Title]=\"EmptyTitle\" [Message]=\"EmptyMessage\" />\n } @else {\n @for (evt of FilteredEvents; track TrackBySeq($index, evt)) {\n <div class=\"em-row\" [class.em-row--expanded]=\"evt.expanded\">\n <div class=\"em-row-head\" (click)=\"ToggleRow(evt)\">\n <i class=\"em-row-chev fa-solid fa-chevron-right\"\n [class.em-row-chev--down]=\"evt.expanded\"></i>\n <span class=\"em-row-time\">{{ evt.timestamp | date:'HH:mm:ss.SSS' }}</span>\n <span class=\"em-row-type\" [attr.data-type]=\"evt.type\">{{ evt.type }}</span>\n <span class=\"em-row-code\">{{ evt.eventCode || '—' }}</span>\n <span class=\"em-row-component\" [title]=\"evt.componentName\">{{ evt.componentName }}</span>\n <span class=\"em-row-summary\" [class.em-row-summary--empty]=\"!evt.hasPayload\">{{ evt.summary }}</span>\n <button class=\"em-row-copy\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); OnCopyRow(evt)\"\n title=\"Copy as JSON\">\n <i class=\"fa-solid fa-clipboard\"></i>\n </button>\n </div>\n @if (evt.expanded) {\n @if (evt.hasPayload) {\n <pre class=\"em-row-payload\"><code>{{ evt.args | json }}</code></pre>\n } @else {\n <div class=\"em-row-no-payload\">\n <i class=\"fa-regular fa-circle\"></i>\n <span>This event has no payload.</span>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n</div>\n"]}
|
|
1
|
+
{"version":3,"file":"event-monitor.component.js","sourceRoot":"","sources":["../../src/DevTools/event-monitor.component.ts","../../src/DevTools/event-monitor.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, AfterViewInit, ChangeDetectorRef } from '@angular/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RegisterClass, MJGlobal, MJEvent } from '@memberjunction/global';\nimport { Subscription } from 'rxjs';\nimport { DevToolsPrefs } from './dev-tools-prefs';\nimport { BuildEventMonitorAgentContext } from './dev-tools-agent-context';\nimport { AgentToolResult, ValidateStringParam, ValidateEnumParam } from '../shared/agent-tool-validation';\n\ninterface EventMonitorPrefs {\n filter?: string;\n typeFilter?: string;\n componentFilter?: string;\n codeFilter?: string;\n sortField?: SortField;\n sortDir?: SortDir;\n}\n\ninterface EventRow {\n seq: number;\n timestamp: Date;\n type: string;\n eventCode?: string;\n componentName: string;\n summary: string;\n args: unknown;\n expanded: boolean;\n /** True when args is null/undefined/empty — used to render a clean empty-state on expand. */\n hasPayload: boolean;\n}\n\ntype SortField = 'time' | 'type' | 'eventCode' | 'component';\ntype SortDir = 'asc' | 'desc';\n\n/**\n * Event Monitor — live tail of `MJGlobal.Instance.GetEventListener()`.\n * Captures events into a ring buffer (configurable cap) with filtering,\n * pause/resume, click-to-expand-payload, copy.\n */\n@RegisterClass(BaseResourceComponent, 'EventMonitorInspector')\n@Component({\n standalone: false,\n selector: 'mj-event-monitor',\n templateUrl: './event-monitor.component.html',\n styleUrls: ['./inspector-shared.css', './event-monitor.component.css']\n})\nexport class EventMonitorComponent extends BaseResourceComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly MaxEvents = 500;\n public Events: EventRow[] = [];\n public Paused = false;\n public AutoScroll = true;\n public Filter = '';\n public TypeFilter = ''; // '' = all\n public ComponentFilter = ''; // '' = all\n public CodeFilter = ''; // '' = all\n public KnownTypes: string[] = [];\n public KnownComponents: string[] = [];\n public KnownCodes: string[] = [];\n public Stats = { captured: 0, perSecond: 0, kept: 0 };\n public StartedAt = new Date();\n public SortField: SortField = 'time';\n public SortDir: SortDir = 'desc';\n\n private sub?: Subscription;\n private seq = 0;\n private rateBucket: number[] = []; // event timestamps within last 1s\n private rateTimer?: ReturnType<typeof setInterval>;\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n public override ngOnInit(): void {\n super.ngOnInit();\n this.loadPrefs();\n this.subscribe();\n this.rateTimer = setInterval(() => this.tickRate(), 500);\n this.NotifyLoadComplete();\n }\n\n public ngAfterViewInit(): void {\n // Publish the initial agent context and register the client tools the AI\n // agent can invoke against this surface. Ongoing re-emit happens in the\n // user-action methods (pause/clear/filter/sort) and in tickRate (live metrics).\n this.publishAgentContext();\n this.registerAgentClientTools();\n }\n\n public override ngOnDestroy(): void {\n this.savePrefs();\n this.sub?.unsubscribe();\n if (this.rateTimer) clearInterval(this.rateTimer);\n super.ngOnDestroy();\n }\n\n private loadPrefs(): void {\n const p = DevToolsPrefs.Get<EventMonitorPrefs>('eventMonitor');\n if (!p) return;\n this.Filter = p.filter ?? '';\n this.TypeFilter = p.typeFilter ?? '';\n this.ComponentFilter = p.componentFilter ?? '';\n this.CodeFilter = p.codeFilter ?? '';\n this.SortField = p.sortField ?? 'time';\n this.SortDir = p.sortDir ?? 'desc';\n }\n\n private savePrefs(): void {\n DevToolsPrefs.Save<EventMonitorPrefs>('eventMonitor', {\n filter: this.Filter,\n typeFilter: this.TypeFilter,\n componentFilter: this.ComponentFilter,\n codeFilter: this.CodeFilter,\n sortField: this.SortField,\n sortDir: this.SortDir\n });\n }\n\n public override async GetResourceDisplayName(): Promise<string> { return 'Event Monitor'; }\n public override async GetResourceIconClass(): Promise<string> { return 'fa-solid fa-bolt'; }\n\n public TogglePause(): void {\n this.Paused = !this.Paused;\n this.cdr.markForCheck();\n this.publishAgentContext();\n }\n\n public ToggleAutoScroll(): void {\n this.AutoScroll = !this.AutoScroll;\n }\n\n public Clear(): void {\n this.Events = [];\n this.seq = 0;\n this.Stats.kept = 0;\n this.cdr.markForCheck();\n this.publishAgentContext();\n }\n\n public ToggleRow(row: EventRow): void {\n row.expanded = !row.expanded;\n }\n\n public OnTypeFilterClick(type: string): void {\n this.TypeFilter = this.TypeFilter === type ? '' : type;\n this.publishAgentContext();\n }\n\n public OnSortClick(field: SortField): void {\n if (this.SortField === field) {\n this.SortDir = this.SortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this.SortField = field;\n this.SortDir = field === 'time' ? 'desc' : 'asc';\n }\n this.savePrefs();\n this.publishAgentContext();\n }\n\n /** Public so the template can call on every ngModelChange (filters, selects). */\n public PersistPrefs(): void {\n this.savePrefs();\n this.publishAgentContext();\n }\n\n public async OnCopyRow(row: EventRow): Promise<void> {\n const payload = {\n timestamp: row.timestamp.toISOString(),\n type: row.type,\n eventCode: row.eventCode,\n component: row.componentName,\n args: row.args\n };\n try {\n await navigator.clipboard.writeText(JSON.stringify(payload, null, 2));\n } catch { /* clipboard unavailable */ }\n }\n\n /** Empty-state presentation for the event list — varies by capture state. */\n public get EmptyVariant(): 'empty' | 'warning' | 'no-results' {\n if (this.Stats.captured === 0) return 'empty';\n return this.Paused ? 'warning' : 'no-results';\n }\n public get EmptyIcon(): string {\n if (this.Stats.captured === 0) return 'fa-solid fa-radio';\n return this.Paused ? 'fa-solid fa-pause' : 'fa-solid fa-filter';\n }\n public get EmptyTitle(): string {\n if (this.Stats.captured === 0) return 'Listening for events…';\n return this.Paused ? 'Capture is paused' : 'No events match your filter';\n }\n public get EmptyMessage(): string {\n if (this.Stats.captured === 0) return 'Trigger an action — saves, navigation, AI events all show up here.';\n if (this.Paused) return `${this.Stats.captured} events fired since you paused. Click Resume to start collecting again.`;\n return `${this.Stats.kept} events in buffer · clear filters to see them.`;\n }\n\n public get FilteredEvents(): EventRow[] {\n let list = this.Events;\n if (this.TypeFilter) list = list.filter(e => e.type === this.TypeFilter);\n if (this.ComponentFilter) list = list.filter(e => e.componentName === this.ComponentFilter);\n if (this.CodeFilter) list = list.filter(e => (e.eventCode ?? '') === this.CodeFilter);\n\n const q = this.Filter.trim().toLowerCase();\n if (q) {\n list = list.filter(e =>\n e.type.toLowerCase().includes(q) ||\n e.componentName.toLowerCase().includes(q) ||\n e.summary.toLowerCase().includes(q) ||\n (e.eventCode && e.eventCode.toLowerCase().includes(q))\n );\n }\n\n // Sort (always returns a new array — preserves the natural seq order otherwise)\n const dir = this.SortDir === 'asc' ? 1 : -1;\n const sorted = [...list].sort((a, b) => {\n switch (this.SortField) {\n case 'time': return (a.seq - b.seq) * dir;\n case 'type': return a.type.localeCompare(b.type) * dir;\n case 'eventCode': return (a.eventCode ?? '').localeCompare(b.eventCode ?? '') * dir;\n case 'component': return a.componentName.localeCompare(b.componentName) * dir;\n default: return 0;\n }\n });\n return sorted;\n }\n\n public ClearFilters(): void {\n this.Filter = '';\n this.TypeFilter = '';\n this.ComponentFilter = '';\n this.CodeFilter = '';\n this.savePrefs();\n this.publishAgentContext();\n }\n\n public get HasActiveFilters(): boolean {\n return !!(this.Filter || this.TypeFilter || this.ComponentFilter || this.CodeFilter);\n }\n\n public get UptimeLabel(): string {\n const ms = Date.now() - this.StartedAt.getTime();\n const s = Math.floor(ms / 1000);\n const m = Math.floor(s / 60);\n const remainder = s % 60;\n return m > 0 ? `${m}m ${remainder}s` : `${s}s`;\n }\n\n public TrackBySeq = (_i: number, e: EventRow) => e.seq;\n\n // ---------- private ----------\n\n private subscribe(): void {\n try {\n // withReplay = true so we get historical events that were emitted\n // before this component mounted (within MJGlobal's replay buffer).\n this.sub = MJGlobal.Instance.GetEventListener(true).subscribe((evt: MJEvent) => {\n this.handleEvent(evt);\n });\n } catch {\n // Listener unavailable; silent (rare)\n }\n }\n\n private handleEvent(evt: MJEvent): void {\n this.Stats.captured++;\n this.rateBucket.push(Date.now());\n\n if (this.Paused) return;\n\n const type = String(evt.event ?? 'Unknown');\n if (!this.KnownTypes.includes(type)) {\n this.KnownTypes = [...this.KnownTypes, type].sort();\n }\n\n const componentName = (evt.component as { constructor?: { name?: string } } | null | undefined)?.constructor?.name ?? '(no component)';\n if (!this.KnownComponents.includes(componentName)) {\n this.KnownComponents = [...this.KnownComponents, componentName].sort();\n }\n const code = evt.eventCode;\n if (code && !this.KnownCodes.includes(code)) {\n this.KnownCodes = [...this.KnownCodes, code].sort();\n }\n\n const hasPayload = this.computeHasPayload(evt.args);\n\n const row: EventRow = {\n seq: ++this.seq,\n timestamp: new Date(),\n type,\n eventCode: code,\n componentName,\n summary: hasPayload ? this.summarizeArgs(evt.args) : '—',\n args: evt.args,\n expanded: false,\n hasPayload\n };\n\n this.Events = [row, ...this.Events];\n if (this.Events.length > this.MaxEvents) {\n this.Events = this.Events.slice(0, this.MaxEvents);\n }\n this.Stats.kept = this.Events.length;\n this.cdr.markForCheck();\n }\n\n private computeHasPayload(args: unknown): boolean {\n if (args === null || args === undefined) return false;\n if (typeof args === 'string') return args.length > 0;\n if (Array.isArray(args)) return args.length > 0;\n if (typeof args === 'object') return Object.keys(args as Record<string, unknown>).length > 0;\n return true; // numbers, booleans count as payload\n }\n\n private tickRate(): void {\n const cutoff = Date.now() - 1000;\n this.rateBucket = this.rateBucket.filter(t => t >= cutoff);\n this.Stats.perSecond = this.rateBucket.length;\n this.cdr.markForCheck();\n // Keep the agent's view of live metrics (event count / rate) current.\n this.publishAgentContext();\n }\n\n private summarizeArgs(args: unknown): string {\n if (args === null || args === undefined) return '—';\n if (typeof args === 'string') return args.length > 80 ? args.slice(0, 77) + '…' : args;\n if (typeof args === 'number' || typeof args === 'boolean') return String(args);\n if (Array.isArray(args)) return `[ ${args.length} item${args.length === 1 ? '' : 's'} ]`;\n if (typeof args === 'object') {\n const keys = Object.keys(args as Record<string, unknown>);\n if (keys.length === 0) return '{ }';\n return `{ ${keys.slice(0, 3).join(', ')}${keys.length > 3 ? ', …' : ''} }`;\n }\n return String(args);\n }\n\n // ========================================\n // AI AGENT CONTEXT & CLIENT TOOLS\n //\n // 🔒 SAFETY BOUNDARY — CLASSIFICATION: SAFE developer diagnostic.\n // The Event Monitor is a live tail of MJGlobal's event bus. The context and\n // tools below report/control only the monitor's own capture state — event\n // counts, live rate, pause flag, the user's filters and sort. No tool reads\n // or mutates application data; the surface is a read-only diagnostic with\n // capture controls scoped entirely to this inspector's in-memory ring buffer.\n // ========================================\n\n /** Publish the current Event Monitor capture state to the AI agent. */\n private publishAgentContext(): void {\n const filtered = this.FilteredEvents;\n const context = BuildEventMonitorAgentContext({\n EventCount: this.Stats.captured,\n BufferedCount: this.Stats.kept,\n EventsPerSecond: this.Stats.perSecond,\n Paused: this.Paused,\n TextFilter: this.Filter,\n TypeFilter: this.TypeFilter,\n ComponentFilter: this.ComponentFilter,\n CodeFilter: this.CodeFilter,\n SortField: this.SortField,\n SortDirection: this.SortDir,\n FilteredCount: filtered.length,\n KnownTypes: this.KnownTypes,\n KnownComponents: this.KnownComponents,\n KnownCodes: this.KnownCodes,\n // Secret-free summaries of the most-recent visible events. `summary` is\n // already a redacted payload-shape preview (keys/length, never values).\n RecentEvents: filtered.slice(0, 25).map(e => ({\n Type: e.type,\n Component: e.componentName,\n Summary: e.summary,\n })),\n });\n this.navigationService.SetAgentContext(this, context);\n }\n\n /**\n * Register the client tools the AI agent can invoke against the Event Monitor.\n * All operate on the inspector's own capture state — no application mutation.\n * Tools: PauseEventMonitor / ResumeEventMonitor, ClearEventLog,\n * FilterEventsByType, FilterEventsByComponent, ClearEventFilters,\n * SetEventMonitorSort.\n */\n private registerAgentClientTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'PauseEventMonitor',\n Description: 'Pause live event capture (events keep counting but are not added to the log).',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n if (!this.Paused) this.TogglePause();\n return { Success: true };\n },\n },\n {\n Name: 'ResumeEventMonitor',\n Description: 'Resume live event capture after it was paused.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n if (this.Paused) this.TogglePause();\n return { Success: true };\n },\n },\n {\n Name: 'ClearEventLog',\n Description: 'Clear all events currently held in the Event Monitor buffer.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.Clear();\n return { Success: true };\n },\n },\n {\n Name: 'FilterEventsByType',\n Description: 'Filter the event log to a single event type. Pass an empty string to clear the type filter.',\n ParameterSchema: { type: 'object', properties: { type: { type: 'string' } }, required: ['type'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByType(params),\n },\n {\n Name: 'FilterEventsByComponent',\n Description: 'Filter the event log to a single emitting component name. Pass an empty string to clear the component filter.',\n ParameterSchema: { type: 'object', properties: { component: { type: 'string' } }, required: ['component'] },\n Handler: async (params: Record<string, unknown>) => this.toolFilterByComponent(params),\n },\n {\n Name: 'ClearEventFilters',\n Description: 'Clear all active Event Monitor filters (text, type, component, code) so every captured event is shown.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.ClearFilters();\n this.cdr.markForCheck();\n return { Success: true };\n },\n },\n {\n Name: 'SetEventMonitorSort',\n Description: 'Set the event log sort field (time | type | eventCode | component) and direction (asc | desc).',\n ParameterSchema: {\n type: 'object',\n properties: {\n field: { type: 'string', enum: ['time', 'type', 'eventCode', 'component'] },\n direction: { type: 'string', enum: ['asc', 'desc'] },\n },\n required: ['field', 'direction'],\n },\n Handler: async (params: Record<string, unknown>) => this.toolSetSort(params),\n },\n ]);\n }\n\n /** Apply (or clear, on empty string) the event-type filter. */\n private toolFilterByType(params: Record<string, unknown>): AgentToolResult {\n const validated = ValidateStringParam(params['type'], 'type');\n if (!validated.ok) {\n return validated.result;\n }\n this.TypeFilter = validated.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n\n /** Apply (or clear, on empty string) the component-name filter. */\n private toolFilterByComponent(params: Record<string, unknown>): AgentToolResult {\n const validated = ValidateStringParam(params['component'], 'component');\n if (!validated.ok) {\n return validated.result;\n }\n this.ComponentFilter = validated.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n\n /** Set the sort field + direction from validated enum params. */\n private toolSetSort(params: Record<string, unknown>): AgentToolResult {\n const field = ValidateEnumParam<SortField>(params['field'], ['time', 'type', 'eventCode', 'component'], 'field');\n if (!field.ok) {\n return field.result;\n }\n const dir = ValidateEnumParam<SortDir>(params['direction'], ['asc', 'desc'], 'direction');\n if (!dir.ok) {\n return dir.result;\n }\n this.SortField = field.value;\n this.SortDir = dir.value;\n this.savePrefs();\n this.publishAgentContext();\n this.cdr.markForCheck();\n return { Success: true };\n }\n}\n","<div class=\"mj-inspector mj-inspector--solo\">\n <mj-page-header-interior\n Role=\"region\"\n AriaLabel=\"Event monitor\"\n Title=\"Event Monitor\"\n Subtitle=\"Live tail of MJGlobal events with filter and pause\">\n <div actions>\n <button mjButton\n variant=\"secondary\"\n size=\"sm\"\n (click)=\"TogglePause()\"\n [title]=\"Paused ? 'Resume capture' : 'Pause capture'\">\n @if (Paused) {\n <i class=\"fa-solid fa-play\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Resume</span>\n } @else {\n <i class=\"fa-solid fa-pause\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Pause</span>\n }\n </button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"Clear()\" title=\"Clear all captured events\">\n <i class=\"fa-solid fa-broom\" aria-hidden=\"true\"></i> <span class=\"mj-action-label\">Clear</span>\n </button>\n </div>\n </mj-page-header-interior>\n\n <div class=\"em-stats\">\n <div class=\"em-stat\">\n <i class=\"em-pulse\" [class.em-pulse--paused]=\"Paused\"></i>\n <div>\n <div class=\"em-stat-value\">{{ Paused ? 'PAUSED' : 'LIVE' }}</div>\n <div class=\"em-stat-label\">{{ Paused ? 'Capture suspended' : 'Capturing events' }}</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.captured }}</div>\n <div class=\"em-stat-label\">Total captured</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.kept }} / {{ MaxEvents }}</div>\n <div class=\"em-stat-label\">In buffer</div>\n </div>\n </div>\n <div class=\"em-stat\">\n <div>\n <div class=\"em-stat-value\">{{ Stats.perSecond }}/s</div>\n <div class=\"em-stat-label\">Last second</div>\n </div>\n </div>\n <div class=\"em-stat em-stat--right\">\n <div>\n <div class=\"em-stat-value em-stat-value--small\">{{ UptimeLabel }}</div>\n <div class=\"em-stat-label\">Watching for</div>\n </div>\n </div>\n </div>\n\n <div class=\"em-toolbar\">\n <div class=\"em-search-wrap\">\n <i class=\"fa-solid fa-search em-search-icon\"></i>\n <input type=\"search\"\n class=\"em-search\"\n placeholder=\"Filter by type, component, payload…\"\n [(ngModel)]=\"Filter\"\n (ngModelChange)=\"PersistPrefs()\" />\n @if (Filter) {\n <button class=\"em-search-clear\" (click)=\"Filter = ''\" title=\"Clear\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Type</label>\n <select class=\"em-select\" [(ngModel)]=\"TypeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All types ({{ KnownTypes.length }})</option>\n @for (t of KnownTypes; track t) {\n <option [value]=\"t\">{{ t }}</option>\n }\n </select>\n </div>\n\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Component</label>\n <select class=\"em-select\" [(ngModel)]=\"ComponentFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All components ({{ KnownComponents.length }})</option>\n @for (c of KnownComponents; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n\n @if (KnownCodes.length > 0) {\n <div class=\"em-select-wrap\">\n <label class=\"em-select-label\">Code</label>\n <select class=\"em-select\" [(ngModel)]=\"CodeFilter\" (ngModelChange)=\"PersistPrefs()\">\n <option value=\"\">All codes ({{ KnownCodes.length }})</option>\n @for (c of KnownCodes; track c) {\n <option [value]=\"c\">{{ c }}</option>\n }\n </select>\n </div>\n }\n\n @if (HasActiveFilters) {\n <button class=\"em-clear-filters\" type=\"button\" (click)=\"ClearFilters()\" title=\"Clear all filters\">\n <i class=\"fa-solid fa-xmark\"></i> Clear filters\n </button>\n }\n </div>\n\n <div class=\"em-list\">\n <div class=\"em-table-head\">\n <button type=\"button\"\n class=\"em-th em-th--time\"\n [class.em-th--sorted]=\"SortField === 'time'\"\n (click)=\"OnSortClick('time')\">\n Time\n @if (SortField === 'time') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--type\"\n [class.em-th--sorted]=\"SortField === 'type'\"\n (click)=\"OnSortClick('type')\">\n Type\n @if (SortField === 'type') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--code\"\n [class.em-th--sorted]=\"SortField === 'eventCode'\"\n (click)=\"OnSortClick('eventCode')\">\n Code\n @if (SortField === 'eventCode') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <button type=\"button\"\n class=\"em-th em-th--component\"\n [class.em-th--sorted]=\"SortField === 'component'\"\n (click)=\"OnSortClick('component')\">\n Component\n @if (SortField === 'component') {\n <i class=\"fa-solid\" [class.fa-arrow-down]=\"SortDir === 'desc'\" [class.fa-arrow-up]=\"SortDir === 'asc'\"></i>\n }\n </button>\n <span class=\"em-th em-th--summary\">Summary</span>\n <span class=\"em-th em-th--actions\"></span>\n </div>\n\n @if (FilteredEvents.length === 0) {\n <mj-empty-state [Variant]=\"EmptyVariant\" [Icon]=\"EmptyIcon\"\n [Title]=\"EmptyTitle\" [Message]=\"EmptyMessage\" />\n } @else {\n @for (evt of FilteredEvents; track TrackBySeq($index, evt)) {\n <div class=\"em-row\" [class.em-row--expanded]=\"evt.expanded\">\n <div class=\"em-row-head\" (click)=\"ToggleRow(evt)\">\n <i class=\"em-row-chev fa-solid fa-chevron-right\"\n [class.em-row-chev--down]=\"evt.expanded\"></i>\n <span class=\"em-row-time\">{{ evt.timestamp | date:'HH:mm:ss.SSS' }}</span>\n <span class=\"em-row-type\" [attr.data-type]=\"evt.type\">{{ evt.type }}</span>\n <span class=\"em-row-code\">{{ evt.eventCode || '—' }}</span>\n <span class=\"em-row-component\" [title]=\"evt.componentName\">{{ evt.componentName }}</span>\n <span class=\"em-row-summary\" [class.em-row-summary--empty]=\"!evt.hasPayload\">{{ evt.summary }}</span>\n <button class=\"em-row-copy\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); OnCopyRow(evt)\"\n title=\"Copy as JSON\">\n <i class=\"fa-solid fa-clipboard\"></i>\n </button>\n </div>\n @if (evt.expanded) {\n @if (evt.hasPayload) {\n <pre class=\"em-row-payload\"><code>{{ evt.args | json }}</code></pre>\n } @else {\n <div class=\"em-row-no-payload\">\n <i class=\"fa-regular fa-circle\"></i>\n <span>This event has no payload.</span>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n</div>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-console.component.d.ts","sourceRoot":"","sources":["../../src/DevTools/graphql-console.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"graphql-console.component.d.ts","sourceRoot":"","sources":["../../src/DevTools/graphql-console.component.ts"],"names":[],"mappings":"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"}
|