@zeedhi/common 1.82.1 → 1.83.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.
@@ -4,6 +4,7 @@ import cloneDeep from 'lodash.clonedeep';
4
4
  import debounce from 'lodash.debounce';
5
5
  import isUndefined from 'lodash.isundefined';
6
6
  import set from 'lodash.set';
7
+ import omit from 'lodash.omit';
7
8
  import get from 'lodash.get';
8
9
 
9
10
  /**
@@ -2856,9 +2857,15 @@ class Number$1 extends TextInput {
2856
2857
  }
2857
2858
  else {
2858
2859
  this.formattedValue = value;
2859
- if (this.autoNumericObj) {
2860
- this.localValue = parseFloat(this.autoNumericObj.rawValue);
2860
+ if (!this.autoNumericObj)
2861
+ return;
2862
+ const parsed = parseFloat(this.autoNumericObj.rawValue);
2863
+ if (window.Number.isNaN(parsed)) {
2864
+ this.localValue = undefined;
2865
+ this.autoNumericObj.clear();
2866
+ return;
2861
2867
  }
2868
+ this.localValue = parsed;
2862
2869
  }
2863
2870
  }
2864
2871
  /**
@@ -2874,22 +2881,24 @@ class Number$1 extends TextInput {
2874
2881
  */
2875
2882
  parser(value) { return this.parserFn(value, this); }
2876
2883
  }
