@limetech/lime-elements 37.39.1 → 37.40.1
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 +30 -0
- package/dist/cjs/limel-dock-button.cjs.entry.js +17 -3
- package/dist/cjs/limel-dock-button.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +127 -81
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js.map +1 -1
- package/dist/collection/components/dock/dock-button/dock-button.js +17 -3
- package/dist/collection/components/dock/dock-button/dock-button.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-commands.js +70 -65
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-commands.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-items.js +9 -8
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-items.js.map +1 -1
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/types.js +32 -0
- package/dist/collection/components/text-editor/prosemirror-adapter/menu/types.js.map +1 -0
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +19 -8
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js.map +1 -1
- package/dist/esm/limel-dock-button.entry.js +17 -3
- package/dist/esm/limel-dock-button.entry.js.map +1 -1
- package/dist/esm/limel-prosemirror-adapter.entry.js +127 -81
- package/dist/esm/limel-prosemirror-adapter.entry.js.map +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-5983b027.entry.js → p-1367c295.entry.js} +2 -2
- package/dist/lime-elements/p-1367c295.entry.js.map +1 -0
- package/dist/lime-elements/{p-fecf1bf1.entry.js → p-e9f943ac.entry.js} +2 -2
- package/dist/lime-elements/p-e9f943ac.entry.js.map +1 -0
- package/dist/types/components/dock/dock-button/dock-button.d.ts +2 -0
- package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-commands.d.ts +10 -6
- package/dist/types/components/text-editor/prosemirror-adapter/menu/menu-items.d.ts +2 -1
- package/dist/types/components/text-editor/prosemirror-adapter/prosemirror-adapter.d.ts +2 -0
- package/package.json +1 -1
- package/dist/lime-elements/p-5983b027.entry.js.map +0 -1
- package/dist/lime-elements/p-fecf1bf1.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"limel-dock-button.entry.js","mappings":"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","names":[],"sources":["./src/components/dock/dock-button/dock-button.scss?tag=limel-dock-button","./src/components/dock/dock-button/dock-button.tsx"],"sourcesContent":["@use '../../../style/mixins';\n@use '../../../style/functions';\n@use '../../../style/internal/variables';\n\n.button {\n all: unset;\n isolation: isolate;\n position: relative;\n\n @include mixins.is-flat-inset-clickable(\n $color: var(--limel-dock-item-text-color),\n $background-color: var(--dock-background-color)\n );\n @include mixins.visualize-keyboard-focus;\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n\n width: 100%;\n height: var(--dock-item-height);\n\n border-radius: functions.pxToRem(6);\n font-size: functions.pxToRem(14);\n padding: 0 0.5rem;\n min-width: var(--dock-item-height);\n\n &:hover {\n z-index: 1;\n }\n\n &.selected {\n color: var(--limel-dock-item-text-color--selected);\n background-color: var(\n --dock-item-background-color--selected,\n rgb(var(--contrast-200))\n );\n\n box-shadow: var(--button-shadow-inset);\n\n &:focus-visible {\n box-shadow: var(--button-shadow-inset),\n var(--shadow-depth-8-focused);\n }\n\n .icon {\n color: var(--limel-dock-item-text--selected);\n }\n }\n}\n\nlimel-popover {\n // makes buttons that are wrapped in a popover become fullwidth\n display: grid;\n grid-template-columns: 100%;\n\n button[slot='trigger'][aria-expanded='true'] {\n box-shadow: var(--button-shadow-inset);\n }\n}\n\n.text {\n @include mixins.truncate-text();\n padding-left: 0.5rem;\n padding-right: 0.75rem;\n}\n\n.icon {\n flex-shrink: 0;\n width: calc(var(--dock-item-height) - 1rem);\n height: calc(var(--dock-item-height) - 1rem);\n color: var(--dock-item-icon-color, var(--limel-dock-item-text-color));\n}\n\nlimel-badge {\n position: absolute;\n top: -0.125rem;\n right: -0.125rem;\n}\n\n// 👇 Below is a hidden and private hack\n// only for usage in Lime CRM components.\n// It enables our customers to override\n// the default Home icon, using an external URL\n// or an SVG code.\n.icon {\n position: relative;\n\n &:before {\n text-align: center;\n pointer-events: none;\n position: absolute;\n inset: 0;\n background: {\n color: var(--dock-background-color, rgb(var(--contrast-100)));\n position: center;\n repeat: no-repeat;\n size: contain;\n image: var(--limel-custom-home-icon);\n }\n // Since `content` defaults to `undefined`\n // no pseudo element will be rendered, unless\n // the consumer defines something.\n content: var(--limel-custom-home-icon-enabler);\n\n .button.selected & {\n background-color: var(\n --dock-item-background-color--selected,\n rgb(var(--contrast-200))\n );\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { DockItem } from '../dock.types';\nimport { createRandomString } from '../../../util/random-string';\n\n/**\n * @private\n */\n@Component({\n tag: 'limel-dock-button',\n shadow: false,\n styleUrl: 'dock-button.scss',\n})\nexport class DockButton {\n /**\n * Item that is placed in the dock.\n */\n @Prop()\n public item!: DockItem;\n\n /**\n * When the dock is expanded or collapsed, dock items\n * show labels and tooltips as suitable for the layout.\n */\n @Prop({ reflect: true })\n public expanded? = false;\n\n /**\n * When dock is using mobile layout, dock items\n * show labels and tooltips as suitable for the layout.\n */\n @Prop({ reflect: true })\n public useMobileLayout? = false;\n\n /**\n * Fired when a dock item has been selected from the dock.\n */\n @Event()\n public itemSelected: EventEmitter<DockItem>;\n\n /**\n * Fired when a dock menu is opened.\n */\n @Event()\n public menuOpen: EventEmitter<DockItem>;\n\n /**\n * Indicated whether the popover that renders a component is open.\n */\n @State()\n private isOpen = false;\n\n /**\n * Fired when the popover is closed.\n */\n @Event()\n public close: EventEmitter<void>;\n\n private tooltipId: string;\n private customComponentElement: HTMLElement;\n\n constructor() {\n this.tooltipId = createRandomString();\n }\n\n public render() {\n if (this.item?.dockMenu?.componentName) {\n return this.renderPopover();\n }\n\n return this.renderButton(this.handleClick);\n }\n\n @Watch('isOpen')\n protected openWatcher() {\n if (!this.isOpen) {\n return;\n }\n\n const observer = new IntersectionObserver(\n this.focusCustomComponentElement,\n );\n observer.observe(this.customComponentElement);\n }\n\n private renderPopover() {\n const CustomComponent = this.item?.dockMenu.componentName;\n\n return (\n <limel-popover\n openDirection={this.useMobileLayout ? 'top' : 'right-start'}\n open={this.isOpen || this.item.dockMenu.menuOpen}\n onClose={this.onPopoverClose}\n >\n {this.renderButton(this.openPopover, 'trigger')}\n <CustomComponent\n ref={this.setCustomComponentElement}\n {...(this.item.dockMenu.props || {})}\n onClose={this.onPopoverClose}\n />\n </limel-popover>\n );\n }\n\n private renderButton(\n handleClick: (event: MouseEvent) => void,\n slot?: string,\n ) {\n return (\n <button\n slot={slot}\n tabindex=\"0\"\n id={this.tooltipId}\n type=\"button\"\n class={{\n button: true,\n selected: this.item?.selected,\n }}\n onClick={handleClick}\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderTooltip()}\n {this.renderNotification()}\n </button>\n );\n }\n\n private renderNotification = () => {\n if (this.item.badge !== undefined) {\n return <limel-badge label={this.item.badge} />;\n }\n };\n\n private openPopover = (event: MouseEvent) => {\n event.stopPropagation();\n this.isOpen = true;\n this.menuOpen.emit(this.item);\n };\n\n private setCustomComponentElement = (element: HTMLElement) => {\n this.customComponentElement = element;\n };\n\n private onPopoverClose = () => {\n this.isOpen = false;\n this.close.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.itemSelected.emit(this.item);\n };\n\n private renderIcon() {\n if (!this.item.icon) {\n return;\n }\n\n return <limel-icon name={this.item.icon} class=\"icon\" />;\n }\n\n private renderLabel() {\n if (this.expanded) {\n return <span class=\"text\">{this.item.label}</span>;\n }\n }\n\n private renderTooltip() {\n if (!this.expanded && this.item.label) {\n return (\n <limel-tooltip\n elementId={this.tooltipId}\n label={this.item.label}\n helperLabel={this.item.helperLabel}\n openDirection={this.getOpenDirection()}\n />\n );\n }\n\n if (this.expanded && this.item.helperLabel) {\n return (\n <limel-tooltip\n elementId={this.tooltipId}\n label={this.item.helperLabel}\n openDirection={this.getOpenDirection()}\n />\n );\n }\n }\n\n private focusCustomComponentElement = () => {\n if (this.customComponentElement?.shadowRoot?.delegatesFocus) {\n this.customComponentElement?.focus();\n }\n };\n\n private getOpenDirection = () => {\n if (this.useMobileLayout) {\n return 'top';\n }\n\n return 'right';\n };\n}\n"],"version":3}
|
|
1
|
+
{"file":"limel-dock-button.entry.js","mappings":"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","names":[],"sources":["./src/components/dock/dock-button/dock-button.scss?tag=limel-dock-button","./src/components/dock/dock-button/dock-button.tsx"],"sourcesContent":["@use '../../../style/mixins';\n@use '../../../style/functions';\n@use '../../../style/internal/variables';\n\n.button {\n all: unset;\n isolation: isolate;\n position: relative;\n\n @include mixins.is-flat-inset-clickable(\n $color: var(--limel-dock-item-text-color),\n $background-color: var(--dock-background-color)\n );\n @include mixins.visualize-keyboard-focus;\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n\n width: 100%;\n height: var(--dock-item-height);\n\n border-radius: functions.pxToRem(6);\n font-size: functions.pxToRem(14);\n padding: 0 0.5rem;\n min-width: var(--dock-item-height);\n\n &:hover {\n z-index: 1;\n }\n\n &.selected {\n color: var(--limel-dock-item-text-color--selected);\n background-color: var(\n --dock-item-background-color--selected,\n rgb(var(--contrast-200))\n );\n\n box-shadow: var(--button-shadow-inset);\n\n &:focus-visible {\n box-shadow: var(--button-shadow-inset),\n var(--shadow-depth-8-focused);\n }\n\n .icon {\n color: var(--limel-dock-item-text--selected);\n }\n }\n}\n\nlimel-popover {\n // makes buttons that are wrapped in a popover become fullwidth\n display: grid;\n grid-template-columns: 100%;\n\n button[slot='trigger'][aria-expanded='true'] {\n box-shadow: var(--button-shadow-inset);\n }\n}\n\n.text {\n @include mixins.truncate-text();\n padding-left: 0.5rem;\n padding-right: 0.75rem;\n}\n\n.icon {\n flex-shrink: 0;\n width: calc(var(--dock-item-height) - 1rem);\n height: calc(var(--dock-item-height) - 1rem);\n color: var(--dock-item-icon-color, var(--limel-dock-item-text-color));\n}\n\nlimel-badge {\n position: absolute;\n top: -0.125rem;\n right: -0.125rem;\n}\n\n// 👇 Below is a hidden and private hack\n// only for usage in Lime CRM components.\n// It enables our customers to override\n// the default Home icon, using an external URL\n// or an SVG code.\n.icon {\n position: relative;\n\n &:before {\n text-align: center;\n pointer-events: none;\n position: absolute;\n inset: 0;\n background: {\n color: var(--dock-background-color, rgb(var(--contrast-100)));\n position: center;\n repeat: no-repeat;\n size: contain;\n image: var(--limel-custom-home-icon);\n }\n // Since `content` defaults to `undefined`\n // no pseudo element will be rendered, unless\n // the consumer defines something.\n content: var(--limel-custom-home-icon-enabler);\n\n .button.selected & {\n background-color: var(\n --dock-item-background-color--selected,\n rgb(var(--contrast-200))\n );\n }\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { DockItem } from '../dock.types';\nimport { createRandomString } from '../../../util/random-string';\n\n/**\n * @private\n */\n@Component({\n tag: 'limel-dock-button',\n shadow: false,\n styleUrl: 'dock-button.scss',\n})\nexport class DockButton {\n /**\n * Item that is placed in the dock.\n */\n @Prop()\n public item!: DockItem;\n\n /**\n * When the dock is expanded or collapsed, dock items\n * show labels and tooltips as suitable for the layout.\n */\n @Prop({ reflect: true })\n public expanded? = false;\n\n /**\n * When dock is using mobile layout, dock items\n * show labels and tooltips as suitable for the layout.\n */\n @Prop({ reflect: true })\n public useMobileLayout? = false;\n\n /**\n * Fired when a dock item has been selected from the dock.\n */\n @Event()\n public itemSelected: EventEmitter<DockItem>;\n\n /**\n * Fired when a dock menu is opened.\n */\n @Event()\n public menuOpen: EventEmitter<DockItem>;\n\n /**\n * Indicated whether the popover that renders a component is open.\n */\n @State()\n private isOpen = false;\n\n /**\n * Fired when the popover is closed.\n */\n @Event()\n public close: EventEmitter<void>;\n\n private tooltipId: string;\n private customComponentElement: HTMLElement;\n private intersectionObserver?: IntersectionObserver;\n\n constructor() {\n this.tooltipId = createRandomString();\n }\n\n public render() {\n if (this.item?.dockMenu?.componentName) {\n return this.renderPopover();\n }\n\n return this.renderButton(this.handleClick);\n }\n\n @Watch('isOpen')\n protected openWatcher() {\n if (!this.isOpen) {\n return;\n }\n\n if (!this.intersectionObserver) {\n this.intersectionObserver = new IntersectionObserver(\n this.focusCustomComponentElement,\n );\n this.intersectionObserver.observe(this.customComponentElement);\n }\n }\n\n public disconnectedCallback() {\n this.intersectionObserver?.disconnect();\n this.intersectionObserver = undefined;\n }\n\n private renderPopover() {\n const CustomComponent = this.item?.dockMenu.componentName;\n\n return (\n <limel-popover\n openDirection={this.useMobileLayout ? 'top' : 'right-start'}\n open={this.isOpen || this.item.dockMenu.menuOpen}\n onClose={this.onPopoverClose}\n >\n {this.renderButton(this.openPopover, 'trigger')}\n <CustomComponent\n ref={this.setCustomComponentElement}\n {...(this.item.dockMenu.props || {})}\n onClose={this.onPopoverClose}\n />\n </limel-popover>\n );\n }\n\n private renderButton(\n handleClick: (event: MouseEvent) => void,\n slot?: string,\n ) {\n return (\n <button\n slot={slot}\n tabindex=\"0\"\n id={this.tooltipId}\n type=\"button\"\n class={{\n button: true,\n selected: this.item?.selected,\n }}\n onClick={handleClick}\n aria-live=\"polite\"\n >\n {this.renderIcon()}\n {this.renderLabel()}\n {this.renderTooltip()}\n {this.renderNotification()}\n </button>\n );\n }\n\n private renderNotification = () => {\n if (this.item.badge !== undefined) {\n return <limel-badge label={this.item.badge} />;\n }\n };\n\n private openPopover = (event: MouseEvent) => {\n event.stopPropagation();\n this.isOpen = true;\n this.menuOpen.emit(this.item);\n };\n\n private setCustomComponentElement = (element: HTMLElement) => {\n this.customComponentElement = element;\n };\n\n private onPopoverClose = () => {\n this.isOpen = false;\n this.close.emit();\n };\n\n private handleClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.itemSelected.emit(this.item);\n };\n\n private renderIcon() {\n if (!this.item.icon) {\n return;\n }\n\n return <limel-icon name={this.item.icon} class=\"icon\" />;\n }\n\n private renderLabel() {\n if (this.expanded) {\n return <span class=\"text\">{this.item.label}</span>;\n }\n }\n\n private renderTooltip() {\n if (!this.expanded && this.item.label) {\n return (\n <limel-tooltip\n elementId={this.tooltipId}\n label={this.item.label}\n helperLabel={this.item.helperLabel}\n openDirection={this.getOpenDirection()}\n />\n );\n }\n\n if (this.expanded && this.item.helperLabel) {\n return (\n <limel-tooltip\n elementId={this.tooltipId}\n label={this.item.helperLabel}\n openDirection={this.getOpenDirection()}\n />\n );\n }\n }\n\n private focusCustomComponentElement = (\n entries: IntersectionObserverEntry[],\n ) => {\n const entry = entries.find(\n (e) => e.target === this.customComponentElement,\n );\n if (!entry) {\n return;\n }\n\n if (!entry.isIntersecting) {\n return;\n }\n\n if (this.customComponentElement?.shadowRoot?.delegatesFocus) {\n this.customComponentElement?.focus();\n }\n };\n\n private getOpenDirection = () => {\n if (this.useMobileLayout) {\n return 'top';\n }\n\n return 'right';\n };\n}\n"],"version":3}
|
|
@@ -15907,78 +15907,114 @@ function exampleSetup(options) {
|
|
|
15907
15907
|
}));
|
|
15908
15908
|
}
|
|
15909
15909
|
|
|
15910
|
-
|
|
15911
|
-
|
|
15912
|
-
|
|
15913
|
-
|
|
15914
|
-
|
|
15915
|
-
|
|
15916
|
-
|
|
15917
|
-
|
|
15918
|
-
|
|
15919
|
-
|
|
15920
|
-
|
|
15921
|
-
|
|
15922
|
-
|
|
15910
|
+
/**
|
|
15911
|
+
* The `EditorMenuType` type is used to specify the type of menu items that can be added to the editor toolbar.
|
|
15912
|
+
* Each one represents a different type to be used for creating the prosemirror commands relevant to the button.
|
|
15913
|
+
* The values correspond to the types that can be used with the `prosemirror-commands` library.
|
|
15914
|
+
* @beta
|
|
15915
|
+
*/
|
|
15916
|
+
const EditorMenuTypes = {
|
|
15917
|
+
Bold: 'strong',
|
|
15918
|
+
Italic: 'em',
|
|
15919
|
+
Blockquote: 'blockquote',
|
|
15920
|
+
HeaderLevel1: 'headerlevel1',
|
|
15921
|
+
HeaderLevel2: 'headerlevel2',
|
|
15922
|
+
HeaderLevel3: 'headerlevel3',
|
|
15923
|
+
Link: 'link',
|
|
15924
|
+
OrderedList: 'ordered_list',
|
|
15925
|
+
BulletList: 'bullet_list',
|
|
15926
|
+
};
|
|
15927
|
+
/**
|
|
15928
|
+
* `LevelMapping` is used to map string identifiers to numerical header levels.
|
|
15929
|
+
* It provides a way to represent different levels of headings in ProseMirror commands.
|
|
15930
|
+
*
|
|
15931
|
+
* The `Heading` identifier is not a valid level and is used to identify the node type.
|
|
15932
|
+
* The numerical values are used for creating ProseMirror commands to set the level of a heading node in the editor.
|
|
15933
|
+
* @beta
|
|
15934
|
+
*/
|
|
15935
|
+
const LevelMapping = {
|
|
15936
|
+
Heading: 'heading',
|
|
15937
|
+
one: 1,
|
|
15938
|
+
two: 2,
|
|
15939
|
+
three: 3,
|
|
15940
|
+
};
|
|
15941
|
+
|
|
15942
|
+
const createToggleMarkCommand = (schema, markName, url) => {
|
|
15943
|
+
const markType = schema.marks[markName];
|
|
15944
|
+
if (!markType) {
|
|
15945
|
+
throw new Error(`Mark "${markName}" not found in schema`);
|
|
15946
|
+
}
|
|
15947
|
+
if (markName === EditorMenuTypes.Link && url) {
|
|
15948
|
+
const attrs = {
|
|
15949
|
+
href: url,
|
|
15950
|
+
target: isExternalLink(url) ? '_blank' : null,
|
|
15923
15951
|
};
|
|
15924
|
-
|
|
15952
|
+
return toggleMark(markType, attrs);
|
|
15925
15953
|
}
|
|
15926
|
-
|
|
15927
|
-
|
|
15928
|
-
|
|
15929
|
-
|
|
15930
|
-
|
|
15931
|
-
|
|
15932
|
-
|
|
15933
|
-
|
|
15934
|
-
|
|
15935
|
-
case 'paragraph':
|
|
15936
|
-
return this.createSetNodeTypeCommand(mark);
|
|
15937
|
-
case 'headerlevel1':
|
|
15938
|
-
case 'headerlevel2':
|
|
15939
|
-
case 'headerlevel3':
|
|
15940
|
-
return this.createSetNodeTypeCommand('heading', parseInt(mark[mark.length - 1], 10));
|
|
15941
|
-
case 'blockquote':
|
|
15942
|
-
return this.createWrapInCommand(mark);
|
|
15943
|
-
case 'ordered_list':
|
|
15944
|
-
case 'bullet_list':
|
|
15945
|
-
return this.createListCommand(mark);
|
|
15946
|
-
default:
|
|
15947
|
-
throw new Error(`The Mark "${mark}" is not supported`);
|
|
15948
|
-
}
|
|
15954
|
+
return toggleMark(markType);
|
|
15955
|
+
};
|
|
15956
|
+
const isExternalLink = (url) => {
|
|
15957
|
+
return !url.startsWith(window.location.origin);
|
|
15958
|
+
};
|
|
15959
|
+
const createSetNodeTypeCommand = (schema, nodeType, level) => {
|
|
15960
|
+
const type = schema.nodes[nodeType];
|
|
15961
|
+
if (!type) {
|
|
15962
|
+
throw new Error(`Node type "${nodeType}" not found in schema`);
|
|
15949
15963
|
}
|
|
15950
|
-
|
|
15951
|
-
|
|
15952
|
-
if (!markType) {
|
|
15953
|
-
throw new Error(`Mark "${markName}" not found in schema`);
|
|
15954
|
-
}
|
|
15955
|
-
return toggleMark(markType);
|
|
15964
|
+
if (nodeType === 'heading' && level) {
|
|
15965
|
+
return setBlockType(type, { level: level });
|
|
15956
15966
|
}
|
|
15957
|
-
|
|
15958
|
-
|
|
15959
|
-
if (!type) {
|
|
15960
|
-
throw new Error(`Node type "${nodeType}" not found in schema`);
|
|
15961
|
-
}
|
|
15962
|
-
if (nodeType === 'heading' && level) {
|
|
15963
|
-
return setBlockType(type, { level: level });
|
|
15964
|
-
}
|
|
15965
|
-
else {
|
|
15966
|
-
return setBlockType(type);
|
|
15967
|
-
}
|
|
15967
|
+
else {
|
|
15968
|
+
return setBlockType(type);
|
|
15968
15969
|
}
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
}
|
|
15974
|
-
return wrapIn(type);
|
|
15970
|
+
};
|
|
15971
|
+
const createWrapInCommand = (schema, nodeType) => {
|
|
15972
|
+
const type = schema.nodes[nodeType];
|
|
15973
|
+
if (!type) {
|
|
15974
|
+
throw new Error(`Node type "${nodeType}" not found in schema`);
|
|
15975
15975
|
}
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15976
|
+
return wrapIn(type);
|
|
15977
|
+
};
|
|
15978
|
+
const createListCommand = (schema, listType) => {
|
|
15979
|
+
const type = schema.nodes[listType];
|
|
15980
|
+
if (!type) {
|
|
15981
|
+
throw new Error(`List type "${listType}" not found in schema`);
|
|
15982
|
+
}
|
|
15983
|
+
return wrapInList(type);
|
|
15984
|
+
};
|
|
15985
|
+
const commandMapping = {
|
|
15986
|
+
strong: createToggleMarkCommand,
|
|
15987
|
+
em: createToggleMarkCommand,
|
|
15988
|
+
underline: createToggleMarkCommand,
|
|
15989
|
+
headerlevel1: (schema) => createSetNodeTypeCommand(schema, LevelMapping.Heading, LevelMapping.one),
|
|
15990
|
+
headerlevel2: (schema) => createSetNodeTypeCommand(schema, LevelMapping.Heading, LevelMapping.two),
|
|
15991
|
+
headerlevel3: (schema) => createSetNodeTypeCommand(schema, LevelMapping.Heading, LevelMapping.three),
|
|
15992
|
+
blockquote: createWrapInCommand,
|
|
15993
|
+
/* eslint-disable camelcase */
|
|
15994
|
+
ordered_list: createListCommand,
|
|
15995
|
+
bullet_list: createListCommand,
|
|
15996
|
+
/* eslint-enable camelcase */
|
|
15997
|
+
link: createToggleMarkCommand,
|
|
15998
|
+
};
|
|
15999
|
+
class MenuCommandFactory {
|
|
16000
|
+
constructor(schema) {
|
|
16001
|
+
this.schema = schema;
|
|
16002
|
+
}
|
|
16003
|
+
getCommand(mark, url) {
|
|
16004
|
+
const commandFunc = commandMapping[mark];
|
|
16005
|
+
if (!commandFunc) {
|
|
16006
|
+
throw new Error(`The Mark "${mark}" is not supported`);
|
|
15980
16007
|
}
|
|
15981
|
-
return
|
|
16008
|
+
return commandFunc(this.schema, mark, url);
|
|
16009
|
+
}
|
|
16010
|
+
buildKeymap() {
|
|
16011
|
+
return {
|
|
16012
|
+
'Mod-B': this.getCommand(EditorMenuTypes.Bold),
|
|
16013
|
+
'Mod-I': this.getCommand(EditorMenuTypes.Italic),
|
|
16014
|
+
'Mod-Shift-1': this.getCommand(EditorMenuTypes.HeaderLevel1),
|
|
16015
|
+
'Mod-Shift-2': this.getCommand(EditorMenuTypes.HeaderLevel2),
|
|
16016
|
+
'Mod-Shift-3': this.getCommand(EditorMenuTypes.HeaderLevel3),
|
|
16017
|
+
};
|
|
15982
16018
|
}
|
|
15983
16019
|
}
|
|
15984
16020
|
|
|
@@ -15992,14 +16028,14 @@ const getCommandSymbols = () => {
|
|
|
15992
16028
|
const { mod, shift } = getCommandSymbols();
|
|
15993
16029
|
const textEditorMenuItems = [
|
|
15994
16030
|
{
|
|
15995
|
-
value:
|
|
16031
|
+
value: EditorMenuTypes.Bold,
|
|
15996
16032
|
text: 'Bold',
|
|
15997
16033
|
commandText: `${mod} B`,
|
|
15998
16034
|
icon: '-lime-text-bold',
|
|
15999
16035
|
iconOnly: true,
|
|
16000
16036
|
},
|
|
16001
16037
|
{
|
|
16002
|
-
value:
|
|
16038
|
+
value: EditorMenuTypes.Italic,
|
|
16003
16039
|
text: 'Italic',
|
|
16004
16040
|
commandText: `${mod} I`,
|
|
16005
16041
|
icon: '-lime-text-italic',
|
|
@@ -16007,21 +16043,21 @@ const textEditorMenuItems = [
|
|
|
16007
16043
|
},
|
|
16008
16044
|
{ separator: true },
|
|
16009
16045
|
{
|
|
16010
|
-
value:
|
|
16046
|
+
value: EditorMenuTypes.HeaderLevel1,
|
|
16011
16047
|
text: 'Header Level 1',
|
|
16012
16048
|
commandText: `${mod} ${shift} 1`,
|
|
16013
16049
|
icon: '-lime-text-h-heading-1',
|
|
16014
16050
|
iconOnly: true,
|
|
16015
16051
|
},
|
|
16016
16052
|
{
|
|
16017
|
-
value:
|
|
16053
|
+
value: EditorMenuTypes.HeaderLevel2,
|
|
16018
16054
|
text: 'Header Level 2',
|
|
16019
16055
|
commandText: `${mod} ${shift} 2`,
|
|
16020
16056
|
icon: '-lime-text-h-heading-2',
|
|
16021
16057
|
iconOnly: true,
|
|
16022
16058
|
},
|
|
16023
16059
|
{
|
|
16024
|
-
value:
|
|
16060
|
+
value: EditorMenuTypes.HeaderLevel3,
|
|
16025
16061
|
text: 'Header Level 3',
|
|
16026
16062
|
commandText: `${mod} ${shift} 3`,
|
|
16027
16063
|
icon: '-lime-text-h-heading-3',
|
|
@@ -16029,19 +16065,19 @@ const textEditorMenuItems = [
|
|
|
16029
16065
|
},
|
|
16030
16066
|
{ separator: true },
|
|
16031
16067
|
{
|
|
16032
|
-
value:
|
|
16068
|
+
value: EditorMenuTypes.BulletList,
|
|
16033
16069
|
text: 'Bullet list',
|
|
16034
16070
|
icon: '-lime-text-bulleted-list',
|
|
16035
16071
|
iconOnly: true,
|
|
16036
16072
|
},
|
|
16037
16073
|
{
|
|
16038
|
-
value:
|
|
16074
|
+
value: EditorMenuTypes.OrderedList,
|
|
16039
16075
|
text: 'Numbered list',
|
|
16040
16076
|
icon: '-lime-text-ordered-list',
|
|
16041
16077
|
iconOnly: true,
|
|
16042
16078
|
},
|
|
16043
16079
|
{
|
|
16044
|
-
value:
|
|
16080
|
+
value: EditorMenuTypes.Blockquote,
|
|
16045
16081
|
text: 'Blockquote',
|
|
16046
16082
|
icon: '-lime-text-blockquote',
|
|
16047
16083
|
iconOnly: true,
|
|
@@ -24714,6 +24750,7 @@ const ProsemirrorAdapter = class {
|
|
|
24714
24750
|
constructor(hostRef) {
|
|
24715
24751
|
registerInstance(this, hostRef);
|
|
24716
24752
|
this.change = createEvent(this, "change", 7);
|
|
24753
|
+
this.editorKeyMap = {};
|
|
24717
24754
|
this.initializeTextEditor = async () => {
|
|
24718
24755
|
this.actionBarItems = textEditorMenuItems;
|
|
24719
24756
|
const mySchema = new Schema({
|
|
@@ -24728,13 +24765,19 @@ const ProsemirrorAdapter = class {
|
|
|
24728
24765
|
await this.contentConverter.parseAsHTML(this.value, schema$1);
|
|
24729
24766
|
}
|
|
24730
24767
|
const initialDoc = DOMParser.fromSchema(mySchema).parse(initialContentElement);
|
|
24768
|
+
this.menuCommandFactory = new MenuCommandFactory(mySchema);
|
|
24769
|
+
this.editorKeyMap = this.menuCommandFactory.buildKeymap();
|
|
24770
|
+
const keymapPlugin = keymap(this.editorKeyMap);
|
|
24731
24771
|
this.view = new EditorView(this.host.shadowRoot.querySelector('#editor'), {
|
|
24732
24772
|
state: EditorState.create({
|
|
24733
24773
|
doc: initialDoc,
|
|
24734
|
-
plugins:
|
|
24735
|
-
|
|
24736
|
-
|
|
24737
|
-
|
|
24774
|
+
plugins: [
|
|
24775
|
+
...exampleSetup({
|
|
24776
|
+
schema: mySchema,
|
|
24777
|
+
menuBar: false,
|
|
24778
|
+
}),
|
|
24779
|
+
keymapPlugin,
|
|
24780
|
+
],
|
|
24738
24781
|
}),
|
|
24739
24782
|
dispatchTransaction: (transaction) => {
|
|
24740
24783
|
const newState = this.view.state.apply(transaction);
|
|
@@ -24749,10 +24792,9 @@ const ProsemirrorAdapter = class {
|
|
|
24749
24792
|
};
|
|
24750
24793
|
this.handleActionBarItem = (event) => {
|
|
24751
24794
|
event.preventDefault();
|
|
24752
|
-
const {
|
|
24753
|
-
const mark = text.replace(/\s/g, '').toLowerCase();
|
|
24795
|
+
const { value } = event.detail;
|
|
24754
24796
|
try {
|
|
24755
|
-
const command = this.menuCommandFactory.
|
|
24797
|
+
const command = this.menuCommandFactory.getCommand(value);
|
|
24756
24798
|
this.executeCommand(command);
|
|
24757
24799
|
}
|
|
24758
24800
|
catch (error) {
|
|
@@ -24812,7 +24854,11 @@ const ProsemirrorAdapter = class {
|
|
|
24812
24854
|
transaction = tr;
|
|
24813
24855
|
});
|
|
24814
24856
|
this.view.dispatch(transaction);
|
|
24815
|
-
this.
|
|
24857
|
+
this.setFocus();
|
|
24858
|
+
}
|
|
24859
|
+
setFocus() {
|
|
24860
|
+
var _a;
|
|
24861
|
+
(_a = this.view) === null || _a === void 0 ? void 0 : _a.focus();
|
|
24816
24862
|
}
|
|
24817
24863
|
get host() { return getElement(this); }
|
|
24818
24864
|
static get watchers() { return {
|