Added minimal functionality for Robot teaching

- Added minimal HMI
- Added possibility to open and close all chamber doors
This commit is contained in:
2026-01-17 09:20:39 +01:00
parent 9f058db2a3
commit 2d11c43579
2274 changed files with 912690 additions and 162 deletions

View File

@@ -0,0 +1,20 @@
export declare class ContextMenu extends HTMLElement {
private __target;
private __container;
private __isShowing;
private __contextMenuOnCb?;
constructor(target: HTMLElement, container: HTMLElement);
connectedCallback(): void;
disconnectedCallback(): void;
toggleMenuOn(): void;
toggleMenuOff(): void;
removeTargetContextMenuEventListener(): void;
set contextMenuOnCb(cb: () => any | undefined);
private __addEvents;
private __removeEvents;
private __onContextMenu;
private __onClickAway;
private __onEscape;
private __positionMenu;
}
//# sourceMappingURL=ContextMenu.d.ts.map

View File

@@ -0,0 +1 @@
var __runInitializers=this&&this.__runInitializers||function(thisArg,initializers,value){for(var useValue=arguments.length>2,i=0;i<initializers.length;i++)value=useValue?initializers[i].call(thisArg,value):initializers[i].call(thisArg);return useValue?value:void 0},__esDecorate=this&&this.__esDecorate||function(ctor,descriptorIn,decorators,contextIn,initializers,extraInitializers){function accept(f){if(void 0!==f&&"function"!=typeof f)throw new TypeError("Function expected");return f}for(var _,kind=contextIn.kind,key="getter"===kind?"get":"setter"===kind?"set":"value",target=!descriptorIn&&ctor?contextIn.static?ctor:ctor.prototype:null,descriptor=descriptorIn||(target?Object.getOwnPropertyDescriptor(target,contextIn.name):{}),done=!1,i=decorators.length-1;i>=0;i--){var context={};for(var p in contextIn)context[p]="access"===p?{}:contextIn[p];for(var p in contextIn.access)context.access[p]=contextIn.access[p];context.addInitializer=function(f){if(done)throw new TypeError("Cannot add initializers after decoration has completed");extraInitializers.push(accept(f||null))};var result=(0,decorators[i])("accessor"===kind?{get:descriptor.get,set:descriptor.set}:descriptor[key],context);if("accessor"===kind){if(void 0===result)continue;if(null===result||"object"!=typeof result)throw new TypeError("Object expected");(_=accept(result.get))&&(descriptor.get=_),(_=accept(result.set))&&(descriptor.set=_),(_=accept(result.init))&&initializers.unshift(_)}else(_=accept(result))&&("field"===kind?initializers.unshift(_):descriptor[key]=_)}target&&Object.defineProperty(target,contextIn.name,descriptor),done=!0};let ContextMenu=(()=>{var _a,_b,_c;let ___onContextMenu_decorators,___onClickAway_decorators,___onEscape_decorators,_classSuper=HTMLElement,_instanceExtraInitializers=[];return class extends _classSuper{static{const _metadata="function"==typeof Symbol&&Symbol.metadata?Object.create(_classSuper[Symbol.metadata]??null):void 0;___onContextMenu_decorators=[(_a=TcHmi).CallbackMethod.bind(_a)],___onClickAway_decorators=[(_b=TcHmi).CallbackMethod.bind(_b)],___onEscape_decorators=[(_c=TcHmi).CallbackMethod.bind(_c)],__esDecorate(this,null,___onContextMenu_decorators,{kind:"method",name:"__onContextMenu",static:!1,private:!1,access:{has:obj=>"__onContextMenu"in obj,get:obj=>obj.__onContextMenu},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onClickAway_decorators,{kind:"method",name:"__onClickAway",static:!1,private:!1,access:{has:obj=>"__onClickAway"in obj,get:obj=>obj.__onClickAway},metadata:_metadata},null,_instanceExtraInitializers),__esDecorate(this,null,___onEscape_decorators,{kind:"method",name:"__onEscape",static:!1,private:!1,access:{has:obj=>"__onEscape"in obj,get:obj=>obj.__onEscape},metadata:_metadata},null,_instanceExtraInitializers),_metadata&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:_metadata})}__target=__runInitializers(this,_instanceExtraInitializers);__container;__isShowing=!1;__contextMenuOnCb=void 0;constructor(target,container){super(),this.__target=target,this.__container=container,this.__target.addEventListener("contextmenu",this.__onContextMenu)}connectedCallback(){}disconnectedCallback(){}toggleMenuOn(){this.__isShowing||(this.__isShowing=!0,this.__container.append(this),this.__addEvents(),this.__contextMenuOnCb?.())}toggleMenuOff(){this.__isShowing&&(this.__isShowing=!1,this.remove(),this.__removeEvents())}removeTargetContextMenuEventListener(){this.__target.removeEventListener("contextmenu",this.__onContextMenu)}set contextMenuOnCb(cb){this.__contextMenuOnCb=cb}__addEvents(){window.addEventListener("keyup",this.__onEscape),document.addEventListener("click",this.__onClickAway)}__removeEvents(){window.removeEventListener("keyup",this.__onEscape),document.removeEventListener("click",this.__onClickAway)}__onContextMenu(event){event.preventDefault(),this.toggleMenuOn(),this.__positionMenu(event)}__onClickAway(event){event.target.closest("beckhoff-tchmi-context-menu-calculator")||this.toggleMenuOff()}__onEscape(event){"Escape"===event.key&&this.toggleMenuOff()}__positionMenu(event){const pointerPos_x=event.pageX,pointerPos_y=event.pageY,containerClientRect=this.__container.parentElement.getBoundingClientRect(),menuClientRect=this.getBoundingClientRect();pointerPos_x+menuClientRect.width<containerClientRect.x+containerClientRect.width?this.style.left=pointerPos_x-containerClientRect.x+"px":this.style.left=containerClientRect.width-menuClientRect.width+"px",pointerPos_y+menuClientRect.height<containerClientRect.y+containerClientRect.height?this.style.top=pointerPos_y-containerClientRect.y+"px":this.style.top=containerClientRect.height-menuClientRect.height+"px"}}})();export{ContextMenu};customElements.define("beckhoff-tchmi-context-menu-calculator",ContextMenu);

