@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.
Files changed (171) hide show
  1. package/dist_bundle/bundle.js +8784 -3856
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.demo.js +1 -1
  4. package/dist_ts_web/elements/00group-appui/dees-appui/dees-appui.js +2 -2
  5. package/dist_ts_web/elements/00group-appui/dees-appui/view.registry.js +1 -1
  6. package/dist_ts_web/elements/00group-appui/dees-appui-appbar/component.js +1 -1
  7. package/dist_ts_web/elements/00group-appui/dees-appui-appbar/demo.js +1 -1
  8. package/dist_ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.js +1 -1
  9. package/dist_ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.js +1 -1
  10. package/dist_ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.js +2 -2
  11. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.d.ts +1 -1
  12. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.js +2 -2
  13. package/dist_ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.js +1 -1
  14. package/dist_ts_web/elements/00group-button/dees-button/dees-button.demo.js +1 -1
  15. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +1 -1
  16. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +1 -1
  17. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +1 -1
  18. package/dist_ts_web/elements/00group-chart/dees-chart-area/demo.js +1 -1
  19. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.js +1 -1
  20. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +1 -1
  21. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +1 -1
  22. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +1 -1
  23. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +1 -1
  24. package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +1 -1
  25. package/dist_ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.js +1 -1
  26. package/dist_ts_web/elements/00group-form/dees-form/dees-form.demo.js +7 -7
  27. package/dist_ts_web/elements/00group-form/dees-form/dees-form.js +9 -6
  28. package/dist_ts_web/elements/00group-form/dees-form-submit/dees-form-submit.js +1 -1
  29. package/dist_ts_web/elements/00group-input/dees-input-base/dees-input-base.js +1 -1
  30. package/dist_ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.js +1 -1
  31. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +1 -1
  32. package/dist_ts_web/elements/00group-input/dees-input-datepicker/demo.js +15 -15
  33. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.d.ts +4 -4
  34. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.js +17 -17
  35. package/dist_ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.js +1 -1
  36. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.d.ts +1 -1
  37. package/dist_ts_web/elements/00group-input/dees-input-fileupload/component.js +1 -1
  38. package/dist_ts_web/elements/00group-input/dees-input-iban/dees-input-iban.js +4 -2
  39. package/dist_ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.js +1 -1
  40. package/dist_ts_web/elements/00group-input/dees-input-phone/dees-input-phone.js +1 -1
  41. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.d.ts +1 -1
  42. package/dist_ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.js +1 -1
  43. package/dist_ts_web/elements/00group-input/dees-input-richtext/component.js +1 -1
  44. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.js +7 -6
  45. package/dist_ts_web/elements/00group-input/dees-input-text/dees-input-text.js +1 -1
  46. package/dist_ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.js +7 -5
  47. package/dist_ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.js +1 -1
  48. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.js +6 -5
  49. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.js +6 -5
  50. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.js +6 -5
  51. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.js +6 -5
  52. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.js +16 -13
  53. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.js +3 -3
  54. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.js +19 -15
  55. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.js +1 -1
  56. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.d.ts +3 -3
  57. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.js +1 -1
  58. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.js +1 -1
  59. package/dist_ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.js +1 -1
  60. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.js +7 -7
  61. package/dist_ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.js +3 -3
  62. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.d.ts +1 -1
  63. package/dist_ts_web/elements/00group-layout/dees-chips/dees-chips.js +1 -1
  64. package/dist_ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.js +11 -8
  65. package/dist_ts_web/elements/00group-layout/dees-label/dees-label.js +1 -1
  66. package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +1 -1
  67. package/dist_ts_web/elements/00group-media/dees-pdf-shared/utils.js +3 -3
  68. package/dist_ts_web/elements/00group-media/dees-tile-pdf/demo.js +1 -1
  69. package/dist_ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.js +1 -1
  70. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.js +2 -2
  71. package/dist_ts_web/elements/00group-overlay/dees-modal/dees-modal.js +1 -1
  72. package/dist_ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.js +1 -1
  73. package/dist_ts_web/elements/00group-runtime/environments/WebContainerEnvironment.js +1 -1
  74. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +1 -1
  75. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +3 -3
  76. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +2 -2
  77. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +3 -3
  78. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.demo.js +1 -1
  79. package/dist_ts_web/elements/00group-utility/dees-icon/dees-icon.js +1 -1
  80. package/dist_ts_web/elements/00group-utility/dees-searchbar/dees-searchbar.d.ts +1 -1
  81. package/dist_ts_web/elements/00group-utility/dees-updater/dees-updater.js +1 -1
  82. package/dist_ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.js +1 -1
  83. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.d.ts +1 -1
  84. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.js +1 -1
  85. package/dist_ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.js +1 -1
  86. package/dist_ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.js +1 -1
  87. package/dist_ts_web/pages/zindex-showcase.js +1 -1
  88. package/dist_ts_web/services/DeesServiceLibLoader.js +1 -1
  89. package/dist_ts_web/services/versions.d.ts +1 -1
  90. package/dist_ts_web/services/versions.js +1 -1
  91. package/license +3 -6
  92. package/package.json +11 -11
  93. package/readme.md +6 -4
  94. package/ts_web/00_commitinfo_data.ts +1 -1
  95. package/ts_web/elements/00group-appui/dees-appui/dees-appui.demo.ts +2 -2
  96. package/ts_web/elements/00group-appui/dees-appui/dees-appui.ts +1 -1
  97. package/ts_web/elements/00group-appui/dees-appui/view.registry.ts +1 -1
  98. package/ts_web/elements/00group-appui/dees-appui-appbar/component.ts +1 -1
  99. package/ts_web/elements/00group-appui/dees-appui-appbar/demo.ts +5 -5
  100. package/ts_web/elements/00group-appui/dees-appui-maincontent/dees-appui-maincontent.ts +1 -1
  101. package/ts_web/elements/00group-appui/dees-appui-mainmenu/dees-appui-mainmenu.ts +1 -1
  102. package/ts_web/elements/00group-appui/dees-appui-tabs/dees-appui-tabs.ts +8 -8
  103. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.demo.ts +1 -1
  104. package/ts_web/elements/00group-appui/dees-mobilenavigation/dees-mobilenavigation.ts +6 -6
  105. package/ts_web/elements/00group-button/dees-button/dees-button.demo.ts +5 -5
  106. package/ts_web/elements/00group-button/dees-button/dees-button.ts +3 -3
  107. package/ts_web/elements/00group-chart/dees-chart-area/component.ts +13 -13
  108. package/ts_web/elements/00group-chart/dees-chart-area/demo.ts +5 -5
  109. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.demo.ts +2 -2
  110. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +4 -4
  111. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +2 -2
  112. package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +1 -1
  113. package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +12 -12
  114. package/ts_web/elements/00group-feedback/dees-progressbar/dees-progressbar.ts +1 -1
  115. package/ts_web/elements/00group-form/dees-form/dees-form.demo.ts +8 -8
  116. package/ts_web/elements/00group-form/dees-form/dees-form.ts +7 -5
  117. package/ts_web/elements/00group-form/dees-form-submit/dees-form-submit.ts +2 -2
  118. package/ts_web/elements/00group-input/dees-input-base/dees-input-base.ts +3 -3
  119. package/ts_web/elements/00group-input/dees-input-checkbox/dees-input-checkbox.ts +1 -1
  120. package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +3 -3
  121. package/ts_web/elements/00group-input/dees-input-datepicker/demo.ts +19 -19
  122. package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.demo.ts +18 -18
  123. package/ts_web/elements/00group-input/dees-input-dropdown/dees-input-dropdown.ts +5 -5
  124. package/ts_web/elements/00group-input/dees-input-fileupload/component.ts +3 -3
  125. package/ts_web/elements/00group-input/dees-input-iban/dees-input-iban.ts +5 -3
  126. package/ts_web/elements/00group-input/dees-input-multitoggle/dees-input-multitoggle.ts +4 -4
  127. package/ts_web/elements/00group-input/dees-input-phone/dees-input-phone.ts +1 -1
  128. package/ts_web/elements/00group-input/dees-input-radiogroup/dees-input-radiogroup.ts +5 -5
  129. package/ts_web/elements/00group-input/dees-input-richtext/component.ts +5 -5
  130. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.demo.ts +6 -5
  131. package/ts_web/elements/00group-input/dees-input-text/dees-input-text.ts +6 -6
  132. package/ts_web/elements/00group-input/dees-input-toggle/dees-input-toggle.demo.ts +12 -10
  133. package/ts_web/elements/00group-input/dees-input-typelist/dees-input-typelist.ts +1 -1
  134. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/heading.block.ts +5 -4
  135. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/list.block.ts +5 -4
  136. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/paragraph.block.ts +5 -4
  137. package/ts_web/elements/00group-input/dees-input-wysiwyg/blocks/text/quote.block.ts +5 -4
  138. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-formatting-menu.ts +19 -16
  139. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-input-wysiwyg.ts +6 -6
  140. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-slash-menu.ts +24 -20
  141. package/ts_web/elements/00group-input/dees-input-wysiwyg/dees-wysiwyg-block.ts +2 -2
  142. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.dragdrophandler.ts +4 -4
  143. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.keyboardhandler.ts +8 -8
  144. package/ts_web/elements/00group-input/dees-input-wysiwyg/wysiwyg.modalmanager.ts +2 -2
  145. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.demo.ts +8 -8
  146. package/ts_web/elements/00group-input/profilepicture/dees-input-profilepicture.ts +2 -2
  147. package/ts_web/elements/00group-layout/dees-chips/dees-chips.ts +1 -1
  148. package/ts_web/elements/00group-layout/dees-dashboardgrid/dees-dashboardgrid.demo.ts +16 -12
  149. package/ts_web/elements/00group-layout/dees-label/dees-label.ts +1 -1
  150. package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +7 -7
  151. package/ts_web/elements/00group-media/dees-pdf-shared/utils.ts +2 -2
  152. package/ts_web/elements/00group-media/dees-tile-pdf/demo.ts +1 -1
  153. package/ts_web/elements/00group-overlay/dees-contextmenu/dees-contextmenu.ts +3 -3
  154. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.demo.ts +24 -24
  155. package/ts_web/elements/00group-overlay/dees-modal/dees-modal.ts +10 -10
  156. package/ts_web/elements/00group-overlay/dees-speechbubble/dees-speechbubble.ts +6 -6
  157. package/ts_web/elements/00group-runtime/environments/WebContainerEnvironment.ts +1 -1
  158. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +10 -10
  159. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +6 -6
  160. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +6 -6
  161. package/ts_web/elements/00group-utility/dees-icon/dees-icon.demo.ts +3 -3
  162. package/ts_web/elements/00group-utility/dees-icon/dees-icon.ts +6 -6
  163. package/ts_web/elements/00group-utility/dees-updater/dees-updater.ts +3 -3
  164. package/ts_web/elements/00group-workspace/dees-workspace-filetree/dees-workspace-filetree.ts +4 -4
  165. package/ts_web/elements/00group-workspace/dees-workspace-markdown/dees-workspace-markdown.ts +9 -9
  166. package/ts_web/elements/00group-workspace/dees-workspace-markdownoutlet/dees-workspace-markdownoutlet.ts +3 -3
  167. package/ts_web/elements/00group-workspace/dees-workspace-monaco/dees-workspace-monaco.ts +2 -2
  168. package/ts_web/pages/zindex-showcase.ts +11 -11
  169. package/ts_web/services/DeesServiceLibLoader.ts +2 -2
  170. package/ts_web/services/versions.ts +1 -1
  171. /package/{npmextra.json → .smartconfig.json} +0 -0
