10 Commits

Author SHA1 Message Date
80597b25d6 1.0.68 2022-05-18 03:19:55 +02:00
bcadb1b97f fix(core): update 2022-05-18 03:19:55 +02:00
e70d8abc8a 1.0.67 2022-03-18 16:56:51 +01:00
c5ef13acbe fix(core): update 2022-03-18 16:56:50 +01:00
d0f107dc4b 1.0.66 2022-03-16 10:49:03 +01:00
e8534691b4 fix(core): update 2022-03-16 10:49:03 +01:00
5cd6b17101 1.0.65 2022-03-15 15:18:06 +01:00
c65540c55f fix(core): update 2022-03-15 15:18:05 +01:00
2a56d38c86 1.0.64 2022-03-11 15:54:54 +01:00
959a78fadd fix(core): update 2022-03-11 15:54:54 +01:00
12 changed files with 3825 additions and 476 deletions

View File

@ -22,5 +22,6 @@
}
}
}
]
],
"typescript.tsdk": "node_modules/typescript/lib"
}

View File

@ -17,7 +17,7 @@
}
</style>
<script type="module" src="./index.ts"></script>
<script type="module" src="/bundle.js"></script>
</head>
<body>
</body>

View File

@ -3,8 +3,8 @@ import * as deesWccTools from '@designestate/dees-wcctools';
import * as deesDomTools from '@designestate/dees-domtools';
// elements and pages
import * as elements from '../ts_web/elements';
import * as pages from '../ts_web/pages';
import * as elements from '../ts_web/elements/index.js';
import * as pages from '../ts_web/pages/index.js';
deesWccTools.setupWccTools(elements as any, pages);
deesDomTools.elementBasic.setup();

3970
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,37 @@
{
"name": "@designestate/dees-editor",
"version": "1.0.63",
"version": "1.0.68",
"private": false,
"description": "an advanced editor for markdown documents based on monaco.",
"main": "dist_ts_web/index.js",
"typings": "dist_ts_web/index.d.ts",
"type": "module",
"scripts": {
"test": "npm run build",
"build": "tsbuild element && tsbundle element --production",
"test": "tstest test/",
"build": "tsbuild element --allowimplicitany --skiplibcheck && tsbundle element --allowimplicitany",
"watch": "tswatch element"
},
"author": "Lossless GmbH",
"license": "UNLICENSED",
"dependencies": {
"@designestate/dees-domtools": "^1.0.41",
"@designestate/dees-element": "^1.0.26",
"@designestate/dees-domtools": "^2.0.1",
"@designestate/dees-element": "^2.0.2",
"@designestate/dees-wcctools": "^1.0.37",
"@gitzone/tsrun": "^1.2.12",
"@gitzone/tsrun": "^1.2.31",
"@losslessone_private/loint-pubapi": "^1.0.9",
"@pushrocks/smartexpress": "^3.0.76",
"monaco-editor": "^0.32.1",
"typescript": "^4.4.3"
"@pushrocks/smartexpress": "^3.0.110",
"monaco-editor": "^0.33.0",
"typescript": "^4.4.3",
"xterm": "^4.18.0",
"xterm-addon-fit": "^0.5.0"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.24",
"@gitzone/tsbundle": "^1.0.91",
"@gitzone/tswatch": "^1.0.59",
"@gitzone/tsbuild": "^2.1.59",
"@gitzone/tsbundle": "^1.0.101",
"@gitzone/tstest": "^1.0.69",
"@gitzone/tswatch": "^1.0.68",
"@pushrocks/projectinfo": "^4.0.5",
"@pushrocks/tapbundle": "^5.0.2",
"buffer": "^6.0.3",
"process": "^0.11.10",
"tslint": "^6.1.3",

15
test/test.browser.ts Normal file
View File

@ -0,0 +1,15 @@
import { expect, expectAsync, tap, webhelpers } from '@pushrocks/tapbundle';
import * as deesEditorLib from '../ts_web/index.js';
tap.test('test dees-editor', async () => {
const deesEditor = new deesEditorLib.DeesEditor;
expect(deesEditor).toBeInstanceOf(deesEditorLib.DeesEditor)
});
tap.test('test dees-terminal', async () => {
const deesTerminal = await webhelpers.fixture(`<dees-terminal></dees-terminal>`);
expect(deesTerminal).toBeInstanceOf(deesEditorLib.DeesTerminal);
})
tap.start()

View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@designestate/dees-editor',
version: '1.0.68',
description: 'an advanced editor for markdown documents based on monaco.'
}

View File

@ -77,6 +77,9 @@ export class DeesEditor extends DeesElement {
useShadowDOM: true
});
});
const css = await (await fetch('https://cdn.jsdelivr.net/npm/monaco-editor/min/vs/editor/editor.main.css')).text();
const styleElement = document.createElement('style');
styleElement.textContent = css;
this.shadowRoot.append(styleElement);
}
}

