@univerjs/sheets-data-validation-ui 0.4.2-nightly.202410291606 → 0.4.2-nightly.202410310419

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/es/index.js CHANGED
@@ -3,20 +3,19 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
5
  import React, { useState, forwardRef, useRef, createElement, useMemo, useEffect } from "react";
6
- import { Inject, LocaleService, Disposable, DataValidationErrorStyle, useDependency, ICommandService, numfmt, CellValueType, UniverInstanceType, toDisposable, IUniverInstanceService, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DisposableCollection, CommandType, BuildTextUtils, DataValidationRenderMode, DataValidationType, IConfigService, UndoCommand, RedoCommand, isUnitRangesEqual, debounce, shallowEqual, Injector, DataValidationStatus, ObjectMatrix, Range, Rectangle, queryObjectMatrix, Optional, RxDisposable, InterceptorEffectEnum, sequenceExecute, bufferDebounceTime, createInternalEditorID, isFormulaString, Tools, ThemeService, VerticalAlign, HorizontalAlign, DEFAULT_STYLES, WrapStrategy, DocumentDataModel, DEFAULT_EMPTY_DOCUMENT_VALUE, BooleanNumber, Plugin } from "@univerjs/core";
6
+ import { Inject, LocaleService, Disposable, DataValidationErrorStyle, useDependency, ICommandService, numfmt, CellValueType, UniverInstanceType, toDisposable, IUniverInstanceService, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DisposableCollection, CommandType, BuildTextUtils, DataValidationRenderMode, DataValidationType, IConfigService, UndoCommand, RedoCommand, isUnitRangesEqual, debounce, shallowEqual, Injector, DataValidationStatus, ObjectMatrix, Range, Rectangle, queryObjectMatrix, Optional, RxDisposable, InterceptorEffectEnum, sequenceExecute, bufferDebounceTime, isFormulaString, Tools, ThemeService, VerticalAlign, HorizontalAlign, DEFAULT_STYLES, WrapStrategy, DocumentDataModel, DEFAULT_EMPTY_DOCUMENT_VALUE, BooleanNumber, Plugin } from "@univerjs/core";
7
7
  import { Button, DatePanel, RectPopup, Scrollbar, FormLayout, RadioGroup, Radio, Checkbox, Input, Select, DraggableList } from "@univerjs/design";
8
8
  import { DeviceInputEventType, IRenderManagerService, fixLineWidthByScale, Transform, Checkbox as Checkbox$1, FontCache, Shape, Rect, getFontStyleString, getDocsSkeletonPageSize, DocumentViewModel, DocumentSkeleton, Documents } from "@univerjs/engine-render";
9
- import { SetRangeValuesCommand, SheetsSelectionsService, getSheetCommandTarget, WorkbookEditablePermission, RangeProtectionPermissionEditPoint, WorksheetEditPermission, checkRangesEditablePermission, WorksheetSetCellStylePermission, SheetInterceptorService, INTERCEPTOR_POINT, InterceptCellContentPriority } from "@univerjs/sheets";
9
+ import { SheetInterceptorService, AFTER_CELL_EDIT_ASYNC, SetRangeValuesCommand, SheetsSelectionsService, getSheetCommandTarget, WorkbookEditablePermission, RangeProtectionPermissionEditPoint, WorksheetEditPermission, checkRangesEditablePermission, WorksheetSetCellStylePermission, INTERCEPTOR_POINT, InterceptCellContentPriority } from "@univerjs/sheets";
10
10
  import { SheetDataValidationModel, getCellValueOrigin, getDataValidationCellValue, deserializeListOptions, serializeListOptions, UpdateSheetDataValidationRangeCommand, UpdateSheetDataValidationSettingCommand, RemoveSheetDataValidationCommand, UpdateSheetDataValidationOptionsCommand, createDefaultNewRule, AddSheetDataValidationCommand, RemoveSheetAllDataValidationCommand, DATA_VALIDATION_PLUGIN_NAME, getDataValidationDiffMutations, DataValidationCacheService, DataValidationFormulaController, DataValidationFormulaService, getFormulaResult, isLegalFormulaResult, transformCheckboxValue, CHECKBOX_FORMULA_1, CHECKBOX_FORMULA_2 } from "@univerjs/sheets-data-validation";
