littleshop/LittleShop/wwwroot/lib/handsontable/languages/ru-RU.min.js
sysadmin 76efba55bd feat: Phase 2.5 - Variant Collections Spreadsheet Editor
Replaces JSON textarea with professional Excel-like spreadsheet interface for managing product variant properties.

Features:
- Handsontable 14.6.1 spreadsheet component
- Property presets (Size, Color, Material, Storage, Custom)
- Inline cell editing with Tab/Enter navigation
- Context menu for add/remove rows and columns
- Keyboard shortcuts (Ctrl+D delete, Ctrl+Enter save, Ctrl+Z undo)
- Mobile touch gestures (swipe to delete rows)
- Automatic JSON serialization on form submit
- Form validation before saving
- Comprehensive user guide documentation

Files Changed:
- LittleShop/package.json: NPM package management setup
- LittleShop/wwwroot/js/variant-editor.js: 400-line spreadsheet editor module
- LittleShop/wwwroot/lib/handsontable/: Handsontable library (Community Edition)
- LittleShop/wwwroot/lib/hammerjs/: Hammer.js touch gesture library
- LittleShop/Areas/Admin/Views/VariantCollections/Edit.cshtml: Spreadsheet UI integration
- VARIANT_COLLECTIONS_USER_GUIDE.md: Complete user guide (18+ pages)

Technical Details:
- Excel-like editing experience (no more manual JSON editing)
- Mobile-first responsive design
- Browser compatibility: Chrome 90+, Firefox 88+, Edge 90+, Safari 14+
- Touch-optimized for mobile administration
- Automatic data validation and error handling
2025-11-13 19:40:06 +00:00

