From 8bf3c6d8da477c71f6cbb5be1140460141b30f33 Mon Sep 17 00:00:00 2001 From: TechQuery Date: Thu, 25 Apr 2024 21:14:51 +0800 Subject: [PATCH] [add] Test page --- .parcelrc | 8 ++++++++ package.json | 4 ++++ pnpm-lock.yaml | 36 +++++++++++++++++++++++------------- source/Editor.tsx | 41 +++++++++++++++++++++++++++++++++++++++++ test/index.html | 17 +++++++++++++++++ test/index.tsx | 18 ++++++++++++++++++ test/package.json | 5 +++++ test/tsconfig.json | 4 ++++ 8 files changed, 120 insertions(+), 13 deletions(-) create mode 100644 .parcelrc create mode 100644 source/Editor.tsx create mode 100644 test/index.html create mode 100644 test/index.tsx create mode 100644 test/package.json create mode 100644 test/tsconfig.json diff --git a/.parcelrc b/.parcelrc new file mode 100644 index 0000000..a8f22fc --- /dev/null +++ b/.parcelrc @@ -0,0 +1,8 @@ +{ + "extends": "@parcel/config-default", + "transformers": { + "*.{ts,tsx}": [ + "@parcel/transformer-typescript-tsc" + ] + } +} diff --git a/package.json b/package.json index 99b18ea..21d1200 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,10 @@ "web-utility": "^4.3.0" }, "devDependencies": { + "@parcel/config-default": "~2.12.0", "@parcel/packager-ts": "~2.12.0", "@parcel/transformer-less": "~2.12.0", + "@parcel/transformer-typescript-tsc": "~2.12.0", "@parcel/transformer-typescript-types": "~2.12.0", "element-internals-polyfill": "^1.3.11", "husky": "^9.0.11", @@ -67,6 +69,8 @@ "scripts": { "prepare": "husky", "test": "lint-staged", + "clean": "rm -rf .parcel-cache/ dist/", + "start": "npm run clean && cd test/ && parcel index.html --open", "pack-docs": "rm -rf docs/ && typedoc source/", "pack-dist": "rm -rf dist/ && parcel build source/index.tsx", "build": "npm run pack-docs && npm run pack-dist", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02a9548..ac78a4a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,12 +33,18 @@ importers: specifier: ^4.3.0 version: 4.3.0(typescript@5.4.5) devDependencies: + '@parcel/config-default': + specifier: ~2.12.0 + version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(srcset@4.0.0)(typescript@5.4.5) '@parcel/packager-ts': specifier: ~2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) '@parcel/transformer-less': specifier: ~2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) + '@parcel/transformer-typescript-tsc': + specifier: ~2.12.0 + version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(typescript@5.4.5) '@parcel/transformer-typescript-types': specifier: ~2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(typescript@5.4.5) @@ -368,6 +374,12 @@ packages: resolution: {integrity: sha512-cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==} engines: {node: '>= 12.0.0', parcel: ^2.12.0} + '@parcel/transformer-typescript-tsc@2.12.0': + resolution: {integrity: sha512-2y74ijth5nngFTRXvZGmZXRwmPjzTHTs8LA6PLXiAbR41091C4QdHvNk1Z3iFo29yyECwAUXGubY2mC0sfWbUA==} + engines: {node: '>= 12.0.0', parcel: ^2.12.0} + peerDependencies: + typescript: '>=3.0.0' + '@parcel/transformer-typescript-types@2.12.0': resolution: {integrity: sha512-uxF4UBMYvbjiV3zHTWMrZX8cFD92VUvD3ArcGi5WEtuVROUm9Sc47o0mOzxKfMFlJu2KOfZVHYlzK9f/UKA2kQ==} engines: {node: '>= 12.0.0', parcel: ^2.12.0} @@ -1684,7 +1696,7 @@ snapshots: '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) '@parcel/logger': 2.12.0 '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) '@swc/core': 1.5.0(@swc/helpers@0.5.11) @@ -1994,6 +2006,16 @@ snapshots: - '@parcel/core' - '@swc/helpers' + '@parcel/transformer-typescript-tsc@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(typescript@5.4.5)': + dependencies: + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) + '@parcel/source-map': 2.1.1 + '@parcel/ts-utils': 2.12.0(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + '@parcel/transformer-typescript-types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)(typescript@5.4.5)': dependencies: '@parcel/diagnostic': 2.12.0 @@ -2012,18 +2034,6 @@ snapshots: nullthrows: 1.1.1 typescript: 5.4.5 - '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))': - dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) - '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11)) - utility-types: 3.11.0 - transitivePeerDependencies: - - '@parcel/core' - '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11)': dependencies: '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.11))(@swc/helpers@0.5.11) diff --git a/source/Editor.tsx b/source/Editor.tsx new file mode 100644 index 0000000..9b73620 --- /dev/null +++ b/source/Editor.tsx @@ -0,0 +1,41 @@ +import { observable } from 'mobx'; +import Quill from 'quill'; +import { WebCell, attribute, component, observer } from 'web-cell'; + +export interface QuillCell extends WebCell {} + +@component({ + tagName: 'quill-cell', + mode: 'open' +}) +@observer +export class QuillCell extends HTMLElement implements WebCell { + core: Quill; + + @attribute + @observable + accessor theme: 'bubble' | 'snow' = 'snow'; + + mountedCallback() { + const { theme } = this; + + this.core = new Quill( + this.shadowRoot.lastElementChild as HTMLDivElement, + { theme } + ); + } + + render() { + const { theme } = this; + + return ( + <> + +
+ + ); + } +} diff --git a/test/index.html b/test/index.html new file mode 100644 index 0000000..ecb85ba --- /dev/null +++ b/test/index.html @@ -0,0 +1,17 @@ + + + + + + + +
+ + + diff --git a/test/index.tsx b/test/index.tsx new file mode 100644 index 0000000..16f32fa --- /dev/null +++ b/test/index.tsx @@ -0,0 +1,18 @@ +import { configure } from 'mobx'; +import { DOMRenderer } from 'dom-renderer'; + +import { QuillCell } from '../source/Editor'; + +configure({ enforceActions: 'never' }); + +new DOMRenderer().render( + // @ts-ignore +
+ Quill Cell editor + + + + + , + document.querySelector('main') +); diff --git a/test/package.json b/test/package.json new file mode 100644 index 0000000..4d9dadd --- /dev/null +++ b/test/package.json @@ -0,0 +1,5 @@ +{ + "name": "@easywebapp/quill-cell-editor-demo", + "private": true, + "source": "index.html" +} diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..4922dec --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../tsconfig.json", + "include": ["**/*"] +}