hazo_ihelp 2.0.4 → 2.0.9
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.md +236 -0
- package/dist/api/create_ihelp_handler.d.ts +3 -2
- package/dist/api/create_ihelp_handler.d.ts.map +1 -1
- package/dist/api/create_ihelp_handler.js +101 -106
- package/dist/api/create_ihelp_handler.js.map +1 -1
- package/dist/components/editor/editor_topic_list.d.ts +3 -1
- package/dist/components/editor/editor_topic_list.d.ts.map +1 -1
- package/dist/components/editor/editor_topic_list.js +3 -3
- package/dist/components/editor/editor_topic_list.js.map +1 -1
- package/dist/components/ihelp_detail_panel.js +1 -1
- package/dist/components/ihelp_detail_panel.js.map +1 -1
- package/dist/components/ihelp_editor.d.ts.map +1 -1
- package/dist/components/ihelp_editor.js +26 -1
- package/dist/components/ihelp_editor.js.map +1 -1
- package/dist/components/ihelp_rich_editor.js +1 -1
- package/dist/components/ihelp_rich_editor.js.map +1 -1
- package/dist/components/ihelp_search_dialog.d.ts.map +1 -1
- package/dist/components/ihelp_search_dialog.js +12 -3
- package/dist/components/ihelp_search_dialog.js.map +1 -1
- package/dist/index.client.d.ts +1 -1
- package/dist/index.client.d.ts.map +1 -1
- package/dist/index.client.js.map +1 -1
- package/dist/types/index.d.ts +45 -34
- package/dist/types/index.d.ts.map +1 -1
- package/migrations/001_create_ihelp_tables.sql +96 -45
- package/package.json +19 -10
package/README.md
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# hazo_ihelp
|
|
2
|
+
|
|
3
|
+
Contextual popup help system for React/Next.js applications. Provides hierarchical help topics, rich HTML content, context-aware search, and a full CRUD editor.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install hazo_ihelp
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### Peer Dependencies
|
|
12
|
+
|
|
13
|
+
| Package | Required | Notes |
|
|
14
|
+
|---------|----------|-------|
|
|
15
|
+
| `react` | ^18 or ^19 | Required |
|
|
16
|
+
| `react-dom` | ^18 or ^19 | Required |
|
|
17
|
+
| `tailwindcss` | >=3.0.0 | Required for styling |
|
|
18
|
+
| `@tailwindcss/typography` | >=0.5.0 | Required — `prose` classes for rich content rendering |
|
|
19
|
+
| `next` | >=14.0.0 | Optional — needed for API handlers |
|
|
20
|
+
| `hazo_connect` | >=2.4.0 | Optional — needed for API handlers |
|
|
21
|
+
|
|
22
|
+
## Tailwind v4 Setup (Required)
|
|
23
|
+
|
|
24
|
+
hazo_ihelp uses Tailwind utility classes internally. Tailwind v4's JIT compiler only scans your project files by default — it does **not** scan `node_modules/`. You must add a `@source` directive so Tailwind generates CSS for the package's classes.
|
|
25
|
+
|
|
26
|
+
In your `globals.css`, add this after the tailwind import:
|
|
27
|
+
|
|
28
|
+
```css
|
|
29
|
+
@import "tailwindcss";
|
|
30
|
+
|
|
31
|
+
/* Required: tell Tailwind to scan hazo_ihelp for utility classes */
|
|
32
|
+
@source "../node_modules/hazo_ihelp/dist";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Adjust the relative path if your CSS file is not at the standard `app/globals.css` location.
|
|
36
|
+
|
|
37
|
+
**Without this directive**, the Help dialog will render with correct structure and dark theme colors (these use inline styles), but will have:
|
|
38
|
+
- Missing hover effects on topic cards
|
|
39
|
+
- Inconsistent spacing and padding in inner content
|
|
40
|
+
- Unstyled badges and tags
|
|
41
|
+
- Missing scrollbar customization
|
|
42
|
+
- **Rich content appears as plain text** — headings, bullet points, bold, and other formatting will be invisible because Tailwind's `prose` classes are not compiled
|
|
43
|
+
|
|
44
|
+
### Tailwind Typography Plugin (Required)
|
|
45
|
+
|
|
46
|
+
The rich content editor and Help dialog use Tailwind's `prose` classes to render HTML content (headings, lists, bold, etc.). Install the typography plugin:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install @tailwindcss/typography
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Tailwind v4 auto-detects installed plugins. For Tailwind v3, add it to your `tailwind.config.js` plugins array.
|
|
53
|
+
|
|
54
|
+
**Without this plugin**, imported or authored rich content will appear as unstyled plain text — all formatting (headings, bullet points, bold) will be invisible even though the HTML is preserved correctly in the database.
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
### 1. Run the database migration
|
|
59
|
+
|
|
60
|
+
Execute the SQL migration to create the required tables:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# The migration file is included in the package
|
|
64
|
+
cat node_modules/hazo_ihelp/migrations/001_create_ihelp_tables.sql
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This creates two tables:
|
|
68
|
+
- `hazo_ihelp_topics` — help topics with tags and context mappings stored as JSON columns
|
|
69
|
+
- `hazo_config` — key-value configuration store (scoped)
|
|
70
|
+
|
|
71
|
+
The migration file documents both **SQLite** and **PostgreSQL** variants:
|
|
72
|
+
|
|
73
|
+
| Column | SQLite | PostgreSQL |
|
|
74
|
+
|--------|--------|------------|
|
|
75
|
+
| `id` | TEXT (UUID string) | UUID (gen_random_uuid) |
|
|
76
|
+
| `scope_id` | TEXT | UUID |
|
|
77
|
+
| `is_published` | INTEGER (0/1) | BOOLEAN |
|
|
78
|
+
| `tags` | TEXT (JSON string) | JSONB |
|
|
79
|
+
| `contexts` | TEXT (JSON string) | JSONB |
|
|
80
|
+
| `created_at` | TEXT (datetime) | TIMESTAMPTZ |
|
|
81
|
+
|
|
82
|
+
### 2. Set up API routes (Next.js)
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
// app/api/ihelp/topics/route.ts
|
|
86
|
+
import { createIhelpHandler } from 'hazo_ihelp/api';
|
|
87
|
+
import { getHazoConnectSingleton } from 'hazo_connect/nextjs/setup';
|
|
88
|
+
|
|
89
|
+
export const dynamic = 'force-dynamic';
|
|
90
|
+
|
|
91
|
+
const { GET, POST } = createIhelpHandler({
|
|
92
|
+
getHazoConnect: () => getHazoConnectSingleton(),
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
export { GET, POST };
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
// app/api/ihelp/topics/[id]/route.ts
|
|
100
|
+
import { createIhelpHandler } from 'hazo_ihelp/api';
|
|
101
|
+
import { getHazoConnectSingleton } from 'hazo_connect/nextjs/setup';
|
|
102
|
+
|
|
103
|
+
export const dynamic = 'force-dynamic';
|
|
104
|
+
|
|
105
|
+
const { PATCH, DELETE } = createIhelpHandler({
|
|
106
|
+
getHazoConnect: () => getHazoConnectSingleton(),
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
export { PATCH, DELETE };
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 3. Add the Provider
|
|
113
|
+
|
|
114
|
+
Wrap your app (or a subtree) with `IhelpProvider`:
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
import { IhelpProvider } from 'hazo_ihelp';
|
|
118
|
+
|
|
119
|
+
export default function Layout({ children }) {
|
|
120
|
+
return (
|
|
121
|
+
<IhelpProvider api_base_url="/api/ihelp/topics">
|
|
122
|
+
{children}
|
|
123
|
+
</IhelpProvider>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 4. Add help icons to your forms
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
import { IhelpIcon } from 'hazo_ihelp';
|
|
132
|
+
|
|
133
|
+
function MyFormField() {
|
|
134
|
+
return (
|
|
135
|
+
<label>
|
|
136
|
+
Salary & Wages
|
|
137
|
+
<IhelpIcon context_key="tax.salary_wages" />
|
|
138
|
+
</label>
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Clicking the icon opens the Help search dialog, pre-filtered to topics mapped to that context key.
|
|
144
|
+
|
|
145
|
+
## Components
|
|
146
|
+
|
|
147
|
+
### IhelpProvider
|
|
148
|
+
|
|
149
|
+
Context provider that supplies topics, search, and keyboard shortcuts to all child components.
|
|
150
|
+
|
|
151
|
+
```tsx
|
|
152
|
+
<IhelpProvider
|
|
153
|
+
api_base_url="/api/ihelp/topics" // Base URL for the topics API
|
|
154
|
+
scope_id="org-uuid" // Optional: multi-tenant scoping
|
|
155
|
+
search_shortcut="mod+k" // Optional: keyboard shortcut (default: mod+k)
|
|
156
|
+
asset_base_url="/api/ihelp/assets" // Optional: base URL for topic images
|
|
157
|
+
theme={{ // Optional: override default dark theme
|
|
158
|
+
background: '#1a2332',
|
|
159
|
+
foreground: '#e2e8f0',
|
|
160
|
+
muted_foreground: '#94a3b8',
|
|
161
|
+
border: '#2d3f56',
|
|
162
|
+
accent: '#253347',
|
|
163
|
+
primary: '#38bdf8',
|
|
164
|
+
}}
|
|
165
|
+
labels={{ // Optional: UI label overrides
|
|
166
|
+
search_placeholder: 'Search help topics...',
|
|
167
|
+
dialog_title: 'Help',
|
|
168
|
+
}}
|
|
169
|
+
>
|
|
170
|
+
{children}
|
|
171
|
+
</IhelpProvider>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### IhelpIcon
|
|
175
|
+
|
|
176
|
+
Small trigger button that opens the Help dialog for a specific context key.
|
|
177
|
+
|
|
178
|
+
```tsx
|
|
179
|
+
<IhelpIcon context_key="deductions.work_from_home" size={16} />
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### IhelpSearchDialog
|
|
183
|
+
|
|
184
|
+
The Help search dialog. Usually opened via IhelpIcon or keyboard shortcut, but can be controlled directly:
|
|
185
|
+
|
|
186
|
+
```tsx
|
|
187
|
+
<IhelpSearchDialog
|
|
188
|
+
open={isOpen}
|
|
189
|
+
onOpenChange={setIsOpen}
|
|
190
|
+
initial_context_key="tax.dividends"
|
|
191
|
+
/>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### IhelpEditor
|
|
195
|
+
|
|
196
|
+
Full CRUD editor for managing help topics (tags and context mappings are embedded JSON on each topic).
|
|
197
|
+
|
|
198
|
+
```tsx
|
|
199
|
+
<IhelpEditor
|
|
200
|
+
api_url="/api/ihelp/topics" // Topics API URL (default: /api/ihelp)
|
|
201
|
+
upload_url="/api/ihelp/upload" // Optional: image upload endpoint
|
|
202
|
+
config_api_url="/api/ihelp/config" // Optional: context key config endpoint
|
|
203
|
+
scope_id="org-uuid" // Optional: multi-tenant scoping
|
|
204
|
+
/>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Exports
|
|
208
|
+
|
|
209
|
+
| Import path | Contents |
|
|
210
|
+
|-------------|----------|
|
|
211
|
+
| `hazo_ihelp` | Client components: `IhelpProvider`, `IhelpIcon`, `IhelpSearchDialog`, `IhelpDetailPanel` |
|
|
212
|
+
| `hazo_ihelp/api` | Server handlers: `createIhelpHandler`, `createImageUploadHandler`, `createConfigHandler` |
|
|
213
|
+
| `hazo_ihelp/hooks` | Hooks: `use_ihelp`, `use_ihelp_search`, `use_ihelp_editor`, `use_ihelp_config` |
|
|
214
|
+
| `hazo_ihelp/components` | All components including `IhelpEditor` and UI primitives |
|
|
215
|
+
| `hazo_ihelp/types` | TypeScript type definitions |
|
|
216
|
+
|
|
217
|
+
## Theme
|
|
218
|
+
|
|
219
|
+
The Help dialog ships with a built-in dark theme that works out of the box. Pass a `theme` prop to `IhelpProvider` to override:
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
const customTheme = {
|
|
223
|
+
background: '#1a2332', // Dialog background
|
|
224
|
+
foreground: '#e2e8f0', // Primary text
|
|
225
|
+
muted_foreground: '#94a3b8', // Secondary text
|
|
226
|
+
border: '#2d3f56', // Border color
|
|
227
|
+
accent: '#253347', // Hover background
|
|
228
|
+
primary: '#38bdf8', // Accent color (links, highlights)
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
<IhelpProvider theme={customTheme}>
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## License
|
|
235
|
+
|
|
236
|
+
MIT
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* iHelp API Handler Factory
|
|
3
3
|
*
|
|
4
|
-
* Creates GET, POST, PATCH, and DELETE handlers for
|
|
5
|
-
*
|
|
4
|
+
* Creates GET, POST, PATCH, and DELETE handlers for hazo_ihelp_topics.
|
|
5
|
+
* Tags and context mappings are stored as JSON columns directly on the
|
|
6
|
+
* topics table — no separate join tables required.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_ihelp_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"create_ihelp_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,EAIX,MAAM,mBAAmB,CAAC;AAwD3B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB;mBAmCxD,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;oBAgG1D,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;qBAiF3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;sBAgF3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;EA6BjD"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* iHelp API Handler Factory
|
|
3
3
|
*
|
|
4
|
-
* Creates GET, POST, PATCH, and DELETE handlers for
|
|
5
|
-
*
|
|
4
|
+
* Creates GET, POST, PATCH, and DELETE handlers for hazo_ihelp_topics.
|
|
5
|
+
* Tags and context mappings are stored as JSON columns directly on the
|
|
6
|
+
* topics table — no separate join tables required.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```typescript
|
|
@@ -55,6 +56,18 @@ const noopLogger = {
|
|
|
55
56
|
function createErrorResponse(error, status) {
|
|
56
57
|
return NextResponse.json({ success: false, error }, { status });
|
|
57
58
|
}
|
|
59
|
+
/** Parse a JSON column value that may be a string or already parsed */
|
|
60
|
+
function parseJsonColumn(value) {
|
|
61
|
+
if (typeof value === 'string') {
|
|
62
|
+
try {
|
|
63
|
+
return JSON.parse(value);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return (value ?? []);
|
|
70
|
+
}
|
|
58
71
|
// ============================================================================
|
|
59
72
|
// Handler Factory
|
|
60
73
|
// ============================================================================
|
|
@@ -68,19 +81,16 @@ export function createIhelpHandler(options) {
|
|
|
68
81
|
const { getHazoConnect, getLogger } = options;
|
|
69
82
|
const logger = getLogger?.() || noopLogger;
|
|
70
83
|
// ---------------------------------------------------------------------------
|
|
71
|
-
// Internal helper:
|
|
84
|
+
// Internal helper: normalise a DB row into a full IhelpTopic
|
|
72
85
|
// ---------------------------------------------------------------------------
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const [tags, contextMappings] = await Promise.all([
|
|
77
|
-
tagsService.findBy({ topic_id: topicRow.id }),
|
|
78
|
-
contextMapService.findBy({ topic_id: topicRow.id }),
|
|
79
|
-
]);
|
|
86
|
+
function normaliseTopic(row) {
|
|
87
|
+
const tags = parseJsonColumn(row.tags);
|
|
88
|
+
const contexts = parseJsonColumn(row.contexts);
|
|
80
89
|
return {
|
|
81
|
-
...
|
|
90
|
+
...row,
|
|
82
91
|
tags,
|
|
83
|
-
|
|
92
|
+
contexts,
|
|
93
|
+
context_keys: contexts.map((c) => c.key),
|
|
84
94
|
};
|
|
85
95
|
}
|
|
86
96
|
// ---------------------------------------------------------------------------
|
|
@@ -106,41 +116,43 @@ export function createIhelpHandler(options) {
|
|
|
106
116
|
const search = searchParams.get('search');
|
|
107
117
|
logger.debug('[hazo_ihelp] GET request', { id, context_key, scope_id, category, search });
|
|
108
118
|
const adapter = await getHazoConnect();
|
|
109
|
-
const topicsService = createCrudService(adapter, '
|
|
119
|
+
const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
|
|
110
120
|
// ---- Single topic fetch ----
|
|
111
121
|
if (id) {
|
|
112
122
|
const topic = await topicsService.findById(id);
|
|
113
123
|
if (!topic) {
|
|
114
124
|
return createErrorResponse('Topic not found', 404);
|
|
115
125
|
}
|
|
116
|
-
|
|
117
|
-
return NextResponse.json({ success: true, data: assembled });
|
|
126
|
+
return NextResponse.json({ success: true, data: normaliseTopic(topic) });
|
|
118
127
|
}
|
|
119
128
|
// ---- Context key lookup ----
|
|
120
129
|
if (context_key) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
for (const topicId of topicIds) {
|
|
131
|
-
const topic = await topicsService.findById(topicId);
|
|
132
|
-
if (topic) {
|
|
133
|
-
const assembled = await assembleTopicWithJoins(topic, adapter);
|
|
134
|
-
allTopics.push(assembled);
|
|
130
|
+
// Fetch all topics, filter by context key in application code
|
|
131
|
+
// (works with both SQLite TEXT and PostgreSQL JSONB)
|
|
132
|
+
const rows = await topicsService.list((qb) => {
|
|
133
|
+
let q = qb;
|
|
134
|
+
if (scope_id) {
|
|
135
|
+
q = q.whereOr([
|
|
136
|
+
{ field: 'scope_id', operator: 'is', value: null },
|
|
137
|
+
{ field: 'scope_id', operator: 'eq', value: scope_id },
|
|
138
|
+
]);
|
|
135
139
|
}
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
return q;
|
|
141
|
+
});
|
|
142
|
+
const matched = rows
|
|
143
|
+
.map(normaliseTopic)
|
|
144
|
+
.filter((t) => t.contexts.some((c) => c.key === context_key))
|
|
145
|
+
.sort((a, b) => {
|
|
146
|
+
const pa = a.contexts.find((c) => c.key === context_key)?.priority ?? 0;
|
|
147
|
+
const pb = b.contexts.find((c) => c.key === context_key)?.priority ?? 0;
|
|
148
|
+
return pa - pb;
|
|
149
|
+
});
|
|
150
|
+
return NextResponse.json({ success: true, data: matched });
|
|
138
151
|
}
|
|
139
152
|
// ---- List with optional filters ----
|
|
140
153
|
const rows = await topicsService.list((qb) => {
|
|
141
154
|
let q = qb;
|
|
142
155
|
if (scope_id) {
|
|
143
|
-
// Topics where scope_id IS NULL or matches the given value
|
|
144
156
|
q = q.whereOr([
|
|
145
157
|
{ field: 'scope_id', operator: 'is', value: null },
|
|
146
158
|
{ field: 'scope_id', operator: 'eq', value: scope_id },
|
|
@@ -150,7 +162,6 @@ export function createIhelpHandler(options) {
|
|
|
150
162
|
q = q.where('category', 'eq', category);
|
|
151
163
|
}
|
|
152
164
|
if (search) {
|
|
153
|
-
// ilike search on title and description
|
|
154
165
|
q = q.whereOr([
|
|
155
166
|
{ field: 'title', operator: 'ilike', value: `%${search}%` },
|
|
156
167
|
{ field: 'description', operator: 'ilike', value: `%${search}%` },
|
|
@@ -158,7 +169,7 @@ export function createIhelpHandler(options) {
|
|
|
158
169
|
}
|
|
159
170
|
return q;
|
|
160
171
|
});
|
|
161
|
-
const assembled =
|
|
172
|
+
const assembled = rows.map(normaliseTopic);
|
|
162
173
|
return NextResponse.json({ success: true, data: assembled });
|
|
163
174
|
}
|
|
164
175
|
catch (error) {
|
|
@@ -184,12 +195,32 @@ export function createIhelpHandler(options) {
|
|
|
184
195
|
}
|
|
185
196
|
logger.debug('[hazo_ihelp] POST request', { title: body.title });
|
|
186
197
|
const adapter = await getHazoConnect();
|
|
187
|
-
const topicsService = createCrudService(adapter, '
|
|
188
|
-
const tagsService = createCrudService(adapter, 'ihelp_tags');
|
|
189
|
-
const contextMapService = createCrudService(adapter, 'ihelp_context_map');
|
|
198
|
+
const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
|
|
190
199
|
const topicId = generateUUID();
|
|
191
200
|
const now = new Date().toISOString();
|
|
192
|
-
//
|
|
201
|
+
// Build tags array
|
|
202
|
+
const tags = (body.tags ?? []).map((t) => ({
|
|
203
|
+
label: t.label,
|
|
204
|
+
variant: t.variant ?? 'default',
|
|
205
|
+
icon: t.icon ?? null,
|
|
206
|
+
}));
|
|
207
|
+
// Build contexts array — prefer explicit contexts, fall back to context_keys shorthand
|
|
208
|
+
let contexts;
|
|
209
|
+
if (body.contexts) {
|
|
210
|
+
contexts = body.contexts.map((c) => ({
|
|
211
|
+
key: c.key,
|
|
212
|
+
priority: c.priority ?? 0,
|
|
213
|
+
}));
|
|
214
|
+
}
|
|
215
|
+
else if (body.context_keys) {
|
|
216
|
+
contexts = body.context_keys.map((key, i) => ({
|
|
217
|
+
key,
|
|
218
|
+
priority: i,
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
contexts = [];
|
|
223
|
+
}
|
|
193
224
|
const inserted = await topicsService.insert({
|
|
194
225
|
id: topicId,
|
|
195
226
|
parent_id: body.parent_id ?? null,
|
|
@@ -201,33 +232,13 @@ export function createIhelpHandler(options) {
|
|
|
201
232
|
icon: body.icon ?? null,
|
|
202
233
|
sort_order: body.sort_order ?? 0,
|
|
203
234
|
is_published: body.is_published ?? false,
|
|
235
|
+
tags: JSON.stringify(tags),
|
|
236
|
+
contexts: JSON.stringify(contexts),
|
|
204
237
|
created_at: now,
|
|
205
238
|
changed_at: null,
|
|
206
239
|
});
|
|
207
240
|
const topicRow = Array.isArray(inserted) ? inserted[0] : inserted;
|
|
208
|
-
|
|
209
|
-
if (body.tags && body.tags.length > 0) {
|
|
210
|
-
const tagRows = body.tags.map((tag) => ({
|
|
211
|
-
id: generateUUID(),
|
|
212
|
-
topic_id: topicId,
|
|
213
|
-
label: tag.label,
|
|
214
|
-
variant: tag.variant ?? 'default',
|
|
215
|
-
icon: tag.icon ?? null,
|
|
216
|
-
}));
|
|
217
|
-
await tagsService.insert(tagRows);
|
|
218
|
-
}
|
|
219
|
-
// Insert context_keys if provided
|
|
220
|
-
if (body.context_keys && body.context_keys.length > 0) {
|
|
221
|
-
const mapRows = body.context_keys.map((key, index) => ({
|
|
222
|
-
id: generateUUID(),
|
|
223
|
-
topic_id: topicId,
|
|
224
|
-
context_key: key,
|
|
225
|
-
priority: index,
|
|
226
|
-
}));
|
|
227
|
-
await contextMapService.insert(mapRows);
|
|
228
|
-
}
|
|
229
|
-
const assembled = await assembleTopicWithJoins(topicRow, adapter);
|
|
230
|
-
return NextResponse.json({ success: true, data: assembled }, { status: 201 });
|
|
241
|
+
return NextResponse.json({ success: true, data: normaliseTopic(topicRow) }, { status: 201 });
|
|
231
242
|
}
|
|
232
243
|
catch (error) {
|
|
233
244
|
logger.error('[hazo_ihelp] POST error', {
|
|
@@ -247,7 +258,6 @@ export function createIhelpHandler(options) {
|
|
|
247
258
|
*/
|
|
248
259
|
async function PATCH(request, context) {
|
|
249
260
|
try {
|
|
250
|
-
// Resolve id from params or query string
|
|
251
261
|
const { id: paramId } = await context.params;
|
|
252
262
|
let id = paramId;
|
|
253
263
|
if (!id) {
|
|
@@ -259,10 +269,8 @@ export function createIhelpHandler(options) {
|
|
|
259
269
|
const body = (await request.json());
|
|
260
270
|
logger.debug('[hazo_ihelp] PATCH request', { id });
|
|
261
271
|
const adapter = await getHazoConnect();
|
|
262
|
-
const topicsService = createCrudService(adapter, '
|
|
263
|
-
|
|
264
|
-
const contextMapService = createCrudService(adapter, 'ihelp_context_map');
|
|
265
|
-
// Build the patch payload (exclude relation fields)
|
|
272
|
+
const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
|
|
273
|
+
// Build the patch payload
|
|
266
274
|
const patch = { changed_at: new Date().toISOString() };
|
|
267
275
|
if (body.parent_id !== undefined)
|
|
268
276
|
patch.parent_id = body.parent_id;
|
|
@@ -282,47 +290,35 @@ export function createIhelpHandler(options) {
|
|
|
282
290
|
patch.sort_order = body.sort_order;
|
|
283
291
|
if (body.is_published !== undefined)
|
|
284
292
|
patch.is_published = body.is_published;
|
|
285
|
-
const updated = await topicsService.updateById(id, patch);
|
|
286
|
-
if (!updated || updated.length === 0) {
|
|
287
|
-
return createErrorResponse('Topic not found', 404);
|
|
288
|
-
}
|
|
289
|
-
const topicRow = updated[0];
|
|
290
293
|
// Replace tags if provided
|
|
291
294
|
if (body.tags !== undefined) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
const tagRows = body.tags.map((tag) => ({
|
|
299
|
-
id: generateUUID(),
|
|
300
|
-
topic_id: id,
|
|
301
|
-
label: tag.label,
|
|
302
|
-
variant: tag.variant ?? 'default',
|
|
303
|
-
icon: tag.icon ?? null,
|
|
304
|
-
}));
|
|
305
|
-
await tagsService.insert(tagRows);
|
|
306
|
-
}
|
|
295
|
+
const tags = body.tags.map((t) => ({
|
|
296
|
+
label: t.label,
|
|
297
|
+
variant: t.variant ?? 'default',
|
|
298
|
+
icon: t.icon ?? null,
|
|
299
|
+
}));
|
|
300
|
+
patch.tags = JSON.stringify(tags);
|
|
307
301
|
}
|
|
308
|
-
// Replace
|
|
309
|
-
if (body.
|
|
310
|
-
const
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
const mapRows = body.context_keys.map((key, index) => ({
|
|
316
|
-
id: generateUUID(),
|
|
317
|
-
topic_id: id,
|
|
318
|
-
context_key: key,
|
|
319
|
-
priority: index,
|
|
320
|
-
}));
|
|
321
|
-
await contextMapService.insert(mapRows);
|
|
322
|
-
}
|
|
302
|
+
// Replace contexts if provided
|
|
303
|
+
if (body.contexts !== undefined) {
|
|
304
|
+
const contexts = body.contexts.map((c) => ({
|
|
305
|
+
key: c.key,
|
|
306
|
+
priority: c.priority ?? 0,
|
|
307
|
+
}));
|
|
308
|
+
patch.contexts = JSON.stringify(contexts);
|
|
323
309
|
}
|
|
324
|
-
|
|
325
|
-
|
|
310
|
+
else if (body.context_keys !== undefined) {
|
|
311
|
+
const contexts = body.context_keys.map((key, i) => ({
|
|
312
|
+
key,
|
|
313
|
+
priority: i,
|
|
314
|
+
}));
|
|
315
|
+
patch.contexts = JSON.stringify(contexts);
|
|
316
|
+
}
|
|
317
|
+
const updated = await topicsService.updateById(id, patch);
|
|
318
|
+
if (!updated || updated.length === 0) {
|
|
319
|
+
return createErrorResponse('Topic not found', 404);
|
|
320
|
+
}
|
|
321
|
+
return NextResponse.json({ success: true, data: normaliseTopic(updated[0]) });
|
|
326
322
|
}
|
|
327
323
|
catch (error) {
|
|
328
324
|
logger.error('[hazo_ihelp] PATCH error', {
|
|
@@ -332,7 +328,7 @@ export function createIhelpHandler(options) {
|
|
|
332
328
|
}
|
|
333
329
|
}
|
|
334
330
|
// ---------------------------------------------------------------------------
|
|
335
|
-
// DELETE handler — remove a topic
|
|
331
|
+
// DELETE handler — remove a topic
|
|
336
332
|
// ---------------------------------------------------------------------------
|
|
337
333
|
/**
|
|
338
334
|
* DELETE handler
|
|
@@ -341,7 +337,6 @@ export function createIhelpHandler(options) {
|
|
|
341
337
|
*/
|
|
342
338
|
async function DELETE(request, context) {
|
|
343
339
|
try {
|
|
344
|
-
// Resolve id from params or query string
|
|
345
340
|
const { id: paramId } = await context.params;
|
|
346
341
|
let id = paramId;
|
|
347
342
|
if (!id) {
|
|
@@ -352,7 +347,7 @@ export function createIhelpHandler(options) {
|
|
|
352
347
|
}
|
|
353
348
|
logger.debug('[hazo_ihelp] DELETE request', { id });
|
|
354
349
|
const adapter = await getHazoConnect();
|
|
355
|
-
const topicsService = createCrudService(adapter, '
|
|
350
|
+
const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
|
|
356
351
|
await topicsService.deleteById(id);
|
|
357
352
|
return NextResponse.json({ success: true, data: null });
|
|
358
353
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_ihelp_handler.js","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create_ihelp_handler.js","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,yBAAyB;AACzB,SAAS,YAAY;IACnB,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mBAAmB;AACnB,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC;AAEF,2CAA2C;AAC3C,SAAS,mBAAmB,CAC1B,KAAa,EACb,MAAc;IAEd,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,uEAAuE;AACvE,SAAS,eAAe,CAAI,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,IAAI,EAAE,CAAM,CAAC;AAC5B,CAAC;AAWD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,EAAE,IAAI,UAAU,CAAC;IAE3C,8EAA8E;IAC9E,6DAA6D;IAC7D,8EAA8E;IAE9E,SAAS,cAAc,CAAC,GAAkB;QACxC,MAAM,IAAI,GAAG,eAAe,CAAa,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,eAAe,CAAiB,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO;YACL,GAAG,GAAG;YACN,IAAI;YACJ,QAAQ;YACR,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAE9E;;;;;;;;;OASG;IACH,KAAK,UAAU,GAAG,CAChB,OAAoB;QAEpB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YAClD,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE1C,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAE1F,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAErF,+BAA+B;YAC/B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;gBACD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,+BAA+B;YAC/B,IAAI,WAAW,EAAE,CAAC;gBAChB,8DAA8D;gBAC9D,qDAAqD;gBACrD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,IAAI,QAAQ,EAAE,CAAC;wBACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;4BACZ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;4BAClD,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;yBACvD,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI;qBACjB,GAAG,CAAC,cAAc,CAAC;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;qBAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACb,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;oBACxE,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;oBACxE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEL,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,uCAAuC;YACvC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEX,IAAI,QAAQ,EAAE,CAAC;oBACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;wBACZ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;wBAClD,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACvD,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;wBACZ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,GAAG,EAAE;wBAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,GAAG,EAAE;qBAClE,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAE3C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;gBACrC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,UAAU,IAAI,CACjB,OAAoB;QAEpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAoB,CAAC;YAEvD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjE,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAErF,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAErC,mBAAmB;YACnB,MAAM,IAAI,GAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;aACrB,CAAC,CAAC,CAAC;YAEJ,uFAAuF;YACvF,IAAI,QAAwB,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;iBAC1B,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7B,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,GAAG;oBACH,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;gBAC1C,EAAE,EAAE,OAAO;gBACX,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;gBAChC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;gBACxC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAClC,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAElE,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,EACjD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;gBACtC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,2CAA2C;IAC3C,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,UAAU,KAAK,CAClB,OAAoB,EACpB,OAA6C;QAE7C,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,GAAuB,OAAO,CAAC;YACrC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAA6B,CAAC;YAEhE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAErF,0BAA0B;YAC1B,MAAM,KAAK,GAA4B,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAChF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gBAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAChE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;gBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACzE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACtE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAE5E,2BAA2B;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAe,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC7C,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;oBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;iBACrB,CAAC,CAAC,CAAC;gBACJ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,+BAA+B;YAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzD,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;iBAC1B,CAAC,CAAC,CAAC;gBACJ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAmB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClE,GAAG;oBACH,QAAQ,EAAE,CAAC;iBACZ,CAAC,CAAC,CAAC;gBACJ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YAED,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACvC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,UAAU,MAAM,CACnB,OAAoB,EACpB,OAA6C;QAE7C,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,GAAuB,OAAO,CAAC;YACrC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAErF,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAEnC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBACxC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,mBAAmB,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -8,7 +8,9 @@ interface EditorTopicListProps {
|
|
|
8
8
|
onNew: () => void;
|
|
9
9
|
onExport: () => void;
|
|
10
10
|
onImport: () => void;
|
|
11
|
+
onDeleteSelected: () => void;
|
|
12
|
+
onDeleteAll: () => void;
|
|
11
13
|
}
|
|
12
|
-
export declare function EditorTopicList({ topics, loading, error, selected_id, onSelect, onNew, onExport, onImport, }: EditorTopicListProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function EditorTopicList({ topics, loading, error, selected_id, onSelect, onNew, onExport, onImport, onDeleteSelected, onDeleteAll, }: EditorTopicListProps): import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export {};
|
|
14
16
|
//# sourceMappingURL=editor_topic_list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_topic_list.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOvD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_topic_list.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAOvD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,WAAW,GACZ,EAAE,oBAAoB,2CA8JtB"}
|