11
11
  import { getPatternType } from "@univerjs/sheets-numfmt";
12
- import { IEditorBridgeService, SetCellEditVisibleOperation, SheetCanvasPopManagerService, SheetPermissionInterceptorBaseController, IMarkSelectionService, HoverManagerService, CellAlertManagerService, CellAlertType, IAutoFillService, APPLY_TYPE, virtualizeDiscreteRanges, getAutoFillRepeatRange, COPY_TYPE, rangeToDiscreteRange, PREDEFINED_HOOK_NAME, getRepeatRange, ISheetClipboardService, getCurrentRangeDisable$, AutoHeightController, SheetSkeletonManagerService } from "@univerjs/sheets-ui";
13
- import { IDialogService, KeyCode, ISidebarService, useObservable, ComponentManager, IZenZoneService, useEvent, MenuItemType, getMenuHiddenObservable, RibbonStartGroup, IMenuManagerService } from "@univerjs/ui";
12
+ import { SetCellEditVisibleOperation, SheetCanvasPopManagerService, IEditorBridgeService, SheetPermissionInterceptorBaseController, IMarkSelectionService, HoverManagerService, CellAlertManagerService, CellAlertType, IAutoFillService, APPLY_TYPE, virtualizeDiscreteRanges, getAutoFillRepeatRange, COPY_TYPE, rangeToDiscreteRange, PREDEFINED_HOOK_NAME, getRepeatRange, ISheetClipboardService, getCurrentRangeDisable$, AutoHeightController, SheetSkeletonManagerService } from "@univerjs/sheets-ui";
13
+ import { IDialogService, KeyCode, ISidebarService, useObservable, ComponentManager, IZenZoneService, useEvent, useSidebarClick, MenuItemType, getMenuHiddenObservable, RibbonStartGroup, IMenuManagerService } from "@univerjs/ui";
14
14
  import { DataValidatorRegistryService, DataValidationModel, DataValidatorRegistryScope, TWO_FORMULA_OPERATOR_COUNT, getRuleOptions, getRuleSetting } from "@univerjs/data-validation";
15
15
  import { RichTextEditingMutation } from "@univerjs/docs";
16
16
  import { filter, BehaviorSubject, distinctUntilChanged, Subject, debounceTime, bufferTime } from "rxjs";
17
17
  import { deserializeRangeWithSheet, serializeRange } from "@univerjs/engine-formula";
18
- import { RangeSelector } from "@univerjs/sheets-formula-ui";
19
- import { TextEditor } from "@univerjs/docs-ui";
18
+ import { RangeSelector, FormulaEditor } from "@univerjs/sheets-formula-ui";
20
19
  var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
21
20
  function getDefaultExportFromCjs(x) {
22
21
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x.default : x;
@@ -406,12 +405,12 @@ var __defProp$f = Object.defineProperty, __getOwnPropDesc$f = Object.getOwnPrope
406
405
  return kind && result && __defProp$f(target, key, result), result;
407
406
  }, "__decorateClass$f"), __decorateParam$f = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$f"), _a;