View File

@@ -0,0 +1,3 @@
import type { Layout } from '../TcHmiCalculator.esm.js';
export declare const layout: Layout;
//# sourceMappingURL=Scientific.d.ts.map

View File

@@ -0,0 +1 @@
export const layout={name:"Scientific",dimensions:{width:400,height:400},keys:[{geometry:{top:0,left:0,width:10.38,height:18.4},key:"RadDeg",label:"Rad Deg"},{geometry:{top:0,left:12.38,width:10.38,height:18.4},key:"EXP",label:"EXP"},{geometry:{top:0,left:24.75,width:10.38,height:18.4},key:"mod",label:"mod"},{geometry:{top:0,left:37.12,width:10.38,height:18.4},key:"Faculty",label:"n!"},{geometry:{top:0,left:52.49,width:10.38,height:18.4},key:"Backspace",label:{svg:{dimensions:{width:22,height:14},path:"M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3"},type:"svg"}},{geometry:{top:0,left:64.87,width:10.38,height:18.4},key:"ClearAll",label:"C"},{geometry:{top:0,left:77.25,width:10.38,height:18.4},key:"Percentage",label:"%"},{geometry:{top:0,left:89.62,width:10.38,height:18.4},key:"Division",label:"÷"},{geometry:{top:20.4,left:0,width:10.38,height:18.4},key:"sin",label:"sin"},{geometry:{top:20.4,left:12.38,width:10.38,height:18.4},key:"asin",label:"asin"},{geometry:{top:20.4,left:24.75,width:10.38,height:18.4},key:"ln",label:"ln"},{geometry:{top:20.4,left:37.12,width:10.38,height:18.4},key:"log",label:"log"},{geometry:{top:20.4,left:52.49,width:10.38,height:18.4},key:"7",label:"7"},{geometry:{top:20.4,left:64.87,width:10.38,height:18.4},key:"8",label:"8"},{geometry:{top:20.4,left:77.25,width:10.38,height:18.4},key:"9",label:"9"},{geometry:{top:20.4,left:89.62,width:10.38,height:18.4},key:"Multiplication",label:"×"},{geometry:{top:40.8,left:0,width:10.38,height:18.4},key:"cos",label:"cos"},{geometry:{top:40.8,left:12.38,width:10.38,height:18.4},key:"acos",label:"acos"},{geometry:{top:40.8,left:24.75,width:10.38,height:18.4},key:"xPowN",label:"x ⁿ"},{geometry:{top:40.8,left:37.12,width:10.38,height:18.4},key:"xPow2",label:"x ²"},{geometry:{top:40.8,left:52.49,width:10.38,height:18.4},key:"4",label:"4"},{geometry:{top:40.8,left:64.87,width:10.38,height:18.4},key:"5",label:"5"},{geometry:{top:40.8,left:77.25,width:10.38,height:18.4},key:"6",label:"6"},{geometry:{top:40.8,left:89.62,width:10.38,height:18.4},key:"Subtraction",label:"-"},{geometry:{top:61.2,left:0,width:10.38,height:18.4},key:"tan",label:"tan"},{geometry:{top:61.2,left:12.38,width:10.38,height:18.4},key:"atan",label:"atan"},{geometry:{top:61.2,left:24.75,width:10.38,height:18.4},key:"nRoot",label:"ⁿ√x"},{geometry:{top:61.2,left:37.12,width:10.38,height:18.4},key:"2Root",label:"²√x"},{geometry:{top:61.2,left:52.49,width:10.38,height:18.4},key:"1",label:"1"},{geometry:{top:61.2,left:64.87,width:10.38,height:18.4},key:"2",label:"2"},{geometry:{top:61.2,left:77.25,width:10.38,height:18.4},key:"3",label:"3"},{geometry:{top:61.2,left:89.62,width:10.38,height:18.4},key:"Addition",label:"+"},{geometry:{top:81.6,left:0,width:10.38,height:18.4},key:"e",label:"e"},{geometry:{top:81.6,left:12.38,width:10.38,height:18.4},key:"PI",label:"π"},{geometry:{top:81.6,left:24.75,width:10.38,height:18.4},key:"(",label:"("},{geometry:{top:81.6,left:37.12,width:10.38,height:18.4},key:")",label:")"},{geometry:{top:81.6,left:52.49,width:10.38,height:18.4},key:"Negation",label:"+/-"},{geometry:{top:81.6,left:64.87,width:10.38,height:18.4},key:"0",label:"0"},{geometry:{top:81.6,left:77.25,width:10.38,height:18.4},key:"DecimalSeparator",label:"."},{geometry:{top:81.6,left:89.62,width:10.38,height:18.4},key:"Equation",label:"="}]};

