zerocodejs 1.0.1-beta.1 → 1.0.1-beta.11
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/README.ja.md +171 -0
- package/README.md +101 -103
- package/dist/components/ZeroCodeCMS.vue.d.ts.map +1 -1
- package/dist/components/ZeroCodeEditor.vue.d.ts.map +1 -1
- package/dist/core/composables/useZeroCodeRenderer.d.ts.map +1 -1
- package/dist/core/utils/edit-panel-fields.d.ts +17 -0
- package/dist/core/utils/edit-panel-fields.d.ts.map +1 -0
- package/dist/core/utils/template-processor.d.ts +6 -1
- package/dist/core/utils/template-processor.d.ts.map +1 -1
- package/dist/features/editor/components/EditPanel.vue.d.ts +15 -0
- package/dist/features/editor/components/EditPanel.vue.d.ts.map +1 -1
- package/dist/features/editor/components/ImageSelectModal.vue.d.ts +14 -0
- package/dist/features/editor/components/ImageSelectModal.vue.d.ts.map +1 -1
- package/dist/features/editor/composables/useEditMode.d.ts +4 -16
- package/dist/features/editor/composables/useEditMode.d.ts.map +1 -1
- package/dist/features/parts-manager/components/MonacoEditor.vue.d.ts.map +1 -1
- package/dist/features/parts-manager/components/PartsManagerPanel.vue.d.ts.map +1 -1
- package/dist/features/parts-manager/composables/usePartsManager.d.ts +1 -0
- package/dist/features/parts-manager/composables/usePartsManager.d.ts.map +1 -1
- package/dist/features/preview/PreviewArea.vue.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +18 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/locales/en.d.ts +9 -0
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/ja.d.ts +9 -0
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/zerocode.es.js +13793 -14352
- package/dist/zerocode.umd.js +57 -62
- package/dist/zerocodejs.css +1 -1
- package/package.json +7 -6
- package/dist/__tests__/fixtures/sample-data.d.ts +0 -23
- package/dist/__tests__/fixtures/sample-data.d.ts.map +0 -1
- package/dist/__tests__/fixtures/sample-templates.d.ts +0 -25
- package/dist/__tests__/fixtures/sample-templates.d.ts.map +0 -1
- package/dist/core/utils/component-initializer.test.d.ts +0 -2
- package/dist/core/utils/component-initializer.test.d.ts.map +0 -1
- package/dist/core/utils/field-extractor.test.d.ts +0 -2
- package/dist/core/utils/field-extractor.test.d.ts.map +0 -1
- package/dist/core/utils/image-utils.test.d.ts +0 -2
- package/dist/core/utils/image-utils.test.d.ts.map +0 -1
- package/dist/core/utils/path-utils.test.d.ts +0 -2
- package/dist/core/utils/path-utils.test.d.ts.map +0 -1
- package/dist/core/utils/storage.test.d.ts +0 -2
- package/dist/core/utils/storage.test.d.ts.map +0 -1
- package/dist/core/utils/template-processor.test.d.ts +0 -2
- package/dist/core/utils/template-processor.test.d.ts.map +0 -1
- package/dist/core/utils/template-utils.test.d.ts +0 -2
- package/dist/core/utils/template-utils.test.d.ts.map +0 -1
- package/dist/core/utils/validation.test.d.ts +0 -2
- package/dist/core/utils/validation.test.d.ts.map +0 -1
- package/dist/css/common.css +0 -677
- package/dist/css/docs.css +0 -396
- package/dist/css/index.css +0 -1039
- package/dist/css/page.css +0 -290
- package/dist/css/sample.css +0 -26
- package/dist/css/site-common.css +0 -218
- package/dist/footer.html +0 -10
- package/dist/header.html +0 -10
- package/dist/images/customer-avatar.jpg +0 -0
- package/dist/images/default-avatar.jpg +0 -0
- package/dist/images/default.jpg +0 -0
- package/dist/images/hero-bg.jpg +0 -0
- package/dist/images/kv_image.jpg +0 -0
- package/dist/images/page-specific-hero.jpg +0 -0
- package/dist/images/sample-1.jpg +0 -0
- package/dist/images/sample-2.jpg +0 -0
- package/dist/images/sample-3.jpg +0 -0
- package/dist/images/zcode_top_01.png +0 -0
- package/dist/js/accordion.js +0 -24
- package/dist/js/common.js +0 -1093
- package/dist/zerocode.es.js.map +0 -1
- package/dist/zerocode.umd.js.map +0 -1
package/README.ja.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# ZeroCode.js
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/zerocodejs)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://atsumi-code.github.io/zerocodejs/)
|
|
6
|
+
|
|
7
|
+
🌐 [English](./README.md)
|
|
8
|
+
|
|
9
|
+
シンプルに編集画面を。フレームワーク非依存のCMSフロントエンドライブラリ
|
|
10
|
+
|
|
11
|
+
> **Status: Beta**
|
|
12
|
+
>
|
|
13
|
+
> ZeroCode.js は現在ベータ版です。仕様・API・データ形式は予告なく変更される可能性があります(破壊的変更を含む)。
|
|
14
|
+
> 不具合報告・改善提案・ユースケース共有・ドキュメントのズレの指摘を歓迎します。
|
|
15
|
+
>
|
|
16
|
+
> - **GitHub**: https://github.com/atsumi-code/zerocodejs
|
|
17
|
+
> - **Issue**: [https://github.com/atsumi-code/zerocodejs/issues](https://github.com/atsumi-code/zerocodejs/issues)
|
|
18
|
+
> - **Discussion**: [https://github.com/atsumi-code/zerocodejs/discussions](https://github.com/atsumi-code/zerocodejs/discussions)(運用していない場合は Issue でOK)
|
|
19
|
+
> - **Contributing**: [./CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
20
|
+
|
|
21
|
+
> ⭐ **スターをお願いします**
|
|
22
|
+
> このプロジェクトに共感していただけたら、[GitHub でスター](https://github.com/atsumi-code/zerocodejs)をいただけると励みになります。
|
|
23
|
+
|
|
24
|
+
## 特徴
|
|
25
|
+
|
|
26
|
+
- **フレームワーク非依存**: Web Componentsとして実装されているため、どのフレームワークでも使用可能
|
|
27
|
+
- **視覚的編集**: クリック操作でコンテンツを編集・追加・削除・並べ替え
|
|
28
|
+
- **パーツ管理**: 再利用可能なパーツを作成・管理
|
|
29
|
+
- **画像管理**: 画像のアップロード・管理機能
|
|
30
|
+
- **柔軟なテンプレート**: カスタムHTMLテンプレート構文で動的なコンテンツを定義
|
|
31
|
+
- **軽量**: gzip後 約260KB
|
|
32
|
+
|
|
33
|
+
## デモ
|
|
34
|
+
|
|
35
|
+
**ライブデモ:** https://atsumi-code.github.io/zerocodejs/
|
|
36
|
+
|
|
37
|
+
## クイックスタート
|
|
38
|
+
|
|
39
|
+
### CDN(最も簡単)
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<!DOCTYPE html>
|
|
43
|
+
<html>
|
|
44
|
+
<head>
|
|
45
|
+
<link rel="stylesheet" href="https://unpkg.com/zerocodejs/dist/zerocodejs.css" />
|
|
46
|
+
</head>
|
|
47
|
+
<body>
|
|
48
|
+
<zcode-editor></zcode-editor>
|
|
49
|
+
|
|
50
|
+
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
|
51
|
+
<script src="https://unpkg.com/zerocodejs/dist/zerocode.umd.js"></script>
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
これだけです!ブラウザでファイルを開いて、パーツの作成を始めましょう。
|
|
57
|
+
|
|
58
|
+
### npm
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm install zerocodejs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```html
|
|
65
|
+
<!DOCTYPE html>
|
|
66
|
+
<html>
|
|
67
|
+
<head>
|
|
68
|
+
<link rel="stylesheet" href="node_modules/zerocodejs/dist/zerocodejs.css" />
|
|
69
|
+
</head>
|
|
70
|
+
<body>
|
|
71
|
+
<zcode-editor></zcode-editor>
|
|
72
|
+
|
|
73
|
+
<script type="module">
|
|
74
|
+
import 'zerocodejs';
|
|
75
|
+
</script>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### React
|
|
81
|
+
|
|
82
|
+
```jsx
|
|
83
|
+
import 'zerocodejs';
|
|
84
|
+
import 'zerocodejs/style.css';
|
|
85
|
+
|
|
86
|
+
function App() {
|
|
87
|
+
return <zcode-editor />;
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Vue
|
|
92
|
+
|
|
93
|
+
```vue
|
|
94
|
+
<template>
|
|
95
|
+
<zcode-editor />
|
|
96
|
+
</template>
|
|
97
|
+
|
|
98
|
+
<script setup>
|
|
99
|
+
import 'zerocodejs';
|
|
100
|
+
import 'zerocodejs/style.css';
|
|
101
|
+
</script>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## コンポーネント
|
|
105
|
+
|
|
106
|
+
### `<zcode-editor>`
|
|
107
|
+
|
|
108
|
+
エンジニア・デザイナー向けエディター。パーツ管理、画像管理、データビューアを含む全機能が利用可能。**はじめての方におすすめ。**
|
|
109
|
+
|
|
110
|
+
```html
|
|
111
|
+
<zcode-editor></zcode-editor>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### `<zcode-cms>`
|
|
115
|
+
|
|
116
|
+
エンドユーザー向けCMSエディター。編集・追加・削除・並べ替えのみ(パーツ管理・画像管理なし)。
|
|
117
|
+
|
|
118
|
+
```html
|
|
119
|
+
<zcode-cms></zcode-cms>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 既存データの読み込み
|
|
123
|
+
|
|
124
|
+
既存データを読み込む場合は、JavaScriptで属性を設定します:
|
|
125
|
+
|
|
126
|
+
```javascript
|
|
127
|
+
const editor = document.querySelector('zcode-editor');
|
|
128
|
+
editor.setAttribute('page', JSON.stringify(pageData));
|
|
129
|
+
editor.setAttribute('parts-common', JSON.stringify(partsData));
|
|
130
|
+
// ... 必要に応じて他の属性も設定
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## ドキュメント
|
|
134
|
+
|
|
135
|
+
- [技術仕様書](./TECHNICAL_SPECIFICATION.md)
|
|
136
|
+
- [実装TODO](./TODO.md)
|
|
137
|
+
- [AI向けガイドライン](./AGENTS.md)
|
|
138
|
+
|
|
139
|
+
## なぜ ZeroCode.js?
|
|
140
|
+
|
|
141
|
+
- **編集したいところだけ、手軽にCMSにしたい人** — 更新したい箇所を決めれば、その部分だけ画面で編集できる仕組みを簡単に作れる
|
|
142
|
+
- **HTML・CSS・JavaScriptだけでやりたい人** — 余計なフレームワークを使わず、基本だけで作りたい人
|
|
143
|
+
- **フロントエンドの変化に疲れた人** — 毎年新しい技術が出てきて追いかけるのが大変な人
|
|
144
|
+
- **AI時代に、人にもAIにも扱いやすいコンテンツにしたい人** — テンプレートとデータがシンプルなので、人が編集しやすく、AIとも相性がよい
|
|
145
|
+
|
|
146
|
+
## 日本語コミュニティ
|
|
147
|
+
|
|
148
|
+
- GitHub Issues での日本語での質問・議論を歓迎します
|
|
149
|
+
- Issue は日本語でも英語でもOKです
|
|
150
|
+
- PR のコミットメッセージは英語推奨ですが、日本語の説明も歓迎します
|
|
151
|
+
|
|
152
|
+
## セキュリティ
|
|
153
|
+
|
|
154
|
+
ZeroCode.jsはフロントエンドライブラリのため、クライアント側での完全なセキュリティ保証はできません。
|
|
155
|
+
|
|
156
|
+
### 推奨事項
|
|
157
|
+
|
|
158
|
+
- **サーバー側での検証を必須とする**: データ保存前にサーバー側で検証してください
|
|
159
|
+
- **認証・認可の実装**: パーツデータの変更は認証されたユーザーのみ許可してください
|
|
160
|
+
- **送信元の検証**: `save-request`イベントの`source`フィールドを確認してください
|
|
161
|
+
- **パーツテンプレートの管理**: パーツテンプレートは信頼できるソースからのみ使用してください
|
|
162
|
+
|
|
163
|
+
詳細は[技術仕様書](./TECHNICAL_SPECIFICATION.md)のセキュリティセクションを参照してください。
|
|
164
|
+
|
|
165
|
+
## ライセンス
|
|
166
|
+
|
|
167
|
+
MIT License
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
**最終更新日**: 2026年1月
|
package/README.md
CHANGED
|
@@ -1,115 +1,91 @@
|
|
|
1
1
|
# ZeroCode.js
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/zerocodejs)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://atsumi-code.github.io/zerocodejs/)
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
🇯🇵 [日本語ドキュメント](./README.ja.md)
|
|
8
|
+
|
|
9
|
+
**Simple editing UI. Framework-agnostic CMS frontend library.**
|
|
7
10
|
|
|
8
11
|
> **Status: Beta**
|
|
9
12
|
>
|
|
10
|
-
> ZeroCode.js
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
> - **GitHub**: https://github.com/atsumi-code/zerocodejs
|
|
14
|
-
> - **Issue**: [https://github.com/atsumi-code/zerocodejs/issues](https://github.com/atsumi-code/zerocodejs/issues)
|
|
15
|
-
> - **Discussion**: [https://github.com/atsumi-code/zerocodejs/discussions](https://github.com/atsumi-code/zerocodejs/discussions)(運用していない場合は Issue でOK)
|
|
16
|
-
> - **Contributing**: [./CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
17
|
-
|
|
18
|
-
> ⭐ **スターをお願いします**
|
|
19
|
-
> このプロジェクトに共感していただけたら、[GitHub でスター](https://github.com/atsumi-code/zerocodejs)をいただけると励みになります。
|
|
20
|
-
|
|
21
|
-
## 特徴
|
|
13
|
+
> ZeroCode.js is currently in beta. APIs, specifications, and data formats may change without notice (including breaking changes).
|
|
14
|
+
> Bug reports, feature requests, use case sharing, and documentation feedback are welcome.
|
|
22
15
|
|
|
23
|
-
|
|
24
|
-
- **視覚的編集**: クリック操作でコンテンツを編集・追加・削除・並べ替え
|
|
25
|
-
- **パーツ管理**: 再利用可能なパーツを作成・管理
|
|
26
|
-
- **画像管理**: 画像のアップロード・管理機能
|
|
27
|
-
- **柔軟なテンプレート**: カスタムHTMLテンプレート構文で動的なコンテンツを定義
|
|
28
|
-
- **高速**: Vue 3とViteによる高速な開発体験
|
|
16
|
+
## Features
|
|
29
17
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
18
|
+
- **Framework Agnostic** - Works with React, Vue, Svelte, Angular, or Vanilla JS via Web Components
|
|
19
|
+
- **Visual Editor** - Click to edit, drag to reorder, no coding required for content editing
|
|
20
|
+
- **Parts Management** - Create and manage reusable content blocks
|
|
21
|
+
- **Image Management** - Built-in image upload and management
|
|
22
|
+
- **Flexible Templates** - Custom HTML template syntax for dynamic content
|
|
23
|
+
- **Lightweight** - Only ~260KB gzipped
|
|
24
|
+
- **i18n Ready** - Built-in Japanese & English UI support
|
|
35
25
|
|
|
36
|
-
|
|
26
|
+
## Demo
|
|
37
27
|
|
|
38
|
-
|
|
28
|
+
**Live Demo:** https://atsumi-code.github.io/zerocodejs/
|
|
39
29
|
|
|
40
|
-
##
|
|
30
|
+
## Quick Start
|
|
41
31
|
|
|
42
|
-
###
|
|
32
|
+
### CDN (Easiest)
|
|
43
33
|
|
|
44
34
|
```html
|
|
45
35
|
<!DOCTYPE html>
|
|
46
|
-
<html
|
|
47
|
-
<head>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
</zcode-cms>
|
|
57
|
-
|
|
58
|
-
<script type="module">
|
|
59
|
-
import 'zerocodejs';
|
|
60
|
-
|
|
61
|
-
const cms = document.getElementById('cms');
|
|
62
|
-
cms.setAttribute('page', JSON.stringify([]));
|
|
63
|
-
cms.setAttribute('parts-common', JSON.stringify([]));
|
|
64
|
-
cms.setAttribute('parts-individual', JSON.stringify([]));
|
|
65
|
-
cms.setAttribute('parts-special', JSON.stringify([]));
|
|
66
|
-
cms.setAttribute('images-common', JSON.stringify([]));
|
|
67
|
-
cms.setAttribute('images-individual', JSON.stringify([]));
|
|
68
|
-
cms.setAttribute('images-special', JSON.stringify([]));
|
|
69
|
-
</script>
|
|
70
|
-
</body>
|
|
36
|
+
<html>
|
|
37
|
+
<head>
|
|
38
|
+
<link rel="stylesheet" href="https://unpkg.com/zerocodejs/dist/zerocodejs.css" />
|
|
39
|
+
</head>
|
|
40
|
+
<body>
|
|
41
|
+
<zcode-editor locale="en"></zcode-editor>
|
|
42
|
+
|
|
43
|
+
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
|
44
|
+
<script src="https://unpkg.com/zerocodejs/dist/zerocode.umd.js"></script>
|
|
45
|
+
</body>
|
|
71
46
|
</html>
|
|
72
47
|
```
|
|
73
48
|
|
|
74
|
-
|
|
49
|
+
That's it! Open the file in a browser and start creating parts.
|
|
50
|
+
|
|
51
|
+
### npm
|
|
75
52
|
|
|
76
53
|
```bash
|
|
77
54
|
npm install zerocodejs
|
|
78
55
|
```
|
|
79
56
|
|
|
57
|
+
```html
|
|
58
|
+
<!DOCTYPE html>
|
|
59
|
+
<html>
|
|
60
|
+
<head>
|
|
61
|
+
<link rel="stylesheet" href="node_modules/zerocodejs/dist/zerocodejs.css" />
|
|
62
|
+
</head>
|
|
63
|
+
<body>
|
|
64
|
+
<zcode-editor locale="en"></zcode-editor>
|
|
65
|
+
|
|
66
|
+
<script type="module">
|
|
67
|
+
import 'zerocodejs';
|
|
68
|
+
</script>
|
|
69
|
+
</body>
|
|
70
|
+
</html>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### React
|
|
74
|
+
|
|
80
75
|
```jsx
|
|
81
|
-
import { useEffect } from 'react';
|
|
82
76
|
import 'zerocodejs';
|
|
83
77
|
import 'zerocodejs/style.css';
|
|
84
78
|
|
|
85
79
|
function App() {
|
|
86
|
-
|
|
87
|
-
const cms = document.getElementById('cms');
|
|
88
|
-
if (cms) {
|
|
89
|
-
cms.setAttribute('page', JSON.stringify([]));
|
|
90
|
-
cms.setAttribute('parts-common', JSON.stringify([]));
|
|
91
|
-
cms.setAttribute('parts-individual', JSON.stringify([]));
|
|
92
|
-
cms.setAttribute('parts-special', JSON.stringify([]));
|
|
93
|
-
cms.setAttribute('images-common', JSON.stringify([]));
|
|
94
|
-
cms.setAttribute('images-individual', JSON.stringify([]));
|
|
95
|
-
cms.setAttribute('images-special', JSON.stringify([]));
|
|
96
|
-
}
|
|
97
|
-
}, []);
|
|
98
|
-
|
|
99
|
-
return <zcode-cms id="cms" locale="ja" />;
|
|
80
|
+
return <zcode-editor locale="en" />;
|
|
100
81
|
}
|
|
101
82
|
```
|
|
102
83
|
|
|
103
|
-
### Vue
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
npm install zerocodejs
|
|
107
|
-
# Vueは既にインストール済み
|
|
108
|
-
```
|
|
84
|
+
### Vue
|
|
109
85
|
|
|
110
86
|
```vue
|
|
111
87
|
<template>
|
|
112
|
-
<zcode-
|
|
88
|
+
<zcode-editor locale="en" />
|
|
113
89
|
</template>
|
|
114
90
|
|
|
115
91
|
<script setup>
|
|
@@ -118,48 +94,70 @@ import 'zerocodejs/style.css';
|
|
|
118
94
|
</script>
|
|
119
95
|
```
|
|
120
96
|
|
|
121
|
-
|
|
97
|
+
## Components
|
|
98
|
+
|
|
99
|
+
### `<zcode-editor>`
|
|
100
|
+
|
|
101
|
+
Developer-facing editor with parts management, image management, and data viewer. **Recommended for getting started.**
|
|
122
102
|
|
|
123
103
|
```html
|
|
124
|
-
<zcode-editor
|
|
125
|
-
<link slot="css" rel="stylesheet" href="/css/common.css" />
|
|
126
|
-
<script slot="script" src="/js/accordion.js"></script>
|
|
127
|
-
</zcode-editor>
|
|
104
|
+
<zcode-editor locale="en"></zcode-editor>
|
|
128
105
|
```
|
|
129
106
|
|
|
130
|
-
###
|
|
107
|
+
### `<zcode-cms>`
|
|
108
|
+
|
|
109
|
+
User-facing CMS editor for content management (no parts/image management).
|
|
131
110
|
|
|
132
111
|
```html
|
|
133
|
-
|
|
134
|
-
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
|
135
|
-
<!-- ZeroCode.jsを読み込む -->
|
|
136
|
-
<script src="https://unpkg.com/zerocodejs/dist/zerocode.umd.js"></script>
|
|
137
|
-
<link rel="stylesheet" href="https://unpkg.com/zerocodejs/dist/style.css">
|
|
112
|
+
<zcode-cms locale="en"></zcode-cms>
|
|
138
113
|
```
|
|
139
114
|
|
|
140
|
-
##
|
|
115
|
+
## Loading Existing Data
|
|
116
|
+
|
|
117
|
+
To load existing data, set attributes via JavaScript:
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
const editor = document.querySelector('zcode-editor');
|
|
121
|
+
editor.setAttribute('page', JSON.stringify(pageData));
|
|
122
|
+
editor.setAttribute('parts-common', JSON.stringify(partsData));
|
|
123
|
+
// ... other attributes as needed
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Documentation
|
|
127
|
+
|
|
128
|
+
- [Technical Specification](./TECHNICAL_SPECIFICATION.md)
|
|
129
|
+
- [日本語ドキュメント](./README.ja.md)
|
|
130
|
+
|
|
131
|
+
## Why ZeroCode.js?
|
|
132
|
+
|
|
133
|
+
- **For those who want to turn "this part should be editable" into a real CMS easily** — Define what should be editable, and you get a simple CMS for just those parts
|
|
134
|
+
- **For those who want to stick to HTML, CSS, and JavaScript** — No extra frameworks, just the basics
|
|
135
|
+
- **For people tired of the ever-changing frontend** — When keeping up with new tech feels like too much
|
|
136
|
+
- **For the AI era** — Simple template + data is easy for both humans and AI to work with
|
|
137
|
+
|
|
138
|
+
## Contributing
|
|
139
|
+
|
|
140
|
+
Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
- [実装TODO](./TODO.md)
|
|
144
|
-
- [AI向けガイドライン](./AGENTS.md)
|
|
142
|
+
We welcome contributions in both **English and Japanese**.
|
|
145
143
|
|
|
146
|
-
##
|
|
144
|
+
## Security
|
|
147
145
|
|
|
148
|
-
ZeroCode.js
|
|
146
|
+
ZeroCode.js is a frontend library. Complete security cannot be guaranteed on the client side.
|
|
149
147
|
|
|
150
|
-
###
|
|
148
|
+
### Recommendations
|
|
151
149
|
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
150
|
+
- **Server-side validation is required**: Validate data before saving on the server
|
|
151
|
+
- **Implement authentication/authorization**: Only allow authenticated users to modify parts data
|
|
152
|
+
- **Verify the source**: Check the `source` field in `save-request` events
|
|
153
|
+
- **Template management**: Only use templates from trusted sources
|
|
156
154
|
|
|
157
|
-
|
|
155
|
+
See the [Technical Specification](./TECHNICAL_SPECIFICATION.md) for security details.
|
|
158
156
|
|
|
159
|
-
##
|
|
157
|
+
## License
|
|
160
158
|
|
|
161
159
|
MIT License
|
|
162
160
|
|
|
163
161
|
---
|
|
164
162
|
|
|
165
|
-
|
|
163
|
+
**Last Updated**: January 2026
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeroCodeCMS.vue.d.ts","sourceRoot":"","sources":["../../src/components/ZeroCodeCMS.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ZeroCodeCMS.vue.d.ts","sourceRoot":"","sources":["../../src/components/ZeroCodeCMS.vue"],"names":[],"mappings":"AA8KA;AAw4BA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQ5E,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAuEF,iBAAS,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,WAU7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA9HD,CA/0BuD;;;;;;;;;;;;;;;oCA+0BvD,CA/0BuD;;;;;;;;;;;;;;;oCA+0BvD,CA/0BuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAohEvD,wBASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeroCodeEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/ZeroCodeEditor.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ZeroCodeEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/ZeroCodeEditor.vue"],"names":[],"mappings":"AA2LA;AAmsBA,OAAO,EAAmC,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAUhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,UAAU,CAAC;AAIvD,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAkMF,iBAAS,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAevC;AAED,iBAAS,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAIjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAzPD,CAnqBc;;;;;;;;;;;;;;;wCAmqBd,CAnqBc;;;;;;;;;;;;;;;wCAmqBd,CAnqBc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAmqBd,CAnqBc;;;;;;;;;;;;;;;wCAmqBd,CAnqBc;;;;;;;;;;;;;;;wCAmqBd,CAnqBc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkmDd,wBASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useZeroCodeRenderer.d.ts","sourceRoot":"","sources":["../../../src/core/composables/useZeroCodeRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useZeroCodeRenderer.d.ts","sourceRoot":"","sources":["../../../src/core/composables/useZeroCodeRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKzE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,sBAAsB,GAAE,OAAc;;uCAOlF,aAAa,SAClB,MAAM,mBACI,GAAG,CAAC,MAAM,CAAC,KAC1B,MAAM;uBARiB,MAAM,KAAG,QAAQ,GAAG,IAAI;EA+DnD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComponentData, PartData } from '../../types';
|
|
2
|
+
export type EditPanelField = {
|
|
3
|
+
type: 'text' | 'textarea' | 'radio' | 'checkbox' | 'boolean' | 'rich' | 'image' | 'select' | 'select-multiple' | 'tag';
|
|
4
|
+
fieldName: string;
|
|
5
|
+
groupName?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
options?: string[];
|
|
9
|
+
currentValue: unknown;
|
|
10
|
+
optional?: boolean;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
maxLength?: number;
|
|
13
|
+
readonly?: boolean;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function getAvailableFieldsFromPart(part: PartData, component: ComponentData): EditPanelField[];
|
|
17
|
+
//# sourceMappingURL=edit-panel-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edit-panel-fields.d.ts","sourceRoot":"","sources":["../../../src/core/utils/edit-panel-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EACA,MAAM,GACN,UAAU,GACV,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,KAAK,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,GACvB,cAAc,EAAE,CAgJlB"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { ComponentData, PartData } from '../../types';
|
|
2
|
+
export interface ProcessTemplateOptions {
|
|
3
|
+
translations?: {
|
|
4
|
+
addSlotButton?: string;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
2
7
|
export declare function processTemplateWithDOM(html: string, component: ComponentData, path: string, _findPart: (partId: string) => PartData | null, renderComponentToHtml: (component: ComponentData, path: string) => string, enableEditorAttributes?: boolean, imagesCommon?: Array<{
|
|
3
8
|
id: string;
|
|
4
9
|
url: string;
|
|
@@ -8,5 +13,5 @@ export declare function processTemplateWithDOM(html: string, component: Componen
|
|
|
8
13
|
}>, imagesSpecial?: Array<{
|
|
9
14
|
id: string;
|
|
10
15
|
url: string;
|
|
11
|
-
}>, backendData?: Record<string, unknown
|
|
16
|
+
}>, backendData?: Record<string, unknown>, options?: ProcessTemplateOptions): string;
|
|
12
17
|
//# sourceMappingURL=template-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-processor.d.ts","sourceRoot":"","sources":["../../../src/core/utils/template-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"template-processor.d.ts","sourceRoot":"","sources":["../../../src/core/utils/template-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAC;AAQvE,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAGD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,aAAa,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,EAC9C,qBAAqB,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,EACzE,sBAAsB,GAAE,OAAc,EACtC,YAAY,GAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,EACrD,gBAAgB,GAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,EACzD,aAAa,GAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAM,EACtD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAovCR"}
|
|
@@ -21,6 +21,21 @@ type __VLS_Props = {
|
|
|
21
21
|
imagesCommon: ImageData[];
|
|
22
22
|
imagesIndividual: ImageData[];
|
|
23
23
|
imagesSpecial: ImageData[];
|
|
24
|
+
previewMode?: boolean;
|
|
25
|
+
imageModalActions?: {
|
|
26
|
+
common?: {
|
|
27
|
+
add?: boolean;
|
|
28
|
+
delete?: boolean;
|
|
29
|
+
};
|
|
30
|
+
individual?: {
|
|
31
|
+
add?: boolean;
|
|
32
|
+
delete?: boolean;
|
|
33
|
+
};
|
|
34
|
+
special?: {
|
|
35
|
+
add?: boolean;
|
|
36
|
+
delete?: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
24
39
|
};
|
|
25
40
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
26
41
|
close: () => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditPanel.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/components/EditPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditPanel.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/components/EditPanel.vue"],"names":[],"mappings":"AAuPA;AA8dA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK/D,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,sBAAsB,EAAE,KAAK,CAAC;QAC5B,IAAI,EACA,MAAM,GACN,UAAU,GACV,OAAO,GACP,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,iBAAiB,GACjB,KAAK,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,EAAE,GAAG,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC7C,UAAU,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACjD,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH,CAAC;;;;;;;;;;;;;;AAgtBF,wBAOG"}
|
|
@@ -5,6 +5,20 @@ type __VLS_Props = {
|
|
|
5
5
|
imagesIndividual: ImageData[];
|
|
6
6
|
imagesSpecial: ImageData[];
|
|
7
7
|
currentValue?: string;
|
|
8
|
+
imageModalActions?: {
|
|
9
|
+
common?: {
|
|
10
|
+
add?: boolean;
|
|
11
|
+
delete?: boolean;
|
|
12
|
+
};
|
|
13
|
+
individual?: {
|
|
14
|
+
add?: boolean;
|
|
15
|
+
delete?: boolean;
|
|
16
|
+
};
|
|
17
|
+
special?: {
|
|
18
|
+
add?: boolean;
|
|
19
|
+
delete?: boolean;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
8
22
|
};
|
|
9
23
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
24
|
close: () => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageSelectModal.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/components/ImageSelectModal.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ImageSelectModal.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/components/ImageSelectModal.vue"],"names":[],"mappings":"AA4GA;AAkOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC7C,UAAU,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACjD,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,OAAO,CAAC;YAAC,MAAM,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH,CAAC;;;;;;;;;;;;;;AA6UF,wBAQG"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
2
|
import { ZeroCodeData, ComponentData } from '../../../types';
|
|
3
|
+
import { EditPanelField } from '../../../core/utils/edit-panel-fields';
|
|
3
4
|
export declare function useEditMode(cmsData: ZeroCodeData, previewArea: Ref<HTMLElement | null>): {
|
|
4
5
|
editingComponent: Ref<{
|
|
5
6
|
[x: string]: unknown;
|
|
@@ -21,33 +22,20 @@ export declare function useEditMode(cmsData: ZeroCodeData, previewArea: Ref<HTML
|
|
|
21
22
|
label: string;
|
|
22
23
|
defaultValue?: string | undefined;
|
|
23
24
|
options?: string[] | undefined;
|
|
24
|
-
currentValue:
|
|
25
|
+
currentValue: unknown;
|
|
25
26
|
optional?: boolean | undefined;
|
|
26
27
|
required?: boolean | undefined;
|
|
27
28
|
maxLength?: number | undefined;
|
|
28
29
|
readonly?: boolean | undefined;
|
|
29
30
|
disabled?: boolean | undefined;
|
|
30
|
-
}[], {
|
|
31
|
-
type: "text" | "textarea" | "radio" | "checkbox" | "boolean" | "rich" | "image" | "select" | "select-multiple" | "tag";
|
|
32
|
-
fieldName: string;
|
|
33
|
-
groupName?: string;
|
|
34
|
-
label: string;
|
|
35
|
-
defaultValue?: string;
|
|
36
|
-
options?: string[];
|
|
37
|
-
currentValue: any;
|
|
38
|
-
optional?: boolean;
|
|
39
|
-
required?: boolean;
|
|
40
|
-
maxLength?: number;
|
|
41
|
-
readonly?: boolean;
|
|
42
|
-
disabled?: boolean;
|
|
43
|
-
}[] | {
|
|
31
|
+
}[], EditPanelField[] | {
|
|
44
32
|
type: "text" | "textarea" | "radio" | "checkbox" | "boolean" | "rich" | "image" | "select" | "select-multiple" | "tag";
|
|
45
33
|
fieldName: string;
|
|
46
34
|
groupName?: string | undefined;
|
|
47
35
|
label: string;
|
|
48
36
|
defaultValue?: string | undefined;
|
|
49
37
|
options?: string[] | undefined;
|
|
50
|
-
currentValue:
|
|
38
|
+
currentValue: unknown;
|
|
51
39
|
optional?: boolean | undefined;
|
|
52
40
|
required?: boolean | undefined;
|
|
53
41
|
maxLength?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditMode.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/composables/useEditMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAY,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditMode.d.ts","sourceRoot":"","sources":["../../../../src/features/editor/composables/useEditMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAY,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAI/C,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAsBtD,MAAM,aAAa,aAAa;2BAuCjC;QAC5B,IAAI,EACA,MAAM,GACN,UAAU,GACV,OAAO,GACP,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,iBAAiB,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,GAAG,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB;;EAqCF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoEditor.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/parts-manager/components/MonacoEditor.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MonacoEditor.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/parts-manager/components/MonacoEditor.vue"],"names":[],"mappings":"AAQA;AAiiBA,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;;;;;;;;AA0jBF,wBASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartsManagerPanel.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/parts-manager/components/PartsManagerPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PartsManagerPanel.vue.d.ts","sourceRoot":"","sources":["../../../../src/features/parts-manager/components/PartsManagerPanel.vue"],"names":[],"mappings":"AAo4BA;AAq4CA,OAAO,KAAK,EAAE,YAAY,EAAY,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AAyBvF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;CAC7B,CAAC;;;;AAw6DF,wBAQG"}
|
|
@@ -173,6 +173,7 @@ export declare function usePartsManager(cmsData: ZeroCodeData): {
|
|
|
173
173
|
cancelEditingType: () => void;
|
|
174
174
|
cancelEditingPart: () => void;
|
|
175
175
|
getPartPreviewHtml: (type: TypeData, part: PartData) => string;
|
|
176
|
+
createTempComponentFromType: (type: TypeData, part: PartData) => ComponentData;
|
|
176
177
|
validateType: (type: TypeData) => {
|
|
177
178
|
valid: boolean;
|
|
178
179
|
errors: string[];
|