mountain-ui 1.0.21 → 1.0.23

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mountain-ui",
3
3
  "private": false,
4
- "version": "1.0.21",
4
+ "version": "1.0.23",
5
5
  "description": "A comprehensive UI component library for ERP systems with field types, entities, and registry management built with Svelte",
6
6
  "type": "module",
7
7
  "module": "index.js",
@@ -76,7 +76,7 @@
76
76
  "vitest-browser-svelte": "^2.1.1"
77
77
  },
78
78
  "dependencies": {
79
- "hamzus-ui": "^0.0.256"
79
+ "hamzus-ui": "^0.0.257"
80
80
  },
81
81
  "engines": {
82
82
  "node": ">=18.0.0"
@@ -75,8 +75,6 @@
75
75
 
76
76
  return data
77
77
  } ));
78
- console.log(table);
79
- console.log(value);
80
78
 
81
79
 
82
80
  onChange(value);
@@ -23,7 +23,6 @@
23
23
  onChange = () => {},
24
24
  field
25
25
  } = $props();
26
- console.log(value);
27
26
 
28
27
  let selection = null;
29
28
 
@@ -61,7 +60,6 @@ console.log(value);
61
60
  };
62
61
  }
63
62
  async function getElement(data) {
64
- console.log(data);
65
63
 
66
64
  if (!data?.id) {
67
65
  return;
@@ -85,7 +83,6 @@ console.log(value);
85
83
  }
86
84
 
87
85
  function handleChange(value) {
88
- console.log("change : " + value);
89
86
 
90
87
  onChangeDetails(value?.element ?? null);
91
88
  onChange(value?.element.id.flat ?? null);
@@ -29,53 +29,86 @@
29
29
  const field1 = entityRegistry.selectField(column1);
30
30
  const field2 = entityRegistry.selectField(column2);
31
31
 
32
- $effect(() => {
33
- if (!$field1 || !$field2) return;
32
+ let previousValue1 = Symbol();
33
+ let previousValue2 = Symbol();
34
+
35
+ function getFieldValue(field) {
36
+ if (!field) return null;
34
37
 
35
- const raw1 = ctx[column1] ?? null;
36
- const raw2 = ctx[column2] ?? null;
38
+ // Champ local
39
+ if (field.entity_id === entity_id) {
40
+ let v = ctx[field.id];
37
41
 
38
- let value1 = raw1 ? parseFloat(raw1) : null;
39
- let value2 = raw2 ? parseFloat(raw2) : null;
42
+ if (v == null) return null;
40
43
 
41
- if ($field1.type === 'number-float-percent') value1 /= 100;
42
- // si c est un lien on recupere le ctxDetails du produit
43
- if ($field1.entity_id != entity_id) {
44
- const linkField = entityRegistry.getLinkedField(entity_id, $field1.entity_id);
45
- value1 = parseFloat(detailsCtx[linkField.id]?.[$field1.normalized_name]?.flat) ?? 0.0;
44
+ v = parseFloat(v);
45
+
46
+ if (field.type === 'number-float-percent') {
47
+ v /= 100;
48
+ }
49
+
50
+ return isNaN(v) ? 0 : v;
46
51
  }
47
52
 
48
- if ($field2.type === 'number-float-percent') value2 /= 100;
49
- // si c est un lien on recupere le ctxDetails du produit
50
- if ($field2.entity_id != entity_id) {
51
- const linkField = entityRegistry.getLinkedField(entity_id, $field2.entity_id);
52
- value2 = parseFloat(detailsCtx[linkField.id]?.[$field2.normalized_name]?.flat) ?? 0.0;
53
+ // Champ lié
54
+ const linkField = entityRegistry.getLinkedField(entity_id, field.entity_id);
55
+
56
+ if (!linkField) return null;
57
+
58
+ let v = detailsCtx[linkField.id]?.[field.normalized_name]?.flat;
59
+
60
+ if (v == null) return null;
61
+
62
+ v = parseFloat(v);
63
+
64
+ if (field.type === 'number-float-percent') {
65
+ v /= 100;
53
66
  }
54
67
 
55
- if (value1 == null || value2 == null) return;
68
+ return isNaN(v) ? 0 : v;
69
+ }
56
70
 
57
- if (isNaN(value1)) value1 = 0;
58
- if (isNaN(value2)) value2 = 0;
71
+ $effect(() => {
72
+ if (!$field1 || !$field2) return;
73
+
74
+ const value1 = getFieldValue($field1);
75
+ const value2 = getFieldValue($field2);
76
+
77
+ if (value1 === null || value2 === null) return;
78
+
79
+ if (
80
+ value1 === previousValue1 &&
81
+ value2 === previousValue2
82
+ ) {
83
+ return;
84
+ }
85
+
86
+ previousValue1 = value1;
87
+ previousValue2 = value2;
59
88
 
60
- const oldValue = value;
89
+ let result = null;
61
90
 
62
91
  switch (operator) {
63
92
  case '+':
64
- value = value1 + value2;
93
+ result = value1 + value2;
65
94
  break;
95
+
66
96
  case '-':
67
- value = value1 - value2;
97
+ result = value1 - value2;
68
98
  break;
99
+
69
100
  case '*':
70
- value = value1 * value2;
101
+ result = value1 * value2;
71
102
  break;
103
+
72
104
  case '/':
73
- value = value2 === 0 ? null : value1 / value2;
105
+ result = value2 === 0 ? null : value1 / value2;
74
106
  break;
75
107
  }
76
108
 
77
- if (oldValue !== value) {
78
- onChange(value);
109
+ if (result !== value) {
110
+ value = result;
111
+ onChange(result);
79
112
  }
80
113
  });
81
114