x4js 2.0.18 → 2.0.21

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 (201) hide show
  1. package/README.md +1 -0
  2. package/lib/cjs/x4.css +1 -1
  3. package/lib/cjs/x4.js +2 -2
  4. package/lib/esm/x4.css +1 -1
  5. package/lib/esm/x4.mjs +2 -2
  6. package/lib/styles/x4.css +1 -1
  7. package/lib/types/x4js.d.ts +92 -77
  8. package/package.json +1 -1
  9. package/src/components/boxes/boxes.ts +35 -3
  10. package/src/components/breadcrumb/breadcrumb.ts +4 -4
  11. package/src/components/btngroup/btngroup.ts +4 -4
  12. package/src/components/button/button.ts +2 -2
  13. package/src/components/calendar/calendar.ts +1 -1
  14. package/src/components/canvas/canvas.ts +2 -2
  15. package/src/components/checkbox/checkbox.ts +4 -4
  16. package/src/components/colorinput/colorinput.ts +3 -3
  17. package/src/components/combobox/combobox.module.scss +13 -0
  18. package/src/components/combobox/combobox.ts +10 -3
  19. package/src/components/dialog/dialog.ts +7 -7
  20. package/src/components/form/form.ts +5 -5
  21. package/src/components/gridview/gridview.ts +12 -9
  22. package/src/components/header/header.module.scss +2 -1
  23. package/src/components/header/header.ts +22 -10
  24. package/src/components/icon/icon.module.scss +1 -0
  25. package/src/components/icon/icon.ts +1 -1
  26. package/src/components/image/image.ts +3 -3
  27. package/src/components/input/input.ts +2 -2
  28. package/src/components/keyboard/keyboard.ts +5 -5
  29. package/src/components/label/label.module.scss +6 -1
  30. package/src/components/label/label.ts +1 -1
  31. package/src/components/listbox/listbox.module.scss +35 -31
  32. package/src/components/listbox/listbox.ts +53 -15
  33. package/src/components/messages/messages.ts +15 -1
  34. package/src/components/notification/notification.ts +8 -8
  35. package/src/components/popup/popup.ts +14 -3
  36. package/src/components/progress/progress.ts +1 -1
  37. package/src/components/propgrid/propgrid.ts +5 -3
  38. package/src/components/radio/radio.ts +2 -2
  39. package/src/components/rating/rating.ts +6 -6
  40. package/src/components/select/select.ts +1 -1
  41. package/src/components/sizers/sizer.ts +5 -5
  42. package/src/components/slider/slider.ts +3 -3
  43. package/src/components/switch/switch.ts +3 -3
  44. package/src/components/tabs/tabs.module.scss +2 -2
  45. package/src/components/tabs/tabs.ts +29 -5
  46. package/src/components/textarea/textarea.ts +1 -1
  47. package/src/components/textedit/textedit.ts +2 -2
  48. package/src/components/tickline/tickline.ts +1 -1
  49. package/src/components/tooltips/tooltips.ts +2 -2
  50. package/src/components/treeview/treeview.module.scss +9 -1
  51. package/src/components/treeview/treeview.ts +53 -14
  52. package/src/components/viewport/viewport.ts +1 -1
  53. package/src/core/component.ts +46 -9
  54. package/src/core/core_application.ts +3 -3
  55. package/src/core/core_data.ts +12 -12
  56. package/src/core/core_element.ts +1 -1
  57. package/src/core/core_react.ts +2 -2
  58. package/src/core/core_router.ts +2 -2
  59. package/src/core/core_state.ts +1 -1
  60. package/src/core/core_styles.ts +1 -1
  61. package/src/core/core_tools.ts +2 -0
  62. package/lib/src/components/base.scss +0 -25
  63. package/lib/src/components/boxes/boxes.module.scss +0 -54
  64. package/lib/src/components/boxes/boxes.ts +0 -370
  65. package/lib/src/components/breadcrumb/breadcrumb.scss +0 -56
  66. package/lib/src/components/breadcrumb/breadcrumb.ts +0 -93
  67. package/lib/src/components/breadcrumb/chevron-right.svg +0 -1
  68. package/lib/src/components/btngroup/btngroup.module.scss +0 -41
  69. package/lib/src/components/btngroup/btngroup.ts +0 -153
  70. package/lib/src/components/button/button.module.scss +0 -173
  71. package/lib/src/components/button/button.ts +0 -185
  72. package/lib/src/components/calendar/calendar-check-sharp-light.svg +0 -1
  73. package/lib/src/components/calendar/calendar.module.scss +0 -163
  74. package/lib/src/components/calendar/calendar.ts +0 -327
  75. package/lib/src/components/calendar/chevron-left-sharp-light.svg +0 -1
  76. package/lib/src/components/calendar/chevron-right-sharp-light.svg +0 -1
  77. package/lib/src/components/canvas/canvas.module.scss +0 -25
  78. package/lib/src/components/canvas/canvas.ts +0 -189
  79. package/lib/src/components/canvas/canvas_ex.ts +0 -276
  80. package/lib/src/components/checkbox/check.svg +0 -4
  81. package/lib/src/components/checkbox/checkbox.module.scss +0 -142
  82. package/lib/src/components/checkbox/checkbox.ts +0 -140
  83. package/lib/src/components/colorinput/colorinput.module.scss +0 -65
  84. package/lib/src/components/colorinput/colorinput.ts +0 -91
  85. package/lib/src/components/colorinput/crosshairs-simple-sharp-light.svg +0 -1
  86. package/lib/src/components/colorpicker/colorpicker.module.scss +0 -133
  87. package/lib/src/components/colorpicker/colorpicker.ts +0 -482
  88. package/lib/src/components/combobox/combobox.module.scss +0 -133
  89. package/lib/src/components/combobox/combobox.ts +0 -275
  90. package/lib/src/components/combobox/updown.svg +0 -4
  91. package/lib/src/components/components.ts +0 -42
  92. package/lib/src/components/dialog/dialog.module.scss +0 -104
  93. package/lib/src/components/dialog/dialog.ts +0 -229
  94. package/lib/src/components/dialog/xmark-sharp-light.svg +0 -1
  95. package/lib/src/components/filedrop/cloud-arrow-up.svg +0 -1
  96. package/lib/src/components/filedrop/filedrop.module.scss +0 -70
  97. package/lib/src/components/filedrop/filedrop.ts +0 -131
  98. package/lib/src/components/form/form.module.scss +0 -38
  99. package/lib/src/components/form/form.ts +0 -172
  100. package/lib/src/components/gridview/arrow-down-light.svg +0 -1
  101. package/lib/src/components/gridview/arrow-up-light.svg +0 -1
  102. package/lib/src/components/gridview/gridview.module.scss +0 -324
  103. package/lib/src/components/gridview/gridview.ts +0 -1175
  104. package/lib/src/components/header/header.module.scss +0 -40
  105. package/lib/src/components/header/header.ts +0 -130
  106. package/lib/src/components/icon/icon.module.scss +0 -31
  107. package/lib/src/components/icon/icon.ts +0 -137
  108. package/lib/src/components/image/image.module.scss +0 -28
  109. package/lib/src/components/image/image.ts +0 -168
  110. package/lib/src/components/input/input.module.scss +0 -74
  111. package/lib/src/components/input/input.ts +0 -422
  112. package/lib/src/components/keyboard/arrow-up.svg +0 -1
  113. package/lib/src/components/keyboard/delete-left.svg +0 -1
  114. package/lib/src/components/keyboard/eye-slash.svg +0 -1
  115. package/lib/src/components/keyboard/keyboard.module.scss +0 -134
  116. package/lib/src/components/keyboard/keyboard.ts +0 -526
  117. package/lib/src/components/label/label.module.scss +0 -76
  118. package/lib/src/components/label/label.ts +0 -97
  119. package/lib/src/components/link/link.ts +0 -81
  120. package/lib/src/components/listbox/listbox.module.scss +0 -161
  121. package/lib/src/components/listbox/listbox.ts +0 -539
  122. package/lib/src/components/menu/caret-right-solid.svg +0 -1
  123. package/lib/src/components/menu/menu.module.scss +0 -117
  124. package/lib/src/components/menu/menu.ts +0 -174
  125. package/lib/src/components/messages/circle-exclamation.svg +0 -1
  126. package/lib/src/components/messages/messages.module.scss +0 -92
  127. package/lib/src/components/messages/messages.ts +0 -215
  128. package/lib/src/components/messages/pen-field.svg +0 -1
  129. package/lib/src/components/normalize.scss +0 -391
  130. package/lib/src/components/notification/circle-check-solid.svg +0 -1
  131. package/lib/src/components/notification/circle-exclamation-solid.svg +0 -1
  132. package/lib/src/components/notification/circle-notch-light.svg +0 -1
  133. package/lib/src/components/notification/notification.module.scss +0 -84
  134. package/lib/src/components/notification/notification.ts +0 -107
  135. package/lib/src/components/notification/xmark-sharp-light.svg +0 -1
  136. package/lib/src/components/panel/panel.module.scss +0 -60
  137. package/lib/src/components/panel/panel.ts +0 -58
  138. package/lib/src/components/popup/popup.module.scss +0 -51
  139. package/lib/src/components/popup/popup.ts +0 -442
  140. package/lib/src/components/progress/progress.module.scss +0 -57
  141. package/lib/src/components/progress/progress.ts +0 -44
  142. package/lib/src/components/propgrid/folder-closed.svg +0 -1
  143. package/lib/src/components/propgrid/folder-open.svg +0 -1
  144. package/lib/src/components/propgrid/progrid.module.scss +0 -112
  145. package/lib/src/components/propgrid/propgrid.ts +0 -288
  146. package/lib/src/components/propgrid/updown.svg +0 -4
  147. package/lib/src/components/radio/radio.module.scss +0 -147
  148. package/lib/src/components/radio/radio.svg +0 -4
  149. package/lib/src/components/radio/radio.ts +0 -142
  150. package/lib/src/components/rating/rating.module.scss +0 -23
  151. package/lib/src/components/rating/rating.ts +0 -131
  152. package/lib/src/components/rating/star-sharp-light.svg +0 -1
  153. package/lib/src/components/rating/star-sharp-solid.svg +0 -1
  154. package/lib/src/components/select/select.module.scss +0 -9
  155. package/lib/src/components/select/select.ts +0 -134
  156. package/lib/src/components/shared.scss +0 -137
  157. package/lib/src/components/sizers/sizer.module.scss +0 -90
  158. package/lib/src/components/sizers/sizer.ts +0 -132
  159. package/lib/src/components/slider/slider.module.scss +0 -118
  160. package/lib/src/components/slider/slider.ts +0 -198
  161. package/lib/src/components/switch/switch.module.scss +0 -127
  162. package/lib/src/components/switch/switch.ts +0 -62
  163. package/lib/src/components/tabs/tabs.module.scss +0 -45
  164. package/lib/src/components/tabs/tabs.ts +0 -205
  165. package/lib/src/components/textarea/textarea.module.scss +0 -63
  166. package/lib/src/components/textarea/textarea.ts +0 -125
  167. package/lib/src/components/textedit/textedit.module.scss +0 -116
  168. package/lib/src/components/textedit/textedit.ts +0 -115
  169. package/lib/src/components/themes.scss +0 -88
  170. package/lib/src/components/tickline/tickline.module.scss +0 -26
  171. package/lib/src/components/tickline/tickline.ts +0 -82
  172. package/lib/src/components/tooltips/circle-info-sharp-light.svg +0 -1
  173. package/lib/src/components/tooltips/comments-question.svg +0 -1
  174. package/lib/src/components/tooltips/tooltips.scss +0 -72
  175. package/lib/src/components/tooltips/tooltips.ts +0 -109
  176. package/lib/src/components/treeview/chevron-down-light.svg +0 -1
  177. package/lib/src/components/treeview/treeview.module.scss +0 -185
  178. package/lib/src/components/treeview/treeview.ts +0 -445
  179. package/lib/src/components/viewport/viewport.module.scss +0 -32
  180. package/lib/src/components/viewport/viewport.ts +0 -41
  181. package/lib/src/core/component.ts +0 -1066
  182. package/lib/src/core/core_application.ts +0 -265
  183. package/lib/src/core/core_colors.ts +0 -250
  184. package/lib/src/core/core_data.ts +0 -1310
  185. package/lib/src/core/core_dom.ts +0 -471
  186. package/lib/src/core/core_dragdrop.ts +0 -201
  187. package/lib/src/core/core_element.ts +0 -115
  188. package/lib/src/core/core_events.ts +0 -177
  189. package/lib/src/core/core_i18n.ts +0 -393
  190. package/lib/src/core/core_react.ts +0 -79
  191. package/lib/src/core/core_router.ts +0 -237
  192. package/lib/src/core/core_state.ts +0 -62
  193. package/lib/src/core/core_styles.ts +0 -214
  194. package/lib/src/core/core_svg.ts +0 -712
  195. package/lib/src/core/core_tools.ts +0 -906
  196. package/lib/src/types/scss.d.ts +0 -4
  197. package/lib/src/types/svg.d.ts +0 -1
  198. package/lib/src/types/x4react.d.ts +0 -9
  199. package/lib/src/x4.scss +0 -19
  200. package/lib/src/x4.ts +0 -35
  201. package/lib/src/x4tsx.d.ts +0 -25