@@ -47,9 +47,9 @@ export const demoFunc = () => html`
47
47
  const datePicker = elementArg.querySelector('dees-input-datepicker');
48
48
 
49
49
  if (datePicker) {
50
- datePicker.addEventListener('change', (event: CustomEvent) => {
50
+ datePicker.addEventListener('change', ((event: CustomEvent) => {
51
51
  console.log('Basic date selected:', (event.target as DeesInputDatepicker).value);
52
- });
52
+ }) as EventListener);
53
53
  }
54
54
  }}>
55
55
  <dees-panel .title=${'Basic Date Picker'} .subtitle=${'Simple date selection without time'}>
@@ -66,17 +66,17 @@ export const demoFunc = () => html`
66
66
  const appointmentPicker = elementArg.querySelector('dees-input-datepicker[label="Appointment"]');
67
67
 
68
68
  if (dateTimePicker) {
69
- dateTimePicker.addEventListener('change', (event: CustomEvent) => {
69
+ dateTimePicker.addEventListener('change', ((event: CustomEvent) => {
70
70
  const value = (event.target as DeesInputDatepicker).value;
71
71
  console.log('24h format datetime:', value);
72
- });
72
+ }) as EventListener);
73
73
  }
74
74
 
75
75
  if (appointmentPicker) {
76
- appointmentPicker.addEventListener('change', (event: CustomEvent) => {
76
+ appointmentPicker.addEventListener('change', ((event: CustomEvent) => {
77
77
  const value = (event.target as DeesInputDatepicker).value;
78
78
  console.log('12h format datetime:', value);
79
- });
79
+ }) as EventListener);
80
80
  }