1 line
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(E,T){if("object"==typeof exports&&"object"==typeof module)module.exports=T(require("handsontable"));else if("function"==typeof define&&define.amd)define(["handsontable"],T);else{var _="object"==typeof exports?T(require("handsontable")):T(E.Handsontable);for(var N in _)("object"==typeof exports?exports:E)[N]=_[N]}}("undefined"!=typeof self?self:this,(E=>(()=>{var T={330:T=>{"use strict";T.exports=E},436:E=>{E.exports=function(E){return E&&E.__esModule?E:{default:E}},E.exports.__esModule=!0,E.exports.default=E.exports}},_={};function N(E){var O=_[E];if(void 0!==O)return O.exports;var I=_[E]={exports:{}};return T[E](I,I.exports,N),I.exports}var O={};return(()=>{"use strict";var E=N(436)(N(330));const T=E.default.languages.dictionaryKeys,_={languageCode:"ru-RU",[T.CONTEXTMENU_ITEMS_ROW_ABOVE]:"Вставить строку выше",[T.CONTEXTMENU_ITEMS_ROW_BELOW]:"Вставить строку ниже",[T.CONTEXTMENU_ITEMS_INSERT_LEFT]:"Вставить столбец слева",[T.CONTEXTMENU_ITEMS_INSERT_RIGHT]:"Вставить столбец справа",[T.CONTEXTMENU_ITEMS_REMOVE_ROW]:["Удалить строку","Удалить строки"],[T.CONTEXTMENU_ITEMS_REMOVE_COLUMN]:["Удалить столбец","Удалить столбцы"],[T.CONTEXTMENU_ITEMS_UNDO]:"Отменить",[T.CONTEXTMENU_ITEMS_REDO]:"Повторить",[T.CONTEXTMENU_ITEMS_READ_ONLY]:"Только для чтения",[T.CONTEXTMENU_ITEMS_CLEAR_COLUMN]:"Очистить столбец",[T.CONTEXTMENU_ITEMS_ALIGNMENT]:"Выравнивание",[T.CONTEXTMENU_ITEMS_ALIGNMENT_LEFT]:"По левому краю",[T.CONTEXTMENU_ITEMS_ALIGNMENT_CENTER]:"По центру",[T.CONTEXTMENU_ITEMS_ALIGNMENT_RIGHT]:"По правому краю",[T.CONTEXTMENU_ITEMS_ALIGNMENT_JUSTIFY]:"По ширине",[T.CONTEXTMENU_ITEMS_ALIGNMENT_TOP]:"По верхнему краю",[T.CONTEXTMENU_ITEMS_ALIGNMENT_MIDDLE]:"По центру",[T.CONTEXTMENU_ITEMS_ALIGNMENT_BOTTOM]:"По нижнему краю",[T.CONTEXTMENU_ITEMS_FREEZE_COLUMN]:"Закрепить столбец",[T.CONTEXTMENU_ITEMS_UNFREEZE_COLUMN]:"Открепить столбец",[T.CONTEXTMENU_ITEMS_BORDERS]:"Границы",[T.CONTEXTMENU_ITEMS_BORDERS_TOP]:"Сверху",[T.CONTEXTMENU_ITEMS_BORDERS_RIGHT]:"Справа",[T.CONTEXTMENU_ITEMS_BORDERS_BOTTOM]:"Снизу",[T.CONTEXTMENU_ITEMS_BORDERS_LEFT]:"Слева",[T.CONTEXTMENU_ITEMS_REMOVE_BORDERS]:"Удалить границу(ы)",[T.CONTEXTMENU_ITEMS_ADD_COMMENT]:"Добавить комментарий",[T.CONTEXTMENU_ITEMS_EDIT_COMMENT]:"Редактировать комментарий",[T.CONTEXTMENU_ITEMS_REMOVE_COMMENT]:"Удалить комментарий",[T.CONTEXTMENU_ITEMS_READ_ONLY_COMMENT]:"Комментарий только для чтения",[T.CONTEXTMENU_ITEMS_MERGE_CELLS]:"Объединить ячейки",[T.CONTEXTMENU_ITEMS_UNMERGE_CELLS]:"Разделить ячейки",[T.CONTEXTMENU_ITEMS_COPY]:"Копировать",[T.CONTEXTMENU_ITEMS_CUT]:"Вырезать",[T.CONTEXTMENU_ITEMS_NESTED_ROWS_INSERT_CHILD]:"Вставить дочернюю строку",[T.CONTEXTMENU_ITEMS_NESTED_ROWS_DETACH_CHILD]:"Отделить от родителя",[T.CONTEXTMENU_ITEMS_HIDE_COLUMN]:["Скрыть столбец","Скрыть столбцы"],[T.CONTEXTMENU_ITEMS_SHOW_COLUMN]:["Показать столбец","Показать столбцы"],[T.CONTEXTMENU_ITEMS_HIDE_ROW]:["Скрыть строку","Скрыть строки"],[T.CONTEXTMENU_ITEMS_SHOW_ROW]:["Показать строку","Показать строки"],[T.FILTERS_CONDITIONS_NONE]:"Отсутствует",[T.FILTERS_CONDITIONS_EMPTY]:"Пусто",[T.FILTERS_CONDITIONS_NOT_EMPTY]:"Не пусто",[T.FILTERS_CONDITIONS_EQUAL]:"Равно",[T.FILTERS_CONDITIONS_NOT_EQUAL]:"Не равно",[T.FILTERS_CONDITIONS_BEGINS_WITH]:"Начинается на",[T.FILTERS_CONDITIONS_ENDS_WITH]:"Заканчивается на",[T.FILTERS_CONDITIONS_CONTAINS]:"Содержит",[T.FILTERS_CONDITIONS_NOT_CONTAIN]:"Не содержит",[T.FILTERS_CONDITIONS_GREATER_THAN]:"Больше чем",[T.FILTERS_CONDITIONS_GREATER_THAN_OR_EQUAL]:"Больше или равно",[T.FILTERS_CONDITIONS_LESS_THAN]:"Меньше чем",[T.FILTERS_CONDITIONS_LESS_THAN_OR_EQUAL]:"Меньше или равно",[T.FILTERS_CONDITIONS_BETWEEN]:"Между",[T.FILTERS_CONDITIONS_NOT_BETWEEN]:"Не между",[T.FILTERS_CONDITIONS_AFTER]:"После",[T.FILTERS_CONDITIONS_BEFORE]:"До",[T.FILTERS_CONDITIONS_TODAY]:"Сегодня",[T.FILTERS_CONDITIONS_TOMORROW]:"Завтра",[T.FILTERS_CONDITIONS_YESTERDAY]:"Вчера",[T.FILTERS_VALUES_BLANK_CELLS]:"Пустые ячейки",[T.FILTERS_DIVS_FILTER_BY_CONDITION]:"Фильтр по условию",[T.FILTERS_DIVS_FILTER_BY_VALUE]:"Фильтр по значению",[T.FILTERS_LABELS_CONJUNCTION]:"И",[T.FILTERS_LABELS_DISJUNCTION]:"Или",[T.FILTERS_BUTTONS_SELECT_ALL]:"Выбрать все",[T.FILTERS_BUTTONS_CLEAR]:"Убрать",[T.FILTERS_BUTTONS_OK]:"OK",[T.FILTERS_BUTTONS_CANCEL]:"Отмена",[T.FILTERS_BUTTONS_PLACEHOLDER_SEARCH]:"Поиск",[T.FILTERS_BUTTONS_PLACEHOLDER_VALUE]:"Значение",[T.FILTERS_BUTTONS_PLACEHOLDER_SECOND_VALUE]:"Второе значение"};E.default.languages.registerLanguageDictionary(_)})(),O=O.___})()));