2877
- FormatterParserProvider.registerFormatter('ZdNumber', (value, { mask = Config.masks.numberMask, } = {}) => {
2884
+ FormatterParserProvider.registerFormatter('ZdNumber', (value, { mask = {}, } = {}) => {
2878
2885
  let maskDef = mask;
2879
2886
  if (Accessor.isAccessorDefinition(maskDef)) {
2880
2887
  const [controller, accessor] = Accessor.getAccessor(maskDef);
2881
2888
  maskDef = Loader.getInstance(controller)[accessor];
2882
2889
  }
2883
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2890
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2891
+ maskValue = Object.assign(Object.assign({}, Config.masks.numberMask), maskValue);
2884
2892
  return value === null ? '' : AutoNumeric.format(value, maskValue);
2885
2893
  });
2886
- FormatterParserProvider.registerParser('ZdNumber', (value, { mask = Config.masks.numberMask, } = {}) => {
2894
+ FormatterParserProvider.registerParser('ZdNumber', (value, { mask = {}, } = {}) => {
2887
2895
  let maskDef = mask;
2888
2896
  if (Accessor.isAccessorDefinition(maskDef)) {
2889
2897
  const [controller, accessor] = Accessor.getAccessor(maskDef);
2890
2898
  maskDef = Loader.getInstance(controller)[accessor];
2891
2899
  }
2892
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2900
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2901
+ maskValue = Object.assign(Object.assign({}, Config.masks.numberMask), maskValue);
2893
2902
  return value === '' ? null : AutoNumeric.unformat(value, maskValue);
2894
2903
  });
2895
2904
 
@@ -2908,22 +2917,24 @@ class Currency extends Number$1 {
2908
2917
  this.validateMask();
2909
2918
  }
2910
2919
  }
2911
- FormatterParserProvider.registerFormatter('ZdCurrency', (value, { mask = Object.assign(Object.assign({}, Config.masks.numberMask), Config.masks.currencyMask), } = {}) => {
2920
+ FormatterParserProvider.registerFormatter('ZdCurrency', (value, { mask = {}, } = {}) => {
2912
2921
  let maskDef = mask;
2913
2922
  if (Accessor.isAccessorDefinition(maskDef)) {
2914
2923
  const [controller, accessor] = Accessor.getAccessor(maskDef);
2915
2924
  maskDef = Loader.getInstance(controller)[accessor];
2916
2925
  }
2917
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2926
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2927
+ maskValue = Object.assign(Object.assign(Object.assign({}, Config.masks.numberMask), Config.masks.currencyMask), maskValue);
2918
2928
  return value === null ? '' : AutoNumeric.format(value, maskValue);
2919
2929
  });
2920
- FormatterParserProvider.registerParser('ZdCurrency', (value, { mask = Object.assign(Object.assign({}, Config.masks.numberMask), Config.masks.currencyMask), } = {}) => {
2930
+ FormatterParserProvider.registerParser('ZdCurrency', (value, { mask = {}, } = {}) => {
2921
2931
  let maskDef = mask;
2922
2932
  if (Accessor.isAccessorDefinition(maskDef)) {
2923
2933
  const [controller, accessor] = Accessor.getAccessor(maskDef);
2924
2934
  maskDef = Loader.getInstance(controller)[accessor];
2925
2935
  }
2926
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2936
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2937
+ maskValue = Object.assign(Object.assign(Object.assign({}, Config.masks.numberMask), Config.masks.currencyMask), maskValue);
2927
2938
  return value === '' ? null : AutoNumeric.unformat(value, maskValue);
2928
2939
  });
2929
2940
 
@@ -4799,7 +4810,7 @@ class FileInput extends TextInput {
4799
4810
  this.selectFileButton = {
4800
4811
  name: 'select-file-button',
4801
4812
  component: 'ZdButton',
4802
- label: 'Select files from computer',
4813
+ label: 'SELECT_FILE',
4803
4814
  color: 'primary',
4804
4815
  small: true,
4805
4816
  cssClass: 'zd-mt-1',
@@ -4840,7 +4851,7 @@ class FileInput extends TextInput {
4840
4851
  if (Array.isArray(this.value) && this.maxFiles && this.value.length > +this.maxFiles) {
4841
4852
  this.value.splice(+this.maxFiles);
4842
4853
  AlertService.show({
4843
- text: `You cannot choose more than ${this.maxFiles} file(s).`,
4854
+ text: I18n.translate('MAX_FILES', { limit: this.maxFiles }),
4844
4855
  name: 'max-files-alert',
4845
4856
  color: 'error',
4846
4857
  });
@@ -5749,9 +5760,11 @@ const toggleableFormatter = ({ value, componentProps }) => {
5749
5760
  const trueDefined = isUndefined(trueValue) ? true : trueValue;
5750
5761
  const falseDefined = isUndefined(falseValue) ? false : falseValue;
5751
5762
  if (value === trueDefined) {
5752
- return trueIcon || trueDisplayValue || trueDefined;
5763
+ const display = trueDisplayValue ? I18n.translate(trueDisplayValue) : trueDisplayValue;
5764
+ return trueIcon || display || trueDefined;
5753
5765
  }
5754
- return falseIcon || falseDisplayValue || falseDefined;
5766
+ const display = falseDisplayValue ? I18n.translate(falseDisplayValue) : falseDisplayValue;
5767
+ return falseIcon || display || falseDefined;
5755
5768
  };
5756
5769
  FormatterParserProvider.registerFormatter('column_ZdCheckbox', toggleableFormatter);
5757
5770
  FormatterParserProvider.registerFormatter('column_ZdSwitch', toggleableFormatter);
@@ -6535,7 +6548,7 @@ class GridEditable extends Grid {
6535
6548
  if (!Utils.isEqual(value, row[columnName])) {
6536
6549
  const newRow = {};
6537
6550
  newRow[key] = Object.assign({}, this.editedRows[key]);
6538
- newRow[key].originalRow = Object.assign({}, row);
6551
+ newRow[key].originalRow = omit(row, 'originalRow');
6539
6552
  newRow[key][columnName] = value;
6540
6553
  newRow[key][`${columnName}_original`] = row[columnName];
6541
6554
  if (component)
@@ -6555,8 +6568,9 @@ class GridEditable extends Grid {
6555
6568
  }
6556
6569
  }
6557
6570
  updateOriginalRow(key, row) {
6558
- if (this.editedRows[key] !== undefined)
6559
- this.editedRows[key].originalRow = row;
6571
+ if (this.editedRows[key] !== undefined) {
6572
+ this.editedRows[key].originalRow = omit(row, 'originalRow');
6573
+ }
6560
6574
  }
6561
6575
  /**
6562
6576
  * Checks if column is edited
@@ -10284,6 +10298,7 @@ class TreeDataStructure {
10284
10298
  originalData.splice(index + 1, 0, ...data);
10285
10299
  this.originalDatasource.data = originalData;
10286
10300
  this.originalDatasource.currentRow = this.clearRow(row);
10301
+ delete this.originalDatasource.filter[this.parentField];
10287
10302
  return data;
10288
10303
  }
10289
10304
  return undefined;
@@ -12941,7 +12956,7 @@ class TreeGridEditable extends TreeGrid {
12941
12956
  }
12942
12957
  updateOriginalRow(key, row) {
12943
12958
  if (this.editedRows[key] !== undefined)
12944
- this.editedRows[key].originalRow = row;
12959
+ this.editedRows[key].originalRow = omit(row, 'originalRow');
12945
12960
  }
12946
12961
  checkLookupData(column, row, componentProps) {
12947
12962
  if (row[column.name] && column.lookupData && componentProps.datasource) {
@@ -12968,7 +12983,7 @@ class TreeGridEditable extends TreeGrid {
12968
12983
  if (!Utils.isEqual(value, row[columnName])) {
12969
12984
  const newRow = {};
12970
12985
  newRow[key] = Object.assign({}, this.editedRows[key]);
12971
- newRow[key].originalRow = Object.assign({}, row);
12986
+ newRow[key].originalRow = omit(row, 'originalRow');
12972
12987
  newRow[key][columnName] = value;
12973
12988
  newRow[key][`${columnName}_original`] = row[columnName];
12974
12989
  if (component)
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@zeedhi/core'), require('lodash.merge'), require('lodash.clonedeep'), require('lodash.debounce'), require('lodash.isundefined'), require('lodash.set'), require('lodash.get')) :
3
- typeof define === 'function' && define.amd ? define(['exports', '@zeedhi/core', 'lodash.merge', 'lodash.clonedeep', 'lodash.debounce', 'lodash.isundefined', 'lodash.set', 'lodash.get'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@zeedhi/common"] = {}, global.core, global.merge, global.cloneDeep, global.debounce, global.isUndefined, global.set, global.get));
5
- })(this, (function (exports, core, merge, cloneDeep, debounce, isUndefined, set, get) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@zeedhi/core'), require('lodash.merge'), require('lodash.clonedeep'), require('lodash.debounce'), require('lodash.isundefined'), require('lodash.set'), require('lodash.omit'), require('lodash.get')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', '@zeedhi/core', 'lodash.merge', 'lodash.clonedeep', 'lodash.debounce', 'lodash.isundefined', 'lodash.set', 'lodash.omit', 'lodash.get'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@zeedhi/common"] = {}, global.core, global.merge, global.cloneDeep, global.debounce, global.isUndefined, global.set, global.omit, global.get));
5
+ })(this, (function (exports, core, merge, cloneDeep, debounce, isUndefined, set, omit, get) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -11,6 +11,7 @@
11
11
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
12
12
  var isUndefined__default = /*#__PURE__*/_interopDefaultLegacy(isUndefined);
13
13
  var set__default = /*#__PURE__*/_interopDefaultLegacy(set);
14
+ var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
14
15
  var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
15
16
 
16
17
  /**
@@ -2863,9 +2864,15 @@
2863
2864
  }
2864
2865
  else {
2865
2866
  this.formattedValue = value;
2866
- if (this.autoNumericObj) {
2867
- this.localValue = parseFloat(this.autoNumericObj.rawValue);
2867
+ if (!this.autoNumericObj)
2868
+ return;
2869
+ const parsed = parseFloat(this.autoNumericObj.rawValue);
2870
+ if (window.Number.isNaN(parsed)) {
2871
+ this.localValue = undefined;
2872
+ this.autoNumericObj.clear();
2873
+ return;
2868
2874
  }
2875
+ this.localValue = parsed;
2869
2876
  }
2870
2877
  }
2871
2878
  /**
@@ -2881,22 +2888,24 @@
2881
2888
  */
2882
2889
  parser(value) { return this.parserFn(value, this); }
2883
2890
  }
2884
- core.FormatterParserProvider.registerFormatter('ZdNumber', (value, { mask = core.Config.masks.numberMask, } = {}) => {
2891
+ core.FormatterParserProvider.registerFormatter('ZdNumber', (value, { mask = {}, } = {}) => {
2885
2892
  let maskDef = mask;
2886
2893
  if (core.Accessor.isAccessorDefinition(maskDef)) {
2887
2894
  const [controller, accessor] = core.Accessor.getAccessor(maskDef);
2888
2895
  maskDef = core.Loader.getInstance(controller)[accessor];
2889
2896
  }
2890
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2897
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2898
+ maskValue = Object.assign(Object.assign({}, core.Config.masks.numberMask), maskValue);
2891
2899
  return value === null ? '' : AutoNumeric.format(value, maskValue);
2892
2900
  });
2893
- core.FormatterParserProvider.registerParser('ZdNumber', (value, { mask = core.Config.masks.numberMask, } = {}) => {
2901
+ core.FormatterParserProvider.registerParser('ZdNumber', (value, { mask = {}, } = {}) => {
2894
2902
  let maskDef = mask;
2895
2903
  if (core.Accessor.isAccessorDefinition(maskDef)) {
2896
2904
  const [controller, accessor] = core.Accessor.getAccessor(maskDef);
2897
2905
  maskDef = core.Loader.getInstance(controller)[accessor];
2898
2906
  }
2899
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2907
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2908
+ maskValue = Object.assign(Object.assign({}, core.Config.masks.numberMask), maskValue);
2900
2909
  return value === '' ? null : AutoNumeric.unformat(value, maskValue);
2901
2910
  });
2902
2911
 
@@ -2915,22 +2924,24 @@
2915
2924
  this.validateMask();
2916
2925
  }
2917
2926
  }
2918
- core.FormatterParserProvider.registerFormatter('ZdCurrency', (value, { mask = Object.assign(Object.assign({}, core.Config.masks.numberMask), core.Config.masks.currencyMask), } = {}) => {
2927
+ core.FormatterParserProvider.registerFormatter('ZdCurrency', (value, { mask = {}, } = {}) => {
2919
2928
  let maskDef = mask;
2920
2929
  if (core.Accessor.isAccessorDefinition(maskDef)) {
2921
2930
  const [controller, accessor] = core.Accessor.getAccessor(maskDef);
2922
2931
  maskDef = core.Loader.getInstance(controller)[accessor];
2923
2932
  }
2924
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2933
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.unformat(value)) : maskDef;
2934
+ maskValue = Object.assign(Object.assign(Object.assign({}, core.Config.masks.numberMask), core.Config.masks.currencyMask), maskValue);
2925
2935
  return value === null ? '' : AutoNumeric.format(value, maskValue);
2926
2936
  });
2927
- core.FormatterParserProvider.registerParser('ZdCurrency', (value, { mask = Object.assign(Object.assign({}, core.Config.masks.numberMask), core.Config.masks.currencyMask), } = {}) => {
2937
+ core.FormatterParserProvider.registerParser('ZdCurrency', (value, { mask = {}, } = {}) => {
2928
2938
  let maskDef = mask;
2929
2939
  if (core.Accessor.isAccessorDefinition(maskDef)) {
2930
2940
  const [controller, accessor] = core.Accessor.getAccessor(maskDef);
2931
2941
  maskDef = core.Loader.getInstance(controller)[accessor];
2932
2942
  }
2933
- const maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2943
+ let maskValue = typeof (maskDef) === 'function' ? maskDef(AutoNumeric.format(value)) : maskDef;
2944
+ maskValue = Object.assign(Object.assign(Object.assign({}, core.Config.masks.numberMask), core.Config.masks.currencyMask), maskValue);
2934
2945
  return value === '' ? null : AutoNumeric.unformat(value, maskValue);
2935
2946
  });
2936
2947
 
@@ -4806,7 +4817,7 @@
4806
4817
  this.selectFileButton = {
4807
4818
  name: 'select-file-button',
4808
4819
  component: 'ZdButton',
4809
- label: 'Select files from computer',
4820
+ label: 'SELECT_FILE',
4810
4821
  color: 'primary',
4811
4822
  small: true,
4812
4823
  cssClass: 'zd-mt-1',
@@ -4847,7 +4858,7 @@
4847
4858
  if (Array.isArray(this.value) && this.maxFiles && this.value.length > +this.maxFiles) {
4848
4859
  this.value.splice(+this.maxFiles);
4849
4860
  AlertService.show({
4850
- text: `You cannot choose more than ${this.maxFiles} file(s).`,
4861
+ text: core.I18n.translate('MAX_FILES', { limit: this.maxFiles }),
4851
4862
  name: 'max-files-alert',
4852
4863
  color: 'error',
4853
4864
  });
@@ -5756,9 +5767,11 @@
5756
5767
  const trueDefined = isUndefined__default["default"](trueValue) ? true : trueValue;
5757
5768
  const falseDefined = isUndefined__default["default"](falseValue) ? false : falseValue;
5758
5769
  if (value === trueDefined) {
5759
- return trueIcon || trueDisplayValue || trueDefined;
5770
+ const display = trueDisplayValue ? core.I18n.translate(trueDisplayValue) : trueDisplayValue;
5771
+ return trueIcon || display || trueDefined;
5760
5772
  }
5761
- return falseIcon || falseDisplayValue || falseDefined;
5773
+ const display = falseDisplayValue ? core.I18n.translate(falseDisplayValue) : falseDisplayValue;
5774
+ return falseIcon || display || falseDefined;
5762
5775
  };
5763
5776
  core.FormatterParserProvider.registerFormatter('column_ZdCheckbox', toggleableFormatter);
5764
5777
  core.FormatterParserProvider.registerFormatter('column_ZdSwitch', toggleableFormatter);
@@ -6542,7 +6555,7 @@
6542
6555
  if (!core.Utils.isEqual(value, row[columnName])) {
6543
6556
  const newRow = {};
6544
6557
  newRow[key] = Object.assign({}, this.editedRows[key]);
6545
- newRow[key].originalRow = Object.assign({}, row);
6558
+ newRow[key].originalRow = omit__default["default"](row, 'originalRow');
6546
6559
  newRow[key][columnName] = value;
6547
6560
  newRow[key][`${columnName}_original`] = row[columnName];
6548
6561
  if (component)
@@ -6562,8 +6575,9 @@
6562
6575
  }
6563
6576
  }
6564
6577
  updateOriginalRow(key, row) {
6565
- if (this.editedRows[key] !== undefined)
6566
- this.editedRows[key].originalRow = row;
6578
+ if (this.editedRows[key] !== undefined) {
6579
+ this.editedRows[key].originalRow = omit__default["default"](row, 'originalRow');
6580
+ }
6567
6581
  }
6568
6582
  /**
6569
6583
  * Checks if column is edited
@@ -10291,6 +10305,7 @@
10291
10305
  originalData.splice(index + 1, 0, ...data);
10292
10306
  this.originalDatasource.data = originalData;
10293
10307
  this.originalDatasource.currentRow = this.clearRow(row);
10308
+ delete this.originalDatasource.filter[this.parentField];
10294
10309
  return data;
10295
10310
  }
10296
10311
  return undefined;
@@ -12948,7 +12963,7 @@
12948
12963
  }
12949
12964
  updateOriginalRow(key, row) {
12950
12965
  if (this.editedRows[key] !== undefined)
12951
- this.editedRows[key].originalRow = row;
12966
+ this.editedRows[key].originalRow = omit__default["default"](row, 'originalRow');
12952
12967
  }
12953
12968
  checkLookupData(column, row, componentProps) {
12954
12969
  if (row[column.name] && column.lookupData && componentProps.datasource) {
@@ -12975,7 +12990,7 @@
12975
12990
  if (!core.Utils.isEqual(value, row[columnName])) {
12976
12991
  const newRow = {};
12977
12992
  newRow[key] = Object.assign({}, this.editedRows[key]);
12978
- newRow[key].originalRow = Object.assign({}, row);
12993
+ newRow[key].originalRow = omit__default["default"](row, 'originalRow');
12979
12994
  newRow[key][columnName] = value;
12980
12995
  newRow[key][`${columnName}_original`] = row[columnName];
12981
12996
  if (component)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeedhi/common",
3
- "version": "1.82.1",
3
+ "version": "1.83.1",
4
4
  "description": "Zeedhi Common",
5
5
  "author": "Zeedhi <zeedhi@teknisa.com>",
6
6
  "license": "ISC",
@@ -26,6 +26,7 @@
26
26
  "lodash.get": "4.4.*",
27
27
  "lodash.isundefined": "3.0.*",
28
28
  "lodash.merge": "4.6.*",
29
+ "lodash.omit": "^4.5.*",
29
30
  "lodash.set": "4.3.*"
30
31
  },
31
32
  "peerDependencies": {
@@ -36,10 +37,11 @@
36
37
  "@types/lodash.get": "4.4.*",
37
38
  "@types/lodash.isundefined": "3.0.*",
38
39
  "@types/lodash.merge": "4.6.*",
40
+ "@types/lodash.omit": "^4.5.*",
39
41
  "@types/lodash.set": "4.3.*",
40
42
  "@types/lodash.times": "4.3.*",
41
43
  "lodash.times": "4.3.*",
42
44
  "mockdate": "3.0.*"
43
45
  },
44
- "gitHead": "1bc7beb3fc58f2708365b45cdbacc74fd6802102"
46
+ "gitHead": "543eabdb14abf45c8c6f645c760cbf299b446cee"
45
47
  }
@@ -26,6 +26,10 @@ export declare class GridColumn extends Column implements IGridColumn {
26
26
  events?: import("..").IComponentEvents<import("@zeedhi/core").IEventParam<any>> | undefined;
27
27
  directives?: import("..").IComponentDirectives | undefined;
28
28
  isVisible?: string | boolean | undefined;
29
+ /**
30
+ * Creates a new Grid Column.
31
+ * @param props Grid column properties
32
+ */
29
33
  dark?: boolean | undefined;
30
34
  light?: boolean | undefined;
31
35
  keyMap?: import("@zeedhi/core").IKeyMap<import("@zeedhi/core").IEventParam<any>> | undefined;