81
81
  }}>
82
82
  <dees-panel .title=${'Date and Time Selection'} .subtitle=${'Date pickers with time selection in different formats'}>
@@ -102,14 +102,14 @@ export const demoFunc = () => html`
102
102
  const timezonePickers = elementArg.querySelectorAll('dees-input-datepicker');
103
103
 
104
104
  timezonePickers.forEach((picker) => {
105
- picker.addEventListener('change', (event: CustomEvent) => {
105
+ picker.addEventListener('change', ((event: CustomEvent) => {
106
106
  const target = event.target as DeesInputDatepicker;
107
107
  console.log(`${target.label} value:`, target.value);
108
108
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
109
109
  if (input) {
110
110
  console.log(`${target.label} formatted:`, input.value);
111
111
  }
112
- });
112
+ }) as EventListener);
113
113
  });
114
114
  }}>
115
115
  <dees-panel .title=${'Timezone Support'} .subtitle=${'Date and time selection with timezone awareness'}>
@@ -140,7 +140,7 @@ export const demoFunc = () => html`
140
140
 
141
141
  if (futureDatePicker) {
142
142
  // Show the min/max constraints in action
143
- futureDatePicker.addEventListener('change', (event: CustomEvent) => {
143
+ futureDatePicker.addEventListener('change', ((event: CustomEvent) => {
144
144
  const value = (event.target as DeesInputDatepicker).value;
145
145
  if (value) {
146
146
  const selectedDate = new Date(value);
@@ -148,7 +148,7 @@ export const demoFunc = () => html`
148
148
  const daysDiff = Math.floor((selectedDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));
149
149
  console.log(`Selected date is ${daysDiff} days from today`);
150
150
  }
151
- });
151
+ }) as EventListener);
152
152
  }
153
153
  }}>
154
154
  <dees-panel .title=${'Date Range Constraints'} .subtitle=${'Limit selectable dates with min and max values'}>
@@ -171,14 +171,14 @@ export const demoFunc = () => html`
171
171
 
172
172
  const datePickers = elementArg.querySelectorAll('dees-input-datepicker');
173
173
  datePickers.forEach((picker) => {
174
- picker.addEventListener('change', (event: CustomEvent) => {
174
+ picker.addEventListener('change', ((event: CustomEvent) => {
175
175
  const target = event.target as DeesInputDatepicker;
176
176
  // Log the formatted value that's displayed in the input
177
177
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
178
178
  if (input) {
179
179
  console.log(`${target.label} format:`, input.value);
180
180
  }
181
- });
181
+ }) as EventListener);
182
182
  });
183
183
  }}>
184
184
  <dees-panel .title=${'Date Formats'} .subtitle=${'Different date display formats for various regions'}>
@@ -268,7 +268,7 @@ export const demoFunc = () => html`
268
268
  <dees-demowrapper .runAfterRender=${async (elementArg: HTMLElement) => {
269
269
  // Generate weekend dates for the current month
270
270
  const generateWeekends = () => {
271
- const weekends = [];
271
+ const weekends: string[] = [];
272
272
  const now = new Date();
273
273
  const year = now.getFullYear();
274
274
  const month = now.getMonth();
@@ -286,7 +286,7 @@ export const demoFunc = () => html`
286
286
 
287
287
  const picker = elementArg.querySelector('dees-input-datepicker');
288
288
  if (picker) {
289
- picker.disabledDates = generateWeekends();
289
+ (picker as DeesInputDatepicker).disabledDates = generateWeekends();
290
290
  console.log('Disabled weekend dates for current month');
291
291
  }
292
292
  }}>
@@ -344,7 +344,7 @@ export const demoFunc = () => html`
344
344
 
345
345
  const picker = elementArg.querySelector('dees-input-datepicker');
346
346
  if (picker) {
347
- picker.events = sampleEvents;
347
+ (picker as DeesInputDatepicker).events = sampleEvents;
348
348
  console.log('Calendar events loaded:', sampleEvents);
349
349
  }
350
350
  }}>
@@ -371,7 +371,7 @@ export const demoFunc = () => html`
371
371
  const output = elementArg.querySelector('#event-output');
372
372
 
373
373
  if (picker && output) {
374
- picker.addEventListener('change', (event: CustomEvent) => {
374
+ picker.addEventListener('change', ((event: CustomEvent) => {
375
375
  const target = event.target as DeesInputDatepicker;
376
376
  const value = target.value;
377
377
  if (value) {
@@ -379,16 +379,16 @@ export const demoFunc = () => html`
379
379
  // Get the formatted value from the input element
380
380
  const input = target.shadowRoot?.querySelector('.date-input') as HTMLInputElement;
381
381
  const formattedValue = input?.value || 'N/A';
382
- output.innerHTML = `
382
+ (output as HTMLElement).innerHTML = `
383
383
  <strong>Event triggered!</strong><br>
384
384
  ISO Value: ${value}<br>
385
385
  Formatted: ${formattedValue}<br>
386
386
  Date object: ${date.toLocaleString()}
387
387
  `;
388
388
  } else {
389
- output.innerHTML = '<em>Date cleared</em>';
389
+ (output as HTMLElement).innerHTML = '<em>Date cleared</em>';
390
390
  }
391
- });
391
+ }) as EventListener);
392
392
 
393
393
  picker.addEventListener('blur', () => {
394
394
  console.log('Datepicker lost focus');
@@ -56,16 +56,16 @@ export const demoFunc = () => html`
56
56
 
57
57
  // Log when country changes
58
58
  if (countryDropdown) {
59
- countryDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
59
+ countryDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
60
60
  console.log('Country selected:', event.detail);
61
- });
61
+ }) as EventListener);
62
62
  }
63
63
 
64
64
  // Log when role changes
65
65
  if (roleDropdown) {
66
- roleDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
66
+ roleDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
67
67
  console.log('Role selected:', event.detail);
68
- });
68
+ }) as EventListener);
69
69
  }
70
70
  }}>
71
71
  <dees-panel .title=${'1. Basic Dropdowns'} .subtitle=${'Standard dropdown with search functionality and various options'}>
@@ -103,9 +103,9 @@ export const demoFunc = () => html`
103
103
  const priorityDropdown = elementArg.querySelector('dees-input-dropdown');
104
104
 
105
105
  if (priorityDropdown) {
106
- priorityDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
106
+ priorityDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
107
107
  console.log(`Priority changed to: ${event.detail.option}`);
108
- });
108
+ }) as EventListener);
109
109
  }
110
110
  }}>
