iglooform 2.5.6 → 2.5.9

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 (79) hide show
  1. package/es/confirmation/index.d.ts +2 -2
  2. package/es/confirmation/index.js +37 -2
  3. package/es/filter/checkBox.d.ts +4 -3
  4. package/es/filter/checkBox.js +31 -7
  5. package/es/filter/index.js +4 -2
  6. package/es/filter/radioBox.d.ts +2 -1
  7. package/es/filter/radioBox.js +24 -3
  8. package/es/form/element/index.js +22 -21
  9. package/es/form/hstep/index.d.ts +17 -0
  10. package/es/form/hstep/index.js +158 -0
  11. package/es/form/hstep/style/index.d.ts +1 -0
  12. package/es/form/hstep/style/index.js +1 -0
  13. package/es/form/hstep/style/index.less +84 -0
  14. package/es/form/hsteps/index.d.ts +19 -0
  15. package/es/form/hsteps/index.js +407 -0
  16. package/es/form/hsteps/style/index.d.ts +1 -0
  17. package/es/form/hsteps/style/index.js +1 -0
  18. package/es/form/hsteps/style/index.less +78 -0
  19. package/es/form/index.js +31 -40
  20. package/es/form/pages/index.js +2 -2
  21. package/es/form/section/index.d.ts +2 -0
  22. package/es/form/section/index.js +70 -10
  23. package/es/form/section/style/index.less +14 -0
  24. package/es/form/step/index.js +15 -10
  25. package/es/form/steps/index.js +27 -15
  26. package/es/form-step-context.d.ts +6 -0
  27. package/es/form-step-context.js +4 -0
  28. package/es/free-form/index.js +24 -38
  29. package/es/input/input-number.js +2 -2
  30. package/es/locale/en-US/messages.json +9 -0
  31. package/es/locale/id-ID/messages.json +9 -0
  32. package/es/locale/th-TH/messages.json +9 -0
  33. package/es/locale/vi-VN/messages.json +9 -0
  34. package/es/locale/zh-CN/messages.json +9 -0
  35. package/es/locale/zh-TW/messages.json +9 -0
  36. package/es/select/style/index.less +1 -0
  37. package/es/types.d.ts +13 -1
  38. package/es/upload-photo/index.js +10 -4
  39. package/es/utils/form-utils.js +84 -1
  40. package/lib/confirmation/index.d.ts +2 -2
  41. package/lib/confirmation/index.js +37 -1
  42. package/lib/filter/checkBox.d.ts +4 -3
  43. package/lib/filter/checkBox.js +31 -7
  44. package/lib/filter/index.js +4 -2
  45. package/lib/filter/radioBox.d.ts +2 -1
  46. package/lib/filter/radioBox.js +24 -3
  47. package/lib/form/element/index.js +22 -21
  48. package/lib/form/hstep/index.d.ts +17 -0
  49. package/lib/form/hstep/index.js +183 -0
  50. package/lib/form/hstep/style/index.d.ts +1 -0
  51. package/lib/form/hstep/style/index.js +3 -0
  52. package/lib/form/hstep/style/index.less +84 -0
  53. package/lib/form/hsteps/index.d.ts +19 -0
  54. package/lib/form/hsteps/index.js +437 -0
  55. package/lib/form/hsteps/style/index.d.ts +1 -0
  56. package/lib/form/hsteps/style/index.js +3 -0
  57. package/lib/form/hsteps/style/index.less +78 -0
  58. package/lib/form/index.js +31 -39
  59. package/lib/form/pages/index.js +2 -2
  60. package/lib/form/section/index.d.ts +2 -0
  61. package/lib/form/section/index.js +72 -8
  62. package/lib/form/section/style/index.less +14 -0
  63. package/lib/form/step/index.js +15 -10
  64. package/lib/form/steps/index.js +27 -14
  65. package/lib/form-step-context.d.ts +6 -0
  66. package/lib/form-step-context.js +16 -0
  67. package/lib/free-form/index.js +23 -37
  68. package/lib/input/input-number.js +2 -2
  69. package/lib/locale/en-US/messages.json +9 -0
  70. package/lib/locale/id-ID/messages.json +9 -0
  71. package/lib/locale/th-TH/messages.json +9 -0
  72. package/lib/locale/vi-VN/messages.json +9 -0
  73. package/lib/locale/zh-CN/messages.json +9 -0
  74. package/lib/locale/zh-TW/messages.json +9 -0
  75. package/lib/select/style/index.less +1 -0
  76. package/lib/types.d.ts +13 -1
  77. package/lib/upload-photo/index.js +10 -4
  78. package/lib/utils/form-utils.js +85 -1
  79. package/package.json +1 -1
@@ -1,8 +1,10 @@
1
1
  import "antd/es/row/style";