@@ -14,12 +14,13 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { class_ns } from '@core/core_tools';
18
- import { Component, ComponentEvent, ComponentEvents, ComponentProps, EvSelectionChange, componentFromDOM } from '../../core/component';
17
+ import { class_ns } from '../../core/core_tools';
18
+ import { EventCallback } from '../../core/core_events';
19
+ import { Component, ComponentEvent, ComponentEvents, ComponentProps, EvClick, EvDblClick, EvSelectionChange, componentFromDOM } from '../../core/component';
19
20
 
20
21
  import { ScrollView, Viewport } from '../viewport/viewport';
21
22
  import { Label } from '../label/label';
22
- import { ListboxID, ListItem, kbNav } from '../listbox/listbox';
23
+ import { ListboxID, ListItem } from '../listbox/listbox';
23
24
  import { Box, BoxProps, HBox, VBox } from '../boxes/boxes';
24
25
  import { Icon } from '../icon/icon';
25
26
 
@@ -52,14 +53,15 @@ export interface TreeItem extends ListItem {
52
53
  interface TreeviewProps extends Omit<ComponentProps,"content"> {
53
54
  items: TreeItem[];
54
55
  footer?: Component;
55
- }
56
-
57
- interface ChangeEvent extends ComponentEvent {
58
- selection: TreeItem;
56
+ selectionChange?: EventCallback<EvSelectionChange>;
57
+ dblClick?: EventCallback<EvDblClick>;
58
+ click?: EventCallback<EvClick>;
59
59
  }
60
60
 
61
61
  interface TreeviewEvents extends ComponentEvents {
62
62
  selectionChange?: EvSelectionChange;
63
+ dblClick?: EvDblClick;
64
+ click?: EvClick;
63
65
  }
64
66
 
65
67
  /**
@@ -85,7 +87,11 @@ class CTreeViewItem extends Box {
85
87
  new Label( { tag: "span", cls: "", text: item.text, icon: item.iconId } ),
86
88
  ]});
87
89
 
88
- this._label.setData( "id", item.id+"" );
90
+ if( item.cls ) {
91
+ this._label.addClass( item.cls );
92
+ }
93
+
94
+ this._label.setInternalData( "id", item.id );
89
95
 
90
96
  if( item.children ) {
91
97
  this. _childs = new VBox( { cls: "body" } );
@@ -159,6 +165,8 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
159
165
  constructor( props: TreeviewProps ) {
160
166
  super( props );
161
167
 
168
+ this.mapPropEvents( props, "selectionChange", "dblClick", "click" );
169
+
162
170
  const scroller = new ScrollView( { cls: "body" } );
163
171
  this._view = scroller.getViewport( );
164
172
 
@@ -173,7 +181,8 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
173
181
 
174
182
  this.setAttribute( "tabindex", 0 );
175
183
  this.setDOMEvents( {
176
- click: ( ev ) => this._onclick( ev ),
184
+ click: ( ev ) => this._on_click( ev ),
185
+ dblclick: (e) => this._on_click(e),
177
186
  keydown: ( ev ) => this._onkey( ev ),
178
187
  });
179
188
 
@@ -199,14 +208,27 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
199
208
  }
200
209
  }
201
210
 
202
- private _onclick( ev: UIEvent ) {
211
+ private _on_click( ev: UIEvent ) {
203
212
  let target = ev.target as HTMLElement;
213
+
204
214
  while( target && target!=this.dom ) {
205
215
  const c = componentFromDOM( target );
206
216
 
207
217
  if( c && c.hasClass("item") ) {
208
- const id = c.getData( "id" );
209
- this._selectItem( id, c );
218
+ const id = c.getInternalData( "id" );
219
+
220
+ const fev: ComponentEvent = { context:id };
221
+ if (ev.type == 'click') {
222
+ this.fire('click', fev );
223
+ }
224
+ else {
225
+ this.fire('dblClick', fev );
226
+ }
227
+
228
+ if (!fev.defaultPrevented) {
229
+ this._selectItem( id, c );
230
+ }
231
+
210
232
  return;
211
233
  }
212
234
 
@@ -413,7 +435,7 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
413
435
  }
414
436
 
415
437
  const itm = this._findItem( id );
416
- this.fire( "selectionChange", { selection: itm, empty: false } );
438
+ this.fire( "selectionChange", { selection: [itm], empty: false } );
417
439
  }
418
440
 
419
441
  private _findItem( id: ListboxID ) {
@@ -432,7 +454,7 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
432
454
  }
433
455
 
434
456
  this._selection = undefined;
435
- this.fire( "selectionChange", { selection: undefined, empty: true } );
457
+ this.fire( "selectionChange", { selection: [], empty: true } );
436
458
  }
437
459
 
438
460
  /**
@@ -442,4 +464,21 @@ export class Treeview extends Component<TreeviewProps,TreeviewEvents> {
442
464
  getSelection( ) {
443
465
  return this._selection;
444
466
  }
467
+
468
+ /**
469
+ *
470
+ */
471
+
472
+ selectItem( id: ListboxID ) {
473
+ const itm = this._findItem( id );
474
+ if( itm ) {
475
+ this.visitChildren( ( c ) => {
476
+ const cid = c.getInternalData( "id" );
477
+ if( cid == id ) {
478
+ this._selectItem( id, c );
479
+ return true;
480
+ }
481
+ } );
482
+ }
483
+ }
445
484
  }
