@microsoft/dragon-copilot-sdk-lexical-react 1.0.0 → 1.0.1
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/node_modules/@hccm/web-tcl/CHANGELOG.md +161 -0
- package/node_modules/@hccm/web-tcl/README.md +99 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/cleanup-helper.d.ts +23 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/cleanup-helper.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/browser.d.ts +17 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/browser.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/coordinates.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/coordinates.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/dom.d.ts +44 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/dom.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/element-extensions.d.ts +26 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/element-extensions.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/error.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/error.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/local-store.d.ts +10 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/local-store.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/selection-info.d.ts +4 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/selection-info.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/string.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/string.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/util.d.ts +73 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/common/util.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/logger/logging.d.ts +67 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/logger/logging.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/main.d.ts +8 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/main.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/package-info.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/package-info.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/shared-data.d.ts +27 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/shared-data.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/speech-document.d.ts +91 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/speech-document.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/base-control.d.ts +100 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/base-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/contenteditable-control.d.ts +18 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/contenteditable-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/custom-control.d.ts +41 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/factory.d.ts +9 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/factory.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/helpers.d.ts +33 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/helpers.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/index.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/input-control.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/input-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/processing-status.d.ts +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/processing-status.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/text-control-manager.d.ts +38 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/text-control-manager.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/text-control.d.ts +64 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/text-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/textarea-control.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/textarea-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/tinymce-control.d.ts +11 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/text-control-lib/tinymce-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/channel.d.ts +15 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/channel.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/commands.d.ts +64 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/commands.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/custom-control.d.ts +212 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/index.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/input-custom-control.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/input-custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/textarea-custom-control.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/custom-controls/textarea-custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/diagnostics.d.ts +37 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/diagnostics.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/dom-observable.d.ts +13 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/dom-observable.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/events.d.ts +39 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/events.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/iframe-support.d.ts +29 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/iframe-support.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/index.d.ts +26 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/processing-status.d.ts +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/processing-status.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/state.d.ts +165 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/state.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/types.d.ts +21 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/types.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/utility-types.d.ts +3 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/utility-types.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/validation.d.ts +35 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/validation.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-attributes.d.ts +104 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-attributes.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-client.d.ts +16 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-client.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-controller.d.ts +8 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/webtcl-controller.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/worker.d.ts +18 -0
- package/node_modules/@hccm/web-tcl/dist/cjs/webtcl/worker.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/cleanup-helper.d.ts +23 -0
- package/node_modules/@hccm/web-tcl/dist/esm/cleanup-helper.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/browser.d.ts +17 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/browser.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/coordinates.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/coordinates.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/dom.d.ts +44 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/dom.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/element-extensions.d.ts +26 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/element-extensions.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/error.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/error.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/local-store.d.ts +10 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/local-store.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/selection-info.d.ts +4 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/selection-info.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/string.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/string.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/util.d.ts +73 -0
- package/node_modules/@hccm/web-tcl/dist/esm/common/util.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/logger/logging.d.ts +67 -0
- package/node_modules/@hccm/web-tcl/dist/esm/logger/logging.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/main.d.ts +8 -0
- package/node_modules/@hccm/web-tcl/dist/esm/main.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/package-info.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/esm/package-info.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/shared-data.d.ts +27 -0
- package/node_modules/@hccm/web-tcl/dist/esm/shared-data.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/speech-document.d.ts +91 -0
- package/node_modules/@hccm/web-tcl/dist/esm/speech-document.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/base-control.d.ts +100 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/base-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/contenteditable-control.d.ts +18 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/contenteditable-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/custom-control.d.ts +41 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/factory.d.ts +9 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/factory.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/helpers.d.ts +33 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/helpers.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/index.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/input-control.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/input-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/processing-status.d.ts +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/processing-status.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/text-control-manager.d.ts +38 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/text-control-manager.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/text-control.d.ts +64 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/text-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/textarea-control.d.ts +7 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/textarea-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/tinymce-control.d.ts +11 -0
- package/node_modules/@hccm/web-tcl/dist/esm/text-control-lib/tinymce-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/channel.d.ts +15 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/channel.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/commands.d.ts +64 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/commands.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/custom-control.d.ts +212 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/index.d.ts +6 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/input-custom-control.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/input-custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/textarea-custom-control.d.ts +2 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/custom-controls/textarea-custom-control.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/diagnostics.d.ts +37 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/diagnostics.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/dom-observable.d.ts +13 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/dom-observable.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/events.d.ts +39 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/events.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/iframe-support.d.ts +29 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/iframe-support.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/index.d.ts +26 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/index.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/processing-status.d.ts +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/processing-status.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/state.d.ts +165 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/state.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/types.d.ts +21 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/types.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/utility-types.d.ts +3 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/utility-types.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/validation.d.ts +35 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/validation.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-attributes.d.ts +104 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-attributes.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-client.d.ts +16 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-client.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-controller.d.ts +8 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/webtcl-controller.js +1 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/worker.d.ts +18 -0
- package/node_modules/@hccm/web-tcl/dist/esm/webtcl/worker.js +1 -0
- package/node_modules/@hccm/web-tcl/package.json +72 -0
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.TextAreaControl=void 0;const e=require("./base-control");class t extends e.BaseControl{constructor(e){super(e);this.type="TextArea"}}exports.TextAreaControl=t;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The TinyMCE control class
|
|
3
|
+
* @class
|
|
4
|
+
*/
|
|
5
|
+
export class TinyMceControl extends ContentEditableControl {
|
|
6
|
+
tinyMceIframe: any;
|
|
7
|
+
tinyMceEditor: any;
|
|
8
|
+
adjustScrollPosition(): void;
|
|
9
|
+
#private;
|
|
10
|
+
}
|
|
11
|
+
import { ContentEditableControl } from "./contenteditable-control";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t,e,n;Object.defineProperty(exports,"__esModule",{value:true});exports.TinyMceControl=void 0;const i=require("tslib");const o=require("./contenteditable-control");const r=require("../logger/logging");class c extends o.ContentEditableControl{constructor(e){super(e.getBody());t.add(this);this.tinyMceIframe=e.iframeElement;this.type="TinyMCE";this.tinyMceEditor=e}replaceText(t,e,n){this.tinyMceEditor.undoManager.beforeChange();const i=super.replaceText(t,e,n);if(this.htmlElement.childElementCount===0){this.htmlElement.innerHTML="<p><br></p>"}return i}setSelection(t=0,e=0){super.setSelection(t,e);this.tinyMceEditor.undoManager.add()}getSelectionCoordinates(){if(this.tinyMceIframe){const t=this.tinyMceIframe.getBoundingClientRect();const e=this.tinyMceIframe.contentWindow.getSelection();if(!e||e.rangeCount===0)return null;const n=e.getRangeAt(0).getBoundingClientRect();return{left:t.left+n.left,top:t.top+n.top,right:t.left+n.right,bottom:t.top+n.bottom}}return super.getSelectionCoordinates()}adjustScrollPosition(){try{if(!i.__classPrivateFieldGet(this,t,"m",n).call(this)){this.tinyMceEditor.getContainer().scrollIntoView()}const o=i.__classPrivateFieldGet(this,t,"m",e).call(this);const r=this.tinyMceEditor.getWin();const c=r.document.documentElement;if(!c||!o)return;const s=c.scrollTop;const l=s+c.clientHeight;const d=o.top+s;const g=o.bottom+s;if(d<s){r.scrollTo(0,d)}else if(g>l){const t=g-c.clientHeight;r.scrollTo(0,t)}}catch(t){r.logger.error("TinyMceControl.adjustScrollPosition","Error adjusting scroll position",t)}}}exports.TinyMceControl=c;t=new WeakSet,e=function t(){let e=this.tinyMceEditor.selection.getBoundingClientRect();if(!e){if(this.tinyMceEditor.selection.isCollapsed()){r.logger.debug("TinyMceControl.#getBoundingClientRectOfEditor","rect is undefined, expanding selection to get rect");const t=this.tinyMceEditor.selection.getRng();this.tinyMceEditor.selection.expand();e=this.tinyMceEditor.selection.getBoundingClientRect();this.tinyMceEditor.selection.collapse(t.startContainer,t.startOffset)}if(!e){r.logger.debug("TinyMceControl.#getBoundingClientRectOfEditor","Could not adjust scroll position as rect is undefined")}}return e},n=function t(){if(!this.tinyMceEditor)return false;const e=document.getElementById(this.tinyMceEditor.id).clientHeight;const n=this.tinyMceEditor.getContainer();const i=n.getBoundingClientRect();const o=0;const r=window.innerHeight||document.documentElement.clientHeight;const c=i.top>=o&&i.top<=r;const s=i.bottom>=o&&i.bottom<=r;const l=e>window.innerHeight;return c&&s||l};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type NextObserver, type Observable } from "rxjs";
|
|
2
|
+
export type Typed<TMap> = {
|
|
3
|
+
[K in keyof TMap]: {
|
|
4
|
+
type: K;
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
export type ChannelSender<TMessageMap extends Typed<TMessageMap>> = {
|
|
8
|
+
send(this: void, message: TMessageMap[keyof TMessageMap]): void;
|
|
9
|
+
};
|
|
10
|
+
export type ChannelReceiver<TMessageMap extends Typed<TMessageMap>> = {
|
|
11
|
+
receiveAll(this: void): Observable<TMessageMap[keyof TMessageMap]>;
|
|
12
|
+
receive<K extends keyof TMessageMap>(this: void, type: K): Observable<TMessageMap[K]>;
|
|
13
|
+
};
|
|
14
|
+
export declare function channelSender<TMessageMap extends Typed<TMessageMap>>(value: NextObserver<TMessageMap[keyof TMessageMap]>): ChannelSender<TMessageMap>;
|
|
15
|
+
export declare function channelReceiver<TMessageMap extends Typed<TMessageMap>>(value$: Observable<TMessageMap[keyof TMessageMap]>): ChannelReceiver<TMessageMap>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.channelSender=r;exports.channelReceiver=t;const e=require("rxjs");function r(e){return{send(r){e.next(r)}}}function t(r){return{receiveAll(){return r},receive(t){return r.pipe((0,e.filter)(e=>e.type===t))}}}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ProcessingStatus } from "./processing-status";
|
|
2
|
+
import type { AdditionalReplaceTextParameters } from "./types";
|
|
3
|
+
type CommandMap = {
|
|
4
|
+
initialize: {
|
|
5
|
+
isDisabled: boolean;
|
|
6
|
+
useGuiMarkup: boolean;
|
|
7
|
+
};
|
|
8
|
+
dispose: undefined;
|
|
9
|
+
focus: {
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
activate: {
|
|
13
|
+
id: string;
|
|
14
|
+
};
|
|
15
|
+
deactivate: {
|
|
16
|
+
id: string;
|
|
17
|
+
};
|
|
18
|
+
selectNode: {
|
|
19
|
+
id: string;
|
|
20
|
+
shouldFocus: boolean;
|
|
21
|
+
};
|
|
22
|
+
setStatus: {
|
|
23
|
+
id: string;
|
|
24
|
+
status: ProcessingStatus;
|
|
25
|
+
};
|
|
26
|
+
replaceText: {
|
|
27
|
+
id: string;
|
|
28
|
+
text: string;
|
|
29
|
+
selection: {
|
|
30
|
+
start: number;
|
|
31
|
+
length: number;
|
|
32
|
+
};
|
|
33
|
+
additionalParameters?: AdditionalReplaceTextParameters;
|
|
34
|
+
};
|
|
35
|
+
setSelection: {
|
|
36
|
+
id: string;
|
|
37
|
+
selection: {
|
|
38
|
+
start: number;
|
|
39
|
+
length: number;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
setText: {
|
|
43
|
+
id: string;
|
|
44
|
+
text: string;
|
|
45
|
+
};
|
|
46
|
+
setRecordingState: {
|
|
47
|
+
state: "started" | "stopped";
|
|
48
|
+
};
|
|
49
|
+
undo: {
|
|
50
|
+
id: string;
|
|
51
|
+
};
|
|
52
|
+
redo: {
|
|
53
|
+
id: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
export type WebTCLCommands = {
|
|
57
|
+
[K in keyof CommandMap]: CommandMap[K] extends undefined ? {
|
|
58
|
+
type: K;
|
|
59
|
+
} : {
|
|
60
|
+
type: K;
|
|
61
|
+
} & CommandMap[K];
|
|
62
|
+
};
|
|
63
|
+
export type WebTCLCommand = WebTCLCommands[keyof WebTCLCommands];
|
|
64
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import type { Capabilities } from "../../text-control-lib/text-control";
|
|
2
|
+
import type { AdditionalReplaceTextParameters } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* A command indicates what changed on the custom-control
|
|
5
|
+
*/
|
|
6
|
+
export type CustomControlCommand = {
|
|
7
|
+
/**
|
|
8
|
+
* The text to replace.
|
|
9
|
+
*/
|
|
10
|
+
text: {
|
|
11
|
+
value: string;
|
|
12
|
+
start: number;
|
|
13
|
+
length: number;
|
|
14
|
+
additionalParameters?: AdditionalReplaceTextParameters;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The selection of the text.
|
|
18
|
+
*/
|
|
19
|
+
selection: {
|
|
20
|
+
start: number;
|
|
21
|
+
end: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Indicates if the custom-control should be focused or not.
|
|
25
|
+
*/
|
|
26
|
+
focus: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Forwards the undo voice command to the custom control.
|
|
29
|
+
*/
|
|
30
|
+
undo: undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Forwards the redo voice command to the custom control.
|
|
33
|
+
*/
|
|
34
|
+
redo: undefined;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Represents the state of a custom control.
|
|
38
|
+
*/
|
|
39
|
+
export type CustomControlState = {
|
|
40
|
+
/**
|
|
41
|
+
* The text content of the custom-control
|
|
42
|
+
*/
|
|
43
|
+
text: string;
|
|
44
|
+
/**
|
|
45
|
+
* The selection of the text
|
|
46
|
+
*/
|
|
47
|
+
selection: {
|
|
48
|
+
start: number;
|
|
49
|
+
end: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Indicates if the custom-control has the focus or not.
|
|
53
|
+
*/
|
|
54
|
+
focus: boolean;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Custom Control
|
|
58
|
+
*/
|
|
59
|
+
export interface CustomControl {
|
|
60
|
+
/**
|
|
61
|
+
* Used to synchronize changes from the {@link CustomControl} with the {@link HTMLElement}
|
|
62
|
+
* @param type {@link CustomControlCommand} indicates what changed
|
|
63
|
+
* @param action The function to execute for the given {@param type}
|
|
64
|
+
*/
|
|
65
|
+
handle<K extends keyof CustomControlCommand>(type: K, action: (command: CustomControlCommand[K]) => void): void;
|
|
66
|
+
/**
|
|
67
|
+
* Used to synchronize changes from the {@link HTMLElement} with the {@link CustomControl}
|
|
68
|
+
* @param changes indicates what changed
|
|
69
|
+
*/
|
|
70
|
+
update(changes: Partial<CustomControlState>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Defines new line characters
|
|
73
|
+
* @default "\n"
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* function(element: HTMLElement, control: CustomControl) {
|
|
77
|
+
* control.newline = "\n";
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
newline: string;
|
|
82
|
+
/**
|
|
83
|
+
* Defines paragraph characters
|
|
84
|
+
* @default "\n\n"
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* function (element: HTMLElement, control: CustomControl) {
|
|
88
|
+
* control.paragraph = "\n\n";
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
paragraph: string;
|
|
93
|
+
/**
|
|
94
|
+
* Indicates if the control is multiline or not
|
|
95
|
+
* @default false
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* function (element: HTMLElement, control: CustomControl) {
|
|
99
|
+
* control.isMultiline = true;
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
isMultiline: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Represents the set of additional/custom features supported by a custom control.
|
|
106
|
+
*
|
|
107
|
+
* @property undoRedo - Indicates whether undo and redo functionality is available.
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* function (element: HTMLElement, control: CustomControl) {
|
|
111
|
+
* control.capabilities = {
|
|
112
|
+
* undoRedo: true
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
capabilities?: Capabilities;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Binds {@link HTMLElement} to {@link CustomControl}, synchronizing their state.
|
|
121
|
+
* Changes happened in {@link HTMLElement} are propagate to {@link CustomControl}, and vice-versa.
|
|
122
|
+
* - Initializes {@link CustomControl} with initial state of {@link HTMLElement}
|
|
123
|
+
* - Set event handlers from {@link CustomControl}, applying changes to {@link HTMLElement}
|
|
124
|
+
* - Set event handlers from {@link HTMLElement}, applying changes to {@link CustomControl}
|
|
125
|
+
* - Return a function to disconnect {@link HTMLElement} and {@link CustomControl}.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const customInput: CustomControlInitializer = (element, control) => {
|
|
130
|
+
* if (!(element instanceof HTMLInputElement)) {
|
|
131
|
+
* throw new Error("Element is not an input element");
|
|
132
|
+
* }
|
|
133
|
+
*
|
|
134
|
+
* // configure the custom control
|
|
135
|
+
* control.update({
|
|
136
|
+
* newline: "\n",
|
|
137
|
+
* paragraph: "\n\n",
|
|
138
|
+
* });
|
|
139
|
+
*
|
|
140
|
+
* const updateCustomControl = () => {
|
|
141
|
+
* control.update({
|
|
142
|
+
* text: element.value,
|
|
143
|
+
* selection: {
|
|
144
|
+
* start: element.selectionStart ?? 0,
|
|
145
|
+
* length: (element.selectionEnd ?? 0) - (element.selectionStart ?? 0),
|
|
146
|
+
* },
|
|
147
|
+
* focus: element === element.ownerDocument.activeElement,
|
|
148
|
+
* });
|
|
149
|
+
* };
|
|
150
|
+
*
|
|
151
|
+
* // initial state for web-tcl
|
|
152
|
+
* updateCustomControl();
|
|
153
|
+
*
|
|
154
|
+
* // handle events coming from web-tcl
|
|
155
|
+
* control.handle("selection", ({ start, end }) => {
|
|
156
|
+
* element.setSelectionRange(start, end);
|
|
157
|
+
* });
|
|
158
|
+
*
|
|
159
|
+
* control.handle("text", ({ value, start, length }) => {
|
|
160
|
+
* if (!value) {
|
|
161
|
+
* element.value = "";
|
|
162
|
+
* } else {
|
|
163
|
+
* element.value = `${element.value.slice(0, start)}${value}${element.value.slice(start + length)}`;
|
|
164
|
+
* }
|
|
165
|
+
* element.dispatchEvent(new Event("change", { bubbles: true }));
|
|
166
|
+
* });
|
|
167
|
+
*
|
|
168
|
+
* control.handle("focus", (focus) => {
|
|
169
|
+
* if (focus) {
|
|
170
|
+
* element.focus();
|
|
171
|
+
* } else {
|
|
172
|
+
* element.blur();
|
|
173
|
+
* }
|
|
174
|
+
* });
|
|
175
|
+
*
|
|
176
|
+
* // handle events coming from the HTML element
|
|
177
|
+
* element.addEventListener("input", notifyCustomControl);
|
|
178
|
+
* element.addEventListener("change", notifyCustomControl);
|
|
179
|
+
* element.addEventListener("select", notifyCustomControl);
|
|
180
|
+
* element.addEventListener("focusin", notifyCustomControl);
|
|
181
|
+
* element.addEventListener("focusout", notifyCustomControl);
|
|
182
|
+
*
|
|
183
|
+
* return function () {
|
|
184
|
+
* element.removeEventListener("input", notifyCustomControl);
|
|
185
|
+
* element.removeEventListener("change", notifyCustomControl);
|
|
186
|
+
* element.removeEventListener("select", notifyCustomControl);
|
|
187
|
+
* element.removeEventListener("focusin", notifyCustomControl);
|
|
188
|
+
* element.removeEventListener("focusout", notifyCustomControl);
|
|
189
|
+
* };
|
|
190
|
+
* };
|
|
191
|
+
* ```
|
|
192
|
+
* @param element
|
|
193
|
+
* @param control
|
|
194
|
+
* @returns a function to remove event handlers, disconnecting {@link HTMLElement} and {@link CustomControl}.
|
|
195
|
+
*/
|
|
196
|
+
export type CustomControlInitializer = (element: HTMLElement, control: CustomControl) => () => void;
|
|
197
|
+
/**
|
|
198
|
+
* Collection of {@link CustomControl} - key is string, value is {@link CustomControlInitializer}
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* const customControls = {
|
|
202
|
+
* "customControlType": function (element: HTMLElement, control: CustomControl) {
|
|
203
|
+
* // implementation
|
|
204
|
+
* },
|
|
205
|
+
* }
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export interface CustomControlCollection {
|
|
209
|
+
readonly [name: string]: CustomControlInitializer;
|
|
210
|
+
readonly [name: number]: never;
|
|
211
|
+
readonly [name: symbol]: never;
|
|
212
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CustomControl, CustomControlInitializer, CustomControlCollection, CustomControlCommand, CustomControlState } from "./custom-control";
|
|
2
|
+
export type { CustomControl, CustomControlInitializer, CustomControlCollection, CustomControlCommand, CustomControlState, };
|
|
3
|
+
export declare const CustomControls: {
|
|
4
|
+
readonly inputCustomControl: CustomControlInitializer;
|
|
5
|
+
readonly textareaCustomControl: CustomControlInitializer;
|
|
6
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.CustomControls=void 0;const t=require("./input-custom-control");const o=require("./textarea-custom-control");exports.CustomControls={inputCustomControl:t.inputCustomControl,textareaCustomControl:o.textareaCustomControl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.inputCustomControl=void 0;const e=function(e,t){if(!(e instanceof HTMLInputElement)){throw new Error("Element must be an input")}t.newline="\n";t.paragraph="\n\n";t.isMultiline=false;const n=()=>{var n,s;t.update({text:e.value,selection:{start:(n=e.selectionStart)!==null&&n!==void 0?n:0,end:(s=e.selectionEnd)!==null&&s!==void 0?s:0},focus:e===e.ownerDocument.activeElement})};n();t.handle("text",({value:t,start:n,length:s})=>{e.value=e.value.slice(0,n)+t+e.value.slice(n+s);e.dispatchEvent(new Event("change",{bubbles:true}))});t.handle("selection",({start:t,end:n})=>{e.setSelectionRange(t,n)});t.handle("focus",t=>{if(t){e.focus()}else{e.blur()}});e.addEventListener("input",n);e.addEventListener("change",n);e.addEventListener("select",n);e.addEventListener("focusin",n);e.addEventListener("focusout",n);return function(){e.removeEventListener("input",n);e.removeEventListener("change",n);e.removeEventListener("select",n);e.removeEventListener("focusin",n);e.removeEventListener("focusout",n)}};exports.inputCustomControl=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.textareaCustomControl=void 0;const e=function(e,t){if(!(e instanceof HTMLTextAreaElement)){throw new Error("Element must be an input")}t.newline="\n";t.paragraph="\n\n";t.isMultiline=true;const n=()=>{var n,s;t.update({text:e.value,selection:{start:(n=e.selectionStart)!==null&&n!==void 0?n:0,end:(s=e.selectionEnd)!==null&&s!==void 0?s:0},focus:e===e.ownerDocument.activeElement})};n();t.handle("text",({value:t,start:n,length:s})=>{e.value=e.value.slice(0,n)+t+e.value.slice(n+s);e.dispatchEvent(new Event("change",{bubbles:true}))});t.handle("selection",({start:t,end:n})=>{e.setSelectionRange(t,n)});t.handle("focus",t=>{if(t){e.focus()}else{e.blur()}});e.addEventListener("input",n);e.addEventListener("change",n);e.addEventListener("select",n);e.addEventListener("focusin",n);e.addEventListener("focusout",n);return function(){e.removeEventListener("input",n);e.removeEventListener("change",n);e.removeEventListener("select",n);e.removeEventListener("focusin",n);e.removeEventListener("focusout",n)}};exports.textareaCustomControl=e;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { WebTCLCommand } from "./commands";
|
|
2
|
+
import { type WebTCLEvent } from "./events";
|
|
3
|
+
import type { WebTCLState } from "./state";
|
|
4
|
+
type Diagnostics = {
|
|
5
|
+
isEnabled: true;
|
|
6
|
+
trace(message: DiagnosticMessage): void;
|
|
7
|
+
} | {
|
|
8
|
+
isEnabled: false;
|
|
9
|
+
};
|
|
10
|
+
export declare function createDiagnostics(): Diagnostics;
|
|
11
|
+
export type DiagnosticMessageMap = {
|
|
12
|
+
"worker-created": object;
|
|
13
|
+
"worker-destroyed": object;
|
|
14
|
+
"command-executing": {
|
|
15
|
+
command: WebTCLCommand;
|
|
16
|
+
};
|
|
17
|
+
"command-executed": {
|
|
18
|
+
command: WebTCLCommand;
|
|
19
|
+
};
|
|
20
|
+
"state-changed": {
|
|
21
|
+
state: WebTCLState;
|
|
22
|
+
newState: WebTCLState;
|
|
23
|
+
trigger: WebTCLEvent;
|
|
24
|
+
};
|
|
25
|
+
"event-dispatching": {
|
|
26
|
+
event: WebTCLEvent;
|
|
27
|
+
};
|
|
28
|
+
"event-dispatched": {
|
|
29
|
+
event: WebTCLEvent;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export type DiagnosticMessage = {
|
|
33
|
+
[K in keyof DiagnosticMessageMap]: {
|
|
34
|
+
type: K;
|
|
35
|
+
} & DiagnosticMessageMap[K];
|
|
36
|
+
}[keyof DiagnosticMessageMap];
|
|
37
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.createDiagnostics=n;const e=require("../package-info");const t=require("./events");let s=0;function n(){var n;const r=s++;switch((n=sessionStorage.getItem("WEBTCL_ENABLE_DIAGNOSTICS"))!==null&&n!==void 0?n:""){case"console":{let s=0;return{isEnabled:true,trace(n){const o=s++;console.log("%s@%s:[%d][%d]:%s at %f\n%s",e.name,e.version,r,o,n.type,(0,t.currentTimestamp)(),JSON.stringify(n,null,2))}}}default:return{isEnabled:false}}}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
export type ControlsMutation = {
|
|
3
|
+
type: "childList";
|
|
4
|
+
target: HTMLElement;
|
|
5
|
+
added: HTMLElement[];
|
|
6
|
+
removed: HTMLElement[];
|
|
7
|
+
} | {
|
|
8
|
+
type: "attributes";
|
|
9
|
+
target: HTMLElement;
|
|
10
|
+
attributeName: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const attributesToObserve: ("data-dragon-container" | "data-nusa-container" | "data-dragon-concept-name" | "data-nusa-concept-name" | "data-dragon-enabled" | "data-nusa-enabled")[];
|
|
13
|
+
export declare function createDomObservable(target: Node): Observable<ControlsMutation>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.attributesToObserve=void 0;exports.createDomObservable=r;const e=require("rxjs");const t=require("./webtcl-attributes");exports.attributesToObserve=[...t.DragonAttributesMap.container,...t.DragonAttributesMap.conceptName,...t.DragonAttributesMap.isEnabled];function r(t){return new e.Observable(e=>{const r=new MutationObserver(t=>{t.forEach(t=>{if(!t.target||t.target.nodeType!==Node.ELEMENT_NODE){return}if(t.type==="childList"){const r=Array.from(t.addedNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE);const o=Array.from(t.removedNodes).filter(e=>e.nodeType===Node.ELEMENT_NODE);if(r.length===0&&o.length===0){return}e.next({type:"childList",target:t.target,added:r,removed:o})}if(t.type==="attributes"&&t.attributeName){e.next({type:"attributes",target:t.target,attributeName:t.attributeName})}})});const o={childList:true,subtree:true,attributes:true,attributeFilter:exports.attributesToObserve};r.observe(t,o);return()=>{r.disconnect()}})}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ProcessingStatus } from "./processing-status";
|
|
2
|
+
import type { WebTCLState } from "./state";
|
|
3
|
+
type EventMap = {
|
|
4
|
+
initialized: Pick<WebTCLState, "isInitialized" | "isDisabled">;
|
|
5
|
+
focusChanged: {
|
|
6
|
+
id: string;
|
|
7
|
+
isFocused: boolean;
|
|
8
|
+
};
|
|
9
|
+
disposed: undefined;
|
|
10
|
+
controlChanged: {
|
|
11
|
+
id: string;
|
|
12
|
+
text: string;
|
|
13
|
+
selection: {
|
|
14
|
+
start: number;
|
|
15
|
+
length: number;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
statusChanged: {
|
|
19
|
+
id: string;
|
|
20
|
+
status: ProcessingStatus;
|
|
21
|
+
};
|
|
22
|
+
controlsChanged: Pick<WebTCLState, "textControls" | "focusedControl">;
|
|
23
|
+
};
|
|
24
|
+
export type WebTCLEvents = {
|
|
25
|
+
[K in keyof EventMap]: EventMap[K] extends undefined ? {
|
|
26
|
+
type: K;
|
|
27
|
+
timestamp: number;
|
|
28
|
+
} : {
|
|
29
|
+
type: K;
|
|
30
|
+
timestamp: number;
|
|
31
|
+
} & EventMap[K];
|
|
32
|
+
};
|
|
33
|
+
export type WebTCLEvent = WebTCLEvents[keyof WebTCLEvents];
|
|
34
|
+
/**
|
|
35
|
+
* Get the current time in high resolution milliseconds
|
|
36
|
+
* @returns the current time in milliseconds
|
|
37
|
+
*/
|
|
38
|
+
export declare const currentTimestamp: () => number;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.currentTimestamp=void 0;const e=()=>performance.timeOrigin+performance.now();exports.currentTimestamp=e;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CustomControlCollection } from "./custom-controls";
|
|
2
|
+
/**
|
|
3
|
+
* Options for configuring iframe message handling.
|
|
4
|
+
*
|
|
5
|
+
* @property contextWindow - The window context in which the iframe is running.
|
|
6
|
+
* @property customControls - (Optional) A collection of custom controls to be used within the iframe.
|
|
7
|
+
*/
|
|
8
|
+
export type IframeMessagesOptions = {
|
|
9
|
+
contextWindow: Window;
|
|
10
|
+
customControls?: CustomControlCollection;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Subscribes to messages sent to the current window from its parent and forwards them as commmands to the web-tcl client.
|
|
14
|
+
* It also subscribes to events coming from the web-tcl client and fowards them to its parent as messages.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* **IMPORTANT:** This function should only be called when running inside an iframe.
|
|
18
|
+
*
|
|
19
|
+
* - Listens for messages from the parent window and forwards them to the WebTCL client.
|
|
20
|
+
* - Forwards events from the WebTCL client back to the parent window using `postMessage`.
|
|
21
|
+
* - Manages all subscriptions and resources, cleaning them up when the returned unsubscribe function is called.
|
|
22
|
+
*
|
|
23
|
+
* @param options - Configuration options for the subscription.
|
|
24
|
+
* @param options.contextWindow - The window context in which the iframe is running.
|
|
25
|
+
* @param options.customControls - (Optional) A collection of custom control types to be used within the iframe.
|
|
26
|
+
* @returns A cleanup function that unsubscribes from all events and disposes the WebTCL client.
|
|
27
|
+
* @throws Error if called outside of an iframe context.
|
|
28
|
+
*/
|
|
29
|
+
export declare function subscribeToIframeMessages({ contextWindow, customControls }: IframeMessagesOptions): () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.subscribeToIframeMessages=n;const e=require("rxjs");const r=require("./webtcl-client");const s=require("./webtcl-controller");const t=require("../speech-document");const o=require("../logger/logging");function n({contextWindow:n,customControls:a}){if(!i(n)){throw Error("Not running inside an iframe")}const c=(0,s.createController)({speechdocument:new t.SpeechDocument({customControls:a})});const u=(0,r.createClient)({controller:c});const g=new e.Subscription;let d="";function m(e){try{if(!d){o.logger.warning("iframe-support.sendToParent","originOfSubscriber is not set");return}n.parent.postMessage(e,d)}catch(e){o.logger.error("iframe-support.subscribeToIframeMessages","Failed to send message to parent:",e)}}const p=(0,e.fromEvent)(n,"message");g.add(p.subscribe(e=>{if(!e.data){o.logger.debug("iframe-support.messages$.subscribe","message.data is empty");return}if(e.source!==n.parent){o.logger.debug("iframe-support.messages$.subscribe",`message is not from parent`);return}if(!c.isValidCommand(e.data)){o.logger.debug("iframe-support.messages$.subscribe","message.data is not a valid WebTCLCommand");return}if(e.data.type==="initialize"){d=e.origin}u.commands.send(e.data)}));g.add(u.events.receiveAll().subscribe(e=>{m(e)}));n.parent.postMessage({type:"dragon-iframe-support-ready"},"*");return()=>{u.dispose();g.unsubscribe()}}function i(e){try{return e.self!==e.top}catch(e){return true}}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { WebTCLClient } from "./webtcl-client";
|
|
2
|
+
import type { CustomControlInitializer, CustomControlCollection } from "./custom-controls";
|
|
3
|
+
import { getAttributeValue, setAttributeValue, hasAttribute, removeAttribute } from "./webtcl-attributes";
|
|
4
|
+
export type { WebTCLCommands, WebTCLCommand } from "./commands";
|
|
5
|
+
export type { WebTCLEvents, WebTCLEvent } from "./events";
|
|
6
|
+
export type { WebTCLState } from "./state";
|
|
7
|
+
export type { WebTCLClient };
|
|
8
|
+
export { subscribeToIframeMessages } from "./iframe-support";
|
|
9
|
+
export type { AdditionalReplaceTextParameters, FormattingBoundary } from "./types";
|
|
10
|
+
export { FormattingBoundaries } from "./types";
|
|
11
|
+
export declare const webTCLAttributes: {
|
|
12
|
+
getValue: typeof getAttributeValue;
|
|
13
|
+
setValue: typeof setAttributeValue;
|
|
14
|
+
has: typeof hasAttribute;
|
|
15
|
+
remove: typeof removeAttribute;
|
|
16
|
+
};
|
|
17
|
+
export type { CustomControlInitializer, CustomControlCollection };
|
|
18
|
+
export type WebTCLClientOptions = {
|
|
19
|
+
selector: string;
|
|
20
|
+
/**
|
|
21
|
+
* Custom Controls
|
|
22
|
+
* @see {@link CustomControlCollection}
|
|
23
|
+
*/
|
|
24
|
+
customControls?: CustomControlCollection;
|
|
25
|
+
};
|
|
26
|
+
export declare function createClient({ customControls, ...otherOptions }: WebTCLClientOptions): WebTCLClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.webTCLAttributes=exports.FormattingBoundaries=exports.subscribeToIframeMessages=void 0;exports.createClient=i;const e=require("tslib");const t=require("../speech-document");const r=require("./webtcl-controller");const s=require("./webtcl-client");const o=require("./webtcl-attributes");var u=require("./iframe-support");Object.defineProperty(exports,"subscribeToIframeMessages",{enumerable:true,get:function(){return u.subscribeToIframeMessages}});var n=require("./types");Object.defineProperty(exports,"FormattingBoundaries",{enumerable:true,get:function(){return n.FormattingBoundaries}});exports.webTCLAttributes={getValue:o.getAttributeValue,setValue:o.setAttributeValue,has:o.hasAttribute,remove:o.removeAttribute};function i(o){var{customControls:u}=o,n=e.__rest(o,["customControls"]);const i=(0,r.createController)(Object.assign(Object.assign({},n),{speechdocument:new t.SpeechDocument({customControls:u})}));return(0,s.createClient)({controller:i})}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ProcessingStatus = "pending" | "idle";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|