@omegagrid/markdown 0.10.1 → 0.10.2
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/package.json +6 -6
- package/dist/components/features/blockEdit.d.ts +0 -23
- package/dist/components/features/blockEdit.d.ts.map +0 -1
- package/dist/components/features/blockEdit.js +0 -38
- package/dist/components/features/blockEdit.js.map +0 -1
- package/dist/components/features/blockEditMenu.d.ts +0 -16
- package/dist/components/features/blockEditMenu.d.ts.map +0 -1
- package/dist/components/features/blockEditMenu.js +0 -25
- package/dist/components/features/blockEditMenu.js.map +0 -1
- package/dist/components/features/codeBlock.d.ts +0 -31
- package/dist/components/features/codeBlock.d.ts.map +0 -1
- package/dist/components/features/codeBlock.js +0 -1
- package/dist/components/features/codeBlock.js.map +0 -1
- package/dist/components/features/htmlBlock.d.ts +0 -39
- package/dist/components/features/htmlBlock.d.ts.map +0 -1
- package/dist/components/features/htmlBlock.js +0 -52
- package/dist/components/features/htmlBlock.js.map +0 -1
- package/dist/components/features/index.d.ts +0 -28
- package/dist/components/features/index.d.ts.map +0 -1
- package/dist/components/features/index.js +0 -1
- package/dist/components/features/index.js.map +0 -1
- package/dist/components/features/linkEdit/component.d.ts +0 -12
- package/dist/components/features/linkEdit/component.d.ts.map +0 -1
- package/dist/components/features/linkEdit/component.js +0 -46
- package/dist/components/features/linkEdit/component.js.map +0 -1
- package/dist/components/features/linkEdit/config.d.ts +0 -4
- package/dist/components/features/linkEdit/config.d.ts.map +0 -1
- package/dist/components/features/linkEdit/config.js +0 -1
- package/dist/components/features/linkEdit/config.js.map +0 -1
- package/dist/components/features/linkEdit/index.d.ts +0 -10
- package/dist/components/features/linkEdit/index.d.ts.map +0 -1
- package/dist/components/features/linkEdit/index.js +0 -1
- package/dist/components/features/linkEdit/index.js.map +0 -1
- package/dist/components/features/linkEdit/slices.d.ts +0 -20
- package/dist/components/features/linkEdit/slices.d.ts.map +0 -1
- package/dist/components/features/linkEdit/slices.js +0 -1
- package/dist/components/features/linkEdit/slices.js.map +0 -1
- package/dist/components/features/linkEdit/utils.d.ts +0 -14
- package/dist/components/features/linkEdit/utils.d.ts.map +0 -1
- package/dist/components/features/linkEdit/utils.js +0 -1
- package/dist/components/features/linkEdit/utils.js.map +0 -1
- package/dist/components/features/linkEdit/view.d.ts +0 -19
- package/dist/components/features/linkEdit/view.d.ts.map +0 -1
- package/dist/components/features/linkEdit/view.js +0 -1
- package/dist/components/features/linkEdit/view.js.map +0 -1
- package/dist/components/features/placeholder.d.ts +0 -13
- package/dist/components/features/placeholder.d.ts.map +0 -1
- package/dist/components/features/placeholder.js +0 -1
- package/dist/components/features/placeholder.js.map +0 -1
- package/dist/components/features/tocBlock.d.ts +0 -21
- package/dist/components/features/tocBlock.d.ts.map +0 -1
- package/dist/components/features/tocBlock.js +0 -46
- package/dist/components/features/tocBlock.js.map +0 -1
- package/dist/components/features/toolbar.d.ts +0 -24
- package/dist/components/features/toolbar.d.ts.map +0 -1
- package/dist/components/features/toolbar.js +0 -67
- package/dist/components/features/toolbar.js.map +0 -1
- package/dist/components/features/utils.d.ts +0 -12
- package/dist/components/features/utils.d.ts.map +0 -1
- package/dist/components/features/utils.js +0 -1
- package/dist/components/features/utils.js.map +0 -1
- package/dist/components/index.d.ts +0 -4
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/markdownEditor.d.ts +0 -36
- package/dist/components/markdownEditor.d.ts.map +0 -1
- package/dist/components/markdownEditor.js +0 -7
- package/dist/components/markdownEditor.js.map +0 -1
- package/dist/components/markdownEditor.style.d.ts +0 -2
- package/dist/components/markdownEditor.style.d.ts.map +0 -1
- package/dist/components/markdownEditor.style.js +0 -230
- package/dist/components/markdownEditor.style.js.map +0 -1
- package/dist/components/markdownView.d.ts +0 -5
- package/dist/components/markdownView.d.ts.map +0 -1
- package/dist/components/markdownView.js +0 -1
- package/dist/components/markdownView.js.map +0 -1
- package/dist/components/markdownView.style.d.ts +0 -2
- package/dist/components/markdownView.style.d.ts.map +0 -1
- package/dist/components/markdownView.style.js +0 -44
- package/dist/components/markdownView.style.js.map +0 -1
- package/dist/components/styles/block-edit.d.ts +0 -2
- package/dist/components/styles/block-edit.d.ts.map +0 -1
- package/dist/components/styles/block-edit.js +0 -132
- package/dist/components/styles/block-edit.js.map +0 -1
- package/dist/components/styles/cursor.d.ts +0 -2
- package/dist/components/styles/cursor.d.ts.map +0 -1
- package/dist/components/styles/cursor.js +0 -12
- package/dist/components/styles/cursor.js.map +0 -1
- package/dist/components/styles/emoji.d.ts +0 -2
- package/dist/components/styles/emoji.d.ts.map +0 -1
- package/dist/components/styles/emoji.js +0 -14
- package/dist/components/styles/emoji.js.map +0 -1
- package/dist/components/styles/image-block.d.ts +0 -2
- package/dist/components/styles/image-block.d.ts.map +0 -1
- package/dist/components/styles/image-block.js +0 -395
- package/dist/components/styles/image-block.js.map +0 -1
- package/dist/components/styles/index.d.ts +0 -3
- package/dist/components/styles/index.d.ts.map +0 -1
- package/dist/components/styles/index.js +0 -1
- package/dist/components/styles/index.js.map +0 -1
- package/dist/components/styles/link-tooltip.d.ts +0 -2
- package/dist/components/styles/link-tooltip.d.ts.map +0 -1
- package/dist/components/styles/link-tooltip.js +0 -110
- package/dist/components/styles/link-tooltip.js.map +0 -1
- package/dist/components/styles/list-item.d.ts +0 -2
- package/dist/components/styles/list-item.d.ts.map +0 -1
- package/dist/components/styles/list-item.js +0 -40
- package/dist/components/styles/list-item.js.map +0 -1
- package/dist/components/styles/placeholder.d.ts +0 -2
- package/dist/components/styles/placeholder.d.ts.map +0 -1
- package/dist/components/styles/placeholder.js +0 -9
- package/dist/components/styles/placeholder.js.map +0 -1
- package/dist/components/styles/prosemirror.d.ts +0 -2
- package/dist/components/styles/prosemirror.d.ts.map +0 -1
- package/dist/components/styles/prosemirror.js +0 -56
- package/dist/components/styles/prosemirror.js.map +0 -1
- package/dist/components/styles/table.d.ts +0 -2
- package/dist/components/styles/table.d.ts.map +0 -1
- package/dist/components/styles/table.js +0 -283
- package/dist/components/styles/table.js.map +0 -1
- package/dist/constants.d.ts +0 -47
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +0 -1
- package/dist/loader.d.ts +0 -16
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -1
- package/dist/loader.js.map +0 -1
- package/dist/utils.d.ts +0 -11
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -1
- package/dist/utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/markdown",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Markdown view webcomponent",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@fortawesome/fontawesome-svg-core": "^7.0.1",
|
|
31
|
-
"@omegagrid/code": "^0.10.
|
|
32
|
-
"@omegagrid/core": "^0.10.
|
|
33
|
-
"@omegagrid/localize": "^0.10.
|
|
34
|
-
"@omegagrid/milkdown-kit": "^0.10.
|
|
35
|
-
"@omegagrid/tabs": "^0.10.
|
|
31
|
+
"@omegagrid/code": "^0.10.2",
|
|
32
|
+
"@omegagrid/core": "^0.10.2",
|
|
33
|
+
"@omegagrid/localize": "^0.10.2",
|
|
34
|
+
"@omegagrid/milkdown-kit": "^0.10.2",
|
|
35
|
+
"@omegagrid/tabs": "^0.10.2",
|
|
36
36
|
"lit": "^3.1.1",
|
|
37
37
|
"markdown-it": "^14.1.0",
|
|
38
38
|
"ts-debounce": "^4.0.0"
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
3
|
-
import { BlockEditMenu } from ".";
|
|
4
|
-
export declare class BlockEdit extends LitElement {
|
|
5
|
-
#private;
|
|
6
|
-
static styles: import("lit").CSSResult;
|
|
7
|
-
ctx: milkdown.ctx.Ctx;
|
|
8
|
-
md: typeof milkdown;
|
|
9
|
-
get menu(): BlockEditMenu;
|
|
10
|
-
updated(): void;
|
|
11
|
-
disconnectedCallback(): void;
|
|
12
|
-
render: () => import("lit").TemplateResult<1>;
|
|
13
|
-
hideMenu: () => HTMLElement;
|
|
14
|
-
showMenu: (elm: HTMLElement) => void;
|
|
15
|
-
}
|
|
16
|
-
export declare class BlockHandleView {
|
|
17
|
-
#private;
|
|
18
|
-
md: typeof milkdown;
|
|
19
|
-
constructor(ctx: milkdown.ctx.Ctx, md: typeof milkdown);
|
|
20
|
-
update: () => void;
|
|
21
|
-
destroy: () => void;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=blockEdit.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockEdit.d.ts","sourceRoot":"","sources":["../../../src/components/features/blockEdit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAGlC,qBACa,SAAU,SAAQ,UAAU;;IAExC,MAAM,CAAC,MAAM,0BAqBX;IAGF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,EAAE,EAAE,OAAO,QAAQ,CAAC;IAGpB,IAAI,IAAI,kBAA+B;IAEvC,OAAO;IAMP,oBAAoB;IAIpB,MAAM,wCAkBJ;IAEF,QAAQ,oBAAoC;IAE5C,QAAQ,GAAI,KAAK,WAAW,UAW3B;CACD;AAED,qBAAa,eAAe;;IAG3B,EAAE,EAAE,OAAO,QAAQ,CAAC;gBAGR,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,OAAO,QAAQ;IAqBtD,MAAM,aAEL;IAED,OAAO,aAEN;CAyBD"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
var _BlockEdit_menu,_BlockHandleView_provider,_BlockHandleView_ctx,_BlockHandleView_content,_BlockHandleView_onAdd,__decorate=this&&this.__decorate||function(e,t,o,i){var n,s=arguments.length,r=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,o,i);else for(var l=e.length-1;l>=0;l--)(n=e[l])&&(r=(s<3?n(r):s>3?n(t,o,r):n(t,o))||r);return s>3&&r&&Object.defineProperty(t,o,r),r},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,o,i){if("a"===o&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?i:"a"===o?i.call(e):i?i.value:t.get(e)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,o,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(e,o):n?n.value=o:t.set(e,o),o};import{LitElement,css,html}from"lit";import{customElement,property}from"lit/decorators.js";import{dom}from"@omegagrid/core";import{createRef,ref}from"lit/directives/ref.js";let BlockEdit=class extends LitElement{constructor(){super(...arguments),_BlockEdit_menu.set(this,createRef()),this.render=()=>html`
|
|
2
|
-
<og-button
|
|
3
|
-
icon="plus"
|
|
4
|
-
color="transparent"
|
|
5
|
-
@click=${()=>{this.dispatchEvent(new Event("add"))}}>
|
|
6
|
-
</og-button>
|
|
7
|
-
|
|
8
|
-
<og-button icon="grip-vertical" color="transparent"></og-button>
|
|
9
|
-
|
|
10
|
-
<og-markdown-block-edit-menu ${ref(__classPrivateFieldGet(this,_BlockEdit_menu,"f"))}
|
|
11
|
-
@mousedown=${e=>e.stopPropagation()}
|
|
12
|
-
style="display: none"
|
|
13
|
-
@run=${()=>this.hideMenu()}
|
|
14
|
-
.ctx="${this.ctx}"
|
|
15
|
-
.md="${this.md}">
|
|
16
|
-
</og-markdown-block-edit-menu>
|
|
17
|
-
`,this.hideMenu=()=>dom.hideElement(this.menu),this.showMenu=e=>{if(!this.menu)return;const t=this.menu.parentElement,o=dom.getElementOffset(e,t);dom.showElement(this.menu);let i=o.top+e.offsetHeight+4;i+this.menu.offsetHeight>t.clientHeight&&(i=o.top-this.menu.offsetHeight-4),dom.setPosition(this.menu,{t:i,l:o.left}),document.addEventListener("mousedown",(()=>dom.hideElement(this.menu)),{once:!0})}}get menu(){return __classPrivateFieldGet(this,_BlockEdit_menu,"f")?.value}updated(){this.menu.parentNode==this.shadowRoot&&document.body.appendChild(this.menu)}disconnectedCallback(){this.menu&&this.shadowRoot.appendChild(this.menu)}};_BlockEdit_menu=new WeakMap,BlockEdit.styles=css`
|
|
18
|
-
* {
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
:host {
|
|
23
|
-
display: flex;
|
|
24
|
-
flex-direction: row;
|
|
25
|
-
position: absolute;
|
|
26
|
-
transition: top .2s;
|
|
27
|
-
gap: 2px;
|
|
28
|
-
justify-content: center;
|
|
29
|
-
align-items: center;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
og-dropdown, og-button {
|
|
33
|
-
min-width: 20px;
|
|
34
|
-
height: 20px;
|
|
35
|
-
flex: 0;
|
|
36
|
-
text-align: center;
|
|
37
|
-
}
|
|
38
|
-
`,__decorate([property({type:Object})],BlockEdit.prototype,"ctx",void 0),__decorate([property({type:Object})],BlockEdit.prototype,"md",void 0),BlockEdit=__decorate([customElement("og-markdown-block-edit")],BlockEdit);export{BlockEdit};export class BlockHandleView{constructor(e,t){_BlockHandleView_provider.set(this,void 0),_BlockHandleView_ctx.set(this,void 0),_BlockHandleView_content.set(this,void 0),this.update=()=>{__classPrivateFieldGet(this,_BlockHandleView_provider,"f").update()},this.destroy=()=>{__classPrivateFieldGet(this,_BlockHandleView_provider,"f").destroy()},_BlockHandleView_onAdd.set(this,(()=>{const e=__classPrivateFieldGet(this,_BlockHandleView_ctx,"f"),t=e.get(this.md.core.editorViewCtx);t.hasFocus()||t.focus();const{state:o,dispatch:i}=t,n=__classPrivateFieldGet(this,_BlockHandleView_provider,"f").active;if(!n)return;const s=n.$pos.pos+n.node.nodeSize;let r=o.tr.insert(s,this.md.presets.commonmark.paragraphSchema.type(e).create());if(r=r.setSelection(this.md.prose.state.TextSelection.near(r.doc.resolve(s))),i(r.scrollIntoView()),__classPrivateFieldGet(this,_BlockHandleView_provider,"f").hide(),__classPrivateFieldGet(this,_BlockHandleView_content,"f").menu){const e=n.el.nextElementSibling;e&&__classPrivateFieldGet(this,_BlockHandleView_content,"f").showMenu(e)}})),this.md=t,__classPrivateFieldSet(this,_BlockHandleView_ctx,e,"f");const o=dom.createElement("og-markdown-block-edit");o.ctx=e,o.md=t,o.addEventListener("add",__classPrivateFieldGet(this,_BlockHandleView_onAdd,"f")),__classPrivateFieldSet(this,_BlockHandleView_content,o,"f"),__classPrivateFieldSet(this,_BlockHandleView_provider,new t.plugins.block.BlockProvider({ctx:e,content:o,getOffset:()=>10,getPlacement:({active:e,blockDom:t})=>(dom.setPosition(t,{l:0}),dom.setSize(t,{h:e.el.offsetHeight,w:40}),"left")}),"f"),this.update()}}_BlockHandleView_provider=new WeakMap,_BlockHandleView_ctx=new WeakMap,_BlockHandleView_content=new WeakMap,_BlockHandleView_onAdd=new WeakMap;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockEdit.js","sourceRoot":"","sources":["../../../src/components/features/blockEdit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAGhD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QA+BN,0BAAQ,SAAS,EAAiB,EAAC;QAanC,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;YAIR,GAAG,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;;;;;iCAK6B,GAAG,CAAC,uBAAA,IAAI,uBAAM,CAAC;gBAChC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;;UAE5C,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;WACpB,IAAI,CAAC,GAAG;UACT,IAAI,CAAC,EAAE;;EAEf,CAAC;QAEF,aAAQ,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,aAAQ,GAAG,CAAC,GAAgB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACpD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;YAC5C,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3D,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YAC/C,CAAC;YACD,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC;YACrD,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QACxF,CAAC,CAAA;IACF,CAAC;IA9CA,IAAI,IAAI,KAAK,OAAO,uBAAA,IAAI,uBAAM,EAAE,KAAK,CAAA,CAAC,CAAC;IAEvC,OAAO;QACN,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;;;AAxCM,gBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;EAqBlB,AArBY,CAqBX;AAGF;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;sCACH;AAGtB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;qCACL;AA7BR,SAAS;IADrB,aAAa,CAAC,wBAAwB,CAAC;GAC3B,SAAS,CA8ErB;;AAED,MAAM,OAAO,eAAe;IAM3B,YAAY,GAAqB,EAAE,EAAmB;QALtD,4CAAqE;QACrE,uCAAuB;QAEvB,2CAAoB;QAuBpB,WAAM,GAAG,GAAG,EAAE;YACb,uBAAA,IAAI,iCAAU,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC,CAAA;QAED,YAAO,GAAG,GAAG,EAAE;YACd,uBAAA,IAAI,iCAAU,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAA;QAED,iCAAS,GAAG,EAAE;YACb,MAAM,GAAG,GAAG,uBAAA,IAAI,4BAAK,CAAC;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACjC,MAAM,MAAM,GAAG,uBAAA,IAAI,iCAAU,CAAC,MAAM,CAAC;YACrC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC5C,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAElF,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;YAE9B,uBAAA,IAAI,iCAAU,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,uBAAA,IAAI,gCAAS,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAiC,CAAC;gBACvD,IAAI,EAAE;oBAAE,uBAAA,IAAI,gCAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,gDAAgD;QACjD,CAAC,EAAA;QAlDA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,uBAAA,IAAI,wBAAQ,GAAG,MAAA,CAAC;QAChB,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAY,wBAAwB,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;QAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,uBAAA,IAAI,8BAAO,CAAC,CAAC;QAC7C,uBAAA,IAAI,4BAAY,OAAO,MAAA,CAAC;QACxB,uBAAA,IAAI,6BAAa,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YACnD,GAAG;YACH,OAAO;YACP,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;YACnB,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACtC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;gBAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC;gBAC1D,OAAO,MAAM,CAAC;YACf,CAAC;SACD,CAAC,MAAA,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAA;IACd,CAAC;CAiCD","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { dom } from \"@omegagrid/core\";\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { BlockEditMenu } from \".\";\nimport { createRef, ref } from \"lit/directives/ref.js\";\n\n@customElement('og-markdown-block-edit')\nexport class BlockEdit extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tposition: absolute;\n\t\t\ttransition: top .2s;\n\t\t\tgap: 2px;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t}\n\n\t\tog-dropdown, og-button {\n\t\t\tmin-width: 20px;\n\t\t\theight: 20px;\n\t\t\tflex: 0;\n\t\t\ttext-align: center;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({type: Object})\n\tmd: typeof milkdown;\n\n\t#menu = createRef<BlockEditMenu>();\n\tget menu() { return this.#menu?.value }\n\n\tupdated() {\n\t\tif (this.menu.parentNode == this.shadowRoot) {\n\t\t\tdocument.body.appendChild(this.menu);\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tif (this.menu) this.shadowRoot.appendChild(this.menu);\n\t}\n\n\trender = () => html`\n\t\t<og-button\n\t\t\ticon=\"plus\"\n\t\t\tcolor=\"transparent\"\n\t\t\t@click=${() => {\n\t\t\t\tthis.dispatchEvent(new Event('add'));\n\t\t\t}}>\n\t\t</og-button>\n\n\t\t<og-button icon=\"grip-vertical\" color=\"transparent\"></og-button>\n\n\t\t<og-markdown-block-edit-menu ${ref(this.#menu)}\n\t\t\t@mousedown=${(e: MouseEvent) => e.stopPropagation()}\n\t\t\tstyle=\"display: none\"\n\t\t\t@run=${() => this.hideMenu()}\n\t\t\t.ctx=\"${this.ctx}\"\n\t\t\t.md=\"${this.md}\">\n\t\t</og-markdown-block-edit-menu>\n\t`;\n\n\thideMenu = () => dom.hideElement(this.menu);\n\n\tshowMenu = (elm: HTMLElement) => {\n\t\tif (!this.menu) return;\n\t\tconst container = this.menu.parentElement;\n\t\tconst offset = dom.getElementOffset(elm, container);\n\t\tdom.showElement(this.menu);\n\t\tlet top = offset.top + elm.offsetHeight + 4;\n\t\tif (top + this.menu.offsetHeight > container.clientHeight) {\n\t\t\ttop = offset.top - this.menu.offsetHeight - 4;\n\t\t}\n\t\tdom.setPosition(this.menu, {t: top, l: offset.left});\n\t\tdocument.addEventListener('mousedown', () => dom.hideElement(this.menu), {once: true});\n\t}\n}\n\nexport class BlockHandleView { // implements milkdown.prose.state.PluginView {\n\t#provider: InstanceType<typeof milkdown.plugins.block.BlockProvider>;\n\t#ctx: milkdown.ctx.Ctx;\n\tmd: typeof milkdown;\n\t#content: BlockEdit;\n\t\n\tconstructor(ctx: milkdown.ctx.Ctx, md: typeof milkdown) {\n\t\tthis.md = md;\n\t\tthis.#ctx = ctx;\n\t\tconst content = dom.createElement<BlockEdit>('og-markdown-block-edit');\n\t\tcontent.ctx = ctx;\n\t\tcontent.md = md;\n\t\tcontent.addEventListener('add', this.#onAdd);\n\t\tthis.#content = content;\n\t\tthis.#provider = new md.plugins.block.BlockProvider({\n\t\t\tctx,\n\t\t\tcontent,\n\t\t\tgetOffset: () => 10,\n\t\t\tgetPlacement: ({ active, blockDom }) => {\n\t\t\t\tdom.setPosition(blockDom, {l: 0});\n\t\t\t\tdom.setSize(blockDom, {h: active.el.offsetHeight, w: 40});\n\t\t\t\treturn 'left';\n\t\t\t}\n\t\t});\n\t\tthis.update()\n\t}\n\t\n\tupdate = () => {\n\t\tthis.#provider.update();\n\t}\n\t\n\tdestroy = () => {\n\t\tthis.#provider.destroy();\n\t}\n\t\n\t#onAdd = () => {\n\t\tconst ctx = this.#ctx;\n\t\tconst view = ctx.get(this.md.core.editorViewCtx);\n\t\tif (!view.hasFocus()) view.focus();\n\t\t\n\t\tconst { state, dispatch } = view;\n\t\tconst active = this.#provider.active;\n\t\tif (!active) return;\n\n\t\tconst $pos = active.$pos;\n\t\tconst pos = $pos.pos + active.node.nodeSize;\n\t\tlet tr = state.tr.insert(pos, this.md.presets.commonmark.paragraphSchema.type(ctx).create());\n\t\ttr = tr.setSelection(this.md.prose.state.TextSelection.near(tr.doc.resolve(pos)));\n\t\t\n\t\tdispatch(tr.scrollIntoView());\n\t\t\n\t\tthis.#provider.hide();\n\t\tif (this.#content.menu) {\n\t\t\tconst el = active.el.nextElementSibling as HTMLElement;\n\t\t\tif (el) this.#content.showMenu(el);\n\t\t}\n\t\t// ctx.get(menuAPI.key).show(tr.selection.from);\n\t}\n}\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
|
-
import { MenuItem } from "@omegagrid/core";
|
|
3
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
4
|
-
type BlockMenuItem = MenuItem & {
|
|
5
|
-
onRun?: (ctx: milkdown.ctx.Ctx) => void;
|
|
6
|
-
};
|
|
7
|
-
export declare class BlockEditMenu extends LitElement {
|
|
8
|
-
#private;
|
|
9
|
-
static styles: import("lit").CSSResult;
|
|
10
|
-
ctx: milkdown.ctx.Ctx;
|
|
11
|
-
md: typeof milkdown;
|
|
12
|
-
get menuItems(): BlockMenuItem[];
|
|
13
|
-
render: () => import("lit").TemplateResult<1>;
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=blockEditMenu.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockEditMenu.d.ts","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C,OAAO,EAAkD,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAChG,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAWzD,KAAK,aAAa,GAAG,QAAQ,GAAG;IAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAA;CAAC,CAAC;AA8I1E,qBACa,aAAc,SAAQ,UAAU;;IAE5C,MAAM,CAAC,MAAM,0BAkBX;IAKF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,EAAE,EAAE,OAAO,QAAQ,CAAC;IAGpB,IAAI,SAAS,oBAA6E;IAmC1F,MAAM,wCAMJ;CACF"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
var _BlockEditMenu_menu,_BlockEditMenu_menuItems,_BlockEditMenu_createComponent,_BlockEditMenu_onTabSelect,__decorate=this&&this.__decorate||function(e,t,o,n){var i,s=arguments.length,c=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(c=(s<3?i(c):s>3?i(t,o,c):i(t,o))||c);return s>3&&c&&Object.defineProperty(t,o,c),c},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(e,t,o,n){if("a"===o&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?n:"a"===o?n.call(e):n?n.value:t.get(e)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(e,t,o,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,o):i?i.value=o:t.set(e,o),o};import{LitElement,css,html}from"lit";import{customElement,property}from"lit/decorators.js";import{msg}from"@omegagrid/localize";import{dom}from"@omegagrid/core";import{addBlockType,clearContentAndAddBlockType,clearContentAndSetBlockType,clearContentAndWrapInBlockType,clearRange}from"./utils";const items=[{id:"sectionText",title:msg("Text")},{id:"sectionList",title:msg("List")},{id:"sectionAdvanced",title:msg("Advanced")}],createMenuItems=e=>[{key:"sectionText",value:msg("Text"),divider:!0,type:"label"},{key:"text",value:msg("Text"),icon:"text",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndSetBlockType(e.presets.commonmark.paragraphSchema.type(t))(i,n)}},...new Array(6).fill(0).map(((t,o)=>({key:`square${o+1}`,value:msg("Heading")+(o+1),icon:`square-${o+1}`,onRun:t=>{const n=t.get(e.core.editorViewCtx),{dispatch:i,state:s}=n;clearContentAndSetBlockType(e.presets.commonmark.headingSchema.type(t),{level:o+1})(s,i)}}))),{key:"quote",value:msg("Quote"),icon:"quote-right",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndWrapInBlockType(e.presets.commonmark.blockquoteSchema.type(t))(i,n)}},{key:"divider",value:msg("Divider"),icon:"horizontal-rule",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndAddBlockType(e.presets.commonmark.hrSchema.type(t))(i,n)}},{key:"sectionList",value:msg("List"),divider:!0,type:"label"},{key:"bulletList",value:msg("Bullet List"),icon:"list",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndWrapInBlockType(e.presets.commonmark.bulletListSchema.type(t))(i,n)}},{key:"orderedList",value:msg("Ordered List"),icon:"list-ol",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndWrapInBlockType(e.presets.commonmark.orderedListSchema.type(t))(i,n)}},{key:"todoList",value:msg("Todo List"),icon:"list-check",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndWrapInBlockType(e.presets.commonmark.listItemSchema.type(t),{checked:!1})(i,n)}},{key:"sectionAdvanced",value:msg("Advanced"),divider:!0,type:"label"},{key:"image",value:msg("Image"),icon:"image",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndAddBlockType(e.components.imageBlock.imageBlockSchema.type(t))(i,n)}},{key:"html",value:msg("Raw HTML"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o,s=addBlockType(clearRange(i.tr),e.presets.commonmark.htmlSchema.type(t),null);n(s.scrollIntoView()),requestAnimationFrame((()=>{const e=o.domAtPos(s.selection.$anchor.pos)?.node;if(e){const t=e.querySelector("og-markdown-html-block");t?.startEdit()}}))}},{key:"code",value:msg("Code"),icon:"code",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o;clearContentAndAddBlockType(e.presets.commonmark.codeBlockSchema.type(t))(i,n)}},{key:"table",value:msg("Table"),icon:"table",onRun:t=>{const o=t.get(e.core.editorViewCtx),{dispatch:n,state:i}=o,s=clearRange(i.tr),c=e.presets.gfm.createTable(t,3,3);s.replaceSelectionWith(c);const{from:a}=s.selection,r=a-c.nodeSize+2;n(s),requestAnimationFrame((()=>{const t=e.prose.state.NodeSelection.create(o.state.tr.doc,r);n(o.state.tr.setSelection(t).scrollIntoView())}))}}];let BlockEditMenu=class extends LitElement{constructor(){super(...arguments),_BlockEditMenu_menu.set(this,void 0),_BlockEditMenu_menuItems.set(this,void 0),_BlockEditMenu_createComponent.set(this,(e=>{if(!__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")){const e=this.menuItems;__classPrivateFieldSet(this,_BlockEditMenu_menu,dom.createElement("og-menu"),"f"),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").dynamicWidth=!1,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").disabledFocus=!0,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.width="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.height="100%",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").style.border="none",__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").items=e,__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("menu.select",(t=>{const o=e.find((e=>e.key===t.item.key));o?.onRun&&(o.onRun(this.ctx),this.dispatchEvent(new Event("run")))})),__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").addEventListener("mousedown",(e=>{e.stopPropagation(),e.preventDefault()}))}return __classPrivateFieldGet(this,_BlockEditMenu_menu,"f")})),_BlockEditMenu_onTabSelect.set(this,(e=>{if(__classPrivateFieldGet(this,_BlockEditMenu_menu,"f")?.list){const t=this.menuItems.findIndex((t=>t.key===e.tab.id));t>-1&&__classPrivateFieldGet(this,_BlockEditMenu_menu,"f").list.scrollToIndex(t)}})),this.render=()=>html`
|
|
2
|
-
<og-tabcontainer
|
|
3
|
-
.createComponent="${__classPrivateFieldGet(this,_BlockEditMenu_createComponent,"f")}"
|
|
4
|
-
.items="${items}"
|
|
5
|
-
@tab.select="${__classPrivateFieldGet(this,_BlockEditMenu_onTabSelect,"f")}">
|
|
6
|
-
</og-tabcontainer>
|
|
7
|
-
`}get menuItems(){return __classPrivateFieldGet(this,_BlockEditMenu_menuItems,"f")??__classPrivateFieldSet(this,_BlockEditMenu_menuItems,createMenuItems(this.md),"f")}};_BlockEditMenu_menu=new WeakMap,_BlockEditMenu_menuItems=new WeakMap,_BlockEditMenu_createComponent=new WeakMap,_BlockEditMenu_onTabSelect=new WeakMap,BlockEditMenu.styles=css`
|
|
8
|
-
* {
|
|
9
|
-
box-sizing: border-box;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
:host {
|
|
13
|
-
display: block;
|
|
14
|
-
width: 170px;
|
|
15
|
-
height: 230px;
|
|
16
|
-
user-select: none;
|
|
17
|
-
border: 1px solid var(--og-accent-color);
|
|
18
|
-
position: absolute;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
og-tabcontainer {
|
|
22
|
-
width: 100%;
|
|
23
|
-
height: 100%;
|
|
24
|
-
}
|
|
25
|
-
`,__decorate([property({type:Object})],BlockEditMenu.prototype,"ctx",void 0),__decorate([property({type:Object})],BlockEditMenu.prototype,"md",void 0),BlockEditMenu=__decorate([customElement("og-markdown-block-edit-menu")],BlockEditMenu);export{BlockEditMenu};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blockEditMenu.js","sourceRoot":"","sources":["../../../src/components/features/blockEditMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { TabItem, TabEvent } from \"@omegagrid/tabs\";\nimport { msg } from \"@omegagrid/localize\";\nimport { ComponentFactory, ComponentId, Menu, MenuEvent, MenuItem, dom } from \"@omegagrid/core\";\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { addBlockType, clearContentAndAddBlockType, clearContentAndSetBlockType, clearContentAndWrapInBlockType, clearRange } from \"./utils\";\nimport { HtmlBlockComponent } from \"./htmlBlock\";\n\n\nconst items: TabItem[] = [\n\t{id: 'sectionText', title: msg('Text')},\n\t{id: 'sectionList', title: msg('List')},\n\t{id: 'sectionAdvanced', title: msg('Advanced')},\n];\n\ntype BlockMenuItem = MenuItem & {onRun?: (ctx: milkdown.ctx.Ctx) => void};\n\nconst createMenuItems = (md: typeof milkdown): BlockMenuItem[] => [\n\t{key: 'sectionText', value: msg('Text'), divider: true, type: 'label'},\n\t{\n\t\tkey: 'text', \n\t\tvalue: msg('Text'), \n\t\ticon: 'text', onRun: \n\t\tctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.paragraphSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, ...(new Array(6).fill(0).map((_, i) => ({\n\t\tkey: `square${i + 1}`,\n\t\tvalue: msg('Heading') + (i + 1),\n\t\ticon: `square-${i + 1}`,\n\t\tonRun: (ctx: milkdown.ctx.Ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndSetBlockType(md.presets.commonmark.headingSchema.type(ctx), {level: i + 1});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}))), {\n\t\tkey: 'quote', \n\t\tvalue: msg('Quote'), \n\t\ticon: 'quote-right', \n\t\tonRun: ctx => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.blockquoteSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'divider', \n\t\tvalue: msg('Divider'), \n\t\ticon: 'horizontal-rule',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.hrSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'sectionList', \n\t\tvalue: msg('List'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'bulletList', \n\t\tvalue: msg('Bullet List'), \n\t\ticon: 'list',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.bulletListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'orderedList', \n\t\tvalue: msg('Ordered List'), \n\t\ticon: 'list-ol',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.orderedListSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'todoList', \n\t\tvalue: msg('Todo List'), \n\t\ticon: 'list-check',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndWrapInBlockType(md.presets.commonmark.listItemSchema.type(ctx), {checked: false});\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'sectionAdvanced', \n\t\tvalue: msg('Advanced'), \n\t\tdivider: true, \n\t\ttype: 'label'\n\t}, {\n\t\tkey: 'image', \n\t\tvalue: msg('Image'), \n\t\ticon: 'image',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.components.imageBlock.imageBlockSchema.type(ctx));\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'html', \n\t\tvalue: msg('Raw HTML'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = addBlockType(clearRange(state.tr), md.presets.commonmark.htmlSchema.type(ctx), null);\n\t\t\tdispatch(tr.scrollIntoView());\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst node = view.domAtPos(tr.selection.$anchor.pos)?.node as HTMLElement;\n\t\t\t\tif (node) {\n\t\t\t\t\tconst block = node.querySelector('og-markdown-html-block') as HtmlBlockComponent;\n\t\t\t\t\tblock?.startEdit();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'code', \n\t\tvalue: msg('Code'), \n\t\ticon: 'code',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst command = clearContentAndAddBlockType(md.presets.commonmark.codeBlockSchema.type(ctx))\n\t\t\tcommand(state, dispatch);\n\t\t}\n\t}, {\n\t\tkey: 'table',\n\t\tvalue: msg('Table'),\n\t\ticon: 'table',\n\t\tonRun: (ctx) => {\n\t\t\tconst view = ctx.get(md.core.editorViewCtx);\n\t\t\tconst { dispatch, state } = view;\n\t\t\tconst tr = clearRange(state.tr);\n\t\t\tconst table = md.presets.gfm.createTable(ctx, 3, 3);\n\t\t\ttr.replaceSelectionWith(table);\n\t\t\tconst { from } = tr.selection;\n\t\t\tconst pos = from - table.nodeSize + 2;\n\t\t\tdispatch(tr);\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst selection = md.prose.state.NodeSelection.create(view.state.tr.doc, pos);\n\t\t\t\tdispatch(view.state.tr.setSelection(selection).scrollIntoView());\n\t\t\t})\n\t\t}\n\t}\n];\n\n@customElement('og-markdown-block-edit-menu')\nexport class BlockEditMenu extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\twidth: 170px;\n\t\t\theight: 230px;\n\t\t\tuser-select: none;\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t\tposition: absolute;\n\t\t}\n\n\t\tog-tabcontainer {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t#menu: Menu;\n\n\t@property({type: Object})\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({type: Object})\n\tmd: typeof milkdown;\n\n\t#menuItems: BlockMenuItem[];\n\tget menuItems() { return this.#menuItems ?? (this.#menuItems = createMenuItems(this.md)) }\n\n\t#createComponent: ComponentFactory = (_id: ComponentId) => {\n\t\tif (!this.#menu) {\n\t\t\tconst menuItems = this.menuItems;\n\t\t\tthis.#menu = dom.createElement<Menu>('og-menu');\n\t\t\tthis.#menu.dynamicWidth = false;\n\t\t\tthis.#menu.disabledFocus = true;\n\t\t\tthis.#menu.style.width = '100%';\n\t\t\tthis.#menu.style.height = '100%';\n\t\t\tthis.#menu.style.border = 'none';\n\t\t\tthis.#menu.items = menuItems;\n\t\t\tthis.#menu.addEventListener('menu.select', (e: MenuEvent) => {\n\t\t\t\tconst item = menuItems.find(item => item.key === e.item.key);\n\t\t\t\tif (item?.onRun) {\n\t\t\t\t\titem.onRun(this.ctx);\n\t\t\t\t\tthis.dispatchEvent(new Event('run'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.#menu.addEventListener('mousedown', (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t});\n\t\t}\n\t\treturn this.#menu;\n\t}\n\n\t#onTabSelect = (e: TabEvent) => {\n\t\tif (this.#menu?.list) {\n\t\t\tconst index = this.menuItems.findIndex(item => item.key === e.tab.id);\n\t\t\tif (index > -1) this.#menu.list.scrollToIndex(index);\t\n\t\t}\n\t}\n\n\trender = () => html`\n\t\t<og-tabcontainer\n\t\t\t.createComponent=\"${this.#createComponent}\"\n\t\t\t.items=\"${items}\"\n\t\t\t@tab.select=\"${this.#onTabSelect}\">\n\t\t</og-tabcontainer>\n\t`;\n}\n"]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
2
|
-
import type { NodeView, EditorView } from '@omegagrid/milkdown-kit/dist/prose/view';
|
|
3
|
-
import type { Node } from '@omegagrid/milkdown-kit/dist/prose/model';
|
|
4
|
-
import { CodeBlock, CodeEvent, CodeView } from '@omegagrid/code';
|
|
5
|
-
export declare class CodeEditorBlock implements NodeView {
|
|
6
|
-
md: typeof milkdown;
|
|
7
|
-
node: Node;
|
|
8
|
-
view: EditorView;
|
|
9
|
-
getPos: () => number | undefined;
|
|
10
|
-
dom: CodeBlock | CodeView;
|
|
11
|
-
private updating;
|
|
12
|
-
private languageName;
|
|
13
|
-
get editor(): import("monaco-editor").editor.IStandaloneCodeEditor;
|
|
14
|
-
get model(): import("monaco-editor").editor.ITextModel;
|
|
15
|
-
constructor(md: typeof milkdown, node: Node, view: EditorView, getPos: () => number | undefined);
|
|
16
|
-
_onChange: (e: CodeEvent) => void;
|
|
17
|
-
private createComponent;
|
|
18
|
-
setSelection(anchor: number, head: number): void;
|
|
19
|
-
update(node: Node): boolean;
|
|
20
|
-
selectNode(): void;
|
|
21
|
-
deselectNode(): void;
|
|
22
|
-
stopEvent(): boolean;
|
|
23
|
-
destroy(): void;
|
|
24
|
-
private updateLanguage;
|
|
25
|
-
setLanguage: (language: string) => void;
|
|
26
|
-
}
|
|
27
|
-
export type CodeEditorConfig = Record<string, never>;
|
|
28
|
-
export declare const defaultCodeEditorConfig: CodeEditorConfig;
|
|
29
|
-
export declare function createCodeBlockConfig(md: typeof milkdown): milkdown.utils.$Ctx<CodeEditorConfig, "codeEditorConfigCtx">;
|
|
30
|
-
export declare function createCodeBlockView(md: typeof milkdown): milkdown.utils.$View<milkdown.utils.$Node, (node: Node, view: EditorView, getPos: () => number | undefined) => CodeEditorBlock>;
|
|
31
|
-
//# sourceMappingURL=codeBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeBlock.d.ts","sourceRoot":"","sources":["../../../src/components/features/codeBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIjE,qBAAa,eAAgB,YAAW,QAAQ;IASvC,EAAE,EAAE,OAAO,QAAQ;IACnB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAXxC,GAAG,EAAE,SAAS,GAAC,QAAQ,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAuB;IAE3C,IAAI,MAAM,yDAAqD;IAC/D,IAAI,KAAK,8CAAqC;gBAGtC,EAAE,EAAE,OAAO,QAAQ,EACnB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAMxC,SAAS,GAAI,GAAG,SAAS,UA0BxB;IAED,OAAO,CAAC,eAAe;IAuBvB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAkBzC,MAAM,CAAC,IAAI,EAAE,IAAI;IASjB,UAAU;IAKV,YAAY;IAIZ,SAAS;IAIT,OAAO;IAIP,OAAO,CAAC,cAAc;IAKtB,WAAW,GAAI,UAAU,MAAM,UAE9B;CAuED;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,eAAO,MAAM,uBAAuB,EAAS,gBAAgB,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,QAAQ,gEAExD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,QAAQ,mIAStD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dom}from"@omegagrid/core";import{CodeBlock}from"@omegagrid/code";const DEFAULT_LANGUAGE="plaintext";export class CodeEditorBlock{get editor(){return this.dom?.editor?.editor}get model(){return this.editor?.getModel()}constructor(t,e,o,i){this.md=t,this.node=e,this.view=o,this.getPos=i,this.updating=!1,this.languageName="plaintext",this._onChange=t=>{if(this.updating)return;const e=t.editor.getModel(),o=this.view.state.tr;this.view.dispatch(o.setNodeAttribute(this.getPos()??0,"content",e.getValue()))},this.setLanguage=t=>{this.view.dispatch(this.view.state.tr.setNodeAttribute(this.getPos()??0,"language",t))},this.dom=this.createComponent(),this.updateLanguage()}createComponent(){const t=this.view.editable?dom.createElement("og-code-block"):dom.createElement("og-code-view");return t.content=this.node.textContent,t instanceof CodeBlock?(t.dynamicHeight=!0,t.editorOptions={minimap:{enabled:!1},stickyScroll:{enabled:!1}},t.addEventListener("code.change",this._onChange),t.addEventListener("changeLanguage",(t=>this.setLanguage(t.value)))):t.copy=!0,t}setSelection(t,e){if(!this.dom?.isConnected)return;this.dom.focus(),this.updating=!0;const o=this.model;if(o){const i=o.getPositionAt(t),n=o.getPositionAt(e);this.editor.setSelection({startLineNumber:i.lineNumber,startColumn:i.column,endLineNumber:n.lineNumber,endColumn:n.column})}this.updating=!1}update(t){return t.type===this.node.type&&(this.updating||(this.node=t,this.updateLanguage(),this.dom.content=t.textContent),!0)}selectNode(){this.dom.focus()}deselectNode(){}stopEvent(){return!0}destroy(){}updateLanguage(){this.languageName=this.node.attrs.language||"plaintext",this.dom.language=this.languageName}}export const defaultCodeEditorConfig={};export function createCodeBlockConfig(t){return t.utils.$ctx(defaultCodeEditorConfig,"codeEditorConfigCtx")}export function createCodeBlockView(t){return t.utils.$view(t.presets.commonmark.codeBlockSchema.node,(e=>(e,o,i)=>new CodeEditorBlock(t,e,o,i)))}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeBlock.js","sourceRoot":"","sources":["../../../src/components/features/codeBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAEjE,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAErC,MAAM,OAAO,eAAe;IAK3B,IAAI,MAAM,KAAK,OAAQ,IAAI,CAAC,GAAiB,EAAE,MAAM,EAAE,MAAM,CAAA,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA,CAAC,CAAC;IAE9C,YACQ,EAAmB,EACnB,IAAU,EACV,IAAgB,EAChB,MAAgC;QAHhC,OAAE,GAAF,EAAE,CAAiB;QACnB,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAA0B;QAVhC,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAW,WAAW,CAAC;QAe3C,cAAS,GAAG,CAAC,CAAY,EAAE,EAAE;YAC5B,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAEzF,6CAA6C;YAC7C,4EAA4E;YAC5E,wEAAwE;YAExE,2BAA2B;YAC3B,mCAAmC;YACnC,iCAAiC;YACjC,uDAAuD;YACvD,uCAAuC;YACvC,mCAAmC;YACnC,uBAAuB;YACvB,kEAAkE;YAClE,aAAa;YACb,0BAA0B;YAC1B,MAAM;YACN,yCAAyC;YACzC,OAAO;YACP,qFAAqF;YACrF,0BAA0B;YAC1B,IAAI;QACL,CAAC,CAAA;QA0ED,gBAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnG,CAAC,CAAA;QA1GA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC;IA8BO,eAAe;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YACnC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAY,eAAe,CAAC;YAC/C,CAAC,CAAC,GAAG,CAAC,aAAa,CAAW,cAAc,CAAC,CAAC;QAE/C,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAE1C,IAAI,SAAS,YAAY,SAAS,EAAE,CAAC;YACpC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;YAC/B,SAAS,CAAC,aAAa,GAAG;gBACzB,OAAO,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC;gBACzB,YAAY,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC;aAC9B,CAAC;YACF,oCAAoC;YACpC,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1D,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACP,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,IAAY;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW;YAAE,OAAO;QACnC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxB,eAAe,EAAE,KAAK,CAAC,UAAU;gBACjC,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,aAAa,EAAE,GAAG,CAAC,UAAU;gBAC7B,SAAS,EAAE,GAAG,CAAC,MAAM;aACrB,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,IAAU;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,UAAU;QACT,iCAAiC;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;IAED,YAAY;QACX,kCAAkC;IACnC,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO;QACN,2BAA2B;IAC5B,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,gBAAgB,CAAC;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,CAAC;CA2ED;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAsB,CAAC;AAE9D,MAAM,UAAU,qBAAqB,CAAC,EAAmB;IACxD,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAmB;IACtD,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CACpB,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAC1C,IAAI,CAAC,EAAE;QACN,+CAA+C;QAC/C,8DAA8D;QAC9D,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CACD,CAAC;AACH,CAAC;AAED,8GAA8G;AAC9G,uCAAuC;AAEvC,kBAAkB;AAClB,+BAA+B;AAC/B,+BAA+B;AAE/B,4FAA4F;AAC5F,iHAAiH;AACjH,cAAc;AACd,cAAc;AACd,KAAK;AAEL,wEAAwE;AACxE,IAAI","sourcesContent":["import type * as milkdown from '@omegagrid/milkdown-kit';\nimport type { NodeView, EditorView } from '@omegagrid/milkdown-kit/dist/prose/view';\nimport type { Node } from '@omegagrid/milkdown-kit/dist/prose/model';\nimport { dom, events } from '@omegagrid/core';\nimport { CodeBlock, CodeEvent, CodeView } from '@omegagrid/code';\n\nconst DEFAULT_LANGUAGE = 'plaintext';\n\nexport class CodeEditorBlock implements NodeView {\n\tdom: CodeBlock|CodeView;\n\tprivate updating = false;\n\tprivate languageName: string = 'plaintext';\n\n\tget editor() { return (this.dom as CodeBlock)?.editor?.editor }\n\tget model() { return this.editor?.getModel() }\n\n\tconstructor(\n\t\tpublic md: typeof milkdown,\n\t\tpublic node: Node,\n\t\tpublic view: EditorView,\n\t\tpublic getPos: () => number | undefined\n\t) {\n\t\tthis.dom = this.createComponent();\n\t\tthis.updateLanguage();\n\t}\n\n\t_onChange = (e: CodeEvent) => {\n\t\tif (this.updating) return;\n\t\tconst model = e.editor.getModel();\n\t\tconst tr = this.view.state.tr;\n\t\tthis.view.dispatch(tr.setNodeAttribute(this.getPos() ?? 0, 'content', model.getValue()));\n\t\t\n\t\t// const selection = e.editor.getSelection();\n\t\t// const selFrom = offset + model.getOffsetAt(selection.getStartPosition());\n\t\t// const selTo = offset + model.getOffsetAt(selection.getEndPosition());\n\n\t\t// if (e.changes?.length) {\n\t\t// \tconst tr = this.view.state.tr;\t\n\t\t// \te.changes.forEach(change => {\n\t\t// \t\tconst { rangeOffset, rangeLength, text } = change;\n\t\t// \t\tconst from = offset + rangeOffset;\n\t\t// \t\tconst to = from + rangeLength;\n\t\t// \t\tif (text.length) {\n\t\t// \t\t\ttr.replaceWith(from, to, this.view.state.schema.text(text));\n\t\t// \t\t} else {\n\t\t// \t\t\ttr.delete(from, to);\n\t\t// \t\t}\n\t\t// \t\toffset += text.length - rangeLength;\n\t\t// \t});\n\t\t// \ttr.setSelection(this.md.prose.state.TextSelection.create(tr.doc, selFrom, selTo))\n\t\t// \tthis.view.dispatch(tr)\n\t\t// }\n\t}\n\n\tprivate createComponent() {\n\t\tconst component = this.view.editable\n\t\t\t? dom.createElement<CodeBlock>('og-code-block')\n\t\t\t: dom.createElement<CodeView>('og-code-view');\n\n\t\tcomponent.content = this.node.textContent;\n\n\t\tif (component instanceof CodeBlock) {\n\t\t\tcomponent.dynamicHeight = true;\n\t\t\tcomponent.editorOptions = {\n\t\t\t\tminimap: {enabled: false},\n\t\t\t\tstickyScroll: {enabled: false},\n\t\t\t};\n\t\t\t// dom.setSize(component, {h: 500});\n\t\t\tcomponent.addEventListener('code.change', this._onChange);\n\t\t\tcomponent.addEventListener('changeLanguage', (e: events.ChangeEvent) => this.setLanguage(e.value));\n\t\t} else {\n\t\t\tcomponent.copy = true;\n\t\t}\n\n\t\treturn component;\n\t}\n\n\tsetSelection(anchor: number, head: number) {\n\t\tif (!this.dom?.isConnected) return;\n\t\tthis.dom.focus();\n\t\tthis.updating = true;\n\t\tconst model = this.model;\n\t\tif (model) {\n\t\t\tconst start = model.getPositionAt(anchor);\n\t\t\tconst end = model.getPositionAt(head);\n\t\t\tthis.editor.setSelection({\n\t\t\t\tstartLineNumber: start.lineNumber,\n\t\t\t\tstartColumn: start.column,\n\t\t\t\tendLineNumber: end.lineNumber,\n\t\t\t\tendColumn: end.column\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tupdate(node: Node) {\n\t\tif (node.type !== this.node.type) return false;\n\t\tif (this.updating) return true;\n\t\tthis.node = node;\n\t\tthis.updateLanguage();\n\t\tthis.dom.content = node.textContent;\n\t\treturn true;\n\t}\n\n\tselectNode() {\n\t\t// this.component.selected = true\n\t\tthis.dom.focus()\n\t}\n\n\tdeselectNode() {\n\t\t// this.component.selected = false\n\t}\n\n\tstopEvent() {\n\t\treturn true\n\t}\n\n\tdestroy() {\n\t\t// this.component.destroy()\n\t}\n\n\tprivate updateLanguage() {\n\t\tthis.languageName = this.node.attrs.language || DEFAULT_LANGUAGE;\n\t\tthis.dom.language = this.languageName;\n\t}\n\n\tsetLanguage = (language: string) => {\n\t\tthis.view.dispatch(this.view.state.tr.setNodeAttribute(this.getPos() ?? 0, 'language', language));\n\t}\n\n\t// private codeMirrorKeymap = (): KeyBinding[] => {\n\t// \tconst view = this.view\n\t// \treturn [\n\t// \t\t{ key: 'ArrowUp', run: () => this.maybeEscape('line', -1) },\n\t// \t\t{ key: 'ArrowLeft', run: () => this.maybeEscape('char', -1) },\n\t// \t\t{ key: 'ArrowDown', run: () => this.maybeEscape('line', 1) },\n\t// \t\t{ key: 'ArrowRight', run: () => this.maybeEscape('char', 1) },\n\t// \t\t{\n\t// \t\t\tkey: 'Mod-Enter',\n\t// \t\t\trun: () => {\n\t// \t\t\t\tif (!exitCode(view.state, view.dispatch)) return false\n\n\t// \t\t\t\tview.focus()\n\t// \t\t\t\treturn true\n\t// \t\t\t},\n\t// \t\t},\n\t// \t\t{ key: 'Mod-z', run: () => undo(view.state, view.dispatch) },\n\t// \t\t{ key: 'Shift-Mod-z', run: () => redo(view.state, view.dispatch) },\n\t// \t\t{ key: 'Mod-y', run: () => redo(view.state, view.dispatch) },\n\t// \t\t{\n\t// \t\t\tkey: 'Backspace',\n\t// \t\t\trun: () => {\n\t// \t\t\t\tconst ranges = this.cm.state.selection.ranges\n\n\t// \t\t\t\tif (ranges.length > 1) return false\n\n\t// \t\t\t\tconst selection = ranges[0]\n\n\t// \t\t\t\tif (selection && (!selection.empty || selection.anchor > 0))\n\t// \t\t\t\t\treturn false\n\n\t// \t\t\t\tif (this.cm.state.doc.lines >= 2) return false\n\n\t// \t\t\t\tconst state = this.view.state\n\t// \t\t\t\tconst pos = this.getPos() ?? 0\n\t// \t\t\t\tconst tr = state.tr.replaceWith(\n\t// \t\t\t\t\tpos,\n\t// \t\t\t\t\tpos + this.node.nodeSize,\n\t// \t\t\t\t\tstate.schema.nodes.paragraph!.createChecked({}, this.node.content)\n\t// \t\t\t\t)\n\n\t// \t\t\t\ttr.setSelection(TextSelection.near(tr.doc.resolve(pos)))\n\n\t// \t\t\t\tthis.view.dispatch(tr)\n\t// \t\t\t\tthis.view.focus()\n\t// \t\t\t\treturn true\n\t// \t\t\t},\n\t// \t\t},\n\t// \t]\n\t// }\n\n\t// private maybeEscape = (unit: 'line' | 'char', dir: -1 | 1): boolean => {\n\t// \tconst editorSelection = this.editor.getSelection();\n\t// \tlet main: SelectionRange | Line = state.selection.main\n\t// \tif (!main.empty) return false\n\t// \tif (unit === 'line') main = state.doc.lineAt(main.head)\n\t// \tif (dir < 0 ? main.from > 0 : main.to < state.doc.length) return false\n\n\t// \tconst targetPos = (this.getPos() ?? 0) + (dir < 0 ? 0 : this.node.nodeSize)\n\t// \tconst selection = TextSelection.near(\n\t// \t\tthis.view.state.doc.resolve(targetPos),\n\t// \t\tdir\n\t// \t)\n\t// \tconst tr = this.view.state.tr.setSelection(selection).scrollIntoView();\n\t// \tthis.view.dispatch(tr);\n\t// \tthis.view.focus();\n\t// \treturn true;\n\t// }\n\n}\n\nexport type CodeEditorConfig = Record<string, never>;\nexport const defaultCodeEditorConfig = {} as CodeEditorConfig;\n\nexport function createCodeBlockConfig(md: typeof milkdown) {\n\treturn md.utils.$ctx(defaultCodeEditorConfig, 'codeEditorConfigCtx');\n}\n\nexport function createCodeBlockView(md: typeof milkdown) {\n\treturn md.utils.$view(\n\t\tmd.presets.commonmark.codeBlockSchema.node,\n\t\t_ctx => {\n\t\t\t// const config = ctx.get('codeBlockConfigCtx')\n\t\t\t// const languageLoader = new LanguageLoader(config.languages)\n\t\t\treturn (node, view, getPos) => new CodeEditorBlock(md, node, view, getPos);\n\t\t}\n\t);\n}\n\n// function computeChange(oldVal: string, newVal: string): { from: number; to: number; text: string } | null {\n// \tif (oldVal === newVal) return null;\n\n// \tlet start = 0;\n// \tlet oldEnd = oldVal.length;\n// \tlet newEnd = newVal.length;\n\n// \twhile (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start)) ++start;\n// \twhile (oldEnd > start && newEnd > start && oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)) {\n// \t\toldEnd--;\n// \t\tnewEnd--;\n// \t}\n\n// \treturn {from: start, to: oldEnd, text: newVal.slice(start, newEnd)};\n// }\n"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
2
|
-
import type { NodeView, EditorView } from '@omegagrid/milkdown-kit/dist/prose/view';
|
|
3
|
-
import type { Node } from '@omegagrid/milkdown-kit/dist/prose/model';
|
|
4
|
-
import { events } from '@omegagrid/core';
|
|
5
|
-
import { CodeBlock } from '@omegagrid/code';
|
|
6
|
-
import { LitElement } from 'lit';
|
|
7
|
-
export declare class HtmlBlockComponent extends LitElement {
|
|
8
|
-
#private;
|
|
9
|
-
static styles: import("lit").CSSResult;
|
|
10
|
-
get content(): string;
|
|
11
|
-
set content(val: string);
|
|
12
|
-
editable: boolean;
|
|
13
|
-
editing: boolean;
|
|
14
|
-
editor: CodeBlock;
|
|
15
|
-
startEdit: () => void;
|
|
16
|
-
constructor();
|
|
17
|
-
commit(): void;
|
|
18
|
-
render: () => import("lit-html/development/directive").DirectiveResult<typeof import("lit/directives/unsafe-html.js").UnsafeHTMLDirective>;
|
|
19
|
-
}
|
|
20
|
-
export declare class HtmlBlock implements NodeView {
|
|
21
|
-
md: typeof milkdown;
|
|
22
|
-
node: Node;
|
|
23
|
-
view: EditorView;
|
|
24
|
-
getPos: () => number | undefined;
|
|
25
|
-
dom: HtmlBlockComponent;
|
|
26
|
-
private updating;
|
|
27
|
-
constructor(md: typeof milkdown, node: Node, view: EditorView, getPos: () => number | undefined);
|
|
28
|
-
_onChange: (e: events.ChangeEvent) => void;
|
|
29
|
-
update(node: Node): boolean;
|
|
30
|
-
selectNode(): void;
|
|
31
|
-
deselectNode(): void;
|
|
32
|
-
stopEvent(): boolean;
|
|
33
|
-
destroy(): void;
|
|
34
|
-
}
|
|
35
|
-
export type CodeEditorConfig = Record<string, never>;
|
|
36
|
-
export declare const defaultCodeEditorConfig: CodeEditorConfig;
|
|
37
|
-
export declare function createHtmlBlockConfig(md: typeof milkdown): milkdown.utils.$Ctx<CodeEditorConfig, "htmlEditorConfigCtx">;
|
|
38
|
-
export declare function createHtmlBlockView(md: typeof milkdown): milkdown.utils.$View<milkdown.utils.$Node, (node: Node, view: EditorView, getPos: () => number | undefined) => HtmlBlock>;
|
|
39
|
-
//# sourceMappingURL=htmlBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"htmlBlock.d.ts","sourceRoot":"","sources":["../../../src/components/features/htmlBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AACrE,OAAO,EAAO,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,qBACa,kBAAmB,SAAQ,UAAU;;IAEjD,MAAM,CAAC,MAAM,0BA6BX;IAIF,IACI,OAAO,IACM,MAAM,CADe;IACtC,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,EAGtB;IAGD,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAGhB,MAAM,EAAE,SAAS,CAAC;IAElB,SAAS,aAEP;;IAOF,MAAM;IAMN,MAAM,qIAyBuB;CAE7B;AAGD,qBAAa,SAAU,YAAW,QAAQ;IAOjC,EAAE,EAAE,OAAO,QAAQ;IACnB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IATxC,GAAG,EAAE,kBAAkB,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAKjB,EAAE,EAAE,OAAO,QAAQ,EACnB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS;IAQxC,SAAS,GAAI,GAAG,MAAM,CAAC,WAAW,UAIjC;IAED,MAAM,CAAC,IAAI,EAAE,IAAI;IAQjB,UAAU;IAKV,YAAY;IAIZ,SAAS;IAIT,OAAO;CAyEP;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,eAAO,MAAM,uBAAuB,EAAS,gBAAgB,CAAC;AAE9D,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,OAAO,QAAQ,gEAExD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,QAAQ,6HAQtD"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
var _HtmlBlockComponent_content,__decorate=this&&this.__decorate||function(t,e,o,i){var n,r=arguments.length,s=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,o,i);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(s=(r<3?n(s):r>3?n(e,o,s):n(e,o))||s);return r>3&&s&&Object.defineProperty(e,o,s),s},__classPrivateFieldGet=this&&this.__classPrivateFieldGet||function(t,e,o,i){if("a"===o&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?i:"a"===o?i.call(t):i?i.value:e.get(t)},__classPrivateFieldSet=this&&this.__classPrivateFieldSet||function(t,e,o,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(t,o):n?n.value=o:e.set(t,o),o};import{dom,events}from"@omegagrid/core";import{LitElement,css,html}from"lit";import{customElement,property,query}from"lit/decorators.js";import{unsafeHTML}from"lit/directives/unsafe-html.js";import{msg}from"@omegagrid/localize";let HtmlBlockComponent=class extends LitElement{get content(){return __classPrivateFieldGet(this,_HtmlBlockComponent_content,"f")}set content(t){__classPrivateFieldSet(this,_HtmlBlockComponent_content,t,"f"),this.requestUpdate()}constructor(){super(),_HtmlBlockComponent_content.set(this,""),this.editable=!1,this.editing=!1,this.startEdit=()=>{this.editing=!0},this.render=()=>this.editable?html`
|
|
2
|
-
<div class="title">Raw HTML</div>
|
|
3
|
-
<div class="body">
|
|
4
|
-
${this.editing?html`
|
|
5
|
-
<og-code-block
|
|
6
|
-
disableToolbar
|
|
7
|
-
dynamicHeight
|
|
8
|
-
language="html"
|
|
9
|
-
.content="${this.content}"
|
|
10
|
-
.editorOptions="${{minimap:{enabled:!1},lineNumbers:{renderType:0}}}"
|
|
11
|
-
@blur="${()=>this.commit()}"
|
|
12
|
-
@code.ready="${()=>this.editor.focus()}">
|
|
13
|
-
</og-code-block>
|
|
14
|
-
`:this.content?html`
|
|
15
|
-
<og-code-view
|
|
16
|
-
language="html"
|
|
17
|
-
.content="${this.content}" >
|
|
18
|
-
</og-code-view>
|
|
19
|
-
`:html`
|
|
20
|
-
<div class="placeholder">${msg("Insert HTML")}</div>
|
|
21
|
-
`}
|
|
22
|
-
</div>
|
|
23
|
-
`:unsafeHTML(this.content),this.addEventListener("click",(()=>this.startEdit()))}commit(){this.editing=!1,__classPrivateFieldSet(this,_HtmlBlockComponent_content,this.editor.model.getValue(),"f"),this.dispatchEvent(new events.ChangeEvent(__classPrivateFieldGet(this,_HtmlBlockComponent_content,"f")))}};_HtmlBlockComponent_content=new WeakMap,HtmlBlockComponent.styles=css`
|
|
24
|
-
* {
|
|
25
|
-
box-sizing: border-box;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
:host {
|
|
29
|
-
font-size: var(--og-font-size);
|
|
30
|
-
display: block;
|
|
31
|
-
white-space: normal;
|
|
32
|
-
border: 1px solid var(--og-border-color);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.title {
|
|
36
|
-
font-size: 10px;
|
|
37
|
-
color: var(--og-accent-color);
|
|
38
|
-
padding: 2px;
|
|
39
|
-
border-bottom: 1px solid var(--og-border-color);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.html {
|
|
43
|
-
padding: 2px;
|
|
44
|
-
white-space: pre-wrap;
|
|
45
|
-
word-wrap: break-word;
|
|
46
|
-
cursor: pointer;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
og-code-view, .placeholder {
|
|
50
|
-
cursor: pointer;
|
|
51
|
-
}
|
|
52
|
-
`,__decorate([property({type:String})],HtmlBlockComponent.prototype,"content",null),__decorate([property({type:Boolean})],HtmlBlockComponent.prototype,"editable",void 0),__decorate([property({type:Boolean})],HtmlBlockComponent.prototype,"editing",void 0),__decorate([query("og-code-block")],HtmlBlockComponent.prototype,"editor",void 0),HtmlBlockComponent=__decorate([customElement("og-markdown-html-block")],HtmlBlockComponent);export{HtmlBlockComponent};export class HtmlBlock{constructor(t,e,o,i){this.md=t,this.node=e,this.view=o,this.getPos=i,this.updating=!1,this._onChange=t=>{if(this.updating)return;const e=this.view.state.tr;this.view.dispatch(e.setNodeAttribute(this.getPos()??0,"value",t.value))},this.dom=dom.createElement("og-markdown-html-block"),this.dom.editable=this.view.editable,this.dom.content=this.node.attrs?.value,this.dom.addEventListener("change",this._onChange)}update(t){return t.type===this.node.type&&(this.updating||(this.node=t,this.dom.content=this.node.attrs?.value),!0)}selectNode(){this.view.editable&&this.dom.startEdit(),this.dom.focus()}deselectNode(){}stopEvent(){return!0}destroy(){}}export const defaultCodeEditorConfig={};export function createHtmlBlockConfig(t){return t.utils.$ctx(defaultCodeEditorConfig,"htmlEditorConfigCtx")}export function createHtmlBlockView(t){return t.utils.$view(t.presets.commonmark.htmlSchema.node,(e=>(e,o,i)=>new HtmlBlock(t,e,o,i)))}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"htmlBlock.js","sourceRoot":"","sources":["../../../src/components/features/htmlBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as milkdown from '@omegagrid/milkdown-kit';\nimport type { NodeView, EditorView } from '@omegagrid/milkdown-kit/dist/prose/view';\nimport type { Node } from '@omegagrid/milkdown-kit/dist/prose/model';\nimport { dom, events } from '@omegagrid/core';\nimport { CodeBlock } from '@omegagrid/code';\nimport { LitElement, css, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { msg } from '@omegagrid/localize';\n\n@customElement('og-markdown-html-block')\nexport class HtmlBlockComponent extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tfont-size: var(--og-font-size);\n\t\t\tdisplay: block;\n\t\t\twhite-space: normal;\n\t\t\tborder: 1px solid var(--og-border-color);\n\t\t}\n\n\t\t.title {\n\t\t\tfont-size: 10px;\n\t\t\tcolor: var(--og-accent-color);\n\t\t\tpadding: 2px;\n\t\t\tborder-bottom: 1px solid var(--og-border-color);\n\t\t}\n\t\t\n\t\t.html {\n\t\t\tpadding: 2px;\n\t\t\twhite-space: pre-wrap;\n\t\t\tword-wrap: break-word;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\tog-code-view, .placeholder {\n\t\t\tcursor: pointer;\n\t\t}\n\t`;\n\n\t#content: string = '';\n\n\t@property({type: String})\n\tget content() { return this.#content }\n\tset content(val: string) {\n\t\tthis.#content = val;\n\t\tthis.requestUpdate();\n\t}\n\n\t@property({type: Boolean})\n\teditable = false;\n\n\t@property({type: Boolean})\n\tediting = false;\n\n\t@query('og-code-block')\n\teditor: CodeBlock;\n\n\tstartEdit = () => {\n\t\tthis.editing = true;\n\t};\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', () => this.startEdit());\n\t}\n\n\tcommit() {\n\t\tthis.editing = false;\n\t\tthis.#content = this.editor.model.getValue();\n\t\tthis.dispatchEvent(new events.ChangeEvent(this.#content));\n\t}\n\n\trender = () => this.editable ? html`\n\t\t<div class=\"title\">Raw HTML</div>\n\t\t<div class=\"body\">\n\t\t\t${this.editing ? html`\n\t\t\t\t<og-code-block\n\t\t\t\t\tdisableToolbar\n\t\t\t\t\tdynamicHeight\n\t\t\t\t\tlanguage=\"html\"\n\t\t\t\t\t.content=\"${this.content}\"\n\t\t\t\t\t.editorOptions=\"${{\n\t\t\t\t\t\tminimap: {enabled: false},\n\t\t\t\t\t\tlineNumbers: {renderType: 0}\n\t\t\t\t\t}}\"\n\t\t\t\t\t@blur=\"${() => this.commit()}\"\n\t\t\t\t\t@code.ready=\"${() => this.editor.focus()}\">\n\t\t\t\t</og-code-block>\n\t\t\t` : (this.content ? html`\n\t\t\t\t<og-code-view \n\t\t\t\t\tlanguage=\"html\"\n\t\t\t\t\t.content=\"${this.content}\" >\n\t\t\t\t</og-code-view>\n\t\t\t` : html`\n\t\t\t\t<div class=\"placeholder\">${msg('Insert HTML')}</div>\n\t\t\t`)}\n\t\t</div>\n\t` : unsafeHTML(this.content);\n//<div class=\"html\" @click=\"${() => this.startEdit()}\">${this.content}</div>\n}\n\n\nexport class HtmlBlock implements NodeView {\n\tdom: HtmlBlockComponent;\n\tprivate updating = false;\n\t// private get editor() { return (this.dom as CodeBlock)?.editor?.editor }\n\t// get model() { return this.editor?.getModel() }\n\n\tconstructor(\n\t\tpublic md: typeof milkdown,\n\t\tpublic node: Node,\n\t\tpublic view: EditorView,\n\t\tpublic getPos: () => number | undefined\n\t) {\n\t\tthis.dom = dom.createElement<HtmlBlockComponent>('og-markdown-html-block');\n\t\tthis.dom.editable = this.view.editable;\n\t\tthis.dom.content = this.node.attrs?.value;\n\t\tthis.dom.addEventListener('change', this._onChange);\n\t}\n\n\t_onChange = (e: events.ChangeEvent) => {\n\t\tif (this.updating) return;\n\t\tconst tr = this.view.state.tr;\n\t\tthis.view.dispatch(tr.setNodeAttribute(this.getPos() ?? 0, 'value', e.value));\n\t}\n\n\tupdate(node: Node) {\n\t\tif (node.type !== this.node.type) return false;\n\t\tif (this.updating) return true;\n\t\tthis.node = node;\n\t\tthis.dom.content = this.node.attrs?.value;\n\t\treturn true;\n\t}\n\n\tselectNode() {\n\t\tif (this.view.editable) this.dom.startEdit();\n\t\tthis.dom.focus()\n\t}\n\n\tdeselectNode() {\n\t\t// this.component.selected = false\n\t}\n\n\tstopEvent() {\n\t\treturn true\n\t}\n\n\tdestroy() {\n\t\t// this.component.destroy()\n\t}\n\n\t// private codeMirrorKeymap = (): KeyBinding[] => {\n\t// \tconst view = this.view\n\t// \treturn [\n\t// \t\t{ key: 'ArrowUp', run: () => this.maybeEscape('line', -1) },\n\t// \t\t{ key: 'ArrowLeft', run: () => this.maybeEscape('char', -1) },\n\t// \t\t{ key: 'ArrowDown', run: () => this.maybeEscape('line', 1) },\n\t// \t\t{ key: 'ArrowRight', run: () => this.maybeEscape('char', 1) },\n\t// \t\t{\n\t// \t\t\tkey: 'Mod-Enter',\n\t// \t\t\trun: () => {\n\t// \t\t\t\tif (!exitCode(view.state, view.dispatch)) return false\n\n\t// \t\t\t\tview.focus()\n\t// \t\t\t\treturn true\n\t// \t\t\t},\n\t// \t\t},\n\t// \t\t{ key: 'Mod-z', run: () => undo(view.state, view.dispatch) },\n\t// \t\t{ key: 'Shift-Mod-z', run: () => redo(view.state, view.dispatch) },\n\t// \t\t{ key: 'Mod-y', run: () => redo(view.state, view.dispatch) },\n\t// \t\t{\n\t// \t\t\tkey: 'Backspace',\n\t// \t\t\trun: () => {\n\t// \t\t\t\tconst ranges = this.cm.state.selection.ranges\n\n\t// \t\t\t\tif (ranges.length > 1) return false\n\n\t// \t\t\t\tconst selection = ranges[0]\n\n\t// \t\t\t\tif (selection && (!selection.empty || selection.anchor > 0))\n\t// \t\t\t\t\treturn false\n\n\t// \t\t\t\tif (this.cm.state.doc.lines >= 2) return false\n\n\t// \t\t\t\tconst state = this.view.state\n\t// \t\t\t\tconst pos = this.getPos() ?? 0\n\t// \t\t\t\tconst tr = state.tr.replaceWith(\n\t// \t\t\t\t\tpos,\n\t// \t\t\t\t\tpos + this.node.nodeSize,\n\t// \t\t\t\t\tstate.schema.nodes.paragraph!.createChecked({}, this.node.content)\n\t// \t\t\t\t)\n\n\t// \t\t\t\ttr.setSelection(TextSelection.near(tr.doc.resolve(pos)))\n\n\t// \t\t\t\tthis.view.dispatch(tr)\n\t// \t\t\t\tthis.view.focus()\n\t// \t\t\t\treturn true\n\t// \t\t\t},\n\t// \t\t},\n\t// \t]\n\t// }\n\n\t// private maybeEscape = (unit: 'line' | 'char', dir: -1 | 1): boolean => {\n\t// \tconst editorSelection = this.editor.getSelection();\n\t// \tlet main: SelectionRange | Line = state.selection.main\n\t// \tif (!main.empty) return false\n\t// \tif (unit === 'line') main = state.doc.lineAt(main.head)\n\t// \tif (dir < 0 ? main.from > 0 : main.to < state.doc.length) return false\n\n\t// \tconst targetPos = (this.getPos() ?? 0) + (dir < 0 ? 0 : this.node.nodeSize)\n\t// \tconst selection = TextSelection.near(\n\t// \t\tthis.view.state.doc.resolve(targetPos),\n\t// \t\tdir\n\t// \t)\n\t// \tconst tr = this.view.state.tr.setSelection(selection).scrollIntoView();\n\t// \tthis.view.dispatch(tr);\n\t// \tthis.view.focus();\n\t// \treturn true;\n\t// }\n\n}\n\nexport type CodeEditorConfig = Record<string, never>;\nexport const defaultCodeEditorConfig = {} as CodeEditorConfig;\n\nexport function createHtmlBlockConfig(md: typeof milkdown) {\n\treturn md.utils.$ctx(defaultCodeEditorConfig, 'htmlEditorConfigCtx');\n}\n\nexport function createHtmlBlockView(md: typeof milkdown) {\n\treturn md.utils.$view(\n\t\tmd.presets.commonmark.htmlSchema.node,\n\t\t_ctx => {\n\t\t\t// const config = ctx.get('codeBlockConfigCtx')\n\t\t\treturn (node, view, getPos) => new HtmlBlock(md, node, view, getPos);\n\t\t}\n\t);\n}\n"]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
2
|
-
export * from './blockEditMenu';
|
|
3
|
-
export * from './htmlBlock';
|
|
4
|
-
export * from './linkEdit';
|
|
5
|
-
export type DefineFeature<TConfig = unknown> = (editor: milkdown.core.Editor, config?: TConfig) => void | Promise<void>;
|
|
6
|
-
export declare function configureFeatures(features: EditorFeature[], md: typeof milkdown): (ctx: milkdown.ctx.Ctx) => void;
|
|
7
|
-
export declare enum EditorFeature {
|
|
8
|
-
BlockEdit = "block-edit",
|
|
9
|
-
Cursor = "cursor",
|
|
10
|
-
CodeEditor = "code-editor",
|
|
11
|
-
LinkTooltip = "link-tooltip",
|
|
12
|
-
ImageBlock = "image-block",
|
|
13
|
-
Toolbar = "toolbar",
|
|
14
|
-
Placeholder = "placeholder",
|
|
15
|
-
Table = "table",
|
|
16
|
-
Html = "html",
|
|
17
|
-
Emoji = "emoji",
|
|
18
|
-
Toc = "toc"
|
|
19
|
-
}
|
|
20
|
-
export type FeatureDefinition = {
|
|
21
|
-
default: boolean;
|
|
22
|
-
init: () => void;
|
|
23
|
-
};
|
|
24
|
-
export declare function getFeatures(editor: milkdown.core.Editor, md: typeof milkdown, options: {
|
|
25
|
-
onUpload?: (file: File) => Promise<string>;
|
|
26
|
-
modifyImageUrl?: (file: string) => Promise<string> | string;
|
|
27
|
-
}): Map<EditorFeature, FeatureDefinition>;
|
|
28
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAQzD,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,OAAO,IAAI,CAC9C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,MAAM,CAAC,EAAE,OAAO,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEzB,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,OAAO,QAAQ,IACvE,KAAK,QAAQ,CAAC,GAAG,CAAC,GAAG,UAG7B;AAGD,oBAAY,aAAa;IACxB,SAAS,eAAe;IACxB,MAAM,WAAW;IACjB,UAAU,gBAAgB;IAE1B,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;CACX;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAC;AAUF,wBAAgB,WAAW,CAC1B,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC5B,EAAE,EAAE,OAAO,QAAQ,EACnB,OAAO,EAAE;IACR,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAC,MAAM,CAAC;CAC1D,yCAyJD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{BlockHandleView}from"./blockEdit";import{ToolbarView}from"./toolbar";import{createPlaceHolder}from"./placeholder";import{createCodeBlockConfig,createCodeBlockView}from"./codeBlock";import{createHtmlBlockConfig,createHtmlBlockView}from"./htmlBlock";import{createTocBlock}from"./tocBlock";import linkEdit from"./linkEdit";export*from"./blockEditMenu";export*from"./htmlBlock";export*from"./linkEdit";export function configureFeatures(o,e){return i=>{i.inject(e.ctx.createSlice([],"FeaturesCtx"),o)}}export var EditorFeature;!function(o){o.BlockEdit="block-edit",o.Cursor="cursor",o.CodeEditor="code-editor",o.LinkTooltip="link-tooltip",o.ImageBlock="image-block",o.Toolbar="toolbar",o.Placeholder="placeholder",o.Table="table",o.Html="html",o.Emoji="emoji",o.Toc="toc"}(EditorFeature||(EditorFeature={}));const createModifyImageUrl=o=>async e=>{if(!e)return null;const i=o(e);return"string"==typeof e?i:await i};export function getFeatures(o,e,i){const t=i.modifyImageUrl?createModifyImageUrl(i.modifyImageUrl):null;return new Map([[EditorFeature.BlockEdit,{default:!0,init:()=>{o.config((o=>{o.set(e.plugins.block.blockConfig.key,{filterNodes:o=>!e.prose.findParent((o=>["table","blockquote"].includes(o.type.name)))(o)}),o.set(e.plugins.block.block.key,{view:()=>new BlockHandleView(o,e)})})).use(e.plugins.block.block)}}],[EditorFeature.Cursor,{default:!0,init:()=>{o.config((o=>{o.update(e.plugins.cursor.dropCursorConfig.key,(()=>({class:"md-editor-drop-cursor",width:4})))})).use(e.plugins.cursor.cursor)}}],[EditorFeature.ImageBlock,{default:!0,init:()=>{o.config((o=>{o.update(e.components.imageInline.inlineImageConfig.key,(o=>({uploadButton:'<og-icon icon="upload"></og-icon>',imageIcon:'<og-icon icon="image"></og-icon>',confirmButton:'<og-icon icon="check"></og-icon>',uploadPlaceholderText:"or paste link",onUpload:i.onUpload,proxyDomURL:t}))),o.update(e.components.imageBlock.imageBlockConfig.key,(o=>({uploadButton:"Upload file",imageIcon:'<og-icon icon="image"></og-icon>',captionIcon:'<og-icon icon="comment"></og-icon>',confirmButton:"Confirm",captionPlaceholderText:"Write Image Caption",uploadPlaceholderText:"or paste link",onUpload:i.onUpload,proxyDomURL:t})))})).use(e.components.imageBlock.imageBlockComponent).use(e.components.imageInline.imageInlineComponent)}}],[EditorFeature.LinkTooltip,{default:!0,init:()=>{const e=linkEdit.getPlugin();o.config(linkEdit.configure).use(e)}}],[EditorFeature.Toolbar,{default:!0,init:()=>{const i=e.plugins.tooltip.tooltipFactory("MARKDOWN_TOOLBAR");o.config((o=>{o.set(i.key,{view:i=>new ToolbarView(o,i,e)})})).use(i)}}],[EditorFeature.Placeholder,{default:!0,init:()=>{const{config:i,plugin:t}=createPlaceHolder(e);o.config((o=>{o.update(i.key,(o=>({...o})))})).use(t).use(i)}}],[EditorFeature.Table,{default:!0,init:()=>{o.config((o=>{o.update(e.components.tableBlock.tableBlockConfig.key,(o=>({renderButton:o=>{switch(o){case"add_row":case"add_col":return'<og-icon icon="plus"></og-icon>';case"delete_row":case"delete_col":return'<og-icon icon="trash"></og-icon>';case"align_col_left":return'<og-icon icon="align-left"></og-icon>';case"align_col_center":return'<og-icon icon="align-center"></og-icon>';case"align_col_right":return'<og-icon icon="align-right"></og-icon>';case"col_drag_handle":return'<og-icon icon="grip-lines-vertical"></og-icon>';case"row_drag_handle":return'<og-icon icon="grip-lines"></og-icon>'}}})))})).use(e.components.tableBlock.tableBlock)}}],[EditorFeature.CodeEditor,{default:!0,init:()=>{const i=createCodeBlockConfig(e),t=createCodeBlockView(e);o.config((o=>{o.update(i.key,(o=>({})))})).use([t,i])}}],[EditorFeature.Html,{default:!0,init:()=>{const i=createHtmlBlockConfig(e),t=createHtmlBlockView(e);o.config((o=>{o.update(i.key,(o=>({})))})).use([t,i])}}],[EditorFeature.Emoji,{default:!0,init:()=>{e.plugins.emoji&&o.use(e.plugins.emoji.emoji)}}],[EditorFeature.Toc,{default:!0,init:()=>{const i=createTocBlock(e);o.config((o=>{o.update(i.tocConfig.key,(o=>({})))})).use(i.plugins)}}]])}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/features/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\n// import { Editor } from '@milkdown/kit/core';\n// import { createSlice } from '@milkdown/kit/ctx';\n// import { BlockProvider, block, blockConfig } from '@milkdown/kit/plugin/block'\nimport { BlockHandleView } from './blockEdit';\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { ToolbarView } from './toolbar';\nimport { createPlaceHolder } from './placeholder';\nimport { createCodeBlockConfig, createCodeBlockView } from './codeBlock';\nimport { createHtmlBlockConfig, createHtmlBlockView } from './htmlBlock';\nimport { createTocBlock } from './tocBlock';\nimport linkEdit from './linkEdit';\n\nexport * from './blockEditMenu';\nexport * from './htmlBlock';\nexport * from './linkEdit';\n\nexport type DefineFeature<TConfig = unknown> = (\n\teditor: milkdown.core.Editor,\n\tconfig?: TConfig\n) => void | Promise<void>\n\nexport function configureFeatures(features: EditorFeature[], md: typeof milkdown) {\n\treturn (ctx: milkdown.ctx.Ctx) => {\n\t\tctx.inject(md.ctx.createSlice([] as EditorFeature[], 'FeaturesCtx'), features)\n\t}\n}\n\n\nexport enum EditorFeature {\n\tBlockEdit = 'block-edit',\n\tCursor = 'cursor',\n\tCodeEditor = 'code-editor',\n\t// ListItem = 'list-item',\n\tLinkTooltip = 'link-tooltip',\n\tImageBlock = 'image-block',\n\tToolbar = 'toolbar',\n\tPlaceholder = 'placeholder',\n\tTable = 'table',\n\tHtml = 'html',\n\tEmoji = 'emoji',\n\tToc = 'toc'\n}\n\nexport type FeatureDefinition = {\n\tdefault: boolean,\n\tinit: () => void\n};\n\nconst createModifyImageUrl = (fn: (url: string) => Promise<string>|string) => {\n\treturn async (url: string) => {\n\t\tif (!url) return null;\n\t\tconst modUrl = fn(url);\n\t\treturn typeof url === 'string' ? modUrl : await modUrl;\n\t}\n};\n\nexport function getFeatures(\n\teditor: milkdown.core.Editor,\n\tmd: typeof milkdown,\n\toptions: {\n\t\tonUpload?: (file: File) => Promise<string>,\n\t\tmodifyImageUrl?: (file: string) => Promise<string>|string,\n\t}\n) {\n\tconst modifyImageUrl = options.modifyImageUrl ? createModifyImageUrl(options.modifyImageUrl) : null;\n\treturn new Map<EditorFeature, FeatureDefinition>([\n\t\t[EditorFeature.BlockEdit, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(md.plugins.block.blockConfig.key, {\n\t\t\t\t\t\tfilterNodes: (pos) => {\n\t\t\t\t\t\tconst filter = md.prose.findParent((node) =>\n\t\t\t\t\t\t\t['table', 'blockquote'].includes(node.type.name)\n\t\t\t\t\t\t)(pos)\n\t\t\t\t\t\tif (filter) return false\n\t\t\t\t\t\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tctx.set(md.plugins.block.block.key, {\n\t\t\t\t\t\tview: () => new BlockHandleView(ctx, md),\n\t\t\t\t\t})\n\t\t\t\t}).use(md.plugins.block.block);\n\t\t\t\t// .config((ctx) => configureMenu(ctx, config))\n\t\t\t\t// .use(menuAPI)\n\t\t\t\t// .use(menu)\n\t\t\t}\n\t\t}], [EditorFeature.Cursor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.plugins.cursor.dropCursorConfig.key, () => ({\n\t\t\t\t\t\tclass: 'md-editor-drop-cursor',\n\t\t\t\t\t\twidth: 4,\n\t\t\t\t\t\t// color: '#ff0000',\n\t\t\t\t\t}))\n\t\t\t\t}).use(md.plugins.cursor.cursor)\n\t\t\t}\n\t\t}], [EditorFeature.ImageBlock, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.imageInline.inlineImageConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: '<og-icon icon=\"upload\"></og-icon>',\n\t\t\t\t\t\timageIcon: '<og-icon icon=\"image\"></og-icon>',\n\t\t\t\t\t\tconfirmButton: '<og-icon icon=\"check\"></og-icon>',\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t\tctx.update(md.components.imageBlock.imageBlockConfig.key, (_value) => ({\n\t\t\t\t\t\tuploadButton: 'Upload file',\n\t\t\t\t\t\timageIcon: '<og-icon icon=\"image\"></og-icon>',\n\t\t\t\t\t\tcaptionIcon: '<og-icon icon=\"comment\"></og-icon>',\n\t\t\t\t\t\tconfirmButton: 'Confirm',\n\t\t\t\t\t\tcaptionPlaceholderText: 'Write Image Caption',\n\t\t\t\t\t\tuploadPlaceholderText: 'or paste link',\n\t\t\t\t\t\tonUpload: options.onUpload,\n\t\t\t\t\t\tproxyDomURL: modifyImageUrl,\n\t\t\t\t\t} as any))\n\t\t\t\t})\n\t\t\t\t.use(md.components.imageBlock.imageBlockComponent)\n\t\t\t\t.use(md.components.imageInline.imageInlineComponent)\n\t\t\t}\n\t\t}], [EditorFeature.LinkTooltip, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\t// const toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_LINK_EDIT_TOOLBAR');\n\t\t\t\tconst plugin = linkEdit.getPlugin();\n\t\t\t\teditor.config(linkEdit.configure)\n\t\t\t\t/*.config((ctx) => {\n\t\t\t\t\tctx.update(linkEdit.getState().key, (prev) => ({...prev}));\n\t\t\t\t})*/\n\t\t\t\t.use(plugin);\n\t\t\t}\n\t\t}], [EditorFeature.Toolbar, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toolbar = md.plugins.tooltip.tooltipFactory('MARKDOWN_TOOLBAR');\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.set(toolbar.key, {\n\t\t\t\t\t\tview: (view) => new ToolbarView(ctx, view, md),\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t\t.use(toolbar)\n\t\t\t}\n\t\t}], [EditorFeature.Placeholder, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst { config, plugin } = createPlaceHolder(md);\n\t\t\t\t\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(config.key, (prev) => {\n\t\t\t\t\t\treturn {...prev};\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.use(plugin)\n\t\t\t\t.use(config)\n\t\t\t}\n\t\t}], [EditorFeature.Table, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(md.components.tableBlock.tableBlockConfig.key, (_prev) => ({\n\t\t\t\t\t\trenderButton: (renderType) => {\n\t\t\t\t\t\t\tswitch (renderType) {\n\t\t\t\t\t\t\t\tcase 'add_row': return '<og-icon icon=\"plus\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'add_col': return '<og-icon icon=\"plus\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'delete_row': return '<og-icon icon=\"trash\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'delete_col': return '<og-icon icon=\"trash\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'align_col_left': return '<og-icon icon=\"align-left\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'align_col_center': return '<og-icon icon=\"align-center\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'align_col_right': return '<og-icon icon=\"align-right\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'col_drag_handle': return '<og-icon icon=\"grip-lines-vertical\"></og-icon>';\n\t\t\t\t\t\t\t\tcase 'row_drag_handle': return '<og-icon icon=\"grip-lines\"></og-icon>';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t})\n\t\t\t\t.use(md.components.tableBlock.tableBlock)\n\t\t\t}\n\t\t}], [EditorFeature.CodeEditor, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst codeBlockConfig = createCodeBlockConfig(md);\n\t\t\t\tconst codeBlockView = createCodeBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(codeBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([codeBlockView, codeBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Html, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst htmlBlockConfig = createHtmlBlockConfig(md);\n\t\t\t\tconst htmlBlockView = createHtmlBlockView(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(htmlBlockConfig.key, (_defaultConfig) => ({}));\n\t\t\t\t}).use([htmlBlockView, htmlBlockConfig]);\n\t\t\t}\n\t\t}], [EditorFeature.Emoji, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tif (md.plugins.emoji) editor.use(md.plugins.emoji.emoji);\n\t\t\t}\n\t\t}], [EditorFeature.Toc, {\n\t\t\tdefault: true,\n\t\t\tinit: () => {\n\t\t\t\tconst toc = createTocBlock(md);\n\t\t\t\teditor.config((ctx) => {\n\t\t\t\t\tctx.update(toc.tocConfig.key, (_d) => ({}));\n\t\t\t\t}).use(toc.plugins);\n\t\t\t}\n\t\t}]\n\t]);\n}\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { LitElement } from "lit";
|
|
2
|
-
import type * as milkdown from '@omegagrid/milkdown-kit';
|
|
3
|
-
import { Input } from "@omegagrid/core";
|
|
4
|
-
export declare class LinkEdit extends LitElement {
|
|
5
|
-
static styles: import("lit").CSSResult;
|
|
6
|
-
ctx: milkdown.ctx.Ctx;
|
|
7
|
-
value: string;
|
|
8
|
-
input: Input;
|
|
9
|
-
constructor();
|
|
10
|
-
render: () => import("lit").TemplateResult<1>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/components/features/linkEdit/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAU,MAAM,iBAAiB,CAAC;AAEhD,qBACa,QAAS,SAAQ,UAAU;IAEvC,MAAM,CAAC,MAAM,0BA8BX;IAEF,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;IAGtB,KAAK,SAAM;IAGX,KAAK,EAAE,KAAK,CAAC;;IAab,MAAM,wCAmBJ;CACF"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
var __decorate=this&&this.__decorate||function(t,e,o,n){var i,r=arguments.length,c=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(t,e,o,n);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(c=(r<3?i(c):r>3?i(e,o,c):i(e,o))||c);return r>3&&c&&Object.defineProperty(e,o,c),c};import{LitElement,css,html}from"lit";import{customElement,property,query}from"lit/decorators.js";import{events}from"@omegagrid/core";let LinkEdit=class extends LitElement{constructor(){super(),this.value="",this.render=()=>html`
|
|
2
|
-
<div class="inner">
|
|
3
|
-
<og-icon icon="link"></og-icon>
|
|
4
|
-
|
|
5
|
-
<og-input
|
|
6
|
-
placeholder="URL"
|
|
7
|
-
.value="${this.value}">
|
|
8
|
-
</og-input>
|
|
9
|
-
|
|
10
|
-
<og-button icon="check" @click="${()=>this.dispatchEvent(new events.ChangeEvent({value:this.input.value}))}">
|
|
11
|
-
</og-button>
|
|
12
|
-
|
|
13
|
-
<og-button icon="trash" color="red" @click="${()=>this.dispatchEvent(new events.ChangeEvent({value:null}))}">
|
|
14
|
-
</og-button>
|
|
15
|
-
</div>
|
|
16
|
-
`,this.addEventListener("click",(t=>t.stopPropagation())),this.addEventListener("mousedown",(t=>t.stopPropagation())),this.addEventListener("mouseup",(t=>t.stopPropagation()))}};LinkEdit.styles=css`
|
|
17
|
-
* {
|
|
18
|
-
box-sizing: border-box;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
:host {
|
|
22
|
-
display: none;
|
|
23
|
-
position: absolute;
|
|
24
|
-
background-color: var(--og-background-color);
|
|
25
|
-
border: 1px solid var(--og-accent-color);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.inner {
|
|
29
|
-
display: flex;
|
|
30
|
-
height: 22px;
|
|
31
|
-
line-height: 22px;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.inner > og-icon {
|
|
35
|
-
flex: 0 20px;
|
|
36
|
-
text-align: center;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.inner > og-input {
|
|
40
|
-
flex: 1;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.inner > og-button {
|
|
44
|
-
flex: 0 20px;
|
|
45
|
-
}
|
|
46
|
-
`,__decorate([property({type:String})],LinkEdit.prototype,"value",void 0),__decorate([query("og-input")],LinkEdit.prototype,"input",void 0),LinkEdit=__decorate([customElement("og-markdown-linkedit")],LinkEdit);export{LinkEdit};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/components/features/linkEdit/component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAS,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IA0CvC;QACC,KAAK,EAAE,CAAC;QANT,UAAK,GAAG,EAAE,CAAC;QAYX,gDAAgD;QAChD,qDAAqD;QACrD,IAAI;QAEJ,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;;cAMN,IAAI,CAAC,KAAK;;;qCAGa,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;YACjF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;SACvB,CAAC,CAAC;;;iDAG2C,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;YAC7F,KAAK,EAAE,IAAI;SACX,CAAC,CAAC;;;EAGJ,CAAC;QA5BD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;;AA7CM,eAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BlB,AA9BY,CA8BX;AAKF;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;uCACd;AAGX;IADC,KAAK,CAAC,UAAU,CAAC;uCACL;AAxCD,QAAQ;IADpB,aAAa,CAAC,sBAAsB,CAAC;GACzB,QAAQ,CAyEpB","sourcesContent":["import { LitElement, css, html } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport type * as milkdown from '@omegagrid/milkdown-kit';\nimport { Input, events } from \"@omegagrid/core\";\n\n@customElement('og-markdown-linkedit')\nexport class LinkEdit extends LitElement {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: none;\n\t\t\tposition: absolute;\n\t\t\tbackground-color: var(--og-background-color);\n\t\t\tborder: 1px solid var(--og-accent-color);\n\t\t}\n\n\t\t.inner {\n\t\t\tdisplay: flex;\n\t\t\theight: 22px;\n\t\t\tline-height: 22px;\n\t\t}\n\n\t\t.inner > og-icon {\n\t\t\tflex: 0 20px;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t.inner > og-input {\n\t\t\tflex: 1;\n\t\t}\n\n\t\t.inner > og-button {\n\t\t\tflex: 0 20px;\n\t\t}\n\t`;\n\n\tctx: milkdown.ctx.Ctx;\n\n\t@property({type: String})\n\tvalue = '';\n\n\t@query('og-input')\n\tinput: Input;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', (e) => e.stopPropagation());\n\t\tthis.addEventListener('mousedown', (e) => e.stopPropagation());\n\t\tthis.addEventListener('mouseup', (e) => e.stopPropagation());\n\t}\n\n\t// command(key: milkdown.core.CmdKey<unknown>) {\n\t// \tthis.ctx.get(this.md.core.commandsCtx).call(key);\n\t// }\n\n\trender = () => html`\n\t\t<div class=\"inner\">\n\t\t\t<og-icon icon=\"link\"></og-icon>\n\n\t\t\t<og-input \n\t\t\t\tplaceholder=\"URL\" \n\t\t\t\t.value=\"${this.value}\">\n\t\t\t</og-input>\n\n\t\t\t<og-button icon=\"check\" @click=\"${() => this.dispatchEvent(new events.ChangeEvent({\n\t\t\t\tvalue: this.input.value\n\t\t\t}))}\">\n\t\t\t</og-button>\n\n\t\t\t<og-button icon=\"trash\" color=\"red\" @click=\"${() => this.dispatchEvent(new events.ChangeEvent({\n\t\t\t\tvalue: null\n\t\t\t}))}\">\n\t\t\t</og-button>\n\t\t</div>\n\t`;\n}"]}
|