408
407
  let DataValidationRejectInputController = (_a = class extends Disposable {
409
- constructor(_editorBridgeService, _dataValidationModel, _dataValidatorRegistryService, _dialogService, _localeService) {
410
- super(), this._editorBridgeService = _editorBridgeService, this._dataValidationModel = _dataValidationModel, this._dataValidatorRegistryService = _dataValidatorRegistryService, this._dialogService = _dialogService, this._localeService = _localeService, this._initEditorBridgeInterceptor();
408
+ constructor(_sheetInterceptorService, _dataValidationModel, _dataValidatorRegistryService, _dialogService, _localeService) {
409
+ super(), this._sheetInterceptorService = _sheetInterceptorService, this._dataValidationModel = _dataValidationModel, this._dataValidatorRegistryService = _dataValidatorRegistryService, this._dialogService = _dialogService, this._localeService = _localeService, this._initEditorBridgeInterceptor();
411
410
  }
412
411
  _initEditorBridgeInterceptor() {
413
- this._editorBridgeService.interceptor.intercept(
414
- this._editorBridgeService.interceptor.getInterceptPoints().AFTER_CELL_EDIT_ASYNC,
412
+ this._sheetInterceptorService.writeCellInterceptor.intercept(
413
+ AFTER_CELL_EDIT_ASYNC,
415
414
  {
416
415
  handler: /* @__PURE__ */ __name(async (cellPromise, context, next) => {
417
416
  var _a18;
@@ -489,7 +488,7 @@ let DataValidationRejectInputController = (_a = class extends Disposable {
489
488
  }
490
489
  }, __name(_a, "DataValidationRejectInputController"), _a);
491
490
  DataValidationRejectInputController = __decorateClass$f([
492
- __decorateParam$f(0, IEditorBridgeService),
491
+ __decorateParam$f(0, Inject(SheetInterceptorService)),
493
492
  __decorateParam$f(1, Inject(SheetDataValidationModel)),
494
493
  __decorateParam$f(2, Inject(DataValidatorRegistryService)),
495
494
  __decorateParam$f(3, IDialogService),
@@ -1226,12 +1225,12 @@ function DataValidationDetail() {
1226
1225
  options: newOptions
1227
1226
  }
1228
1227
  ));
1229
- }, "handleUpdateRuleOptions"), handlePanelClick = /* @__PURE__ */ __name((e) => {
1228
+ }, "handleUpdateRuleOptions");
1229
+ return useSidebarClick((e) => {
1230
1230
  var _a19;
1231
1231
  const handleOutClick = (_a19 = rangeSelectorActionsRef.current) == null ? void 0 : _a19.handleOutClick;
1232
- handleOutClick && handleOutClick(e, isFocusRangeSelectorSet);
1233
- }, "handlePanelClick");
1234
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$3.dataValidationDetail, onClick: handlePanelClick, children: [
1232
+ handleOutClick && handleOutClick(e, () => isFocusRangeSelectorSet(!1));
1233
+ }), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: styles$3.dataValidationDetail, children: [
1235
1234
  /* @__PURE__ */ jsxRuntimeExports.jsx(
1236
1235
  FormLayout,
1237
1236
  {
@@ -1244,6 +1243,7 @@ function DataValidationDetail() {
1244
1243
  subUnitId,
1245
1244
  initValue: rangeStr,
1246
1245
  onChange: handleUpdateRuleRanges,
1246
+ onFocus: /* @__PURE__ */ __name(() => isFocusRangeSelectorSet(!0), "onFocus"),
1247
1247
  isFocus: isFocusRangeSelector,
1248
1248
  actions: rangeSelectorActionsRef.current,
1249
1249
  onVerify: /* @__PURE__ */ __name((isValid) => setIsRangeError(!isValid), "onVerify")
@@ -2277,23 +2277,30 @@ function CheckboxFormulaInput(props) {
2277
2277
  __name(CheckboxFormulaInput, "CheckboxFormulaInput");
2278
2278
  function CustomFormulaInput(props) {
2279
2279
  var _a18;
2280
- const { unitId, subUnitId, value, onChange, showError, validResult } = props, formula1Res = showError ? validResult == null ? void 0 : validResult.formula1 : "";
2281
- return /* @__PURE__ */ jsxRuntimeExports.jsx(FormLayout, { error: formula1Res, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2282
- TextEditor,
2280
+ const { unitId, subUnitId, value, onChange, showError, validResult } = props, formula1Res = showError ? validResult == null ? void 0 : validResult.formula1 : void 0, formulaEditorActionsRef = useRef({}), [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(!1);
2281
+ return useSidebarClick((e) => {
2282
+ var _a19;
2283
+ const handleOutClick = (_a19 = formulaEditorActionsRef.current) == null ? void 0 : _a19.handleOutClick;
2284
+ handleOutClick && handleOutClick(e, () => isFocusFormulaEditorSet(!1));
2285
+ }), /* @__PURE__ */ jsxRuntimeExports.jsx(
2286
+ FormulaEditor,
2283
2287
  {
2284
- value: (_a18 = value == null ? void 0 : value.formula1) != null ? _a18 : "",
2285
- id: createInternalEditorID(`dataValidation-custom-formula-${unitId}-${subUnitId}`),
2286
- onChange: /* @__PURE__ */ __name((newValue) => {
2288
+ initValue: (_a18 = value == null ? void 0 : value.formula1) != null ? _a18 : "",
2289
+ unitId,
2290
+ subUnitId,
2291
+ isFocus: isFocusFormulaEditor,
2292
+ onChange: /* @__PURE__ */ __name((v = "") => {
2293
+ const formula = v || "";
2287
2294
  onChange == null || onChange({
2288
2295
  ...value,
2289
- formula1: (newValue != null ? newValue : "").trim()
2296
+ formula1: formula.trim()
2290
2297
  });
2291
2298
  }, "onChange"),
2292
- onlyInputFormula: !0,
2293
- openForSheetUnitId: unitId,
2294
- openForSheetSubUnitId: subUnitId
2299
+ errorText: formula1Res,
2300
+ onFocus: /* @__PURE__ */ __name(() => isFocusFormulaEditorSet(!0), "onFocus"),
2301
+ actions: formulaEditorActionsRef.current
2295
2302
  }
2296
- ) });
2303
+ );
2297
2304
  }
2298
2305
  __name(CustomFormulaInput, "CustomFormulaInput");
2299
2306
  function r(e) {
@@ -2486,8 +2493,12 @@ function ListFormulaInput(props) {
2486
2493
  }), setFormulaStr("="), setLocalError(localeService.t("dataValidation.validFail.formulaError")));
2487
2494
  },
2488
2495
  [formula2, onChange]
2489
- );
2490
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2496
+ ), formulaEditorActionsRef = useRef({}), [isFocusFormulaEditor, isFocusFormulaEditorSet] = useState(!1);
2497
+ return useSidebarClick((e) => {
2498
+ var _a18;
2499
+ const handleOutClick = (_a18 = formulaEditorActionsRef.current) == null ? void 0 : _a18.handleOutClick;
2500
+ handleOutClick && handleOutClick(e, () => isFocusFormulaEditorSet(!1));
2501
+ }), /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2491
2502
  /* @__PURE__ */ jsxRuntimeExports.jsx(FormLayout, { label: localeService.t("dataValidation.list.options"), children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
2492
2503
  RadioGroup,
2493
2504
  {
@@ -2505,20 +2516,22 @@ function ListFormulaInput(props) {
2505
2516
  }
2506
2517
  ) }),
2507
2518
  isFormulaStr === "1" ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
2508
- /* @__PURE__ */ jsxRuntimeExports.jsx(FormLayout, { error: formula1Res || localError, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2509
- TextEditor,
2519
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2520
+ FormulaEditor,
2510
2521
  {
2511
- id: createInternalEditorID(`list-ref-range-${unitId}-${subUnitId}`),
2512
- value: formulaStr,
2513
- openForSheetUnitId: unitId,
2514
- openForSheetSubUnitId: subUnitId,
2515
- onlyInputFormula: !0,
2516
- onChange: /* @__PURE__ */ __name(async (newString) => {
2517
- const str = (newString != null ? newString : "").trim();
2522
+ initValue: formulaStr,
2523
+ unitId,
2524
+ subUnitId,
2525
+ isFocus: isFocusFormulaEditor,
2526
+ onChange: /* @__PURE__ */ __name((v = "") => {
2527
+ const str = (v != null ? v : "").trim();
2518
2528
  setFormulaStrCopy(str), updateFormula(str);
2519
- }, "onChange")
2529
+ }, "onChange"),
2530
+ errorText: formula1Res || localError || void 0,
2531
+ onFocus: /* @__PURE__ */ __name(() => isFocusFormulaEditorSet(!0), "onFocus"),
2532
+ actions: formulaEditorActionsRef.current
2520
2533
  }
2521
- ) }),
2534
+ ),
2522
2535
  /* @__PURE__ */ jsxRuntimeExports.jsx(FormLayout, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: containerRef, children: refFinalList.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsx(Template, { item, commonProps: { onItemChange: handleRefItemChange }, style: { marginBottom: 12 } }, item.id)) }) })
2523
2536
  ] }) : /* @__PURE__ */ jsxRuntimeExports.jsx(FormLayout, { error: formula1Res, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { ref: containerRef, style: { marginTop: "-12px" }, children: [
2524
2537
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -0,0 +1,176 @@
1
+ const locale = {
2
+ dataValidation: {
3
+ title: "Data validation",
4
+ validFail: {
5
+ value: "Please input a value",
6
+ common: "Please input value or formula",
7
+ number: "Please input number or formula",
8
+ formula: "Please input formula",
9
+ integer: "Please input integer or formula",
10
+ date: "Please input date or formula",
11
+ list: "Please input options",
12
+ listInvalid: "The list source must be a delimited list or a reference to a single row or column",
13
+ checkboxEqual: "Enter different values for ticked and unticked cell contents.",
14
+ formulaError: "The reference range contains invisible data, please readjust the range",
15
+ listIntersects: "The selected range cannot intersect with the scope of the rules",
16
+ primitive: "Formulas are not permitted for custom ticked and unticked values."
17
+ },
18
+ panel: {
19
+ title: "Data validation management",
20
+ addTitle: "Create new data validation",
21
+ removeAll: "Remove All",
22
+ add: "Add Rule",
23
+ range: "Ranges",
24
+ type: "Type",
25
+ options: "Advance options",
26
+ operator: "Operator",
27
+ removeRule: "Remove",
28
+ done: "Done",
29
+ formulaPlaceholder: "Please input value or formula",
30
+ valuePlaceholder: "Please input value",
31
+ formulaAnd: "and",
32
+ invalid: "Invalid",
33
+ showWarning: "Show warning",
34
+ rejectInput: "Reject input",
35
+ messageInfo: "Helper message",
36
+ showInfo: "Show help text for a selected cell",
37
+ rangeError: "Ranges are not legal",
38
+ allowBlank: "Allow blank values"
39
+ },
40
+ operators: {
41
+ between: "between",
42
+ greaterThan: "greater than",
43
+ greaterThanOrEqual: "greater than or equal",
44
+ lessThan: "less than",
45
+ lessThanOrEqual: "less than or equal",
46
+ equal: "equal",
47
+ notEqual: "not equal",
48
+ notBetween: "not between"
49
+ },
50
+ ruleName: {
51
+ between: "is between {FORMULA1} and {FORMULA2}",
52
+ greaterThan: "is greater than {FORMULA1}",
53
+ greaterThanOrEqual: "is greater than or equal to {FORMULA1}",
54
+ lessThan: "is less than {FORMULA1}",
55
+ lessThanOrEqual: "is less than or equal to {FORMULA1}",
56
+ equal: "is equal to {FORMULA1}",
57
+ notEqual: "is not equal to {FORMULA1}",
58
+ notBetween: "is not between {FORMULA1} and {FORMULA2}"
59
+ },
60
+ errorMsg: {
61
+ between: "Value must be between {FORMULA1} and {FORMULA2}",
62
+ greaterThan: "Value must be greater than {FORMULA1}",
63
+ greaterThanOrEqual: "Value must be greater than or equal to {FORMULA1}",
64
+ lessThan: "Value must be less than {FORMULA1}",
65
+ lessThanOrEqual: "Value must be less than or equal to {FORMULA1}",
66
+ equal: "Value must be equal to {FORMULA1}",
67
+ notEqual: "Value must be not equal to {FORMULA1}",
68
+ notBetween: "Value must be not between {FORMULA1} and {FORMULA2}"
69
+ },
70
+ any: {
71
+ title: "Any value",
72
+ error: "The content of this cell violates the validation rule"
73
+ },
74
+ date: {
75
+ title: "Date",
76
+ operators: {
77
+ between: "between",
78
+ greaterThan: "after",
79
+ greaterThanOrEqual: "on or after",
80
+ lessThan: "before",
81
+ lessThanOrEqual: "on or before",
82
+ equal: "equal",
83
+ notEqual: "not equal",
84
+ notBetween: "not between"
85
+ },
86
+ ruleName: {
87
+ between: "is between {FORMULA1} and {FORMULA2}",
88
+ greaterThan: "is after {FORMULA1}",
89
+ greaterThanOrEqual: "is on or after {FORMULA1}",
90
+ lessThan: "is before {FORMULA1}",
91
+ lessThanOrEqual: "is on or before {FORMULA1}",
92
+ equal: "is {FORMULA1}",
93
+ notEqual: "is not {FORMULA1}",
94
+ notBetween: "is not between {FORMULA1}"
95
+ },
96
+ errorMsg: {
97
+ between: "Value must be a legal date and between {FORMULA1} and {FORMULA2}",
98
+ greaterThan: "Value must be a legal date and after {FORMULA1}",
99
+ greaterThanOrEqual: "Value must be a legal date and on or after {FORMULA1}",
100
+ lessThan: "Value must be a legal date and before {FORMULA1}",
101
+ lessThanOrEqual: "Value must be a legal date and on or before {FORMULA1}",
102
+ equal: "Value must be a legal date and {FORMULA1}",
103
+ notEqual: "Value must be a legal date and not {FORMULA1}",
104
+ notBetween: "Value must be a legal date and not between {FORMULA1}"
105
+ }
106
+ },
107
+ list: {
108
+ title: "Dropdown",
109
+ name: "Value contains one from range",
110
+ error: "Input must fall within specified range",
111
+ emptyError: "Please enter a value",
112
+ add: "Add",
113
+ dropdown: "Select",
114
+ options: "Options",
115
+ customOptions: "Custom",
116
+ refOptions: "From a range",
117
+ formulaError: "The list source must be a delimited list of data, or a reference to a single row or column.",
118
+ edit: "Edit"
119
+ },
120
+ listMultiple: {
121
+ title: "Dropdown-Multiple",
122
+ dropdown: "Multiple select"
123
+ },
124
+ textLength: {
125
+ title: "Text length",
126
+ errorMsg: {
127
+ between: "Text length must be between {FORMULA1} and {FORMULA2}",
128
+ greaterThan: "Text length must be after {FORMULA1}",
129
+ greaterThanOrEqual: "Text length must be on or after {FORMULA1}",
130
+ lessThan: "Text length must be before {FORMULA1}",
131
+ lessThanOrEqual: "Text length must be on or before {FORMULA1}",
132
+ equal: "Text length must be {FORMULA1}",
133
+ notEqual: "Text length must be not {FORMULA1}",
134
+ notBetween: "Text length must be not between {FORMULA1}"
135
+ }
136
+ },
137
+ decimal: {
138
+ title: "Number"
139
+ },
140
+ whole: {
141
+ title: "Integer"
142
+ },
143
+ checkbox: {
144
+ title: "Checkbox",
145
+ error: "This cell's contents violate its validation rule",
146
+ tips: "Use custom values within cells",
147
+ checked: "Selected value",
148
+ unchecked: "Unselected value"
149
+ },
150
+ custom: {
151
+ title: "Custom formula",
152
+ error: "This cell's contents violate its validation rule",
153
+ validFail: "Please input a valid formula",
154
+ ruleName: "Custom formula is {FORMULA1}"
155
+ },
156
+ alert: {
157
+ title: "Error",
158
+ ok: "OK"
159
+ },
160
+ error: {
161
+ title: "Invalid:"
162
+ },
163
+ renderMode: {
164
+ arrow: "Arrow",
165
+ chip: "Chip",
166
+ text: "Plain text",
167
+ label: "Display style"
168
+ },
169
+ showTime: {
170
+ label: "Show TimePicker"
171
+ }
172
+ }
173
+ };
174
+ export {
175
+ locale as default
176
+ };
@@ -0,0 +1,176 @@
1
+ const locale = {
2
+ dataValidation: {
3
+ title: "اعتبارسنجی داده",
4
+ validFail: {
5
+ value: "لطفا یک مقدار وارد کنید",
6
+ common: "لطفا مقدار یا فرمول را وارد کنید",
7
+ number: "لطفا عدد یا فرمول را وارد کنید",
8
+ formula: "لطفا فرمول را وارد کنید",
9
+ integer: "لطفا عدد صحیح یا فرمول را وارد کنید",
10
+ date: "لطفا تاریخ یا فرمول را وارد کنید",
11
+ list: "لطفا گزینه‌ها را وارد کنید",
12
+ listInvalid: "منبع لیست باید یک لیست جدا شده یا یک مرجع به یک سطر یا ستون منفرد باشد",
13
+ checkboxEqual: "برای محتوای سلول‌های علامت‌دار و علامت‌گذاری نشده، مقادیر متفاوتی وارد کنید.",
14
+ formulaError: "محدوده مرجع حاوی داده‌های نامرئی است، لطفا محدوده را دوباره تنظیم کنید",
15
+ listIntersects: "محدوده انتخاب شده نمی‌تواند با دامنه قوانین تداخل داشته باشد",
16
+ primitive: "فرمول‌ها برای مقادیر سفارشی علامت‌دار و علامت‌گذاری نشده مجاز نیستند."
17
+ },
18
+ panel: {
19
+ title: "مدیریت اعتبارسنجی داده",
20
+ addTitle: "ایجاد اعتبارسنجی داده جدید",
21
+ removeAll: "حذف همه",
22
+ add: "افزودن قانون",
23
+ range: "محدوده‌ها",
24
+ type: "نوع",
25
+ options: "گزینه‌های پیشرفته",
26
+ operator: "عملگر",
27
+ removeRule: "حذف",
28
+ done: "انجام شد",
29
+ formulaPlaceholder: "لطفا مقدار یا فرمول را وارد کنید",
30
+ valuePlaceholder: "لطفا مقدار را وارد کنید",
31
+ formulaAnd: "و",
32
+ invalid: "نامعتبر",
33
+ showWarning: "نمایش هشدار",
34
+ rejectInput: "رد ورودی",
35
+ messageInfo: "پیام راهنما",
36
+ showInfo: "نمایش متن راهنما برای یک سلول انتخاب شده",
37
+ rangeError: "محدوده‌ها نامعتبر هستند",
38
+ allowBlank: "رد سلول خالی"
39
+ },
40
+ operators: {
41
+ between: "بین",
42
+ greaterThan: "بزرگتر از",
43
+ greaterThanOrEqual: "بزرگتر از یا برابر با",
44
+ lessThan: "کوچکتر از",
45
+ lessThanOrEqual: "کوچکتر از یا برابر با",
46
+ equal: "برابر است با",
47
+ notEqual: "برابر نیست با",
48
+ notBetween: "بین ... و ... نیست"
49
+ },
50
+ ruleName: {
51
+ between: "بین {FORMULA1} و {FORMULA2} است",
52
+ greaterThan: "بزرگتر از {FORMULA1} است",
53
+ greaterThanOrEqual: "بزرگتر از یا برابر با {FORMULA1} است",
54
+ lessThan: "کوچکتر از {FORMULA1} است",
55
+ lessThanOrEqual: "کوچکتر از یا برابر با {FORMULA1} است",
56
+ equal: "برابر است با {FORMULA1}",
57
+ notEqual: "برابر نیست با {FORMULA1}",
58
+ notBetween: "بین {FORMULA1} و {FORMULA2} نیست"
59
+ },
60
+ errorMsg: {
61
+ between: "مقدار باید بین {FORMULA1} و {FORMULA2} باشد",
62
+ greaterThan: "مقدار باید بزرگتر از {FORMULA1} باشد",
63
+ greaterThanOrEqual: "مقدار باید بزرگتر از یا برابر با {FORMULA1} باشد",
64
+ lessThan: "مقدار باید کوچکتر از {FORMULA1} باشد",
65
+ lessThanOrEqual: "مقدار باید کوچکتر از یا برابر با {FORMULA1} باشد",
66
+ equal: "مقدار باید برابر با {FORMULA1} باشد",
67
+ notEqual: "مقدار باید برابر نیست با {FORMULA1}",
68
+ notBetween: "مقدار باید بین {FORMULA1} و {FORMULA2} نباشد"
69
+ },
70
+ any: {
71
+ title: "هر مقدار",
72
+ error: "محتوای این سلول نقض قانون اعتبارسنجی است"
73
+ },
74
+ date: {
75
+ title: "تاریخ",
76
+ operators: {
77
+ between: "بین",
78
+ greaterThan: "بعد از",
79
+ greaterThanOrEqual: "روی یا بعد از",
80
+ lessThan: "قبل از",
81
+ lessThanOrEqual: "روی یا قبل از",
82
+ equal: "برابر است با",
83
+ notEqual: "برابر نیست با",
84
+ notBetween: "بین ... و ... نیست"
85
+ },
86
+ ruleName: {
87
+ between: "بین {FORMULA1} و {FORMULA2} است",
88
+ greaterThan: "بعد از {FORMULA1} است",
89
+ greaterThanOrEqual: "روی یا بعد از {FORMULA1} است",
90
+ lessThan: "قبل از {FORMULA1} است",
91
+ lessThanOrEqual: "روی یا قبل از {FORMULA1} است",
92
+ equal: "برابر است با {FORMULA1}",
93
+ notEqual: "برابر نیست با {FORMULA1}",
94
+ notBetween: "بین {FORMULA1} و {FORMULA2} نیست"
95
+ },
96
+ errorMsg: {
97
+ between: "مقدار باید یک تاریخ معتبر و بین {FORMULA1} و {FORMULA2} باشد",
98
+ greaterThan: "مقدار باید یک تاریخ معتبر و بعد از {FORMULA1} باشد",
99
+ greaterThanOrEqual: "مقدار باید یک تاریخ معتبر و روی یا بعد از {FORMULA1} باشد",
100
+ lessThan: "مقدار باید یک تاریخ معتبر و قبل از {FORMULA1} باشد",
101
+ lessThanOrEqual: "مقدار باید یک تاریخ معتبر و روی یا قبل از {FORMULA1} باشد",
102
+ equal: "مقدار باید یک تاریخ معتبر و {FORMULA1} باشد",
103
+ notEqual: "مقدار باید یک تاریخ معتبر و نه {FORMULA1} باشد",
104
+ notBetween: "مقدار باید یک تاریخ معتبر و بین {FORMULA1} و {FORMULA2} نباشد"
105
+ }
106
+ },
107
+ list: {
108
+ title: "لیست کشویی",
109
+ name: "مقدار شامل یکی از محدوده است",
110
+ error: "ورود باید در محدوده مشخص شده قرار گیرد",
111
+ emptyError: "لطفا یک مقدار وارد کنید",
112
+ add: "افزودن",
113
+ dropdown: "انتخاب",
114
+ options: "گزینه‌ها",
115
+ customOptions: "سفارشی",
116
+ refOptions: "از یک محدوده",
117
+ formulaError: "منبع لیست باید یک لیست جدا شده از داده‌ها یا یک مرجع به یک سطر یا ستون منفرد باشد.",
118
+ edit: "ویرایش"
119
+ },
120
+ listMultiple: {
121
+ title: "لیست کشویی چندگانه",
122
+ dropdown: "انتخاب چندگانه"
123
+ },
124
+ textLength: {
125
+ title: "طول متن",
126
+ errorMsg: {
127
+ between: "طول متن باید بین {FORMULA1} و {FORMULA2} باشد",
128
+ greaterThan: "طول متن باید بعد از {FORMULA1} باشد",
129
+ greaterThanOrEqual: "طول متن باید روی یا بعد از {FORMULA1} باشد",
130
+ lessThan: "طول متن باید قبل از {FORMULA1} باشد",
131
+ lessThanOrEqual: "طول متن باید روی یا قبل از {FORMULA1} باشد",
132
+ equal: "طول متن باید {FORMULA1} باشد",
133
+ notEqual: "طول متن باید {FORMULA1} نباشد",
134
+ notBetween: "طول متن باید بین {FORMULA1} و {FORMULA2} نباشد"
135
+ }
136
+ },
137
+ decimal: {
138
+ title: "عدد"
139
+ },
140
+ whole: {
141
+ title: "عدد صحیح"
142
+ },
143
+ checkbox: {
144
+ title: "کادر انتخاب",
145
+ error: "محتوای این سلول با قانون اعتبارسنجی آن نقض می‌شود",
146
+ tips: "از مقادیر سفارشی در سلول‌ها استفاده کنید",
147
+ checked: "مقدار انتخاب شده",
148
+ unchecked: "مقدار انتخاب نشده"
149
+ },
150
+ custom: {
151
+ title: "فرمول سفارشی ",
152
+ error: "محتوای این سلول با قانون اعتبارسنجی آن نقض می‌شود",
153
+ validFail: "لطفا یک فرمول معتبر وارد کنید",
154
+ ruleName: "فرمول سفارشی {FORMULA1}"
155
+ },
156
+ alert: {
157
+ title: "خطا",
158
+ ok: "باشه"
159
+ },
160
+ error: {
161
+ title: "نامعتبر:"
162
+ },
163
+ renderMode: {
164
+ arrow: "فلش",
165
+ chip: "چیپ",
166
+ text: "متن ساده",
167
+ label: "سبک نمایش"
168
+ },
169
+ showTime: {
170
+ label: "نمایش انتخاب‌گر زمان"
171
+ }
172
+ }
173
+ };
174
+ export {
175
+ locale as default
176
+ };