111
111
  <dees-panel .title=${'2. Without Search'} .subtitle=${'Dropdown with search functionality disabled for simpler selection'}>
@@ -128,10 +128,10 @@ export const demoFunc = () => html`
128
128
 
129
129
  // Log all changes from horizontal dropdowns
130
130
  dropdowns.forEach((dropdown) => {
131
- dropdown.addEventListener('selectedOption', (event: CustomEvent) => {
131
+ dropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
132
132
  const label = dropdown.getAttribute('label');
133
133
  console.log(`${label}: ${event.detail.option}`);
134
- });
134
+ }) as EventListener);
135
135
  });
136
136
  }}>
137
137
  <dees-panel .title=${'3. Horizontal Layout'} .subtitle=${'Multiple dropdowns in a horizontal layout for compact forms'}>
@@ -216,9 +216,9 @@ export const demoFunc = () => html`
216
216
  const dropdown = elementArg.querySelector('dees-input-dropdown');
217
217
 
218
218
  if (dropdown) {
219
- dropdown.addEventListener('selectedOption', (event: CustomEvent) => {
219
+ dropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
220
220
  console.log('Bottom dropdown selected:', event.detail);
221
- });
221
+ }) as EventListener);
222
222
 
223
223
  // Note: The dropdown automatically detects available space
224
224
  // and opens upward when near the bottom of the viewport
