prelim TLR
This commit is contained in:
+172
@@ -0,0 +1,172 @@
|
||||
import { DisplayComponent, FSComponent } from '@microsoft/msfs-sdk';
|
||||
const content = `
|
||||
TAKEOFF AND LANDING REPORT VGA 1013 EDDH-EDDF 19JAN25
|
||||
TLR-1 SEQ-123304905 19JAN25 2124Z
|
||||
A/C D-AGHI HEADWIND A339X TRENT 7000-72 BEW/CG 127000/.....
|
||||
|
||||
/// TAKEOFF DATA ///
|
||||
|
||||
APT PRWY POAT PWIND PQNH PMRTW FLP MT V1 VR V2 PTOW MFPTW LIMIT
|
||||
EDDH 15 0.0 077M03 30.15 2510 1 54 30 30 39 1768 1962 AFM
|
||||
|
||||
RMKS FLEX - SEL TEMP 54
|
||||
BLEEDS ON
|
||||
|
||||
---- ---- ------ ----- ------- --- --- --- --- --- -----------------
|
||||
RWY OAT WIND QNH MRTW FLP V1 VR V2 PWR CONFIG/CONDITION
|
||||
|
||||
--------------------------- ACARS RUNWAYS --------------------------
|
||||
RWY ACARS LENGTH PMTOW NOTES
|
||||
05 10663 2510 ILS 110.50
|
||||
15 10564 2510 ILS 109.55
|
||||
23 10663 2510 ILS 111.30
|
||||
33 12028 2510
|
||||
|
||||
-------------------- DRY RWY - PTOW - CALM WIND --------------------
|
||||
RWY MTOW MT CONFIG FLP V1 VR V2 LIMIT
|
||||
05 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
15 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
23 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
33 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
|
||||
--------------- DRY RWY - PTOW PLUS 6000 - CALM WIND ---------------
|
||||
RWY MTOW MT CONFIG FLP V1 VR V2 LIMIT
|
||||
05 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
15 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
23 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
33 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
|
||||
------------- WET RWY - PTOW - CALM WIND - ENG A/I ON --------------
|
||||
RWY MTOW MT CONFIG FLP V1 VR V2 LIMIT
|
||||
05 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
15 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
23 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
33 2510 54 FLEX - BLEEDS ON 1 130 130 139 AFM
|
||||
|
||||
-------- WET RWY - PTOW PLUS 6000 - CALM WIND - ENG A/I ON ---------
|
||||
RWY MTOW MT CONFIG FLP V1 VR V2 LIMIT
|
||||
05 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
15 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
23 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
33 2510 54 FLEX - BLEEDS ON 1 133 133 140 AFM
|
||||
|
||||
/// LANDING DATA ///
|
||||
|
||||
APT PRWY POAT PWIND PQNH PMRLW FLP PLDW LIMIT
|
||||
EDDF 25R M2.0 187M03 30.12 1910 FULL 1716 AFM
|
||||
|
||||
RMKS NONE
|
||||
|
||||
-------- ---- ------ ----- ------- --- ----- --- -------------------
|
||||
RWY OAT WIND QNH MRLW FLP VREF PWR CONFIG/CONDITION
|
||||
|
||||
--------------------------- ACARS RUNWAYS --------------------------
|
||||
RWY ACARS LENGTH PMRLW NOTES
|
||||
07C 13123 1910 ILS 110.55
|
||||
07L 9186 1910 ILS 110.30
|
||||
07R 13123 1910 ILS 110.95
|
||||
18 13123 1910
|
||||
25C 13123 1910 ILS 111.55
|
||||
25L 13123 1910 ILS 111.15
|
||||
25R 9186 1910 ILS 111.35
|
||||
|
||||
------------- FLAPS FULL - PACKS ON - NO ENROUTE ICING -------------
|
||||
DRY RWY / WET RWY
|
||||
07C 07L 07R 18
|
||||
OAT 13123 FT 9186 FT 13123 FT 13123 FT
|
||||
-07 1910A/1910A 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
/-02 1910A/1910A 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
03 1910A/1910A 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
HW/10KT 0/ 0 0/ 0 0/ 0 0/ 0
|
||||
TW/10KT 0/ 0 0/ 0 0/ 0 0/ 0
|
||||
|
||||
25C 25L 25R
|
||||
OAT 13123 FT 13123 FT 9186 FT
|
||||
-07 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
/-02 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
03 1910A/1910A 1910A/1910A 1910A/1910A
|
||||
HW/10KT 0/ 0 0/ 0 0/ 0
|
||||
TW/10KT 0/ 0 0/ 0 0/ 0
|
||||
|
||||
-------- LANDING DISTANCE - FLAPS FULL - MAX MANUAL BRAKING --------
|
||||
ACTUAL FACTORED
|
||||
LDW VREF DRY WET DRY WET
|
||||
1680 129 3362 4243 4471 5485
|
||||
1710 130 3405 4298 4538 5565
|
||||
/ 1740 132 3456 4362 4612 5654
|
||||
1770 133 3507 4426 4687 5744
|
||||
1800 134 3558 4491 4762 5835
|
||||
HW/KT -20 -25 -23 -30
|
||||
TW/KT 62 78 91 110
|
||||
|
||||
END TAKEOFF AND LANDING REPORT VGA 1013 EDDH-EDDF 19JAN25
|
||||
`;
|
||||
function defineDragScroll(ele, horizontalScroll = true, verticalScroll = true) {
|
||||
let pos = { top: 0, left: 0, x: 0, y: 0 };
|
||||
const mouseDownHandler = function (e) {
|
||||
pos = {
|
||||
// The current scroll
|
||||
left: ele.scrollLeft,
|
||||
top: ele.scrollTop,
|
||||
// Get the current mouse position
|
||||
x: e.clientX,
|
||||
y: e.clientY,
|
||||
};
|
||||
document.addEventListener('mousemove', mouseMoveHandler);
|
||||
document.addEventListener('mouseup', mouseUpHandler);
|
||||
document.removeEventListener('mouseleave', mouseUpHandler);
|
||||
};
|
||||
const mouseMoveHandler = function (e) {
|
||||
// How far the mouse has been moved
|
||||
const dx = e.clientX - pos.x;
|
||||
const dy = e.clientY - pos.y;
|
||||
// Scroll the element
|
||||
if (verticalScroll) {
|
||||
ele.scrollTop = pos.top - dy;
|
||||
}
|
||||
if (horizontalScroll) {
|
||||
ele.scrollLeft = pos.left - dx;
|
||||
}
|
||||
};
|
||||
const mouseUpHandler = function (e) {
|
||||
document.removeEventListener('mousemove', mouseMoveHandler);
|
||||
document.removeEventListener('mouseup', mouseUpHandler);
|
||||
document.removeEventListener('mouseleave', mouseUpHandler);
|
||||
};
|
||||
ele.addEventListener('mousedown', mouseDownHandler);
|
||||
}
|
||||
export class TLR extends DisplayComponent {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
onAfterRender() {
|
||||
const ele = document.getElementById('KH_FE_FPLAN');
|
||||
if (ele)
|
||||
defineDragScroll(ele);
|
||||
const toIns = document.getElementById('KH_FE_FPLAN_INS');
|
||||
if (toIns)
|
||||
toIns.onclick = this.toIns;
|
||||
const toTop = document.getElementById('KH_FE_FPLAN_TOP');
|
||||
if (toTop)
|
||||
toTop.onclick = this.toTop;
|
||||
}
|
||||
toIns() {
|
||||
SimVar.SetSimVarValue('L:KH_FE_FPLAN_BOARD', 'number', 2);
|
||||
}
|
||||
toTop() {
|
||||
const ele = document.getElementById('KH_FE_FPLAN');
|
||||
if (ele)
|
||||
ele.scrollTop = 0;
|
||||
}
|
||||
render() {
|
||||
return (FSComponent.buildComponent(FSComponent.Fragment, null,
|
||||
FSComponent.buildComponent("div", { id: "KH_FE_FPLAN" },
|
||||
FSComponent.buildComponent("div", { id: "TLR" },
|
||||
FSComponent.buildComponent("div", null,
|
||||
FSComponent.buildComponent("pre", null, this.props.content)))),
|
||||
FSComponent.buildComponent("div", { id: "KH_CTRL" },
|
||||
FSComponent.buildComponent("button", { id: "KH_FE_FPLAN_TOP" }, "To top"),
|
||||
FSComponent.buildComponent("button", { id: "KH_FE_FPLAN_INS" }, "Switch to INS"))));
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=tlr.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+34
-5
@@ -1,14 +1,43 @@
|
||||
/// <reference types="@microsoft/msfs-types/Pages/VCockpit/Core/VCockpit" />
|
||||
import { FSComponent } from "@microsoft/msfs-sdk";
|
||||
import { Test } from "./components/test/test";
|
||||
import './index.scss';
|
||||
import { EventBus, FSComponent, SimVarPublisher, SimVarValueType, Subject } from '@microsoft/msfs-sdk';
|
||||
import { TLR } from './components/tlr/tlr';
|
||||
class KH_FE_FPLAN extends BaseInstrument {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.bus = new EventBus();
|
||||
this.newDataPublisher = new SimVarPublisher(new Map([['newData', { name: 'L:KH_FE_FPLAN_NEW_DATA', type: SimVarValueType.Bool }]]), this.bus);
|
||||
this.contentPLAN = Subject.create('');
|
||||
this.contentTLR = Subject.create('');
|
||||
}
|
||||
get templateID() {
|
||||
return "KH_FE_FPLAN";
|
||||
return 'kh-fe-fplan';
|
||||
}
|
||||
get isInteractive() {
|
||||
return true;
|
||||
}
|
||||
connectedCallback() {
|
||||
super.connectedCallback();
|
||||
FSComponent.render(FSComponent.buildComponent(Test, null), document.getElementById("InstrumentContent"));
|
||||
this.newDataPublisher.startPublish();
|
||||
this.bus
|
||||
.getSubscriber()
|
||||
.on('newData')
|
||||
.handle((flag) => {
|
||||
var _a, _b;
|
||||
if (!flag)
|
||||
return;
|
||||
SimVar.SetSimVarValue('L:KH_FE_FPLAN_NEW_DATA', 'bool', 0);
|
||||
this.contentPLAN.set(JSON.parse((_a = window.localStorage.getItem('KH_FE_FPLAN_PLAN')) !== null && _a !== void 0 ? _a : ''));
|
||||
this.contentTLR.set(JSON.parse((_b = window.localStorage.getItem('KH_FE_FPLAN_TLR')) !== null && _b !== void 0 ? _b : ''));
|
||||
});
|
||||
window.localStorage.removeItem('KH_FE_FPLAN_PLAN');
|
||||
window.localStorage.removeItem('KH_FE_FPLAN_TLR');
|
||||
FSComponent.render(FSComponent.buildComponent(TLR, { content: this.contentTLR }), document.getElementById('root'));
|
||||
}
|
||||
Update() {
|
||||
super.Update();
|
||||
this.newDataPublisher.onUpdate();
|
||||
}
|
||||
}
|
||||
registerInstrument("KH_FE_FPLAN", KH_FE_FPLAN);
|
||||
registerInstrument('kh-fe-fplan', KH_FE_FPLAN);
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,WAAY,SAAQ,cAAc;IACtC,IAAI,UAAU;QACZ,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,WAAW,CAAC,MAAM,CAAC,2BAAC,IAAI,OAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAED,kBAAkB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC","sourcesContent":["/// <reference types=\"@microsoft/msfs-types/Pages/VCockpit/Core/VCockpit\" />\r\n\r\nimport { FSComponent } from \"@microsoft/msfs-sdk\";\r\nimport { Test } from \"./components/test/test\";\r\n\r\nclass KH_FE_FPLAN extends BaseInstrument {\r\n get templateID(): string {\r\n return \"KH_FE_FPLAN\";\r\n }\r\n\r\n public connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n FSComponent.render(<Test />, document.getElementById(\"InstrumentContent\"));\r\n }\r\n}\r\n\r\nregisterInstrument(\"KH_FE_FPLAN\", KH_FE_FPLAN);\r\n"]}
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAM3C,MAAM,WAAY,SAAQ,cAAc;IAAxC;;QACmB,QAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QAErB,qBAAgB,GAAG,IAAI,eAAe,CACrD,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EACtF,IAAI,CAAC,GAAG,CACT,CAAC;QAEM,gBAAW,GAAG,OAAO,CAAC,MAAM,CAAS,EAAE,CAAC,CAAC;QACzC,eAAU,GAAG,OAAO,CAAC,MAAM,CAAS,EAAE,CAAC,CAAC;IAmClD,CAAC;IAjCC,IAAI,UAAU;QACZ,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG;aACL,aAAa,EAAiB;aAC9B,EAAE,CAAC,SAAS,CAAC;aACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;;YACf,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAA,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,mCAAI,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEL,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAElD,WAAW,CAAC,MAAM,CAAC,2BAAC,GAAG,IAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,CAAC;IAES,MAAM;QACd,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF;AAED,kBAAkB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC","sourcesContent":["/// <reference types=\"@microsoft/msfs-types/Pages/VCockpit/Core/VCockpit\" />\r\nimport './index.scss';\r\n\r\nimport { EventBus, FSComponent, SimVarPublisher, SimVarValueType, Subject } from '@microsoft/msfs-sdk';\r\nimport { TLR } from './components/tlr/tlr';\r\n\r\nexport interface NewDataEvents {\r\n newData: boolean;\r\n}\r\n\r\nclass KH_FE_FPLAN extends BaseInstrument {\r\n private readonly bus = new EventBus();\r\n\r\n private readonly newDataPublisher = new SimVarPublisher<NewDataEvents>(\r\n new Map([['newData', { name: 'L:KH_FE_FPLAN_NEW_DATA', type: SimVarValueType.Bool }]]),\r\n this.bus\r\n );\r\n\r\n private contentPLAN = Subject.create<string>('');\r\n private contentTLR = Subject.create<string>('');\r\n\r\n get templateID(): string {\r\n return 'kh-fe-fplan';\r\n }\r\n\r\n get isInteractive() {\r\n return true;\r\n }\r\n\r\n public connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.newDataPublisher.startPublish();\r\n this.bus\r\n .getSubscriber<NewDataEvents>()\r\n .on('newData')\r\n .handle((flag) => {\r\n if (!flag) return;\r\n SimVar.SetSimVarValue('L:KH_FE_FPLAN_NEW_DATA', 'bool', 0);\r\n this.contentPLAN.set(JSON.parse(window.localStorage.getItem('KH_FE_FPLAN_PLAN') ?? ''));\r\n this.contentTLR.set(JSON.parse(window.localStorage.getItem('KH_FE_FPLAN_TLR') ?? ''));\r\n });\r\n\r\n window.localStorage.removeItem('KH_FE_FPLAN_PLAN');\r\n window.localStorage.removeItem('KH_FE_FPLAN_TLR');\r\n\r\n FSComponent.render(<TLR content={this.contentTLR} />, document.getElementById('root'));\r\n }\r\n\r\n protected Update(): void {\r\n super.Update();\r\n\r\n this.newDataPublisher.onUpdate();\r\n }\r\n}\r\n\r\nregisterInstrument('kh-fe-fplan', KH_FE_FPLAN);\r\n"]}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
import { FSComponent, DisplayComponent, VNode } from "@microsoft/msfs-sdk";
|
||||
|
||||
export class Test extends DisplayComponent<any> {
|
||||
public render(): VNode {
|
||||
return <div class="test">Hello World!</div>;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
import { ComponentProps, DisplayComponent, FSComponent, Subscribable, VNode } from '@microsoft/msfs-sdk';
|
||||
|
||||
function defineDragScroll(ele: HTMLElement, horizontalScroll = true, verticalScroll = true) {
|
||||
let pos = { top: 0, left: 0, x: 0, y: 0 };
|
||||
const mouseDownHandler = function (e: MouseEvent) {
|
||||
pos = {
|
||||
// The current scroll
|
||||
left: ele.scrollLeft,
|
||||
top: ele.scrollTop,
|
||||
// Get the current mouse position
|
||||
x: e.clientX,
|
||||
y: e.clientY,
|
||||
};
|
||||
document.addEventListener('mousemove', mouseMoveHandler);
|
||||
document.addEventListener('mouseup', mouseUpHandler);
|
||||
document.removeEventListener('mouseleave', mouseUpHandler);
|
||||
};
|
||||
const mouseMoveHandler = function (e: MouseEvent) {
|
||||
// How far the mouse has been moved
|
||||
const dx = e.clientX - pos.x;
|
||||
const dy = e.clientY - pos.y;
|
||||
// Scroll the element
|
||||
if (verticalScroll) {
|
||||
ele.scrollTop = pos.top - dy;
|
||||
}
|
||||
if (horizontalScroll) {
|
||||
ele.scrollLeft = pos.left - dx;
|
||||
}
|
||||
};
|
||||
const mouseUpHandler = function (e: MouseEvent) {
|
||||
document.removeEventListener('mousemove', mouseMoveHandler);
|
||||
document.removeEventListener('mouseup', mouseUpHandler);
|
||||
document.removeEventListener('mouseleave', mouseUpHandler);
|
||||
};
|
||||
ele.addEventListener('mousedown', mouseDownHandler);
|
||||
}
|
||||
|
||||
interface TLRProps extends ComponentProps {
|
||||
content: Subscribable<string>;
|
||||
}
|
||||
|
||||
export class TLR extends DisplayComponent<TLRProps> {
|
||||
constructor(props: TLRProps) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
onAfterRender() {
|
||||
const ele = document.getElementById('KH_FE_FPLAN');
|
||||
if (ele) defineDragScroll(ele);
|
||||
const toIns = document.getElementById('KH_FE_FPLAN_INS');
|
||||
if (toIns) toIns.onclick = this.toIns;
|
||||
const toTop = document.getElementById('KH_FE_FPLAN_TOP');
|
||||
if (toTop) toTop.onclick = this.toTop;
|
||||
}
|
||||
|
||||
toIns() {
|
||||
SimVar.SetSimVarValue('L:KH_FE_FPLAN_BOARD', 'number', 2);
|
||||
}
|
||||
|
||||
toTop() {
|
||||
const ele = document.getElementById('KH_FE_FPLAN');
|
||||
if (ele) ele.scrollTop = 0;
|
||||
}
|
||||
|
||||
public render(): VNode {
|
||||
return (
|
||||
<>
|
||||
<div id="KH_FE_FPLAN">
|
||||
<div id="TLR">
|
||||
<div>
|
||||
<pre>{this.props.content}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="KH_CTRL">
|
||||
<button id="KH_FE_FPLAN_TOP">To top</button>
|
||||
<button id="KH_FE_FPLAN_INS">Switch to INS</button>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<script type="text/html" id="KH_FE_FPLAN">
|
||||
<div id="InstrumentContent"></div>
|
||||
<script type="text/html" id="kh-fe-fplan">
|
||||
<div id="root"></div>
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="index.css" />
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
@font-face {
|
||||
font-family: 'Consolas';
|
||||
src: url('./Consolas.ttf') format('truetype');
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
/* Track */
|
||||
::-webkit-scrollbar-track {
|
||||
background: lightgray;
|
||||
}
|
||||
|
||||
/* Handle */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: gray;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
/* Handle on hover */
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: darkgray;
|
||||
}
|
||||
|
||||
#root {
|
||||
--buttonHoverColor: lightgray;
|
||||
--fss-select-hover: lightgray;
|
||||
/* No idea why, zero. I looked at the EFB.css and it has 100%, but doing so screws this over hard */
|
||||
width: 594px;
|
||||
height: 100%;
|
||||
background-image: url(../EFB/Images/bg.png);
|
||||
background-size: 100% 100%;
|
||||
color: #000;
|
||||
font-size: 25px;
|
||||
padding: 3vw;
|
||||
|
||||
#KH_CTRL {
|
||||
height: 80px;
|
||||
background: red;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
}
|
||||
|
||||
#KH_FE_FPLAN {
|
||||
#TLR div {
|
||||
line-height: unset !important;
|
||||
font-size: unset !important;
|
||||
}
|
||||
|
||||
#TLR pre {
|
||||
white-space: pre;
|
||||
line-height: 14px;
|
||||
font-size: 13px;
|
||||
font-family: 'Consolas' !important;
|
||||
}
|
||||
|
||||
#TLR img {
|
||||
width: calc(100vw - 6vw);
|
||||
}
|
||||
|
||||
height: calc(100vh - 6vw - 170px);
|
||||
width: 100%;
|
||||
margin-top: 90px;
|
||||
margin-bottom: 3vw;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
}
|
||||
+44
-5
@@ -1,18 +1,57 @@
|
||||
/// <reference types="@microsoft/msfs-types/Pages/VCockpit/Core/VCockpit" />
|
||||
import './index.scss';
|
||||
|
||||
import { FSComponent } from "@microsoft/msfs-sdk";
|
||||
import { Test } from "./components/test/test";
|
||||
import { EventBus, FSComponent, SimVarPublisher, SimVarValueType, Subject } from '@microsoft/msfs-sdk';
|
||||
import { TLR } from './components/tlr/tlr';
|
||||
|
||||
export interface NewDataEvents {
|
||||
newData: boolean;
|
||||
}
|
||||
|
||||
class KH_FE_FPLAN extends BaseInstrument {
|
||||
private readonly bus = new EventBus();
|
||||
|
||||
private readonly newDataPublisher = new SimVarPublisher<NewDataEvents>(
|
||||
new Map([['newData', { name: 'L:KH_FE_FPLAN_NEW_DATA', type: SimVarValueType.Bool }]]),
|
||||
this.bus
|
||||
);
|
||||
|
||||
private contentPLAN = Subject.create<string>('');
|
||||
private contentTLR = Subject.create<string>('');
|
||||
|
||||
get templateID(): string {
|
||||
return "KH_FE_FPLAN";
|
||||
return 'kh-fe-fplan';
|
||||
}
|
||||
|
||||
get isInteractive() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public connectedCallback(): void {
|
||||
super.connectedCallback();
|
||||
|
||||
FSComponent.render(<Test />, document.getElementById("InstrumentContent"));
|
||||
this.newDataPublisher.startPublish();
|
||||
this.bus
|
||||
.getSubscriber<NewDataEvents>()
|
||||
.on('newData')
|
||||
.handle((flag) => {
|
||||
if (!flag) return;
|
||||
SimVar.SetSimVarValue('L:KH_FE_FPLAN_NEW_DATA', 'bool', 0);
|
||||
this.contentPLAN.set(JSON.parse(window.localStorage.getItem('KH_FE_FPLAN_PLAN') ?? ''));
|
||||
this.contentTLR.set(JSON.parse(window.localStorage.getItem('KH_FE_FPLAN_TLR') ?? ''));
|
||||
});
|
||||
|
||||
window.localStorage.removeItem('KH_FE_FPLAN_PLAN');
|
||||
window.localStorage.removeItem('KH_FE_FPLAN_TLR');
|
||||
|
||||
FSComponent.render(<TLR content={this.contentTLR} />, document.getElementById('root'));
|
||||
}
|
||||
|
||||
protected Update(): void {
|
||||
super.Update();
|
||||
|
||||
this.newDataPublisher.onUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
registerInstrument("KH_FE_FPLAN", KH_FE_FPLAN);
|
||||
registerInstrument('kh-fe-fplan', KH_FE_FPLAN);
|
||||
|
||||
@@ -496,7 +496,6 @@
|
||||
</Component>
|
||||
|
||||
<!-- KHOFMANN START -->
|
||||
|
||||
<Component ID="KH_FE_FPLAN">
|
||||
<Component ID="KH_FE_FPLAN_BOARD_CLICK" Node="KH_FE_FPLAN_BOARD_CLICK">
|
||||
<MouseRect>
|
||||
@@ -518,7 +517,7 @@
|
||||
<ANIM_CODE>(L:KH_FE_FPLAN_BOARD) 30 *</ANIM_CODE>
|
||||
</UseTemplate>
|
||||
</Component>
|
||||
<Component ID="KH_FE_FPLAN_P1_BACK" Node="KH_FE_FPLAN_P1_BACK">
|
||||
<Component ID="KH_FE_FPLAN_P1" Node="KH_FE_FPLAN_P1_1">
|
||||
<UseTemplate Name="ASOBO_GT_Anim">
|
||||
<ANIM_NAME>KH_FE_FPLAN</ANIM_NAME>
|
||||
<ANIM_LENGTH>30</ANIM_LENGTH>
|
||||
@@ -526,11 +525,6 @@
|
||||
<ANIM_CODE>(L:KH_FE_FPLAN_P1) 30 *</ANIM_CODE>
|
||||
</UseTemplate>
|
||||
</Component>
|
||||
<Component ID="KH_FE_FPLAN_P1" Node="KH_FE_FPLAN_P1">
|
||||
<UseTemplate Name="ASOBO_GT_Visibility">
|
||||
<VISIBILITY_CODE>(L:KH_FE_FPLAN_P1) 0 ==</VISIBILITY_CODE>
|
||||
</UseTemplate>
|
||||
</Component>
|
||||
</Component>
|
||||
<!-- KHOFMANN END -->
|
||||
|
||||
|
||||
BIN
Binary file not shown.
+2121
-41
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,192 @@
|
||||
const j6_0xca47fd = (function () {
|
||||
let _0x29bb3f = !![];
|
||||
return function (_0x1eef08, _0x3f53d2) {
|
||||
const _0x1fc5ed = _0x29bb3f
|
||||
? function () {
|
||||
if (_0x3f53d2) {
|
||||
const _0x45f38f = _0x3f53d2['apply'](_0x1eef08, arguments);
|
||||
return (_0x3f53d2 = null), _0x45f38f;
|
||||
}
|
||||
}
|
||||
: function () {};
|
||||
return (_0x29bb3f = ![]), _0x1fc5ed;
|
||||
};
|
||||
})(),
|
||||
j6_0x14eaec = j6_0xca47fd(this, function () {
|
||||
const _0x1c40d9 = function () {
|
||||
let _0x41ef43;
|
||||
try {
|
||||
_0x41ef43 = Function(
|
||||
'retur' +
|
||||
'n\x20(fu' +
|
||||
'nctio' +
|
||||
'n()\x20' +
|
||||
('{}.co' + 'nstru' + 'ctor(' + '\x22retu' + 'rn\x20th' + 'is\x22)(' + '\x20)') +
|
||||
');'
|
||||
)();
|
||||
} catch (_0x5064d1) {
|
||||
_0x41ef43 = window;
|
||||
}
|
||||
return _0x41ef43;
|
||||
},
|
||||
_0xa6d217 = _0x1c40d9(),
|
||||
_0x28f1fd = (_0xa6d217['conso' + 'le'] = _0xa6d217['conso' + 'le'] || {}),
|
||||
_0x427c5e = ['log', 'warn', 'info', 'error', 'excep' + 'tion', 'table', 'trace'];
|
||||
for (let _0x5a262e = 0x0; _0x5a262e < _0x427c5e['lengt' + 'h']; _0x5a262e++) {
|
||||
const _0x361466 = j6_0xca47fd['const' + 'ructo' + 'r']['proto' + 'type']['bind'](j6_0xca47fd),
|
||||
_0x462cef = _0x427c5e[_0x5a262e],
|
||||
_0x195676 = _0x28f1fd[_0x462cef] || _0x361466;
|
||||
(_0x361466['__pro' + 'to__'] = j6_0xca47fd['bind'](j6_0xca47fd)),
|
||||
(_0x361466['toStr' + 'ing'] = _0x195676['toStr' + 'ing']['bind'](_0x195676)),
|
||||
(_0x28f1fd[_0x462cef] = _0x361466);
|
||||
}
|
||||
});
|
||||
j6_0x14eaec();
|
||||
class EFBUtils {
|
||||
static ['setSe' + 'ating' + 'Posit' + 'ion'](_0x183760) {
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('A:CAMERA STATE', 'Number', 0x2),
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('A:CAMERA SUBSTATE', 'Number', 0x1),
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('A:CAMERA REQUEST ACTION', 'Number', 0x1),
|
||||
_0x183760
|
||||
? setTimeout(() => {
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('A:CAMERA VIEW TYPE AND INDEX:1', 'Number', 0x4);
|
||||
}, 0x1f4)
|
||||
: setTimeout(() => {
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('A:CAMERA VIEW TYPE AND INDEX:1', 'Number', 0x1);
|
||||
}, 0x1f4),
|
||||
SimVar['SetSi' + 'mVarV' + 'alue']('L:FSS_B727_EFB_SEATING_POSITION', 'Bool', _0x183760);
|
||||
}
|
||||
static ['impor' + 'tFlig' + 'htPla' + 'n'](_0xc32463) {
|
||||
const _0x382d2b =
|
||||
'https' +
|
||||
'://ww' +
|
||||
'w.sim' +
|
||||
'brief' +
|
||||
'.com/' +
|
||||
'api/x' +
|
||||
'ml.fe' +
|
||||
'tcher' +
|
||||
'.php?' +
|
||||
'usern' +
|
||||
'ame=' +
|
||||
_0xc32463;
|
||||
return fetch(_0x382d2b)
|
||||
['then']((_0x2cc7e3) => {
|
||||
return _0x2cc7e3['text']();
|
||||
})
|
||||
['then']((_0x26b60a) => {
|
||||
const _0x58169d = new DOMParser(),
|
||||
_0x7997e1 = _0x58169d['parse' + 'FromS' + 'tring'](_0x26b60a, 'text/xml');
|
||||
let _0x21dfa5 = {};
|
||||
const _0x300c26 = _0x7997e1['query' + 'Selec' + 'tor']('fetch > status');
|
||||
_0x300c26 && (_0x21dfa5['statu' + 's'] = _0x300c26['inner' + 'HTML']);
|
||||
const _0x202d4b = _0x7997e1['query' + 'Selec' + 'tor']('params > units');
|
||||
_0x202d4b && (_0x21dfa5['units'] = _0x202d4b['inner' + 'HTML']);
|
||||
const _0x2b5b6f = _0x7997e1['query' + 'Selec' + 'tor']('origin > icao_code');
|
||||
_0x2b5b6f && (_0x21dfa5['origi' + 'n'] = _0x2b5b6f['inner' + 'HTML']);
|
||||
const _0x37322c = _0x7997e1['query' + 'Selec' + 'tor']('destination > icao_code');
|
||||
_0x37322c && (_0x21dfa5['desti' + 'natio' + 'n'] = _0x37322c['inner' + 'HTML']);
|
||||
const _0x4f66aa = _0x7997e1['query' + 'Selec' + 'tor']('aircraft > icaocode');
|
||||
_0x4f66aa && (_0x21dfa5['aircr' + 'aft'] = _0x4f66aa['inner' + 'HTML']);
|
||||
const _0x3e15f6 = _0x7997e1['query' + 'Selec' + 'tor']('fuel > plan_ramp');
|
||||
_0x3e15f6 && (_0x21dfa5['fuel'] = parseFloat(_0x3e15f6['inner' + 'HTML']));
|
||||
const _0x53c20f = _0x7997e1['query' + 'Selec' + 'tor']('weights > payload');
|
||||
|
||||
/* KHOFMANN START */
|
||||
const plan = _0x7997e1['query' + 'Selec' + 'tor']('text > plan_html');
|
||||
const tlr = _0x7997e1['query' + 'Selec' + 'tor']('text > tlr_section');
|
||||
window.localStorage.setItem('KH_FE_FPLAN_PLAN', JSON.stringify(plan.innerHTML));
|
||||
window.localStorage.setItem('KH_FE_FPLAN_TLR', JSON.stringify(tlr.innerHTML));
|
||||
SimVar.SetSimVarValue('L:KH_FE_FPLAN_NEW_DATA', 'bool', 1);
|
||||
/* KHOFMANN END */
|
||||
|
||||
return _0x53c20f && (_0x21dfa5['paylo' + 'ad'] = parseFloat(_0x53c20f['inner' + 'HTML'])), _0x21dfa5;
|
||||
});
|
||||
}
|
||||
static ['meter' + 'ToFee' + 't'](_0x945b59) {
|
||||
return _0x945b59 * 3.28084;
|
||||
}
|
||||
static ['feetT' + 'oMete' + 'r'](_0x433b0d) {
|
||||
return _0x433b0d * 0.3048;
|
||||
}
|
||||
static ['feetT' + 'oNaut' + 'icalM' + 'ile'](_0x51576c) {
|
||||
return _0x51576c * 0.000164579;
|
||||
}
|
||||
static ['lbsTo' + 'Kg'](_0x2d9367) {
|
||||
return _0x2d9367 * 0.453592;
|
||||
}
|
||||
static ['gtn75' + '0Inst' + 'alled']() {
|
||||
return !!SimVar['GetSi' + 'mVarV' + 'alueF' + 'ast']('L:PMS50_GTN750_INSTALLED', 'Bool');
|
||||
}
|
||||
static ['gtnxi' + 'Insta' + 'lled']() {
|
||||
return !!SimVar['GetSi' + 'mVarV' + 'alueF' + 'ast']('L:TDSGTNXI_INSTALLED', 'Bool');
|
||||
}
|
||||
static ['diffA' + 'ndSet' + 'Value'](_0x2e7fbe, _0xaeb6de) {
|
||||
_0x2e7fbe['value'] != _0xaeb6de && (_0x2e7fbe['value'] = _0xaeb6de);
|
||||
}
|
||||
static ['diffA' + 'ndAdd' + 'Attri' + 'bute'](_0x2a092d, _0x29db47, _0x56d461) {
|
||||
const _0x47c464 = !!_0x2a092d['getAt' + 'tribu' + 'te'](_0x29db47);
|
||||
_0x56d461
|
||||
? !_0x47c464 && _0x2a092d['setAt' + 'tribu' + 'te'](_0x29db47, !![])
|
||||
: _0x47c464 && _0x2a092d['remov' + 'eAttr' + 'ibute'](_0x29db47);
|
||||
}
|
||||
static ['genSh' + 'uffle' + 'dArra' + 'y'](_0x493b5a) {
|
||||
return Array['from'](Array(_0x493b5a)['keys']())['sort'](() => Math['rando' + 'm']() - 0.5);
|
||||
}
|
||||
static ['setIn' + 'putOn' + 'Chang' + 'e'](_0x344d78, _0x4988f3) {
|
||||
(_0x344d78['onkey' + 'press'] = (_0xb39586) => {
|
||||
const _0x252e2b = _0xb39586['which'];
|
||||
_0x252e2b === 0xd && _0xb39586['srcEl' + 'ement']['blur']();
|
||||
}),
|
||||
(_0x344d78['onblu' + 'r'] = (_0x27045f) => {
|
||||
_0x4988f3(_0x27045f['srcEl' + 'ement']);
|
||||
});
|
||||
}
|
||||
static ['setWi' + 'ndInp' + 'ut'](_0x1d7d59, _0x3174de) {
|
||||
EFBUtils['setIn' + 'putOn' + 'Chang' + 'e'](_0x1d7d59, (_0x2632cd) => {
|
||||
let _0xe0907b = 0x0,
|
||||
_0x46f45b = 0x0;
|
||||
if (_0x2632cd['value']) {
|
||||
const _0xc0d1bd = _0x2632cd['value']['split']('/');
|
||||
if (_0xc0d1bd['lengt' + 'h'] > 0x1)
|
||||
(_0xe0907b = parseInt(_0xc0d1bd[0x0])),
|
||||
(_0x46f45b = parseInt(_0xc0d1bd[0x1])),
|
||||
isNaN(_0xe0907b) && (_0xe0907b = 0x0),
|
||||
isNaN(_0x46f45b) && (_0x46f45b = 0x0);
|
||||
else
|
||||
_0xc0d1bd['lengt' + 'h'] > 0x0 &&
|
||||
((_0xe0907b = parseInt(_0xc0d1bd[0x0])), isNaN(_0xe0907b) && (_0xe0907b = 0x0));
|
||||
}
|
||||
(_0xe0907b = Math['max'](Math['min'](_0xe0907b, 0x168), 0x0)),
|
||||
(_0x46f45b = Math['max'](Math['min'](_0x46f45b, 0x63), 0x0)),
|
||||
(_0x2632cd['value'] =
|
||||
_0xe0907b['toStr' + 'ing']()['padSt' + 'art'](0x3, '0') +
|
||||
'/' +
|
||||
_0x46f45b['toStr' + 'ing']()['padSt' + 'art'](0x2, '0')),
|
||||
_0x3174de({ dir: _0xe0907b, speed: _0x46f45b });
|
||||
});
|
||||
}
|
||||
static ['setQN' + 'HInpu' + 't'](_0x303325, _0x509c84) {
|
||||
EFBUtils['setIn' + 'putOn' + 'Chang' + 'e'](_0x303325, (_0xc37bc3) => {
|
||||
let _0x338a95 = 0x0;
|
||||
_0xc37bc3['value'] && ((_0x338a95 = parseFloat(_0xc37bc3['value'])), isNaN(_0x338a95) && (_0x338a95 = 0x0)),
|
||||
(_0xc37bc3['value'] = _0x338a95['toFix' + 'ed'](0x2)),
|
||||
_0x509c84(_0x338a95);
|
||||
});
|
||||
}
|
||||
static ['setTe' + 'mpInp' + 'ut'](_0x3f84c5, _0x5692e2) {
|
||||
EFBUtils['setIn' + 'putOn' + 'Chang' + 'e'](_0x3f84c5, (_0x506059) => {
|
||||
let _0x40003b = 0x0;
|
||||
_0x506059['value'] && ((_0x40003b = parseInt(_0x506059['value'])), isNaN(_0x40003b) && (_0x40003b = 0x0)),
|
||||
(_0x506059['value'] = _0x40003b),
|
||||
_0x5692e2({ tempF: _0x40003b, tempC: EFBUtils['fahre' + 'nheit' + 'ToCel' + 'cius'](_0x40003b) });
|
||||
});
|
||||
}
|
||||
static ['fahre' + 'nheit' + 'ToCel' + 'cius'](_0x5a890b) {
|
||||
return (_0x5a890b - 0x20) * (0x5 / 0x9);
|
||||
}
|
||||
static ['isOSR']() {
|
||||
const _0x4e6689 = SimVar['GetSi' + 'mVarV' + 'alue']('A:TITLE', 'String');
|
||||
return _0x4e6689['toLow' + 'erCas' + 'e']()['inclu' + 'des']('oil spill response');
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,19 @@
|
||||
# How to export a package
|
||||
- Run `pnpm install` and `pnpm prod` to build gauge
|
||||
- Export from MSFS
|
||||
|
||||
# TODO
|
||||
For sure:
|
||||
- Gauge on page 1
|
||||
- HTML/JS
|
||||
- dynamic data
|
||||
- COMMBUS
|
||||
- Gauge on page 2
|
||||
- Modify EFB script to pull data into localStorage
|
||||
- dynamic data
|
||||
- COMMBUS
|
||||
- Tooltip Clickspot Retrieve/Stow
|
||||
|
||||
Maybe:
|
||||
- FPLAN_BOARD Animations
|
||||
- split out FE to INS
|
||||
- new storage to INS animation
|
||||
@@ -24,6 +24,7 @@
|
||||
"prettier": "^3.4.2",
|
||||
"prettier-plugin-organize-imports": "^4.1.0",
|
||||
"rollup": "2",
|
||||
"rollup-plugin-cleaner": "^1.0.0",
|
||||
"rollup-plugin-copy": "^3.5.0",
|
||||
"rollup-plugin-import-css": "^3.5.8",
|
||||
"rollup-plugin-postcss": "^4.0.2",
|
||||
|
||||
Generated
+23
@@ -44,6 +44,9 @@ importers:
|
||||
rollup:
|
||||
specifier: '2'
|
||||
version: 2.79.2
|
||||
rollup-plugin-cleaner:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0(rollup@2.79.2)
|
||||
rollup-plugin-copy:
|
||||
specifier: ^3.5.0
|
||||
version: 3.5.0
|
||||
@@ -1285,11 +1288,22 @@ packages:
|
||||
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
|
||||
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
|
||||
|
||||
rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||
hasBin: true
|
||||
|
||||
rimraf@3.0.2:
|
||||
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
||||
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||
hasBin: true
|
||||
|
||||
rollup-plugin-cleaner@1.0.0:
|
||||
resolution: {integrity: sha512-q+Zf9estkFwGede9QzmbkhKeuXzlliOvcICVNzBHAs5xYPPs1XLtfin5TMU2tC2EYjmfaF97saY9MnQM6Og4eA==}
|
||||
engines: {node: '>= 8.0'}
|
||||
peerDependencies:
|
||||
rollup: '> 1.0'
|
||||
|
||||
rollup-plugin-copy@3.5.0:
|
||||
resolution: {integrity: sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==}
|
||||
engines: {node: '>=8.3'}
|
||||
@@ -2865,10 +2879,19 @@ snapshots:
|
||||
|
||||
reusify@1.0.4: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
|
||||
rimraf@3.0.2:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
|
||||
rollup-plugin-cleaner@1.0.0(rollup@2.79.2):
|
||||
dependencies:
|
||||
rimraf: 2.7.1
|
||||
rollup: 2.79.2
|
||||
|
||||
rollup-plugin-copy@3.5.0:
|
||||
dependencies:
|
||||
'@types/fs-extra': 8.1.5
|
||||
|
||||
+7
-2
@@ -3,6 +3,7 @@ import terser from '@rollup/plugin-terser';
|
||||
import typescript from '@rollup/plugin-typescript';
|
||||
import autoprefixer from 'autoprefixer';
|
||||
import atImport from 'postcss-import';
|
||||
import cleaner from 'rollup-plugin-cleaner';
|
||||
import copy from 'rollup-plugin-copy';
|
||||
import postcss from 'rollup-plugin-postcss';
|
||||
|
||||
@@ -18,17 +19,21 @@ export default {
|
||||
sourcemap: targetEnv !== 'production',
|
||||
},
|
||||
plugins: [
|
||||
cleaner({
|
||||
targets: [outDirBase],
|
||||
}),
|
||||
postcss({
|
||||
plugins: [autoprefixer(), atImport()],
|
||||
extract: true,
|
||||
use: ['sass'],
|
||||
sourceMap: 'inline',
|
||||
sourceMap: targetEnv !== 'production',
|
||||
minimize: targetEnv === 'production',
|
||||
}),
|
||||
resolve(),
|
||||
typescript(),
|
||||
targetEnv === 'production' && terser(),
|
||||
copy({
|
||||
targets: [{ src: [`${inDirBase}/index.html`], dest: outDirBase }],
|
||||
targets: [{ src: [`${inDirBase}/index.html`, `${inDirBase}/Consolas.ttf`], dest: outDirBase }],
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -9,10 +9,12 @@
|
||||
"Flightplan",
|
||||
"FLTSIM",
|
||||
"fplan",
|
||||
"FPLAN",
|
||||
"gltf",
|
||||
"khofmann",
|
||||
"KHOFMANN",
|
||||
"LODS",
|
||||
"msfs",
|
||||
"soundai",
|
||||
"xkhofmann"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user