@@ -14,7 +14,7 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { class_ns } from '@core/core_tools.js';
17
+ import { class_ns } from '../../core/core_tools';
18
18
  import { Component, ComponentProps } from "../../core/component"
19
19
 
20
20
  import "./viewport.module.scss"
@@ -19,6 +19,7 @@ import { CoreElement } from './core_element';
19
19
  import { ariaValues, unitless } from './core_styles';
20
20
  import { CoreEvent, EventMap } from './core_events';
21
21
  import { addEvent, DOMEventHandler, GlobalDOMEvents } from './core_dom';
22
+ import { Application, EvMessage } from './core_application';
22
23
 
23
24
  interface RefType<T extends Component> {
24
25
  dom: T;
@@ -92,8 +93,8 @@ export interface ComponentProps {
92
93
  // shortcuts
93
94
  width?: string | number;
94
95
  height?: string | number;
95
- disabled?: true,
96
- hidden?: true,
96
+ disabled?: boolean,
97
+ hidden?: boolean,
97
98
  flex?: boolean | number;
98
99
 
99
100
  tooltip?: string;
@@ -106,7 +107,7 @@ export interface ComponentProps {
106
107
  // because all memebers here are optional.
107
108
  // this allow TS to recongnize derived props as ComponentProps
108
109
  //[key: string]: any;
109
- };
110
+ }
110
111
 
111
112
 
112
113
  /**
@@ -219,6 +220,16 @@ export class Component<P extends ComponentProps = ComponentProps, E extends Comp
219
220
  }
220
221
 
221
222
 
223
+ onGlobalEvent( cb: ( ev: EvMessage ) => void ) {
224
+
225
+ const off = Application.instance().on( "global", ev => {
226
+ cb( ev );
227
+ })
228
+
229
+ this.addDOMEvent( "removed", ( ) => off.off() );
230
+ }
231
+
232
+
222
233
  // :: CLASSES ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
223
234
 
224
235
  /**
@@ -328,7 +339,7 @@ export class Component<P extends ComponentProps = ComponentProps, E extends Comp
328
339
  */
329
340
 
330
341
  setAttribute( name: string, value: string | number | boolean ) {
331
- if( value===null || value===undefined ) {
342
+ if( value===null || value===undefined || value===false ) {
332
343
  this.dom.removeAttribute( name );
333
344
  }
334
345
  else {
@@ -385,8 +396,8 @@ export class Component<P extends ComponentProps = ComponentProps, E extends Comp
385
396
  return this;
386
397
  }
387
398
 
388
- getInternalData( name: string|symbol ): any {
389
- return this.#store?.get(name);
399
+ getInternalData<T = any>( name: string|symbol ): T {
400
+ return this.#store?.get(name) as T;
390
401
  }
391
402
 
392
403
 
@@ -868,6 +879,33 @@ export class Component<P extends ComponentProps = ComponentProps, E extends Comp
868
879
  return children;
869
880
  }
870
881
 
882
+ /**
883
+ *
884
+ */
885
+
886
+ visitChildren( cb: ( el: Component ) => boolean ) {
887
+
888
+ const visit = ( p: Element ) => {
889
+ for( let d=p.firstElementChild; d; d=d.nextElementSibling ) {
890
+ const comp = componentFromDOM( d as Element );
891
+ if( comp ) {
892
+ if( cb( comp ) ) {
893
+ return true;
894
+ }
895
+ }
896
+
897
+ // avoid visit of svg elements
898
+ if( d.firstElementChild && d.tagName!="svg" && d.tagName!="SVG" ) {
899
+ if( visit( d ) ) {
900
+ return true;
901
+ }
902
+ }
903
+ }
904
+ }
905
+
906
+ visit( this.dom );
907
+ }
908
+
871
909
  /**
872
910
  *
873
911
  */
@@ -1022,11 +1060,10 @@ export interface EvFocus extends ComponentEvent {
1022
1060
  * value is the new selection or null
1023
1061
  */
1024
1062
 
1025
- interface ISelection {
1026
- }
1063
+ type ISelection = number | string | any;
1027
1064
 
1028
1065
  export interface EvSelectionChange extends ComponentEvent {
1029
- readonly selection: ISelection;
1066
+ readonly selection: ISelection[];
1030
1067
  readonly empty: boolean;
1031
1068
  }
1032
1069
 
@@ -14,10 +14,10 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { Component, componentFromDOM } from './component.js';
18
- import { CoreElement } from './core_element.js';
17
+ import { Component, componentFromDOM } from './component';
18
+ import { CoreElement } from './core_element';
19
19
  import { CoreEvent, EventMap } from './core_events';
20
- import { getFocusableElements, ITabHandler } from './core_tools.js';
20
+ import { getFocusableElements, ITabHandler } from './core_tools';
21
21
 
22
22
  const socket_sent = Symbol( 'socket' );
23
23
 
@@ -15,10 +15,10 @@
15
15
  **/
16
16
 
17
17
 
18
- import { EvChange } from '@core/component.js';
19
- import { CoreElement } from '@core/core_element.js';
20
- import { CoreEvent, EventCallback, EventMap, EventSource } from '@core/core_events.js';
21
- import { isArray, isString } from '@core/core_tools.js';
18
+ import { EvChange } from './component';
19
+ import { CoreElement } from './core_element';
20
+ import { CoreEvent, EventCallback, EventMap, EventSource } from './core_events';
21
+ import { isArray, isString } from './core_tools';
22
22
 
23
23
  export type DataRecordID = any;
24
24
  export type DataFieldValue = string | Date | number | boolean;
@@ -889,31 +889,31 @@ export class DataStore extends EventSource<DataStoreEventMap> {
889
889
  filterValue = filterValue.toUpperCase( );
890
890
  }
891
891
 
892
- function _lt( recval: string ) : boolean {
892
+ const _lt = ( recval: string ) : boolean => {
893
893
  return recval < filterValue;
894
894
  }
895
895
 
896
- function _le( recval: string ) : boolean {
896
+ const _le = ( recval: string ) : boolean => {
897
897
  return recval <= filterValue;
898
898
  }
899
899
 
900
- function _eq( recval: string ) : boolean {
900
+ const _eq = ( recval: string ) : boolean => {
901
901
  return recval == filterValue;
902
902
  }
903
903
 
904
- function _neq( recval: string ) : boolean {
904
+ const _neq = ( recval: string ) : boolean => {
905
905
  return recval != filterValue;
906
906
  }
907
907
 
908
- function _ge( recval: string ) : boolean {
908
+ const _ge = ( recval: string ) : boolean => {
909
909
  return recval >= filterValue;
910
910
  }
911
911
 
912
- function _gt( recval: string ) : boolean {
912
+ const _gt = ( recval: string ) : boolean => {
913
913
  return recval > filterValue;
914
914
  }
915
915
 
916
- function _re( recval: string ) : boolean {
916
+ const _re = ( recval: string ) : boolean => {
917
917
  filterRe.lastIndex = -1;
918
918
  return filterRe.test( recval );
919
919
  }
@@ -959,7 +959,7 @@ export class DataStore extends EventSource<DataStoreEventMap> {
959
959
  let keep = filterFn( field );
960
960
  if( keep ) {
961
961
  index[iidx++] = idx;
962
- };
962
+ }
963
963
  });
964
964
  }
965
965
  }
@@ -14,7 +14,7 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { EventMap, EventSource } from './core_events.js';
17
+ import { EventMap, EventSource } from './core_events';
18
18
 
19
19
  /**
20
20
  *
@@ -34,8 +34,8 @@
34
34
  *
35
35
  */
36
36
 
37
- import { Component } from './component.js';
38
- import { Constructor, isString } from './core_tools.js';
37
+ import { Component } from './component';
38
+ import { Constructor, isString } from './core_tools';
39
39
 
40
40
 
41
41
  /**
@@ -14,8 +14,8 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { EvChange, EvError } from './component.js';
18
- import { EventMap, EventSource } from './core_events.js';
17
+ import { EvChange, EvError } from './component';
18
+ import { EventMap, EventSource } from './core_events';
19
19
 
20
20
  type RouteHandler = ( params: any, path: string ) => void;
21
21
 
@@ -57,6 +57,6 @@ export class StateManager {
57
57
  current[parts[parts.length - 1]] = value;
58
58
 
59
59
  // Notify subscribers
60
- this._notifySubscribers(path, value);
60
+ //this._notifySubscribers(path, value);
61
61
  }
62
62
  }
@@ -14,7 +14,7 @@
14
14
  * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
15
  **/
16
16
 
17
- import { isString } from './core_tools.js';
17
+ import { isString } from './core_tools';
18
18
 
19
19
  export const unitless: Record<string,1> = {
20
20
  animationIterationCount: 1,
@@ -902,5 +902,7 @@ export enum kbNav {
902
902
  pgup,
903
903
  next,
904
904
  last,
905
+ left,
906
+ right,
905
907
  }
906
908
 
@@ -1,25 +0,0 @@
1
- /**
2
- * ___ ___ __
3
- * \ \/ / / _
4
- * \ / /_| |_
5
- * / \____ _|
6
- * /__/\__\ |_|
7
- *
8
- * @file base.scss
9
- * @author Etienne Cochard
10
- *
11
- * @copyright (c) 2024 R-libre ingenierie
12
- *
13
- * Use of this source code is governed by an MIT-style license
14
- * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
- **/
16
-
17
- @use "./shared.scss";
18
-
19
- .x4box {
20
- @extend .box;
21
- }
22
-
23
- .x4flex {
24
- @extend .flex;
25
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * ___ ___ __
3
- * \ \/ / / _
4
- * \ / /_| |_
5
- * / \____ _|
6
- * /__/\__\ |_|
7
- *
8
- * @file boxes.module.scss
9
- * @author Etienne Cochard
10
- *
11
- * @copyright (c) 2024 R-libre ingenierie
12
- *
13
- * Use of this source code is governed by an MIT-style license
14
- * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
- **/
16
-
17
- @use "../shared.scss";
18
-
19
- .x4hbox {
20
- @extend .hbox;
21
- &.align-start {
22
- align-items: start;
23
- }
24
- }
25
-
26
- .x4vbox {
27
- @extend .vbox;
28
- }
29
-
30
- .x4stackbox {
31
- display: flex;
32
-
33
- &>* {
34
- @extend .fit;
35
- position: relative !important;
36
- }
37
-
38
- &>*:not(.selected) {
39
- display: none;
40
- }
41
- }
42
-
43
- .x4gridbox {
44
- display: grid;
45
- }
46
-
47
- .x4masonrybox {
48
- display: grid;
49
- grid-gap: 10px;
50
- grid-template-columns: repeat(auto-fill, minmax(250px,1fr));
51
- grid-auto-rows: 10px;
52
-
53
- overflow: hidden;
54
- }