View File

@@ -0,0 +1,3 @@
import type { Layout } from '../TcHmiCalculator.esm.js';
export declare const layout: Layout;
//# sourceMappingURL=Standard.d.ts.map

View File

@@ -0,0 +1 @@
export const layout={name:"Standard",dimensions:{width:400,height:400},keys:[{geometry:{top:0,left:0,width:23.5,height:18.4},key:"Backspace",label:{svg:{dimensions:{width:22,height:14},path:"M 0.5 7 L 7 0.5 L 21.5 0.5 L 21.5 13.5 L 7 13.5 Z M 10 3 L 18 11 M 10 11 L 18 3"},type:"svg"}},{geometry:{top:0,left:25.5,width:23.5,height:18.4},key:"ClearAll",label:"C"},{geometry:{top:0,left:51,width:23.5,height:18.4},key:"Percentage",label:"%"},{geometry:{top:0,left:76.5,width:23.5,height:18.4},key:"Division",label:"÷"},{geometry:{top:20.4,left:0,width:23.5,height:18.4},key:"7",label:"7"},{geometry:{top:20.4,left:25.5,width:23.5,height:18.4},key:"8",label:"8"},{geometry:{top:20.4,left:51,width:23.5,height:18.4},key:"9",label:"9"},{geometry:{top:20.4,left:76.5,width:23.5,height:18.4},key:"Multiplication",label:"×"},{geometry:{top:40.8,left:0,width:23.5,height:18.4},key:"4",label:"4"},{geometry:{top:40.8,left:25.5,width:23.5,height:18.4},key:"5",label:"5"},{geometry:{top:40.8,left:51,width:23.5,height:18.4},key:"6",label:"6"},{geometry:{top:40.8,left:76.5,width:23.5,height:18.4},key:"Subtraction",label:"-"},{geometry:{top:61.2,left:0,width:23.5,height:18.4},key:"1",label:"1"},{geometry:{top:61.2,left:25.5,width:23.5,height:18.4},key:"2",label:"2"},{geometry:{top:61.2,left:51,width:23.5,height:18.4},key:"3",label:"3"},{geometry:{top:61.2,left:76.5,width:23.5,height:18.4},key:"Addition",label:"+"},{geometry:{top:81.6,left:0,width:23.5,height:18.4},key:"Negation",label:"+/-"},{geometry:{top:81.6,left:25.5,width:23.5,height:18.4},key:"0",label:"0"},{geometry:{top:81.6,left:51,width:23.5,height:18.4},key:"DecimalSeparator",label:"."},{geometry:{top:81.6,left:76.5,width:23.5,height:18.4},key:"Equation",label:"="}]};

