x4js 1.5.31 → 1.5.33

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/lib/esm/index.mjs CHANGED
@@ -1921,7 +1921,8 @@ var _Component = class extends BaseComponent {
1921
1921
  classes: {},
1922
1922
  dom_events: {},
1923
1923
  uid: _Component.__comp_guid++,
1924
- inrender: false
1924
+ inrender: false,
1925
+ created: false
1925
1926
  };
1926
1927
  if (this.m_props.cls) {
1927
1928
  this.addClass(this.m_props.cls);
@@ -2180,10 +2181,10 @@ var _Component = class extends BaseComponent {
2180
2181
  if (this.m_dom) {
2181
2182
  return this.m_dom.getAttribute(name);
2182
2183
  } else {
2183
- if (!this.m_props.attrs) {
2184
- return void 0;
2184
+ if (name == "id") {
2185
+ return this.m_props.id;
2185
2186
  }
2186
- return this.m_props.attrs[name];
2187
+ return this.m_props.attrs ? this.m_props.attrs[name] : void 0;
2187
2188
  }
2188
2189
  }
2189
2190
  /**
@@ -2414,7 +2415,7 @@ var _Component = class extends BaseComponent {
2414
2415
  for (let e in evt) {
2415
2416
  let handlers = evt[e];
2416
2417
  for (let h of handlers) {
2417
- this.createEvent(e, h);
2418
+ this._createEvent(e, h.listener, h.passive);
2418
2419
  }
2419
2420
  }
2420
2421
  }
@@ -2590,22 +2591,22 @@ var _Component = class extends BaseComponent {
2590
2591
  * this.setDomEvent( 'drag drop', this._handleDrag, this );
2591
2592
  * this.setDomEvent( 'dblclick', this._handleDblClick, this );
2592
2593
  */
2593
- setDomEvent(type, listener) {
2594
+ setDomEvent(type, listener, passive) {
2594
2595
  let _listener = listener;
2595
- this._setDomEvent(type, _listener);
2596
+ this._setDomEvent(type, _listener, passive);
2596
2597
  }
2597
- _setDomEvent(type, listener) {
2598
+ _setDomEvent(type, listener, passive) {
2598
2599
  if (!this.m_iprops.dom_events) {
2599
2600
  this.m_iprops.dom_events = {};
2600
2601
  }
2601
2602
  let listeners = this.m_iprops.dom_events[type];
2602
2603
  if (!listeners) {
2603
- listeners = this.m_iprops.dom_events[type] = [listener];
2604
+ listeners = this.m_iprops.dom_events[type] = [{ listener, passive }];
2604
2605
  } else {
2605
- listeners.push(listener);
2606
+ listeners.push({ listener, passive });
2606
2607
  }
2607
2608
  if (this.m_dom) {
2608
- this.createEvent(type, listener);
2609
+ this._createEvent(type, listener, passive);
2609
2610
  }
2610
2611
  }
2611
2612
  /**
@@ -2629,7 +2630,7 @@ var _Component = class extends BaseComponent {
2629
2630
  * @param name
2630
2631
  * @param handler
2631
2632
  */
2632
- createEvent(name, handler) {
2633
+ _createEvent(name, handler, passive) {
2633
2634
  let _dom = this.m_dom;
2634
2635
  let store = _dom[_x4_el_store];
2635
2636
  if (!store) {
@@ -2644,10 +2645,14 @@ var _Component = class extends BaseComponent {
2644
2645
  _dom["on" + name] = _Component._dispatchUnbubbleEvent;
2645
2646
  } else if (!_Component.__privateEvents[name]) {
2646
2647
  _Component.__privateEvents[name] = true;
2647
- if (passiveEvents[name]) {
2648
- x4document.addEventListener(name, _Component._dispatchEvent, { passive: false, capture: true });
2648
+ if (passive === void 0) {
2649
+ if (passiveEvents[name]) {
2650
+ x4document.addEventListener(name, _Component._dispatchEvent, { passive: false, capture: true });
2651
+ } else {
2652
+ x4document.addEventListener(name, _Component._dispatchEvent, true);
2653
+ }
2649
2654
  } else {
2650
- x4document.addEventListener(name, _Component._dispatchEvent, true);
2655
+ x4document.addEventListener(name, _Component._dispatchEvent, { passive, capture: passive ? true : false });
2651
2656
  }
2652
2657
  }
2653
2658
  if (name === "sizechange") {
@@ -4483,6 +4488,13 @@ var _Icon = class extends Component {
4483
4488
  url = url.replaceAll("\\", "");
4484
4489
  this._setSVG(url);
4485
4490
  return;
4491
+ }
4492
+ const reChar = /\s*font-char\s*\(\s*(.+)\s*\)\s*/gi;
4493
+ let match_char = reChar.exec(icon);
4494
+ if (match_char) {
4495
+ this.removeClass("@svg-icon");
4496
+ this.setContent(match_char[1], false);
4497
+ return;
4486
4498
  } else {
4487
4499
  console.error("deprecation error: invalid icon name");
4488
4500
  name = icon;
@@ -4794,7 +4806,7 @@ var MenuItem = class extends Component {
4794
4806
  }
4795
4807
  this.setTag("a");
4796
4808
  this.setContent([
4797
- icon < 0 ? null : new Icon({ icon }),
4809
+ icon ? null : new Icon({ icon }),
4798
4810
  new Label({ flex: 1, text }),
4799
4811
  popIco
4800
4812
  ]);
@@ -5517,13 +5529,14 @@ var Input = class extends Component {
5517
5529
  return this.getValue();
5518
5530
  }
5519
5531
  getValue() {
5532
+ const dom = this.dom;
5520
5533
  if (this.dom) {
5521
- this.m_props.value = this.dom.value;
5534
+ this.m_props.value = dom.value;
5522
5535
  }
5523
5536
  if (this.m_props.uppercase) {
5524
5537
  let upper = this.m_props.value.toUpperCase();
5525
- if (this.dom && upper != this.m_props.value) {
5526
- this.dom.value = upper;
5538
+ if (dom && upper != this.m_props.value) {
5539
+ dom.value = upper;
5527
5540
  }
5528
5541
  this.m_props.value = upper;
5529
5542
  }
@@ -5550,7 +5563,8 @@ var Input = class extends Component {
5550
5563
  if (type) {
5551
5564
  type = type.toLowerCase();
5552
5565
  }
5553
- let value, dom = this.dom;
5566
+ let value;
5567
+ const dom = this.dom;
5554
5568
  if (type === "file") {
5555
5569
  value = [];
5556
5570
  let files = dom.files;
@@ -5569,6 +5583,11 @@ var Input = class extends Component {
5569
5583
  }
5570
5584
  } else if (type === "date") {
5571
5585
  debugger;
5586
+ } else if (type == "number") {
5587
+ value = this.value;
5588
+ if (value.indexOf(",") >= 0) {
5589
+ value = value.replace(",", ".");
5590
+ }
5572
5591
  } else {
5573
5592
  value = this.value;
5574
5593
  }
@@ -5977,7 +5996,7 @@ var Calendar = class extends VLayout {
5977
5996
  } else if (type == "year") {
5978
5997
  let min = this.m_props.minDate?.getFullYear() ?? 1900;
5979
5998
  let max = this.m_props.maxDate?.getFullYear() ?? 2037;
5980
- for (let m = min; m < max; m++) {
5999
+ for (let m = max; m >= min; m--) {
5981
6000
  items.push(new MenuItem({
5982
6001
  text: "" + m,
5983
6002
  click: () => {
@@ -8103,32 +8122,23 @@ var DataProxy = class extends BaseComponent {
8103
8122
  constructor(props) {
8104
8123
  super(props);
8105
8124
  }
8106
- load(url) {
8125
+ async load(url) {
8107
8126
  if (url) {
8108
8127
  this.m_props.url = url;
8128
+ } else {
8129
+ url = this.m_props.url;
8109
8130
  }
8110
- this._refresh();
8111
- }
8112
- _refresh(delay = 0) {
8113
- const load = /* @__PURE__ */ __name(async () => {
8114
- let url = this.m_props.url;
8115
- if (this.m_props.params) {
8116
- url += "?" + this.m_props.params.join("&");
8117
- }
8118
- const r = await fetch(url);
8119
- if (r.ok) {
8120
- const raw = await r.json();
8121
- let json = raw;
8122
- if (this.m_props.solver) {
8123
- json = this.m_props.solver(json);
8124
- }
8125
- this.emit("change", EvChange(json, raw));
8131
+ if (this.m_props.params) {
8132
+ url += "?" + this.m_props.params.join("&");
8133
+ }
8134
+ const r = await fetch(url);
8135
+ if (r.ok) {
8136
+ const raw = await r.json();
8137
+ let json = raw;
8138
+ if (this.m_props.solver) {
8139
+ json = this.m_props.solver(json);
8126
8140
  }
8127
- }, "load");
8128
- if (delay) {
8129
- setTimeout(load, delay);
8130
- } else {
8131
- load();
8141
+ this.emit("change", EvChange(json, raw));
8132
8142
  }
8133
8143
  }
8134
8144
  };
@@ -8156,18 +8166,20 @@ var DataStore = class extends EventSource {
8156
8166
  this.setData(ev.value);
8157
8167
  } }
8158
8168
  });
8159
- this.m_proxy.load();
8169
+ if (props.autoload != false) {
8170
+ this.m_proxy.load();
8171
+ }
8160
8172
  }
8161
8173
  }
8162
8174
  /**
8163
8175
  *
8164
8176
  * @param records
8165
8177
  */
8166
- load(url) {
8167
- this.m_proxy.load(url);
8178
+ async load(url) {
8179
+ return this.m_proxy.load(url);
8168
8180
  }
8169
- reload() {
8170
- this.m_proxy.load();
8181
+ async reload() {
8182
+ return this.m_proxy.load();
8171
8183
  }
8172
8184
  /**
8173
8185
  * convert raw objects to real records from model
@@ -8621,7 +8633,6 @@ var DataView = class extends BaseComponent {
8621
8633
  *
8622
8634
  */
8623
8635
  forEach(cb) {
8624
- debugger;
8625
8636
  this.m_index.some((index) => {
8626
8637
  let rec = this.m_store.getByIndex(index);
8627
8638
  if (rec) {
@@ -14397,7 +14408,10 @@ var SideBarView = class extends CardView {
14397
14408
  this.m_sidebar.setContent(new VLayout({
14398
14409
  flex: 1,
14399
14410
  cls: "content",
14400
- content: tabs
14411
+ content: [
14412
+ this.m_props.logo,
14413
+ ...tabs
14414
+ ]
14401
14415
  }));
14402
14416
  this.setContent([
14403
14417
  this.m_sidebar,
@@ -14508,7 +14522,7 @@ var SVGItem = class {
14508
14522
  style(name, value) {
14509
14523
  if (value === void 0 || value === "" || value === void 0) {
14510
14524
  this.m_style.delete(name);
14511
- return;
14525
+ return this;
14512
14526
  }
14513
14527
  if (!_x4_unitless[name] && (isNumber(value) || reNumber2.test(value))) {
14514
14528
  value = value + "px";
@@ -14569,18 +14583,22 @@ var SVGItem = class {
14569
14583
  */
14570
14584
  transform(tr) {
14571
14585
  this.attr("transform", tr);
14586
+ return this;
14572
14587
  }
14573
14588
  /**
14574
14589
  *
14575
14590
  */
14576
14591
  rotate(deg, cx, cy) {
14577
14592
  this.transform(`rotate( ${deg} ${cx} ${cy} )`);
14593
+ return this;
14578
14594
  }
14579
14595
  translate(dx, dy) {
14580
14596
  this.transform(`translate( ${dx} ${dy} )`);
14597
+ return this;
14581
14598
  }
14582
14599
  scale(x) {
14583
14600
  this.transform(`scale( ${x} )`);
14601
+ return this;
14584
14602
  }
14585
14603
  };
14586
14604
  __name(SVGItem, "SVGItem");
@@ -14772,6 +14790,11 @@ var SVGGroup = class extends SVGItem {
14772
14790
  this.m_items.push(shape);
14773
14791
  return shape;
14774
14792
  }
14793
+ group() {
14794
+ const group = new SVGGroup();
14795
+ this.m_items.push(group);
14796
+ return group;
14797
+ }
14775
14798
  /**
14776
14799
  *
14777
14800
  * example
@@ -15688,7 +15711,7 @@ function setupWSMessaging(closeCB) {
15688
15711
  __name(setupWSMessaging, "setupWSMessaging");
15689
15712
 
15690
15713
  // src/version.ts
15691
- var x4js_version = "1.5.31";
15714
+ var x4js_version = "1.5.33";
15692
15715
  export {
15693
15716
  AbsLayout,
15694
15717
  Application,
@@ -15774,7 +15797,13 @@ export {
15774
15797
  Rect,
15775
15798
  Router,
15776
15799
  SVGComponent,
15800
+ SVGGradient,
15801
+ SVGGroup,
15802
+ SVGItem,
15803
+ SVGPath,
15777
15804
  SVGPathBuilder,
15805
+ SVGShape,
15806
+ SVGText,
15778
15807
  ScrollView,
15779
15808
  Separator,
15780
15809
  Settings,