@univerjs/sheets-data-validation-ui 1.0.0-beta.0 → 1.0.0-beta.2
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/cjs/index.js +90 -129
- package/lib/cjs/locale/ar-SA.js +1 -36
- package/lib/cjs/locale/ca-ES.js +1 -36
- package/lib/cjs/locale/de-DE.js +1 -36
- package/lib/cjs/locale/en-US.js +1 -36
- package/lib/cjs/locale/es-ES.js +1 -36
- package/lib/cjs/locale/fa-IR.js +1 -36
- package/lib/cjs/locale/fr-FR.js +1 -36
- package/lib/cjs/locale/id-ID.js +1 -36
- package/lib/cjs/locale/it-IT.js +1 -36
- package/lib/cjs/locale/ja-JP.js +1 -36
- package/lib/cjs/locale/ko-KR.js +1 -36
- package/lib/cjs/locale/pl-PL.js +1 -36
- package/lib/cjs/locale/pt-BR.js +1 -36
- package/lib/cjs/locale/ru-RU.js +1 -36
- package/lib/cjs/locale/sk-SK.js +1 -36
- package/lib/cjs/locale/vi-VN.js +1 -36
- package/lib/cjs/locale/zh-CN.js +1 -36
- package/lib/cjs/locale/zh-HK.js +1 -36
- package/lib/cjs/locale/zh-TW.js +1 -36
- package/lib/es/index.js +91 -130
- package/lib/es/locale/ar-SA.js +1 -36
- package/lib/es/locale/ca-ES.js +1 -36
- package/lib/es/locale/de-DE.js +1 -36
- package/lib/es/locale/en-US.js +1 -36
- package/lib/es/locale/es-ES.js +1 -36
- package/lib/es/locale/fa-IR.js +1 -36
- package/lib/es/locale/fr-FR.js +1 -36
- package/lib/es/locale/id-ID.js +1 -36
- package/lib/es/locale/it-IT.js +1 -36
- package/lib/es/locale/ja-JP.js +1 -36
- package/lib/es/locale/ko-KR.js +1 -36
- package/lib/es/locale/pl-PL.js +1 -36
- package/lib/es/locale/pt-BR.js +1 -36
- package/lib/es/locale/ru-RU.js +1 -36
- package/lib/es/locale/sk-SK.js +1 -36
- package/lib/es/locale/vi-VN.js +1 -36
- package/lib/es/locale/zh-CN.js +1 -36
- package/lib/es/locale/zh-HK.js +1 -36
- package/lib/es/locale/zh-TW.js +1 -36
- package/lib/index.css +24 -8
- package/lib/index.js +91 -130
- package/lib/locale/ar-SA.js +1 -36
- package/lib/locale/ca-ES.js +1 -36
- package/lib/locale/de-DE.js +1 -36
- package/lib/locale/en-US.js +1 -36
- package/lib/locale/es-ES.js +1 -36
- package/lib/locale/fa-IR.js +1 -36
- package/lib/locale/fr-FR.js +1 -36
- package/lib/locale/id-ID.js +1 -36
- package/lib/locale/it-IT.js +1 -36
- package/lib/locale/ja-JP.js +1 -36
- package/lib/locale/ko-KR.js +1 -36
- package/lib/locale/pl-PL.js +1 -36
- package/lib/locale/pt-BR.js +1 -36
- package/lib/locale/ru-RU.js +1 -36
- package/lib/locale/sk-SK.js +1 -36
- package/lib/locale/vi-VN.js +1 -36
- package/lib/locale/zh-CN.js +1 -36
- package/lib/locale/zh-HK.js +1 -36
- package/lib/locale/zh-TW.js +1 -36
- package/lib/types/const.d.ts +2 -1
- package/lib/types/locale/en-US.d.ts +0 -39
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ar-SA.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/de-DE.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/id-ID.js +1 -1
- package/lib/umd/locale/it-IT.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/pl-PL.js +1 -1
- package/lib/umd/locale/pt-BR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-HK.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +14 -14
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentManager, IDialogService, IMenuManagerService, ISidebarService, IconManager, KeyCode, MenuItemType, RibbonDataGroup, RibbonInsertGroup, UniverMobileUIPlugin, getMenuHiddenObservable, useDependency, useEvent, useObservable, useSidebarClick } from "@univerjs/ui";
|
|
2
|
-
import { CellValueType, ColorKit, CommandType, DEFAULT_STYLES, DataValidationErrorStyle, DataValidationRenderMode, DataValidationStatus, DataValidationType, DependentOn, Disposable, DisposableCollection, HorizontalAlign, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService,
|
|
2
|
+
import { CellValueType, ColorKit, CommandType, DEFAULT_STYLES, DataValidationErrorStyle, DataValidationRenderMode, DataValidationStatus, DataValidationType, DependentOn, Disposable, DisposableCollection, HorizontalAlign, ICommandService, IConfigService, IUniverInstanceService, Inject, Injector, InterceptorEffectEnum, LocaleService, Optional, Plugin, Rectangle, RedoCommand, RxDisposable, ThemeService, UndoCommand, UniverInstanceType, VerticalAlign, WrapStrategy, bufferDebounceTime, dateKit, debounce, generateRandomId, getIntersectRange, isFormulaString, isUnitRangesEqual, merge, numfmt, sequenceExecute, shallowEqual, toDisposable } from "@univerjs/core";
|
|
3
3
|
import { AUTO_FILL_APPLY_TYPE, AutoFillTools, IAutoFillService, INTERCEPTOR_POINT, InterceptCellContentPriority, RangeProtectionPermissionEditPoint, SetRangeValuesCommand, SetWorksheetActiveOperation, SheetInterceptorService, SheetPermissionCheckController, SheetsSelectionsService, UniverSheetsPlugin, VALIDATE_CELL, WorkbookEditablePermission, WorksheetEditPermission, WorksheetSetCellStylePermission, checkRangesEditablePermission, deserializeListOptions, getSheetCommandTarget, rangeToDiscreteRange, serializeListOptions } from "@univerjs/sheets";
|
|
4
4
|
import { AddSheetDataValidationCommand, BASE_FORMULA_INPUT_NAME, CHECKBOX_FORMULA_1, CHECKBOX_FORMULA_2, CHECKBOX_FORMULA_INPUT_NAME, CUSTOM_FORMULA_INPUT_NAME, ClearRangeDataValidationCommand, DATA_VALIDATION_PLUGIN_NAME, DataValidationCacheService, DataValidationFormulaController, DataValidationFormulaService, LIST_FORMULA_INPUT_NAME, RemoveSheetAllDataValidationCommand, RemoveSheetDataValidationCommand, SheetDataValidationModel, SheetsDataValidationValidatorService, UniverSheetsDataValidationPlugin, UpdateSheetDataValidationOptionsCommand, UpdateSheetDataValidationRangeCommand, UpdateSheetDataValidationSettingCommand, createDefaultNewRule, getCellValueOrigin, getDataValidationCellValue, getDataValidationDiffMutations, getFormulaResult, isLegalFormulaResult, transformCheckboxValue } from "@univerjs/sheets-data-validation";
|
|
5
5
|
import { DataValidationModel, DataValidatorDropdownType, DataValidatorRegistryScope, DataValidatorRegistryService, TWO_FORMULA_OPERATOR_COUNT, UniverDataValidationPlugin, getRuleOptions, getRuleSetting } from "@univerjs/data-validation";
|
|
@@ -161,7 +161,8 @@ const defaultPluginConfig = {};
|
|
|
161
161
|
* See the License for the specific language governing permissions and
|
|
162
162
|
* limitations under the License.
|
|
163
163
|
*/
|
|
164
|
-
const DROP_DOWN_DEFAULT_COLOR = "
|
|
164
|
+
const DROP_DOWN_DEFAULT_COLOR = "gray.100";
|
|
165
|
+
const DROP_DOWN_ICON_COLOR = "gray.600";
|
|
165
166
|
|
|
166
167
|
//#endregion
|
|
167
168
|
//#region src/controllers/dv-reject-input.controller.ts
|
|
@@ -449,7 +450,7 @@ let DataValidationDropdownManagerService = class DataValidationDropdownManagerSe
|
|
|
449
450
|
options: list.map((item) => ({
|
|
450
451
|
label: item.label,
|
|
451
452
|
value: item.label,
|
|
452
|
-
color: showColor || item.color ? item.color || "
|
|
453
|
+
color: showColor || item.color ? item.color || "gray.100" : "transparent"
|
|
453
454
|
})),
|
|
454
455
|
onEdit: handleEdit,
|
|
455
456
|
defaultValue: cellStr,
|
|
@@ -774,7 +775,7 @@ function DropdownPresets({ onChange }) {
|
|
|
774
775
|
children: presets.map((values) => /* @__PURE__ */ jsx("button", {
|
|
775
776
|
type: "button",
|
|
776
777
|
"aria-label": values.join(" / "),
|
|
777
|
-
className: "univer-flex univer-min-h-20 univer-cursor-pointer univer-flex-col univer-items-start univer-gap-1.5 univer-rounded-md univer-border-0 univer-bg-gray-50 univer-p-3 univer-text-left univer-text-sm univer-leading-5 univer-text-gray-900 univer-transition-colors hover:univer-bg-gray-100 focus-visible:univer-outline-none focus-visible:univer-ring-2 focus-visible:univer-ring-primary-600 focus-visible:univer-ring-offset-0 dark:!univer-bg-gray-800 dark:!univer-text-
|
|
778
|
+
className: "univer-flex univer-min-h-20 univer-cursor-pointer univer-flex-col univer-items-start univer-gap-1.5 univer-rounded-md univer-border-0 univer-bg-gray-50 univer-p-3 univer-text-left univer-text-sm univer-leading-5 univer-text-gray-900 univer-transition-colors hover:univer-bg-gray-100 focus-visible:univer-outline-none focus-visible:univer-ring-2 focus-visible:univer-ring-primary-600 focus-visible:univer-ring-offset-0 dark:!univer-bg-gray-800 dark:!univer-text-gray-0 dark:hover:!univer-bg-gray-700",
|
|
778
779
|
onClick: () => onChange(serializeListOptions(values)),
|
|
779
780
|
children: values.map((value) => /* @__PURE__ */ jsx("span", {
|
|
780
781
|
className: "univer-w-full univer-break-words",
|
|
@@ -989,7 +990,7 @@ const menuSchema = {
|
|
|
989
990
|
//#endregion
|
|
990
991
|
//#region package.json
|
|
991
992
|
var name = "@univerjs/sheets-data-validation-ui";
|
|
992
|
-
var version = "1.0.0-beta.
|
|
993
|
+
var version = "1.0.0-beta.2";
|
|
993
994
|
|
|
994
995
|
//#endregion
|
|
995
996
|
//#region src/views/components/DataValidationOptions.tsx
|
|
@@ -1000,7 +1001,7 @@ function DataValidationOptions(props) {
|
|
|
1000
1001
|
const [show, setShow] = useState(false);
|
|
1001
1002
|
const ExtraOptions = extraComponent ? componentManager.get(extraComponent) : null;
|
|
1002
1003
|
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
|
|
1003
|
-
className: "univer-mb-3 univer-flex univer-cursor-pointer univer-items-center univer-text-sm univer-text-gray-900 dark:!univer-text-
|
|
1004
|
+
className: "univer-mb-3 univer-flex univer-cursor-pointer univer-items-center univer-text-sm univer-text-gray-900 dark:!univer-text-gray-0",
|
|
1004
1005
|
onClick: () => setShow(!show),
|
|
1005
1006
|
children: [localeService.t("sheets-data-validation-ui.panel.options"), show ? /* @__PURE__ */ jsx(MoreUpIcon, { className: "univer-ml-1" }) : /* @__PURE__ */ jsx(MoreDownIcon, { className: "univer-ml-1" })]
|
|
1006
1007
|
}), show && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -1400,7 +1401,7 @@ const DataValidationItem = (props) => {
|
|
|
1400
1401
|
};
|
|
1401
1402
|
}, [markSelectionService]);
|
|
1402
1403
|
return /* @__PURE__ */ jsxs("div", {
|
|
1403
|
-
className: clsx("univer-bg-secondary univer-relative univer--mx-2 univer-box-border univer-flex univer-w-[287px] univer-cursor-pointer univer-flex-col univer-justify-between univer-overflow-hidden univer-rounded-md univer-p-2 univer-pr-9", {
|
|
1404
|
+
className: clsx("univer-bg-secondary univer-relative univer--mx-2 univer-box-border univer-flex univer-w-[287px] univer-cursor-pointer univer-flex-col univer-justify-between univer-overflow-hidden univer-rounded-md univer-p-2 univer-pr-9 rtl:univer-pl-9 rtl:univer-pr-2", {
|
|
1404
1405
|
"hover:univer-bg-gray-50 dark:hover:!univer-bg-gray-700": !disable,
|
|
1405
1406
|
"univer-opacity-50": disable
|
|
1406
1407
|
}),
|
|
@@ -1424,7 +1425,7 @@ const DataValidationItem = (props) => {
|
|
|
1424
1425
|
},
|
|
1425
1426
|
children: [
|
|
1426
1427
|
/* @__PURE__ */ jsx("div", {
|
|
1427
|
-
className: "univer-truncate univer-text-sm univer-font-medium univer-leading-[22px] univer-text-gray-900 dark:!univer-text-
|
|
1428
|
+
className: "univer-truncate univer-text-sm univer-font-medium univer-leading-[22px] univer-text-gray-900 dark:!univer-text-gray-0",
|
|
1428
1429
|
children: validator === null || validator === void 0 ? void 0 : validator.generateRuleName(rule)
|
|
1429
1430
|
}),
|
|
1430
1431
|
/* @__PURE__ */ jsx("div", {
|
|
@@ -1432,7 +1433,7 @@ const DataValidationItem = (props) => {
|
|
|
1432
1433
|
children: rule.ranges.map((range) => serializeRange(range)).join(",")
|
|
1433
1434
|
}),
|
|
1434
1435
|
isHover && /* @__PURE__ */ jsx("div", {
|
|
1435
|
-
className: "univer-absolute univer-right-2 univer-top-[19px] univer-flex univer-size-5 univer-items-center univer-justify-center univer-rounded hover:univer-bg-gray-200 dark:!univer-text-gray-300 dark:hover:!univer-bg-gray-700",
|
|
1436
|
+
className: "univer-absolute univer-right-2 univer-top-[19px] univer-flex univer-size-5 univer-items-center univer-justify-center univer-rounded hover:univer-bg-gray-200 rtl:univer-left-2 rtl:univer-right-auto dark:!univer-text-gray-300 dark:hover:!univer-bg-gray-700",
|
|
1436
1437
|
onClick: handleDelete,
|
|
1437
1438
|
children: /* @__PURE__ */ jsx(DeleteIcon, {})
|
|
1438
1439
|
})
|
|
@@ -1683,7 +1684,7 @@ function CustomFormulaInput(props) {
|
|
|
1683
1684
|
error: formula1Res,
|
|
1684
1685
|
children: /* @__PURE__ */ jsx(FormulaEditor, {
|
|
1685
1686
|
ref: formulaEditorRef,
|
|
1686
|
-
className: clsx("univer-box-border univer-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-rounded-lg univer-bg-
|
|
1687
|
+
className: clsx("univer-box-border univer-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-rounded-lg univer-bg-gray-0 univer-pt-2 univer-transition-colors hover:univer-border-primary-600 dark:!univer-bg-gray-700 dark:!univer-text-gray-0 [&>div:first-child]:univer-px-2.5 [&>div]:univer-h-5 [&>div]:univer-ring-transparent", borderClassName),
|
|
1687
1688
|
initValue: (value === null || value === void 0 ? void 0 : value.formula1) ?? "=",
|
|
1688
1689
|
unitId,
|
|
1689
1690
|
subUnitId,
|
|
@@ -1764,6 +1765,9 @@ const DEFAULT_COLOR_PRESET = [
|
|
|
1764
1765
|
const ColorSelect = (props) => {
|
|
1765
1766
|
const { value, onChange, disabled } = props;
|
|
1766
1767
|
const [open, setOpen] = useState(false);
|
|
1768
|
+
const themeService = useDependency(ThemeService);
|
|
1769
|
+
useObservable(themeService.currentTheme$);
|
|
1770
|
+
const backgroundColor = value.includes(".") && themeService.isValidThemeColor(value) ? themeService.getColorFromTheme(value) : value;
|
|
1767
1771
|
return /* @__PURE__ */ jsx(Dropdown, {
|
|
1768
1772
|
align: "start",
|
|
1769
1773
|
disabled,
|
|
@@ -1781,10 +1785,10 @@ const ColorSelect = (props) => {
|
|
|
1781
1785
|
}, color))
|
|
1782
1786
|
}),
|
|
1783
1787
|
children: /* @__PURE__ */ jsxs("div", {
|
|
1784
|
-
className: clsx("univer-box-border univer-inline-flex univer-h-8 univer-w-16 univer-cursor-pointer univer-items-center univer-justify-between univer-gap-2 univer-rounded-lg univer-bg-
|
|
1788
|
+
className: clsx("univer-box-border univer-inline-flex univer-h-8 univer-w-16 univer-cursor-pointer univer-items-center univer-justify-between univer-gap-2 univer-rounded-lg univer-bg-gray-0 univer-px-2.5 univer-transition-colors univer-duration-200 hover:univer-border-primary-600 dark:!univer-bg-gray-700 dark:!univer-text-gray-0", borderClassName),
|
|
1785
1789
|
children: [/* @__PURE__ */ jsx("div", {
|
|
1786
1790
|
className: "univer-box-border univer-size-4 univer-rounded univer-text-base",
|
|
1787
|
-
style: { background:
|
|
1791
|
+
style: { background: backgroundColor }
|
|
1788
1792
|
}), /* @__PURE__ */ jsx(MoreDownIcon, {})]
|
|
1789
1793
|
})
|
|
1790
1794
|
});
|
|
@@ -1869,7 +1873,7 @@ function ListFormulaInput(props) {
|
|
|
1869
1873
|
const strColors = formula2.split(",");
|
|
1870
1874
|
return strOptions.map((label, i) => ({
|
|
1871
1875
|
label,
|
|
1872
|
-
color: strColors[i] || "
|
|
1876
|
+
color: strColors[i] || "gray.100",
|
|
1873
1877
|
isRef: false,
|
|
1874
1878
|
id: generateRandomId(4)
|
|
1875
1879
|
}));
|
|
@@ -1890,7 +1894,7 @@ function ListFormulaInput(props) {
|
|
|
1890
1894
|
};
|
|
1891
1895
|
const refFinalList = useMemo(() => refOptions.map((label, i) => ({
|
|
1892
1896
|
label,
|
|
1893
|
-
color: refColors[i] || "
|
|
1897
|
+
color: refColors[i] || "gray.100",
|
|
1894
1898
|
id: `${i}`,
|
|
1895
1899
|
isRef: true
|
|
1896
1900
|
})), [refColors, refOptions]);
|
|
@@ -1980,7 +1984,7 @@ function ListFormulaInput(props) {
|
|
|
1980
1984
|
error: formula1Res || localError || void 0,
|
|
1981
1985
|
children: [/* @__PURE__ */ jsx(FormulaEditor, {
|
|
1982
1986
|
ref: formulaEditorRef,
|
|
1983
|
-
className: clsx("univer-box-border univer-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-rounded-lg univer-bg-
|
|
1987
|
+
className: clsx("univer-box-border univer-h-8 univer-w-full univer-cursor-pointer univer-items-center univer-rounded-lg univer-bg-gray-0 univer-pt-2 univer-transition-colors hover:univer-border-primary-600 dark:!univer-bg-gray-700 dark:!univer-text-gray-0 [&>div:first-child]:univer-px-2.5 [&>div]:univer-h-5 [&>div]:univer-ring-transparent", borderClassName),
|
|
1984
1988
|
initValue: formulaStr,
|
|
1985
1989
|
unitId,
|
|
1986
1990
|
subUnitId,
|
|
@@ -2203,52 +2207,36 @@ let DataValidationAutoFillController = class DataValidationAutoFillController ex
|
|
|
2203
2207
|
const ruleMatrixCopy = this._sheetDataValidationModel.getRuleObjectMatrix(unitId, subUnitId).clone();
|
|
2204
2208
|
const virtualRange = virtualizeDiscreteRanges([sourceRange, targetRange]);
|
|
2205
2209
|
const [vSourceRange, vTargetRange] = virtualRange.ranges;
|
|
2206
|
-
const {
|
|
2207
|
-
const sourceStartCell = {
|
|
2208
|
-
row: vSourceRange.startRow,
|
|
2209
|
-
col: vSourceRange.startColumn
|
|
2210
|
-
};
|
|
2210
|
+
const { mapRange, projectRange } = virtualRange;
|
|
2211
2211
|
const repeats = AutoFillTools.getAutoFillRepeatRange(vSourceRange, vTargetRange);
|
|
2212
|
-
const
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
startRow: targetStartCell.row,
|
|
2225
|
-
startColumn: targetStartCell.col,
|
|
2226
|
-
endColumn: targetStartCell.col,
|
|
2227
|
-
endRow: targetStartCell.row
|
|
2228
|
-
};
|
|
2229
|
-
Range.foreach(relativeRange, (row, col) => {
|
|
2230
|
-
const sourcePositionRange = Rectangle.getPositionRange({
|
|
2231
|
-
startRow: row,
|
|
2232
|
-
startColumn: col,
|
|
2233
|
-
endColumn: col,
|
|
2234
|
-
endRow: row
|
|
2235
|
-
}, sourceRange);
|
|
2236
|
-
const { row: sourceRow, col: sourceCol } = mapFunc(sourcePositionRange.startRow, sourcePositionRange.startColumn);
|
|
2237
|
-
const ruleId = this._sheetDataValidationModel.getRuleIdByLocation(unitId, subUnitId, sourceRow, sourceCol) || "";
|
|
2238
|
-
const targetPositionRange = Rectangle.getPositionRange({
|
|
2239
|
-
startRow: row,
|
|
2240
|
-
startColumn: col,
|
|
2241
|
-
endColumn: col,
|
|
2242
|
-
endRow: row
|
|
2243
|
-
}, targetRange);
|
|
2244
|
-
const { row: targetRow, col: targetCol } = mapFunc(targetPositionRange.startRow, targetPositionRange.startColumn);
|
|
2245
|
-
additionMatrix.setValue(targetRow, targetCol, ruleId);
|
|
2246
|
-
additionRules.add(ruleId);
|
|
2212
|
+
const additionsByRuleId = /* @__PURE__ */ new Map();
|
|
2213
|
+
additionsByRuleId.set("", repeats.flatMap((repeat) => mapRange(Rectangle.getPositionRange(repeat.relativeRange, {
|
|
2214
|
+
startRow: repeat.repeatStartCell.row,
|
|
2215
|
+
endRow: repeat.repeatStartCell.row,
|
|
2216
|
+
startColumn: repeat.repeatStartCell.col,
|
|
2217
|
+
endColumn: repeat.repeatStartCell.col
|
|
2218
|
+
}))));
|
|
2219
|
+
this._sheetDataValidationModel.getRules(unitId, subUnitId).forEach((rule) => {
|
|
2220
|
+
const relativeSourceRanges = rule.ranges.flatMap((range) => {
|
|
2221
|
+
const projected = projectRange(range);
|
|
2222
|
+
const intersected = projected && getIntersectRange(projected, vSourceRange);
|
|
2223
|
+
return intersected ? [Rectangle.getRelativeRange(intersected, vSourceRange)] : [];
|
|
2247
2224
|
});
|
|
2225
|
+
const targetRanges = repeats.flatMap((repeat) => relativeSourceRanges.flatMap((sourceRange) => {
|
|
2226
|
+
const copiedRange = getIntersectRange(sourceRange, repeat.relativeRange);
|
|
2227
|
+
if (!copiedRange) return [];
|
|
2228
|
+
return mapRange(Rectangle.getPositionRange(copiedRange, {
|
|
2229
|
+
startRow: repeat.repeatStartCell.row,
|
|
2230
|
+
endRow: repeat.repeatStartCell.row,
|
|
2231
|
+
startColumn: repeat.repeatStartCell.col,
|
|
2232
|
+
endColumn: repeat.repeatStartCell.col
|
|
2233
|
+
}));
|
|
2234
|
+
}));
|
|
2235
|
+
if (targetRanges.length) additionsByRuleId.set(rule.uid, targetRanges);
|
|
2248
2236
|
});
|
|
2249
|
-
const additions = Array.from(
|
|
2237
|
+
const additions = Array.from(additionsByRuleId, ([id, ranges]) => ({
|
|
2250
2238
|
id,
|
|
2251
|
-
ranges:
|
|
2239
|
+
ranges: ranges.length > 1 ? Rectangle.mergeRanges(ranges) : ranges
|
|
2252
2240
|
}));
|
|
2253
2241
|
ruleMatrixCopy.addRangeRules(additions);
|
|
2254
2242
|
const { redoMutations, undoMutations } = getDataValidationDiffMutations(unitId, subUnitId, ruleMatrixCopy.diff(this._sheetDataValidationModel.getRules(unitId, subUnitId)), this._injector, "patched", applyType === AUTO_FILL_APPLY_TYPE.ONLY_FORMAT);
|
|
@@ -2261,13 +2249,8 @@ let DataValidationAutoFillController = class DataValidationAutoFillController ex
|
|
|
2261
2249
|
id: DATA_VALIDATION_PLUGIN_NAME,
|
|
2262
2250
|
onBeforeFillData: (location) => {
|
|
2263
2251
|
const { source: sourceRange, unitId, subUnitId } = location;
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
if (dv && dv.type === DataValidationType.CHECKBOX) {
|
|
2267
|
-
this._autoFillService.setDisableApplyType(AUTO_FILL_APPLY_TYPE.SERIES, true);
|
|
2268
|
-
return;
|
|
2269
|
-
}
|
|
2270
|
-
}
|
|
2252
|
+
const { projectRange } = virtualizeDiscreteRanges([sourceRange]);
|
|
2253
|
+
if (this._sheetDataValidationModel.getRules(unitId, subUnitId).some((rule) => rule.type === DataValidationType.CHECKBOX && rule.ranges.some((range) => projectRange(range) !== null))) this._autoFillService.setDisableApplyType(AUTO_FILL_APPLY_TYPE.SERIES, true);
|
|
2271
2254
|
},
|
|
2272
2255
|
onFillData: (location, direction, applyType) => {
|
|
2273
2256
|
if (applyType === AUTO_FILL_APPLY_TYPE.COPY || applyType === AUTO_FILL_APPLY_TYPE.ONLY_FORMAT || applyType === AUTO_FILL_APPLY_TYPE.SERIES) return generalApplyFunc(location, applyType);
|
|
@@ -2316,25 +2299,31 @@ let DataValidationCopyPasteController = class DataValidationCopyPasteController
|
|
|
2316
2299
|
});
|
|
2317
2300
|
}
|
|
2318
2301
|
_collect(unitId, subUnitId, range) {
|
|
2319
|
-
const
|
|
2302
|
+
const rules = /* @__PURE__ */ new Map();
|
|
2320
2303
|
this._copyInfo = {
|
|
2321
2304
|
unitId,
|
|
2322
2305
|
subUnitId,
|
|
2323
|
-
|
|
2306
|
+
rules
|
|
2324
2307
|
};
|
|
2325
2308
|
const discreteRange = this._injector.invoke((accessor) => {
|
|
2326
2309
|
return rangeToDiscreteRange(range, accessor, unitId, subUnitId);
|
|
2327
2310
|
});
|
|
2328
2311
|
if (!discreteRange) return;
|
|
2329
|
-
const {
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
const
|
|
2333
|
-
|
|
2312
|
+
const { projectRange } = virtualizeDiscreteRanges([discreteRange]);
|
|
2313
|
+
this._sheetDataValidationModel.getRules(unitId, subUnitId).forEach((rule) => {
|
|
2314
|
+
const projectedRanges = rule.ranges.flatMap((ruleRange) => {
|
|
2315
|
+
const projected = projectRange(ruleRange);
|
|
2316
|
+
return projected ? [projected] : [];
|
|
2334
2317
|
});
|
|
2318
|
+
if (projectedRanges.length) rules.set(rule.uid, projectedRanges.length > 1 ? Rectangle.mergeRanges(projectedRanges) : projectedRanges);
|
|
2335
2319
|
});
|
|
2336
2320
|
}
|
|
2337
2321
|
_generateMutations(pasteFrom, pasteTo, payload) {
|
|
2322
|
+
const copyInfo = this._copyInfo;
|
|
2323
|
+
if (!copyInfo) return {
|
|
2324
|
+
redos: [],
|
|
2325
|
+
undos: []
|
|
2326
|
+
};
|
|
2338
2327
|
const { unitId: copyUnitId, subUnitId: copySubUnitId, range: copyRange } = pasteFrom;
|
|
2339
2328
|
const { unitId: pastedUnitId, subUnitId: pastedSubUnitId, range: pastedRange } = pasteTo;
|
|
2340
2329
|
const { copyType = COPY_TYPE.COPY } = payload;
|
|
@@ -2352,51 +2341,38 @@ let DataValidationCopyPasteController = class DataValidationCopyPasteController
|
|
|
2352
2341
|
undos: []
|
|
2353
2342
|
};
|
|
2354
2343
|
}
|
|
2344
|
+
const sourceVirtualRange = virtualizeDiscreteRanges([copyRange]).ranges[0];
|
|
2345
|
+
const targetVirtualization = virtualizeDiscreteRanges([pastedRange]);
|
|
2346
|
+
const targetVirtualRange = targetVirtualization.ranges[0];
|
|
2347
|
+
const repeatRange = getRepeatRange(sourceVirtualRange, targetVirtualRange, true);
|
|
2348
|
+
const clearTargetRanges = targetVirtualization.mapRange(targetVirtualRange);
|
|
2349
|
+
const getTargetRanges = (sourceRanges) => repeatRange.flatMap(({ startRange }) => sourceRanges.flatMap((sourceRange) => targetVirtualization.mapRange(Rectangle.getPositionRange(sourceRange, startRange))));
|
|
2355
2350
|
if (pastedUnitId !== copyUnitId || pastedSubUnitId !== copySubUnitId) {
|
|
2356
2351
|
const ruleMatrix = this._sheetDataValidationModel.getRuleObjectMatrix(pastedUnitId, pastedSubUnitId).clone();
|
|
2357
|
-
const additionMatrix = new ObjectMatrix();
|
|
2358
|
-
const addRules = /* @__PURE__ */ new Set();
|
|
2359
|
-
const { ranges: [vCopyRange, vPastedRange], mapFunc } = virtualizeDiscreteRanges([copyRange, pastedRange]);
|
|
2360
|
-
const repeatRange = getRepeatRange(vCopyRange, vPastedRange, true);
|
|
2361
2352
|
const additionRules = /* @__PURE__ */ new Map();
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
});
|
|
2377
|
-
const { row: startRow, col: startColumn } = mapFunc(range.startRow, range.startColumn);
|
|
2378
|
-
addRules.add(transformedRuleId);
|
|
2379
|
-
additionMatrix.setValue(startRow, startColumn, transformedRuleId);
|
|
2353
|
+
const additions = [{
|
|
2354
|
+
id: "",
|
|
2355
|
+
ranges: clearTargetRanges
|
|
2356
|
+
}];
|
|
2357
|
+
copyInfo.rules.forEach((ranges, ruleId) => {
|
|
2358
|
+
const transformedRuleId = `${copySubUnitId}-${ruleId}`;
|
|
2359
|
+
const oldRule = this._sheetDataValidationModel.getRuleById(copyUnitId, copySubUnitId, ruleId);
|
|
2360
|
+
if (!this._sheetDataValidationModel.getRuleById(pastedUnitId, pastedSubUnitId, transformedRuleId) && oldRule) additionRules.set(transformedRuleId, {
|
|
2361
|
+
...oldRule,
|
|
2362
|
+
uid: transformedRuleId
|
|
2363
|
+
});
|
|
2364
|
+
additions.push({
|
|
2365
|
+
id: transformedRuleId,
|
|
2366
|
+
ranges: getTargetRanges(ranges)
|
|
2380
2367
|
});
|
|
2381
2368
|
});
|
|
2382
|
-
const additions = Array.from(addRules).map((id) => ({
|
|
2383
|
-
id,
|
|
2384
|
-
ranges: queryObjectMatrix(additionMatrix, (value) => value === id)
|
|
2385
|
-
}));
|
|
2386
2369
|
ruleMatrix.addRangeRules(additions);
|
|
2387
2370
|
const { redoMutations, undoMutations } = getDataValidationDiffMutations(pastedUnitId, pastedSubUnitId, ruleMatrix.diffWithAddition(this._sheetDataValidationModel.getRules(pastedUnitId, pastedSubUnitId), additionRules.values()), this._injector, "patched", false);
|
|
2388
2371
|
if (copyType === COPY_TYPE.CUT) {
|
|
2389
2372
|
const copySheetRuleMatrix = this._sheetDataValidationModel.getRuleObjectMatrix(copyUnitId, copySubUnitId).clone();
|
|
2390
|
-
const deleteRangeStartCell = mapFunc(vCopyRange.startRow, vCopyRange.startColumn);
|
|
2391
|
-
const deleteRangeEndCell = mapFunc(vCopyRange.endRow, vCopyRange.endColumn);
|
|
2392
2373
|
copySheetRuleMatrix.addRangeRules([{
|
|
2393
2374
|
id: "",
|
|
2394
|
-
ranges: [
|
|
2395
|
-
startRow: deleteRangeStartCell.row,
|
|
2396
|
-
endRow: deleteRangeEndCell.row,
|
|
2397
|
-
startColumn: deleteRangeStartCell.col,
|
|
2398
|
-
endColumn: deleteRangeEndCell.col
|
|
2399
|
-
}]
|
|
2375
|
+
ranges: virtualizeDiscreteRanges([copyRange]).mapRange(sourceVirtualRange)
|
|
2400
2376
|
}]);
|
|
2401
2377
|
const { redoMutations: cutRedos, undoMutations: cutUndos } = getDataValidationDiffMutations(copyUnitId, copySubUnitId, copySheetRuleMatrix.diff(this._sheetDataValidationModel.getRules(copyUnitId, copySubUnitId)), this._injector, "patched", false);
|
|
2402
2378
|
redoMutations.push(...cutRedos);
|
|
@@ -2408,27 +2384,13 @@ let DataValidationCopyPasteController = class DataValidationCopyPasteController
|
|
|
2408
2384
|
};
|
|
2409
2385
|
} else {
|
|
2410
2386
|
const ruleMatrix = this._sheetDataValidationModel.getRuleObjectMatrix(copyUnitId, copySubUnitId).clone();
|
|
2411
|
-
const
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
var _this$_copyInfo2;
|
|
2416
|
-
(_this$_copyInfo2 = this._copyInfo) === null || _this$_copyInfo2 === void 0 || _this$_copyInfo2.matrix.forValue((row, col, ruleId) => {
|
|
2417
|
-
const range = Rectangle.getPositionRange({
|
|
2418
|
-
startRow: row,
|
|
2419
|
-
endRow: row,
|
|
2420
|
-
startColumn: col,
|
|
2421
|
-
endColumn: col
|
|
2422
|
-
}, startRange);
|
|
2423
|
-
const { row: startRow, col: startColumn } = mapFunc(range.startRow, range.startColumn);
|
|
2424
|
-
additionMatrix.setValue(startRow, startColumn, ruleId);
|
|
2425
|
-
additionRules.add(ruleId);
|
|
2426
|
-
});
|
|
2427
|
-
});
|
|
2428
|
-
const additions = Array.from(additionRules).map((id) => ({
|
|
2387
|
+
const additions = [{
|
|
2388
|
+
id: "",
|
|
2389
|
+
ranges: clearTargetRanges
|
|
2390
|
+
}, ...Array.from(copyInfo.rules, ([id, ranges]) => ({
|
|
2429
2391
|
id,
|
|
2430
|
-
ranges:
|
|
2431
|
-
}));
|
|
2392
|
+
ranges: getTargetRanges(ranges)
|
|
2393
|
+
}))];
|
|
2432
2394
|
ruleMatrix.addRangeRules(additions);
|
|
2433
2395
|
const { redoMutations, undoMutations } = getDataValidationDiffMutations(pastedUnitId, pastedSubUnitId, ruleMatrix.diff(this._sheetDataValidationModel.getRules(copyUnitId, copySubUnitId)), this._injector, "patched", false);
|
|
2434
2396
|
return {
|
|
@@ -3164,7 +3126,7 @@ var Dropdown$1 = class extends Shape {
|
|
|
3164
3126
|
width: layout.width,
|
|
3165
3127
|
height: layout.height,
|
|
3166
3128
|
radius: RADIUS,
|
|
3167
|
-
fill: fill || "
|
|
3129
|
+
fill: fill || "gray.100"
|
|
3168
3130
|
});
|
|
3169
3131
|
ctx.translateWithPrecision(4, layout.ba);
|
|
3170
3132
|
ctx.font = fontString;
|
|
@@ -3211,7 +3173,7 @@ let DropdownMultipleWidget = class DropdownMultipleWidget {
|
|
|
3211
3173
|
}
|
|
3212
3174
|
ctx.save();
|
|
3213
3175
|
ctx.translateWithPrecision(cellBounding.startX + left, cellBounding.startY + top);
|
|
3214
|
-
ctx.fillStyle =
|
|
3176
|
+
ctx.fillStyle = DROP_DOWN_ICON_COLOR;
|
|
3215
3177
|
ctx.fill(downPath$1);
|
|
3216
3178
|
ctx.restore();
|
|
3217
3179
|
}
|
|
@@ -3410,7 +3372,6 @@ const PADDING_V = 1;
|
|
|
3410
3372
|
const MARGIN_H = 6;
|
|
3411
3373
|
const MARGIN_V = 3;
|
|
3412
3374
|
const RADIUS_BG = 8;
|
|
3413
|
-
const DROP_DOWN_ICON_COLOR = "#565656";
|
|
3414
3375
|
const downPath = new Path2D("M3.32201 4.84556C3.14417 5.05148 2.85583 5.05148 2.67799 4.84556L0.134292 1.90016C-0.152586 1.56798 0.0505937 1 0.456301 1L5.5437 1C5.94941 1 6.15259 1.56798 5.86571 1.90016L3.32201 4.84556Z");
|
|
3415
3376
|
function calcPadding(cellWidth, cellHeight, fontWidth, fontHeight, vt, ht, margin = true) {
|
|
3416
3377
|
let paddingTop = 0;
|
|
@@ -3481,7 +3442,7 @@ let DropdownWidget = class DropdownWidget {
|
|
|
3481
3442
|
}
|
|
3482
3443
|
ctx.save();
|
|
3483
3444
|
ctx.translateWithPrecision(cellBounding.startX + left, cellBounding.startY + top);
|
|
3484
|
-
ctx.fillStyle =
|
|
3445
|
+
ctx.fillStyle = DROP_DOWN_ICON_COLOR;
|
|
3485
3446
|
ctx.fill(downPath);
|
|
3486
3447
|
ctx.restore();
|
|
3487
3448
|
}
|
|
@@ -3575,7 +3536,7 @@ let DropdownWidget = class DropdownWidget {
|
|
|
3575
3536
|
Rect.drawWith(ctx, {
|
|
3576
3537
|
width: rectWidth,
|
|
3577
3538
|
height: rectHeight,
|
|
3578
|
-
fill: activeColor || "
|
|
3539
|
+
fill: activeColor || "gray.100",
|
|
3579
3540
|
radius: RADIUS_BG
|
|
3580
3541
|
});
|
|
3581
3542
|
ctx.save();
|
package/lib/locale/ar-SA.js
CHANGED
|
@@ -19,20 +19,7 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
operators: { legal: "نوع قانوني" },
|
|
22
|
-
validFail: {
|
|
23
|
-
value: "يُرجى إدخال قيمة",
|
|
24
|
-
common: "يُرجى إدخال قيمة أو صيغة",
|
|
25
|
-
number: "يُرجى إدخال رقم أو صيغة",
|
|
26
|
-
formula: "يُرجى إدخال صيغة",
|
|
27
|
-
integer: "يُرجى إدخال عدد صحيح أو صيغة",
|
|
28
|
-
date: "يُرجى إدخال تاريخ أو صيغة",
|
|
29
|
-
list: "يُرجى إدخال خيارات",
|
|
30
|
-
listInvalid: "يجب أن يكون مصدر القائمة قائمة مفصولة بالفواصل أو مرجعًا لصف أو عمود واحد",
|
|
31
|
-
checkboxEqual: "أدخل قيمًا مختلفة لمحتويات الخلية المحددة وغير المحددة.",
|
|
32
|
-
formulaError: "يحتوي نطاق المرجع على بيانات غير مرئية، يُرجى إعادة ضبط النطاق",
|
|
33
|
-
listIntersects: "لا يمكن أن يتقاطع النطاق المحدد مع نطاق القواعد",
|
|
34
|
-
primitive: "الصيغ غير مسموح بها للقيم المخصصة المحددة وغير المحددة."
|
|
35
|
-
},
|
|
22
|
+
validFail: { formulaError: "يحتوي نطاق المرجع على بيانات غير مرئية، يُرجى إعادة ضبط النطاق" },
|
|
36
23
|
panel: {
|
|
37
24
|
title: "إدارة التحقق من صحة البيانات",
|
|
38
25
|
addTitle: "إنشاء تحقق جديد من صحة البيانات",
|
|
@@ -55,43 +42,21 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
55
42
|
rangeError: "النطاقات غير قانونية",
|
|
56
43
|
allowBlank: "السماح بالقيم الفارغة"
|
|
57
44
|
},
|
|
58
|
-
any: {
|
|
59
|
-
title: "أي قيمة",
|
|
60
|
-
error: "محتوى هذه الخلية ينتهك قاعدة التحقق"
|
|
61
|
-
},
|
|
62
45
|
date: { title: "تاريخ" },
|
|
63
46
|
list: {
|
|
64
47
|
title: "قائمة منسدلة",
|
|
65
|
-
name: "القيمة تحتوي على واحدة من النطاق",
|
|
66
|
-
error: "يجب أن يكون الإدخال ضمن النطاق المحدد",
|
|
67
|
-
emptyError: "يُرجى إدخال قيمة",
|
|
68
48
|
add: "إضافة",
|
|
69
|
-
dropdown: "تحديد",
|
|
70
49
|
options: "خيارات",
|
|
71
50
|
customOptions: "مخصص",
|
|
72
51
|
refOptions: "من نطاق",
|
|
73
|
-
formulaError: "يجب أن يكون مصدر القائمة قائمة بيانات مفصولة بالفواصل، أو مرجعًا لصف أو عمود واحد.",
|
|
74
52
|
edit: "تحرير"
|
|
75
53
|
},
|
|
76
|
-
listMultiple: {
|
|
77
|
-
title: "قائمة منسدلة - متعددة",
|
|
78
|
-
dropdown: "تحديد متعدد"
|
|
79
|
-
},
|
|
80
|
-
textLength: { title: "طول النص" },
|
|
81
|
-
decimal: { title: "رقم" },
|
|
82
|
-
whole: { title: "عدد صحيح" },
|
|
83
54
|
checkbox: {
|
|
84
55
|
title: "خانة اختيار",
|
|
85
|
-
error: "محتوى هذه الخلية ينتهك قاعدة التحقق",
|
|
86
56
|
tips: "استخدم قيمًا مخصصة داخل الخلايا",
|
|
87
57
|
checked: "القيمة المحددة",
|
|
88
58
|
unchecked: "القيمة غير المحددة"
|
|
89
59
|
},
|
|
90
|
-
custom: {
|
|
91
|
-
title: "صيغة مخصصة",
|
|
92
|
-
error: "محتوى هذه الخلية ينتهك قاعدة التحقق",
|
|
93
|
-
validFail: "يُرجى إدخال صيغة صالحة"
|
|
94
|
-
},
|
|
95
60
|
alert: {
|
|
96
61
|
title: "خطأ",
|
|
97
62
|
ok: "موافق"
|
package/lib/locale/ca-ES.js
CHANGED
|
@@ -19,20 +19,7 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
operators: { legal: "és tipus legal" },
|
|
22
|
-
validFail: {
|
|
23
|
-
value: "Si us plau, introdueix un valor",
|
|
24
|
-
common: "Si us plau, introdueix un valor o una fórmula",
|
|
25
|
-
number: "Si us plau, introdueix un número o una fórmula",
|
|
26
|
-
formula: "Si us plau, introdueix una fórmula",
|
|
27
|
-
integer: "Si us plau, introdueix un enter o una fórmula",
|
|
28
|
-
date: "Si us plau, introdueix una data o una fórmula",
|
|
29
|
-
list: "Si us plau, introdueix opcions",
|
|
30
|
-
listInvalid: "La font de la llista ha de ser una llista delimitada o una referència a una sola fila o columna",
|
|
31
|
-
checkboxEqual: "Introdueix valors diferents per als continguts de cel·la marcats i desmarcats.",
|
|
32
|
-
formulaError: "L’interval de referència conté dades invisibles, ajusta l’interval",
|
|
33
|
-
listIntersects: "L’interval seleccionat no pot creuar-se amb l’àmbit de les regles",
|
|
34
|
-
primitive: "No es permeten fórmules per a valors personalitzats marcats i desmarcats."
|
|
35
|
-
},
|
|
22
|
+
validFail: { formulaError: "L’interval de referència conté dades invisibles, ajusta l’interval" },
|
|
36
23
|
panel: {
|
|
37
24
|
title: "Gestió de la validació de dades",
|
|
38
25
|
addTitle: "Crea una nova validació de dades",
|
|
@@ -55,43 +42,21 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
55
42
|
rangeError: "Els intervals no són vàlids",
|
|
56
43
|
allowBlank: "Permet valors en blanc"
|
|
57
44
|
},
|
|
58
|
-
any: {
|
|
59
|
-
title: "Qualsevol valor",
|
|
60
|
-
error: "El contingut d’aquesta cel·la incompleix la regla de validació"
|
|
61
|
-
},
|
|
62
45
|
date: { title: "Data" },
|
|
63
46
|
list: {
|
|
64
47
|
title: "Desplegable",
|
|
65
|
-
name: "El valor conté un del rang",
|
|
66
|
-
error: "L’entrada ha d’estar dins del rang especificat",
|
|
67
|
-
emptyError: "Si us plau, introdueix un valor",
|
|
68
48
|
add: "Afegeix",
|
|
69
|
-
dropdown: "Selecciona",
|
|
70
49
|
options: "Opcions",
|
|
71
50
|
customOptions: "Personalitzat",
|
|
72
51
|
refOptions: "D’un interval",
|
|
73
|
-
formulaError: "La font de la llista ha de ser una llista delimitada de dades o una referència a una sola fila o columna.",
|
|
74
52
|
edit: "Edita"
|
|
75
53
|
},
|
|
76
|
-
listMultiple: {
|
|
77
|
-
title: "Desplegable-múltiple",
|
|
78
|
-
dropdown: "Selecció múltiple"
|
|
79
|
-
},
|
|
80
|
-
textLength: { title: "Longitud del text" },
|
|
81
|
-
decimal: { title: "Número" },
|
|
82
|
-
whole: { title: "Enter" },
|
|
83
54
|
checkbox: {
|
|
84
55
|
title: "Casella de selecció",
|
|
85
|
-
error: "El contingut d’aquesta cel·la incompleix la seva regla de validació",
|
|
86
56
|
tips: "Utilitza valors personalitzats dins de les cel·les",
|
|
87
57
|
checked: "Valor seleccionat",
|
|
88
58
|
unchecked: "Valor no seleccionat"
|
|
89
59
|
},
|
|
90
|
-
custom: {
|
|
91
|
-
title: "Fórmula personalitzada",
|
|
92
|
-
error: "El contingut d’aquesta cel·la incompleix la seva regla de validació",
|
|
93
|
-
validFail: "Si us plau, introdueix una fórmula vàlida"
|
|
94
|
-
},
|
|
95
60
|
alert: {
|
|
96
61
|
title: "Error",
|
|
97
62
|
ok: "OK"
|
package/lib/locale/de-DE.js
CHANGED
|
@@ -19,20 +19,7 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
operators: { legal: "ist gültiger Typ" },
|
|
22
|
-
validFail: {
|
|
23
|
-
value: "Bitte einen Wert eingeben",
|
|
24
|
-
common: "Bitte Wert oder Formel eingeben",
|
|
25
|
-
number: "Bitte Zahl oder Formel eingeben",
|
|
26
|
-
formula: "Bitte Formel eingeben",
|
|
27
|
-
integer: "Bitte Ganzzahl oder Formel eingeben",
|
|
28
|
-
date: "Bitte Datum oder Formel eingeben",
|
|
29
|
-
list: "Bitte Optionen eingeben",
|
|
30
|
-
listInvalid: "Die Listenquelle muss eine durch Trennzeichen getrennte Liste oder ein Bezug auf eine einzelne Zeile oder Spalte sein",
|
|
31
|
-
checkboxEqual: "Geben Sie unterschiedliche Werte für angekreuzte und nicht angekreuzte Zelleninhalte ein.",
|
|
32
|
-
formulaError: "Der Referenzbereich enthält unsichtbare Daten, bitte passen Sie den Bereich an",
|
|
33
|
-
listIntersects: "Der ausgewählte Bereich darf sich nicht mit dem Gültigkeitsbereich der Regeln überschneiden",
|
|
34
|
-
primitive: "Formeln sind für benutzerdefinierte angekreuzte und nicht angekreuzte Werte nicht zulässig."
|
|
35
|
-
},
|
|
22
|
+
validFail: { formulaError: "Der Referenzbereich enthält unsichtbare Daten, bitte passen Sie den Bereich an" },
|
|
36
23
|
panel: {
|
|
37
24
|
title: "Datenüberprüfungsverwaltung",
|
|
38
25
|
addTitle: "Neue Datenüberprüfung erstellen",
|
|
@@ -55,43 +42,21 @@ const locale = { "sheets-data-validation-ui": {
|
|
|
55
42
|
rangeError: "Bereiche sind ungültig",
|
|
56
43
|
allowBlank: "Leere Werte zulassen"
|
|
57
44
|
},
|
|
58
|
-
any: {
|
|
59
|
-
title: "Beliebiger Wert",
|
|
60
|
-
error: "Der Inhalt dieser Zelle verstößt gegen die Überprüfungsregel"
|
|
61
|
-
},
|
|
62
45
|
date: { title: "Datum" },
|
|
63
46
|
list: {
|
|
64
47
|
title: "Dropdown",
|
|
65
|
-
name: "Wert enthält einen aus dem Bereich",
|
|
66
|
-
error: "Eingabe muss innerhalb des angegebenen Bereichs liegen",
|
|
67
|
-
emptyError: "Bitte einen Wert eingeben",
|
|
68
48
|
add: "Hinzufügen",
|
|
69
|
-
dropdown: "Auswählen",
|
|
70
49
|
options: "Optionen",
|
|
71
50
|
customOptions: "Benutzerdefiniert",
|
|
72
51
|
refOptions: "Aus einem Bereich",
|
|
73
|
-
formulaError: "Die Listenquelle muss eine durch Trennzeichen getrennte Liste von Daten oder ein Bezug auf eine einzelne Zeile oder Spalte sein.",
|
|
74
52
|
edit: "Bearbeiten"
|
|
75
53
|
},
|
|
76
|
-
listMultiple: {
|
|
77
|
-
title: "Dropdown-Mehrfachauswahl",
|
|
78
|
-
dropdown: "Mehrfachauswahl"
|
|
79
|
-
},
|
|
80
|
-
textLength: { title: "Textlänge" },
|
|
81
|
-
decimal: { title: "Zahl" },
|
|
82
|
-
whole: { title: "Ganzzahl" },
|
|
83
54
|
checkbox: {
|
|
84
55
|
title: "Kontrollkästchen",
|
|
85
|
-
error: "Der Inhalt dieser Zelle verstößt gegen die Überprüfungsregel",
|
|
86
56
|
tips: "Benutzerdefinierte Werte in Zellen verwenden",
|
|
87
57
|
checked: "Ausgewählter Wert",
|
|
88
58
|
unchecked: "Nicht ausgewählter Wert"
|
|
89
59
|
},
|
|
90
|
-
custom: {
|
|
91
|
-
title: "Benutzerdefinierte Formel",
|
|
92
|
-
error: "Der Inhalt dieser Zelle verstößt gegen die Überprüfungsregel",
|
|
93
|
-
validFail: "Bitte eine gültige Formel eingeben"
|
|
94
|
-
},
|
|
95
60
|
alert: {
|
|
96
61
|
title: "Fehler",
|
|
97
62
|
ok: "OK"
|