@limetech/lime-elements 37.72.3 → 37.74.0
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/CHANGELOG.md +16 -0
- package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js +15 -4
- package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +53 -36
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js.map +1 -1
- package/dist/collection/components/list/list.js +27 -2
- package/dist/collection/components/list/list.js.map +1 -1
- package/dist/collection/components/menu-list/menu-list.js +26 -2
- package/dist/collection/components/menu-list/menu-list.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/create-html-inserter.js +11 -0
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/create-html-inserter.js.map +1 -0
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/factory.js +8 -8
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/factory.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.js +35 -27
- package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js.map +1 -1
- package/dist/collection/components/text-editor/text-editor.types.js.map +1 -1
- package/dist/collection/style/internal/lime-theme.scss +1 -1
- package/dist/collection/style/shadows.scss +8 -4
- package/dist/esm/limel-breadcrumbs_7.entry.js +15 -4
- package/dist/esm/limel-breadcrumbs_7.entry.js.map +1 -1
- package/dist/esm/limel-prosemirror-adapter.entry.js +53 -36
- package/dist/esm/limel-prosemirror-adapter.entry.js.map +1 -1
- package/dist/esm/limel-shortcut.entry.js.map +1 -1
- package/dist/lime-elements/lime-elements.css +8 -4
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-7172c8e7.entry.js → p-209cd952.entry.js} +3 -3
- package/dist/lime-elements/p-209cd952.entry.js.map +1 -0
- package/dist/lime-elements/{p-830d655c.entry.js → p-e83e845a.entry.js} +2 -2
- package/dist/lime-elements/p-e83e845a.entry.js.map +1 -0
- package/dist/lime-elements/p-f3a613a3.entry.js.map +1 -1
- package/dist/lime-elements/style/internal/lime-theme.scss +1 -1
- package/dist/lime-elements/style/shadows.scss +8 -4
- package/dist/types/components/list/list.d.ts +5 -0
- package/dist/types/components/menu-list/menu-list.d.ts +6 -0
- package/dist/types/components/text-editor/prosemirror-adapter/plugins/trigger/create-html-inserter.d.ts +5 -0
- package/dist/types/components/text-editor/prosemirror-adapter/plugins/trigger/factory.d.ts +2 -1
- package/dist/types/components/text-editor/prosemirror-adapter/plugins/trigger/inserter.d.ts +2 -1
- package/dist/types/components/text-editor/text-editor.types.d.ts +4 -1
- package/dist/types/components.d.ts +8 -0
- package/package.json +13 -13
- package/dist/lime-elements/p-7172c8e7.entry.js.map +0 -1
- package/dist/lime-elements/p-830d655c.entry.js.map +0 -1
|
@@ -26121,36 +26121,53 @@ const createNodeSpec = (config) => {
|
|
|
26121
26121
|
};
|
|
26122
26122
|
};
|
|
26123
26123
|
|
|
26124
|
-
const
|
|
26124
|
+
const createHtmlInserter = (view, contentConverter, startPos, dispatchTransaction) => {
|
|
26125
|
+
const schema = view.state.schema;
|
|
26126
|
+
return async (input) => {
|
|
26127
|
+
const container = document.createElement('span');
|
|
26128
|
+
container.innerHTML = await contentConverter.parseAsHTML(input, schema);
|
|
26129
|
+
const fragment = DOMParser.fromSchema(schema).parse(container).content;
|
|
26130
|
+
dispatchTransaction(view, startPos, fragment);
|
|
26131
|
+
};
|
|
26132
|
+
};
|
|
26133
|
+
|
|
26134
|
+
const inserterFactory = (view, contentConverter) => {
|
|
26125
26135
|
const startPos = getTriggerStartPosition(view);
|
|
26126
26136
|
return {
|
|
26127
|
-
insert: (
|
|
26128
|
-
|
|
26129
|
-
|
|
26130
|
-
const { $from } = selection;
|
|
26131
|
-
let node;
|
|
26132
|
-
try {
|
|
26133
|
-
node = createNode(input, schema);
|
|
26134
|
-
}
|
|
26135
|
-
catch (error) {
|
|
26136
|
-
// eslint-disable-next-line no-console
|
|
26137
|
-
console.error(error.message);
|
|
26138
|
-
return;
|
|
26139
|
-
}
|
|
26140
|
-
const spaceNode = schema.text(' ');
|
|
26141
|
-
const fragment = schema.nodes.doc.create(null, [node, spaceNode]);
|
|
26142
|
-
const transaction = state.tr.replaceWith(startPos, $from.pos, fragment);
|
|
26143
|
-
transaction.setMeta('stopTrigger', true);
|
|
26144
|
-
dispatch(transaction);
|
|
26145
|
-
},
|
|
26146
|
-
stopTrigger: () => {
|
|
26147
|
-
const { state, dispatch } = view;
|
|
26148
|
-
const transaction = state.tr;
|
|
26149
|
-
transaction.setMeta('stopTrigger', true);
|
|
26150
|
-
dispatch(transaction);
|
|
26151
|
-
},
|
|
26137
|
+
insert: createNodeAndTextInserter(view, startPos),
|
|
26138
|
+
insertHtml: createHtmlInserter(view, contentConverter, startPos, dispatchTransaction),
|
|
26139
|
+
stopTrigger: () => stopTriggerTransaction(view),
|
|
26152
26140
|
};
|
|
26153
26141
|
};
|
|
26142
|
+
const createNodeAndTextInserter = (view, startPos) => (input) => {
|
|
26143
|
+
const schema = view.state.schema;
|
|
26144
|
+
let node;
|
|
26145
|
+
try {
|
|
26146
|
+
node = createNode(input, schema);
|
|
26147
|
+
}
|
|
26148
|
+
catch (error) {
|
|
26149
|
+
// eslint-disable-next-line no-console
|
|
26150
|
+
console.error(error.message);
|
|
26151
|
+
return;
|
|
26152
|
+
}
|
|
26153
|
+
const spaceNode = schema.text(' ');
|
|
26154
|
+
const fragment = schema.nodes.doc.create(null, [node, spaceNode]);
|
|
26155
|
+
dispatchTransaction(view, startPos, fragment);
|
|
26156
|
+
};
|
|
26157
|
+
const stopTriggerTransaction = (view) => {
|
|
26158
|
+
const { state, dispatch } = view;
|
|
26159
|
+
const transaction = state.tr;
|
|
26160
|
+
transaction.setMeta('stopTrigger', true);
|
|
26161
|
+
dispatch(transaction);
|
|
26162
|
+
};
|
|
26163
|
+
const dispatchTransaction = (view, startPos, fragment) => {
|
|
26164
|
+
const state = view.state;
|
|
26165
|
+
const dispatch = view.dispatch;
|
|
26166
|
+
const fromPos = state.selection.$from.pos;
|
|
26167
|
+
const transaction = state.tr.replaceWith(startPos, fromPos, fragment);
|
|
26168
|
+
transaction.setMeta('stopTrigger', true);
|
|
26169
|
+
dispatch(transaction);
|
|
26170
|
+
};
|
|
26154
26171
|
const createNode = (input, schema) => {
|
|
26155
26172
|
var _a;
|
|
26156
26173
|
if (typeof input === 'string') {
|
|
@@ -26169,7 +26186,7 @@ const createNode = (input, schema) => {
|
|
|
26169
26186
|
const getCustomNode = (name, schema) => {
|
|
26170
26187
|
const customNode = Object.values(schema.nodes).find((prosemirrorNode) => prosemirrorNode.name === name);
|
|
26171
26188
|
if (!customNode) {
|
|
26172
|
-
throw new Error(`
|
|
26189
|
+
throw new Error(`No custom element has been registered for node ${name}`);
|
|
26173
26190
|
}
|
|
26174
26191
|
return customNode;
|
|
26175
26192
|
};
|
|
@@ -26207,16 +26224,16 @@ const stillHasTrigger = (state, activeTrigger, triggerPosition, triggerLength) =
|
|
|
26207
26224
|
return (state.doc.textBetween(triggerPosition, triggerPosition + 1) ===
|
|
26208
26225
|
activeTrigger);
|
|
26209
26226
|
};
|
|
26210
|
-
const getTriggerEventDetail = (view, trigger, value) => {
|
|
26227
|
+
const getTriggerEventDetail = (view, contentConverter, trigger, value) => {
|
|
26211
26228
|
return {
|
|
26212
26229
|
trigger: trigger,
|
|
26213
|
-
textEditor: inserterFactory(view),
|
|
26230
|
+
textEditor: inserterFactory(view, contentConverter),
|
|
26214
26231
|
value: value,
|
|
26215
26232
|
};
|
|
26216
26233
|
};
|
|
26217
|
-
const sendTriggerEvent = (type, view, trigger, value) => {
|
|
26234
|
+
const sendTriggerEvent = (type, view, contentConverter, trigger, value) => {
|
|
26218
26235
|
const event = new CustomEvent(type, {
|
|
26219
|
-
detail: getTriggerEventDetail(view, trigger, value),
|
|
26236
|
+
detail: getTriggerEventDetail(view, contentConverter, trigger, value),
|
|
26220
26237
|
bubbles: true,
|
|
26221
26238
|
composed: true,
|
|
26222
26239
|
});
|
|
@@ -26254,14 +26271,14 @@ const processTransactions = (text, transactions, oldState) => {
|
|
|
26254
26271
|
}
|
|
26255
26272
|
return text;
|
|
26256
26273
|
};
|
|
26257
|
-
const createTriggerPlugin = (triggerCharacters) => {
|
|
26274
|
+
const createTriggerPlugin = (triggerCharacters, contentConverter) => {
|
|
26258
26275
|
let activeTrigger = null;
|
|
26259
26276
|
let triggerText = '';
|
|
26260
26277
|
let pluginView = null;
|
|
26261
26278
|
let triggerPosition = null;
|
|
26262
26279
|
const stopTrigger = () => {
|
|
26263
26280
|
triggerText = '';
|
|
26264
|
-
sendTriggerEvent('triggerStop', pluginView, activeTrigger, triggerText);
|
|
26281
|
+
sendTriggerEvent('triggerStop', pluginView, contentConverter, activeTrigger, triggerText);
|
|
26265
26282
|
triggerPosition = null;
|
|
26266
26283
|
activeTrigger = null;
|
|
26267
26284
|
};
|
|
@@ -26280,7 +26297,7 @@ const createTriggerPlugin = (triggerCharacters) => {
|
|
|
26280
26297
|
activeTrigger = event.data;
|
|
26281
26298
|
triggerText = '';
|
|
26282
26299
|
triggerPosition = state.selection.$from.pos - triggerText.length;
|
|
26283
|
-
sendTriggerEvent('triggerStart', view, activeTrigger, triggerText);
|
|
26300
|
+
sendTriggerEvent('triggerStart', view, contentConverter, activeTrigger, triggerText);
|
|
26284
26301
|
return false;
|
|
26285
26302
|
}
|
|
26286
26303
|
return false;
|
|
@@ -26295,7 +26312,7 @@ const createTriggerPlugin = (triggerCharacters) => {
|
|
|
26295
26312
|
const updatedText = processTransactions(triggerText, transactions, oldState);
|
|
26296
26313
|
if (updatedText !== triggerText) {
|
|
26297
26314
|
triggerText = updatedText;
|
|
26298
|
-
sendTriggerEvent('triggerChange', pluginView, activeTrigger, triggerText.slice(1));
|
|
26315
|
+
sendTriggerEvent('triggerChange', pluginView, contentConverter, activeTrigger, triggerText.slice(1));
|
|
26299
26316
|
}
|
|
26300
26317
|
};
|
|
26301
26318
|
return new Plugin({
|
|
@@ -28008,7 +28025,7 @@ const ProsemirrorAdapter = class {
|
|
|
28008
28025
|
...exampleSetup({ schema: this.schema, menuBar: false }),
|
|
28009
28026
|
keymap(this.menuCommandFactory.buildKeymap()),
|
|
28010
28027
|
createLinkPlugin(this.handleNewLinkSelection),
|
|
28011
|
-
createTriggerPlugin(this.triggerCharacters),
|
|
28028
|
+
createTriggerPlugin(this.triggerCharacters, this.contentConverter),
|
|
28012
28029
|
createImageRemoverPlugin(),
|
|
28013
28030
|
createMenuStateTrackingPlugin(editorMenuTypesArray, this.menuCommandFactory, this.updateActiveActionBarItems),
|
|
28014
28031
|
createActionBarInteractionPlugin(this.menuCommandFactory),
|