@@ -248,16 +248,16 @@ export const demoFunc = () => html`
248
248
  output.innerHTML = '<em>Select a product to see details...</em>';
249
249
 
250
250
  // Handle dropdown changes
251
- dropdown.addEventListener('change', (event: CustomEvent) => {
251
+ dropdown.addEventListener('change', ((event: CustomEvent) => {
252
252
  if (event.detail.value) {
253
- output.innerHTML = `
253
+ (output as HTMLElement).innerHTML = `
254
254
  <strong>Selected:</strong> ${event.detail.value.option}<br>
255
255
  <strong>Key:</strong> ${event.detail.value.key}<br>
256
256
  <strong>Price:</strong> $${event.detail.value.payload?.price || 'N/A'}<br>
257
257
  <strong>Features:</strong> ${event.detail.value.payload?.features?.join(', ') || 'N/A'}
258
258
  `;
259
259
  }
260
- });
260
+ }) as EventListener);
261
261
  }
262
262
  }}>
263
263
  <dees-panel .title=${'6. Event Handling & Payload'} .subtitle=${'Dropdown with payload data and change event handling'}>
@@ -281,20 +281,20 @@ export const demoFunc = () => html`
281
281
  const frameworkDropdown = elementArg.querySelector('dees-input-dropdown[key="framework"]');
282
282
 
283
283
  if (form) {
284
- form.addEventListener('formData', (event: CustomEvent) => {
284
+ form.addEventListener('formData', ((event: CustomEvent) => {
285
285
  console.log('Form submitted with data:', event.detail.data);
286
- });
286
+ }) as EventListener);
287
287
  }
288
288
 
289
289
  if (projectTypeDropdown && frameworkDropdown) {
290
290
  // Filter frameworks based on project type
291
- projectTypeDropdown.addEventListener('selectedOption', (event: CustomEvent) => {
291
+ projectTypeDropdown.addEventListener('selectedOption', ((event: CustomEvent) => {
292
292
  const selectedType = event.detail.key;
293
293
  console.log(`Project type changed to: ${selectedType}`);
294
-
294
+
295
295
  // In a real app, you could filter the framework options based on project type
296
296
  // For demo purposes, we just log the change
297
- });
297
+ }) as EventListener);
298
298
  }
299
299
  }}>
300
300
  <dees-panel .title=${'7. Form Integration'} .subtitle=${'Dropdown working within a form with validation'}>
@@ -30,14 +30,14 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
30
30
  accessor options: { option: string; key: string; payload?: any }[] = [];
31
31
 
32
32
  @property()
33
- accessor selectedOption: { option: string; key: string; payload?: any } = null;
33
+ accessor selectedOption: { option: string; key: string; payload?: any } | null = null;
34
34
 
35
35
  // Add value property for form compatibility
36
36
  public get value() {
37
37
  return this.selectedOption;
38
38
  }
39
39
 
40
- public set value(val: { option: string; key: string; payload?: any }) {
40
+ public set value(val: { option: string; key: string; payload?: any } | null) {
41
41
  this.selectedOption = val;
42
42
  }
43
43
 
@@ -372,7 +372,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
372
372
 
373
373
  if (this.isOpened) {
374
374
  // Check available space and set position
375
- const selectedBox = this.shadowRoot.querySelector('.selectedBox') as HTMLElement;
375
+ const selectedBox = this.shadowRoot!.querySelector('.selectedBox') as HTMLElement;
376
376
  const rect = selectedBox.getBoundingClientRect();
377
377
  const spaceBelow = window.innerHeight - rect.bottom;
378
378
  const spaceAbove = rect.top;
@@ -382,7 +382,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
382
382
 
383
383
  // Focus search input if present
384
384
  await this.updateComplete;
385
- const searchInput = this.shadowRoot.querySelector('.search input') as HTMLInputElement;
385
+ const searchInput = this.shadowRoot!.querySelector('.search input') as HTMLInputElement;
386
386
  if (searchInput) {
387
387
  searchInput.focus();
388
388
  }
@@ -455,7 +455,7 @@ export class DeesInputDropdown extends DeesInputBase<DeesInputDropdown> {
455
455
  }
456
456
  }
457
457
 
458
- public getValue(): { option: string; key: string; payload?: any } {
458
+ public getValue(): { option: string; key: string; payload?: any } | null {
459
459
  return this.selectedOption;
460
460
  }
461
461
 
@@ -48,7 +48,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
48
48
  accessor maxFiles: number = 0; // 0 means no limit
49
49
 
50
50
  @property({ type: String, reflect: true })
51
- accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;
51
+ accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' | null = null;
52
52
 
53
53
  accessor validationMessage: string = '';
54
54
 
@@ -266,7 +266,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
266
266
  return;
267
267
  }
268
268
  ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {
269
- this.dropArea!.addEventListener(eventName, this.handleDragEvent);
269
+ this.dropArea!.addEventListener(eventName, this.handleDragEvent as unknown as EventListener);
270
270
  });
271
271
  }
272
272
 
@@ -275,7 +275,7 @@ export class DeesInputFileupload extends DeesInputBase<DeesInputFileupload> {
275
275
  return;
276
276
  }
277
277
  ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((eventName) => {
278
- this.dropArea!.removeEventListener(eventName, this.handleDragEvent);
278
+ this.dropArea!.removeEventListener(eventName, this.handleDragEvent as unknown as EventListener);
279
279
  });
280
280
  }
281
281
 
@@ -60,7 +60,7 @@ export class DeesInputIban extends DeesInputBase<DeesInputIban> {
60
60
 
61
61
  public firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
62
62
  super.firstUpdated(_changedProperties);
63
- const deesInputText = this.shadowRoot.querySelector('dees-input-text') as any;
63
+ const deesInputText = this.shadowRoot!.querySelector('dees-input-text') as any;
64
64
  if (deesInputText && deesInputText.changeSubject) {
65
65
  deesInputText.changeSubject.subscribe(() => {
66
66
  this.changeSubject.next(this);
@@ -81,8 +81,10 @@ export class DeesInputIban extends DeesInputBase<DeesInputIban> {
81
81
  }
82
82
  }
83
83
  this.enteredIbanIsValid = ibantools.isValidIBAN(this.enteredString.replace(/ /g, ''));
84
- const deesInputText = this.shadowRoot.querySelector('dees-input-text');
85
- deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;
84
+ const deesInputText = this.shadowRoot!.querySelector('dees-input-text') as any;
85
+ if (deesInputText) {
86
+ deesInputText.validationText = `IBAN is valid: ${this.enteredIbanIsValid}`;
87
+ }
86
88
  }
87
89
 
88
90
  public getValue(): string {
@@ -211,9 +211,9 @@ export class DeesInputMultitoggle extends DeesInputBase<DeesInputMultitoggle> {
211
211
  private indicatorInitialized = false;
212
212
 
213
213
  public async setIndicator() {
214
- const indicator: HTMLDivElement = this.shadowRoot.querySelector('.indicator');
214
+ const indicator: HTMLDivElement | null = this.shadowRoot!.querySelector('.indicator');
215
215
  const selectedIndex = this.options.indexOf(this.selectedOption);
216
-
216
+
217
217
  // If no valid selection, hide indicator
218
218
  if (selectedIndex === -1 || !indicator) {
219
219
  if (indicator) {
@@ -221,8 +221,8 @@ export class DeesInputMultitoggle extends DeesInputBase<DeesInputMultitoggle> {
221
221
  }
222
222
  return;
223
223
  }
224
-
225
- const option: HTMLDivElement = this.shadowRoot.querySelector(
224
+
225
+ const option: HTMLDivElement | null = this.shadowRoot!.querySelector(
226
226
  `.option:nth-child(${selectedIndex + 2})`
227
227
  );
228
228
 
@@ -67,7 +67,7 @@ export class DeesInputPhone extends DeesInputBase<DeesInputPhone> {
67
67
  }
68
68
 
69
69
  // Subscribe to the inner input's changes
70
- const innerInput = this.shadowRoot.querySelector('dees-input-text') as any;
70
+ const innerInput = this.shadowRoot!.querySelector('dees-input-text') as any;
71
71
  if (innerInput && innerInput.changeSubject) {
72
72
  innerInput.changeSubject.subscribe(() => {
73
73
  this.changeSubject.next(this);
@@ -35,7 +35,7 @@ export class DeesInputRadiogroup extends DeesInputBase<string | object> {
35
35
  accessor direction: 'vertical' | 'horizontal' = 'vertical';
36
36
 
37
37
  @property({ type: String, reflect: true })
38
- accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' = null;
38
+ accessor validationState: 'valid' | 'invalid' | 'warn' | 'pending' | null = null;
39
39
 
40
40
  // Form compatibility
41
41
  public get value() {
@@ -346,15 +346,15 @@ export class DeesInputRadiogroup extends DeesInputBase<string | object> {
346
346
  }
347
347
 
348
348
  private focusNextOption() {
349
- const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));
350
- const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);
349
+ const radioCircles = Array.from(this.shadowRoot!.querySelectorAll('.radio-circle'));
350
+ const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot!.activeElement);
351
351
  const nextIndex = (currentIndex + 1) % radioCircles.length;
352
352
  (radioCircles[nextIndex] as HTMLElement).focus();
353
353
  }
354
354
 
355
355
  private focusPreviousOption() {
356
- const radioCircles = Array.from(this.shadowRoot.querySelectorAll('.radio-circle'));
357
- const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot.activeElement);
356
+ const radioCircles = Array.from(this.shadowRoot!.querySelectorAll('.radio-circle'));
357
+ const currentIndex = radioCircles.findIndex(el => el === this.shadowRoot!.activeElement);
358
358
  const prevIndex = currentIndex <= 0 ? radioCircles.length - 1 : currentIndex - 1;
359
359
  (radioCircles[prevIndex] as HTMLElement).focus();
360
360
  }
@@ -58,11 +58,11 @@ export class DeesInputRichtext extends DeesInputBase<string> {
58
58
  @state()
59
59
  accessor wordCount: number = 0;
60
60
 
61
- private editorElement: HTMLElement;
62
- private linkInputElement: HTMLInputElement;
61
+ private editorElement!: HTMLElement;
62
+ private linkInputElement!: HTMLInputElement;
63
63
  private tiptapBundle: ITiptapBundle | null = null;
64
64
 
65
- public editor: Editor;
65
+ public editor!: Editor;
66
66
 
67
67
  public static styles = richtextStyles;
68
68
 
@@ -235,8 +235,8 @@ export class DeesInputRichtext extends DeesInputBase<string> {
235
235
  // Load Tiptap from CDN
236
236
  this.tiptapBundle = await DeesServiceLibLoader.getInstance().loadTiptap();
237
237
 
238
- this.editorElement = this.shadowRoot.querySelector('.editor-content');
239
- this.linkInputElement = this.shadowRoot.querySelector('.link-input input');
238
+ this.editorElement = this.shadowRoot!.querySelector('.editor-content')!;
239
+ this.linkInputElement = this.shadowRoot!.querySelector('.link-input input')!;
240
240
  this.initializeEditor();
241
241
  }
242
242
 
@@ -73,9 +73,9 @@ export const demoFunc = () => html`
73
73
  const inputs = elementArg.querySelectorAll('dees-input-text');
