@design.estate/dees-catalog 3.49.0 → 3.49.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/dist_bundle/bundle.js +8784 -3856
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.demo.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +2 -2
- package/dist_ts_web/elements/00group-appui/dees-appui/view.registry.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.js +1 -1
- package/dist_ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.js +2 -2
- package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.d.ts +1 -1
- package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.js +2 -2
- package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.js +1 -1
- package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +1 -1
- package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/demo.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -1
- package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +1 -1
- package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +1 -1
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.demo.js +7 -7
- package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +9 -6
- package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-datepicker/demo.js +15 -15
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.d.ts +4 -4
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.js +17 -17
- package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.d.ts +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-iban/dees-input-iban.js +4 -2
- package/dist_ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-phone/dees-input-phone.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.d.ts +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-richtext/component.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.js +7 -6
- package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.js +7 -5
- package/dist_ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.js +6 -5
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.js +6 -5
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.js +6 -5
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.js +6 -5
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.js +16 -13
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +3 -3
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.js +19 -15
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.d.ts +3 -3
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.js +1 -1
- package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.js +1 -1
- package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.js +7 -7
- package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.js +3 -3
- package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.d.ts +1 -1
- package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
- package/dist_ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.js +11 -8
- package/dist_ts_web/elements/00group-layout/dees-label/dees-label.js +1 -1
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +1 -1
- package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +3 -3
- package/dist_ts_web/elements/00group-media/dees-tile-pdf/demo.js +1 -1
- package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +1 -1
- package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.js +2 -2
- package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +1 -1
- package/dist_ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.js +1 -1
- package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.js +1 -1
- package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +1 -1
- package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +3 -3
- package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +2 -2
- package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +3 -3
- package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js +1 -1
- package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +1 -1
- package/dist_ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.d.ts +1 -1
- package/dist_ts_web/elements/00group-utility/dees-updater/dees-updater.js +1 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +1 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.d.ts +1 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.js +1 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +1 -1
- package/dist_ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js +1 -1
- package/dist_ts_web/pages/zindex-showcase.js +1 -1
- package/dist_ts_web/services/DeesServiceLibLoader.js +1 -1
- package/dist_ts_web/services/versions.d.ts +1 -1
- package/dist_ts_web/services/versions.js +1 -1
- package/license +3 -6
- package/package.json +11 -11
- package/readme.md +6 -4
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui/dees-appui.demo.ts +2 -2
- package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui/view.registry.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui-appbar/component.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui-appbar/demo.ts +5 -5
- package/ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts +1 -1
- package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +8 -8
- package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.ts +1 -1
- package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.ts +6 -6
- package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +5 -5
- package/ts_web/elements/00group-button/dees-button/dees-button.ts +3 -3
- package/ts_web/elements/00group-chart/dees-chart-area/component.ts +13 -13
- package/ts_web/elements/00group-chart/dees-chart-area/demo.ts +5 -5
- package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.ts +2 -2
- package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +4 -4
- package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +2 -2
- package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +1 -1
- package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +12 -12
- package/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts +1 -1
- package/ts_web/elements/00group-form/dees-form/dees-form.demo.ts +8 -8
- package/ts_web/elements/00group-form/dees-form/dees-form.ts +7 -5
- package/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts +2 -2
- package/ts_web/elements/00group-input/dees-input-base/dees-input-base.ts +3 -3
- package/ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.ts +1 -1
- package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +3 -3
- package/ts_web/elements/00group-input/dees-input-datepicker/demo.ts +19 -19
- package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.ts +18 -18
- package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.ts +5 -5
- package/ts_web/elements/00group-input/dees-input-fileupload/component.ts +3 -3
- package/ts_web/elements/00group-input/dees-input-iban/dees-input-iban.ts +5 -3
- package/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.ts +4 -4
- package/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.ts +1 -1
- package/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.ts +5 -5
- package/ts_web/elements/00group-input/dees-input-richtext/component.ts +5 -5
- package/ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.ts +6 -5
- package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +6 -6
- package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.ts +12 -10
- package/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.ts +1 -1
- package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.ts +5 -4
- package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.ts +5 -4
- package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.ts +5 -4
- package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.ts +5 -4
- package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.ts +19 -16
- package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +6 -6
- package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.ts +24 -20
- package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.ts +2 -2
- package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts +4 -4
- package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts +8 -8
- package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.ts +2 -2
- package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.ts +8 -8
- package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.ts +2 -2
- package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
- package/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.ts +16 -12
- package/ts_web/elements/00group-layout/dees-label/dees-label.ts +1 -1
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +7 -7
- package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +2 -2
- package/ts_web/elements/00group-media/dees-tile-pdf/demo.ts +1 -1
- package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +3 -3
- package/ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.ts +24 -24
- package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +10 -10
- package/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.ts +6 -6
- package/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts +1 -1
- package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +10 -10
- package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +6 -6
- package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +6 -6
- package/ts_web/elements/00group-utility/dees-icon/dees-icon.demo.ts +3 -3
- package/ts_web/elements/00group-utility/dees-icon/dees-icon.ts +6 -6
- package/ts_web/elements/00group-utility/dees-updater/dees-updater.ts +3 -3
- package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +4 -4
- package/ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.ts +9 -9
- package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +3 -3
- package/ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.ts +2 -2
- package/ts_web/pages/zindex-showcase.ts +11 -11
- package/ts_web/services/DeesServiceLibLoader.ts +2 -2
- package/ts_web/services/versions.ts +1 -1
- /package/{npmextra.json → .smartconfig.json} +0 -0
|
@@ -188,36 +188,39 @@ export class DeesFormattingMenu extends DeesElement {
|
|
|
188
188
|
|
|
189
189
|
public firstUpdated(): void {
|
|
190
190
|
// Set up event delegation for the menu
|
|
191
|
-
this.shadowRoot
|
|
191
|
+
this.shadowRoot!.addEventListener('mousedown', (e: Event) => {
|
|
192
|
+
const mouseEvent = e as MouseEvent;
|
|
192
193
|
const menu = this.shadowRoot?.querySelector('.formatting-menu');
|
|
193
|
-
if (menu && menu.contains(
|
|
194
|
+
if (menu && menu.contains(mouseEvent.target as Node)) {
|
|
194
195
|
// Prevent focus loss
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
mouseEvent.preventDefault();
|
|
197
|
+
mouseEvent.stopPropagation();
|
|
197
198
|
}
|
|
198
199
|
});
|
|
199
|
-
|
|
200
|
-
this.shadowRoot
|
|
201
|
-
const
|
|
200
|
+
|
|
201
|
+
this.shadowRoot!.addEventListener('click', (e: Event) => {
|
|
202
|
+
const mouseEvent = e as MouseEvent;
|
|
203
|
+
const target = mouseEvent.target as HTMLElement;
|
|
202
204
|
const button = target.closest('.format-button') as HTMLElement;
|
|
203
|
-
|
|
205
|
+
|
|
204
206
|
if (button) {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
mouseEvent.preventDefault();
|
|
208
|
+
mouseEvent.stopPropagation();
|
|
209
|
+
|
|
208
210
|
const command = button.getAttribute('data-command');
|
|
209
211
|
if (command) {
|
|
210
212
|
this.applyFormat(command);
|
|
211
213
|
}
|
|
212
214
|
}
|
|
213
215
|
});
|
|
214
|
-
|
|
215
|
-
this.shadowRoot
|
|
216
|
+
|
|
217
|
+
this.shadowRoot!.addEventListener('focus', (e: Event) => {
|
|
218
|
+
const focusEvent = e as FocusEvent;
|
|
216
219
|
const menu = this.shadowRoot?.querySelector('.formatting-menu');
|
|
217
|
-
if (menu && menu.contains(
|
|
220
|
+
if (menu && menu.contains(focusEvent.target as Node)) {
|
|
218
221
|
// Prevent menu from taking focus
|
|
219
|
-
|
|
220
|
-
|
|
222
|
+
focusEvent.preventDefault();
|
|
223
|
+
focusEvent.stopPropagation();
|
|
221
224
|
}
|
|
222
225
|
}, true); // Use capture phase
|
|
223
226
|
}
|
|
@@ -77,7 +77,7 @@ export class DeesInputWysiwyg extends DeesInputBase<string> {
|
|
|
77
77
|
@state()
|
|
78
78
|
accessor selectedText: string = '';
|
|
79
79
|
|
|
80
|
-
public editorContentRef
|
|
80
|
+
public editorContentRef!: HTMLDivElement;
|
|
81
81
|
public isComposing: boolean = false;
|
|
82
82
|
|
|
83
83
|
// Handler instances
|
|
@@ -144,7 +144,7 @@ export class DeesInputWysiwyg extends DeesInputBase<string> {
|
|
|
144
144
|
// No global selection listener needed
|
|
145
145
|
|
|
146
146
|
// Listen for custom selection events from blocks
|
|
147
|
-
this.addEventListener('block-text-selected', (e: CustomEvent) => {
|
|
147
|
+
this.addEventListener('block-text-selected', ((e: CustomEvent) => {
|
|
148
148
|
|
|
149
149
|
if (!this.slashMenu.visible && e.detail.hasSelection && e.detail.text.length > 0) {
|
|
150
150
|
this.selectedText = e.detail.text;
|
|
@@ -164,8 +164,8 @@ export class DeesInputWysiwyg extends DeesInputBase<string> {
|
|
|
164
164
|
);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
});
|
|
168
|
-
|
|
167
|
+
}) as EventListener);
|
|
168
|
+
|
|
169
169
|
// Hide formatting menu when clicking outside
|
|
170
170
|
document.addEventListener('mousedown', (e) => {
|
|
171
171
|
// Check if click is on the formatting menu itself
|
|
@@ -896,14 +896,14 @@ export class DeesInputWysiwyg extends DeesInputBase<string> {
|
|
|
896
896
|
{
|
|
897
897
|
name: 'Cancel',
|
|
898
898
|
action: async (modal) => {
|
|
899
|
-
modal
|
|
899
|
+
modal!.destroy();
|
|
900
900
|
resolve(null);
|
|
901
901
|
}
|
|
902
902
|
},
|
|
903
903
|
{
|
|
904
904
|
name: 'Add Link',
|
|
905
905
|
action: async (modal) => {
|
|
906
|
-
modal
|
|
906
|
+
modal!.destroy();
|
|
907
907
|
resolve(linkUrl);
|
|
908
908
|
}
|
|
909
909
|
}
|
|
@@ -216,46 +216,50 @@ export class DeesSlashMenu extends DeesElement {
|
|
|
216
216
|
|
|
217
217
|
public firstUpdated(): void {
|
|
218
218
|
// Set up event delegation
|
|
219
|
-
this.shadowRoot
|
|
219
|
+
this.shadowRoot!.addEventListener('mousedown', (e: Event) => {
|
|
220
|
+
const mouseEvent = e as MouseEvent;
|
|
220
221
|
const menu = this.shadowRoot?.querySelector('.slash-menu');
|
|
221
|
-
if (menu && menu.contains(
|
|
222
|
+
if (menu && menu.contains(mouseEvent.target as Node)) {
|
|
222
223
|
// Prevent focus loss
|
|
223
|
-
|
|
224
|
-
|
|
224
|
+
mouseEvent.preventDefault();
|
|
225
|
+
mouseEvent.stopPropagation();
|
|
225
226
|
}
|
|
226
227
|
});
|
|
227
|
-
|
|
228
|
-
this.shadowRoot
|
|
229
|
-
const
|
|
228
|
+
|
|
229
|
+
this.shadowRoot!.addEventListener('click', (e: Event) => {
|
|
230
|
+
const mouseEvent = e as MouseEvent;
|
|
231
|
+
const target = mouseEvent.target as HTMLElement;
|
|
230
232
|
const menuItem = target.closest('.slash-menu-item') as HTMLElement;
|
|
231
|
-
|
|
233
|
+
|
|
232
234
|
if (menuItem) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
mouseEvent.preventDefault();
|
|
236
|
+
mouseEvent.stopPropagation();
|
|
237
|
+
|
|
236
238
|
const itemType = menuItem.getAttribute('data-item-type');
|
|
237
239
|
if (itemType) {
|
|
238
240
|
this.selectItem(itemType);
|
|
239
241
|
}
|
|
240
242
|
}
|
|
241
243
|
});
|
|
242
|
-
|
|
243
|
-
this.shadowRoot
|
|
244
|
-
const
|
|
244
|
+
|
|
245
|
+
this.shadowRoot!.addEventListener('mouseenter', (e: Event) => {
|
|
246
|
+
const mouseEvent = e as MouseEvent;
|
|
247
|
+
const target = mouseEvent.target as HTMLElement;
|
|
245
248
|
const menuItem = target.closest('.slash-menu-item') as HTMLElement;
|
|
246
|
-
|
|
249
|
+
|
|
247
250
|
if (menuItem) {
|
|
248
251
|
const index = parseInt(menuItem.getAttribute('data-item-index') || '0', 10);
|
|
249
252
|
this.selectedIndex = index;
|
|
250
253
|
}
|
|
251
254
|
}, true); // Use capture phase
|
|
252
|
-
|
|
253
|
-
this.shadowRoot
|
|
255
|
+
|
|
256
|
+
this.shadowRoot!.addEventListener('focus', (e: Event) => {
|
|
257
|
+
const focusEvent = e as FocusEvent;
|
|
254
258
|
const menu = this.shadowRoot?.querySelector('.slash-menu');
|
|
255
|
-
if (menu && menu.contains(
|
|
259
|
+
if (menu && menu.contains(focusEvent.target as Node)) {
|
|
256
260
|
// Prevent menu from taking focus
|
|
257
|
-
|
|
258
|
-
|
|
261
|
+
focusEvent.preventDefault();
|
|
262
|
+
focusEvent.stopPropagation();
|
|
259
263
|
}
|
|
260
264
|
}, true); // Use capture phase
|
|
261
265
|
}
|
|
@@ -33,13 +33,13 @@ export class DeesWysiwygBlock extends DeesElement {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
@property({ type: Object })
|
|
36
|
-
accessor block
|
|
36
|
+
accessor block!: IBlock;
|
|
37
37
|
|
|
38
38
|
@property({ type: Boolean })
|
|
39
39
|
accessor isSelected: boolean = false;
|
|
40
40
|
|
|
41
41
|
@property({ type: Object })
|
|
42
|
-
accessor handlers
|
|
42
|
+
accessor handlers!: IBlockEventHandlers;
|
|
43
43
|
|
|
44
44
|
@property({ type: Object })
|
|
45
45
|
accessor wysiwygComponent: any; // Reference to parent dees-input-wysiwyg
|
|
@@ -105,10 +105,10 @@ export class WysiwygDragDropHandler {
|
|
|
105
105
|
handleDragEnd(): void {
|
|
106
106
|
// Clean up visual state
|
|
107
107
|
const allBlocks = this.component.editorContentRef.querySelectorAll('.block-wrapper');
|
|
108
|
-
allBlocks.forEach((block
|
|
109
|
-
block.classList.remove('dragging', 'move-up', 'move-down');
|
|
110
|
-
block.style.removeProperty('--drag-offset');
|
|
111
|
-
block.style.removeProperty('transform');
|
|
108
|
+
allBlocks.forEach((block) => {
|
|
109
|
+
(block as HTMLElement).classList.remove('dragging', 'move-up', 'move-down');
|
|
110
|
+
(block as HTMLElement).style.removeProperty('--drag-offset');
|
|
111
|
+
(block as HTMLElement).style.removeProperty('transform');
|
|
112
112
|
});
|
|
113
113
|
|
|
114
114
|
// Remove dragging class from editor
|
|
@@ -704,17 +704,17 @@ export class WysiwygKeyboardHandler {
|
|
|
704
704
|
const rect = range.getBoundingClientRect();
|
|
705
705
|
|
|
706
706
|
// Get the container element
|
|
707
|
-
let container = range.commonAncestorContainer;
|
|
707
|
+
let container: Node = range.commonAncestorContainer;
|
|
708
708
|
if (container.nodeType === Node.TEXT_NODE) {
|
|
709
|
-
container = container.parentElement
|
|
709
|
+
container = container.parentElement!;
|
|
710
710
|
}
|
|
711
|
-
|
|
711
|
+
|
|
712
712
|
// Get the top position of the container
|
|
713
713
|
const containerRect = (container as Element).getBoundingClientRect();
|
|
714
|
-
|
|
714
|
+
|
|
715
715
|
// Check if we're near the top (within 5px tolerance for line height variations)
|
|
716
716
|
const isNearTop = rect.top - containerRect.top < 5;
|
|
717
|
-
|
|
717
|
+
|
|
718
718
|
// For single-line content, also check if we're at the beginning
|
|
719
719
|
if (container.textContent && !container.textContent.includes('\n')) {
|
|
720
720
|
const cursorPos = WysiwygSelection.getCursorPositionInElement(container as Element, ...shadowRoots);
|
|
@@ -740,11 +740,11 @@ export class WysiwygKeyboardHandler {
|
|
|
740
740
|
const rect = range.getBoundingClientRect();
|
|
741
741
|
|
|
742
742
|
// Get the container element
|
|
743
|
-
let container = range.commonAncestorContainer;
|
|
743
|
+
let container: Node = range.commonAncestorContainer;
|
|
744
744
|
if (container.nodeType === Node.TEXT_NODE) {
|
|
745
|
-
container = container.parentElement
|
|
745
|
+
container = container.parentElement!;
|
|
746
746
|
}
|
|
747
|
-
|
|
747
|
+
|
|
748
748
|
// Get the bottom position of the container
|
|
749
749
|
const containerRect = (container as Element).getBoundingClientRect();
|
|
750
750
|
|
|
@@ -72,7 +72,7 @@ export class WysiwygModalManager {
|
|
|
72
72
|
{
|
|
73
73
|
name: 'Cancel',
|
|
74
74
|
action: async (modal) => {
|
|
75
|
-
modal
|
|
75
|
+
modal!.destroy();
|
|
76
76
|
resolve(null);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -158,7 +158,7 @@ export class WysiwygModalManager {
|
|
|
158
158
|
{
|
|
159
159
|
name: 'Done',
|
|
160
160
|
action: async (modal) => {
|
|
161
|
-
modal
|
|
161
|
+
modal!.destroy();
|
|
162
162
|
}
|
|
163
163
|
}
|
|
164
164
|
]
|
|
@@ -56,10 +56,10 @@ export const demoFunc = () => html`
|
|
|
56
56
|
const roundProfile = elementArg.querySelector('dees-input-profilepicture[shape="round"]');
|
|
57
57
|
|
|
58
58
|
if (roundProfile) {
|
|
59
|
-
roundProfile.addEventListener('change', (event: CustomEvent) => {
|
|
59
|
+
roundProfile.addEventListener('change', ((event: CustomEvent) => {
|
|
60
60
|
const target = event.target as DeesInputProfilePicture;
|
|
61
61
|
console.log('Round profile picture changed:', target.value?.substring(0, 50) + '...');
|
|
62
|
-
});
|
|
62
|
+
}) as EventListener);
|
|
63
63
|
}
|
|
64
64
|
}}>
|
|
65
65
|
<dees-panel .title=${'Profile Picture Input'} .subtitle=${'Basic usage with round and square shapes'}>
|
|
@@ -85,10 +85,10 @@ export const demoFunc = () => html`
|
|
|
85
85
|
// Different sizes demo
|
|
86
86
|
const profiles = elementArg.querySelectorAll('dees-input-profilepicture');
|
|
87
87
|
profiles.forEach((profile) => {
|
|
88
|
-
profile.addEventListener('change', (event: CustomEvent) => {
|
|
88
|
+
profile.addEventListener('change', ((event: CustomEvent) => {
|
|
89
89
|
const target = event.target as DeesInputProfilePicture;
|
|
90
90
|
console.log(`Profile (size ${target.size}) changed`);
|
|
91
|
-
});
|
|
91
|
+
}) as EventListener);
|
|
92
92
|
});
|
|
93
93
|
}}>
|
|
94
94
|
<dees-panel .title=${'Size Variations'} .subtitle=${'Profile pictures in different sizes'}>
|
|
@@ -122,15 +122,15 @@ export const demoFunc = () => html`
|
|
|
122
122
|
if (prefilledProfile) {
|
|
123
123
|
prefilledProfile.value = sampleImageUrl;
|
|
124
124
|
|
|
125
|
-
prefilledProfile.addEventListener('change', (event: CustomEvent) => {
|
|
125
|
+
prefilledProfile.addEventListener('change', ((event: CustomEvent) => {
|
|
126
126
|
const target = event.target as DeesInputProfilePicture;
|
|
127
127
|
const output = elementArg.querySelector('#prefilled-output');
|
|
128
128
|
if (output) {
|
|
129
|
-
output.textContent = target.value ?
|
|
130
|
-
`Image data: ${target.value.substring(0, 80)}...` :
|
|
129
|
+
output.textContent = target.value ?
|
|
130
|
+
`Image data: ${target.value.substring(0, 80)}...` :
|
|
131
131
|
'No image selected';
|
|
132
132
|
}
|
|
133
|
-
});
|
|
133
|
+
}) as EventListener);
|
|
134
134
|
}
|
|
135
135
|
}}>
|
|
136
136
|
<dees-panel .title=${'Pre-filled and Value Binding'} .subtitle=${'Profile picture with initial value and change tracking'}>
|
|
@@ -436,10 +436,10 @@ export class DeesInputProfilePicture extends DeesInputBase<DeesInputProfilePictu
|
|
|
436
436
|
this.modalInstance.outputSize = this.outputSize;
|
|
437
437
|
this.modalInstance.outputQuality = this.outputQuality;
|
|
438
438
|
|
|
439
|
-
this.modalInstance.addEventListener('save', (event: CustomEvent) => {
|
|
439
|
+
this.modalInstance.addEventListener('save', ((event: CustomEvent) => {
|
|
440
440
|
this.value = event.detail.croppedImage;
|
|
441
441
|
this.changeSubject.next(this);
|
|
442
|
-
});
|
|
442
|
+
}) as EventListener);
|
|
443
443
|
|
|
444
444
|
document.body.appendChild(this.modalInstance);
|
|
445
445
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { html, css, cssManager } from '@design.estate/dees-element';
|
|
2
2
|
import type { DeesDashboardgrid } from './dees-dashboardgrid.js';
|
|
3
|
+
import type { LayoutDirection } from './types.js';
|
|
3
4
|
import '@design.estate/dees-wcctools/demotools';
|
|
4
5
|
|
|
5
6
|
export const demoFunc = () => {
|
|
@@ -160,7 +161,7 @@ export const demoFunc = () => {
|
|
|
160
161
|
});
|
|
161
162
|
|
|
162
163
|
// Enhanced logging for reflow events
|
|
163
|
-
let lastPlaceholderPosition = null;
|
|
164
|
+
let lastPlaceholderPosition: Record<string, string> | null = null;
|
|
164
165
|
let moveEventCounter = 0;
|
|
165
166
|
|
|
166
167
|
// Helper function to log grid state
|
|
@@ -231,25 +232,28 @@ export const demoFunc = () => {
|
|
|
231
232
|
// Log initial state
|
|
232
233
|
logGridState('Initial Grid State');
|
|
233
234
|
|
|
234
|
-
grid.addEventListener('widget-move', (e:
|
|
235
|
+
grid.addEventListener('widget-move', (e: Event) => {
|
|
236
|
+
const detail = (e as CustomEvent).detail;
|
|
235
237
|
logGridState('Widget Move', {
|
|
236
|
-
widget:
|
|
237
|
-
displaced:
|
|
238
|
-
swappedWith:
|
|
238
|
+
widget: detail.widget,
|
|
239
|
+
displaced: detail.displaced,
|
|
240
|
+
swappedWith: detail.swappedWith
|
|
239
241
|
});
|
|
240
242
|
});
|
|
241
243
|
|
|
242
|
-
grid.addEventListener('widget-resize', (e:
|
|
244
|
+
grid.addEventListener('widget-resize', (e: Event) => {
|
|
245
|
+
const detail = (e as CustomEvent).detail;
|
|
243
246
|
logGridState('Widget Resize', {
|
|
244
|
-
widget:
|
|
245
|
-
displaced:
|
|
246
|
-
swappedWith:
|
|
247
|
+
widget: detail.widget,
|
|
248
|
+
displaced: detail.displaced,
|
|
249
|
+
swappedWith: detail.swappedWith
|
|
247
250
|
});
|
|
248
251
|
});
|
|
249
252
|
|
|
250
|
-
grid.addEventListener('widget-remove', (e:
|
|
253
|
+
grid.addEventListener('widget-remove', (e: Event) => {
|
|
254
|
+
const detail = (e as CustomEvent).detail;
|
|
251
255
|
logGridState('Widget Remove', {
|
|
252
|
-
removedWidget:
|
|
256
|
+
removedWidget: detail.widget
|
|
253
257
|
});
|
|
254
258
|
updateStatus();
|
|
255
259
|
});
|
|
@@ -312,7 +316,7 @@ export const demoFunc = () => {
|
|
|
312
316
|
|
|
313
317
|
// Log compact operations
|
|
314
318
|
const originalCompact = grid.compact.bind(grid);
|
|
315
|
-
grid.compact = (direction?:
|
|
319
|
+
grid.compact = (direction?: LayoutDirection) => {
|
|
316
320
|
console.group('🗜️ Compacting Grid');
|
|
317
321
|
console.log('Direction:', direction || 'vertical');
|
|
318
322
|
logGridState('Before Compact');
|
|
@@ -45,7 +45,7 @@ export class DeesStepper extends DeesElement {
|
|
|
45
45
|
@property({
|
|
46
46
|
type: Object,
|
|
47
47
|
})
|
|
48
|
-
accessor selectedStep
|
|
48
|
+
accessor selectedStep!: IStep;
|
|
49
49
|
|
|
50
50
|
constructor() {
|
|
51
51
|
super();
|
|
@@ -214,19 +214,19 @@ export class DeesStepper extends DeesElement {
|
|
|
214
214
|
this.setScrollStatus();
|
|
215
215
|
// Remove entrance class after initial animation completes
|
|
216
216
|
await this.domtools.convenience.smartdelay.delayFor(350);
|
|
217
|
-
this.shadowRoot
|
|
217
|
+
this.shadowRoot!.querySelector('.step.entrance')?.classList.remove('entrance');
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
public async updated() {
|
|
221
221
|
this.setScrollStatus();
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
public scroller
|
|
224
|
+
public scroller!: typeof domtools.plugins.SweetScroll.prototype;
|
|
225
225
|
|
|
226
226
|
public async setScrollStatus() {
|
|
227
|
-
const stepperContainer
|
|
228
|
-
const firstStepElement
|
|
229
|
-
const selectedStepElement
|
|
227
|
+
const stepperContainer = this.shadowRoot!.querySelector('.stepperContainer') as HTMLElement;
|
|
228
|
+
const firstStepElement = this.shadowRoot!.querySelector('.step') as HTMLElement;
|
|
229
|
+
const selectedStepElement = this.shadowRoot!.querySelector('.selected') as HTMLElement;
|
|
230
230
|
if (!selectedStepElement) {
|
|
231
231
|
return;
|
|
232
232
|
}
|
|
@@ -278,7 +278,7 @@ export class DeesStepper extends DeesElement {
|
|
|
278
278
|
this.selectedStep = previousStep;
|
|
279
279
|
await this.domtoolsPromise;
|
|
280
280
|
await this.domtools.convenience.smartdelay.delayFor(100);
|
|
281
|
-
this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot
|
|
281
|
+
this.selectedStep.onReturnToStepFunc?.(this, this.shadowRoot!.querySelector('.selected') as HTMLElement);
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
public goNext() {
|
|
@@ -21,9 +21,9 @@ export function throttle<T extends (...args: any[]) => any>(
|
|
|
21
21
|
): (...args: Parameters<T>) => void {
|
|
22
22
|
let inThrottle: boolean;
|
|
23
23
|
|
|
24
|
-
return
|
|
24
|
+
return (...args: Parameters<T>) => {
|
|
25
25
|
if (!inThrottle) {
|
|
26
|
-
func
|
|
26
|
+
func(...args);
|
|
27
27
|
inThrottle = true;
|
|
28
28
|
setTimeout(() => inThrottle = false, limit);
|
|
29
29
|
}
|
|
@@ -130,7 +130,7 @@ export class DeesContextmenu extends DeesElement {
|
|
|
130
130
|
type: Array,
|
|
131
131
|
})
|
|
132
132
|
accessor menuItems: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean; submenu?: (plugins.tsclass.website.IMenuItem & { shortcut?: string; disabled?: boolean } | { divider: true })[]; divider?: never } | { divider: true })[] = [];
|
|
133
|
-
windowLayer
|
|
133
|
+
windowLayer!: DeesWindowLayer;
|
|
134
134
|
|
|
135
135
|
private submenu: DeesContextmenu | null = null;
|
|
136
136
|
private submenuTimeout: any = null;
|
|
@@ -278,7 +278,7 @@ export class DeesContextmenu extends DeesElement {
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
private handleKeydown = (event: KeyboardEvent) => {
|
|
281
|
-
const menuItems = Array.from(this.shadowRoot
|
|
281
|
+
const menuItems = Array.from(this.shadowRoot!.querySelectorAll('.menuitem:not(.disabled)'));
|
|
282
282
|
const currentIndex = menuItems.findIndex(item => item.matches(':hover'));
|
|
283
283
|
|
|
284
284
|
switch (event.key) {
|
|
@@ -352,7 +352,7 @@ export class DeesContextmenu extends DeesElement {
|
|
|
352
352
|
if (!menuItem.submenu || menuItem.submenu.length === 0) return;
|
|
353
353
|
|
|
354
354
|
// Find the menu item element
|
|
355
|
-
const menuItems = Array.from(this.shadowRoot
|
|
355
|
+
const menuItems = Array.from(this.shadowRoot!.querySelectorAll('.menuitem'));
|
|
356
356
|
const menuItemElement = menuItems.find(el => el.querySelector('.menuitem-text')?.textContent === menuItem.name) as HTMLElement;
|
|
357
357
|
if (!menuItemElement) return;
|
|
358
358
|
|