2
2
  import _Row from "antd/es/row";
3
+ import "antd/es/divider/style";
4
+ import _Divider from "antd/es/divider";
3
5
  import "antd/es/col/style";
4
6
  import _Col from "antd/es/col";
5
- var _excluded = ["elements", "name", "label", "labelProps", "contentProps", "style"];
7
+ var _excluded = ["elements", "name", "label", "labelProps", "contentProps", "style", "collapsable", "defaultCollapsed"];
6
8
 
7
9
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
8
10
 
@@ -10,16 +12,30 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
10
12
 
11
13
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
14
 
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
+
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
22
+
23
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24
+
25
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
+
13
27
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
14
28
 
15
29
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
16
30
 
17
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
- import { useContext } from 'react';
31
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
32
+ import { useState, useContext, useEffect } from 'react';
19
33
  import Element from '../element';
20
34
  import FormContext from '../../form-context';
35
+ import StepContext from '../../form-step-context';
21
36
  import { calcNamePath, calcFormItemProps } from '../../utils/form-utils';
22
37
  import Typography from '../../typography';
38
+ import { ArrowDownOutlined, ArrowUpOutlined } from 'iglooicon';
23
39
  import './style/index.less';
24
40
 
25
41
  var Section = function Section(_ref) {
@@ -35,16 +51,35 @@ var Section = function Section(_ref) {
35
51
  contentProps = _ref$config$contentPr === void 0 ? {} : _ref$config$contentPr,
36
52
  _ref$config$style = _ref$config.style,
37
53
  style = _ref$config$style === void 0 ? {} : _ref$config$style,
54
+ _ref$config$collapsab = _ref$config.collapsable,
55
+ collapsable = _ref$config$collapsab === void 0 ? false : _ref$config$collapsab,
56
+ _ref$config$defaultCo = _ref$config.defaultCollapsed,
57
+ defaultCollapsed = _ref$config$defaultCo === void 0 ? false : _ref$config$defaultCo,
38
58
  rest = _objectWithoutProperties(_ref$config, _excluded),
39
59
  preview = _ref.preview,
40
60
  disabled = _ref.disabled,
41
61
  setShowStepButton = _ref.setShowStepButton;
42
62
 
63
+ var _useState = useState(defaultCollapsed && !preview),
64
+ _useState2 = _slicedToArray(_useState, 2),
65
+ collapsed = _useState2[0],
66
+ toggle = _useState2[1];
67
+
43
68
  var _useContext = useContext(FormContext),
44
69
  form = _useContext.form,
45
70
  requiredMark = _useContext.requiredMark;
46
71
 
72
+ var _useContext2 = useContext(StepContext),
73
+ registerSection = _useContext2.registerSection;
74
+
47
75
  var namePath = calcNamePath(parentName, name);
76
+ useEffect(function () {
77
+ if (collapsable) {
78
+ registerSection(namePath, function (collapsed) {
79
+ return toggle(collapsed);
80
+ });
81
+ }
82
+ }, []);
48
83
 
49
84
  var _calcFormItemProps = calcFormItemProps(rest, {
50
85
  requiredMark: requiredMark
@@ -69,15 +104,40 @@ var Section = function Section(_ref) {
69
104
  span: 24,
70
105
  className: 'igloo-section',
71
106
  style: style,
72
- children: [label && _jsx(Typography, _objectSpread(_objectSpread({
73
- className: 'igloo-section-label'
74
- }, labelProps), {}, {
75
- level: "h4",
76
- wrapElement: "div",
77
- children: label
78
- })), _jsx("div", _objectSpread(_objectSpread({
107
+ children: [_jsxs("div", {
108
+ className: 'igloo-section-label',
109
+ onClick: function onClick() {
110
+ collapsable && !preview && toggle(function (c) {
111
+ return !c;
112
+ });
113
+ },
114
+ children: [label && _jsx(Typography, _objectSpread(_objectSpread({}, labelProps), {}, {
115
+ level: "h4",
116
+ wrapElement: "div",
117
+ children: label
118
+ })), collapsable && !preview && _jsxs(_Fragment, {
119
+ children: [_jsx(ArrowDownOutlined, {
120
+ style: {
121
+ opacity: collapsed ? 0 : 1,
122
+ fontSize: 24,
123
+ display: collapsed ? 'none' : 'block'
124
+ }
125
+ }), _jsx(ArrowUpOutlined, {
126
+ style: {
127
+ opacity: collapsed ? 1 : 0,
128
+ fontSize: 24,
129
+ display: collapsed ? 'block' : 'none'
130
+ }
131
+ })]
132
+ })]
133
+ }), collapsable && !preview && _jsx(_Divider, {
134
+ className: "igloo-section-collapse-divider"
135
+ }), _jsx("div", _objectSpread(_objectSpread({
79
136
  className: 'igloo-section-content'
80
137
  }, contentProps), {}, {
138
+ style: {
139
+ display: !collapsable || !collapsed ? 'block' : 'none'
140
+ },
81
141
  children: _jsx(_Row, {
82
142
  gutter: [32, preview ? 16 : 24],
83
143
  children: elements.map(function (child, index) {
@@ -1,5 +1,19 @@
1
1
  .igloo-section {
2
+ position: relative;
3
+
4
+ .igloo-section-label {
5
+ display: flex;
6
+ justify-content: space-between;
7
+ align-items: center;
8
+ }
9
+
2
10
  .igloo-section-content {
3
11
  margin-top: 16px;
4
12
  }
13
+
14
+ &:last-child {
15
+ .igloo-section-collapse-divider {
16
+ display: none;
17
+ }
18
+ }
5
19
  }
@@ -29,10 +29,6 @@ import FormContext from '../../form-context';
29
29
  import './style/index.less';
30
30
  var useBreakpoint = _Grid.useBreakpoint;
31
31
 
32
- function specialDisplayIndex(index) {
33
- return index < 10 ? "0".concat(index) : index;
34
- }
35
-
36
32
  var Step = function Step(_ref) {
37
33
  var parentName = _ref.parentName,
38
34
  _ref$config = _ref.config,
@@ -81,14 +77,23 @@ var Step = function Step(_ref) {
81
77
  md = _useBreakpoint.md;
82
78
 
83
79
  useEffect(function () {
84
- var _containerRef$current, _containerRef$current2, _containerRef$current3;
80
+ var _containerRef$current, _containerRef$current4;
85
81
 
86
82
  if (md || !(shouldScroll && edit)) return;
87
83
  var scrollContainer = getScrollContainer() || window;
88
- (containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetTop) ? scrollContainer.scrollTo({
89
- top: (containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetTop) - 50,
90
- behavior: 'smooth'
91
- }) : containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.scrollIntoView();
84
+ if (typeof scrollContainer.scrollTo !== 'function') return;
85
+
86
+ if (containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetTop) {
87
+ var _containerRef$current2, _containerRef$current3;
88
+
89
+ scrollContainer.scrollTo.length === 2 ? scrollContainer.scrollTo(0, (containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current2 = containerRef.current) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.offsetTop) - 50) : scrollContainer.scrollTo({
90
+ top: (containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current3 = containerRef.current) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.offsetTop) - 50,
91
+ behavior: 'smooth'
92
+ });
93
+ return;
94
+ }
95
+
96
+ containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current4 = containerRef.current) === null || _containerRef$current4 === void 0 ? void 0 : _containerRef$current4.scrollIntoView();
92
97
  }, [shouldScroll, edit]);
93
98
  var displayTotal = showLastIndex ? total : total - 1;
94
99
  return _jsxs("div", {
@@ -99,7 +104,7 @@ var Step = function Step(_ref) {
99
104
  children: [_jsxs("div", {
100
105
  children: [(index !== total - 1 || showLastIndex) && _jsx("span", {
101
106
  className: "igloo-step-label-index",
102
- children: specialDisplayIndex(index + 1)
107
+ children: String(index + 1).padStart(2, '0')
103
108
  }), _jsx("span", {
104
109
  className: "igloo-step-label-text",
105
110
  children: label
@@ -15,17 +15,18 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
15
15
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
16
 
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
- import { useState, useContext, useEffect, useReducer } from 'react';
18
+ import { useState, useContext, useEffect, useReducer, useRef } from 'react';
19
19
  import Step from '../step';
20
20
  import { calcNamePath } from '../../utils/form-utils';
21
21
  import FormContext from '../../form-context';
22
+ import StepContext from '../../form-step-context';
22
23
  import './style/index.less';
23
24
  import invariant from 'invariant';
24
25
 
25
26
  var Steps = function Steps(_ref) {
26
- var name = _ref.name,
27
- parentName = _ref.parentName,
27
+ var parentName = _ref.parentName,
28
28
  _ref$config = _ref.config,
29
+ name = _ref$config.name,
29
30
  _ref$config$elements = _ref$config.elements,
30
31
  elements = _ref$config$elements === void 0 ? [] : _ref$config$elements,
31
32
  _ref$config$showLastI = _ref$config.showLastIndex,
@@ -57,6 +58,8 @@ var Steps = function Steps(_ref) {
57
58
  _ = _useReducer2[0],
58
59
  dispatch = _useReducer2[1];
59
60
 
61
+ var sections = useRef(new Map());
62
+
60
63
  var _useContext = useContext(FormContext),
61
64
  form = _useContext.form,
62
65
  registerDependencies = _useContext.registerDependencies;
@@ -168,24 +171,33 @@ var Steps = function Steps(_ref) {
168
171
  typeof onEdit === 'function' && onEdit(index);
169
172
  };
170
173
 
174
+ var registerSection = function registerSection(name, toggle) {
175
+ sections.current.set(name, toggle);
176
+ };
177
+
171
178
  return _jsx("div", {
172
179
  className: 'igloo-steps-container',
173
180
  children: _jsx("div", {
174
181
  className: 'igloo-steps-content',
175
182
  children: renderElements.map(function (child, index) {
176
183
  invariant(child.type === 'Step', 'Child of steps should be Step');
177
- return _jsx(Step, {
178
- config: child,
179
- parentName: calcNamePath(parentName, name),
180
- index: index,
181
- total: renderElements.length,
182
- preview: current > index,
183
- edit: current === index,
184
- handleNext: handleNext,
185
- handleEdit: handleEdit,
186
- showLastIndex: showLastIndex,
187
- shouldScroll: shouldScroll
188
- }, child.key || child.name);
184
+ return _jsx(StepContext.Provider, {
185
+ value: {
186
+ registerSection: registerSection
187
+ },
188
+ children: _jsx(Step, {
189
+ config: child,
190
+ parentName: calcNamePath(parentName, name),
191
+ index: index,
192
+ total: renderElements.length,
193
+ preview: current > index,
194
+ edit: current === index,
195
+ handleNext: handleNext,
196
+ handleEdit: handleEdit,
197
+ showLastIndex: showLastIndex,
198
+ shouldScroll: shouldScroll
199
+ }, child.key || child.name)
200
+ });
189
201
  })
190
202
  })
191
203
  });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { FormItemName } from '@/types';
3
+ declare const _default: React.Context<{
4
+ registerSection: (name: FormItemName | FormItemName[], toggle: (collapsed: boolean) => void) => void;
5
+ }>;
6
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export default /*#__PURE__*/React.createContext({
3
+ registerSection: function registerSection() {}
4
+ });
@@ -29,7 +29,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
29
29
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30
30
 
31
31
  import { jsx as _jsx } from "react/jsx-runtime";
32
- import { useState } from 'react';
32
+ import { useState, useRef } from 'react';
33
33
  import FormContext from '../form-context';
34
34
  import messages from './messages';
35
35
  import './style/index.less';
@@ -67,19 +67,16 @@ var FreeForm = function FreeForm(props) {
67
67
  submitting = _useState2[0],
68
68
  setSubmitting = _useState2[1];
69
69
 
70
- var _useState3 = useState({}),
71
- _useState4 = _slicedToArray(_useState3, 2),
72
- dependents = _useState4[0],
73
- setDependents = _useState4[1];
70
+ var dependents = useRef({});
74
71
 
75
- var _useState5 = useState(formProp || innerForm),
76
- _useState6 = _slicedToArray(_useState5, 1),
77
- form = _useState6[0];
72
+ var _useState3 = useState(formProp || innerForm),
73
+ _useState4 = _slicedToArray(_useState3, 1),
74
+ form = _useState4[0];
78
75
 
79
- var _useState7 = useState(false),
80
- _useState8 = _slicedToArray(_useState7, 2),
81
- firstModifiedCalled = _useState8[0],
82
- callFirstModified = _useState8[1];
76
+ var _useState5 = useState(false),
77
+ _useState6 = _slicedToArray(_useState5, 2),
78
+ firstModifiedCalled = _useState6[0],
79
+ callFirstModified = _useState6[1];
83
80
 
84
81
  var validateMessages = localesProp.validateMessages,
85
82
  locales = _objectWithoutProperties(localesProp, _excluded);
@@ -129,35 +126,24 @@ var FreeForm = function FreeForm(props) {
129
126
 
130
127
  var registerDependencies = function registerDependencies(field, updater) {
131
128
  if (Array.isArray(field)) {
132
- setDependents(function (deps) {
133
- var newDeps = _objectSpread({}, deps);
129
+ field.forEach(function (name) {
130
+ var key = Array.isArray(name) ? name.join() : name;
134
131
 
135
- field.forEach(function (name) {
136
- var key = Array.isArray(name) ? name.join() : name;
137
-
138
- if (!newDeps[key]) {
139
- newDeps[key] = [];
140
- }
132
+ if (!dependents.current[key]) {
133
+ dependents.current[key] = [];
134
+ }
141
135
 
142
- newDeps[key].push(updater);
143
- });
144
- return newDeps;
136
+ dependents.current[key].push(updater);
145
137
  });
146
- return;
147
138
  }
148
139
 
149
- setDependents(function (deps) {
150
- var newDeps = _objectSpread({}, deps);
140
+ var key = Array.isArray(field) ? field.join() : field;
151
141
 
152
- var key = Array.isArray(field) ? field.join() : field;
153
-
154
- if (!newDeps[key]) {
155
- newDeps[key] = [];
156
- }
142
+ if (!dependents.current[key]) {
143
+ dependents.current[key] = [];
144
+ }
157
145
 
158
- newDeps[key].push(updater);
159
- return newDeps;
160
- });
146
+ dependents.current[key].push(updater);
161
147
  };
162
148
 
163
149
  var handleValuesChange = function handleValuesChange(changedFields) {
@@ -170,14 +156,14 @@ var FreeForm = function FreeForm(props) {
170
156
  var changedField = changedFields[0].name;
171
157
  var changedKey = Array.isArray(changedField) ? changedField.join() : changedField;
172
158
 
173
- if (dependents[changedKey]) {
174
- dependents[changedKey].forEach(function (updater) {
159
+ if (dependents.current[changedKey]) {
160
+ dependents.current[changedKey].forEach(function (updater) {
175
161
  return updater();
176
162
  });
177
163
  }
178
164
 
179
- if (dependents['SUBSCRIBE_ALL']) {
180
- dependents['SUBSCRIBE_ALL'].forEach(function (updater) {
165
+ if (dependents.current['SUBSCRIBE_ALL']) {
166
+ dependents.current['SUBSCRIBE_ALL'].forEach(function (updater) {
181
167
  return updater();
182
168
  });
183
169
  }
@@ -42,9 +42,9 @@ IglooInputNumber.formItemPropsHandler = function (config) {
42
42
  return {
43
43
  getValueFromEvent: function getValueFromEvent(e) {
44
44
  var value = e.target.value;
45
- var str = value.replaceAll(/[^0-9\.]/g, '');
45
+ var str = value.replaceAll(/[^0-9\.-]/g, '');
46
46
 
47
- if (str.endsWith('.') || str.includes('.') && str.endsWith('0')) {
47
+ if (str.endsWith('.') || str.includes('.') && str.endsWith('0') || str === '-') {
48
48
  return str;
49
49
  }
50
50
 
@@ -26,6 +26,7 @@
26
26
  "Edit": "Edit",
27
27
  "Error Report": "Error Report",
28
28
  "Filter": "Filter",
29
+ "I agree to the Igloo": "I agree to the Igloo",
29
30
  "I declare that the statements I have described above are true. I further declare that the loss occured was accidental, without planning or consensus with other parties.": "I declare that the statements I have described above are true. I further declare that the loss occured was accidental, without planning or consensus with other parties.",
30
31
  "Import": "Import",
31
32
  "It is recommended to select no more than {colMax} metrics to ensure the default visibility of each column input.": "It is recommended to select no more than {colMax} metrics to ensure the default visibility of each column input.",
@@ -37,15 +38,20 @@
37
38
  "No preview for this file. Only support image, video or PDF file.": "No preview for this file. Only support image, video or PDF file.",
38
39
  "Numbers only, please omit \" \" or \"-\".": "Numbers only, please omit \" \" or \"-\".",
39
40
  "OK": "OK",
41
+ "Once you’re happy with the above, and you’ve checked the box below, please go ahead and submit your activation.": "Once you’re happy with the above, and you’ve checked the box below, please go ahead and submit your activation.",
40
42
  "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.": "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.",
41
43
  "Optional": "Optional",
42
44
  "Other Reason": "Other Reason",
43
45
  "Please enter a valid date.": "Please enter a valid date.",
44
46
  "Please enter a valid time.": "Please enter a valid time.",
47
+ "Please input a date after {date}": "Please input a date after {date}",
48
+ "Please input a date before {date}": "Please input a date before {date}",
49
+ "Please read and agree to Igloo Terms of Use and Privacy Policy": "Please read and agree to Igloo Terms of Use and Privacy Policy",
45
50
  "Please select": "Please select",
46
51
  "Please select a file type": "Please select a file type",
47
52
  "Please take a moment to review what you’ve told us above.": "Please take a moment to review what you’ve told us above.",
48
53
  "Previous": "Previous",
54
+ "Privacy Policy": "Privacy Policy",
49
55
  "Processing": "Processing",
50
56
  "Processing progress cannot be updated at the moment. Don’t worry! All your file data are still in progress.": "Processing progress cannot be updated at the moment. Don’t worry! All your file data are still in progress.",
51
57
  "Quantity of files should be less than {limit}": "Quantity of files should be less than {limit}",
@@ -56,12 +62,14 @@
56
62
  "Reset All Filters": "Reset All Filters",
57
63
  "Result": "Result",
58
64
  "Result: Success {success_num}; Error {fail_num}": "Result: Success {success_num}; Error {fail_num}",
65
+ "Review and Submit": "Review and Submit",
59
66
  "Rows per page": "Rows per page",
60
67
  "Search": "Search",
61
68
  "Searching...": "Searching...",
62
69
  "Select All": "Select All",
63
70
  "Send OTP": "Send OTP",
64
71
  "Submit": "Submit",
72
+ "Terms of Use": "Terms of Use",
65
73
  "The file type is not supported.": "The file type is not supported.",
66
74
  "There are no options available currently": "There are no options available currently",
67
75
  "This Month": "This Month",
@@ -69,6 +77,7 @@
69
77
  "Uploading": "Uploading",
70
78
  "We support CSV or XLSX files (less than 20M each).": "We support CSV or XLSX files (less than 20M each).",
71
79
  "Yes, Close": "Yes, Close",
80
+ "and": "and",
72
81
  "browse": "browse",
73
82
  "or": "or",
74
83
  "{beginIndex}-{endIndex} of {total}": "{beginIndex}-{endIndex} of {total}",
@@ -26,6 +26,7 @@
26
26
  "Edit": "Ubah",
27
27
  "Error Report": "Laporan Kesalahan",
28
28
  "Filter": "Saring",
29
+ "I agree to the Igloo": "",
29
30
  "I declare that the statements I have described above are true. I further declare that the loss occured was accidental, without planning or consensus with other parties.": "Saya menyatakan bahwa pernyataan yang saya jelaskan di atas adalah benar. Selanjutnya saya nyatakan bahwa kerugian yang terjadi merupakan ketidaksengajaan, dan terjadi tanpa perencanaan atau hasil musyawarah dengan pihak lain.",
30
31
  "Import": "Impor",
31
32
  "It is recommended to select no more than {colMax} metrics to ensure the default visibility of each column input.": "Direkomendasikan untuk memilih tidak lebih dari {colMax} metrik untuk memastikan sudut pandang default dari setiap isi kolom.",
@@ -37,15 +38,20 @@
37
38
  "No preview for this file. Only support image, video or PDF file.": "Tidak ada pratinjau untuk file ini. Hanya mendukung file gambar, video atau PDF.",
38
39
  "Numbers only, please omit \" \" or \"-\".": "Angka saja, harap hilangkan \" \" atau \"-\".",
39
40
  "OK": "oke",
41
+ "Once you’re happy with the above, and you’ve checked the box below, please go ahead and submit your activation.": "",
40
42
  "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.": "Jika Anda puas dengan apa yang telah disampaikan, dan Anda telah memeriksa deklarasi tersebut, silakan lanjutkan dan ajukan klaim Anda.",
41
43
  "Optional": "Pilihan",
42
44
  "Other Reason": "Alasan lain",
43
45
  "Please enter a valid date.": "Silakan tulis tanggal valid",
44
46
  "Please enter a valid time.": "Harap masukkan waktu yang valid",
47
+ "Please input a date after {date}": "",
48
+ "Please input a date before {date}": "",
49
+ "Please read and agree to Igloo Terms of Use and Privacy Policy": "",
45
50
  "Please select": "Silahkan pilih",
46
51
  "Please select a file type": "Silakan pilih tipe dokumen",
47
52
  "Please take a moment to review what you’ve told us above.": "Mohon luangkan waktu sejenak untuk meninjau ulang seluruh data yang Anda telah sampaikan sebelumnya .",
48
53
  "Previous": "Sebelumnya",
54
+ "Privacy Policy": "",
49
55
  "Processing": "Sedang diproses",
50
56
  "Processing progress cannot be updated at the moment. Don’t worry! All your file data are still in progress.": "Perkembangan terkait proses belum dapat diperbarui saat ini. Jangan khawatir! Semua data Anda masih dalam proses .",
51
57
  "Quantity of files should be less than {limit}": "Jumlah dokumen tidak bisa lebih dari {limit}",
@@ -56,12 +62,14 @@
56
62
  "Reset All Filters": "Setel ulang filter",
57
63
  "Result": "Hasil",
58
64
  "Result: Success {success_num}; Error {fail_num}": "Hasil: Sukses {success_num}; Kesalahan {fail_num}",
65
+ "Review and Submit": "",
59
66
  "Rows per page": "Baris per halaman",
60
67
  "Search": "Mencari",
61
68
  "Searching...": "Mencari...",
62
69
  "Select All": "Pilih Semua",
63
70
  "Send OTP": "Kirim OTP",
64
71
  "Submit": "Ajukan",
72
+ "Terms of Use": "",
65
73
  "The file type is not supported.": "Jenis file tidak didukung.",
66
74
  "There are no options available currently": "Tidak ada opsi yang tersedia saat ini",
67
75
  "This Month": "Bulan ini",
@@ -69,6 +77,7 @@
69
77
  "Uploading": "Mengunggah",
70
78
  "We support CSV or XLSX files (less than 20M each).": "Kami mendukung file CSV atau XLSX (Ukuran maksimal 20 MB) .",
71
79
  "Yes, Close": "Ya, Tutup",
80
+ "and": "",
72
81
  "browse": "Telusuri",
73
82
  "or": "atau",
74
83
  "{beginIndex}-{endIndex} of {total}": "{beginIndex}-{endIndex} dari {total}",
@@ -26,6 +26,7 @@
26
26
  "Edit": "แก้ไข",
27
27
  "Error Report": "รายงานข้อผิดพลาด",
28
28
  "Filter": "กรอง",
29
+ "I agree to the Igloo": "",
29
30
  "I declare that the statements I have described above are true. I further declare that the loss occured was accidental, without planning or consensus with other parties.": "ข้าพเจ้ายืนยันว่าข้อความที่ข้าพเจ้าได้อธิบายข้างต้นนั้นเป็นความจริง และยืนยันว่าความเสียหายที่เกิดขึ้นนั้นเกิดจากอุบัติเหตุ ปราศจากการวางแผน หรือ การเห็นพ้องร่วมกันกับฝ่ายอื่น",
30
31
  "Import": "นำเข้า",
31
32
  "It is recommended to select no more than {colMax} metrics to ensure the default visibility of each column input.": "แนะนำให้เลือกจำนวนไม่เกิน {colMax} เพื่อให้แน่ใจว่ามองเห็นค่าเริ่มต้นของข้อมูลแต่ละคอลัมน์",
@@ -37,15 +38,20 @@
37
38
  "No preview for this file. Only support image, video or PDF file.": "ไม่มีการแสดงตัวอย่างสำหรับไฟล์นี้ รองรับเฉพาะรูปภาพ, วิดีโอ หรือ ไฟล์ PDF",
38
39
  "Numbers only, please omit \" \" or \"-\".": "ตัวเลขเท่านั้น โปรดเว้น \" \" หรือ \"-\"",
39
40
  "OK": "ตกลง",
41
+ "Once you’re happy with the above, and you’ve checked the box below, please go ahead and submit your activation.": "",
40
42
  "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.": "หากตรวจสอบแล้วและต้องการยืนยันข้อมูลข้างต้น กรุณากดดำเนินการต่อและยืนยันการเคลมของคุณ",
41
43
  "Optional": "ไม่จำเป็น",
42
44
  "Other Reason": "เหตุผลอื่น",
43
45
  "Please enter a valid date.": "กรุณากรอกวันที่ถูกต้อง",
44
46
  "Please enter a valid time.": "กรุณากรอกเวลาที่ถูกต้อง",
47
+ "Please input a date after {date}": "",
48
+ "Please input a date before {date}": "",
49
+ "Please read and agree to Igloo Terms of Use and Privacy Policy": "",
45
50
  "Please select": "โปรดเลือก",
46
51
  "Please select a file type": "โปรดเลือกประเภทไฟล์",
47
52
  "Please take a moment to review what you’ve told us above.": "กรุณาอ่านทบทวนข้อมูลที่คุณกรอกก่อนกดยืนยัน",
48
53
  "Previous": "ก่อนหน้านี้",
54
+ "Privacy Policy": "",
49
55
  "Processing": "กำลังประมวลผล",
50
56
  "Processing progress cannot be updated at the moment. Don’t worry! All your file data are still in progress.": "ไม่สามารถอัปเดตการประมวลผลได้ในขณะนี้ ไม่ต้องกังวล! ไฟล์ของคุณทั้งหมดกำลังอยู่ระหว่างดำเนินการ",
51
57
  "Quantity of files should be less than {limit}": "จำนวนไฟล์ควรน้อยกว่า {limit}",
@@ -56,12 +62,14 @@
56
62
  "Reset All Filters": "รีเซทตัวกรอง",
57
63
  "Result": "ผลลัพธ์",
58
64
  "Result: Success {success_num}; Error {fail_num}": "ผลลัพธ์: สำเร็จ {success_num}; ข้อผิดพลาด {fail_num}",
65
+ "Review and Submit": "",
59
66
  "Rows per page": "แถวต่อหน้า",
60
67
  "Search": "ค้นหา",
61
68
  "Searching...": "กำลังค้นหา...",
62
69
  "Select All": "เลือกทั้งหมด",
63
70
  "Send OTP": "ส่ง OTP",
64
71
  "Submit": "ส่ง/ยืนยัน",
72
+ "Terms of Use": "",
65
73
  "The file type is not supported.": "ประเภทไฟล์ไม่รองรับ",
66
74
  "There are no options available currently": "ไม่มีตัวเลือกในขณะนี้",
67
75
  "This Month": "เดือนนี้",
@@ -69,6 +77,7 @@
69
77
  "Uploading": "กำลังอัพโหลด",
70
78
  "We support CSV or XLSX files (less than 20M each).": "เรารองรับ CSV หรือ XLSX ไฟล์ (แต่ละไฟล์ขนาดไฟล์ต้องไม่เกิน 20M)",
71
79
  "Yes, Close": "ใช่, ปิด",
80
+ "and": "",
72
81
  "browse": "ค้นหา",
73
82
  "or": "หรือ",
74
83
  "{beginIndex}-{endIndex} of {total}": "{beginIndex}-{endIndex} ของ {total}",
@@ -26,6 +26,7 @@
26
26
  "Edit": "Sửa",
27
27
  "Error Report": "Báo cáo lỗi",
28
28
  "Filter": "Lọc",
29
+ "I agree to the Igloo": "",
29
30
  "I declare that the statements I have described above are true. I further declare that the loss occured was accidental, without planning or consensus with other parties.": "Tôi tuyên bố rằng những điều tôi đã mô tả ở trên là đúng sự thật. Tôi tuyên bố thêm rằng tổn thất xảy ra là do ngẫu nhiên, không có kế hoạch hoặc sự đồng thuận với các bên khác.",
30
31
  "Import": "Nhập",
31
32
  "It is recommended to select no more than {colMax} metrics to ensure the default visibility of each column input.": "Vui lòng chọn không quá {colMax} cột.",
@@ -37,15 +38,20 @@
37
38
  "No preview for this file. Only support image, video or PDF file.": "Không có bản xem trước cho tệp này. Chỉ hỗ trợ hình ảnh, video hoặc tệp PDF.",
38
39
  "Numbers only, please omit \" \" or \"-\".": "Chỉ số, vui lòng bỏ qua \" \" hoặc \"-\".",
39
40
  "OK": "Vâng",
41
+ "Once you’re happy with the above, and you’ve checked the box below, please go ahead and submit your activation.": "",
40
42
  "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.": "Vui lòng xác nhận và gửi yêu cầu bồi thường.",
41
43
  "Optional": "Không bắt buộc",
42
44
  "Other Reason": "Lý do khác",
43
45
  "Please enter a valid date.": "Vui lòng nhập đúng ngày:",
44
46
  "Please enter a valid time.": "Vui lòng nhập thời gian hợp lệ.",
47
+ "Please input a date after {date}": "",
48
+ "Please input a date before {date}": "",
49
+ "Please read and agree to Igloo Terms of Use and Privacy Policy": "",
45
50
  "Please select": "Xin hãy lựa chọn",
46
51
  "Please select a file type": "Vui lòng chọn loại tệp tin:",
47
52
  "Please take a moment to review what you’ve told us above.": "Vui lòng kiểm tra lại thông tin đã nhập",
48
53
  "Previous": "Trước",
54
+ "Privacy Policy": "",
49
55
  "Processing": "Đang xử lý",
50
56
  "Processing progress cannot be updated at the moment. Don’t worry! All your file data are still in progress.": "Dữ liệu chưa được cập nhật và đang trong quá trình xử lý.",
51
57
  "Quantity of files should be less than {limit}": "Số lượng tệp tin không vượt quá {limit}",
@@ -56,12 +62,14 @@
56
62
  "Reset All Filters": "Xóa lọc",
57
63
  "Result": "Kết quả",
58
64
  "Result: Success {success_num}; Error {fail_num}": "Kết quả: sự thành công {success_num}; lỗi {fail_num}",
65
+ "Review and Submit": "",
59
66
  "Rows per page": "Dòng trên trang",
60
67
  "Search": "Tìm kiếm",
61
68
  "Searching...": "Đang tìm kiếm...",
62
69
  "Select All": "Chọn tất cả",
63
70
  "Send OTP": "Gửi OTP",
64
71
  "Submit": "Gửi",
72
+ "Terms of Use": "",
65
73
  "The file type is not supported.": "Loại tệp không được hỗ trợ.",
66
74
  "There are no options available currently": "Hiện tại không có tùy chọn nào",
67
75
  "This Month": "Tháng này",
@@ -69,6 +77,7 @@
69
77
  "Uploading": "Đang tải lên",
70
78
  "We support CSV or XLSX files (less than 20M each).": "Hỗ trợ .CSV hoặc .XLSX (file nhỏ hơn 20MB)",
71
79
  "Yes, Close": "Đóng",
80
+ "and": "",
72
81
  "browse": "duyệt",
73
82
  "or": "hoặc",
74
83
  "{beginIndex}-{endIndex} of {total}": "{beginIndex}-{endIndex} trên {total}",