74
74
 
75
75
  inputs.forEach((input: DeesInputText) => {
76
- input.addEventListener('changeSubject', (event: CustomEvent) => {
76
+ input.addEventListener('changeSubject', ((event: CustomEvent) => {
77
77
  console.log(`Input "${input.label}" changed to:`, input.getValue());
78
- });
78
+ }) as EventListener);
79
79
 
80
80
  input.addEventListener('blur', () => {
81
81
  console.log(`Input "${input.label}" lost focus`);
@@ -271,7 +271,8 @@ export const demoFunc = () => html`
271
271
  // Track password visibility toggles
272
272
  const passwordInputs = elementArg.querySelectorAll('dees-input-text[isPasswordBool]');
273
273
 
274
- passwordInputs.forEach((input: DeesInputText) => {
274
+ passwordInputs.forEach((_input) => {
275
+ const input = _input as DeesInputText;
275
276
  // Monitor for toggle button clicks within shadow DOM
276
277
  const checkToggle = () => {
277
278
  const inputEl = input.shadowRoot?.querySelector('input');
@@ -316,10 +317,10 @@ export const demoFunc = () => html`
316
317
 
317
318
  if (dynamicInput && output) {
318
319
  // Update output on every change
319
- dynamicInput.addEventListener('changeSubject', (event: CustomEvent) => {
320
+ dynamicInput.addEventListener('changeSubject', ((event: CustomEvent) => {
320
321
  const value = (event.detail as DeesInputText).getValue();
321
322
  output.textContent = `Current value: "${value}"`;
322
- });
323
+ }) as EventListener);
323
324
 
324
325
  // Also track focus/blur events
325
326
  dynamicInput.addEventListener('focus', () => {
@@ -47,7 +47,7 @@ export class DeesInputText extends DeesInputBase {
47
47
  type: Boolean,
48
48
  reflect: true,
49
49
  })
50
- accessor validationState: 'valid' | 'warn' | 'invalid';
50
+ accessor validationState!: 'valid' | 'warn' | 'invalid';
51
51
 
52
52
  @property({
53
53
  reflect: true,
@@ -55,7 +55,7 @@ export class DeesInputText extends DeesInputBase {
55
55
  accessor validationText: string = '';
56
56
 
57
57
  @property({})
58
- accessor validationFunction: (value: string) => boolean;
58
+ accessor validationFunction!: (value: string) => boolean;
59
59
 
60
60
  public static styles = [
61
61
  themeDefaultStyles,
@@ -274,12 +274,12 @@ export class DeesInputText extends DeesInputBase {
274
274
  }
275
275
 
276
276
  public async focus() {
277
- const textInput = this.shadowRoot.querySelector('input');
278
- textInput.focus();
277
+ const textInput = this.shadowRoot!.querySelector('input');
278
+ textInput!.focus();
279
279
  }
280
280
 
281
281
  public async blur() {
282
- const textInput = this.shadowRoot.querySelector('input');
283
- textInput.blur();
282
+ const textInput = this.shadowRoot!.querySelector('input');
283
+ textInput!.blur();
284
284
  }
285
285
  }
@@ -12,17 +12,19 @@ export const demoFunc = () => html`
12
12
 
13
13
  if (toggleAllOnBtn && toggleAllOffBtn) {
14
14
  toggleAllOnBtn.addEventListener('click', () => {
15
- featureToggles.forEach((toggle: DeesInputToggle) => {
16
- if (!toggle.disabled && !toggle.required) {
17
- toggle.value = true;
15
+ featureToggles.forEach((toggle) => {
16
+ const t = toggle as unknown as DeesInputToggle;
17
+ if (!t.disabled && !t.required) {
18
+ t.value = true;
18
19
  }
19
20
  });
20
21
  });
21
22
 
22
23
  toggleAllOffBtn.addEventListener('click', () => {
23
- featureToggles.forEach((toggle: DeesInputToggle) => {
24
- if (!toggle.disabled && !toggle.required) {
25
- toggle.value = false;
24
+ featureToggles.forEach((toggle) => {
25
+ const t = toggle as unknown as DeesInputToggle;
26
+ if (!t.disabled && !t.required) {
27
+ t.value = false;
26
28
  }
27
29
  });
28
30
  });
@@ -280,10 +282,10 @@ export const demoFunc = () => html`
280
282
  <dees-input-toggle
281
283
  .label=${'Airplane mode'}
282
284
  .value=${false}
283
- @newValue=${(event: CustomEvent) => {
285
+ @newValue=${(event: Event) => {
284
286
  const output = document.querySelector('#airplane-output');
285
287
  if (output) {
286
- output.textContent = `Airplane mode: ${event.detail ? 'ON' : 'OFF'}`;
288
+ output.textContent = `Airplane mode: ${(event as CustomEvent).detail ? 'ON' : 'OFF'}`;
287
289
  }
288
290
  }}
289
291
  ></dees-input-toggle>
@@ -291,10 +293,10 @@ export const demoFunc = () => html`
291
293
  <dees-input-toggle
292
294
  .label=${'Do not disturb'}
293
295
  .value=${false}
294
- @newValue=${(event: CustomEvent) => {
296
+ @newValue=${(event: Event) => {
295
297
  const output = document.querySelector('#dnd-output');
296
298
  if (output) {
297
- output.textContent = `Do not disturb: ${event.detail ? 'ENABLED' : 'DISABLED'}`;
299
+ output.textContent = `Do not disturb: ${(event as CustomEvent).detail ? 'ENABLED' : 'DISABLED'}`;
298
300
  }
299
301
  }}
300
302
  ></dees-input-toggle>
@@ -156,7 +156,7 @@ export class DeesInputTypelist extends DeesInputBase<DeesInputTypelist> {
156
156
  <dees-label .label=${this.label} .description=${this.description}></dees-label>
157
157
  <div class="mainbox">
158
158
  <div class="tags" @click=${() => {
159
- this.shadowRoot.querySelector('input').focus();
159
+ this.shadowRoot!.querySelector('input')!.focus();
160
160
  }}>
161
161
  ${this.value.length === 0
162
162
  ? html`<div class="notags">No tags yet</div>`
@@ -200,15 +200,16 @@ export class HeadingBlockHandler extends BaseBlockHandler {
200
200
  const wysiwygBlock = (headingBlock.getRootNode() as ShadowRoot).host as any;
201
201
  if (wysiwygBlock) {
202
202
  const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;
203
+ const self = this;
203
204
  (wysiwygBlock as any).disconnectedCallback = async function() {
204
- if (this.selectionHandler) {
205
- document.removeEventListener('selectionchange', this.selectionHandler);
206
- this.selectionHandler = null;
205
+ if (self.selectionHandler) {
206
+ document.removeEventListener('selectionchange', self.selectionHandler);
207
+ self.selectionHandler = null;
207
208
  }
208
209
  if (originalDisconnectedCallback) {
209
210
  await originalDisconnectedCallback.call(wysiwygBlock);
210
211
  }
211
- }.bind(this);
212
+ };
212
213
  }
213
214
  }
214
215
 
@@ -213,15 +213,16 @@ export class ListBlockHandler extends BaseBlockHandler {
213
213
  const wysiwygBlock = (listBlock.getRootNode() as ShadowRoot).host as any;
214
214
  if (wysiwygBlock) {
215
215
  const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;
216
+ const self = this;
216
217
  (wysiwygBlock as any).disconnectedCallback = async function() {
217
- if (this.selectionHandler) {
218
- document.removeEventListener('selectionchange', this.selectionHandler);
219
- this.selectionHandler = null;
218
+ if (self.selectionHandler) {
219
+ document.removeEventListener('selectionchange', self.selectionHandler);
220
+ self.selectionHandler = null;
220
221
  }
221
222
  if (originalDisconnectedCallback) {
222
223
  await originalDisconnectedCallback.call(wysiwygBlock);
223
224
  }
224
- }.bind(this);
225
+ };
225
226
  }
226
227
  }
227
228
 
@@ -193,15 +193,16 @@ export class ParagraphBlockHandler extends BaseBlockHandler {
193
193
  const wysiwygBlock = element.closest('dees-wysiwyg-block');
194
194
  if (wysiwygBlock) {
195
195
  const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;
196
+ const self = this;
196
197
  (wysiwygBlock as any).disconnectedCallback = async function() {
197
- if (this.selectionHandler) {
198
- document.removeEventListener('selectionchange', this.selectionHandler);
199
- this.selectionHandler = null;
198
+ if (self.selectionHandler) {
199
+ document.removeEventListener('selectionchange', self.selectionHandler);
200
+ self.selectionHandler = null;
200
201
  }
201
202
  if (originalDisconnectedCallback) {
202
203
  await originalDisconnectedCallback.call(wysiwygBlock);
203
204
  }
204
- }.bind(this);
205
+ };
205
206
  }
206
207
  }
207
208
 
@@ -192,15 +192,16 @@ export class QuoteBlockHandler extends BaseBlockHandler {
192
192
  const wysiwygBlock = (quoteBlock.getRootNode() as ShadowRoot).host as any;
193
193
  if (wysiwygBlock) {
194
194
  const originalDisconnectedCallback = (wysiwygBlock as any).disconnectedCallback;
195
+ const self = this;
195
196
  (wysiwygBlock as any).disconnectedCallback = async function() {
196
- if (this.selectionHandler) {
197
- document.removeEventListener('selectionchange', this.selectionHandler);
198
- this.selectionHandler = null;
197
+ if (self.selectionHandler) {
198
+ document.removeEventListener('selectionchange', self.selectionHandler);
199
+ self.selectionHandler = null;
199
200
  }
200
201
  if (originalDisconnectedCallback) {
201
202
  await originalDisconnectedCallback.call(wysiwygBlock);
202
203
  }
203
- }.bind(this);
204
+ };
204
205
  }
205
206
  }
206
207