@kgdiff/viewer 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +52 -2
- package/dist/compute-loader.d.ts +13 -0
- package/dist/compute-loader.d.ts.map +1 -0
- package/dist/compute-loader.js +46 -0
- package/dist/compute-loader.js.map +1 -0
- package/dist/compute.d.ts +8 -0
- package/dist/compute.d.ts.map +1 -0
- package/dist/compute.js +8 -0
- package/dist/compute.js.map +1 -0
- package/dist/controller.d.ts +199 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +1254 -0
- package/dist/controller.js.map +1 -0
- package/dist/dom.d.ts +32 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +105 -0
- package/dist/dom.js.map +1 -0
- package/dist/element.d.ts +43 -0
- package/dist/element.d.ts.map +1 -0
- package/dist/element.js +656 -0
- package/dist/element.js.map +1 -0
- package/dist/framing.d.ts +45 -0
- package/dist/framing.d.ts.map +1 -0
- package/dist/framing.js +107 -0
- package/dist/framing.js.map +1 -0
- package/dist/hash-sync.d.ts +18 -0
- package/dist/hash-sync.d.ts.map +1 -0
- package/dist/hash-sync.js +45 -0
- package/dist/hash-sync.js.map +1 -0
- package/dist/i18n.d.ts +222 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +434 -0
- package/dist/i18n.js.map +1 -0
- package/dist/icons.d.ts +37 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/icons.js +36 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +151 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/keyboard.d.ts +64 -0
- package/dist/keyboard.d.ts.map +1 -0
- package/dist/keyboard.js +95 -0
- package/dist/keyboard.js.map +1 -0
- package/dist/list-model.d.ts +35 -0
- package/dist/list-model.d.ts.map +1 -0
- package/dist/list-model.js +70 -0
- package/dist/list-model.js.map +1 -0
- package/dist/payload.d.ts +10 -0
- package/dist/payload.d.ts.map +1 -0
- package/dist/payload.js +138 -0
- package/dist/payload.js.map +1 -0
- package/dist/pipeline.d.ts +31 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +122 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/prefs.d.ts +18 -0
- package/dist/prefs.d.ts.map +1 -0
- package/dist/prefs.js +38 -0
- package/dist/prefs.js.map +1 -0
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +3 -0
- package/dist/registry.js.map +1 -0
- package/dist/renderer-port.d.ts +14 -0
- package/dist/renderer-port.d.ts.map +1 -0
- package/dist/renderer-port.js +16 -0
- package/dist/renderer-port.js.map +1 -0
- package/dist/replay.d.ts +55 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +147 -0
- package/dist/replay.js.map +1 -0
- package/dist/review-store.d.ts +30 -0
- package/dist/review-store.d.ts.map +1 -0
- package/dist/review-store.js +120 -0
- package/dist/review-store.js.map +1 -0
- package/dist/search.d.ts +25 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +90 -0
- package/dist/search.js.map +1 -0
- package/dist/standalone/kgdiff-viewer-compute.js +1 -0
- package/dist/standalone/kgdiff-viewer.js +5 -0
- package/dist/standalone-compute.d.ts +2 -0
- package/dist/standalone-compute.d.ts.map +1 -0
- package/dist/standalone-compute.js +8 -0
- package/dist/standalone-compute.js.map +1 -0
- package/dist/standalone.d.ts +2 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +18 -0
- package/dist/standalone.js.map +1 -0
- package/dist/styles.d.ts +11 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +622 -0
- package/dist/styles.js.map +1 -0
- package/dist/text-diff.d.ts +44 -0
- package/dist/text-diff.d.ts.map +1 -0
- package/dist/text-diff.js +261 -0
- package/dist/text-diff.js.map +1 -0
- package/dist/ui/context.d.ts +32 -0
- package/dist/ui/context.d.ts.map +1 -0
- package/dist/ui/context.js +49 -0
- package/dist/ui/context.js.map +1 -0
- package/dist/ui/detail.d.ts +9 -0
- package/dist/ui/detail.d.ts.map +1 -0
- package/dist/ui/detail.js +609 -0
- package/dist/ui/detail.js.map +1 -0
- package/dist/ui/header.d.ts +14 -0
- package/dist/ui/header.d.ts.map +1 -0
- package/dist/ui/header.js +195 -0
- package/dist/ui/header.js.map +1 -0
- package/dist/ui/popovers.d.ts +20 -0
- package/dist/ui/popovers.d.ts.map +1 -0
- package/dist/ui/popovers.js +180 -0
- package/dist/ui/popovers.js.map +1 -0
- package/dist/ui/sidebar.d.ts +25 -0
- package/dist/ui/sidebar.d.ts.map +1 -0
- package/dist/ui/sidebar.js +609 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/stage.d.ts +18 -0
- package/dist/ui/stage.d.ts.map +1 -0
- package/dist/ui/stage.js +664 -0
- package/dist/ui/stage.js.map +1 -0
- package/package.json +58 -3
- package/src/compute-loader.ts +58 -0
- package/src/compute.ts +7 -0
- package/src/controller.ts +1393 -0
- package/src/dom.ts +131 -0
- package/src/element.ts +697 -0
- package/src/framing.ts +150 -0
- package/src/hash-sync.ts +54 -0
- package/src/i18n.ts +467 -0
- package/src/icons.ts +48 -0
- package/src/index.ts +171 -0
- package/src/keyboard.ts +128 -0
- package/src/list-model.ts +86 -0
- package/src/payload.ts +165 -0
- package/src/pipeline.ts +179 -0
- package/src/prefs.ts +55 -0
- package/src/registry.ts +2 -0
- package/src/renderer-port.ts +31 -0
- package/src/replay.ts +163 -0
- package/src/review-store.ts +125 -0
- package/src/search.ts +113 -0
- package/src/standalone-compute.ts +8 -0
- package/src/standalone.ts +18 -0
- package/src/styles.ts +633 -0
- package/src/text-diff.ts +263 -0
- package/src/ui/context.ts +70 -0
- package/src/ui/detail.ts +929 -0
- package/src/ui/header.ts +278 -0
- package/src/ui/popovers.ts +251 -0
- package/src/ui/sidebar.ts +752 -0
- package/src/ui/stage.ts +853 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAc,WAAW,EAAe,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAmC,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAShE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,6EAA6E;AAC7E,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AACzF,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAE5E,wEAAwE;AACxE,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IAC7C,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,MAAM;IACN,KAAK;IACL,QAAQ;IACR,UAAU;IACV,GAAG;IACH,UAAU;CACX,CAAC,CAAC;AAEH,kGAAkG;AAClG,MAAM,SAAS,GAAmB,EAAE,CAAC;AAErC,SAAS,UAAU,CAAI,KAAQ;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;QAC7E,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;YAChD,qBAAqB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,MAAM,KAAK,kBAAkB;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB;IACP,UAAU,CAAmB;IAC7B,OAAO,CAAa;IAC7B,GAAG,GASQ,IAAI,CAAC;IAChB,eAAe,GAAyB,IAAI,CAAC;IAC7C,aAAa,GAAG,KAAK,CAAC;IACtB,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAG,KAAK,CAAC;IACR,QAAQ,GAAmB,EAAE,CAAC;IACvC,SAAS,GAAG,EAAE,CAAC;IACf,SAAS,GAAG,KAAK,CAAC;IAElB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAmB;YAC3B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;YACvD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACnC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC3D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;YACvD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SACzC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE;YAC3C,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChF,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CACnB,OAAO,qBAAqB,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;gBAClB,IAAI,OAAO,oBAAoB,KAAK,UAAU;oBAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE,cAAc,EAAE;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,6EAA6E;IAE7E,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,qFAAqF;YACrF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAI,IAA2C,CAAC,IAAI,CAAC,CAAC;oBACjE,OAAQ,IAA2C,CAAC,IAAI,CAAC,CAAC;oBACzD,IAA2C,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClE,kFAAkF;QAClF,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,MAAM,WAAW,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,CAAC,CAAe,EAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/E,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACzD,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CACV,IAAI,GAAG,CAAQ;YACb,QAAQ;YACR,MAAM;YACN,MAAM;YACN,OAAO;YACP,QAAQ;YACR,SAAS;YACT,QAAQ;YACR,WAAW;YACX,OAAO;YACP,OAAO;YACP,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAwB,CAAC,IAAY,EAAE,IAAmB,EAAE,KAAoB;QAC9E,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,SAAS,CAAC;YACf,KAAK,QAAQ;gBACX,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,KAAK,KAAK,IAAI;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CACd,IAA6C,EAC7C,GAAY,EACZ,OAAgB;QAEhB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IAAI,KAAoB,CAAC;QACzB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;gBAC1B,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM;YACR,CAAC;YACD,KAAK,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;gBAClC,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM;YACR,CAAC;YACD,KAAK,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;gBAC7B,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;gBACjC,KAAK,GAAG,CAAC,CAAC;gBACV,MAAM;YACR,CAAC;YACD;gBACE,OAAO;QACX,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;YACvC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,6EAA6E;IAE7E,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,KAAiB;QACxB,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,KAAsB;QAC9B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,KAAkB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,KAA2B;QACrC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAClD,IAAI,OAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAc,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC9C,kDAAkD;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAE7E,IAAI,CAAC,OAAoB;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,EAAiB;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACtF,8DAA8D;QAC9D,OAAO,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,QAAiB;QAC3C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,oEAAoE;IACpE,SAAS,CAAC,KAAY;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,6EAA6E;IAE7E,KAAK,CAAC,IAAY,EAAE,MAAe;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAoB;QACzC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI;gBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;;gBAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,+EAA+E;QAC/E,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;IACnD,CAAC;IAED,aAAa;QACX,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM;QACJ,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,GAAG,GAAc;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5C,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;gBAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,CAAC;YACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAClD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY;YACpC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;YACrC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;SACvC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,CAAC,CACZ,KAAK,EACL,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,MAAM,CAAC,EAAE,EACT,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,EACjD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpE,oCAAoC;QACpC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;YACvB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,6FAA6F;IAC7F,OAAO,CAAC,MAA0B;QAChC,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1B,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,aAAa,CAAC,MAA0B;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CACX,OAAO,EACP,CAAC,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CACvF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7D,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC;QACtC,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;YAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1D,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAChF,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAc;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,IAAI,IAAI;YAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;;YACxC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,WAAW;QACT,MAAM,IAAI,GAAG,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,KAAK,EAAE,CAAC;QACR,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,CAAC,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,OAAO,cAAc,KAAK,UAAU;YAAE,OAAO;QACjD,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,aAAa,CAAC;YACnD,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC;YACnE,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;gBACxB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC;YACD,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,OAAO;gBAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,CAAgB;QACzB,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO;QAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,uFAAuF;YACvF,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,OAAO;YAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;YACtC,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,IAAI,MAAM,KAAK,QAAQ,CAAC,eAAe;gBAAE,OAAO;YACtF,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO;QACjF,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC/B,IAAI,cAAc,CAAC,MAAM,CAAC;YAAE,OAAO;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,4DAA4D;QAC5D,MAAM,EAAE,GAAG,MAAwB,CAAC;QACpC,IACE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;YACpC,EAAE,EAAE,OAAO,EAAE,CAAC,4DAA4D,CAAC,EAC3E,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACvF,OAAO;QACT,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,KAAK,OAAO;gBACV,CAAC,CAAC,KAAK,EAAE,CAAC;gBACV,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,MAAM;YACR,KAAK,KAAK;gBACR,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE;oBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;gBAC7C,MAAM;YACR,KAAK,YAAY;gBACf,CAAC,CAAC,UAAU,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,SAAS;gBACZ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,KAAK;gBACR,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;gBACb,MAAM;YACR,KAAK,MAAM;gBACT,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,QAAQ;gBACX,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACvD,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAoB,CAAC;gBACtF,MAAM;YACR,CAAC;YACD,KAAK,MAAM;gBACT,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM;YACR,KAAK,QAAQ;gBACX,CAAC,CAAC,aAAa,EAAE,CAAC;gBAClB,MAAM;YACR;gBACE,MAAsB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC/E,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS;YAAE,OAAO;QAC7C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,8EAA8E;YAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,OAAO;QAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI;YAAE,OAAO;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Camera framing around floating chrome. The legend, minimap, replay transport and top chips
|
|
3
|
+
* float over the canvas; a fit or flight must keep its target clear of them without wasting the
|
|
4
|
+
* rest of the canvas. Each obstacle can be avoided through one side (an inset); all assignments
|
|
5
|
+
* are tried (4ⁿ, n ≤ ~6 visible chips) and the one that shows `bounds` largest wins, ties going
|
|
6
|
+
* to the free region closest to the canvas center. Pure; all sizes in canvas px.
|
|
7
|
+
*/
|
|
8
|
+
import type { Rect } from '@kgdiff/core';
|
|
9
|
+
export interface Insets {
|
|
10
|
+
readonly top: number;
|
|
11
|
+
readonly right: number;
|
|
12
|
+
readonly bottom: number;
|
|
13
|
+
readonly left: number;
|
|
14
|
+
}
|
|
15
|
+
/** The canvas size and the chrome floating over it (rects relative to the canvas). */
|
|
16
|
+
export interface ChromeLayout {
|
|
17
|
+
readonly width: number;
|
|
18
|
+
readonly height: number;
|
|
19
|
+
readonly obstacles: readonly Rect[];
|
|
20
|
+
}
|
|
21
|
+
export interface CameraTarget {
|
|
22
|
+
readonly x: number;
|
|
23
|
+
readonly y: number;
|
|
24
|
+
readonly k: number;
|
|
25
|
+
}
|
|
26
|
+
/** Breathing room around the target, px. */
|
|
27
|
+
export declare const FRAME_PADDING = 24;
|
|
28
|
+
export declare const NO_INSETS: Insets;
|
|
29
|
+
/** Zoom that fits `bounds` into the canvas minus `insets` (unclamped; 0 when nothing fits). */
|
|
30
|
+
export declare function fitZoom(bounds: Rect, width: number, height: number, insets: Insets): number;
|
|
31
|
+
/**
|
|
32
|
+
* Insets (padding included) that keep `bounds` clear of every obstacle while showing it as
|
|
33
|
+
* large as possible, the free region as centered as possible. Obstacles outside the canvas are
|
|
34
|
+
* ignored. With no feasible assignment, only the padding is returned.
|
|
35
|
+
*/
|
|
36
|
+
export declare function chromeInsets(bounds: Rect, layout: ChromeLayout, padding?: number, maxZoom?: number): Insets;
|
|
37
|
+
/**
|
|
38
|
+
* Where a fit lands: `bounds` centered in the canvas minus `insets`, zoom clamped to
|
|
39
|
+
* [minK, maxK] (the renderer's `fitState` with no extra safe area). Screen = (world − (x, y))·k +
|
|
40
|
+
* canvas center.
|
|
41
|
+
*/
|
|
42
|
+
export declare function frameTarget(bounds: Rect, width: number, height: number, insets: Insets, minK: number, maxK: number): CameraTarget;
|
|
43
|
+
/** The part of `view` (world units) not covered by `insets` at zoom `k`. */
|
|
44
|
+
export declare function freeView(view: Rect, k: number, insets: Insets): Rect;
|
|
45
|
+
//# sourceMappingURL=framing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../src/framing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,KAAK,CAAC;AAShC,eAAO,MAAM,SAAS,EAAE,MAAgE,CAAC;AAEzF,+FAA+F;AAC/F,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,YAAY,EACpB,OAAO,SAAgB,EACvB,OAAO,SAA2B,GACjC,MAAM,CAwDR;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,YAAY,CAQd;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOpE"}
|
package/dist/framing.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/** Breathing room around the target, px. */
|
|
2
|
+
export const FRAME_PADDING = 24;
|
|
3
|
+
/** Gap kept between the target and an obstacle, px. */
|
|
4
|
+
const OBSTACLE_GAP = 8;
|
|
5
|
+
/** Zooms within this ratio of the best count as equal (then the most centered region wins). */
|
|
6
|
+
const ZOOM_TOLERANCE = 0.94;
|
|
7
|
+
/** Above this many obstacles only the largest are considered (keeps the search tiny). */
|
|
8
|
+
const MAX_OBSTACLES = 6;
|
|
9
|
+
const MIN_FREE = 48;
|
|
10
|
+
export const NO_INSETS = Object.freeze({ top: 0, right: 0, bottom: 0, left: 0 });
|
|
11
|
+
/** Zoom that fits `bounds` into the canvas minus `insets` (unclamped; 0 when nothing fits). */
|
|
12
|
+
export function fitZoom(bounds, width, height, insets) {
|
|
13
|
+
const w = width - insets.left - insets.right;
|
|
14
|
+
const h = height - insets.top - insets.bottom;
|
|
15
|
+
if (w < MIN_FREE || h < MIN_FREE)
|
|
16
|
+
return 0;
|
|
17
|
+
const kw = bounds.width > 0 ? w / bounds.width : Number.POSITIVE_INFINITY;
|
|
18
|
+
const kh = bounds.height > 0 ? h / bounds.height : Number.POSITIVE_INFINITY;
|
|
19
|
+
return Math.min(kw, kh);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Insets (padding included) that keep `bounds` clear of every obstacle while showing it as
|
|
23
|
+
* large as possible, the free region as centered as possible. Obstacles outside the canvas are
|
|
24
|
+
* ignored. With no feasible assignment, only the padding is returned.
|
|
25
|
+
*/
|
|
26
|
+
export function chromeInsets(bounds, layout, padding = FRAME_PADDING, maxZoom = Number.POSITIVE_INFINITY) {
|
|
27
|
+
const { width: W, height: H } = layout;
|
|
28
|
+
const base = { top: padding, right: padding, bottom: padding, left: padding };
|
|
29
|
+
const obstacles = layout.obstacles
|
|
30
|
+
.filter((r) => r.width > 0 &&
|
|
31
|
+
r.height > 0 &&
|
|
32
|
+
r.x < W &&
|
|
33
|
+
r.y < H &&
|
|
34
|
+
r.x + r.width > 0 &&
|
|
35
|
+
r.y + r.height > 0)
|
|
36
|
+
.sort((a, b) => b.width * b.height - a.width * a.height)
|
|
37
|
+
.slice(0, MAX_OBSTACLES);
|
|
38
|
+
// The inset each obstacle needs on each side to be avoided through it.
|
|
39
|
+
const needs = obstacles.map((r) => [
|
|
40
|
+
r.y + r.height + OBSTACLE_GAP, // top
|
|
41
|
+
W - r.x + OBSTACLE_GAP, // right
|
|
42
|
+
H - r.y + OBSTACLE_GAP, // bottom
|
|
43
|
+
r.x + r.width + OBSTACLE_GAP, // left
|
|
44
|
+
]);
|
|
45
|
+
const cap = (k) => Math.min(k, maxZoom);
|
|
46
|
+
let best = base;
|
|
47
|
+
let bestK = -1;
|
|
48
|
+
let bestOff = Number.POSITIVE_INFINITY;
|
|
49
|
+
const count = 4 ** obstacles.length;
|
|
50
|
+
for (let code = 0; code < count; code++) {
|
|
51
|
+
let top = padding;
|
|
52
|
+
let right = padding;
|
|
53
|
+
let bottom = padding;
|
|
54
|
+
let left = padding;
|
|
55
|
+
let c = code;
|
|
56
|
+
for (const need of needs) {
|
|
57
|
+
const side = c & 3;
|
|
58
|
+
c >>= 2;
|
|
59
|
+
const v = need[side];
|
|
60
|
+
if (side === 0)
|
|
61
|
+
top = Math.max(top, v);
|
|
62
|
+
else if (side === 1)
|
|
63
|
+
right = Math.max(right, v);
|
|
64
|
+
else if (side === 2)
|
|
65
|
+
bottom = Math.max(bottom, v);
|
|
66
|
+
else
|
|
67
|
+
left = Math.max(left, v);
|
|
68
|
+
}
|
|
69
|
+
const insets = { top, right, bottom, left };
|
|
70
|
+
const k = cap(fitZoom(bounds, W, H, insets));
|
|
71
|
+
if (!(k > 0))
|
|
72
|
+
continue;
|
|
73
|
+
// Distance of the free region's center from the canvas center.
|
|
74
|
+
const off = Math.hypot((left - right) / 2, (top - bottom) / 2);
|
|
75
|
+
const better = k > bestK / ZOOM_TOLERANCE || (k >= bestK * ZOOM_TOLERANCE && off < bestOff - 0.5);
|
|
76
|
+
if (bestK < 0 || better) {
|
|
77
|
+
best = insets;
|
|
78
|
+
bestK = Math.max(k, bestK);
|
|
79
|
+
bestOff = off;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return best;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Where a fit lands: `bounds` centered in the canvas minus `insets`, zoom clamped to
|
|
86
|
+
* [minK, maxK] (the renderer's `fitState` with no extra safe area). Screen = (world − (x, y))·k +
|
|
87
|
+
* canvas center.
|
|
88
|
+
*/
|
|
89
|
+
export function frameTarget(bounds, width, height, insets, minK, maxK) {
|
|
90
|
+
const fit = fitZoom(bounds, width, height, insets);
|
|
91
|
+
const k = Math.min(maxK, Math.max(minK, fit > 0 ? fit : maxK));
|
|
92
|
+
const sx = insets.left + (width - insets.left - insets.right) / 2;
|
|
93
|
+
const sy = insets.top + (height - insets.top - insets.bottom) / 2;
|
|
94
|
+
const cx = bounds.x + bounds.width / 2;
|
|
95
|
+
const cy = bounds.y + bounds.height / 2;
|
|
96
|
+
return { x: cx - (sx - width / 2) / k, y: cy - (sy - height / 2) / k, k };
|
|
97
|
+
}
|
|
98
|
+
/** The part of `view` (world units) not covered by `insets` at zoom `k`. */
|
|
99
|
+
export function freeView(view, k, insets) {
|
|
100
|
+
return {
|
|
101
|
+
x: view.x + insets.left / k,
|
|
102
|
+
y: view.y + insets.top / k,
|
|
103
|
+
width: Math.max(0, view.width - (insets.left + insets.right) / k),
|
|
104
|
+
height: Math.max(0, view.height - (insets.top + insets.bottom) / k),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=framing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framing.js","sourceRoot":"","sources":["../src/framing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deep links for `sync-hash`: `#kgdiff=hunk:<id>;mode:<mode>`.
|
|
3
|
+
*
|
|
4
|
+
* Values are percent-encoded (hunk ids embed union ids, which may be IRIs containing `;`, `#`
|
|
5
|
+
* or `:`), so parsing splits on the first `:` of each `;`-separated field. Unknown fields are
|
|
6
|
+
* ignored; a malformed value drops just that field.
|
|
7
|
+
*/
|
|
8
|
+
import type { ViewerMode } from './index.js';
|
|
9
|
+
export interface HashState {
|
|
10
|
+
readonly hunk?: string;
|
|
11
|
+
readonly mode?: ViewerMode;
|
|
12
|
+
}
|
|
13
|
+
export declare function isViewerMode(value: unknown): value is ViewerMode;
|
|
14
|
+
/** Parse a location hash (with or without `#`). Returns null when it is not a kgdiff link. */
|
|
15
|
+
export declare function parseHash(hash: string): HashState | null;
|
|
16
|
+
/** Encode `state` as a hash (`#kgdiff=…`); empty state gives `#kgdiff=`. */
|
|
17
|
+
export declare function formatHash(state: HashState): string;
|
|
18
|
+
//# sourceMappingURL=hash-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-sync.d.ts","sourceRoot":"","sources":["../src/hash-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAUD,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAexD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKnD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const PREFIX = 'kgdiff=';
|
|
2
|
+
const MODES = new Set(['overlay', 'swipe', 'replay', 'changes']);
|
|
3
|
+
export function isViewerMode(value) {
|
|
4
|
+
return typeof value === 'string' && MODES.has(value);
|
|
5
|
+
}
|
|
6
|
+
function decode(value) {
|
|
7
|
+
try {
|
|
8
|
+
return decodeURIComponent(value);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Parse a location hash (with or without `#`). Returns null when it is not a kgdiff link. */
|
|
15
|
+
export function parseHash(hash) {
|
|
16
|
+
const raw = hash.startsWith('#') ? hash.slice(1) : hash;
|
|
17
|
+
if (!raw.startsWith(PREFIX))
|
|
18
|
+
return null;
|
|
19
|
+
let hunk;
|
|
20
|
+
let mode;
|
|
21
|
+
for (const field of raw.slice(PREFIX.length).split(';')) {
|
|
22
|
+
const colon = field.indexOf(':');
|
|
23
|
+
if (colon <= 0)
|
|
24
|
+
continue;
|
|
25
|
+
const key = field.slice(0, colon);
|
|
26
|
+
const value = decode(field.slice(colon + 1));
|
|
27
|
+
if (value === undefined || value === '')
|
|
28
|
+
continue;
|
|
29
|
+
if (key === 'hunk')
|
|
30
|
+
hunk = value;
|
|
31
|
+
else if (key === 'mode' && isViewerMode(value))
|
|
32
|
+
mode = value;
|
|
33
|
+
}
|
|
34
|
+
return { ...(hunk !== undefined ? { hunk } : {}), ...(mode !== undefined ? { mode } : {}) };
|
|
35
|
+
}
|
|
36
|
+
/** Encode `state` as a hash (`#kgdiff=…`); empty state gives `#kgdiff=`. */
|
|
37
|
+
export function formatHash(state) {
|
|
38
|
+
const fields = [];
|
|
39
|
+
if (state.hunk !== undefined)
|
|
40
|
+
fields.push(`hunk:${encodeURIComponent(state.hunk)}`);
|
|
41
|
+
if (state.mode !== undefined)
|
|
42
|
+
fields.push(`mode:${state.mode}`);
|
|
43
|
+
return `#${PREFIX}${fields.join(';')}`;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=hash-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-sync.js","sourceRoot":"","sources":["../src/hash-sync.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAa,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAElG,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAA4B,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAClD,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,KAAK,CAAC;aAC5B,IAAI,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI strings (`en`, `zh-CN`). Hunk titles and facet names come from core (`formatHunk`,
|
|
3
|
+
* `facetLabel`); everything the viewer itself says lives here.
|
|
4
|
+
*
|
|
5
|
+
* Placeholders are `{name}`. Keys ending in `.one` / `.other` are plural pairs used through
|
|
6
|
+
* `plural()`. Chinese UI quotes names with 「」, English with “ ”.
|
|
7
|
+
*/
|
|
8
|
+
import type { Locale } from '@kgdiff/core';
|
|
9
|
+
declare const en: {
|
|
10
|
+
readonly 'brand.tagline': 'git diff for knowledge graphs';
|
|
11
|
+
readonly 'header.compare': 'Compared versions';
|
|
12
|
+
readonly 'mode.label': 'View mode';
|
|
13
|
+
readonly 'mode.overlay': 'Overlay';
|
|
14
|
+
readonly 'mode.swipe': 'Swipe';
|
|
15
|
+
readonly 'mode.replay': 'Replay';
|
|
16
|
+
readonly 'mode.changes': 'Changes only';
|
|
17
|
+
readonly 'family.added': 'Added';
|
|
18
|
+
readonly 'family.removed': 'Removed';
|
|
19
|
+
readonly 'family.content': 'Content';
|
|
20
|
+
readonly 'family.structure': 'Structure';
|
|
21
|
+
readonly 'family.identity': 'Identity';
|
|
22
|
+
readonly 'family.neutral': 'Unchanged';
|
|
23
|
+
readonly 'familyHint.added': 'Only in the new version';
|
|
24
|
+
readonly 'familyHint.removed': 'Only in the old version';
|
|
25
|
+
readonly 'familyHint.content': 'Renamed, attributes, types, synonyms';
|
|
26
|
+
readonly 'familyHint.structure': 'Moved or relinked';
|
|
27
|
+
readonly 'familyHint.identity': 'Merged, split or re-keyed';
|
|
28
|
+
readonly 'familyHint.neutral': 'Unchanged context';
|
|
29
|
+
readonly 'phase.remove': 'Removed';
|
|
30
|
+
readonly 'phase.restructure': 'Restructured';
|
|
31
|
+
readonly 'phase.modify': 'Modified';
|
|
32
|
+
readonly 'phase.add': 'Added';
|
|
33
|
+
readonly 'kind.add': 'Addition';
|
|
34
|
+
readonly 'kind.remove': 'Removal';
|
|
35
|
+
readonly 'kind.merge': 'Merge';
|
|
36
|
+
readonly 'kind.split': 'Split';
|
|
37
|
+
readonly 'kind.modify': 'Edit';
|
|
38
|
+
readonly 'kind.relations': 'Relations';
|
|
39
|
+
readonly 'status.unchanged': 'Unchanged';
|
|
40
|
+
readonly 'status.added': 'Added';
|
|
41
|
+
readonly 'status.removed': 'Removed';
|
|
42
|
+
readonly 'status.modified': 'Modified';
|
|
43
|
+
readonly 'stat.added': '{n} added';
|
|
44
|
+
readonly 'stat.removed': '{n} removed';
|
|
45
|
+
readonly 'stat.modified': '{n} modified';
|
|
46
|
+
readonly 'stat.restructured': '{n} restructured';
|
|
47
|
+
readonly 'stat.filter': 'Show only these changes';
|
|
48
|
+
readonly 'stat.label': 'Change summary';
|
|
49
|
+
readonly 'action.fit': 'Fit to view';
|
|
50
|
+
readonly 'action.help': 'Keyboard shortcuts';
|
|
51
|
+
readonly 'action.sidebar': 'Toggle sidebar';
|
|
52
|
+
readonly 'action.zoomIn': 'Zoom in';
|
|
53
|
+
readonly 'action.zoomOut': 'Zoom out';
|
|
54
|
+
readonly 'action.settings': 'Display settings';
|
|
55
|
+
readonly 'menu.theme': 'Theme';
|
|
56
|
+
readonly 'menu.palette': 'Colors';
|
|
57
|
+
readonly 'menu.language': 'Language';
|
|
58
|
+
readonly 'theme.auto': 'Auto';
|
|
59
|
+
readonly 'theme.light': 'Light';
|
|
60
|
+
readonly 'theme.dark': 'Dark';
|
|
61
|
+
readonly 'palette.default': 'Default';
|
|
62
|
+
readonly 'palette.colorblind': 'Color-blind safe';
|
|
63
|
+
readonly 'sidebar.label': 'Change list';
|
|
64
|
+
readonly 'sidebar.changes': 'Changes';
|
|
65
|
+
readonly 'sidebar.search': 'Search nodes';
|
|
66
|
+
readonly 'sidebar.searchPlaceholder': 'Search nodes…';
|
|
67
|
+
readonly 'sidebar.searchClear': 'Clear search';
|
|
68
|
+
readonly 'sidebar.noResults': 'No nodes match “{q}”';
|
|
69
|
+
readonly 'sidebar.results.one': '{n} node';
|
|
70
|
+
readonly 'sidebar.results.other': '{n} nodes';
|
|
71
|
+
readonly 'sidebar.filters': 'Filter by kind of change';
|
|
72
|
+
readonly 'sidebar.clearFilters': 'Show all';
|
|
73
|
+
readonly 'sidebar.filteredEmpty': 'No changes match the filters.';
|
|
74
|
+
readonly 'sidebar.noChanges': 'No changes to review.';
|
|
75
|
+
readonly 'sidebar.sheet': 'Resize panel';
|
|
76
|
+
readonly 'sidebar.sheetValue': '{p} of the height';
|
|
77
|
+
readonly 'review.progress': '{done} of {total} reviewed';
|
|
78
|
+
readonly 'review.toggle': 'Reviewed';
|
|
79
|
+
readonly 'review.mark': 'Mark as reviewed';
|
|
80
|
+
readonly 'review.unmark': 'Mark as not reviewed';
|
|
81
|
+
readonly 'review.complete': 'All changes reviewed';
|
|
82
|
+
readonly 'detail.label': 'Change details';
|
|
83
|
+
readonly 'detail.empty': 'Select a change to see what happened.';
|
|
84
|
+
readonly 'detail.emptyHint': 'Use j / k to step through changes.';
|
|
85
|
+
readonly 'detail.prev': 'Previous change';
|
|
86
|
+
readonly 'detail.next': 'Next change';
|
|
87
|
+
readonly 'detail.changes': 'Changes';
|
|
88
|
+
readonly 'detail.changedTo': 'changed to';
|
|
89
|
+
readonly 'detail.identity': 'Overview';
|
|
90
|
+
readonly 'detail.id': 'Id';
|
|
91
|
+
readonly 'detail.types': 'Types';
|
|
92
|
+
readonly 'detail.status': 'Status';
|
|
93
|
+
readonly 'detail.name': 'Name';
|
|
94
|
+
readonly 'detail.before': 'Before';
|
|
95
|
+
readonly 'detail.after': 'After';
|
|
96
|
+
readonly 'detail.attributes': 'Attributes';
|
|
97
|
+
readonly 'detail.aliases': 'Synonyms';
|
|
98
|
+
readonly 'detail.hierarchy': 'Hierarchy';
|
|
99
|
+
readonly 'detail.relations': 'Relations';
|
|
100
|
+
readonly 'detail.composition': 'Composition';
|
|
101
|
+
readonly 'detail.evidence': 'Match evidence';
|
|
102
|
+
readonly 'detail.nodes': 'Nodes';
|
|
103
|
+
readonly 'detail.showMore': 'Show more';
|
|
104
|
+
readonly 'detail.showLess': 'Show less';
|
|
105
|
+
readonly 'detail.unchangedAttrs.one': '{n} unchanged attribute';
|
|
106
|
+
readonly 'detail.unchangedAttrs.other': '{n} unchanged attributes';
|
|
107
|
+
readonly 'detail.moreRelations.one': '{n} more relation';
|
|
108
|
+
readonly 'detail.moreRelations.other': '{n} more relations';
|
|
109
|
+
readonly 'detail.was': 'was {x}';
|
|
110
|
+
readonly 'detail.viaHint': 'via replacement hint';
|
|
111
|
+
readonly 'detail.viaHeuristic': 'heuristic';
|
|
112
|
+
readonly 'detail.confidence': '{p} confidence';
|
|
113
|
+
readonly 'detail.matchScore': '{p} match';
|
|
114
|
+
readonly 'detail.matchHint': 'Matched through a replacement hint';
|
|
115
|
+
readonly 'detail.evidence.label': 'Label';
|
|
116
|
+
readonly 'detail.evidence.neighbors': 'Neighbours';
|
|
117
|
+
readonly 'detail.evidence.types': 'Types';
|
|
118
|
+
readonly 'detail.evidence.attrs': 'Attributes';
|
|
119
|
+
readonly 'detail.suggestion': 'Possible match';
|
|
120
|
+
readonly 'detail.suggestion.ambiguous': 'ambiguous';
|
|
121
|
+
readonly 'detail.suggestion.below': 'below threshold';
|
|
122
|
+
readonly 'detail.deprecated': 'Deprecated';
|
|
123
|
+
readonly 'detail.undeprecated': 'No longer deprecated';
|
|
124
|
+
readonly 'detail.replacedBy': 'Replaced by';
|
|
125
|
+
readonly 'detail.replaces': 'Replaces';
|
|
126
|
+
readonly 'detail.unchangedNode': 'Unchanged node';
|
|
127
|
+
readonly 'detail.implicit': 'Created for a dangling relation';
|
|
128
|
+
readonly 'detail.collapsed': 'duplicate, collapsed';
|
|
129
|
+
readonly 'detail.mergedFrom': 'Merged from';
|
|
130
|
+
readonly 'detail.splitInto': 'Split into';
|
|
131
|
+
readonly 'detail.edgeAttrs': 'attributes changed';
|
|
132
|
+
readonly 'detail.showOnCanvas': 'Show on canvas';
|
|
133
|
+
readonly 'replay.label': 'Replay controls';
|
|
134
|
+
readonly 'replay.play': 'Play';
|
|
135
|
+
readonly 'replay.pause': 'Pause';
|
|
136
|
+
readonly 'replay.speed': 'Playback speed {s}';
|
|
137
|
+
readonly 'replay.position': '{i} / {n}';
|
|
138
|
+
readonly 'replay.finished': 'Replay finished';
|
|
139
|
+
readonly 'replay.restart': 'Restart';
|
|
140
|
+
readonly 'replay.scrubber': 'Replay position';
|
|
141
|
+
readonly 'swipe.divider': 'Comparison divider';
|
|
142
|
+
readonly 'focus.context': 'Context';
|
|
143
|
+
readonly 'focus.hops': 'Context hops';
|
|
144
|
+
readonly 'focus.expand': 'Click to expand';
|
|
145
|
+
readonly 'focus.expandUnavailable': 'Expanding needs the kgdiff compute add-on';
|
|
146
|
+
readonly 'focus.expandNearest': 'Show hidden context near the selection';
|
|
147
|
+
readonly 'announce.expanded': 'Expanded {label}';
|
|
148
|
+
readonly 'announce.nothingHidden': 'No hidden context';
|
|
149
|
+
readonly 'help.expand': 'Show hidden context (changes only)';
|
|
150
|
+
readonly 'legend.title': 'Legend';
|
|
151
|
+
readonly 'legend.toggle': 'Toggle legend';
|
|
152
|
+
readonly 'minimap.label': 'Overview';
|
|
153
|
+
readonly 'tooltip.relations.one': '{n} relation';
|
|
154
|
+
readonly 'tooltip.relations.other': '{n} relations';
|
|
155
|
+
readonly 'tooltip.select': 'Click to select';
|
|
156
|
+
readonly 'help.title': 'Keyboard shortcuts';
|
|
157
|
+
readonly 'help.close': 'Close';
|
|
158
|
+
readonly 'help.enter': 'Fly to the selected change';
|
|
159
|
+
readonly 'help.esc': 'Clear selection, close popovers';
|
|
160
|
+
readonly 'help.space': 'Play / pause (replay)';
|
|
161
|
+
readonly 'help.arrows': 'Step (replay) · move divider (swipe)';
|
|
162
|
+
readonly 'help.theme': 'Cycle theme';
|
|
163
|
+
readonly 'help.homeEnd': 'First / last change';
|
|
164
|
+
readonly 'state.loading': 'Preparing the diff';
|
|
165
|
+
readonly 'step.parse': 'Parsing';
|
|
166
|
+
readonly 'step.match': 'Matching nodes';
|
|
167
|
+
readonly 'step.layout': 'Laying out';
|
|
168
|
+
readonly 'step.scene': 'Drawing';
|
|
169
|
+
readonly 'state.identical.title': 'No differences';
|
|
170
|
+
readonly 'state.identical.body': 'Both versions have {nodes} and {edges}.';
|
|
171
|
+
readonly 'count.nodes.one': '{n} node';
|
|
172
|
+
readonly 'count.nodes.other': '{n} nodes';
|
|
173
|
+
readonly 'count.edges.one': '{n} edge';
|
|
174
|
+
readonly 'count.edges.other': '{n} edges';
|
|
175
|
+
readonly 'state.error.title': 'This diff could not be shown';
|
|
176
|
+
readonly 'state.error.details': 'Details';
|
|
177
|
+
readonly 'state.empty.title': 'Nothing to compare yet';
|
|
178
|
+
readonly 'state.empty.body': 'Load two versions of a graph to see what changed.';
|
|
179
|
+
readonly 'aria.canvas': 'Graph diff. Before: {nb} nodes, {eb} edges. After: {na} nodes, {ea} edges. {changes}.';
|
|
180
|
+
readonly 'aria.changes.one': '{n} change';
|
|
181
|
+
readonly 'aria.changes.other': '{n} changes';
|
|
182
|
+
readonly 'announce.change': 'Change {i} of {n}: {title}';
|
|
183
|
+
readonly 'announce.node': 'Node {label}, {status}';
|
|
184
|
+
readonly 'announce.mode': '{mode} view';
|
|
185
|
+
readonly 'announce.cleared': 'Selection cleared';
|
|
186
|
+
readonly 'announce.reviewed': 'Marked as reviewed. {progress}';
|
|
187
|
+
readonly 'announce.unreviewed': 'Marked as not reviewed. {progress}';
|
|
188
|
+
readonly 'announce.finished': 'Replay finished';
|
|
189
|
+
readonly 'announce.chapter': '{phase}: {n} changes';
|
|
190
|
+
readonly 'error.formats': 'Parsing text needs @kgdiff/formats (import it, or pass parsed graphs).';
|
|
191
|
+
readonly 'error.notLoaded': 'Nothing is loaded yet.';
|
|
192
|
+
};
|
|
193
|
+
export type MessageKey = keyof typeof en;
|
|
194
|
+
export type Messages = Readonly<Record<MessageKey, string>>;
|
|
195
|
+
export declare const MESSAGES: Readonly<Record<Locale, Messages>>;
|
|
196
|
+
export declare const LOCALES: readonly Locale[];
|
|
197
|
+
/** `zh*` → `zh-CN`, anything else → `en`. */
|
|
198
|
+
export declare function normalizeLocale(value: string | null | undefined): Locale | null;
|
|
199
|
+
/** The browser's preferred locale among the supported ones (default `en`). */
|
|
200
|
+
export declare function detectLocale(): Locale;
|
|
201
|
+
export declare function formatNumber(n: number, locale: Locale): string;
|
|
202
|
+
export declare function formatPercent(x: number): string;
|
|
203
|
+
export type Params = Readonly<Record<string, string | number>>;
|
|
204
|
+
/** Localized message with `{name}` placeholders; numbers are formatted for the locale. */
|
|
205
|
+
export declare function translate(locale: Locale, key: MessageKey, params?: Params): string;
|
|
206
|
+
type PluralBase<K> = K extends `${infer B}.one` ? B : never;
|
|
207
|
+
export type PluralKey = PluralBase<MessageKey>;
|
|
208
|
+
/** Plural pair `<key>.one` / `<key>.other` with `{n}`. */
|
|
209
|
+
export declare function plural(locale: Locale, key: PluralKey, n: number, params?: Params): string;
|
|
210
|
+
/** Quote a node name the way the locale does: “name” / 「name」. */
|
|
211
|
+
export declare function quote(text: string, locale: Locale): string;
|
|
212
|
+
/** A translator bound to one locale. */
|
|
213
|
+
export interface Translator {
|
|
214
|
+
readonly locale: Locale;
|
|
215
|
+
t(key: MessageKey, params?: Params): string;
|
|
216
|
+
plural(key: PluralKey, n: number, params?: Params): string;
|
|
217
|
+
num(n: number): string;
|
|
218
|
+
quote(text: string): string;
|
|
219
|
+
}
|
|
220
|
+
export declare function translator(locale: Locale): Translator;
|
|
221
|
+
export {};
|
|
222
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|