Files
infineon_plc/Packages/Beckhoff.TwinCAT.HMI.Framework.14.3.360/runtimes/native1.12-tchmi/Lib/EsHelper.js
m.heisig 2d11c43579 Added minimal functionality for Robot teaching
- Added minimal HMI
- Added possibility to open and close all chamber doors
2026-01-17 09:20:39 +01:00

71 lines
3.8 KiB
JavaScript

// @ts-check
/// <reference path="../TcHmi.d.ts" />
/* eslint-disable no-var */
/**
* Extends an object with inheritance information.
* If you see here an error this is probably a problem with inheritance, include order or missing dependency.
* @preserve (Part of the public API)
*/
// Override __extends from tslib!
var __extends = (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (
b === undefined
&& d && d.name
&& TcHmi && TcHmi.Log && TcHmi.Log.error
) {
TcHmi.Log.error('Inheritance parent of control type "' + d.name + '" is not known and will therefore not be available.' +
'\nPossible reasons:' +
'\n- Related source file is not included in html document.' +
'\n- Related source file is not included in required order in html document.'
);
throw new TypeError('Inheritance parent of control type "' + d.name + '" is not known.');
}
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
/**
* Add compatibility for `_super.call(xy)` calls of (customer) ES5 controls.
*
* This `call` throws with native ES6 classes, so we reroute this call to a no-op.
* TcHmiFramework will fix the constructor chain on instanciation.
*
* Note: The __extends helper is only called from transpiled ES5 controls.
* @preserve (Part of the public API)
*/
if (
!b.hasOwnProperty('call') // Detect defineProperty in base control, so 'call' is only overwritten once
&& b.prototype instanceof TcHmi.Controls.System.baseTcHmiControl // Do not hack other TS constructs
&& b.toString().startsWith('class') // ES6 requires this for native classes (ClassDeclaration) and we only want to tune these
) {
// ES5 transpiled controls call _super.call(this, element, pcElement, attrs) which throws on native ES6 classes
Object.defineProperty(b, 'call', {
// Warning: Don't use variable d in here, as d is the first extended class and perhaps not the current one
get: function () {
if (!this.toString().startsWith('class')) { // Better performance but harder to understand: if (!this.hasOwnProperty('call')) {
// We are a transpiled ES5 class. But got called in the prototype chain of the ES6 inheritance parent!
return function controlInheritanceCallthrough(derivedCtrlObj, element, pcElement, attrs, ...rest) {
// Use "apply", as "call" is tainted in the prototype chain with this defineProperty
this.apply(derivedCtrlObj, [element, pcElement, attrs, ...rest]);
};
} else {
// We are a native ES6 class. Our constructor is called from the controlManger so our 'call' has to be a no-op (but must not throw)
return function controlInheritanceCallUpgrade(derivedCtrlObj, element, pcElement, attrs) {
return derivedCtrlObj;
};
}
}
});
}
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();