View File

@ -0,0 +1,242 @@
import { DeesElement, property, html, customElement, TemplateResult, css, cssManager } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
import { Terminal } from 'xterm';
import { FitAddon } from 'xterm-addon-fit';
declare global {
interface HTMLElementTagNameMap {
'dees-terminal': DeesTerminal;
}
}
@customElement('dees-terminal')
export class DeesTerminal extends DeesElement {
public static demo = () => html`
<dees-terminal></dees-terminal>
`;
constructor() {
super();
domtools.DomTools.setupDomTools();
}
public static styles = [
domtools.elementBasic.staticStyles,
css`
:host {
padding: 20px;
background: #000;
position: absolute;
height: 100%;
width: 100%;
}
* {
box-sizing: border-box;
}
#container {
position: absolute;
height: calc(100% - 40px);
width: calc(100% - 40px);
}
/**
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
* https://github.com/chjj/term.js
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* Originally forked from (with the author's permission):
* Fabrice Bellard's javascript vt100 for jslinux:
* http://bellard.org/jslinux/
* Copyright (c) 2011 Fabrice Bellard
* The original design remains. The terminal itself
* has been extended to include xterm CSI codes, among
* other features.
*/
/**
* Default styles for xterm.js
*/
.xterm {
font-feature-settings: "liga" 0;
position: relative;
user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
}
.xterm.focus,
.xterm:focus {
outline: none;
}
.xterm .xterm-helpers {
position: absolute;
top: 0;
/**
* The z-index of the helpers must be higher than the canvases in order for
* IMEs to appear on top.
*/
z-index: 5;
}
.xterm .xterm-helper-textarea {
padding: 0;
border: 0;
margin: 0;
/* Move textarea out of the screen to the far left, so that the cursor is not visible */
position: absolute;
opacity: 0;
left: -9999em;
top: 0;
width: 0;
height: 0;
z-index: -5;
/** Prevent wrapping so the IME appears against the textarea at the correct position */
white-space: nowrap;
overflow: hidden;
resize: none;
}
.xterm .composition-view {
/* TODO: Composition position got messed up somewhere */
background: #000;
color: #FFF;
display: none;
position: absolute;
white-space: nowrap;
z-index: 1;
}
.xterm .composition-view.active {
display: block;
}
.xterm .xterm-viewport {
/* On OS X this is required in order for the scroll bar to appear fully opaque */
background-color: #000;
overflow-y: scroll;
cursor: default;
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
}
.xterm .xterm-screen {
position: relative;
}
.xterm .xterm-screen canvas {
position: absolute;
left: 0;
top: 0;
}
.xterm .xterm-scroll-area {
visibility: hidden;
}
.xterm-char-measure-element {
display: inline-block;
visibility: hidden;
position: absolute;
top: 0;
left: -9999em;
line-height: normal;
}
.xterm {
cursor: text;
}
.xterm.enable-mouse-events {
/* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
cursor: default;
}
.xterm.xterm-cursor-pointer {
cursor: pointer;
}
.xterm.column-select.focus {
/* Column selection mode */
cursor: crosshair;
}
.xterm .xterm-accessibility,
.xterm .xterm-message {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 10;
color: transparent;
}
.xterm .live-region {
position: absolute;
left: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
}
.xterm-dim {
opacity: 0.5;
}
.xterm-underline {
text-decoration: underline;
}
`
]
public render (): TemplateResult {
return html`
<div class="mainbox">
<div id="container"></div>
</div>
`;
}
public async firstUpdated (_changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
super.firstUpdated(_changedProperties);
const container = this.shadowRoot.getElementById('container');
const term = new Terminal();
const fitAddon = new FitAddon();
term.loadAddon(fitAddon);
// Open the terminal in #terminal-container
term.open(container);
// Make the terminal's size and geometry fit the size of #terminal-container
fitAddon.fit();
term.write(`dees-terminal custom terminal. \r\n$ `);
}
}

View File

@ -1 +1,2 @@
export * from './dees-editor';
export * from './dees-editor.js';
export * from './dees-terminal.js';

View File

@ -1 +1 @@
export * from './elements/index';
export * from './elements/index.js';

View File

@ -1,16 +1,8 @@
{
"compilerOptions": {
"target": "es2017",
"module": "es2015",
"moduleResolution": "node",
"lib": ["es2017", "dom"],
"declaration": true,
"inlineSources": true,
"inlineSourceMap": true,
"noUnusedLocals": false,
"noFallthroughCasesInSwitch": true,
"outDir": "dist/",
"skipLibCheck": false,
"experimentalDecorators": true
"experimentalDecorators": true,
"target": "ES2020",
"module": "ES2020",
"moduleResolution": "node12"
}
}