View File

@@ -0,0 +1,362 @@
declare global {
namespace math {
function evaluate(expression: string): number;
}
}
import { ContextMenu } from './ContextMenu.js';
declare class TcHmiCalculator extends TcHmi.Controls.System.TcHmiControl {
#private;
constructor(element: JQuery, pcElement: JQuery, attrs: TcHmi.Controls.ControlAttributeList);
/** Reference to the current layout keys dom events destroy functions. */
protected __destroyLayoutKeysDomEvents: TcHmi.DestroyFunction[];
/** Reference to the menu keys dom events destroy functions. */
protected __destroyMenuKeysDomEvents: TcHmi.DestroyFunction[];
/** Reference to the history elements dom events destroy functions. */
protected __destroyHistoryElementsDomEvents: TcHmi.DestroyFunction[];
/** Internal reference to the attribute "data-tchmi-result" */
protected __result: number | null | undefined;
/** Internal reference to the attribute "data-tchmi-default-layout" */
protected __layout: LayoutName | null | undefined;
/** Reference to the root dom element of the current control template as HTMLElement. */
protected __elementTemplateRoot: HTMLElement;
/** Reference to the calculator container element. */
protected __elementCalculatorContainer: HTMLElement;
/** Reference to the calculator history container element. */
protected __elementHistoryContainer: HTMLElement;
/** Reference to the calculator history scroll container element. */
protected __elementHistoryScrollContainer: HTMLElement;
/** Reference to the calculator history menu container element. */
protected __elementHistoryMenuContainer: HTMLElement;
/** Reference to the calculator full display container element. */
protected __elementFullDisplayContainer: HTMLElement;
/** Reference to the calculator keyboard container element. */
protected __elementKeyboardContainer: HTMLElement;
/** Reference to the calculator display term container element. */
protected __elementDisplayTermContainer: HTMLElement;
/** Reference to the calculator display term input element. */
protected __elementDisplayResultTermInput: HTMLInputElement;
/** Reference to the calculator display result container element. */
protected __elementDisplayResultTermContainer: HTMLElement;
/** Reference to the calculator display result span element. */
protected __elementDisplayTermSpan: HTMLSpanElement;
/** Reference to the calculator menu bar container element. */
protected __elementMenuBarContainer: HTMLElement;
/** Reference to the calculator menu scientific icon element. */
protected __elementScientificIcon: HTMLElement;
/** Reference to the calculator menu history icon element. */
protected __elementHistoryIcon: HTMLElement;
/** Reference to the calculator delete history icon element. */
protected __elementDeleteHistoryIcon: HTMLElement;
/** Reference to the calculator copy icon container element. */
protected __elementResultCopyIconContainer: HTMLElement;
/** Reference to the calculator input context menu element. */
protected __elementInputContextMenu: ContextMenu;
/** The current layout object*/
protected __layoutObject: Layout | undefined;
/** Button elements of the current keyboard layout */
protected __currentKeyboardButtons: WeakMap<Key, HTMLElement | SVGElement>;
/** History elements of the calculator */
protected __historyElements: HTMLElement[];
/** Cache for history entries */
protected __historyCache: HistoryEntry[];
/** Display term buffer*/
protected __displayTermBuffer: string[];
/** Keep alive old value */
protected __oldResult: string;
/** Indicates if the last operation was an equation */
protected __lastOperationWasEquation: boolean;
/** Indicates if the calculator is in degrees mode */
protected __isDeg: boolean;
/** The current decimal separator*/
protected __decimalSeparator: string;
/** Localization */
protected __localizedElements: Map<HTMLElement, {
key: string;
parameters?: any[];
}>;
protected __localizationReader: TcHmi.Locale.LocalizationReader | undefined;
/**
* If raised, the control object exists in control cache and constructor of each inheritation level was called.
* This function is only to be used by the System. Other function calls are not intended.
*/
__previnit(): void;
/**
* If raised, all attributes have been set to it's default or dom values.
* This function is only to be used by the System. Other function calls are not intended.
*/
__init(): void;
/**
* Is called by the system after the control instance gets part of the current DOM.
* This function is only to be used by the System. Other function calls are not intended.
*/
__attach(): void;
/**
* Is called by the system after the control instance is no longer part of the current DOM.
* This function is only to be used by the System. Other function calls are not intended.
*/
__detach(): void;
/**
* Destroy the current control instance.
* Will be called automatically if system destroys control!
*/
destroy(): void;
/**
* Add an element to be localized.
* @param element The element.
* @param key The localization key.
* @param parameters Optional parameters to pass to tchmi_format_string.
*/
private __addLocalizedElement;
/**
* Remove a localized element.
* @param element The element to remove.
*/
private __removeLocalizedElement;
/**
* Sets the result of the member variable result.
* @param valueNew The new value for result
*/
private __setResult;
/**
* Returns the current value of the member variable result.
* @returns the current value of the member variable result.
*/
getResult(): number | null | undefined;
protected __openLayoutFileAsync(layout: Layout): void;
/**
* Adds event listeners to the current layout keys.
* @returns
*/
protected __addEventsToCurrentLayoutKeys(): void;
/**
* EventHandler for the click event of the scientific layout key.
*/
protected __onScientificKeyClick(): void;
/**
* EventHandler for the onResized event.
*/
protected __onHistoryKeyClick(): void;
/**
* EventHandler for the click event of the delete all history icon.
*/
protected __onHistoryAllDeleteClick(): void;
/**
* EventHandler for the click event of the result copy icon.
*/
protected __onResultCopyClick(): void;
/**
* EventHandler for the click event of the display term span element.
*/
protected __onDisplayTermSpanClick(): void;
/**
* EventHandler for the paste event of the display result term input element.
*/
protected __onInputPaste(event: ClipboardEvent): void;
/**
* EventHandler for the click event of keyboard keys.
*/
protected __onKeyboardKeyClick(event: MouseEvent): void;
/**
* EventHandler for the pointerdown event of keyboard keys.
*/
protected __onKeyboardKeyPointerDown(event: MouseEvent): void;
/**
* EventHandler for the pointerup event of keyboard keys.
*/
protected __onKeyboardKeyPointerUp(event: MouseEvent): void;
/**
* EventHandler for the pointerleave event of keyboard keys.
*/
protected __onKeyboardKeyPointerLeave(event: MouseEvent): void;
/**
* EventHandler for the keydown event of the physical keyboard.
* @param event The keyboard event
*/
protected __onKeyDown(event: KeyboardEvent): void;
/**
* sets the layout style (position, dimension, label) of the keys
*/
protected __setLayoutStyles(): void;
/**
* Serializes the key object to the display term and updates the display term buffer.
* @param keyObj The key object to be serialized
*/
protected __serializeKeyToDisplay(keyObj: Key): void;
/**
* Adds term and calculated result to the history container.
* @param historyEntry The history entry to be added, containing term and result.
* @param comesFromCache If true, the history entry comes from cache and should not be saved again.
*/
protected __addToHistory(historyEntry: HistoryEntry, comesFromCache?: boolean): void;
/**
* Creates a context menu for the history element.
* @param element The history element to create the context menu for.
*/
protected __createHistoryElementContextMenu(historyElement: HTMLDivElement): void;
/**
* Creates a context menu for the input element.
* @param element The input element to create the context menu for.
*/
protected __createInputElementContextMenu(inputElement: HTMLInputElement): void;
/**
* EventHandler for the click event of a history element.
* @param event The click event
* @returns
*/
protected __onHistoryElementClick(event: Event): void;
/**
* EventHandler for the contextmenu event of a history element.
* @param event The contextmenu event
* @returns
*/
protected __onHistoryElementContextmenu(event: Event): void;
/**
* EventHandler for the pointerDown event.
*/
protected __onPointerDown(event: Event): void;
/**
* Repairs the display term buffer by iterating over the input value and replacing special characters with their corresponding values.
*/
protected __repairDisplayTermBuffer(): void;
/**
* EventHandler for the click event of the copy icon in the context menu of a history element.
* @param historyElement The history element that was clicked.
* @param contextMenu The context menu that was opened.
* @returns
*/
protected __onHistoryElementCopyClick(historyElement: HTMLElement, contextMenu: ContextMenu): void;
/**
* EventHandler for the click event of the copy icon in the context menu of a input element.
* @param inputElement The input element that was clicked.
* @param contextMenu The context menu that was opened.
* @returns
*/
protected __onInputElementCopyClick(inputElement: HTMLInputElement, contextMenu: ContextMenu): void;
/**
* EventHandler for the click event of the delete icon in the context menu of a history element.
* @param historyElement The history element that was clicked.
* @param contextMenu The context menu that was opened.
*/
protected __onHistoryElementDeleteClick(historyElement: HTMLElement, contextMenu: ContextMenu): void;
/**
* EventHandler for the click event of the paste icon in the context menu of a input element.
* @param inputElement The input element that was clicked.
* @param contextMenu The context menu that was opened.
*/
protected __onInputElementPasteClick(inputElement: HTMLInputElement, contextMenu: ContextMenu): void;
/**
* Deletes the history elements and their events.
* @param elements The elements to be deleted. Can be a single HTMLElement or an array of HTMLElements.
*/
protected __deleteHistoryAndEvents(elements: HTMLElement | HTMLElement[]): void;
protected __extractLastNumberFromBuffer(): string;
/**
* Writes the display term buffer to the display term input field.
*/
protected __writeBufferToDisplayTermInput(): void;
/**
* Parses the term and replaces special characters with their corresponding values.
* @param term The term to be parsed
* @returns The parsed term
*/
protected __parseTermToCalc(term: string): string;
/**
* Replaces (nested) mathematical expressions like log, ln, and square root with their corresponding function calls.
* @param expr The expression to be modified
* @returns The modified expression with log and ln replaced
*/
protected __replaceMathExpressions(expr: string): string;
/**
* Parses the term and replaces special characters with their corresponding values.
* @param term The term to be parsed
* @returns The parsed term
*/
protected __parseTermToDisplay(term: string): string;
/**
* Calculates the term and returns the result.
* @param term The term to be calculated
* @returns The result of the calculation
*/
protected __calculateTerm(term: string): {
value: number;
error: string | undefined;
};
/**
* Opens a layout file and returns the layout object.
* @param layoutFile The name of the layout file to be opened (without the .js extension)
* @returns The layout object
*/
protected __openLayoutFile(layoutFile: LayoutName): Promise<Layout>;
/**
* Get last math operation
* @param term The term to extract the last math operation from
* @returns The last math operation as string
*/
protected __getLastMathOperation(term: string): string;
/**
* Merges single letter math functions in the buffer back into logical operators.
*/
protected __mergeMathFunctionsInBuffer(): void;
protected __insertDeg(expr: string): string;
/**
* Sets the value of layout
* @param valueNew The new value for layout
* Possible Values: Standard, Scientific
*/
setLayout(valueNew: LayoutName | null): void;
/**
* Returns the current value of layout.
* @returns The current value of layout.
*/
getLayout(): LayoutName | null | undefined;
/**
* Processes the current layout attribute value.
*/
__processLayout(): void;
}
type LayoutName = 'Scientific' | 'Standard';
export interface Layout {
name: string;
keys: Key[];
dimensions: Dimensions;
}
interface Key {
geometry: Geometry;
key: string;
label: string | SvgLabelDefinition;
}
interface Geometry {
/** Definition as percent of the full keyboard */
top: number;
/** Definition as percent of the full keyboard */
left: number;
/** Definition as percent of the full keyboard */
width: number;
/** Definition as percent of the full keyboard */
height: number;
}
interface Dimensions {
width: number;
height: number;
}
interface SvgLabelDefinition {
type: string;
svg: {
dimensions: Dimensions;
path: string;
};
}
interface HistoryEntry {
term: string;
result: string;
}
export { TcHmiCalculator as Control };
declare const _TcHmiCalculator: typeof TcHmiCalculator;
type tTcHmiCalculator = TcHmiCalculator;
declare global {
namespace TcHmi.Controls.Beckhoff {
const TcHmiCalculator: typeof _TcHmiCalculator;
type TcHmiCalculator = tTcHmiCalculator;
}
}
//# sourceMappingURL=TcHmiCalculator.esm.d.ts.map

File diff suppressed because one or more lines are too long