@green-code-studio/objects-list 1.10.1 → 1.11.0

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/demo/demo.js CHANGED
@@ -33,7 +33,16 @@ objectList.generateActions=()=>[
33
33
  {title:'aaa', href:'https://bing.com', main: true,},
34
34
  ]
35
35
  objectList.dateRowCallback=(row)=>new Date(row.start)
36
+ objectList.calendarRowCallback=(row)=>{
37
+ const element = document.createElement('div');
38
+ element.textContent = row.name;
39
+ return element;
40
+ }
36
41
  objectList.style.height='500px';
42
+ objectList.generateExports=()=>[
43
+ {name:'pdf', action:()=>{console.log('export pdf')}},
44
+ {name:'csv', action:()=>{console.log('export csv')}},
45
+ ]
37
46
  document.body.appendChild(objectList);
38
47
  objectList.readUrl()
39
48
  objectList.refresh();
package/demoDist/demo.js CHANGED
@@ -56,7 +56,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
56
56
  \**********************/
57
57
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
58
58
 
59
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ node: () => (/* binding */ node),\n/* harmony export */ t: () => (/* binding */ t),\n/* harmony export */ translator: () => (/* binding */ translator)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nNode.js */ \"./node_modules/@green-code-studio/internationalization/i18nNode.js\");\n/* harmony import */ var _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nTextValue.js */ \"./node_modules/@green-code-studio/internationalization/i18nTextValue.js\");\n/* harmony import */ var _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @green-code-studio/internationalization/translator.js */ \"./node_modules/@green-code-studio/internationalization/translator.js\");\n/* harmony import */ var _green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @green-code-studio/internationalization/languagesHierarchy.js */ \"./node_modules/@green-code-studio/internationalization/languagesHierarchy.js\");\n\n\n\n\n\nconsole.log(_green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode);\nconst node = {name:\"\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"objectList\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"paginationMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb paginacji\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Pagination mode\")}],[])},{name:\"scrollMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb scrollowania\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Scroll mode\")}],[])},{name:\"tableView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view\")}],[])},{name:\"tableWideView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli (szeroka)\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view (wide)\")}],[])},{name:\"listView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok listy\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"List view\")}],[])},{name:\"calendarView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok kalendarza\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Calendar view\")}],[])},{name:\"timelineView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok osi czasu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Timeline view\")}],[])},{name:\"startMultiEdit\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Rozpocznij edycję wielu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Start multi-edit\")}],[])},{name:\"saveRow\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zapisz wiersz\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Save a row\")}],[])},{name:\"mode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mode\")}],[])},{name:\"view\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"View\")}],[])},{name:\"columnEnabled\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Kolumna widoczna\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column enabled\")}],[])},{name:\"columnName\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nazwa kolumny\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column name\")}],[])},{name:\"columnFilter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filtr\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filter\")}],[])},{name:\"filtersCount\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Liczba filtrów\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filters count\")}],[])},{name:\"clearFilters\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Wyczyść filtry\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Clear filters\")}],[])},{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"inNewTab\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"W nowej karcie\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"In new tab\")}],[])},{name:\"visibilityLimitReached\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Reszta pól została ukryta. Wszystkich pól: \")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"The rest of the fields have been hidden. All fields: \")}],[])},{name:\"sort\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sortuj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sort\")}],[])}])},{name:\"filter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"none\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Brak\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"None\")}],[])},{name:\"equals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Equals\")}],[])},{name:\"notEquals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nie równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Not equals\")}],[])},{name:\"lessThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mniejsze niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Less than\")}],[])},{name:\"greaterThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Większe niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Greater than\")}],[])},{name:\"contains\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zawiera\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Contains\")}],[])},{name:\"oneOf\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Jedno z\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"One of\")}],[])},{name:\"empty\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Puste\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Empty\")}],[])}])}])};\nconst translator=new _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__.Translator(_green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__.LanguagesHierarchy.default, node.node);\nfunction t(q){var x=translator.translate(q);return x?x.toString():'';}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/i18n.xml?");
59
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ node: () => (/* binding */ node),\n/* harmony export */ t: () => (/* binding */ t),\n/* harmony export */ translator: () => (/* binding */ translator)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nNode.js */ \"./node_modules/@green-code-studio/internationalization/i18nNode.js\");\n/* harmony import */ var _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nTextValue.js */ \"./node_modules/@green-code-studio/internationalization/i18nTextValue.js\");\n/* harmony import */ var _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @green-code-studio/internationalization/translator.js */ \"./node_modules/@green-code-studio/internationalization/translator.js\");\n/* harmony import */ var _green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @green-code-studio/internationalization/languagesHierarchy.js */ \"./node_modules/@green-code-studio/internationalization/languagesHierarchy.js\");\n\n\n\n\n\nconsole.log(_green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode);\nconst node = {name:\"\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"objectList\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"paginationMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb paginacji\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Pagination mode\")}],[])},{name:\"scrollMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb scrollowania\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Scroll mode\")}],[])},{name:\"tableView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view\")}],[])},{name:\"tableWideView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli (szeroka)\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view (wide)\")}],[])},{name:\"listView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok listy\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"List view\")}],[])},{name:\"calendarView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok kalendarza\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Calendar view\")}],[])},{name:\"startMultiEdit\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Rozpocznij edycję wielu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Start multi-edit\")}],[])},{name:\"saveRow\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zapisz wiersz\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Save a row\")}],[])},{name:\"mode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mode\")}],[])},{name:\"view\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"View\")}],[])},{name:\"columnEnabled\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Kolumna widoczna\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column enabled\")}],[])},{name:\"columnName\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nazwa kolumny\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column name\")}],[])},{name:\"columnFilter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filtr\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filter\")}],[])},{name:\"filtersCount\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Liczba filtrów\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filters count\")}],[])},{name:\"clearFilters\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Wyczyść filtry\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Clear filters\")}],[])},{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"inNewTab\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"W nowej karcie\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"In new tab\")}],[])},{name:\"visibilityLimitReached\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Reszta pól została ukryta. Wszystkich pól: \")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"The rest of the fields have been hidden. All fields: \")}],[])},{name:\"sort\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sortuj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sort\")}],[])}])},{name:\"filter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"none\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Brak\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"None\")}],[])},{name:\"equals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Equals\")}],[])},{name:\"notEquals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nie równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Not equals\")}],[])},{name:\"lessThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mniejsze niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Less than\")}],[])},{name:\"greaterThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Większe niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Greater than\")}],[])},{name:\"contains\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zawiera\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Contains\")}],[])},{name:\"oneOf\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Jedno z\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"One of\")}],[])},{name:\"empty\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Puste\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Empty\")}],[])}])}])};\nconst translator=new _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__.Translator(_green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__.LanguagesHierarchy.default, node.node);\nfunction t(q){var x=translator.translate(q);return x?x.toString():'';}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/i18n.xml?");
60
60
 
61
61
  /***/ }),
62
62
 
@@ -86,7 +86,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
86
86
  \*****************************************************************************************************************/
87
87
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
88
88
 
89
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.contextMenu {\n position: fixed;\n z-index: 1000;\n margin: 0;\n padding: 0;\n max-width: 100vh;\n min-width: 200px;\n user-select: none;\n background: var(--background);\n}\n.contextMenu li, .contextMenu a {\n display: flex;\n cursor: pointer;\n margin: 0;\n white-space: nowrap;\n align-items: center;\n}\n.contextMenu li .icon, .contextMenu a .icon {\n display: inline-block;\n flex: 0 0 50px;\n text-align: center;\n font-size: 1.2em;\n line-height: 1em;\n vertical-align: middle;\n}\n.contextMenu li .iconPlaceholder, .contextMenu a .iconPlaceholder {\n display: inline-block;\n width: 50px;\n}\n.contextMenu li .content, .contextMenu a .content {\n flex: 1 1 auto;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 15px 10px;\n line-height: 1em;\n vertical-align: middle;\n}\n\ndata-view {\n border: 1px solid var(--second);\n display: flex;\n flex-direction: column;\n height: calc(100vh - 200px);\n user-select: none;\n}\ndata-view table-view {\n display: block;\n flex-grow: 1;\n overflow: auto;\n --rowHeight: 41px;\n}\ndata-view table-view .head {\n position: sticky;\n top: 0;\n z-index: 1;\n height: 19px;\n background: var(--second);\n}\ndata-view table-view .head .column {\n background: var(--second);\n color: var(--textSecondColor);\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 700;\n position: absolute;\n padding: 0 10px;\n box-sizing: border-box;\n height: 19px;\n transform: translateX(var(--move-x));\n}\ndata-view table-view .head .column.ableToSort {\n cursor: pointer;\n}\ndata-view table-view .head .column.ableToSort::before {\n transform: scaleY(0);\n transition: all 300ms ease-out;\n position: absolute;\n right: 0;\n}\ndata-view table-view .head .column.ableToSort[data-order=asc]::before {\n transform: scaleY(1);\n}\ndata-view table-view .head .column.ableToSort[data-order=desc]::before {\n transform: scaleY(-1);\n}\ndata-view table-view .head .column.ableToSort .tableCopy {\n display: none;\n}\ndata-view table-view .body {\n position: relative;\n}\ndata-view table-view .body .tr {\n display: flex;\n position: absolute;\n transition: top 300ms ease, background 100ms;\n table-layout: fixed;\n flex-direction: row;\n animation: data-view-appear 200ms;\n}\n@keyframes data-view-appear {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\ndata-view table-view .body .tr.selectedMain, data-view table-view .body .tr:focus {\n outline: 2px black dashed;\n outline-offset: -2px;\n}\ndata-view table-view .body .tr .td {\n padding: 5px 10px;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n flex: 0 0 auto;\n box-sizing: border-box;\n height: var(--rowHeight);\n}\ndata-view table-view .body .tr .td button, data-view table-view .body .tr .td .button {\n font-size: 16px;\n margin-left: 2px;\n}\ndata-view table-view .body .tr .td.actions {\n display: flex;\n}\ndata-view list-view {\n display: block;\n flex-grow: 1;\n overflow: auto;\n}\ndata-view list-view .body {\n position: relative;\n}\ndata-view list-view .body .tr {\n display: grid;\n position: absolute;\n transition: top 300ms ease, background 100ms;\n animation: data-view-appear 200ms;\n grid-template-columns: max-content 1fr max-content;\n width: 100%;\n padding: 10px 0;\n}\ndata-view list-view .body .tr.selectedMain, data-view list-view .body .tr:focus {\n outline: 2px black dashed;\n outline-offset: -2px;\n}\ndata-view list-view .body .tr button, data-view list-view .body .tr .button {\n font-size: 16px;\n margin-left: 2px;\n}\ndata-view list-view .body .tr .icon {\n grid-column: 1;\n grid-row: 1/4;\n font-size: 40px;\n line-height: 63px;\n}\ndata-view list-view .body .tr .keyValue {\n grid-column: 2/4;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 21px;\n}\ndata-view list-view .body .tr .keyValue:nth-child(2), data-view list-view .body .tr .keyValue:nth-child(3) {\n grid-column: 2;\n}\ndata-view list-view .body .tr .actions {\n grid-column: 3;\n grid-row: 1/3;\n}\ndata-view .foot {\n border-top: 1px solid var(--second);\n display: flex;\n justify-content: space-between;\n}\n@media (max-width: 600px) {\n data-view .foot form input {\n width: 40px;\n }\n data-view .foot form input:focus {\n width: 200px;\n margin-left: -160px;\n }\n}\ndata-view pagination-buttons {\n flex: 1 1;\n display: flex;\n justify-content: center;\n}\ndata-view.infiniteScrollEnabled table-view .body, data-view.infiniteScrollEnabled list-view .body {\n height: var(--height);\n}\ndata-view.infiniteScrollEnabled pagination-buttons {\n display: none;\n}\n\npagination-buttons button.active {\n background: var(--main);\n}\n\n.categoryTableContainer:not(:has(.filter)) .filterHeader {\n display: none;\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/style/objectsList.scss?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js");
89
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.contextMenu {\n position: fixed;\n z-index: 1000;\n margin: 0;\n padding: 0;\n max-width: 100vh;\n min-width: 200px;\n user-select: none;\n background: var(--background);\n}\n.contextMenu li, .contextMenu a {\n display: flex;\n cursor: pointer;\n margin: 0;\n white-space: nowrap;\n align-items: center;\n}\n.contextMenu li .icon, .contextMenu a .icon {\n display: inline-block;\n flex: 0 0 50px;\n text-align: center;\n font-size: 1.2em;\n line-height: 1em;\n vertical-align: middle;\n}\n.contextMenu li .iconPlaceholder, .contextMenu a .iconPlaceholder {\n display: inline-block;\n width: 50px;\n}\n.contextMenu li .content, .contextMenu a .content {\n flex: 1 1 auto;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 15px 10px;\n line-height: 1em;\n vertical-align: middle;\n}\n\ndata-view {\n border: 1px solid var(--second);\n display: flex;\n flex-direction: column;\n height: calc(100vh - 200px);\n user-select: none;\n}\ndata-view table-view {\n display: block;\n flex-grow: 1;\n overflow: auto;\n --rowHeight: 41px;\n}\ndata-view table-view .head {\n position: sticky;\n top: 0;\n z-index: 1;\n height: 19px;\n background: var(--second);\n}\ndata-view table-view .head .column {\n background: var(--second);\n color: var(--textSecondColor);\n cursor: default;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 700;\n position: absolute;\n padding: 0 10px;\n box-sizing: border-box;\n height: 19px;\n transform: translateX(var(--move-x));\n}\ndata-view table-view .head .column.ableToSort {\n cursor: pointer;\n}\ndata-view table-view .head .column.ableToSort::before {\n transform: scaleY(0);\n transition: all 300ms ease-out;\n position: absolute;\n right: 0;\n}\ndata-view table-view .head .column.ableToSort[data-order=asc]::before {\n transform: scaleY(1);\n}\ndata-view table-view .head .column.ableToSort[data-order=desc]::before {\n transform: scaleY(-1);\n}\ndata-view table-view .head .column.ableToSort .tableCopy {\n display: none;\n}\ndata-view table-view .body {\n position: relative;\n}\ndata-view table-view .body .tr {\n display: flex;\n position: absolute;\n transition: top 300ms ease, background 100ms;\n table-layout: fixed;\n flex-direction: row;\n animation: data-view-appear 200ms;\n}\n@keyframes data-view-appear {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\ndata-view table-view .body .tr.selectedMain, data-view table-view .body .tr:focus {\n outline: 2px black dashed;\n outline-offset: -2px;\n}\ndata-view table-view .body .tr .td {\n padding: 5px 10px;\n margin: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n flex: 0 0 auto;\n box-sizing: border-box;\n height: var(--rowHeight);\n}\ndata-view table-view .body .tr .td button, data-view table-view .body .tr .td .button {\n font-size: 16px;\n margin-left: 2px;\n}\ndata-view table-view .body .tr .td.actions {\n display: flex;\n}\ndata-view list-view {\n display: block;\n flex-grow: 1;\n overflow: auto;\n}\ndata-view list-view .body {\n position: relative;\n}\ndata-view list-view .body .tr {\n display: grid;\n position: absolute;\n transition: top 300ms ease, background 100ms;\n animation: data-view-appear 200ms;\n grid-template-columns: max-content 1fr max-content;\n width: 100%;\n padding: 10px 0;\n}\ndata-view list-view .body .tr.selectedMain, data-view list-view .body .tr:focus {\n outline: 2px black dashed;\n outline-offset: -2px;\n}\ndata-view list-view .body .tr button, data-view list-view .body .tr .button {\n font-size: 16px;\n margin-left: 2px;\n}\ndata-view list-view .body .tr .icon {\n grid-column: 1;\n grid-row: 1/4;\n font-size: 40px;\n line-height: 63px;\n}\ndata-view list-view .body .tr .keyValue {\n grid-column: 2/4;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 21px;\n}\ndata-view list-view .body .tr .keyValue:nth-child(2), data-view list-view .body .tr .keyValue:nth-child(3) {\n grid-column: 2;\n}\ndata-view list-view .body .tr .actions {\n grid-column: 3;\n grid-row: 1/3;\n}\ndata-view calendar-view {\n flex-grow: 1;\n}\ndata-view calendar-view .bodyContainer {\n overflow: scroll;\n}\ndata-view calendar-view .body {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n min-height: 100%;\n}\ndata-view .foot {\n border-top: 1px solid var(--second);\n display: flex;\n justify-content: space-between;\n}\n@media (max-width: 600px) {\n data-view .foot form input {\n width: 40px;\n }\n data-view .foot form input:focus {\n width: 200px;\n margin-left: -160px;\n }\n}\ndata-view pagination-buttons {\n flex: 1 1;\n display: flex;\n justify-content: center;\n}\ndata-view.infiniteScrollEnabled table-view .body, data-view.infiniteScrollEnabled list-view .body {\n height: var(--height);\n}\ndata-view.infiniteScrollEnabled pagination-buttons {\n display: none;\n}\n\npagination-buttons button.active {\n background: var(--main);\n}\n\n.categoryTableContainer:not(:has(.filter)) .filterHeader {\n display: none;\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/style/objectsList.scss?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js");
90
90
 
91
91
  /***/ }),
92
92
 
@@ -126,7 +126,7 @@ eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(obje
126
126
  \******************************/
127
127
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
128
128
 
129
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(variables){const _0=document.createDocumentFragment();const _1=document.createElement(\"form\");const _2=document.createTextNode(\"\\r\\n \");_1.append(_2);const _3=document.createElement(\"label\");const _4=document.createTextNode(\"\\r\\n \");_3.append(_4);const _5=document.createElement(\"span\");const _6=document.createTextNode(variables[\"t\"](\"objectList.mode\"));_5.append(_6);_3.append(_5);const _7=document.createTextNode(\"\\r\\n \");_3.append(_7);const _8=document.createElement(\"select\");const _9=\"mode\";if(typeof _9==='function')_8[\"class\"]=_9;else if(_9!== undefined&&_9!== null&&_9!== false) _8.setAttribute(\"class\",_9);const _10=document.createTextNode(\"\\r\\n \");_8.append(_10);const _11=document.createElement(\"option\");const _12=\"paginationMode\";if(typeof _12==='function')_11[\"value\"]=_12;else if(_12!== undefined&&_12!== null&&_12!== false) _11.setAttribute(\"value\",_12);const _13=document.createTextNode(variables[\"t\"](\"objectList.paginationMode\"));_11.append(_13);_8.append(_11);const _14=document.createTextNode(\"\\r\\n \");_8.append(_14);const _15=document.createElement(\"option\");const _16=\"scrollMode\";if(typeof _16==='function')_15[\"value\"]=_16;else if(_16!== undefined&&_16!== null&&_16!== false) _15.setAttribute(\"value\",_16);const _17=document.createTextNode(variables[\"t\"](\"objectList.scrollMode\"));_15.append(_17);_8.append(_15);const _18=document.createTextNode(\"\\r\\n \");_8.append(_18);_3.append(_8);const _19=document.createTextNode(\"\\r\\n \");_3.append(_19);_1.append(_3);const _20=document.createTextNode(\"\\r\\n \");_1.append(_20);const _21=document.createElement(\"label\");const _22=document.createTextNode(\"\\r\\n \");_21.append(_22);const _23=document.createElement(\"span\");const _24=document.createTextNode(variables[\"t\"](\"objectList.view\"));_23.append(_24);_21.append(_23);const _25=document.createTextNode(\"\\r\\n \");_21.append(_25);const _26=document.createElement(\"select\");const _27=\"view\";if(typeof _27==='function')_26[\"class\"]=_27;else if(_27!== undefined&&_27!== null&&_27!== false) _26.setAttribute(\"class\",_27);const _28=document.createTextNode(\"\\r\\n \");_26.append(_28);const _29=document.createElement(\"option\");const _30=\"tableView\";if(typeof _30==='function')_29[\"value\"]=_30;else if(_30!== undefined&&_30!== null&&_30!== false) _29.setAttribute(\"value\",_30);const _31=document.createTextNode(variables[\"t\"](\"objectList.tableView\"));_29.append(_31);_26.append(_29);const _32=document.createTextNode(\"\\r\\n \");_26.append(_32);const _33=document.createElement(\"option\");const _34=\"tableWideView\";if(typeof _34==='function')_33[\"value\"]=_34;else if(_34!== undefined&&_34!== null&&_34!== false) _33.setAttribute(\"value\",_34);const _35=document.createTextNode(variables[\"t\"](\"objectList.tableWideView\"));_33.append(_35);_26.append(_33);const _36=document.createTextNode(\"\\r\\n \");_26.append(_36);const _37=document.createElement(\"option\");const _38=\"listView\";if(typeof _38==='function')_37[\"value\"]=_38;else if(_38!== undefined&&_38!== null&&_38!== false) _37.setAttribute(\"value\",_38);const _39=document.createTextNode(variables[\"t\"](\"objectList.listView\"));_37.append(_39);_26.append(_37);const _40=document.createTextNode(\"\\r\\n \");_26.append(_40);const _41=document.createElement(\"option\");const _42=\"calendarView\";if(typeof _42==='function')_41[\"value\"]=_42;else if(_42!== undefined&&_42!== null&&_42!== false) _41.setAttribute(\"value\",_42);const _43=document.createTextNode(variables[\"t\"](\"objectList.calendarView\"));_41.append(_43);_26.append(_41);const _44=document.createTextNode(\"\\r\\n \");_26.append(_44);const _45=document.createElement(\"option\");const _46=\"timelineView\";if(typeof _46==='function')_45[\"value\"]=_46;else if(_46!== undefined&&_46!== null&&_46!== false) _45.setAttribute(\"value\",_46);const _47=document.createTextNode(variables[\"t\"](\"objectList.timelineView\"));_45.append(_47);_26.append(_45);const _48=document.createTextNode(\"\\r\\n \");_26.append(_48);_21.append(_26);const _49=document.createTextNode(\"\\r\\n \");_21.append(_49);_1.append(_21);const _50=document.createTextNode(\"\\r\\n \");_1.append(_50);const _51=document.createElement(\"input\");const _52=\"search\";if(typeof _52==='function')_51[\"type\"]=_52;else if(_52!== undefined&&_52!== null&&_52!== false) _51.setAttribute(\"type\",_52);const _53=variables[\"t\"](\"objectList.search\");if(typeof _53==='function')_51[\"placeholder\"]=_53;else if(_53!== undefined&&_53!== null&&_53!== false) _51.setAttribute(\"placeholder\",_53);_1.append(_51);const _54=document.createTextNode(\"\\r\\n \");_1.append(_54);let _55=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"categories\"])){let category = _foreachValue;const _56=document.createTextNode(\"\\r\\n \");_55.append(_56);const _57=document.createElement(\"div\");const _58=\"categoryTableContainer\";if(typeof _58==='function')_57[\"class\"]=_58;else if(_58!== undefined&&_58!== null&&_58!== false) _57.setAttribute(\"class\",_58);const _59=document.createTextNode(\"\\r\\n \");_57.append(_59);const _60=document.createTextNode(category[\"name\"]);_57.append(_60);const _61=document.createTextNode(\"\\r\\n\\r\\n \");_57.append(_61);const _62=document.createElement(\"table\");const _63=document.createTextNode(\"\\r\\n \");_62.append(_63);const _64=document.createElement(\"thead\");const _65=document.createTextNode(\"\\r\\n \");_64.append(_65);const _66=document.createElement(\"tr\");const _67=document.createTextNode(\"\\r\\n \");_66.append(_67);const _68=document.createElement(\"th\");const _69=document.createTextNode(variables[\"t\"](\"objectList.columnEnabled\"));_68.append(_69);_66.append(_68);const _70=document.createTextNode(\"\\r\\n \");_66.append(_70);const _71=document.createElement(\"th\");const _72=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_71.append(_72);_66.append(_71);const _73=document.createTextNode(\"\\r\\n \");_66.append(_73);const _74=document.createElement(\"th\");const _75=document.createTextNode(variables[\"t\"](\"objectList.columnName\"));_74.append(_75);_66.append(_74);const _76=document.createTextNode(\"\\r\\n \");_66.append(_76);const _77=document.createElement(\"th\");const _78=\"filterHeader\";if(typeof _78==='function')_77[\"class\"]=_78;else if(_78!== undefined&&_78!== null&&_78!== false) _77.setAttribute(\"class\",_78);const _79=document.createTextNode(variables[\"t\"](\"objectList.columnFilter\"));_77.append(_79);_66.append(_77);const _80=document.createTextNode(\"\\r\\n \");_66.append(_80);_64.append(_66);const _81=document.createTextNode(\"\\r\\n \");_64.append(_81);_62.append(_64);const _82=document.createTextNode(\"\\r\\n \");_62.append(_82);const _83=document.createElement(\"tbody\");const _84=document.createTextNode(\"\\r\\n\\r\\n \");_83.append(_84);let _85=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(category[\"columns\"])){let column = _foreachValue;const _86=document.createTextNode(\"\\r\\n \");_85.append(_86);const _87=document.createElement(\"tr\");const _88=document.createTextNode(\"\\r\\n \");_87.append(_88);const _89=document.createElement(\"td\");const _90=document.createTextNode(\"\\r\\n \");_89.append(_90);const _91=document.createElement(\"input\");const _92=\"checkbox\";if(typeof _92==='function')_91[\"type\"]=_92;else if(_92!== undefined&&_92!== null&&_92!== false) _91.setAttribute(\"type\",_92);const _93=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _93==='function')_91[\"data-name\"]=_93;else if(_93!== undefined&&_93!== null&&_93!== false) _91.setAttribute(\"data-name\",_93);_89.append(_91);const _94=document.createTextNode(\"\\r\\n \");_89.append(_94);_87.append(_89);const _95=document.createTextNode(\"\\r\\n \");_87.append(_95);const _96=document.createElement(\"td\");const _97=document.createTextNode(\"\\r\\n \");_96.append(_97);let _98=document.createDocumentFragment();if(column[\"sortName\"]){const _99=document.createTextNode(\"\\r\\n \");_98.append(_99);const _100=document.createElement(\"button\");const _101=\"sortBtn\";if(typeof _101==='function')_100[\"class\"]=_101;else if(_101!== undefined&&_101!== null&&_101!== false) _100.setAttribute(\"class\",_101);const _102=column[\"sortName\"];if(typeof _102==='function')_100[\"data-name\"]=_102;else if(_102!== undefined&&_102!== null&&_102!== false) _100.setAttribute(\"data-name\",_102);const _103=\"button\";if(typeof _103==='function')_100[\"type\"]=_103;else if(_103!== undefined&&_103!== null&&_103!== false) _100.setAttribute(\"type\",_103);const _104=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_100.append(_104);_98.append(_100);const _105=document.createTextNode(\"\\r\\n \");_98.append(_105);}_96.append(_98);const _106=document.createTextNode(\"\\r\\n \");_96.append(_106);_87.append(_96);const _107=document.createTextNode(\"\\r\\n \");_87.append(_107);const _108=document.createElement(\"td\");const _109=document.createTextNode(\"\\r\\n \");_108.append(_109);const _110=document.createTextNode(column[\"name\"]);_108.append(_110);const _111=document.createTextNode(\"\\r\\n \");_108.append(_111);_87.append(_108);const _112=document.createTextNode(\"\\r\\n \");_87.append(_112);let _113=document.createDocumentFragment();if(column[\"isFilter\"]){const _114=document.createTextNode(\"\\r\\n \");_113.append(_114);const _115=document.createElement(\"td\");const _116=\"filter\";if(typeof _116==='function')_115[\"class\"]=_116;else if(_116!== undefined&&_116!== null&&_116!== false) _115.setAttribute(\"class\",_116);const _117=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _117==='function')_115[\"data-name\"]=_117;else if(_117!== undefined&&_117!== null&&_117!== false) _115.setAttribute(\"data-name\",_117);const _118=document.createTextNode(\"\\r\\n \");_115.append(_118);_113.append(_115);const _119=document.createTextNode(\"\\r\\n \");_113.append(_119);}_87.append(_113);const _120=document.createTextNode(\"\\r\\n\\r\\n \");_87.append(_120);_85.append(_87);const _121=document.createTextNode(\"\\r\\n \");_85.append(_121);}_83.append(_85);const _122=document.createTextNode(\"\\r\\n \");_83.append(_122);_62.append(_83);const _123=document.createTextNode(\"\\r\\n \");_62.append(_123);_57.append(_62);const _124=document.createTextNode(\"\\r\\n \");_57.append(_124);_55.append(_57);const _125=document.createTextNode(\"\\r\\n \");_55.append(_125);}_1.append(_55);const _126=document.createTextNode(\"\\r\\n \");_1.append(_126);const _127=document.createElement(\"p\");const _128=\"endInformation\";if(typeof _128==='function')_127[\"class\"]=_128;else if(_128!== undefined&&_128!== null&&_128!== false) _127.setAttribute(\"class\",_128);const _129=document.createTextNode(\"\\r\\n\\r\\n \");_127.append(_129);_1.append(_127);const _130=document.createTextNode(\"\\r\\n\");_1.append(_130);_0.append(_1);const _131=document.createTextNode(\"\\r\\n\");_0.append(_131);return _0}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.mpts?");
129
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(variables){const _0=document.createDocumentFragment();const _1=document.createElement(\"form\");const _2=document.createTextNode(\"\\r\\n \");_1.append(_2);const _3=document.createElement(\"label\");const _4=document.createTextNode(\"\\r\\n \");_3.append(_4);const _5=document.createElement(\"span\");const _6=document.createTextNode(variables[\"t\"](\"objectList.mode\"));_5.append(_6);_3.append(_5);const _7=document.createTextNode(\"\\r\\n \");_3.append(_7);const _8=document.createElement(\"select\");const _9=\"mode\";if(typeof _9==='function')_8[\"class\"]=_9;else if(_9!== undefined&&_9!== null&&_9!== false) _8.setAttribute(\"class\",_9);const _10=document.createTextNode(\"\\r\\n \");_8.append(_10);const _11=document.createElement(\"option\");const _12=\"paginationMode\";if(typeof _12==='function')_11[\"value\"]=_12;else if(_12!== undefined&&_12!== null&&_12!== false) _11.setAttribute(\"value\",_12);const _13=document.createTextNode(variables[\"t\"](\"objectList.paginationMode\"));_11.append(_13);_8.append(_11);const _14=document.createTextNode(\"\\r\\n \");_8.append(_14);const _15=document.createElement(\"option\");const _16=\"scrollMode\";if(typeof _16==='function')_15[\"value\"]=_16;else if(_16!== undefined&&_16!== null&&_16!== false) _15.setAttribute(\"value\",_16);const _17=document.createTextNode(variables[\"t\"](\"objectList.scrollMode\"));_15.append(_17);_8.append(_15);const _18=document.createTextNode(\"\\r\\n \");_8.append(_18);_3.append(_8);const _19=document.createTextNode(\"\\r\\n \");_3.append(_19);_1.append(_3);const _20=document.createTextNode(\"\\r\\n \");_1.append(_20);const _21=document.createElement(\"label\");const _22=document.createTextNode(\"\\r\\n \");_21.append(_22);const _23=document.createElement(\"span\");const _24=document.createTextNode(variables[\"t\"](\"objectList.view\"));_23.append(_24);_21.append(_23);const _25=document.createTextNode(\"\\r\\n \");_21.append(_25);const _26=document.createElement(\"select\");const _27=\"view\";if(typeof _27==='function')_26[\"class\"]=_27;else if(_27!== undefined&&_27!== null&&_27!== false) _26.setAttribute(\"class\",_27);const _28=document.createTextNode(\"\\r\\n \");_26.append(_28);const _29=document.createElement(\"option\");const _30=\"tableView\";if(typeof _30==='function')_29[\"value\"]=_30;else if(_30!== undefined&&_30!== null&&_30!== false) _29.setAttribute(\"value\",_30);const _31=document.createTextNode(variables[\"t\"](\"objectList.tableView\"));_29.append(_31);_26.append(_29);const _32=document.createTextNode(\"\\r\\n \");_26.append(_32);const _33=document.createElement(\"option\");const _34=\"tableWideView\";if(typeof _34==='function')_33[\"value\"]=_34;else if(_34!== undefined&&_34!== null&&_34!== false) _33.setAttribute(\"value\",_34);const _35=document.createTextNode(variables[\"t\"](\"objectList.tableWideView\"));_33.append(_35);_26.append(_33);const _36=document.createTextNode(\"\\r\\n \");_26.append(_36);const _37=document.createElement(\"option\");const _38=\"listView\";if(typeof _38==='function')_37[\"value\"]=_38;else if(_38!== undefined&&_38!== null&&_38!== false) _37.setAttribute(\"value\",_38);const _39=document.createTextNode(variables[\"t\"](\"objectList.listView\"));_37.append(_39);_26.append(_37);const _40=document.createTextNode(\"\\r\\n \");_26.append(_40);let _41=document.createDocumentFragment();if(variables[\"showDatesViews\"]){const _42=document.createTextNode(\"\\r\\n \");_41.append(_42);const _43=document.createElement(\"option\");const _44=\"calendarView\";if(typeof _44==='function')_43[\"value\"]=_44;else if(_44!== undefined&&_44!== null&&_44!== false) _43.setAttribute(\"value\",_44);const _45=document.createTextNode(variables[\"t\"](\"objectList.calendarView\"));_43.append(_45);_41.append(_43);const _46=document.createTextNode(\"\\r\\n \");_41.append(_46);}_26.append(_41);const _47=document.createTextNode(\"\\r\\n \");_26.append(_47);_21.append(_26);const _48=document.createTextNode(\"\\r\\n \");_21.append(_48);_1.append(_21);const _49=document.createTextNode(\"\\r\\n \");_1.append(_49);let _50=document.createDocumentFragment();if(variables[\"exports\"]){const _51=document.createTextNode(\"\\r\\n \");_50.append(_51);let _52=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"exports\"])){let x = _foreachValue;const _53=document.createTextNode(\"\\r\\n \");_52.append(_53);const _54=document.createElement(\"button\");const _55=x[\"action\"];if(typeof _55==='function')_54[\"onclick\"]=_55;else if(_55!== undefined&&_55!== null&&_55!== false) _54.setAttribute(\"onclick\",_55);const _56=\"button\";if(typeof _56==='function')_54[\"type\"]=_56;else if(_56!== undefined&&_56!== null&&_56!== false) _54.setAttribute(\"type\",_56);const _57=document.createTextNode(x[\"name\"]);_54.append(_57);_52.append(_54);const _58=document.createTextNode(\"\\r\\n \");_52.append(_58);}_50.append(_52);const _59=document.createTextNode(\"\\r\\n \");_50.append(_59);}_1.append(_50);const _60=document.createTextNode(\"\\r\\n \");_1.append(_60);const _61=document.createElement(\"input\");const _62=\"search\";if(typeof _62==='function')_61[\"type\"]=_62;else if(_62!== undefined&&_62!== null&&_62!== false) _61.setAttribute(\"type\",_62);const _63=variables[\"t\"](\"objectList.search\");if(typeof _63==='function')_61[\"placeholder\"]=_63;else if(_63!== undefined&&_63!== null&&_63!== false) _61.setAttribute(\"placeholder\",_63);_1.append(_61);const _64=document.createTextNode(\"\\r\\n \");_1.append(_64);let _65=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"categories\"])){let category = _foreachValue;const _66=document.createTextNode(\"\\r\\n \");_65.append(_66);const _67=document.createElement(\"div\");const _68=\"categoryTableContainer\";if(typeof _68==='function')_67[\"class\"]=_68;else if(_68!== undefined&&_68!== null&&_68!== false) _67.setAttribute(\"class\",_68);const _69=document.createTextNode(\"\\r\\n \");_67.append(_69);const _70=document.createTextNode(category[\"name\"]);_67.append(_70);const _71=document.createTextNode(\"\\r\\n\\r\\n \");_67.append(_71);const _72=document.createElement(\"table\");const _73=document.createTextNode(\"\\r\\n \");_72.append(_73);const _74=document.createElement(\"thead\");const _75=document.createTextNode(\"\\r\\n \");_74.append(_75);const _76=document.createElement(\"tr\");const _77=document.createTextNode(\"\\r\\n \");_76.append(_77);const _78=document.createElement(\"th\");const _79=document.createTextNode(variables[\"t\"](\"objectList.columnEnabled\"));_78.append(_79);_76.append(_78);const _80=document.createTextNode(\"\\r\\n \");_76.append(_80);const _81=document.createElement(\"th\");const _82=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_81.append(_82);_76.append(_81);const _83=document.createTextNode(\"\\r\\n \");_76.append(_83);const _84=document.createElement(\"th\");const _85=document.createTextNode(variables[\"t\"](\"objectList.columnName\"));_84.append(_85);_76.append(_84);const _86=document.createTextNode(\"\\r\\n \");_76.append(_86);const _87=document.createElement(\"th\");const _88=\"filterHeader\";if(typeof _88==='function')_87[\"class\"]=_88;else if(_88!== undefined&&_88!== null&&_88!== false) _87.setAttribute(\"class\",_88);const _89=document.createTextNode(variables[\"t\"](\"objectList.columnFilter\"));_87.append(_89);_76.append(_87);const _90=document.createTextNode(\"\\r\\n \");_76.append(_90);_74.append(_76);const _91=document.createTextNode(\"\\r\\n \");_74.append(_91);_72.append(_74);const _92=document.createTextNode(\"\\r\\n \");_72.append(_92);const _93=document.createElement(\"tbody\");const _94=document.createTextNode(\"\\r\\n\\r\\n \");_93.append(_94);let _95=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(category[\"columns\"])){let column = _foreachValue;const _96=document.createTextNode(\"\\r\\n \");_95.append(_96);const _97=document.createElement(\"tr\");const _98=document.createTextNode(\"\\r\\n \");_97.append(_98);const _99=document.createElement(\"td\");const _100=document.createTextNode(\"\\r\\n \");_99.append(_100);const _101=document.createElement(\"input\");const _102=\"checkbox\";if(typeof _102==='function')_101[\"type\"]=_102;else if(_102!== undefined&&_102!== null&&_102!== false) _101.setAttribute(\"type\",_102);const _103=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _103==='function')_101[\"data-name\"]=_103;else if(_103!== undefined&&_103!== null&&_103!== false) _101.setAttribute(\"data-name\",_103);_99.append(_101);const _104=document.createTextNode(\"\\r\\n \");_99.append(_104);_97.append(_99);const _105=document.createTextNode(\"\\r\\n \");_97.append(_105);const _106=document.createElement(\"td\");const _107=document.createTextNode(\"\\r\\n \");_106.append(_107);let _108=document.createDocumentFragment();if(column[\"sortName\"]){const _109=document.createTextNode(\"\\r\\n \");_108.append(_109);const _110=document.createElement(\"button\");const _111=\"sortBtn\";if(typeof _111==='function')_110[\"class\"]=_111;else if(_111!== undefined&&_111!== null&&_111!== false) _110.setAttribute(\"class\",_111);const _112=column[\"sortName\"];if(typeof _112==='function')_110[\"data-name\"]=_112;else if(_112!== undefined&&_112!== null&&_112!== false) _110.setAttribute(\"data-name\",_112);const _113=\"button\";if(typeof _113==='function')_110[\"type\"]=_113;else if(_113!== undefined&&_113!== null&&_113!== false) _110.setAttribute(\"type\",_113);const _114=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_110.append(_114);_108.append(_110);const _115=document.createTextNode(\"\\r\\n \");_108.append(_115);}_106.append(_108);const _116=document.createTextNode(\"\\r\\n \");_106.append(_116);_97.append(_106);const _117=document.createTextNode(\"\\r\\n \");_97.append(_117);const _118=document.createElement(\"td\");const _119=document.createTextNode(\"\\r\\n \");_118.append(_119);const _120=document.createTextNode(column[\"name\"]);_118.append(_120);const _121=document.createTextNode(\"\\r\\n \");_118.append(_121);_97.append(_118);const _122=document.createTextNode(\"\\r\\n \");_97.append(_122);let _123=document.createDocumentFragment();if(column[\"isFilter\"]){const _124=document.createTextNode(\"\\r\\n \");_123.append(_124);const _125=document.createElement(\"td\");const _126=\"filter\";if(typeof _126==='function')_125[\"class\"]=_126;else if(_126!== undefined&&_126!== null&&_126!== false) _125.setAttribute(\"class\",_126);const _127=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _127==='function')_125[\"data-name\"]=_127;else if(_127!== undefined&&_127!== null&&_127!== false) _125.setAttribute(\"data-name\",_127);const _128=document.createTextNode(\"\\r\\n \");_125.append(_128);_123.append(_125);const _129=document.createTextNode(\"\\r\\n \");_123.append(_129);}_97.append(_123);const _130=document.createTextNode(\"\\r\\n\\r\\n \");_97.append(_130);_95.append(_97);const _131=document.createTextNode(\"\\r\\n \");_95.append(_131);}_93.append(_95);const _132=document.createTextNode(\"\\r\\n \");_93.append(_132);_72.append(_93);const _133=document.createTextNode(\"\\r\\n \");_72.append(_133);_67.append(_72);const _134=document.createTextNode(\"\\r\\n \");_67.append(_134);_65.append(_67);const _135=document.createTextNode(\"\\r\\n \");_65.append(_135);}_1.append(_65);const _136=document.createTextNode(\"\\r\\n \");_1.append(_136);const _137=document.createElement(\"p\");const _138=\"endInformation\";if(typeof _138==='function')_137[\"class\"]=_138;else if(_138!== undefined&&_138!== null&&_138!== false) _137.setAttribute(\"class\",_138);const _139=document.createTextNode(\"\\r\\n\\r\\n \");_137.append(_139);_1.append(_137);const _140=document.createTextNode(\"\\r\\n\");_1.append(_140);_0.append(_1);const _141=document.createTextNode(\"\\r\\n\");_0.append(_141);return _0}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.mpts?");
130
130
 
131
131
  /***/ }),
132
132
 
@@ -206,7 +206,7 @@ eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElem
206
206
  \**********************/
207
207
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
208
208
 
209
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/index.js */ \"./src/index.js\");\n/* harmony import */ var _src_style_objectsList_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../src/style/objectsList.scss */ \"./src/style/objectsList.scss\");\n\r\n\r\n\r\nconsole.log('aa');\r\nconst dataSource={\r\n async get(options){\r\n console.log('aaaaaa')\r\n await new Promise(resolve=>setTimeout(resolve, 1000))\r\n return {\r\n rows:[\r\n {id:1, start:'2026-09-01 12:00:00', end:'2026-09-01 14:00:00', name:'John'},\r\n {id:2, start:'2026-09-01 15:00:00', end:'2026-09-01 16:00:00', name:'Jane'},\r\n {id:3, start:'2026-09-01 19:00:00', end:'2026-09-01 22:00:00', name:'Bob'},\r\n {id:4, start:'2026-09-02 12:00:00', end:'2026-09-02 14:00:00', name:'Alice'},\r\n {id:5, start:'2026-09-02 15:00:00', end:'2026-09-02 16:00:00', name:'Charlie'},\r\n\r\n ],\r\n total:3000\r\n }\r\n }\r\n}\r\nconst objectList=new _src_index_js__WEBPACK_IMPORTED_MODULE_0__.ObjectsList(dataSource)\r\nobjectList.paramsInUrl=false;\r\nobjectList.paramsInLocalStorage=document.location;\r\nobjectList.columns=[\r\n {dataName:'id', name:'ID', sortName:'id'},\r\n {dataName:'name', name:'Name'},\r\n {dataName:'start', name:'Start', sortName: 'start'},\r\n {dataName:'end', name:'End', sortName: 'end'},\r\n]\r\nobjectList.generateActions=()=>[{title:'zz', href:'https://google.com'}]\r\nobjectList.style.height='500px';\r\ndocument.body.appendChild(objectList);\r\nobjectList.readUrl()\r\nobjectList.refresh();\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./demo/demo.js?");
209
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../src/index.js */ \"./src/index.js\");\n/* harmony import */ var _src_style_objectsList_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../src/style/objectsList.scss */ \"./src/style/objectsList.scss\");\n\r\n\r\n\r\nconsole.log('aa');\r\nconst dataSource={\r\n async get(options){\r\n console.log('aaaaaa')\r\n await new Promise(resolve=>setTimeout(resolve, 1000))\r\n return {\r\n rows:[\r\n {id:1, start:'2026-09-01 12:00:00', end:'2026-09-01 14:00:00', name:'John'},\r\n {id:2, start:'2026-09-01 15:00:00', end:'2026-09-01 16:00:00', name:'Jane'},\r\n {id:3, start:'2026-09-01 19:00:00', end:'2026-09-01 22:00:00', name:'Bob'},\r\n {id:4, start:'2026-09-02 12:00:00', end:'2026-09-02 14:00:00', name:'Alice'},\r\n {id:5, start:'2026-09-02 15:00:00', end:'2026-09-02 16:00:00', name:'Charlie'},\r\n\r\n ],\r\n total:3000\r\n }\r\n }\r\n}\r\nconst objectList=new _src_index_js__WEBPACK_IMPORTED_MODULE_0__.ObjectsList(dataSource)\r\nobjectList.paramsInUrl=false;\r\nobjectList.paramsInLocalStorage=document.location;\r\nobjectList.columns=[\r\n {dataName:'id', name:'ID', sortName:'id'},\r\n {dataName:'name', name:'Name'},\r\n {dataName:'start', name:'Start', sortName: 'start'},\r\n {dataName:'end', name:'End', sortName: 'end'},\r\n]\r\nobjectList.generateActions=()=>[\r\n {title:'zz', href:'https://google.com'},\r\n {title:'aaa', href:'https://bing.com', main: true,},\r\n]\r\nobjectList.dateRowCallback=(row)=>new Date(row.start)\r\nobjectList.calendarRowCallback=(row)=>{\r\n const element = document.createElement('div');\r\n element.textContent = row.name;\r\n return element;\r\n}\r\nobjectList.style.height='500px';\r\nobjectList.generateExports=()=>[\r\n {name:'pdf', action:()=>{console.log('export pdf')}},\r\n {name:'csv', action:()=>{console.log('export csv')}},\r\n]\r\ndocument.body.appendChild(objectList);\r\nobjectList.readUrl()\r\nobjectList.refresh();\r\n\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./demo/demo.js?");
210
210
 
211
211
  /***/ }),
212
212
 
@@ -236,7 +236,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
236
236
  \****************************/
237
237
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
238
238
 
239
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConfigPopup: () => (/* binding */ ConfigPopup)\n/* harmony export */ });\n/* harmony import */ var _ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConfigPopup.mpts */ \"./src/ConfigPopup.mpts\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColumnFilter.js */ \"./src/ColumnFilter.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nclass ConfigPopup extends HTMLElement {\r\n constructor(objectsList) {\r\n super();\r\n this.append((0,_ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\r\n t: _i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t,\r\n categories: Object.entries(objectsList.columns.reduce((o, c) => {\r\n o[c.category] = (o[c.category] ?? [])\r\n o[c.category].push(c);\r\n return o;\r\n }, {}))\r\n .map(([category, columns]) => ({name: category == 'undefined' ? '' : category, columns}))\r\n }))\r\n this.querySelector('.mode').onchange = () => {\r\n objectsList.infiniteScrollEnabled = this.querySelector('.mode').value == 'scrollMode'\r\n objectsList.refresh()\r\n }\r\n if (objectsList.infiniteScrollEnabled) {\r\n this.querySelector('.mode').value = 'scrollMode'\r\n }\r\n if (objectsList.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_2__.TableView) {\r\n if (objectsList.insideViewParams?.wide)\r\n this.querySelector('.view').value = 'tableWideView'\r\n else\r\n this.querySelector('.view').value = 'tableView'\r\n } else if (objectsList.insideViewClass == _listView_js__WEBPACK_IMPORTED_MODULE_3__.ListView) {\r\n this.querySelector('.view').value = 'listView'\r\n }\r\n\r\n this.querySelector('.view').onchange = () => {\r\n objectsList.insideViewName = this.querySelector('.view').value\r\n objectsList.refresh()\r\n }\r\n // this.addEventListener('blur', () => {\r\n // console.log('blur')\r\n // if (!this.matches(':focus-within, :focus'))\r\n // this.remove();\r\n // })\r\n this.querySelector('select').focus()\r\n console.log('ssss')\r\n for (const checkbox of this.querySelectorAll('table input[type=\"checkbox\"]')) {\r\n checkbox.checked = !objectsList.hiddenColumns.has(checkbox.dataset.name)\r\n checkbox.onchange = () => {\r\n if (checkbox.checked)\r\n objectsList.hiddenColumns.delete(checkbox.dataset.name)\r\n else\r\n objectsList.hiddenColumns.add(checkbox.dataset.name)\r\n\r\n objectsList.refresh()\r\n }\r\n }\r\n for (const sortBtn of this.querySelectorAll('.sortBtn')) {\r\n sortBtn.onclick = () => {\r\n if (objectsList.sort && objectsList.sort.col === sortBtn.dataset.name) {\r\n objectsList.sort.desc = !objectsList.sort.desc;\r\n } else {\r\n objectsList.sort = {col: sortBtn.dataset.name, desc: false};\r\n }\r\n if (!objectsList.infiniteScrollEnabled) {\r\n objectsList.start = 0;\r\n }\r\n objectsList.refresh();\r\n }\r\n }\r\n\r\n for (const filterContainer of this.querySelectorAll('table .filter')) {\r\n console.log('aa')\r\n const filter = new _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__.ColumnFilter();\r\n filterContainer.append(filter)\r\n filter.addEventListener('x-filter', (e) => {\r\n console.log('dddd', e)\r\n objectsList.columnFilters.set(filterContainer.dataset.name, e.detail)\r\n objectsList.refresh()\r\n });\r\n const current = objectsList.columnFilters.get(filterContainer.dataset.name)\r\n if (current) {\r\n console.log('ffff')\r\n filter.set(current)\r\n }\r\n }\r\n\r\n this.querySelector('[type=\"search\"]').oninput = (event) => {\r\n objectsList.configPopupSearch = event.target.value\r\n this.refreshSearch(event.target.value)\r\n }\r\n if (objectsList.configPopupSearch) {\r\n this.querySelector('[type=\"search\"]').value = objectsList.configPopupSearch\r\n this.refreshSearch(objectsList.configPopupSearch)\r\n }\r\n this.tabIndex = 0\r\n setTimeout(() => this.focus(), 1)\r\n setTimeout(() => this.checkFocus(), 100)\r\n this.refreshSearch('')\r\n }\r\n\r\n refreshSearch(value) {\r\n let countedVisible = 0;\r\n const visibilityLimit = 100;\r\n for (const table of this.querySelectorAll('.categoryTableContainer')) {\r\n let anyVisible = false;\r\n for (const row of table.querySelectorAll('tbody tr')) {\r\n const shouldBeVisible = row.children[1].textContent.toLowerCase().includes(value.toLowerCase());\r\n const visible = shouldBeVisible && countedVisible < visibilityLimit;\r\n row.style.display = visible ? '' : 'none'\r\n if (visible) {\r\n anyVisible = true;\r\n }\r\n\r\n countedVisible += shouldBeVisible;\r\n }\r\n table.style.display = anyVisible ? '' : 'none'\r\n }\r\n const endInformation = this.querySelector('.endInformation');\r\n if (countedVisible > visibilityLimit) {\r\n endInformation.style.display = '';\r\n endInformation.textContent = (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t)('objectList.visibilityLimitReached') + ' ' + countedVisible\r\n } else {\r\n endInformation.style.display = 'none';\r\n }\r\n }\r\n\r\n checkFocus() {\r\n console.log('checkFocus')\r\n if (!this.matches(':focus-within, :focus'))\r\n this.remove();\r\n\r\n if (this.parentNode)\r\n setTimeout(() => this.checkFocus(), 100)\r\n }\r\n}\r\n\r\ncustomElements.define('config-popup', ConfigPopup);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.js?");
239
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConfigPopup: () => (/* binding */ ConfigPopup)\n/* harmony export */ });\n/* harmony import */ var _ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConfigPopup.mpts */ \"./src/ConfigPopup.mpts\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColumnFilter.js */ \"./src/ColumnFilter.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ConfigPopup extends HTMLElement {\r\n constructor(objectsList) {\r\n super();\r\n const exports=objectsList.generateExports?objectsList.generateExports():null;\r\n this.append((0,_ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\r\n t: _i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t,\r\n showDatesViews: objectsList.dateRowCallback != null,\r\n exports,\r\n categories: Object.entries(objectsList.columns.reduce((o, c) => {\r\n o[c.category] = (o[c.category] ?? [])\r\n o[c.category].push(c);\r\n return o;\r\n }, {}))\r\n .map(([category, columns]) => ({name: category == 'undefined' ? '' : category, columns}))\r\n }))\r\n this.querySelector('.mode').onchange = () => {\r\n objectsList.infiniteScrollEnabled = this.querySelector('.mode').value == 'scrollMode'\r\n objectsList.refresh()\r\n }\r\n if (objectsList.infiniteScrollEnabled) {\r\n this.querySelector('.mode').value = 'scrollMode'\r\n }\r\n if (objectsList.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_2__.TableView) {\r\n if (objectsList.insideViewParams?.wide)\r\n this.querySelector('.view').value = 'tableWideView'\r\n else\r\n this.querySelector('.view').value = 'tableView'\r\n } else if (objectsList.insideViewClass == _listView_js__WEBPACK_IMPORTED_MODULE_3__.ListView) {\r\n this.querySelector('.view').value = 'listView'\r\n } else if (objectsList.insideViewClass == _calendarView_js__WEBPACK_IMPORTED_MODULE_5__.CalendarView) {\r\n this.querySelector('.view').value = 'calendarView'\r\n }\r\n\r\n this.querySelector('.view').onchange = () => {\r\n objectsList.insideViewName = this.querySelector('.view').value\r\n objectsList.refresh()\r\n }\r\n // this.addEventListener('blur', () => {\r\n // console.log('blur')\r\n // if (!this.matches(':focus-within, :focus'))\r\n // this.remove();\r\n // })\r\n this.querySelector('select').focus()\r\n console.log('ssss')\r\n for (const checkbox of this.querySelectorAll('table input[type=\"checkbox\"]')) {\r\n checkbox.checked = !objectsList.hiddenColumns.has(checkbox.dataset.name)\r\n checkbox.onchange = () => {\r\n if (checkbox.checked)\r\n objectsList.hiddenColumns.delete(checkbox.dataset.name)\r\n else\r\n objectsList.hiddenColumns.add(checkbox.dataset.name)\r\n\r\n objectsList.refresh()\r\n }\r\n }\r\n for (const sortBtn of this.querySelectorAll('.sortBtn')) {\r\n sortBtn.onclick = () => {\r\n if (objectsList.sort && objectsList.sort.col === sortBtn.dataset.name) {\r\n objectsList.sort.desc = !objectsList.sort.desc;\r\n } else {\r\n objectsList.sort = {col: sortBtn.dataset.name, desc: false};\r\n }\r\n if (!objectsList.infiniteScrollEnabled) {\r\n objectsList.start = 0;\r\n }\r\n objectsList.refresh();\r\n }\r\n }\r\n\r\n for (const filterContainer of this.querySelectorAll('table .filter')) {\r\n console.log('aa')\r\n const filter = new _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__.ColumnFilter();\r\n filterContainer.append(filter)\r\n filter.addEventListener('x-filter', (e) => {\r\n console.log('dddd', e)\r\n objectsList.columnFilters.set(filterContainer.dataset.name, e.detail)\r\n objectsList.refresh()\r\n });\r\n const current = objectsList.columnFilters.get(filterContainer.dataset.name)\r\n if (current) {\r\n console.log('ffff')\r\n filter.set(current)\r\n }\r\n }\r\n\r\n this.querySelector('[type=\"search\"]').oninput = (event) => {\r\n objectsList.configPopupSearch = event.target.value\r\n this.refreshSearch(event.target.value)\r\n }\r\n if (objectsList.configPopupSearch) {\r\n this.querySelector('[type=\"search\"]').value = objectsList.configPopupSearch\r\n this.refreshSearch(objectsList.configPopupSearch)\r\n }\r\n this.tabIndex = 0\r\n setTimeout(() => this.focus(), 1)\r\n setTimeout(() => this.checkFocus(), 100)\r\n this.refreshSearch('')\r\n }\r\n\r\n refreshSearch(value) {\r\n let countedVisible = 0;\r\n const visibilityLimit = 100;\r\n for (const table of this.querySelectorAll('.categoryTableContainer')) {\r\n let anyVisible = false;\r\n for (const row of table.querySelectorAll('tbody tr')) {\r\n const shouldBeVisible = row.children[1].textContent.toLowerCase().includes(value.toLowerCase());\r\n const visible = shouldBeVisible && countedVisible < visibilityLimit;\r\n row.style.display = visible ? '' : 'none'\r\n if (visible) {\r\n anyVisible = true;\r\n }\r\n\r\n countedVisible += shouldBeVisible;\r\n }\r\n table.style.display = anyVisible ? '' : 'none'\r\n }\r\n const endInformation = this.querySelector('.endInformation');\r\n if (countedVisible > visibilityLimit) {\r\n endInformation.style.display = '';\r\n endInformation.textContent = (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t)('objectList.visibilityLimitReached') + ' ' + countedVisible\r\n } else {\r\n endInformation.style.display = 'none';\r\n }\r\n }\r\n\r\n checkFocus() {\r\n console.log('checkFocus')\r\n if (!this.matches(':focus-within, :focus'))\r\n this.remove();\r\n\r\n if (this.parentNode)\r\n setTimeout(() => this.checkFocus(), 100)\r\n }\r\n}\r\n\r\ncustomElements.define('config-popup', ConfigPopup);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.js?");
240
240
 
241
241
  /***/ }),
242
242
 
@@ -246,7 +246,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
246
246
  \*****************************/
247
247
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
248
248
 
249
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbstractView: () => (/* binding */ AbstractView)\n/* harmony export */ });\nclass AbstractView extends HTMLElement {\r\n loadData(data, start, limit, infiniteScrollEnabled) {\r\n this.style.setProperty('--height', (data.total * this.rowHeight) + 'px');\r\n let top = 0;\r\n let isOdd = true;\r\n if (infiniteScrollEnabled) {\r\n top = this.rowHeight * start;\r\n isOdd = start % 2 == 0;\r\n }\r\n let newChildren = [];\r\n for (let row of data.rows) {\r\n let tr = this.generateRow(row);\r\n tr.style.top = `${top}px`;\r\n tr.classList.toggle('odd', isOdd)\r\n tr.classList.toggle('even', !isOdd)\r\n newChildren.push(tr);\r\n top += this.rowHeight;\r\n isOdd = !isOdd;\r\n }\r\n let oldChildren = Array.from(this.body.children);\r\n for (let tr of oldChildren.filter(tr => !newChildren.includes(tr) && !tr.matches(':focus'))) {\r\n tr.remove();\r\n }\r\n\r\n for (let tr of newChildren.filter(tr => !oldChildren.includes(tr))) {\r\n this.body.appendChild(tr);\r\n }\r\n }\r\n\r\n onScroll(e) {\r\n if (this.objectsList.infiniteScrollEnabled && this.onPaginationChanged) {\r\n let start = Math.round(this.scrollTop / this.rowHeight);\r\n let passedStart = Math.floor(start / 20) * 20 - 20;\r\n if (passedStart < 0)\r\n passedStart = 0;\r\n this.onPaginationChanged(passedStart);\r\n }\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/abstractView.js?");
249
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbstractView: () => (/* binding */ AbstractView)\n/* harmony export */ });\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n\r\n\r\n\r\nclass AbstractView extends HTMLElement {\r\n loadData(data, start, limit, infiniteScrollEnabled) {\r\n this.style.setProperty('--height', (data.total * this.rowHeight) + 'px');\r\n let top = 0;\r\n let isOdd = true;\r\n if (infiniteScrollEnabled) {\r\n top = this.rowHeight * start;\r\n isOdd = start % 2 == 0;\r\n }\r\n let newChildren = [];\r\n for (let row of data.rows) {\r\n let tr = this.generateRow(row);\r\n tr.style.top = `${top}px`;\r\n tr.classList.toggle('odd', isOdd)\r\n tr.classList.toggle('even', !isOdd)\r\n newChildren.push(tr);\r\n top += this.rowHeight;\r\n isOdd = !isOdd;\r\n }\r\n let oldChildren = Array.from(this.body.children);\r\n for (let tr of oldChildren.filter(tr => !newChildren.includes(tr) && !tr.matches(':focus'))) {\r\n tr.remove();\r\n }\r\n\r\n for (let tr of newChildren.filter(tr => !oldChildren.includes(tr))) {\r\n this.body.appendChild(tr);\r\n }\r\n }\r\n\r\n onScroll(e) {\r\n if (this.objectsList.infiniteScrollEnabled && this.onPaginationChanged) {\r\n let start = Math.round(this.scrollTop / this.rowHeight);\r\n let passedStart = Math.floor(start / 20) * 20 - 20;\r\n if (passedStart < 0)\r\n passedStart = 0;\r\n this.onPaginationChanged(passedStart);\r\n }\r\n }\r\n\r\n trOnClick(row, e) {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n console.log('click')\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.clear();\r\n }\r\n\r\n if (e.shiftKey) {\r\n const mainIndex = rowsIds.indexOf(this.objectsList.selectedMain);\r\n const clickedIndex = rowsIds.indexOf(row.id);\r\n if (clickedIndex >= 0 && mainIndex >= 0)\r\n rowsIds.slice(Math.min(mainIndex, clickedIndex), Math.max(mainIndex, clickedIndex) + 1).forEach(x => this.objectsList.selected.add(x));\r\n } else {\r\n if (this.objectsList.selected.has(row.id))\r\n this.objectsList.selected.delete(row.id);\r\n else\r\n this.objectsList.selected.add(row.id);\r\n\r\n this.objectsList.selectedMain = row.id;\r\n }\r\n\r\n this.refreshSelectedClasses();\r\n }\r\n\r\n trOnDblClick(row, tr, e) {\r\n if (!this.objectsList.selected.has(tr.dataset.row)) {\r\n this.objectsList.selected.clear();\r\n this.objectsList.selected.add(tr.dataset.row)\r\n this.objectsList.selectedMain = tr.dataset.row;\r\n this.refreshSelectedClasses();\r\n }\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'dblClick').find(x => x.main);\r\n if (action) {\r\n if (action.command) {\r\n action.command();\r\n } else if (action.href) {\r\n this.objectsList.gotoUrl(action.href)\r\n }\r\n }\r\n }\r\n contextMenu(tr, event) {\r\n event.stopPropagation();\r\n if (!this.objectsList.selected.has(tr.dataset.row)) {\r\n this.objectsList.selected.clear();\r\n this.objectsList.selected.add(tr.dataset.row)\r\n this.objectsList.selectedMain = tr.dataset.row;\r\n this.refreshSelectedClasses();\r\n }\r\n const rows = this.objectsList.getSelectedData();\r\n let actions = this.objectsList.generateActions(rows, 'contextMenu');\r\n let actions2 = [];\r\n for (const action of actions) {\r\n actions2.push(action);\r\n if (action.href) {\r\n actions2.push({\r\n ...action,\r\n href: null,\r\n command: () => window.open(action.href),\r\n name: (action.name ?? '') + ' (' + (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_0__.t)('objectList.inNewTab') + ')'\r\n });\r\n }\r\n }\r\n let elements = actions2.map(action => ({\r\n text: action.name,\r\n icon: action.icon,\r\n class: action.action ? 'action-' + action.action : '',\r\n onclick: action.command || (() => this.objectsList.gotoUrl(action.href))\r\n }));\r\n elements.push({\r\n text: 'copy',\r\n icon: 'icon-copy',\r\n onclick: () => {\r\n this.forceCopy(rows);\r\n }\r\n })\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_1__.ContextMenu.openContextMenu(event, elements);\r\n }\r\n trOnKeyDown(row, tr, e) {\r\n console.log('trOnKeyDown')\r\n if (e.key === 'Enter') {\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'enter').find(x => x.main);\r\n if (action) {\r\n if (action.command) {\r\n action.command();\r\n } else if (action.href) {\r\n this.objectsList.gotoUrl(action.href)\r\n }\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n let index = rowsIds.indexOf(this.objectsList.selectedMain);\r\n if (e.key === 'ArrowDown') {\r\n if (index < rowsIds.length) index++;\r\n else index = rowsIds.length - 1;\r\n } else {\r\n if (index > 0) index--;\r\n }\r\n const id = rowsIds[index];\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.clear();\r\n }\r\n if (e.shiftKey) {\r\n if (!this.objectsList.selectedShiftStart) {\r\n this.objectsList.selectedShiftStart = this.objectsList.selectedMain;\r\n }\r\n this.selectRange(this.objectsList.selectedShiftStart, id)\r\n } else {\r\n this.objectsList.selectedShiftStart = null;\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.add(id);\r\n }\r\n }\r\n this.objectsList.selectedMain = id;\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n } else if (e.key === ' ') {\r\n if (this.objectsList.selected.has(this.objectsList.selectedMain))\r\n this.objectsList.selected.delete(this.objectsList.selectedMain);\r\n else\r\n this.objectsList.selected.add(this.objectsList.selectedMain);\r\n\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n } else if (e.key === 'a') {\r\n if (e.ctrlKey)\r\n this.objectsList.selected.selectAll();\r\n\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n trOnDragStart(row, oryginalTr, e) {\r\n if (!this.objectsList.selected.has(row.id)) {\r\n this.objectsList.selected.clear()\r\n this.objectsList.selected.add(row.id)\r\n this.refreshSelectedClasses();\r\n }\r\n this.fillDataTransfer(e.dataTransfer, this.objectsList.selected);\r\n }\r\n\r\n fillDataTransfer(dataTransfer, ids) {\r\n const trs = Array.from(this.body.children).filter(tr => ids.has(tr.dataset.row));\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'dataTransfer').find(x => x.main);\r\n if (action && action.href) {\r\n dataTransfer.setData('text/uri-list', new URL(action.href, document.baseURI));\r\n }\r\n if (action && action.hrefArray) {\r\n dataTransfer.setData('text/uri-list', action.hrefArray.map(x => new URL(x, document.baseURI)).map(x => x.toString()).join(\"\\r\\n#\\r\\n\"));\r\n }\r\n dataTransfer.setData('text/html', this.generateTableHtml(trs));\r\n dataTransfer.setData('text/plain', this.generateTableTextPlain(trs));\r\n\r\n }\r\n\r\n refreshSelectedClasses() {\r\n for (const tr of this.body.children) {\r\n tr.classList.toggle('selected', this.objectsList.selected.has(tr.dataset.row));\r\n tr.classList.toggle('selectedMain', this.objectsList.selectedMain == tr.dataset.row);\r\n if (this.objectsList.selectedMain == tr.dataset.row) {\r\n tr.tabIndex = 1;\r\n tr.focus();\r\n getSelection().selectAllChildren(tr)\r\n } else {\r\n tr.tabIndex = -1;\r\n }\r\n }\r\n }\r\n\r\n selectRange(start, end) {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n let startIndex = rowsIds.indexOf(start);\r\n let endIndex = rowsIds.indexOf(end);\r\n if (endIndex < startIndex) {\r\n let tmp = startIndex;\r\n startIndex = endIndex;\r\n endIndex = tmp;\r\n }\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n this.objectsList.selected.add(rowsIds[i]);\r\n }\r\n }\r\n\r\n\r\n onCopy(e) {\r\n if (this.copyForced) {\r\n this.fillDataTransfer(e.clipboardData, this.copyForced);\r\n e.preventDefault();\r\n } else if (document.querySelector(':focus')?.findParent(x => x === this)) {\r\n this.fillDataTransfer(e.clipboardData, this.objectsList.selected);\r\n e.preventDefault();\r\n }\r\n }\r\n}\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/abstractView.js?");
250
+
251
+ /***/ }),
252
+
253
+ /***/ "./src/calendarView.js":
254
+ /*!*****************************!*\
255
+ !*** ./src/calendarView.js ***!
256
+ \*****************************/
257
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
258
+
259
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CalendarView: () => (/* binding */ CalendarView)\n/* harmony export */ });\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n\r\n\r\n\r\n\r\nclass CalendarView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_0__.AbstractView {\r\n constructor(objectsList) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgList = this;\r\n }\r\n\r\n init() {\r\n this.body = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body.monthCalendarBody')\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer)\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Number.POSITIVE_INFINITY\r\n }\r\n\r\n loadData(data) {\r\n while(this.body.firstChild){\r\n this.body.removeChild(this.body.firstChild);\r\n }\r\n console.log('data', data)\r\n let startDay = new Date()\r\n if(this.objectsList.date){\r\n startDay = new Date(this.objectsList.date)\r\n }\r\n startDay.setDate(1);\r\n\r\n startDay.setDate(startDay.getDate() - startDay.getDay() + 1);\r\n for (let i = 0; i < 7 * 6; i++) {\r\n const day = new Date(startDay);\r\n day.setDate(startDay.getDate() + i);\r\n const dayElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.day', {\r\n data: {date: day.toISOString().substring(0, 10)},\r\n text: day.toISOString().substring(0, 10)\r\n })\r\n this.body.append(dayElement)\r\n for (let item of data.rows.filter(r => this.objectsList.dateRowCallback(r).toISOString().substring(0, 10) == day.toISOString().substring(0, 10))) {\r\n const itemElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.item')\r\n itemElement.append(this.objectsList.calendarRowCallback(item))\r\n dayElement.append(itemElement)\r\n itemElement.oncontextmenu = this.contextMenu.bind(this, itemElement);\r\n itemElement.onclick = this.trOnClick.bind(this, item);\r\n itemElement.ondblclick = this.trOnDblClick.bind(this, item, itemElement);\r\n itemElement.onkeydown = this.trOnKeyDown.bind(this, item, itemElement);\r\n itemElement.ondragstart = this.trOnDragStart.bind(this, item, itemElement);\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define('calendar-view', CalendarView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/calendarView.js?");
250
260
 
251
261
  /***/ }),
252
262
 
@@ -276,7 +286,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
276
286
  \*************************/
277
287
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
278
288
 
279
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ListView: () => (/* binding */ ListView)\n/* harmony export */ });\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n\r\n\r\n\r\nclass ListView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_0__.AbstractView {\r\n constructor(objectsList) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgList = this;\r\n }\r\n\r\n init() {\r\n this.body=(0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body')\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer)\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Math.floor((height) / this.rowHeight);\r\n }\r\n\r\n get rowHeight() {\r\n return Math.max(63, this.objectsList.visibleColumns.length * 21) + 20;\r\n }\r\n\r\n generateRow(data) {\r\n let tr = this.body.querySelector(`.tr[data-row=\"${data.id}\"]`);\r\n if (!tr) {\r\n tr = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.tr');\r\n tr.draggable = true;\r\n }\r\n tr.classList.toggle('selected', this.objectsList.selected.has(data.id))\r\n this.fillRowContent(tr, data);\r\n return tr;\r\n }\r\n\r\n fillRowContent(tr, data) {\r\n while(tr.firstChild){\r\n tr.removeChild(tr.firstChild)\r\n }\r\n tr.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.icon', {className: this.objectsList.icon}));\r\n for (let column of this.objectsList.visibleColumns) {\r\n let keyValue = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.keyValue');\r\n tr.append(keyValue)\r\n let key = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('strong', {text: column.name + ': '});\r\n keyValue.append(key);\r\n let value = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span');\r\n keyValue.append(value);\r\n value.append((column.content?.call(column,data)||data[column.dataName]));\r\n }\r\n let actionsTd = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.actions');\r\n tr.append(actionsTd);\r\n let actions = this.objectsList.generateActions([data], 'row');\r\n for (let action of actions) {\r\n let actionButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(action.href ? 'a.button' : 'button', {\r\n title: action.name\r\n });\r\n actionsTd.append(actionButton);\r\n if (action.href) {\r\n actionButton.href = action.href;\r\n }\r\n if (action.command) {\r\n actionButton.onclick = action.command;\r\n }\r\n if (action.icon) {\r\n actionButton.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span', {classList: [action.icon]}));\r\n actionButton.append(action.name);\r\n } else {\r\n actionButton.textContent = action.name;\r\n }\r\n }\r\n\r\n\r\n tr.dataset.row = data.id;\r\n // tr.oncontextmenu = this.contextMenu.bind(this, tr);\r\n // tr.onclick = this.trOnClick.bind(this, data);\r\n // tr.ondblclick = this.trOnDblClick.bind(this, data, tr);\r\n // tr.onkeydown = this.trOnKeyDown.bind(this, data, tr);\r\n // tr.ondragstart = this.trOnDragStart.bind(this, data, tr);\r\n }\r\n}\r\n\r\ncustomElements.define('list-view', ListView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/listView.js?");
289
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ListView: () => (/* binding */ ListView)\n/* harmony export */ });\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n\r\n\r\n\r\nclass ListView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_0__.AbstractView {\r\n constructor(objectsList) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgList = this;\r\n }\r\n\r\n init() {\r\n this.body=(0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body')\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer)\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Math.floor((height) / this.rowHeight);\r\n }\r\n\r\n get rowHeight() {\r\n return Math.max(63, this.objectsList.visibleColumns.length * 21) + 20;\r\n }\r\n\r\n generateRow(data) {\r\n let tr = this.body.querySelector(`.tr[data-row=\"${data.id}\"]`);\r\n if (!tr) {\r\n tr = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.tr');\r\n tr.draggable = true;\r\n }\r\n tr.classList.toggle('selected', this.objectsList.selected.has(data.id))\r\n this.fillRowContent(tr, data);\r\n return tr;\r\n }\r\n\r\n fillRowContent(tr, data) {\r\n while(tr.firstChild){\r\n tr.removeChild(tr.firstChild)\r\n }\r\n tr.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.icon', {className: this.objectsList.icon}));\r\n for (let column of this.objectsList.visibleColumns) {\r\n let keyValue = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.keyValue');\r\n tr.append(keyValue)\r\n let key = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('strong', {text: column.name + ': '});\r\n keyValue.append(key);\r\n let value = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span');\r\n keyValue.append(value);\r\n value.append((column.content?.call(column,data)||data[column.dataName]));\r\n }\r\n let actionsTd = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.actions');\r\n tr.append(actionsTd);\r\n let actions = this.objectsList.generateActions([data], 'row');\r\n for (let action of actions) {\r\n let actionButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(action.href ? 'a.button' : 'button', {\r\n title: action.name\r\n });\r\n actionsTd.append(actionButton);\r\n if (action.href) {\r\n actionButton.href = action.href;\r\n }\r\n if (action.command) {\r\n actionButton.onclick = action.command;\r\n }\r\n if (action.icon) {\r\n actionButton.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span', {classList: [action.icon]}));\r\n actionButton.append(action.name);\r\n } else {\r\n actionButton.textContent = action.name;\r\n }\r\n }\r\n\r\n\r\n tr.dataset.row = data.id;\r\n tr.oncontextmenu = this.contextMenu.bind(this, tr);\r\n tr.onclick = this.trOnClick.bind(this, data);\r\n tr.ondblclick = this.trOnDblClick.bind(this, data, tr);\r\n tr.onkeydown = this.trOnKeyDown.bind(this, data, tr);\r\n tr.ondragstart = this.trOnDragStart.bind(this, data, tr);\r\n }\r\n}\r\n\r\ncustomElements.define('list-view', ListView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/listView.js?");
280
290
 
281
291
  /***/ }),
282
292
 
@@ -286,7 +296,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
286
296
  \****************************/
287
297
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
288
298
 
289
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ObjectsList: () => (/* binding */ ObjectsList)\n/* harmony export */ });\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./paginationButtons.js */ \"./src/paginationButtons.js\");\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/concurencyLimiter.js */ \"./src/utils/concurencyLimiter.js\");\n/* harmony import */ var _idsSet_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./idsSet.js */ \"./src/idsSet.js\");\n/* harmony import */ var _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ConfigPopup.js */ \"./src/ConfigPopup.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ObjectsList extends HTMLElement {\r\n constructor(datasource) {\r\n super();\r\n this.columns = [];\r\n this.columnsReordered = [];\r\n this.columnsReorderedChanged = false;\r\n this.hiddenColumns = new Set()\r\n this.columnFilters = new Map();\r\n this.generateActions = () => [];\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.icon = 'icon-document';\r\n this.loadConcurencyLimiter = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.loadConcurencyLimiterTotal = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.datasource = datasource;\r\n this.datasource.onchange = () => this.refresh();\r\n this.start = 0;\r\n this.limit = 10\r\n this.total = 0;\r\n this.selected = new _idsSet_js__WEBPACK_IMPORTED_MODULE_6__.IdsSet();\r\n this.selectedMain = null;\r\n this.dataById = new Map();\r\n this.initFoot();\r\n this.addEventListener('contextmenu', e => this.showGlobalContextMenu(e));\r\n this.resizeBinded = this.resize.bind(this);\r\n this.popstateBinded = this.readUrl.bind(this);\r\n this.readUrl()\r\n this.addEventListener('keydown', e => this.onkeydown(e));\r\n this.infiniteScrollEnabled = false;\r\n }\r\n\r\n connectedCallback() {\r\n addEventListener('resize', this.resizeBinded);\r\n addEventListener(\"popstate\", this.popstateBinded)\r\n if (this.paramsInLocalStorage) {\r\n this.applyParams(JSON.parse(localStorage['objectList_params_' + this.paramsInLocalStorage] ?? 'null'));\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n removeEventListener('resize', this.resizeBinded);\r\n removeEventListener(\"popstate\", this.popstateBinded)\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n set columns(value) {\r\n this._columns = value;\r\n this.columnsReordered = value;\r\n this.columnsReorderedChanged = false;\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columnsReordered.filter(x => !this.hiddenColumns.has(x.dataName??x.sortName))\r\n }\r\n\r\n refreshLimit() {\r\n this.limit = this.insideView.calcMaxVisibleItems(this.clientHeight - this.foot.clientHeight - 2);\r\n if (this.limit < 1) this.limit = 1;\r\n if (this.infiniteScrollEnabled) {\r\n this.limit = Math.ceil(this.limit / 20) * 20 + 40;\r\n } else {\r\n this.start = Math.floor(Math.min(this.total, this.start) / this.limit) * this.limit;\r\n }\r\n }\r\n\r\n async refresh() {\r\n console.log('refresh')\r\n this.classList.toggle('infiniteScrollEnabled', this.infiniteScrollEnabled);\r\n\r\n if (!this.insideView || !(this.insideView instanceof this.insideViewClass))\r\n this.initInsideView();\r\n else if (this.insideView.refreshHeader) {\r\n this.insideView.params = this.insideViewParams\r\n this.insideView.refreshHeader()\r\n }\r\n\r\n this.refreshLimit();\r\n const refreshSymbol = Symbol();\r\n this.lastRefreshSymbol = refreshSymbol;\r\n this.lastRefreshSymbolTotal = refreshSymbol;\r\n if (this.asyncTotal) {\r\n const promise1 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n const data = await this.datasource.getRows(this);\r\n\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n const promise2 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n let dataTotal = this.datasource.getTotal(this);\r\n const x = await dataTotal\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n this.total = x.total;\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n await promise1;\r\n await promise2;\r\n } else {\r\n await this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n let data = await this.datasource.get(this);\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.total = data.total;\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n }\r\n\r\n\r\n while (this.filterShortContainer.firstChild) {\r\n this.filterShortContainer.firstChild.remove()\r\n }\r\n if (this.columnFilters.size) {\r\n this.filterShortContainer.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('span', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.filtersCount') + ': ' + this.columnFilters.size}));\r\n const clearButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.clearFilters')});\r\n clearButton.onclick = () => {\r\n this.columnFilters.clear();\r\n this.refresh();\r\n }\r\n this.filterShortContainer.append(clearButton);\r\n }\r\n if (this.paramsInUrl) {\r\n this.setUrl();\r\n }\r\n if (this.paramsInLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n setUrl() {\r\n const query = new URLSearchParams(document.location.search)\r\n const prev = Object.fromEntries([...query]);\r\n const next = new URLSearchParams(this.serializeParams(prev))\r\n console.log('dddddcccc')\r\n console.log(query)\r\n if (prev.toString() !== next.toString()) {\r\n const url = new URL(document.location);\r\n url.search = next.toString();\r\n history.pushState(null, '', url.toString());\r\n }\r\n }\r\n\r\n setLocalStorage() {\r\n const prev = JSON.parse(localStorage.getItem('objectList_params_' + this.paramsInLocalStorage));\r\n const next = this.serializeParams(prev);\r\n if (JSON.stringify(prev) !== JSON.stringify(next)) {\r\n localStorage.setItem('objectList_params_' + this.paramsInLocalStorage, JSON.stringify(next));\r\n }\r\n }\r\n\r\n serializeParams(old = {}) {\r\n old = old || {};\r\n let ret = {};\r\n let changed = false;\r\n var visibleColumns = this.visibleColumns.map(x => x.dataName??x.sortName).join();\r\n if (old.visibleColumns || this.hiddenColumns.size || this.columnsReorderedChanged) {\r\n ret.visibleColumns = visibleColumns;\r\n changed = true;\r\n\r\n }\r\n if (old.sort || this.sort?.col) {\r\n ret.sort = this.sort?.col;\r\n\r\n }\r\n if (old.sortDesc == 'true' || this.sort?.desc) {\r\n ret.sortDesc = this.sort?.desc ? 'true' : 'false';\r\n\r\n\r\n }\r\n if (old.columnFilters || this.columnFilters) {\r\n ret.columnFilters = JSON.stringify(Array.from(this.columnFilters.entries()));\r\n\r\n }\r\n\r\n if (old.insideView || this.insideViewName) {\r\n ret.insideView = this.insideViewName;\r\n }\r\n return ret;\r\n }\r\n\r\n get insideViewName() {\r\n if (this.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView) {\r\n if (this.insideViewParams?.wide)\r\n return 'tableWideView';\r\n else\r\n return 'tableView'\r\n } else {\r\n return 'listView'\r\n }\r\n }\r\n\r\n set insideViewName(value) {\r\n if (this.insideViewName == value) return;\r\n if (value == 'tableView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: false}\r\n } else if (value == 'tableWideView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: true}\r\n } else {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView\r\n this.insideViewParams = {}\r\n }\r\n }\r\n\r\n readUrl() {\r\n\r\n const query = new URLSearchParams(document.location.search)\r\n const params = Object.fromEntries([...query]);\r\n this.applyParams(params)\r\n }\r\n\r\n applyParams(params) {\r\n if (params?.visibleColumns) {\r\n const splitted = params.visibleColumns.split(',');\r\n this.hiddenColumns = new Set(this.columns.map(x => x.dataName??x.sortName));\r\n for (const name of splitted) {\r\n this.hiddenColumns.delete(name);\r\n }\r\n for (let i = splitted.length - 1; i > 0; i--) {\r\n const column = this.columnsReordered.find(x => (x.dataName??x.sortName) == splitted[i - 1]);\r\n const next = this.columnsReordered.find(x => (x.dataName??x.sortName) == splitted[i]);\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n this.columnsReorderedChanged = true;\r\n }\r\n }\r\n }\r\n if (params?.sort) {\r\n this.sort = {\r\n col: params.sort,\r\n desc: params.sortDesc === 'true'\r\n };\r\n }\r\n if (params?.columnFilters) {\r\n this.columnFilters = new Map(JSON.parse(params.columnFilters));\r\n }\r\n if (params?.insideView) {\r\n this.insideViewName = params.insideView;\r\n }\r\n }\r\n\r\n initInsideView() {\r\n if (this.insideView) {\r\n this.insideView.remove();\r\n }\r\n this.insideView = new this.insideViewClass(this, this.insideViewParams);\r\n this.insertBefore(this.insideView, this.foot);\r\n this.insideView.refresh = () => this.refresh();\r\n this.insideView.onPaginationChanged = (start, limit) => {\r\n if (this.start != start) {\r\n this.start = start;\r\n //this.limit=limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n fillDataById(rows) {\r\n for (let row of rows) {\r\n this.dataById.set(parseInt(row.id), row);\r\n }\r\n }\r\n\r\n getSelectedData() {\r\n let data = Array.from(this.dataById).filter(([id, row]) => this.selected.has(id)).map(([id, row]) => row);\r\n if (data.length > 0) return data;\r\n else if (this.dataById[this.selectedMain])\r\n return [this.dataById[this.selectedMain]]\r\n else return [];\r\n }\r\n\r\n initFoot() {\r\n this.foot = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.foot');\r\n this.append(this.foot);\r\n let menuButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button.menuButton span.icon-settings');\r\n this.foot.append(menuButton)\r\n menuButton.onclick = e => this.showConfigPopup();\r\n this.pagination = new _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__.PaginationButtons();\r\n this.pagination.onpageclick = (page) => {\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n this.foot.append(this.pagination);\r\n this.filterShortContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.filterShortContainer');\r\n this.foot.append(this.filterShortContainer);\r\n this.searchForm = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('form', {className: 'search'});\r\n this.foot.append(this.searchForm);\r\n this.searchForm.onsubmit = e => e.preventDefault();\r\n const searchInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {\r\n name: 'search',\r\n type: 'search',\r\n placeholder: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.search')\r\n });\r\n this.searchForm.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)(searchInput));\r\n searchInput.oninput = e => {\r\n this.start = 0;\r\n this.refresh();\r\n }\r\n\r\n }\r\n\r\n get search() {\r\n if (!this.foot) return '';\r\n const searchForm = this.foot.querySelector('.search');\r\n if (!searchForm) return '';\r\n return searchForm.search.value;\r\n }\r\n\r\n showGlobalContextMenu(e) {\r\n let elements = [{\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.paginationMode'),\r\n icon: 'icon-pagination',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = false;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.scrollMode'),\r\n icon: 'icon-scroll',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = true;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.tableView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.listView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView;\r\n this.refresh();\r\n }\r\n }];\r\n if (this.allowTableEdit) {\r\n elements.push({\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.startMultiEdit'),\r\n icon: 'icon-edit',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n this.insideView.startMultiEdit();\r\n }\r\n });\r\n }\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__.ContextMenu.openContextMenu(e, elements);\r\n }\r\n\r\n resize() {\r\n let limit = this.limit;\r\n this.refreshLimit();\r\n if (limit != this.limit) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n multiEditChanged(id, data, save = false) {\r\n this.datasource.multiEditChanged(id, data, save);\r\n }\r\n\r\n showConfigPopup() {\r\n if (this.querySelector('config-popup')) {\r\n this.querySelector('config-popup').remove()\r\n } else {\r\n const popup = new _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__.ConfigPopup(this)\r\n this.append(popup)\r\n }\r\n }\r\n\r\n gotoUrl(url) {\r\n window.location.href = url;\r\n }\r\n\r\n onkeydown(e) {\r\n if (e.ctrlKey) {\r\n if (e.key == 'ArrowLeft' || e.key == 'ArrowRight') {\r\n let page = Math.floor(this.start / this.limit);\r\n page += (e.key == 'ArrowLeft' ? -1 : 1);\r\n if (page < 0) page = 0;\r\n else if (page > 0 && page > Math.ceil(this.total / this.limit) - 1) page = Math.ceil(this.total / this.limit) - 1;\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n\r\n reorderColumns(column, next) {\r\n console.log('reorderColumns')\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n\r\n this.columnsReorderedChanged = true;\r\n if (this.insideView.setColumnsWidths) {\r\n this.insideView.setColumnsWidths()\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements\r\n .define(\r\n 'data-view'\r\n ,\r\n ObjectsList\r\n )\r\n;\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/objectsList.js?");
299
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ObjectsList: () => (/* binding */ ObjectsList)\n/* harmony export */ });\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./paginationButtons.js */ \"./src/paginationButtons.js\");\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/concurencyLimiter.js */ \"./src/utils/concurencyLimiter.js\");\n/* harmony import */ var _idsSet_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./idsSet.js */ \"./src/idsSet.js\");\n/* harmony import */ var _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ConfigPopup.js */ \"./src/ConfigPopup.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ObjectsList extends HTMLElement {\r\n constructor(datasource) {\r\n super();\r\n this.columns = [];\r\n this.columnsReordered = [];\r\n this.columnsReorderedChanged = false;\r\n this.hiddenColumns = new Set()\r\n this.columnFilters = new Map();\r\n this.generateActions = () => [];\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.icon = 'icon-document';\r\n this.loadConcurencyLimiter = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.loadConcurencyLimiterTotal = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.datasource = datasource;\r\n this.datasource.onchange = () => this.refresh();\r\n this.start = 0;\r\n this.limit = 10\r\n this.total = 0;\r\n this.selected = new _idsSet_js__WEBPACK_IMPORTED_MODULE_6__.IdsSet();\r\n this.selectedMain = null;\r\n this.dataById = new Map();\r\n this.initFoot();\r\n this.addEventListener('contextmenu', e => this.showGlobalContextMenu(e));\r\n this.resizeBinded = this.resize.bind(this);\r\n this.popstateBinded = this.readUrl.bind(this);\r\n this.readUrl()\r\n this.addEventListener('keydown', e => this.onkeydown(e));\r\n this.infiniteScrollEnabled = false;\r\n }\r\n\r\n connectedCallback() {\r\n addEventListener('resize', this.resizeBinded);\r\n addEventListener(\"popstate\", this.popstateBinded)\r\n if (this.paramsInLocalStorage) {\r\n this.applyParams(JSON.parse(localStorage['objectList_params_' + this.paramsInLocalStorage] ?? 'null'));\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n removeEventListener('resize', this.resizeBinded);\r\n removeEventListener(\"popstate\", this.popstateBinded)\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n set columns(value) {\r\n this._columns = value;\r\n this.columnsReordered = value;\r\n this.columnsReorderedChanged = false;\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columnsReordered.filter(x => !this.hiddenColumns.has(x.dataName ?? x.sortName))\r\n }\r\n\r\n refreshLimit() {\r\n this.limit = this.insideView.calcMaxVisibleItems(this.clientHeight - this.foot.clientHeight - 2);\r\n if (this.limit < 1) this.limit = 1;\r\n if (this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView) {\r\n this.start = 0;\r\n this.limit = 1000000;\r\n } else if (this.infiniteScrollEnabled) {\r\n this.limit = Math.ceil(this.limit / 20) * 20 + 40;\r\n } else {\r\n this.start = Math.floor(Math.min(this.total, this.start) / this.limit) * this.limit;\r\n }\r\n }\r\n\r\n async refresh() {\r\n console.log('refresh')\r\n this.classList.toggle('infiniteScrollEnabled', this.infiniteScrollEnabled);\r\n\r\n if (!this.insideView || !(this.insideView instanceof this.insideViewClass))\r\n this.initInsideView();\r\n else if (this.insideView.refreshHeader) {\r\n this.insideView.params = this.insideViewParams\r\n this.insideView.refreshHeader()\r\n }\r\n\r\n this.refreshLimit();\r\n const refreshSymbol = Symbol();\r\n this.lastRefreshSymbol = refreshSymbol;\r\n this.lastRefreshSymbolTotal = refreshSymbol;\r\n this.pagination.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? 'none' : '';\r\n this.dateInput.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? '' : 'none';\r\n if (this.asyncTotal) {\r\n const promise1 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n const data = await this.datasource.getRows(this);\r\n\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n const promise2 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n let dataTotal = this.datasource.getTotal(this);\r\n const x = await dataTotal\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n this.total = x.total;\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n await promise1;\r\n await promise2;\r\n } else {\r\n await this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n let data = await this.datasource.get(this);\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.total = data.total;\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n }\r\n\r\n\r\n while (this.filterShortContainer.firstChild) {\r\n this.filterShortContainer.firstChild.remove()\r\n }\r\n if (this.columnFilters.size) {\r\n this.filterShortContainer.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('span', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.filtersCount') + ': ' + this.columnFilters.size}));\r\n const clearButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.clearFilters')});\r\n clearButton.onclick = () => {\r\n this.columnFilters.clear();\r\n this.refresh();\r\n }\r\n this.filterShortContainer.append(clearButton);\r\n }\r\n if (this.paramsInUrl) {\r\n this.setUrl();\r\n }\r\n if (this.paramsInLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n setUrl() {\r\n const query = new URLSearchParams(document.location.search)\r\n const prev = Object.fromEntries([...query]);\r\n const next = new URLSearchParams(this.serializeParams(prev))\r\n console.log('dddddcccc')\r\n console.log(query)\r\n if (prev.toString() !== next.toString()) {\r\n const url = new URL(document.location);\r\n url.search = next.toString();\r\n history.pushState(null, '', url.toString());\r\n }\r\n }\r\n\r\n setLocalStorage() {\r\n const prev = JSON.parse(localStorage.getItem('objectList_params_' + this.paramsInLocalStorage));\r\n const next = this.serializeParams(prev);\r\n if (JSON.stringify(prev) !== JSON.stringify(next)) {\r\n localStorage.setItem('objectList_params_' + this.paramsInLocalStorage, JSON.stringify(next));\r\n }\r\n }\r\n\r\n serializeParams(old = {}) {\r\n old = old || {};\r\n let ret = {};\r\n let changed = false;\r\n var visibleColumns = this.visibleColumns.map(x => x.dataName ?? x.sortName).join();\r\n if (old.visibleColumns || this.hiddenColumns.size || this.columnsReorderedChanged) {\r\n ret.visibleColumns = visibleColumns;\r\n changed = true;\r\n\r\n }\r\n if (old.sort || this.sort?.col) {\r\n ret.sort = this.sort?.col;\r\n\r\n }\r\n if (old.sortDesc == 'true' || this.sort?.desc) {\r\n ret.sortDesc = this.sort?.desc ? 'true' : 'false';\r\n\r\n\r\n }\r\n if (old.columnFilters || this.columnFilters) {\r\n ret.columnFilters = JSON.stringify(Array.from(this.columnFilters.entries()));\r\n\r\n }\r\n\r\n if (old.insideView || this.insideViewName) {\r\n ret.insideView = this.insideViewName;\r\n }\r\n return ret;\r\n }\r\n\r\n get insideViewName() {\r\n if (this.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView) {\r\n if (this.insideViewParams?.wide)\r\n return 'tableWideView';\r\n else\r\n return 'tableView'\r\n } else {\r\n return 'listView'\r\n }\r\n }\r\n\r\n set insideViewName(value) {\r\n if (this.insideViewName == value) return;\r\n if (value == 'tableView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: false}\r\n } else if (value == 'tableWideView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: true}\r\n } else if (value == 'listView') {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView\r\n this.insideViewParams = {}\r\n } else if (value == 'calendarView') {\r\n this.insideViewClass = _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView\r\n this.insideViewParams = {}\r\n }\r\n }\r\n\r\n readUrl() {\r\n\r\n const query = new URLSearchParams(document.location.search)\r\n const params = Object.fromEntries([...query]);\r\n this.applyParams(params)\r\n }\r\n\r\n applyParams(params) {\r\n if (params?.visibleColumns) {\r\n const splitted = params.visibleColumns.split(',');\r\n this.hiddenColumns = new Set(this.columns.map(x => x.dataName ?? x.sortName));\r\n for (const name of splitted) {\r\n this.hiddenColumns.delete(name);\r\n }\r\n for (let i = splitted.length - 1; i > 0; i--) {\r\n const column = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i - 1]);\r\n const next = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i]);\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n this.columnsReorderedChanged = true;\r\n }\r\n }\r\n }\r\n if (params?.sort) {\r\n this.sort = {\r\n col: params.sort,\r\n desc: params.sortDesc === 'true'\r\n };\r\n }\r\n if (params?.columnFilters) {\r\n this.columnFilters = new Map(JSON.parse(params.columnFilters));\r\n }\r\n if (params?.insideView) {\r\n this.insideViewName = params.insideView;\r\n }\r\n }\r\n\r\n initInsideView() {\r\n if (this.insideView) {\r\n this.insideView.remove();\r\n }\r\n this.insideView = new this.insideViewClass(this, this.insideViewParams);\r\n this.insertBefore(this.insideView, this.foot);\r\n this.insideView.refresh = () => this.refresh();\r\n this.insideView.onPaginationChanged = (start, limit) => {\r\n if (this.start != start) {\r\n this.start = start;\r\n //this.limit=limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n fillDataById(rows) {\r\n for (let row of rows) {\r\n this.dataById.set(parseInt(row.id), row);\r\n }\r\n }\r\n\r\n getSelectedData() {\r\n let data = Array.from(this.dataById).filter(([id, row]) => this.selected.has(id)).map(([id, row]) => row);\r\n if (data.length > 0) return data;\r\n else if (this.dataById[this.selectedMain])\r\n return [this.dataById[this.selectedMain]]\r\n else return [];\r\n }\r\n\r\n initFoot() {\r\n this.foot = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.foot');\r\n this.append(this.foot);\r\n let menuButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button.menuButton span.icon-settings');\r\n this.foot.append(menuButton)\r\n menuButton.onclick = e => this.showConfigPopup();\r\n this.pagination = new _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__.PaginationButtons();\r\n this.pagination.onpageclick = (page) => {\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n this.foot.append(this.pagination);\r\n this.dateInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {type: 'month', value: new Date().toISOString().substring(0, 7)});\r\n this.dateInput.onchange = date => {\r\n this.start = 0;\r\n this.date = this.dateInput.value;\r\n this.refresh();\r\n }\r\n this.foot.append(this.dateInput);\r\n this.filterShortContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.filterShortContainer');\r\n this.foot.append(this.filterShortContainer);\r\n this.searchForm = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('form', {className: 'search'});\r\n this.foot.append(this.searchForm);\r\n this.searchForm.onsubmit = e => e.preventDefault();\r\n const searchInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {\r\n name: 'search',\r\n type: 'search',\r\n placeholder: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.search')\r\n });\r\n this.searchForm.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)(searchInput));\r\n searchInput.oninput = e => {\r\n this.start = 0;\r\n this.refresh();\r\n }\r\n\r\n }\r\n\r\n get search() {\r\n if (!this.foot) return '';\r\n const searchForm = this.foot.querySelector('.search');\r\n if (!searchForm) return '';\r\n return searchForm.search.value;\r\n }\r\n\r\n showGlobalContextMenu(e) {\r\n let elements = [{\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.paginationMode'),\r\n icon: 'icon-pagination',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = false;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.scrollMode'),\r\n icon: 'icon-scroll',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = true;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.tableView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.listView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView;\r\n this.refresh();\r\n }\r\n }];\r\n if (this.allowTableEdit) {\r\n elements.push({\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.startMultiEdit'),\r\n icon: 'icon-edit',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n this.insideView.startMultiEdit();\r\n }\r\n });\r\n }\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__.ContextMenu.openContextMenu(e, elements);\r\n }\r\n\r\n resize() {\r\n let limit = this.limit;\r\n this.refreshLimit();\r\n if (limit != this.limit) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n multiEditChanged(id, data, save = false) {\r\n this.datasource.multiEditChanged(id, data, save);\r\n }\r\n\r\n showConfigPopup() {\r\n if (this.querySelector('config-popup')) {\r\n this.querySelector('config-popup').remove()\r\n } else {\r\n const popup = new _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__.ConfigPopup(this)\r\n this.append(popup)\r\n }\r\n }\r\n\r\n gotoUrl(url) {\r\n window.location.href = url;\r\n }\r\n\r\n onkeydown(e) {\r\n if (e.ctrlKey) {\r\n if (e.key == 'ArrowLeft' || e.key == 'ArrowRight') {\r\n let page = Math.floor(this.start / this.limit);\r\n page += (e.key == 'ArrowLeft' ? -1 : 1);\r\n if (page < 0) page = 0;\r\n else if (page > 0 && page > Math.ceil(this.total / this.limit) - 1) page = Math.ceil(this.total / this.limit) - 1;\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n\r\n reorderColumns(column, next) {\r\n console.log('reorderColumns')\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n\r\n this.columnsReorderedChanged = true;\r\n if (this.insideView.setColumnsWidths) {\r\n this.insideView.setColumnsWidths()\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements\r\n .define(\r\n 'data-view'\r\n ,\r\n ObjectsList\r\n )\r\n;\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/objectsList.js?");
290
300
 
291
301
  /***/ }),
292
302
 
@@ -306,7 +316,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
306
316
  \**************************/
307
317
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
308
318
 
309
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TableView: () => (/* binding */ TableView)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n\r\n\r\n\r\n\r\n\r\nclass TableView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_2__.AbstractView {\r\n constructor(objectsList, params) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgTable = this;\r\n this.params = params ?? {};\r\n }\r\n\r\n init() {\r\n this.head = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.head');\r\n this.append(this.head);\r\n this.refreshHeader();\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n this.body = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer);\r\n this.setColumnsWidths();\r\n addEventListener('resize', this.setColumnsWidths.bind(this))\r\n addEventListener('copy', this.onCopy.bind(this));\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n refreshHeader() {\r\n while (this.head.firstChild) this.head.firstChild.remove();\r\n\r\n console.log('uuu')\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.icon'))\r\n for (let column of this.objectsList.visibleColumns) {\r\n let node = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column')\r\n node.__column = column\r\n this.head.append(node);\r\n node.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span.name', {text: column.name}));\r\n if (column.sortName) {\r\n node.classList.add('ableToSort');\r\n node.dataset.sortName = column.sortName\r\n node.onclick = () => {\r\n let sortName = column.sortName || x.dataset.value;\r\n if (this.objectsList.sort && this.objectsList.sort.col === column.sortName) {\r\n this.objectsList.sort.desc = !this.objectsList.sort.desc;\r\n } else {\r\n this.objectsList.sort = {col: column.sortName, desc: false};\r\n }\r\n if (!this.objectsList.infiniteScrollEnabled) {\r\n this.objectsList.start = 0;\r\n }\r\n this.objectsList.refresh();\r\n }\r\n }\r\n this.initColumnMovability(node)\r\n }\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.actions'))\r\n\r\n\r\n this.setColumnsWidths();\r\n }\r\n\r\n initColumnMovability(node) {\r\n let startX = null;\r\n let changed = false;\r\n let onmove = (e) => {\r\n const movement = (e.pageX - startX);\r\n node.style.setProperty('--move-x', movement + 'px');\r\n if (movement < -node.previousElementSibling.clientWidth / 2) {\r\n if (node.previousElementSibling.__column) {\r\n startX -= node.previousElementSibling.clientWidth;\r\n const prev = node.previousElementSibling;\r\n node.parentNode.insertBefore(node, prev);\r\n this.objectsList.reorderColumns(node.__column, prev?.__column)\r\n changed = true;\r\n }\r\n } else if (movement > node.nextElementSibling.clientWidth / 2) {\r\n if (node.nextElementSibling.__column) {\r\n startX += node.nextElementSibling.clientWidth;\r\n const next = node.nextElementSibling.nextElementSibling;\r\n node.parentNode.insertBefore(node, next);\r\n this.objectsList.reorderColumns(node.__column, next?.__column)\r\n changed = true;\r\n }\r\n }\r\n }\r\n const onup = e => {\r\n const movement = (e.pageX - startX);\r\n if (Math.abs(movement) < 10 && !changed) {\r\n if (node.onclick)\r\n node.onclick();\r\n }\r\n startX = null;\r\n node.style.setProperty('--move-x', 0 + 'px');\r\n removeEventListener('mousemove', onmove);\r\n removeEventListener('mouseup', onup);\r\n if(changed) {\r\n this.objectsList.refresh()\r\n }\r\n }\r\n node.addEventListener('mousedown', (e) => {\r\n startX = e.pageX;\r\n addEventListener('mousemove', onmove)\r\n addEventListener('mouseup', onup)\r\n })\r\n }\r\n\r\n loadData(data, start, limit, infiniteScrollEnabled) {\r\n this.refreshSortIndicators();\r\n super.loadData(data, start, limit, infiniteScrollEnabled)\r\n this.setColumnsWidths();\r\n }\r\n\r\n get rowHeight() {\r\n return parseFloat(window.getComputedStyle(this).getPropertyValue('--rowHeight') ?? 31);\r\n }\r\n\r\n generateRow(data) {\r\n let tr = this.body.querySelector(`.tr[data-row=\"${data.id}\"]`);\r\n if (!tr) {\r\n tr = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.tr');\r\n tr.draggable = true;\r\n }\r\n tr.classList.toggle('selected', this.objectsList.selected.has(data.id))\r\n this.fillRowContent(tr, data);\r\n return tr;\r\n }\r\n\r\n fillRowContent(tr, data) {\r\n tr.lastData = data;\r\n while (tr.firstChild) {\r\n tr.removeChild(tr.firstChild)\r\n }\r\n tr.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.icon', {className: this.objectsList.icon}));\r\n for (let column of this.objectsList.visibleColumns) {\r\n let td = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td');\r\n tr.append(td);\r\n if (this.multiEdit && column.dataName) {\r\n tr.dataset.id = data.id;\r\n td.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('input', {\r\n data: {name: column.dataName},\r\n value: data[column.dataName],\r\n onclick: e => e.stopPropagation(),\r\n onchange: () => this.multiEditChanged(tr)\r\n }));\r\n } else {\r\n td.append(column.content?.call(column, data) || data[column.dataName] || '');\r\n }\r\n }\r\n let actionsTd = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.actions');\r\n tr.append(actionsTd);\r\n let actions = this.objectsList.generateActions([data], 'row');\r\n if (this.multiEdit && data.__isMultirowEdited) {\r\n actions = [\r\n {\r\n name: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_3__.t)(\"objectList.saveRow\"),\r\n icon: 'icon-save',\r\n command: () => {\r\n this.multiEditChanged(tr, true)\r\n }\r\n }\r\n ]\r\n }\r\n for (let action of actions) {\r\n let actionButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(action.href ? 'a.button' : 'button', {\r\n title: action.name\r\n });\r\n actionsTd.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(actionButton));\r\n actionButton.classList.add('action-' + (action.action ?? 'view'));\r\n\r\n if (action.href) {\r\n actionButton.href = action.href;\r\n }\r\n if (action.command) {\r\n actionButton.onclick = action.command;\r\n }\r\n if (action.icon) {\r\n actionButton.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span', {classList: [action.icon]}));\r\n } else {\r\n actionButton.textContent = action.name;\r\n }\r\n }\r\n\r\n\r\n tr.dataset.row = data.id;\r\n tr.oncontextmenu = this.contextMenu.bind(this, tr);\r\n tr.onclick = this.trOnClick.bind(this, data);\r\n tr.ondblclick = this.trOnDblClick.bind(this, data, tr);\r\n tr.onkeydown = this.trOnKeyDown.bind(this, data, tr);\r\n tr.ondragstart = this.trOnDragStart.bind(this, data, tr);\r\n }\r\n\r\n setColumnsWidths() {\r\n const widths = this.calculateColumnsWidths();\r\n for (let tr of this.body?.children ?? []) {\r\n for (let i = 0; i < widths.length; i++) {\r\n if(tr.children[i]) {\r\n tr.children[i].style.width = widths[i] + 'px';\r\n }\r\n }\r\n }\r\n let sum = 0;\r\n for (let i = 0; i < widths.length; i++) {\r\n let node = this.head.children[i];\r\n if (node) {\r\n if (i + 1 < widths.length)\r\n node.style.width = widths[i] + 1 + 'px';\r\n else\r\n node.style.width = widths[i] + 'px';\r\n node.style.left = sum + 'px';\r\n }\r\n sum += widths[i];\r\n }\r\n }\r\n\r\n calculateColumnsWidths() {\r\n let needed = [{base: 30, grow: 0}];\r\n\r\n for (let column of this.objectsList.visibleColumns) {\r\n needed.push({base: column.width || 10, grow: typeof (column.widthGrow) == \"number\" ? column.widthGrow : 1});\r\n }\r\n let actionWidth = Math.ceil(Array.from(this.querySelectorAll('.td.actions')).map(x => {\r\n if (x.lastElementChild)\r\n return x.lastElementChild.getBoundingClientRect().right - x.getBoundingClientRect().left + parseFloat(getComputedStyle(x).paddingRight);\r\n else\r\n return 0;\r\n }).reduce((a, b) => Math.max(a, b), 0));\r\n needed.push({base: actionWidth, grow: 0});\r\n let availableToGrow = this.clientWidth - needed.map(x => x.base).reduce((a, b) => a + b, 0);\r\n let sumGrow = needed.map(x => x.grow).reduce((a, b) => a + b, 0);\r\n if (this.params?.wide) {\r\n return needed.map(x => x.base + x.grow * Math.max(100, availableToGrow / sumGrow));\r\n } else {\r\n if (availableToGrow > 0 && sumGrow > 0) {\r\n return needed.map(x => x.base + x.grow / sumGrow * availableToGrow);\r\n } else {\r\n return needed.map(x => x.base);\r\n }\r\n }\r\n }\r\n\r\n refreshSortIndicators() {\r\n this.head.querySelectorAll('[data-order]').forEach(x => delete x.dataset.order);\r\n if (this.objectsList.sort)\r\n this.head.querySelectorAll(`[data-sort-name=\"${this.objectsList.sort.col}\"]`).forEach(x => x.dataset.order = this.objectsList.sort.desc ? 'desc' : 'asc');\r\n }\r\n\r\n contextMenu(tr, event) {\r\n event.stopPropagation();\r\n if (!this.objectsList.selected.has(tr.dataset.row)) {\r\n this.objectsList.selected.clear();\r\n this.objectsList.selected.add(tr.dataset.row)\r\n this.objectsList.selectedMain = tr.dataset.row;\r\n this.refreshSelectedClasses();\r\n }\r\n const rows = this.objectsList.getSelectedData();\r\n let actions = this.objectsList.generateActions(rows, 'contextMenu');\r\n let actions2 = [];\r\n for (const action of actions) {\r\n actions2.push(action);\r\n if (action.href) {\r\n actions2.push({\r\n ...action,\r\n href: null,\r\n command: () => window.open(action.href),\r\n name: (action.name ?? '') + ' (' + (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_3__.t)('objectList.inNewTab') + ')'\r\n });\r\n }\r\n }\r\n let elements = actions2.map(action => ({\r\n text: action.name,\r\n icon: action.icon,\r\n class: action.action ? 'action-' + action.action : '',\r\n onclick: action.command || (() => this.objectsList.gotoUrl(action.href))\r\n }));\r\n elements.push({\r\n text: 'copy',\r\n icon: 'icon-copy',\r\n onclick: () => {\r\n this.forceCopy(rows);\r\n }\r\n })\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__.ContextMenu.openContextMenu(event, elements);\r\n }\r\n\r\n refreshSelectedClasses() {\r\n for (const tr of this.body.children) {\r\n tr.classList.toggle('selected', this.objectsList.selected.has(tr.dataset.row));\r\n tr.classList.toggle('selectedMain', this.objectsList.selectedMain == tr.dataset.row);\r\n if (this.objectsList.selectedMain == tr.dataset.row) {\r\n tr.tabIndex = 1;\r\n tr.focus();\r\n getSelection().selectAllChildren(tr)\r\n } else {\r\n tr.tabIndex = -1;\r\n }\r\n }\r\n }\r\n\r\n\r\n trOnClick(row, e) {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n console.log('click')\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.clear();\r\n }\r\n\r\n if (e.shiftKey) {\r\n const mainIndex = rowsIds.indexOf(this.objectsList.selectedMain);\r\n const clickedIndex = rowsIds.indexOf(row.id);\r\n if (clickedIndex >= 0 && mainIndex >= 0)\r\n rowsIds.slice(Math.min(mainIndex, clickedIndex), Math.max(mainIndex, clickedIndex) + 1).forEach(x => this.objectsList.selected.add(x));\r\n } else {\r\n if (this.objectsList.selected.has(row.id))\r\n this.objectsList.selected.delete(row.id);\r\n else\r\n this.objectsList.selected.add(row.id);\r\n\r\n this.objectsList.selectedMain = row.id;\r\n }\r\n\r\n this.refreshSelectedClasses();\r\n }\r\n\r\n trOnDblClick(row, tr, e) {\r\n if (!this.objectsList.selected.has(tr.dataset.row)) {\r\n this.objectsList.selected.clear();\r\n this.objectsList.selected.add(tr.dataset.row)\r\n this.objectsList.selectedMain = tr.dataset.row;\r\n this.refreshSelectedClasses();\r\n }\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'dblClick').find(x => x.main);\r\n if (action) {\r\n if (action.command) {\r\n action.command();\r\n } else if (action.href) {\r\n this.objectsList.gotoUrl(action.href)\r\n }\r\n }\r\n }\r\n\r\n selectRange(start, end) {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n let startIndex = rowsIds.indexOf(start);\r\n let endIndex = rowsIds.indexOf(end);\r\n if (endIndex < startIndex) {\r\n let tmp = startIndex;\r\n startIndex = endIndex;\r\n endIndex = tmp;\r\n }\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n this.objectsList.selected.add(rowsIds[i]);\r\n }\r\n }\r\n\r\n trOnKeyDown(row, tr, e) {\r\n console.log('trOnKeyDown')\r\n if (e.key === 'Enter') {\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'enter').find(x => x.main);\r\n if (action) {\r\n if (action.command) {\r\n action.command();\r\n } else if (action.href) {\r\n this.objectsList.gotoUrl(action.href)\r\n }\r\n }\r\n } else if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n const rowsIds = this.objectsList.currentRows.map(x => x.id);\r\n let index = rowsIds.indexOf(this.objectsList.selectedMain);\r\n if (e.key === 'ArrowDown') {\r\n if (index < rowsIds.length) index++;\r\n else index = rowsIds.length - 1;\r\n } else {\r\n if (index > 0) index--;\r\n }\r\n const id = rowsIds[index];\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.clear();\r\n }\r\n if (e.shiftKey) {\r\n if (!this.objectsList.selectedShiftStart) {\r\n this.objectsList.selectedShiftStart = this.objectsList.selectedMain;\r\n }\r\n this.selectRange(this.objectsList.selectedShiftStart, id)\r\n } else {\r\n this.objectsList.selectedShiftStart = null;\r\n if (!e.ctrlKey) {\r\n this.objectsList.selected.add(id);\r\n }\r\n }\r\n this.objectsList.selectedMain = id;\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n } else if (e.key === ' ') {\r\n if (this.objectsList.selected.has(this.objectsList.selectedMain))\r\n this.objectsList.selected.delete(this.objectsList.selectedMain);\r\n else\r\n this.objectsList.selected.add(this.objectsList.selectedMain);\r\n\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n } else if (e.key === 'a') {\r\n if (e.ctrlKey)\r\n this.objectsList.selected.selectAll();\r\n\r\n this.refreshSelectedClasses();\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n onCopy(e) {\r\n if (this.copyForced) {\r\n this.fillDataTransfer(e.clipboardData, this.copyForced);\r\n e.preventDefault();\r\n } else if (document.querySelector(':focus')?.findParent(x => x === this)) {\r\n this.fillDataTransfer(e.clipboardData, this.objectsList.selected);\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n trOnDragStart(row, oryginalTr, e) {\r\n if (!this.objectsList.selected.has(row.id)) {\r\n this.objectsList.selected.clear()\r\n this.objectsList.selected.add(row.id)\r\n this.refreshSelectedClasses();\r\n }\r\n this.fillDataTransfer(e.dataTransfer, this.objectsList.selected);\r\n }\r\n\r\n fillDataTransfer(dataTransfer, ids) {\r\n const trs = Array.from(this.body.children).filter(tr => ids.has(tr.dataset.row));\r\n let action = this.objectsList.generateActions(this.objectsList.getSelectedData(), 'dataTransfer').find(x => x.main);\r\n if (action && action.href) {\r\n dataTransfer.setData('text/uri-list', new URL(action.href, document.baseURI));\r\n }\r\n if (action && action.hrefArray) {\r\n dataTransfer.setData('text/uri-list', action.hrefArray.map(x => new URL(x, document.baseURI)).map(x => x.toString()).join(\"\\r\\n#\\r\\n\"));\r\n }\r\n dataTransfer.setData('text/html', this.generateTableHtml(trs));\r\n dataTransfer.setData('text/plain', this.generateTableTextPlain(trs));\r\n\r\n }\r\n\r\n generateTableHtml(trs) {\r\n const thead = '<thead><tr>' + Array.from(this.head.querySelectorAll('.column')).map(x => '<th>' + x.innerHTML + '</th>').join('') + '</tr></thead>';\r\n const tbody = '<tbody>' + trs.map(tr => {\r\n return '<tr>' + Array.from(tr.children).slice(1, -1).map(td => {\r\n return '<td>' + td.innerHTML + '</td>';\r\n }).join('') + '</tr>';\r\n }).join('') + '</tbody>'\r\n return '<table>' + thead + tbody + '</table>';\r\n }\r\n\r\n generateTableTextPlain(trs) {\r\n const head = Array.from(this.head.querySelectorAll('.column')).map(x => x.textContent.replace(/\\r\\n/gm, ' ')).join(\"\\t\")\r\n const body = trs.map(tr => Array.from(tr.children).slice(1).map(x => x.textContent.replace(/\\r\\n/gm, ' ')).join(\"\\t\")).join(\"\\r\\n\")\r\n return head + \"\\r\\n\" + body;\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Math.floor((height - this.head.clientHeight) / this.rowHeight);\r\n }\r\n\r\n forceCopy(rows) {\r\n this.copyForced = new Set(rows.map(x => x.id));\r\n document.execCommand(\"copy\");\r\n setTimeout(() => this.copyForced = null, 100);\r\n }\r\n\r\n startMultiEdit() {\r\n this.multiEdit = true;\r\n }\r\n\r\n multiEditChanged(tr, save = false) {\r\n let data = [...tr.querySelectorAll('[data-name]')].map(x => [x.dataset.name, x.value]);\r\n let dataObj = Object.fromEntries(data);\r\n this.objectsList.multiEditChanged(tr.dataset.id, dataObj, save);\r\n this.fillRowContent(tr, {...tr.lastData, ...dataObj, __isMultirowEdited: true});\r\n this.setColumnsWidths();\r\n }\r\n}\r\n\r\ncustomElements.define('table-view', TableView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/tableView.js?");
319
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TableView: () => (/* binding */ TableView)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n\r\n\r\n\r\n\r\n\r\nclass TableView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_2__.AbstractView {\r\n constructor(objectsList, params) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgTable = this;\r\n this.params = params ?? {};\r\n }\r\n\r\n init() {\r\n this.head = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.head');\r\n this.append(this.head);\r\n this.refreshHeader();\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n this.body = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer);\r\n this.setColumnsWidths();\r\n addEventListener('resize', this.setColumnsWidths.bind(this))\r\n addEventListener('copy', this.onCopy.bind(this));\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n refreshHeader() {\r\n while (this.head.firstChild) this.head.firstChild.remove();\r\n\r\n console.log('uuu')\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.icon'))\r\n for (let column of this.objectsList.visibleColumns) {\r\n let node = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column')\r\n node.__column = column\r\n this.head.append(node);\r\n node.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span.name', {text: column.name}));\r\n if (column.sortName) {\r\n node.classList.add('ableToSort');\r\n node.dataset.sortName = column.sortName\r\n node.onclick = () => {\r\n let sortName = column.sortName || x.dataset.value;\r\n if (this.objectsList.sort && this.objectsList.sort.col === column.sortName) {\r\n this.objectsList.sort.desc = !this.objectsList.sort.desc;\r\n } else {\r\n this.objectsList.sort = {col: column.sortName, desc: false};\r\n }\r\n if (!this.objectsList.infiniteScrollEnabled) {\r\n this.objectsList.start = 0;\r\n }\r\n this.objectsList.refresh();\r\n }\r\n }\r\n this.initColumnMovability(node)\r\n }\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.actions'))\r\n\r\n\r\n this.setColumnsWidths();\r\n }\r\n\r\n initColumnMovability(node) {\r\n let startX = null;\r\n let changed = false;\r\n let onmove = (e) => {\r\n const movement = (e.pageX - startX);\r\n node.style.setProperty('--move-x', movement + 'px');\r\n if (movement < -node.previousElementSibling.clientWidth / 2) {\r\n if (node.previousElementSibling.__column) {\r\n startX -= node.previousElementSibling.clientWidth;\r\n const prev = node.previousElementSibling;\r\n node.parentNode.insertBefore(node, prev);\r\n this.objectsList.reorderColumns(node.__column, prev?.__column)\r\n changed = true;\r\n }\r\n } else if (movement > node.nextElementSibling.clientWidth / 2) {\r\n if (node.nextElementSibling.__column) {\r\n startX += node.nextElementSibling.clientWidth;\r\n const next = node.nextElementSibling.nextElementSibling;\r\n node.parentNode.insertBefore(node, next);\r\n this.objectsList.reorderColumns(node.__column, next?.__column)\r\n changed = true;\r\n }\r\n }\r\n }\r\n const onup = e => {\r\n const movement = (e.pageX - startX);\r\n if (Math.abs(movement) < 10 && !changed) {\r\n if (node.onclick)\r\n node.onclick();\r\n }\r\n startX = null;\r\n node.style.setProperty('--move-x', 0 + 'px');\r\n removeEventListener('mousemove', onmove);\r\n removeEventListener('mouseup', onup);\r\n if(changed) {\r\n this.objectsList.refresh()\r\n }\r\n }\r\n node.addEventListener('mousedown', (e) => {\r\n startX = e.pageX;\r\n addEventListener('mousemove', onmove)\r\n addEventListener('mouseup', onup)\r\n })\r\n }\r\n\r\n loadData(data, start, limit, infiniteScrollEnabled) {\r\n this.refreshSortIndicators();\r\n super.loadData(data, start, limit, infiniteScrollEnabled)\r\n this.setColumnsWidths();\r\n }\r\n\r\n get rowHeight() {\r\n return parseFloat(window.getComputedStyle(this).getPropertyValue('--rowHeight') ?? 31);\r\n }\r\n\r\n generateRow(data) {\r\n let tr = this.body.querySelector(`.tr[data-row=\"${data.id}\"]`);\r\n if (!tr) {\r\n tr = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.tr');\r\n tr.draggable = true;\r\n }\r\n tr.classList.toggle('selected', this.objectsList.selected.has(data.id))\r\n this.fillRowContent(tr, data);\r\n return tr;\r\n }\r\n\r\n fillRowContent(tr, data) {\r\n tr.lastData = data;\r\n while (tr.firstChild) {\r\n tr.removeChild(tr.firstChild)\r\n }\r\n tr.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.icon', {className: this.objectsList.icon}));\r\n for (let column of this.objectsList.visibleColumns) {\r\n let td = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td');\r\n tr.append(td);\r\n if (this.multiEdit && column.dataName) {\r\n tr.dataset.id = data.id;\r\n td.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('input', {\r\n data: {name: column.dataName},\r\n value: data[column.dataName],\r\n onclick: e => e.stopPropagation(),\r\n onchange: () => this.multiEditChanged(tr)\r\n }));\r\n } else {\r\n td.append(column.content?.call(column, data) || data[column.dataName] || '');\r\n }\r\n }\r\n let actionsTd = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.td.actions');\r\n tr.append(actionsTd);\r\n let actions = this.objectsList.generateActions([data], 'row');\r\n if (this.multiEdit && data.__isMultirowEdited) {\r\n actions = [\r\n {\r\n name: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_3__.t)(\"objectList.saveRow\"),\r\n icon: 'icon-save',\r\n command: () => {\r\n this.multiEditChanged(tr, true)\r\n }\r\n }\r\n ]\r\n }\r\n for (let action of actions) {\r\n let actionButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(action.href ? 'a.button' : 'button', {\r\n title: action.name\r\n });\r\n actionsTd.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)(actionButton));\r\n actionButton.classList.add('action-' + (action.action ?? 'view'));\r\n\r\n if (action.href) {\r\n actionButton.href = action.href;\r\n }\r\n if (action.command) {\r\n actionButton.onclick = action.command;\r\n }\r\n if (action.icon) {\r\n actionButton.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('span', {classList: [action.icon]}));\r\n } else {\r\n actionButton.textContent = action.name;\r\n }\r\n }\r\n\r\n\r\n tr.dataset.row = data.id;\r\n tr.oncontextmenu = this.contextMenu.bind(this, tr);\r\n tr.onclick = this.trOnClick.bind(this, data);\r\n tr.ondblclick = this.trOnDblClick.bind(this, data, tr);\r\n tr.onkeydown = this.trOnKeyDown.bind(this, data, tr);\r\n tr.ondragstart = this.trOnDragStart.bind(this, data, tr);\r\n }\r\n\r\n setColumnsWidths() {\r\n const widths = this.calculateColumnsWidths();\r\n for (let tr of this.body?.children ?? []) {\r\n for (let i = 0; i < widths.length; i++) {\r\n if(tr.children[i]) {\r\n tr.children[i].style.width = widths[i] + 'px';\r\n }\r\n }\r\n }\r\n let sum = 0;\r\n for (let i = 0; i < widths.length; i++) {\r\n let node = this.head.children[i];\r\n if (node) {\r\n if (i + 1 < widths.length)\r\n node.style.width = widths[i] + 1 + 'px';\r\n else\r\n node.style.width = widths[i] + 'px';\r\n node.style.left = sum + 'px';\r\n }\r\n sum += widths[i];\r\n }\r\n }\r\n\r\n calculateColumnsWidths() {\r\n let needed = [{base: 30, grow: 0}];\r\n\r\n for (let column of this.objectsList.visibleColumns) {\r\n needed.push({base: column.width || 10, grow: typeof (column.widthGrow) == \"number\" ? column.widthGrow : 1});\r\n }\r\n let actionWidth = Math.ceil(Array.from(this.querySelectorAll('.td.actions')).map(x => {\r\n if (x.lastElementChild)\r\n return x.lastElementChild.getBoundingClientRect().right - x.getBoundingClientRect().left + parseFloat(getComputedStyle(x).paddingRight);\r\n else\r\n return 0;\r\n }).reduce((a, b) => Math.max(a, b), 0));\r\n needed.push({base: actionWidth, grow: 0});\r\n let availableToGrow = this.clientWidth - needed.map(x => x.base).reduce((a, b) => a + b, 0);\r\n let sumGrow = needed.map(x => x.grow).reduce((a, b) => a + b, 0);\r\n if (this.params?.wide) {\r\n return needed.map(x => x.base + x.grow * Math.max(100, availableToGrow / sumGrow));\r\n } else {\r\n if (availableToGrow > 0 && sumGrow > 0) {\r\n return needed.map(x => x.base + x.grow / sumGrow * availableToGrow);\r\n } else {\r\n return needed.map(x => x.base);\r\n }\r\n }\r\n }\r\n\r\n refreshSortIndicators() {\r\n this.head.querySelectorAll('[data-order]').forEach(x => delete x.dataset.order);\r\n if (this.objectsList.sort)\r\n this.head.querySelectorAll(`[data-sort-name=\"${this.objectsList.sort.col}\"]`).forEach(x => x.dataset.order = this.objectsList.sort.desc ? 'desc' : 'asc');\r\n }\r\n\r\n generateTableHtml(trs) {\r\n const thead = '<thead><tr>' + Array.from(this.head.querySelectorAll('.column')).map(x => '<th>' + x.innerHTML + '</th>').join('') + '</tr></thead>';\r\n const tbody = '<tbody>' + trs.map(tr => {\r\n return '<tr>' + Array.from(tr.children).slice(1, -1).map(td => {\r\n return '<td>' + td.innerHTML + '</td>';\r\n }).join('') + '</tr>';\r\n }).join('') + '</tbody>'\r\n return '<table>' + thead + tbody + '</table>';\r\n }\r\n\r\n generateTableTextPlain(trs) {\r\n const head = Array.from(this.head.querySelectorAll('.column')).map(x => x.textContent.replace(/\\r\\n/gm, ' ')).join(\"\\t\")\r\n const body = trs.map(tr => Array.from(tr.children).slice(1).map(x => x.textContent.replace(/\\r\\n/gm, ' ')).join(\"\\t\")).join(\"\\r\\n\")\r\n return head + \"\\r\\n\" + body;\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Math.floor((height - this.head.clientHeight) / this.rowHeight);\r\n }\r\n\r\n forceCopy(rows) {\r\n this.copyForced = new Set(rows.map(x => x.id));\r\n document.execCommand(\"copy\");\r\n setTimeout(() => this.copyForced = null, 100);\r\n }\r\n\r\n startMultiEdit() {\r\n this.multiEdit = true;\r\n }\r\n\r\n multiEditChanged(tr, save = false) {\r\n let data = [...tr.querySelectorAll('[data-name]')].map(x => [x.dataset.name, x.value]);\r\n let dataObj = Object.fromEntries(data);\r\n this.objectsList.multiEditChanged(tr.dataset.id, dataObj, save);\r\n this.fillRowContent(tr, {...tr.lastData, ...dataObj, __isMultirowEdited: true});\r\n this.setColumnsWidths();\r\n }\r\n}\r\n\r\ncustomElements.define('table-view', TableView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/tableView.js?");
310
320
 
311
321
  /***/ }),
312
322
 
package/dist/index.mjs CHANGED
@@ -54,7 +54,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
54
54
  \**********************/
55
55
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
56
56
 
57
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ node: () => (/* binding */ node),\n/* harmony export */ t: () => (/* binding */ t),\n/* harmony export */ translator: () => (/* binding */ translator)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nNode.js */ \"./node_modules/@green-code-studio/internationalization/i18nNode.js\");\n/* harmony import */ var _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nTextValue.js */ \"./node_modules/@green-code-studio/internationalization/i18nTextValue.js\");\n/* harmony import */ var _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @green-code-studio/internationalization/translator.js */ \"./node_modules/@green-code-studio/internationalization/translator.js\");\n/* harmony import */ var _green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @green-code-studio/internationalization/languagesHierarchy.js */ \"./node_modules/@green-code-studio/internationalization/languagesHierarchy.js\");\n\n\n\n\n\nconsole.log(_green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode);\nconst node = {name:\"\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"objectList\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"paginationMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb paginacji\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Pagination mode\")}],[])},{name:\"scrollMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb scrollowania\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Scroll mode\")}],[])},{name:\"tableView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view\")}],[])},{name:\"tableWideView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli (szeroka)\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view (wide)\")}],[])},{name:\"listView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok listy\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"List view\")}],[])},{name:\"calendarView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok kalendarza\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Calendar view\")}],[])},{name:\"timelineView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok osi czasu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Timeline view\")}],[])},{name:\"startMultiEdit\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Rozpocznij edycję wielu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Start multi-edit\")}],[])},{name:\"saveRow\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zapisz wiersz\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Save a row\")}],[])},{name:\"mode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mode\")}],[])},{name:\"view\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"View\")}],[])},{name:\"columnEnabled\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Kolumna widoczna\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column enabled\")}],[])},{name:\"columnName\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nazwa kolumny\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column name\")}],[])},{name:\"columnFilter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filtr\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filter\")}],[])},{name:\"filtersCount\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Liczba filtrów\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filters count\")}],[])},{name:\"clearFilters\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Wyczyść filtry\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Clear filters\")}],[])},{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"inNewTab\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"W nowej karcie\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"In new tab\")}],[])},{name:\"visibilityLimitReached\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Reszta pól została ukryta. Wszystkich pól: \")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"The rest of the fields have been hidden. All fields: \")}],[])},{name:\"sort\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sortuj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sort\")}],[])}])},{name:\"filter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"none\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Brak\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"None\")}],[])},{name:\"equals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Equals\")}],[])},{name:\"notEquals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nie równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Not equals\")}],[])},{name:\"lessThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mniejsze niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Less than\")}],[])},{name:\"greaterThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Większe niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Greater than\")}],[])},{name:\"contains\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zawiera\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Contains\")}],[])},{name:\"oneOf\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Jedno z\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"One of\")}],[])},{name:\"empty\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Puste\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Empty\")}],[])}])}])};\nconst translator=new _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__.Translator(_green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__.LanguagesHierarchy.default, node.node);\nfunction t(q){var x=translator.translate(q);return x?x.toString():'';}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/i18n.xml?");
57
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ node: () => (/* binding */ node),\n/* harmony export */ t: () => (/* binding */ t),\n/* harmony export */ translator: () => (/* binding */ translator)\n/* harmony export */ });\n/* harmony import */ var _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nNode.js */ \"./node_modules/@green-code-studio/internationalization/i18nNode.js\");\n/* harmony import */ var _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @green-code-studio/internationalization/i18nTextValue.js */ \"./node_modules/@green-code-studio/internationalization/i18nTextValue.js\");\n/* harmony import */ var _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @green-code-studio/internationalization/translator.js */ \"./node_modules/@green-code-studio/internationalization/translator.js\");\n/* harmony import */ var _green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @green-code-studio/internationalization/languagesHierarchy.js */ \"./node_modules/@green-code-studio/internationalization/languagesHierarchy.js\");\n\n\n\n\n\nconsole.log(_green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode);\nconst node = {name:\"\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"objectList\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"paginationMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb paginacji\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Pagination mode\")}],[])},{name:\"scrollMode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb scrollowania\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Scroll mode\")}],[])},{name:\"tableView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view\")}],[])},{name:\"tableWideView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok tabeli (szeroka)\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Table view (wide)\")}],[])},{name:\"listView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok listy\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"List view\")}],[])},{name:\"calendarView\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok kalendarza\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Calendar view\")}],[])},{name:\"startMultiEdit\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Rozpocznij edycję wielu\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Start multi-edit\")}],[])},{name:\"saveRow\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zapisz wiersz\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Save a row\")}],[])},{name:\"mode\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Tryb\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mode\")}],[])},{name:\"view\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Widok\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"View\")}],[])},{name:\"columnEnabled\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Kolumna widoczna\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column enabled\")}],[])},{name:\"columnName\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nazwa kolumny\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Column name\")}],[])},{name:\"columnFilter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filtr\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filter\")}],[])},{name:\"filtersCount\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Liczba filtrów\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Filters count\")}],[])},{name:\"clearFilters\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Wyczyść filtry\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Clear filters\")}],[])},{name:\"search\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Szukaj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Search\")}],[])},{name:\"inNewTab\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"W nowej karcie\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"In new tab\")}],[])},{name:\"visibilityLimitReached\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Reszta pól została ukryta. Wszystkich pól: \")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"The rest of the fields have been hidden. All fields: \")}],[])},{name:\"sort\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sortuj\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Sort\")}],[])}])},{name:\"filter\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([],[{name:\"none\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Brak\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"None\")}],[])},{name:\"equals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Equals\")}],[])},{name:\"notEquals\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Nie równa się\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Not equals\")}],[])},{name:\"lessThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Mniejsze niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Less than\")}],[])},{name:\"greaterThan\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Większe niż\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Greater than\")}],[])},{name:\"contains\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Zawiera\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Contains\")}],[])},{name:\"oneOf\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Jedno z\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"One of\")}],[])},{name:\"empty\", node:new _green_code_studio_internationalization_i18nNode_js__WEBPACK_IMPORTED_MODULE_0__.I18nNode([{lang:\"pl\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Puste\")},{lang:\"en\", value: new _green_code_studio_internationalization_i18nTextValue_js__WEBPACK_IMPORTED_MODULE_1__.I18nTextValue(\"Empty\")}],[])}])}])};\nconst translator=new _green_code_studio_internationalization_translator_js__WEBPACK_IMPORTED_MODULE_2__.Translator(_green_code_studio_internationalization_languagesHierarchy_js__WEBPACK_IMPORTED_MODULE_3__.LanguagesHierarchy.default, node.node);\nfunction t(q){var x=translator.translate(q);return x?x.toString():'';}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/i18n.xml?");
58
58
 
59
59
  /***/ }),
60
60
 
@@ -94,7 +94,7 @@ eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(obje
94
94
  \******************************/
95
95
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
96
96
 
97
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(variables){const _0=document.createDocumentFragment();const _1=document.createElement(\"form\");const _2=document.createTextNode(\"\\r\\n \");_1.append(_2);const _3=document.createElement(\"label\");const _4=document.createTextNode(\"\\r\\n \");_3.append(_4);const _5=document.createElement(\"span\");const _6=document.createTextNode(variables[\"t\"](\"objectList.mode\"));_5.append(_6);_3.append(_5);const _7=document.createTextNode(\"\\r\\n \");_3.append(_7);const _8=document.createElement(\"select\");const _9=\"mode\";if(typeof _9==='function')_8[\"class\"]=_9;else if(_9!== undefined&&_9!== null&&_9!== false) _8.setAttribute(\"class\",_9);const _10=document.createTextNode(\"\\r\\n \");_8.append(_10);const _11=document.createElement(\"option\");const _12=\"paginationMode\";if(typeof _12==='function')_11[\"value\"]=_12;else if(_12!== undefined&&_12!== null&&_12!== false) _11.setAttribute(\"value\",_12);const _13=document.createTextNode(variables[\"t\"](\"objectList.paginationMode\"));_11.append(_13);_8.append(_11);const _14=document.createTextNode(\"\\r\\n \");_8.append(_14);const _15=document.createElement(\"option\");const _16=\"scrollMode\";if(typeof _16==='function')_15[\"value\"]=_16;else if(_16!== undefined&&_16!== null&&_16!== false) _15.setAttribute(\"value\",_16);const _17=document.createTextNode(variables[\"t\"](\"objectList.scrollMode\"));_15.append(_17);_8.append(_15);const _18=document.createTextNode(\"\\r\\n \");_8.append(_18);_3.append(_8);const _19=document.createTextNode(\"\\r\\n \");_3.append(_19);_1.append(_3);const _20=document.createTextNode(\"\\r\\n \");_1.append(_20);const _21=document.createElement(\"label\");const _22=document.createTextNode(\"\\r\\n \");_21.append(_22);const _23=document.createElement(\"span\");const _24=document.createTextNode(variables[\"t\"](\"objectList.view\"));_23.append(_24);_21.append(_23);const _25=document.createTextNode(\"\\r\\n \");_21.append(_25);const _26=document.createElement(\"select\");const _27=\"view\";if(typeof _27==='function')_26[\"class\"]=_27;else if(_27!== undefined&&_27!== null&&_27!== false) _26.setAttribute(\"class\",_27);const _28=document.createTextNode(\"\\r\\n \");_26.append(_28);const _29=document.createElement(\"option\");const _30=\"tableView\";if(typeof _30==='function')_29[\"value\"]=_30;else if(_30!== undefined&&_30!== null&&_30!== false) _29.setAttribute(\"value\",_30);const _31=document.createTextNode(variables[\"t\"](\"objectList.tableView\"));_29.append(_31);_26.append(_29);const _32=document.createTextNode(\"\\r\\n \");_26.append(_32);const _33=document.createElement(\"option\");const _34=\"tableWideView\";if(typeof _34==='function')_33[\"value\"]=_34;else if(_34!== undefined&&_34!== null&&_34!== false) _33.setAttribute(\"value\",_34);const _35=document.createTextNode(variables[\"t\"](\"objectList.tableWideView\"));_33.append(_35);_26.append(_33);const _36=document.createTextNode(\"\\r\\n \");_26.append(_36);const _37=document.createElement(\"option\");const _38=\"listView\";if(typeof _38==='function')_37[\"value\"]=_38;else if(_38!== undefined&&_38!== null&&_38!== false) _37.setAttribute(\"value\",_38);const _39=document.createTextNode(variables[\"t\"](\"objectList.listView\"));_37.append(_39);_26.append(_37);const _40=document.createTextNode(\"\\r\\n \");_26.append(_40);let _41=document.createDocumentFragment();if(variables[\"showDatesViews\"]){const _42=document.createTextNode(\"\\r\\n \");_41.append(_42);const _43=document.createElement(\"option\");const _44=\"calendarView\";if(typeof _44==='function')_43[\"value\"]=_44;else if(_44!== undefined&&_44!== null&&_44!== false) _43.setAttribute(\"value\",_44);const _45=document.createTextNode(variables[\"t\"](\"objectList.calendarView\"));_43.append(_45);_41.append(_43);const _46=document.createTextNode(\"\\r\\n \");_41.append(_46);const _47=document.createElement(\"option\");const _48=\"timelineView\";if(typeof _48==='function')_47[\"value\"]=_48;else if(_48!== undefined&&_48!== null&&_48!== false) _47.setAttribute(\"value\",_48);const _49=document.createTextNode(variables[\"t\"](\"objectList.timelineView\"));_47.append(_49);_41.append(_47);const _50=document.createTextNode(\"\\r\\n \");_41.append(_50);}_26.append(_41);const _51=document.createTextNode(\"\\r\\n \");_26.append(_51);_21.append(_26);const _52=document.createTextNode(\"\\r\\n \");_21.append(_52);_1.append(_21);const _53=document.createTextNode(\"\\r\\n \");_1.append(_53);const _54=document.createElement(\"input\");const _55=\"search\";if(typeof _55==='function')_54[\"type\"]=_55;else if(_55!== undefined&&_55!== null&&_55!== false) _54.setAttribute(\"type\",_55);const _56=variables[\"t\"](\"objectList.search\");if(typeof _56==='function')_54[\"placeholder\"]=_56;else if(_56!== undefined&&_56!== null&&_56!== false) _54.setAttribute(\"placeholder\",_56);_1.append(_54);const _57=document.createTextNode(\"\\r\\n \");_1.append(_57);let _58=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"categories\"])){let category = _foreachValue;const _59=document.createTextNode(\"\\r\\n \");_58.append(_59);const _60=document.createElement(\"div\");const _61=\"categoryTableContainer\";if(typeof _61==='function')_60[\"class\"]=_61;else if(_61!== undefined&&_61!== null&&_61!== false) _60.setAttribute(\"class\",_61);const _62=document.createTextNode(\"\\r\\n \");_60.append(_62);const _63=document.createTextNode(category[\"name\"]);_60.append(_63);const _64=document.createTextNode(\"\\r\\n\\r\\n \");_60.append(_64);const _65=document.createElement(\"table\");const _66=document.createTextNode(\"\\r\\n \");_65.append(_66);const _67=document.createElement(\"thead\");const _68=document.createTextNode(\"\\r\\n \");_67.append(_68);const _69=document.createElement(\"tr\");const _70=document.createTextNode(\"\\r\\n \");_69.append(_70);const _71=document.createElement(\"th\");const _72=document.createTextNode(variables[\"t\"](\"objectList.columnEnabled\"));_71.append(_72);_69.append(_71);const _73=document.createTextNode(\"\\r\\n \");_69.append(_73);const _74=document.createElement(\"th\");const _75=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_74.append(_75);_69.append(_74);const _76=document.createTextNode(\"\\r\\n \");_69.append(_76);const _77=document.createElement(\"th\");const _78=document.createTextNode(variables[\"t\"](\"objectList.columnName\"));_77.append(_78);_69.append(_77);const _79=document.createTextNode(\"\\r\\n \");_69.append(_79);const _80=document.createElement(\"th\");const _81=\"filterHeader\";if(typeof _81==='function')_80[\"class\"]=_81;else if(_81!== undefined&&_81!== null&&_81!== false) _80.setAttribute(\"class\",_81);const _82=document.createTextNode(variables[\"t\"](\"objectList.columnFilter\"));_80.append(_82);_69.append(_80);const _83=document.createTextNode(\"\\r\\n \");_69.append(_83);_67.append(_69);const _84=document.createTextNode(\"\\r\\n \");_67.append(_84);_65.append(_67);const _85=document.createTextNode(\"\\r\\n \");_65.append(_85);const _86=document.createElement(\"tbody\");const _87=document.createTextNode(\"\\r\\n\\r\\n \");_86.append(_87);let _88=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(category[\"columns\"])){let column = _foreachValue;const _89=document.createTextNode(\"\\r\\n \");_88.append(_89);const _90=document.createElement(\"tr\");const _91=document.createTextNode(\"\\r\\n \");_90.append(_91);const _92=document.createElement(\"td\");const _93=document.createTextNode(\"\\r\\n \");_92.append(_93);const _94=document.createElement(\"input\");const _95=\"checkbox\";if(typeof _95==='function')_94[\"type\"]=_95;else if(_95!== undefined&&_95!== null&&_95!== false) _94.setAttribute(\"type\",_95);const _96=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _96==='function')_94[\"data-name\"]=_96;else if(_96!== undefined&&_96!== null&&_96!== false) _94.setAttribute(\"data-name\",_96);_92.append(_94);const _97=document.createTextNode(\"\\r\\n \");_92.append(_97);_90.append(_92);const _98=document.createTextNode(\"\\r\\n \");_90.append(_98);const _99=document.createElement(\"td\");const _100=document.createTextNode(\"\\r\\n \");_99.append(_100);let _101=document.createDocumentFragment();if(column[\"sortName\"]){const _102=document.createTextNode(\"\\r\\n \");_101.append(_102);const _103=document.createElement(\"button\");const _104=\"sortBtn\";if(typeof _104==='function')_103[\"class\"]=_104;else if(_104!== undefined&&_104!== null&&_104!== false) _103.setAttribute(\"class\",_104);const _105=column[\"sortName\"];if(typeof _105==='function')_103[\"data-name\"]=_105;else if(_105!== undefined&&_105!== null&&_105!== false) _103.setAttribute(\"data-name\",_105);const _106=\"button\";if(typeof _106==='function')_103[\"type\"]=_106;else if(_106!== undefined&&_106!== null&&_106!== false) _103.setAttribute(\"type\",_106);const _107=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_103.append(_107);_101.append(_103);const _108=document.createTextNode(\"\\r\\n \");_101.append(_108);}_99.append(_101);const _109=document.createTextNode(\"\\r\\n \");_99.append(_109);_90.append(_99);const _110=document.createTextNode(\"\\r\\n \");_90.append(_110);const _111=document.createElement(\"td\");const _112=document.createTextNode(\"\\r\\n \");_111.append(_112);const _113=document.createTextNode(column[\"name\"]);_111.append(_113);const _114=document.createTextNode(\"\\r\\n \");_111.append(_114);_90.append(_111);const _115=document.createTextNode(\"\\r\\n \");_90.append(_115);let _116=document.createDocumentFragment();if(column[\"isFilter\"]){const _117=document.createTextNode(\"\\r\\n \");_116.append(_117);const _118=document.createElement(\"td\");const _119=\"filter\";if(typeof _119==='function')_118[\"class\"]=_119;else if(_119!== undefined&&_119!== null&&_119!== false) _118.setAttribute(\"class\",_119);const _120=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _120==='function')_118[\"data-name\"]=_120;else if(_120!== undefined&&_120!== null&&_120!== false) _118.setAttribute(\"data-name\",_120);const _121=document.createTextNode(\"\\r\\n \");_118.append(_121);_116.append(_118);const _122=document.createTextNode(\"\\r\\n \");_116.append(_122);}_90.append(_116);const _123=document.createTextNode(\"\\r\\n\\r\\n \");_90.append(_123);_88.append(_90);const _124=document.createTextNode(\"\\r\\n \");_88.append(_124);}_86.append(_88);const _125=document.createTextNode(\"\\r\\n \");_86.append(_125);_65.append(_86);const _126=document.createTextNode(\"\\r\\n \");_65.append(_126);_60.append(_65);const _127=document.createTextNode(\"\\r\\n \");_60.append(_127);_58.append(_60);const _128=document.createTextNode(\"\\r\\n \");_58.append(_128);}_1.append(_58);const _129=document.createTextNode(\"\\r\\n \");_1.append(_129);const _130=document.createElement(\"p\");const _131=\"endInformation\";if(typeof _131==='function')_130[\"class\"]=_131;else if(_131!== undefined&&_131!== null&&_131!== false) _130.setAttribute(\"class\",_131);const _132=document.createTextNode(\"\\r\\n\\r\\n \");_130.append(_132);_1.append(_130);const _133=document.createTextNode(\"\\r\\n\");_1.append(_133);_0.append(_1);const _134=document.createTextNode(\"\\r\\n\");_0.append(_134);return _0}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.mpts?");
97
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(variables){const _0=document.createDocumentFragment();const _1=document.createElement(\"form\");const _2=document.createTextNode(\"\\r\\n \");_1.append(_2);const _3=document.createElement(\"label\");const _4=document.createTextNode(\"\\r\\n \");_3.append(_4);const _5=document.createElement(\"span\");const _6=document.createTextNode(variables[\"t\"](\"objectList.mode\"));_5.append(_6);_3.append(_5);const _7=document.createTextNode(\"\\r\\n \");_3.append(_7);const _8=document.createElement(\"select\");const _9=\"mode\";if(typeof _9==='function')_8[\"class\"]=_9;else if(_9!== undefined&&_9!== null&&_9!== false) _8.setAttribute(\"class\",_9);const _10=document.createTextNode(\"\\r\\n \");_8.append(_10);const _11=document.createElement(\"option\");const _12=\"paginationMode\";if(typeof _12==='function')_11[\"value\"]=_12;else if(_12!== undefined&&_12!== null&&_12!== false) _11.setAttribute(\"value\",_12);const _13=document.createTextNode(variables[\"t\"](\"objectList.paginationMode\"));_11.append(_13);_8.append(_11);const _14=document.createTextNode(\"\\r\\n \");_8.append(_14);const _15=document.createElement(\"option\");const _16=\"scrollMode\";if(typeof _16==='function')_15[\"value\"]=_16;else if(_16!== undefined&&_16!== null&&_16!== false) _15.setAttribute(\"value\",_16);const _17=document.createTextNode(variables[\"t\"](\"objectList.scrollMode\"));_15.append(_17);_8.append(_15);const _18=document.createTextNode(\"\\r\\n \");_8.append(_18);_3.append(_8);const _19=document.createTextNode(\"\\r\\n \");_3.append(_19);_1.append(_3);const _20=document.createTextNode(\"\\r\\n \");_1.append(_20);const _21=document.createElement(\"label\");const _22=document.createTextNode(\"\\r\\n \");_21.append(_22);const _23=document.createElement(\"span\");const _24=document.createTextNode(variables[\"t\"](\"objectList.view\"));_23.append(_24);_21.append(_23);const _25=document.createTextNode(\"\\r\\n \");_21.append(_25);const _26=document.createElement(\"select\");const _27=\"view\";if(typeof _27==='function')_26[\"class\"]=_27;else if(_27!== undefined&&_27!== null&&_27!== false) _26.setAttribute(\"class\",_27);const _28=document.createTextNode(\"\\r\\n \");_26.append(_28);const _29=document.createElement(\"option\");const _30=\"tableView\";if(typeof _30==='function')_29[\"value\"]=_30;else if(_30!== undefined&&_30!== null&&_30!== false) _29.setAttribute(\"value\",_30);const _31=document.createTextNode(variables[\"t\"](\"objectList.tableView\"));_29.append(_31);_26.append(_29);const _32=document.createTextNode(\"\\r\\n \");_26.append(_32);const _33=document.createElement(\"option\");const _34=\"tableWideView\";if(typeof _34==='function')_33[\"value\"]=_34;else if(_34!== undefined&&_34!== null&&_34!== false) _33.setAttribute(\"value\",_34);const _35=document.createTextNode(variables[\"t\"](\"objectList.tableWideView\"));_33.append(_35);_26.append(_33);const _36=document.createTextNode(\"\\r\\n \");_26.append(_36);const _37=document.createElement(\"option\");const _38=\"listView\";if(typeof _38==='function')_37[\"value\"]=_38;else if(_38!== undefined&&_38!== null&&_38!== false) _37.setAttribute(\"value\",_38);const _39=document.createTextNode(variables[\"t\"](\"objectList.listView\"));_37.append(_39);_26.append(_37);const _40=document.createTextNode(\"\\r\\n \");_26.append(_40);let _41=document.createDocumentFragment();if(variables[\"showDatesViews\"]){const _42=document.createTextNode(\"\\r\\n \");_41.append(_42);const _43=document.createElement(\"option\");const _44=\"calendarView\";if(typeof _44==='function')_43[\"value\"]=_44;else if(_44!== undefined&&_44!== null&&_44!== false) _43.setAttribute(\"value\",_44);const _45=document.createTextNode(variables[\"t\"](\"objectList.calendarView\"));_43.append(_45);_41.append(_43);const _46=document.createTextNode(\"\\r\\n \");_41.append(_46);}_26.append(_41);const _47=document.createTextNode(\"\\r\\n \");_26.append(_47);_21.append(_26);const _48=document.createTextNode(\"\\r\\n \");_21.append(_48);_1.append(_21);const _49=document.createTextNode(\"\\r\\n \");_1.append(_49);let _50=document.createDocumentFragment();if(variables[\"exports\"]){const _51=document.createTextNode(\"\\r\\n \");_50.append(_51);let _52=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"exports\"])){let x = _foreachValue;const _53=document.createTextNode(\"\\r\\n \");_52.append(_53);const _54=document.createElement(\"button\");const _55=x[\"action\"];if(typeof _55==='function')_54[\"onclick\"]=_55;else if(_55!== undefined&&_55!== null&&_55!== false) _54.setAttribute(\"onclick\",_55);const _56=\"button\";if(typeof _56==='function')_54[\"type\"]=_56;else if(_56!== undefined&&_56!== null&&_56!== false) _54.setAttribute(\"type\",_56);const _57=document.createTextNode(x[\"name\"]);_54.append(_57);_52.append(_54);const _58=document.createTextNode(\"\\r\\n \");_52.append(_58);}_50.append(_52);const _59=document.createTextNode(\"\\r\\n \");_50.append(_59);}_1.append(_50);const _60=document.createTextNode(\"\\r\\n \");_1.append(_60);const _61=document.createElement(\"input\");const _62=\"search\";if(typeof _62==='function')_61[\"type\"]=_62;else if(_62!== undefined&&_62!== null&&_62!== false) _61.setAttribute(\"type\",_62);const _63=variables[\"t\"](\"objectList.search\");if(typeof _63==='function')_61[\"placeholder\"]=_63;else if(_63!== undefined&&_63!== null&&_63!== false) _61.setAttribute(\"placeholder\",_63);_1.append(_61);const _64=document.createTextNode(\"\\r\\n \");_1.append(_64);let _65=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(variables[\"categories\"])){let category = _foreachValue;const _66=document.createTextNode(\"\\r\\n \");_65.append(_66);const _67=document.createElement(\"div\");const _68=\"categoryTableContainer\";if(typeof _68==='function')_67[\"class\"]=_68;else if(_68!== undefined&&_68!== null&&_68!== false) _67.setAttribute(\"class\",_68);const _69=document.createTextNode(\"\\r\\n \");_67.append(_69);const _70=document.createTextNode(category[\"name\"]);_67.append(_70);const _71=document.createTextNode(\"\\r\\n\\r\\n \");_67.append(_71);const _72=document.createElement(\"table\");const _73=document.createTextNode(\"\\r\\n \");_72.append(_73);const _74=document.createElement(\"thead\");const _75=document.createTextNode(\"\\r\\n \");_74.append(_75);const _76=document.createElement(\"tr\");const _77=document.createTextNode(\"\\r\\n \");_76.append(_77);const _78=document.createElement(\"th\");const _79=document.createTextNode(variables[\"t\"](\"objectList.columnEnabled\"));_78.append(_79);_76.append(_78);const _80=document.createTextNode(\"\\r\\n \");_76.append(_80);const _81=document.createElement(\"th\");const _82=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_81.append(_82);_76.append(_81);const _83=document.createTextNode(\"\\r\\n \");_76.append(_83);const _84=document.createElement(\"th\");const _85=document.createTextNode(variables[\"t\"](\"objectList.columnName\"));_84.append(_85);_76.append(_84);const _86=document.createTextNode(\"\\r\\n \");_76.append(_86);const _87=document.createElement(\"th\");const _88=\"filterHeader\";if(typeof _88==='function')_87[\"class\"]=_88;else if(_88!== undefined&&_88!== null&&_88!== false) _87.setAttribute(\"class\",_88);const _89=document.createTextNode(variables[\"t\"](\"objectList.columnFilter\"));_87.append(_89);_76.append(_87);const _90=document.createTextNode(\"\\r\\n \");_76.append(_90);_74.append(_76);const _91=document.createTextNode(\"\\r\\n \");_74.append(_91);_72.append(_74);const _92=document.createTextNode(\"\\r\\n \");_72.append(_92);const _93=document.createElement(\"tbody\");const _94=document.createTextNode(\"\\r\\n\\r\\n \");_93.append(_94);let _95=document.createDocumentFragment();for(let [_foreachKey,_foreachValue] of Object.entries(category[\"columns\"])){let column = _foreachValue;const _96=document.createTextNode(\"\\r\\n \");_95.append(_96);const _97=document.createElement(\"tr\");const _98=document.createTextNode(\"\\r\\n \");_97.append(_98);const _99=document.createElement(\"td\");const _100=document.createTextNode(\"\\r\\n \");_99.append(_100);const _101=document.createElement(\"input\");const _102=\"checkbox\";if(typeof _102==='function')_101[\"type\"]=_102;else if(_102!== undefined&&_102!== null&&_102!== false) _101.setAttribute(\"type\",_102);const _103=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _103==='function')_101[\"data-name\"]=_103;else if(_103!== undefined&&_103!== null&&_103!== false) _101.setAttribute(\"data-name\",_103);_99.append(_101);const _104=document.createTextNode(\"\\r\\n \");_99.append(_104);_97.append(_99);const _105=document.createTextNode(\"\\r\\n \");_97.append(_105);const _106=document.createElement(\"td\");const _107=document.createTextNode(\"\\r\\n \");_106.append(_107);let _108=document.createDocumentFragment();if(column[\"sortName\"]){const _109=document.createTextNode(\"\\r\\n \");_108.append(_109);const _110=document.createElement(\"button\");const _111=\"sortBtn\";if(typeof _111==='function')_110[\"class\"]=_111;else if(_111!== undefined&&_111!== null&&_111!== false) _110.setAttribute(\"class\",_111);const _112=column[\"sortName\"];if(typeof _112==='function')_110[\"data-name\"]=_112;else if(_112!== undefined&&_112!== null&&_112!== false) _110.setAttribute(\"data-name\",_112);const _113=\"button\";if(typeof _113==='function')_110[\"type\"]=_113;else if(_113!== undefined&&_113!== null&&_113!== false) _110.setAttribute(\"type\",_113);const _114=document.createTextNode(variables[\"t\"](\"objectList.sort\"));_110.append(_114);_108.append(_110);const _115=document.createTextNode(\"\\r\\n \");_108.append(_115);}_106.append(_108);const _116=document.createTextNode(\"\\r\\n \");_106.append(_116);_97.append(_106);const _117=document.createTextNode(\"\\r\\n \");_97.append(_117);const _118=document.createElement(\"td\");const _119=document.createTextNode(\"\\r\\n \");_118.append(_119);const _120=document.createTextNode(column[\"name\"]);_118.append(_120);const _121=document.createTextNode(\"\\r\\n \");_118.append(_121);_97.append(_118);const _122=document.createTextNode(\"\\r\\n \");_97.append(_122);let _123=document.createDocumentFragment();if(column[\"isFilter\"]){const _124=document.createTextNode(\"\\r\\n \");_123.append(_124);const _125=document.createElement(\"td\");const _126=\"filter\";if(typeof _126==='function')_125[\"class\"]=_126;else if(_126!== undefined&&_126!== null&&_126!== false) _125.setAttribute(\"class\",_126);const _127=(column[\"dataName\"]??column[\"sortName\"]);if(typeof _127==='function')_125[\"data-name\"]=_127;else if(_127!== undefined&&_127!== null&&_127!== false) _125.setAttribute(\"data-name\",_127);const _128=document.createTextNode(\"\\r\\n \");_125.append(_128);_123.append(_125);const _129=document.createTextNode(\"\\r\\n \");_123.append(_129);}_97.append(_123);const _130=document.createTextNode(\"\\r\\n\\r\\n \");_97.append(_130);_95.append(_97);const _131=document.createTextNode(\"\\r\\n \");_95.append(_131);}_93.append(_95);const _132=document.createTextNode(\"\\r\\n \");_93.append(_132);_72.append(_93);const _133=document.createTextNode(\"\\r\\n \");_72.append(_133);_67.append(_72);const _134=document.createTextNode(\"\\r\\n \");_67.append(_134);_65.append(_67);const _135=document.createTextNode(\"\\r\\n \");_65.append(_135);}_1.append(_65);const _136=document.createTextNode(\"\\r\\n \");_1.append(_136);const _137=document.createElement(\"p\");const _138=\"endInformation\";if(typeof _138==='function')_137[\"class\"]=_138;else if(_138!== undefined&&_138!== null&&_138!== false) _137.setAttribute(\"class\",_138);const _139=document.createTextNode(\"\\r\\n\\r\\n \");_137.append(_139);_1.append(_137);const _140=document.createTextNode(\"\\r\\n\");_1.append(_140);_0.append(_1);const _141=document.createTextNode(\"\\r\\n\");_0.append(_141);return _0}\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.mpts?");
98
98
 
99
99
  /***/ }),
100
100
 
@@ -124,7 +124,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
124
124
  \****************************/
125
125
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
126
126
 
127
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConfigPopup: () => (/* binding */ ConfigPopup)\n/* harmony export */ });\n/* harmony import */ var _ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConfigPopup.mpts */ \"./src/ConfigPopup.mpts\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColumnFilter.js */ \"./src/ColumnFilter.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ConfigPopup extends HTMLElement {\r\n constructor(objectsList) {\r\n super();\r\n this.append((0,_ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\r\n t: _i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t,\r\n showDatesViews: objectsList.dateRowCallback != null,\r\n categories: Object.entries(objectsList.columns.reduce((o, c) => {\r\n o[c.category] = (o[c.category] ?? [])\r\n o[c.category].push(c);\r\n return o;\r\n }, {}))\r\n .map(([category, columns]) => ({name: category == 'undefined' ? '' : category, columns}))\r\n }))\r\n this.querySelector('.mode').onchange = () => {\r\n objectsList.infiniteScrollEnabled = this.querySelector('.mode').value == 'scrollMode'\r\n objectsList.refresh()\r\n }\r\n if (objectsList.infiniteScrollEnabled) {\r\n this.querySelector('.mode').value = 'scrollMode'\r\n }\r\n if (objectsList.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_2__.TableView) {\r\n if (objectsList.insideViewParams?.wide)\r\n this.querySelector('.view').value = 'tableWideView'\r\n else\r\n this.querySelector('.view').value = 'tableView'\r\n } else if (objectsList.insideViewClass == _listView_js__WEBPACK_IMPORTED_MODULE_3__.ListView) {\r\n this.querySelector('.view').value = 'listView'\r\n } else if (objectsList.insideViewClass == _calendarView_js__WEBPACK_IMPORTED_MODULE_5__.CalendarView) {\r\n this.querySelector('.view').value = 'calendarView'\r\n }\r\n\r\n this.querySelector('.view').onchange = () => {\r\n objectsList.insideViewName = this.querySelector('.view').value\r\n objectsList.refresh()\r\n }\r\n // this.addEventListener('blur', () => {\r\n // console.log('blur')\r\n // if (!this.matches(':focus-within, :focus'))\r\n // this.remove();\r\n // })\r\n this.querySelector('select').focus()\r\n console.log('ssss')\r\n for (const checkbox of this.querySelectorAll('table input[type=\"checkbox\"]')) {\r\n checkbox.checked = !objectsList.hiddenColumns.has(checkbox.dataset.name)\r\n checkbox.onchange = () => {\r\n if (checkbox.checked)\r\n objectsList.hiddenColumns.delete(checkbox.dataset.name)\r\n else\r\n objectsList.hiddenColumns.add(checkbox.dataset.name)\r\n\r\n objectsList.refresh()\r\n }\r\n }\r\n for (const sortBtn of this.querySelectorAll('.sortBtn')) {\r\n sortBtn.onclick = () => {\r\n if (objectsList.sort && objectsList.sort.col === sortBtn.dataset.name) {\r\n objectsList.sort.desc = !objectsList.sort.desc;\r\n } else {\r\n objectsList.sort = {col: sortBtn.dataset.name, desc: false};\r\n }\r\n if (!objectsList.infiniteScrollEnabled) {\r\n objectsList.start = 0;\r\n }\r\n objectsList.refresh();\r\n }\r\n }\r\n\r\n for (const filterContainer of this.querySelectorAll('table .filter')) {\r\n console.log('aa')\r\n const filter = new _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__.ColumnFilter();\r\n filterContainer.append(filter)\r\n filter.addEventListener('x-filter', (e) => {\r\n console.log('dddd', e)\r\n objectsList.columnFilters.set(filterContainer.dataset.name, e.detail)\r\n objectsList.refresh()\r\n });\r\n const current = objectsList.columnFilters.get(filterContainer.dataset.name)\r\n if (current) {\r\n console.log('ffff')\r\n filter.set(current)\r\n }\r\n }\r\n\r\n this.querySelector('[type=\"search\"]').oninput = (event) => {\r\n objectsList.configPopupSearch = event.target.value\r\n this.refreshSearch(event.target.value)\r\n }\r\n if (objectsList.configPopupSearch) {\r\n this.querySelector('[type=\"search\"]').value = objectsList.configPopupSearch\r\n this.refreshSearch(objectsList.configPopupSearch)\r\n }\r\n this.tabIndex = 0\r\n setTimeout(() => this.focus(), 1)\r\n setTimeout(() => this.checkFocus(), 100)\r\n this.refreshSearch('')\r\n }\r\n\r\n refreshSearch(value) {\r\n let countedVisible = 0;\r\n const visibilityLimit = 100;\r\n for (const table of this.querySelectorAll('.categoryTableContainer')) {\r\n let anyVisible = false;\r\n for (const row of table.querySelectorAll('tbody tr')) {\r\n const shouldBeVisible = row.children[1].textContent.toLowerCase().includes(value.toLowerCase());\r\n const visible = shouldBeVisible && countedVisible < visibilityLimit;\r\n row.style.display = visible ? '' : 'none'\r\n if (visible) {\r\n anyVisible = true;\r\n }\r\n\r\n countedVisible += shouldBeVisible;\r\n }\r\n table.style.display = anyVisible ? '' : 'none'\r\n }\r\n const endInformation = this.querySelector('.endInformation');\r\n if (countedVisible > visibilityLimit) {\r\n endInformation.style.display = '';\r\n endInformation.textContent = (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t)('objectList.visibilityLimitReached') + ' ' + countedVisible\r\n } else {\r\n endInformation.style.display = 'none';\r\n }\r\n }\r\n\r\n checkFocus() {\r\n console.log('checkFocus')\r\n if (!this.matches(':focus-within, :focus'))\r\n this.remove();\r\n\r\n if (this.parentNode)\r\n setTimeout(() => this.checkFocus(), 100)\r\n }\r\n}\r\n\r\ncustomElements.define('config-popup', ConfigPopup);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.js?");
127
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConfigPopup: () => (/* binding */ ConfigPopup)\n/* harmony export */ });\n/* harmony import */ var _ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConfigPopup.mpts */ \"./src/ConfigPopup.mpts\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ColumnFilter.js */ \"./src/ColumnFilter.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ConfigPopup extends HTMLElement {\r\n constructor(objectsList) {\r\n super();\r\n const exports=objectsList.generateExports?objectsList.generateExports():null;\r\n this.append((0,_ConfigPopup_mpts__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\r\n t: _i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t,\r\n showDatesViews: objectsList.dateRowCallback != null,\r\n exports,\r\n categories: Object.entries(objectsList.columns.reduce((o, c) => {\r\n o[c.category] = (o[c.category] ?? [])\r\n o[c.category].push(c);\r\n return o;\r\n }, {}))\r\n .map(([category, columns]) => ({name: category == 'undefined' ? '' : category, columns}))\r\n }))\r\n this.querySelector('.mode').onchange = () => {\r\n objectsList.infiniteScrollEnabled = this.querySelector('.mode').value == 'scrollMode'\r\n objectsList.refresh()\r\n }\r\n if (objectsList.infiniteScrollEnabled) {\r\n this.querySelector('.mode').value = 'scrollMode'\r\n }\r\n if (objectsList.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_2__.TableView) {\r\n if (objectsList.insideViewParams?.wide)\r\n this.querySelector('.view').value = 'tableWideView'\r\n else\r\n this.querySelector('.view').value = 'tableView'\r\n } else if (objectsList.insideViewClass == _listView_js__WEBPACK_IMPORTED_MODULE_3__.ListView) {\r\n this.querySelector('.view').value = 'listView'\r\n } else if (objectsList.insideViewClass == _calendarView_js__WEBPACK_IMPORTED_MODULE_5__.CalendarView) {\r\n this.querySelector('.view').value = 'calendarView'\r\n }\r\n\r\n this.querySelector('.view').onchange = () => {\r\n objectsList.insideViewName = this.querySelector('.view').value\r\n objectsList.refresh()\r\n }\r\n // this.addEventListener('blur', () => {\r\n // console.log('blur')\r\n // if (!this.matches(':focus-within, :focus'))\r\n // this.remove();\r\n // })\r\n this.querySelector('select').focus()\r\n console.log('ssss')\r\n for (const checkbox of this.querySelectorAll('table input[type=\"checkbox\"]')) {\r\n checkbox.checked = !objectsList.hiddenColumns.has(checkbox.dataset.name)\r\n checkbox.onchange = () => {\r\n if (checkbox.checked)\r\n objectsList.hiddenColumns.delete(checkbox.dataset.name)\r\n else\r\n objectsList.hiddenColumns.add(checkbox.dataset.name)\r\n\r\n objectsList.refresh()\r\n }\r\n }\r\n for (const sortBtn of this.querySelectorAll('.sortBtn')) {\r\n sortBtn.onclick = () => {\r\n if (objectsList.sort && objectsList.sort.col === sortBtn.dataset.name) {\r\n objectsList.sort.desc = !objectsList.sort.desc;\r\n } else {\r\n objectsList.sort = {col: sortBtn.dataset.name, desc: false};\r\n }\r\n if (!objectsList.infiniteScrollEnabled) {\r\n objectsList.start = 0;\r\n }\r\n objectsList.refresh();\r\n }\r\n }\r\n\r\n for (const filterContainer of this.querySelectorAll('table .filter')) {\r\n console.log('aa')\r\n const filter = new _ColumnFilter_js__WEBPACK_IMPORTED_MODULE_4__.ColumnFilter();\r\n filterContainer.append(filter)\r\n filter.addEventListener('x-filter', (e) => {\r\n console.log('dddd', e)\r\n objectsList.columnFilters.set(filterContainer.dataset.name, e.detail)\r\n objectsList.refresh()\r\n });\r\n const current = objectsList.columnFilters.get(filterContainer.dataset.name)\r\n if (current) {\r\n console.log('ffff')\r\n filter.set(current)\r\n }\r\n }\r\n\r\n this.querySelector('[type=\"search\"]').oninput = (event) => {\r\n objectsList.configPopupSearch = event.target.value\r\n this.refreshSearch(event.target.value)\r\n }\r\n if (objectsList.configPopupSearch) {\r\n this.querySelector('[type=\"search\"]').value = objectsList.configPopupSearch\r\n this.refreshSearch(objectsList.configPopupSearch)\r\n }\r\n this.tabIndex = 0\r\n setTimeout(() => this.focus(), 1)\r\n setTimeout(() => this.checkFocus(), 100)\r\n this.refreshSearch('')\r\n }\r\n\r\n refreshSearch(value) {\r\n let countedVisible = 0;\r\n const visibilityLimit = 100;\r\n for (const table of this.querySelectorAll('.categoryTableContainer')) {\r\n let anyVisible = false;\r\n for (const row of table.querySelectorAll('tbody tr')) {\r\n const shouldBeVisible = row.children[1].textContent.toLowerCase().includes(value.toLowerCase());\r\n const visible = shouldBeVisible && countedVisible < visibilityLimit;\r\n row.style.display = visible ? '' : 'none'\r\n if (visible) {\r\n anyVisible = true;\r\n }\r\n\r\n countedVisible += shouldBeVisible;\r\n }\r\n table.style.display = anyVisible ? '' : 'none'\r\n }\r\n const endInformation = this.querySelector('.endInformation');\r\n if (countedVisible > visibilityLimit) {\r\n endInformation.style.display = '';\r\n endInformation.textContent = (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_1__.t)('objectList.visibilityLimitReached') + ' ' + countedVisible\r\n } else {\r\n endInformation.style.display = 'none';\r\n }\r\n }\r\n\r\n checkFocus() {\r\n console.log('checkFocus')\r\n if (!this.matches(':focus-within, :focus'))\r\n this.remove();\r\n\r\n if (this.parentNode)\r\n setTimeout(() => this.checkFocus(), 100)\r\n }\r\n}\r\n\r\ncustomElements.define('config-popup', ConfigPopup);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/ConfigPopup.js?");
128
128
 
129
129
  /***/ }),
130
130
 
@@ -144,7 +144,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
144
144
  \*****************************/
145
145
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
146
146
 
147
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CalendarView: () => (/* binding */ CalendarView)\n/* harmony export */ });\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n\r\n\r\n\r\n\r\nclass CalendarView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_0__.AbstractView {\r\n constructor(objectsList) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgList = this;\r\n }\r\n\r\n init() {\r\n this.body = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body.monthCalendarBody')\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer)\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Number.POSITIVE_INFINITY\r\n }\r\n\r\n loadData(data) {\r\n while(this.body.firstChild){\r\n this.body.removeChild(this.body.firstChild);\r\n }\r\n console.log('data', data)\r\n let startDay = new Date()\r\n if(this.objectsList.date){\r\n startDay = new Date(this.objectsList.date)\r\n }\r\n startDay.setDate(1);\r\n\r\n startDay.setDate(startDay.getDate() - startDay.getDay() + 1);\r\n for (let i = 0; i < 7 * 6; i++) {\r\n const day = new Date(startDay);\r\n day.setDate(startDay.getDate() + i);\r\n const dayElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.day', {\r\n data: {date: day.toISOString().substring(0, 10)},\r\n text: day.toISOString().substring(0, 10)\r\n })\r\n this.body.append(dayElement)\r\n for (let item of data.rows.filter(r => this.objectsList.dateRowCallback(r).toISOString().substring(0, 10) == day.toISOString().substring(0, 10))) {\r\n const itemElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.item', {text: item})\r\n dayElement.append(itemElement)\r\n itemElement.oncontextmenu = this.contextMenu.bind(this, itemElement);\r\n itemElement.onclick = this.trOnClick.bind(this, item);\r\n itemElement.ondblclick = this.trOnDblClick.bind(this, item, itemElement);\r\n itemElement.onkeydown = this.trOnKeyDown.bind(this, item, itemElement);\r\n itemElement.ondragstart = this.trOnDragStart.bind(this, item, itemElement);\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define('calendar-view', CalendarView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/calendarView.js?");
147
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CalendarView: () => (/* binding */ CalendarView)\n/* harmony export */ });\n/* harmony import */ var _abstractView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abstractView.js */ \"./src/abstractView.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n\r\n\r\n\r\n\r\nclass CalendarView extends _abstractView_js__WEBPACK_IMPORTED_MODULE_0__.AbstractView {\r\n constructor(objectsList) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgList = this;\r\n }\r\n\r\n init() {\r\n this.body = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.body.monthCalendarBody')\r\n const bodyContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.bodyContainer')\r\n bodyContainer.append(this.body)\r\n this.append(bodyContainer)\r\n this.addEventListener('scroll', this.onScroll.bind(this));\r\n }\r\n\r\n calcMaxVisibleItems(height) {\r\n return Number.POSITIVE_INFINITY\r\n }\r\n\r\n loadData(data) {\r\n while(this.body.firstChild){\r\n this.body.removeChild(this.body.firstChild);\r\n }\r\n console.log('data', data)\r\n let startDay = new Date()\r\n if(this.objectsList.date){\r\n startDay = new Date(this.objectsList.date)\r\n }\r\n startDay.setDate(1);\r\n\r\n startDay.setDate(startDay.getDate() - startDay.getDay() + 1);\r\n for (let i = 0; i < 7 * 6; i++) {\r\n const day = new Date(startDay);\r\n day.setDate(startDay.getDate() + i);\r\n const dayElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.day', {\r\n data: {date: day.toISOString().substring(0, 10)},\r\n text: day.toISOString().substring(0, 10)\r\n })\r\n this.body.append(dayElement)\r\n for (let item of data.rows.filter(r => this.objectsList.dateRowCallback(r).toISOString().substring(0, 10) == day.toISOString().substring(0, 10))) {\r\n const itemElement = (0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.item')\r\n itemElement.append(this.objectsList.calendarRowCallback(item))\r\n dayElement.append(itemElement)\r\n itemElement.oncontextmenu = this.contextMenu.bind(this, itemElement);\r\n itemElement.onclick = this.trOnClick.bind(this, item);\r\n itemElement.ondblclick = this.trOnDblClick.bind(this, item, itemElement);\r\n itemElement.onkeydown = this.trOnKeyDown.bind(this, item, itemElement);\r\n itemElement.ondragstart = this.trOnDragStart.bind(this, item, itemElement);\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements.define('calendar-view', CalendarView);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/calendarView.js?");
148
148
 
149
149
  /***/ }),
150
150
 
@@ -184,7 +184,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
184
184
  \****************************/
185
185
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
186
186
 
187
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ObjectsList: () => (/* binding */ ObjectsList)\n/* harmony export */ });\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./paginationButtons.js */ \"./src/paginationButtons.js\");\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/concurencyLimiter.js */ \"./src/utils/concurencyLimiter.js\");\n/* harmony import */ var _idsSet_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./idsSet.js */ \"./src/idsSet.js\");\n/* harmony import */ var _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ConfigPopup.js */ \"./src/ConfigPopup.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ObjectsList extends HTMLElement {\r\n constructor(datasource) {\r\n super();\r\n this.columns = [];\r\n this.columnsReordered = [];\r\n this.columnsReorderedChanged = false;\r\n this.hiddenColumns = new Set()\r\n this.columnFilters = new Map();\r\n this.generateActions = () => [];\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.icon = 'icon-document';\r\n this.loadConcurencyLimiter = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.loadConcurencyLimiterTotal = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.datasource = datasource;\r\n this.datasource.onchange = () => this.refresh();\r\n this.start = 0;\r\n this.limit = 10\r\n this.total = 0;\r\n this.selected = new _idsSet_js__WEBPACK_IMPORTED_MODULE_6__.IdsSet();\r\n this.selectedMain = null;\r\n this.dataById = new Map();\r\n this.initFoot();\r\n this.addEventListener('contextmenu', e => this.showGlobalContextMenu(e));\r\n this.resizeBinded = this.resize.bind(this);\r\n this.popstateBinded = this.readUrl.bind(this);\r\n this.readUrl()\r\n this.addEventListener('keydown', e => this.onkeydown(e));\r\n this.infiniteScrollEnabled = false;\r\n }\r\n\r\n connectedCallback() {\r\n addEventListener('resize', this.resizeBinded);\r\n addEventListener(\"popstate\", this.popstateBinded)\r\n if (this.paramsInLocalStorage) {\r\n this.applyParams(JSON.parse(localStorage['objectList_params_' + this.paramsInLocalStorage] ?? 'null'));\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n removeEventListener('resize', this.resizeBinded);\r\n removeEventListener(\"popstate\", this.popstateBinded)\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n set columns(value) {\r\n this._columns = value;\r\n this.columnsReordered = value;\r\n this.columnsReorderedChanged = false;\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columnsReordered.filter(x => !this.hiddenColumns.has(x.dataName ?? x.sortName))\r\n }\r\n\r\n refreshLimit() {\r\n this.limit = this.insideView.calcMaxVisibleItems(this.clientHeight - this.foot.clientHeight - 2);\r\n if (this.limit < 1) this.limit = 1;\r\n if (this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView) {\r\n this.start = 0;\r\n this.limit = 1000000;\r\n } else if (this.infiniteScrollEnabled) {\r\n this.limit = Math.ceil(this.limit / 20) * 20 + 40;\r\n } else {\r\n this.start = Math.floor(Math.min(this.total, this.start) / this.limit) * this.limit;\r\n }\r\n }\r\n\r\n async refresh() {\r\n console.log('refresh')\r\n this.classList.toggle('infiniteScrollEnabled', this.infiniteScrollEnabled);\r\n\r\n if (!this.insideView || !(this.insideView instanceof this.insideViewClass))\r\n this.initInsideView();\r\n else if (this.insideView.refreshHeader) {\r\n this.insideView.params = this.insideViewParams\r\n this.insideView.refreshHeader()\r\n }\r\n\r\n this.refreshLimit();\r\n const refreshSymbol = Symbol();\r\n this.lastRefreshSymbol = refreshSymbol;\r\n this.lastRefreshSymbolTotal = refreshSymbol;\r\n this.pagination.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? 'none' : '';\r\n this.dateInput.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? '' : 'none';\r\n if (this.asyncTotal) {\r\n const promise1 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n const data = await this.datasource.getRows(this);\r\n\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n const promise2 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n let dataTotal = this.datasource.getTotal(this);\r\n const x = await dataTotal\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n this.total = x.total;\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n await promise1;\r\n await promise2;\r\n } else {\r\n await this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n let data = await this.datasource.get(this);\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.total = data.total;\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n }\r\n\r\n\r\n while (this.filterShortContainer.firstChild) {\r\n this.filterShortContainer.firstChild.remove()\r\n }\r\n if (this.columnFilters.size) {\r\n this.filterShortContainer.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('span', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.filtersCount') + ': ' + this.columnFilters.size}));\r\n const clearButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.clearFilters')});\r\n clearButton.onclick = () => {\r\n this.columnFilters.clear();\r\n this.refresh();\r\n }\r\n this.filterShortContainer.append(clearButton);\r\n }\r\n if (this.paramsInUrl) {\r\n this.setUrl();\r\n }\r\n if (this.paramsInLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n setUrl() {\r\n const query = new URLSearchParams(document.location.search)\r\n const prev = Object.fromEntries([...query]);\r\n const next = new URLSearchParams(this.serializeParams(prev))\r\n console.log('dddddcccc')\r\n console.log(query)\r\n if (prev.toString() !== next.toString()) {\r\n const url = new URL(document.location);\r\n url.search = next.toString();\r\n history.pushState(null, '', url.toString());\r\n }\r\n }\r\n\r\n setLocalStorage() {\r\n const prev = JSON.parse(localStorage.getItem('objectList_params_' + this.paramsInLocalStorage));\r\n const next = this.serializeParams(prev);\r\n if (JSON.stringify(prev) !== JSON.stringify(next)) {\r\n localStorage.setItem('objectList_params_' + this.paramsInLocalStorage, JSON.stringify(next));\r\n }\r\n }\r\n\r\n serializeParams(old = {}) {\r\n old = old || {};\r\n let ret = {};\r\n let changed = false;\r\n var visibleColumns = this.visibleColumns.map(x => x.dataName ?? x.sortName).join();\r\n if (old.visibleColumns || this.hiddenColumns.size || this.columnsReorderedChanged) {\r\n ret.visibleColumns = visibleColumns;\r\n changed = true;\r\n\r\n }\r\n if (old.sort || this.sort?.col) {\r\n ret.sort = this.sort?.col;\r\n\r\n }\r\n if (old.sortDesc == 'true' || this.sort?.desc) {\r\n ret.sortDesc = this.sort?.desc ? 'true' : 'false';\r\n\r\n\r\n }\r\n if (old.columnFilters || this.columnFilters) {\r\n ret.columnFilters = JSON.stringify(Array.from(this.columnFilters.entries()));\r\n\r\n }\r\n\r\n if (old.insideView || this.insideViewName) {\r\n ret.insideView = this.insideViewName;\r\n }\r\n return ret;\r\n }\r\n\r\n get insideViewName() {\r\n if (this.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView) {\r\n if (this.insideViewParams?.wide)\r\n return 'tableWideView';\r\n else\r\n return 'tableView'\r\n } else {\r\n return 'listView'\r\n }\r\n }\r\n\r\n set insideViewName(value) {\r\n if (this.insideViewName == value) return;\r\n if (value == 'tableView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: false}\r\n } else if (value == 'tableWideView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: true}\r\n } else if (value == 'listView') {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView\r\n this.insideViewParams = {}\r\n } else if (value == 'calendarView') {\r\n this.insideViewClass = _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView\r\n this.insideViewParams = {}\r\n } else if (value == 'timelineView') {\r\n this.insideViewClass = TimelineView\r\n this.insideViewParams = {}\r\n }\r\n }\r\n\r\n readUrl() {\r\n\r\n const query = new URLSearchParams(document.location.search)\r\n const params = Object.fromEntries([...query]);\r\n this.applyParams(params)\r\n }\r\n\r\n applyParams(params) {\r\n if (params?.visibleColumns) {\r\n const splitted = params.visibleColumns.split(',');\r\n this.hiddenColumns = new Set(this.columns.map(x => x.dataName ?? x.sortName));\r\n for (const name of splitted) {\r\n this.hiddenColumns.delete(name);\r\n }\r\n for (let i = splitted.length - 1; i > 0; i--) {\r\n const column = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i - 1]);\r\n const next = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i]);\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n this.columnsReorderedChanged = true;\r\n }\r\n }\r\n }\r\n if (params?.sort) {\r\n this.sort = {\r\n col: params.sort,\r\n desc: params.sortDesc === 'true'\r\n };\r\n }\r\n if (params?.columnFilters) {\r\n this.columnFilters = new Map(JSON.parse(params.columnFilters));\r\n }\r\n if (params?.insideView) {\r\n this.insideViewName = params.insideView;\r\n }\r\n }\r\n\r\n initInsideView() {\r\n if (this.insideView) {\r\n this.insideView.remove();\r\n }\r\n this.insideView = new this.insideViewClass(this, this.insideViewParams);\r\n this.insertBefore(this.insideView, this.foot);\r\n this.insideView.refresh = () => this.refresh();\r\n this.insideView.onPaginationChanged = (start, limit) => {\r\n if (this.start != start) {\r\n this.start = start;\r\n //this.limit=limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n fillDataById(rows) {\r\n for (let row of rows) {\r\n this.dataById.set(parseInt(row.id), row);\r\n }\r\n }\r\n\r\n getSelectedData() {\r\n let data = Array.from(this.dataById).filter(([id, row]) => this.selected.has(id)).map(([id, row]) => row);\r\n if (data.length > 0) return data;\r\n else if (this.dataById[this.selectedMain])\r\n return [this.dataById[this.selectedMain]]\r\n else return [];\r\n }\r\n\r\n initFoot() {\r\n this.foot = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.foot');\r\n this.append(this.foot);\r\n let menuButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button.menuButton span.icon-settings');\r\n this.foot.append(menuButton)\r\n menuButton.onclick = e => this.showConfigPopup();\r\n this.pagination = new _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__.PaginationButtons();\r\n this.pagination.onpageclick = (page) => {\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n this.foot.append(this.pagination);\r\n this.dateInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {type: 'month', value: new Date().toISOString().substring(0, 7)});\r\n this.dateInput.onchange = date => {\r\n this.start = 0;\r\n this.date = this.dateInput.value;\r\n this.refresh();\r\n }\r\n this.foot.append(this.dateInput);\r\n this.filterShortContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.filterShortContainer');\r\n this.foot.append(this.filterShortContainer);\r\n this.searchForm = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('form', {className: 'search'});\r\n this.foot.append(this.searchForm);\r\n this.searchForm.onsubmit = e => e.preventDefault();\r\n const searchInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {\r\n name: 'search',\r\n type: 'search',\r\n placeholder: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.search')\r\n });\r\n this.searchForm.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)(searchInput));\r\n searchInput.oninput = e => {\r\n this.start = 0;\r\n this.refresh();\r\n }\r\n\r\n }\r\n\r\n get search() {\r\n if (!this.foot) return '';\r\n const searchForm = this.foot.querySelector('.search');\r\n if (!searchForm) return '';\r\n return searchForm.search.value;\r\n }\r\n\r\n showGlobalContextMenu(e) {\r\n let elements = [{\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.paginationMode'),\r\n icon: 'icon-pagination',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = false;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.scrollMode'),\r\n icon: 'icon-scroll',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = true;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.tableView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.listView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView;\r\n this.refresh();\r\n }\r\n }];\r\n if (this.allowTableEdit) {\r\n elements.push({\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.startMultiEdit'),\r\n icon: 'icon-edit',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n this.insideView.startMultiEdit();\r\n }\r\n });\r\n }\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__.ContextMenu.openContextMenu(e, elements);\r\n }\r\n\r\n resize() {\r\n let limit = this.limit;\r\n this.refreshLimit();\r\n if (limit != this.limit) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n multiEditChanged(id, data, save = false) {\r\n this.datasource.multiEditChanged(id, data, save);\r\n }\r\n\r\n showConfigPopup() {\r\n if (this.querySelector('config-popup')) {\r\n this.querySelector('config-popup').remove()\r\n } else {\r\n const popup = new _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__.ConfigPopup(this)\r\n this.append(popup)\r\n }\r\n }\r\n\r\n gotoUrl(url) {\r\n window.location.href = url;\r\n }\r\n\r\n onkeydown(e) {\r\n if (e.ctrlKey) {\r\n if (e.key == 'ArrowLeft' || e.key == 'ArrowRight') {\r\n let page = Math.floor(this.start / this.limit);\r\n page += (e.key == 'ArrowLeft' ? -1 : 1);\r\n if (page < 0) page = 0;\r\n else if (page > 0 && page > Math.ceil(this.total / this.limit) - 1) page = Math.ceil(this.total / this.limit) - 1;\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n\r\n reorderColumns(column, next) {\r\n console.log('reorderColumns')\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n\r\n this.columnsReorderedChanged = true;\r\n if (this.insideView.setColumnsWidths) {\r\n this.insideView.setColumnsWidths()\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements\r\n .define(\r\n 'data-view'\r\n ,\r\n ObjectsList\r\n )\r\n;\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/objectsList.js?");
187
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ObjectsList: () => (/* binding */ ObjectsList)\n/* harmony export */ });\n/* harmony import */ var _tableView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tableView.js */ \"./src/tableView.js\");\n/* harmony import */ var _listView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./listView.js */ \"./src/listView.js\");\n/* harmony import */ var _i18n_xml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./i18n.xml */ \"./src/i18n.xml\");\n/* harmony import */ var _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./paginationButtons.js */ \"./src/paginationButtons.js\");\n/* harmony import */ var _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @green-code-studio/context-menu/dist/index.mjs */ \"./node_modules/@green-code-studio/context-menu/dist/index.mjs\");\n/* harmony import */ var _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/concurencyLimiter.js */ \"./src/utils/concurencyLimiter.js\");\n/* harmony import */ var _idsSet_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./idsSet.js */ \"./src/idsSet.js\");\n/* harmony import */ var _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ConfigPopup.js */ \"./src/ConfigPopup.js\");\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n/* harmony import */ var _calendarView_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./calendarView.js */ \"./src/calendarView.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ObjectsList extends HTMLElement {\r\n constructor(datasource) {\r\n super();\r\n this.columns = [];\r\n this.columnsReordered = [];\r\n this.columnsReorderedChanged = false;\r\n this.hiddenColumns = new Set()\r\n this.columnFilters = new Map();\r\n this.generateActions = () => [];\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.icon = 'icon-document';\r\n this.loadConcurencyLimiter = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.loadConcurencyLimiterTotal = new _utils_concurencyLimiter_js__WEBPACK_IMPORTED_MODULE_5__.ConcurencyLimiter();\r\n this.datasource = datasource;\r\n this.datasource.onchange = () => this.refresh();\r\n this.start = 0;\r\n this.limit = 10\r\n this.total = 0;\r\n this.selected = new _idsSet_js__WEBPACK_IMPORTED_MODULE_6__.IdsSet();\r\n this.selectedMain = null;\r\n this.dataById = new Map();\r\n this.initFoot();\r\n this.addEventListener('contextmenu', e => this.showGlobalContextMenu(e));\r\n this.resizeBinded = this.resize.bind(this);\r\n this.popstateBinded = this.readUrl.bind(this);\r\n this.readUrl()\r\n this.addEventListener('keydown', e => this.onkeydown(e));\r\n this.infiniteScrollEnabled = false;\r\n }\r\n\r\n connectedCallback() {\r\n addEventListener('resize', this.resizeBinded);\r\n addEventListener(\"popstate\", this.popstateBinded)\r\n if (this.paramsInLocalStorage) {\r\n this.applyParams(JSON.parse(localStorage['objectList_params_' + this.paramsInLocalStorage] ?? 'null'));\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n removeEventListener('resize', this.resizeBinded);\r\n removeEventListener(\"popstate\", this.popstateBinded)\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n set columns(value) {\r\n this._columns = value;\r\n this.columnsReordered = value;\r\n this.columnsReorderedChanged = false;\r\n }\r\n\r\n get visibleColumns() {\r\n return this.columnsReordered.filter(x => !this.hiddenColumns.has(x.dataName ?? x.sortName))\r\n }\r\n\r\n refreshLimit() {\r\n this.limit = this.insideView.calcMaxVisibleItems(this.clientHeight - this.foot.clientHeight - 2);\r\n if (this.limit < 1) this.limit = 1;\r\n if (this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView) {\r\n this.start = 0;\r\n this.limit = 1000000;\r\n } else if (this.infiniteScrollEnabled) {\r\n this.limit = Math.ceil(this.limit / 20) * 20 + 40;\r\n } else {\r\n this.start = Math.floor(Math.min(this.total, this.start) / this.limit) * this.limit;\r\n }\r\n }\r\n\r\n async refresh() {\r\n console.log('refresh')\r\n this.classList.toggle('infiniteScrollEnabled', this.infiniteScrollEnabled);\r\n\r\n if (!this.insideView || !(this.insideView instanceof this.insideViewClass))\r\n this.initInsideView();\r\n else if (this.insideView.refreshHeader) {\r\n this.insideView.params = this.insideViewParams\r\n this.insideView.refreshHeader()\r\n }\r\n\r\n this.refreshLimit();\r\n const refreshSymbol = Symbol();\r\n this.lastRefreshSymbol = refreshSymbol;\r\n this.lastRefreshSymbolTotal = refreshSymbol;\r\n this.pagination.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? 'none' : '';\r\n this.dateInput.style.display = this.insideView instanceof _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView ? '' : 'none';\r\n if (this.asyncTotal) {\r\n const promise1 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n const data = await this.datasource.getRows(this);\r\n\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n const promise2 = this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n let dataTotal = this.datasource.getTotal(this);\r\n const x = await dataTotal\r\n if (this.lastRefreshSymbolTotal != refreshSymbol) return;\r\n this.total = x.total;\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n\r\n await promise1;\r\n await promise2;\r\n } else {\r\n await this.loadConcurencyLimiter.run(async () => {\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n let data = await this.datasource.get(this);\r\n if (this.lastRefreshSymbol != refreshSymbol) return;\r\n\r\n this.currentRows = data.rows;\r\n this.fillDataById(data.rows);\r\n this.total = data.total;\r\n this.insideView.loadData(data, this.start, this.limit, this.infiniteScrollEnabled);\r\n this.pagination.currentPage = Math.floor(this.start / this.limit);\r\n this.pagination.totalPages = Math.ceil(this.total / this.limit);\r\n this.pagination.render();\r\n });\r\n }\r\n\r\n\r\n while (this.filterShortContainer.firstChild) {\r\n this.filterShortContainer.firstChild.remove()\r\n }\r\n if (this.columnFilters.size) {\r\n this.filterShortContainer.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('span', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.filtersCount') + ': ' + this.columnFilters.size}));\r\n const clearButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button', {text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.clearFilters')});\r\n clearButton.onclick = () => {\r\n this.columnFilters.clear();\r\n this.refresh();\r\n }\r\n this.filterShortContainer.append(clearButton);\r\n }\r\n if (this.paramsInUrl) {\r\n this.setUrl();\r\n }\r\n if (this.paramsInLocalStorage) {\r\n this.setLocalStorage();\r\n }\r\n }\r\n\r\n setUrl() {\r\n const query = new URLSearchParams(document.location.search)\r\n const prev = Object.fromEntries([...query]);\r\n const next = new URLSearchParams(this.serializeParams(prev))\r\n console.log('dddddcccc')\r\n console.log(query)\r\n if (prev.toString() !== next.toString()) {\r\n const url = new URL(document.location);\r\n url.search = next.toString();\r\n history.pushState(null, '', url.toString());\r\n }\r\n }\r\n\r\n setLocalStorage() {\r\n const prev = JSON.parse(localStorage.getItem('objectList_params_' + this.paramsInLocalStorage));\r\n const next = this.serializeParams(prev);\r\n if (JSON.stringify(prev) !== JSON.stringify(next)) {\r\n localStorage.setItem('objectList_params_' + this.paramsInLocalStorage, JSON.stringify(next));\r\n }\r\n }\r\n\r\n serializeParams(old = {}) {\r\n old = old || {};\r\n let ret = {};\r\n let changed = false;\r\n var visibleColumns = this.visibleColumns.map(x => x.dataName ?? x.sortName).join();\r\n if (old.visibleColumns || this.hiddenColumns.size || this.columnsReorderedChanged) {\r\n ret.visibleColumns = visibleColumns;\r\n changed = true;\r\n\r\n }\r\n if (old.sort || this.sort?.col) {\r\n ret.sort = this.sort?.col;\r\n\r\n }\r\n if (old.sortDesc == 'true' || this.sort?.desc) {\r\n ret.sortDesc = this.sort?.desc ? 'true' : 'false';\r\n\r\n\r\n }\r\n if (old.columnFilters || this.columnFilters) {\r\n ret.columnFilters = JSON.stringify(Array.from(this.columnFilters.entries()));\r\n\r\n }\r\n\r\n if (old.insideView || this.insideViewName) {\r\n ret.insideView = this.insideViewName;\r\n }\r\n return ret;\r\n }\r\n\r\n get insideViewName() {\r\n if (this.insideViewClass == _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView) {\r\n if (this.insideViewParams?.wide)\r\n return 'tableWideView';\r\n else\r\n return 'tableView'\r\n } else {\r\n return 'listView'\r\n }\r\n }\r\n\r\n set insideViewName(value) {\r\n if (this.insideViewName == value) return;\r\n if (value == 'tableView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: false}\r\n } else if (value == 'tableWideView') {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView\r\n this.insideViewParams = {wide: true}\r\n } else if (value == 'listView') {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView\r\n this.insideViewParams = {}\r\n } else if (value == 'calendarView') {\r\n this.insideViewClass = _calendarView_js__WEBPACK_IMPORTED_MODULE_9__.CalendarView\r\n this.insideViewParams = {}\r\n }\r\n }\r\n\r\n readUrl() {\r\n\r\n const query = new URLSearchParams(document.location.search)\r\n const params = Object.fromEntries([...query]);\r\n this.applyParams(params)\r\n }\r\n\r\n applyParams(params) {\r\n if (params?.visibleColumns) {\r\n const splitted = params.visibleColumns.split(',');\r\n this.hiddenColumns = new Set(this.columns.map(x => x.dataName ?? x.sortName));\r\n for (const name of splitted) {\r\n this.hiddenColumns.delete(name);\r\n }\r\n for (let i = splitted.length - 1; i > 0; i--) {\r\n const column = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i - 1]);\r\n const next = this.columnsReordered.find(x => (x.dataName ?? x.sortName) == splitted[i]);\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n this.columnsReorderedChanged = true;\r\n }\r\n }\r\n }\r\n if (params?.sort) {\r\n this.sort = {\r\n col: params.sort,\r\n desc: params.sortDesc === 'true'\r\n };\r\n }\r\n if (params?.columnFilters) {\r\n this.columnFilters = new Map(JSON.parse(params.columnFilters));\r\n }\r\n if (params?.insideView) {\r\n this.insideViewName = params.insideView;\r\n }\r\n }\r\n\r\n initInsideView() {\r\n if (this.insideView) {\r\n this.insideView.remove();\r\n }\r\n this.insideView = new this.insideViewClass(this, this.insideViewParams);\r\n this.insertBefore(this.insideView, this.foot);\r\n this.insideView.refresh = () => this.refresh();\r\n this.insideView.onPaginationChanged = (start, limit) => {\r\n if (this.start != start) {\r\n this.start = start;\r\n //this.limit=limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n fillDataById(rows) {\r\n for (let row of rows) {\r\n this.dataById.set(parseInt(row.id), row);\r\n }\r\n }\r\n\r\n getSelectedData() {\r\n let data = Array.from(this.dataById).filter(([id, row]) => this.selected.has(id)).map(([id, row]) => row);\r\n if (data.length > 0) return data;\r\n else if (this.dataById[this.selectedMain])\r\n return [this.dataById[this.selectedMain]]\r\n else return [];\r\n }\r\n\r\n initFoot() {\r\n this.foot = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.foot');\r\n this.append(this.foot);\r\n let menuButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('button.menuButton span.icon-settings');\r\n this.foot.append(menuButton)\r\n menuButton.onclick = e => this.showConfigPopup();\r\n this.pagination = new _paginationButtons_js__WEBPACK_IMPORTED_MODULE_3__.PaginationButtons();\r\n this.pagination.onpageclick = (page) => {\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n this.foot.append(this.pagination);\r\n this.dateInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {type: 'month', value: new Date().toISOString().substring(0, 7)});\r\n this.dateInput.onchange = date => {\r\n this.start = 0;\r\n this.date = this.dateInput.value;\r\n this.refresh();\r\n }\r\n this.foot.append(this.dateInput);\r\n this.filterShortContainer = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('.filterShortContainer');\r\n this.foot.append(this.filterShortContainer);\r\n this.searchForm = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('form', {className: 'search'});\r\n this.foot.append(this.searchForm);\r\n this.searchForm.onsubmit = e => e.preventDefault();\r\n const searchInput = (0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)('input', {\r\n name: 'search',\r\n type: 'search',\r\n placeholder: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.search')\r\n });\r\n this.searchForm.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_8__.create)(searchInput));\r\n searchInput.oninput = e => {\r\n this.start = 0;\r\n this.refresh();\r\n }\r\n\r\n }\r\n\r\n get search() {\r\n if (!this.foot) return '';\r\n const searchForm = this.foot.querySelector('.search');\r\n if (!searchForm) return '';\r\n return searchForm.search.value;\r\n }\r\n\r\n showGlobalContextMenu(e) {\r\n let elements = [{\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.paginationMode'),\r\n icon: 'icon-pagination',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = false;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.scrollMode'),\r\n icon: 'icon-scroll',\r\n onclick: () => {\r\n this.infiniteScrollEnabled = true;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.tableView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n }\r\n }, {\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.listView'),\r\n icon: 'icon-table',\r\n onclick: () => {\r\n this.insideViewClass = _listView_js__WEBPACK_IMPORTED_MODULE_1__.ListView;\r\n this.refresh();\r\n }\r\n }];\r\n if (this.allowTableEdit) {\r\n elements.push({\r\n text: (0,_i18n_xml__WEBPACK_IMPORTED_MODULE_2__.t)('objectList.startMultiEdit'),\r\n icon: 'icon-edit',\r\n onclick: () => {\r\n this.insideViewClass = _tableView_js__WEBPACK_IMPORTED_MODULE_0__.TableView;\r\n this.refresh();\r\n this.insideView.startMultiEdit();\r\n }\r\n });\r\n }\r\n _green_code_studio_context_menu_dist_index_mjs__WEBPACK_IMPORTED_MODULE_4__.ContextMenu.openContextMenu(e, elements);\r\n }\r\n\r\n resize() {\r\n let limit = this.limit;\r\n this.refreshLimit();\r\n if (limit != this.limit) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n multiEditChanged(id, data, save = false) {\r\n this.datasource.multiEditChanged(id, data, save);\r\n }\r\n\r\n showConfigPopup() {\r\n if (this.querySelector('config-popup')) {\r\n this.querySelector('config-popup').remove()\r\n } else {\r\n const popup = new _ConfigPopup_js__WEBPACK_IMPORTED_MODULE_7__.ConfigPopup(this)\r\n this.append(popup)\r\n }\r\n }\r\n\r\n gotoUrl(url) {\r\n window.location.href = url;\r\n }\r\n\r\n onkeydown(e) {\r\n if (e.ctrlKey) {\r\n if (e.key == 'ArrowLeft' || e.key == 'ArrowRight') {\r\n let page = Math.floor(this.start / this.limit);\r\n page += (e.key == 'ArrowLeft' ? -1 : 1);\r\n if (page < 0) page = 0;\r\n else if (page > 0 && page > Math.ceil(this.total / this.limit) - 1) page = Math.ceil(this.total / this.limit) - 1;\r\n this.start = page * this.limit;\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n\r\n reorderColumns(column, next) {\r\n console.log('reorderColumns')\r\n if (column) {\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(column), 1);\r\n if (next)\r\n this.columnsReordered.splice(this.columnsReordered.indexOf(next), 0, column);\r\n else\r\n this.columnsReordered.push(column)\r\n\r\n this.columnsReorderedChanged = true;\r\n if (this.insideView.setColumnsWidths) {\r\n this.insideView.setColumnsWidths()\r\n }\r\n }\r\n }\r\n}\r\n\r\ncustomElements\r\n .define(\r\n 'data-view'\r\n ,\r\n ObjectsList\r\n )\r\n;\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/objectsList.js?");
188
188
 
189
189
  /***/ }),
190
190
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@green-code-studio/objects-list",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "main": "src/index.js",
5
5
  "author": "Mateusz Krawczyk",
6
6
  "license": "MIT",
@@ -8,9 +8,11 @@ import {CalendarView} from "./calendarView.js";
8
8
  export class ConfigPopup extends HTMLElement {
9
9
  constructor(objectsList) {
10
10
  super();
11
+ const exports=objectsList.generateExports?objectsList.generateExports():null;
11
12
  this.append(template({
12
13
  t,
13
14
  showDatesViews: objectsList.dateRowCallback != null,
15
+ exports,
14
16
  categories: Object.entries(objectsList.columns.reduce((o, c) => {
15
17
  o[c.category] = (o[c.category] ?? [])
16
18
  o[c.category].push(c);
@@ -14,10 +14,14 @@
14
14
  <option value="listView">{{t('objectList.listView')}}</option>
15
15
  <:if condition=showDatesViews >
16
16
  <option value="calendarView">{{t('objectList.calendarView')}}</option>
17
- <option value="timelineView">{{t('objectList.timelineView')}}</option>
18
17
  </:if>
19
18
  </select>
20
19
  </label>
20
+ <:if condition=exports >
21
+ <:foreach collection=exports item=x>
22
+ <button onclick=x.action type="button">{{x.name}}</button>
23
+ </:foreach>
24
+ </:if>
21
25
  <input type="search" placeholder=(t('objectList.search')) />
22
26
  <:foreach collection=categories item=category>
23
27
  <div class="categoryTableContainer">
@@ -43,7 +43,8 @@ export class CalendarView extends AbstractView {
43
43
  })
44
44
  this.body.append(dayElement)
45
45
  for (let item of data.rows.filter(r => this.objectsList.dateRowCallback(r).toISOString().substring(0, 10) == day.toISOString().substring(0, 10))) {
46
- const itemElement = create('.item', {text: item})
46
+ const itemElement = create('.item')
47
+ itemElement.append(this.objectsList.calendarRowCallback(item))
47
48
  dayElement.append(itemElement)
48
49
  itemElement.oncontextmenu = this.contextMenu.bind(this, itemElement);
49
50
  itemElement.onclick = this.trOnClick.bind(this, item);
package/src/i18n.xml CHANGED
@@ -29,10 +29,6 @@
29
29
  <value lang="pl">Widok kalendarza</value>
30
30
  <value lang="en">Calendar view</value>
31
31
  </node>
32
- <node name="timelineView">
33
- <value lang="pl">Widok osi czasu</value>
34
- <value lang="en">Timeline view</value>
35
- </node>
36
32
  <node name="startMultiEdit">
37
33
  <value lang="pl">Rozpocznij edycję wielu</value>
38
34
  <value lang="en">Start multi-edit</value>
@@ -236,9 +236,6 @@ export class ObjectsList extends HTMLElement {
236
236
  } else if (value == 'calendarView') {
237
237
  this.insideViewClass = CalendarView
238
238
  this.insideViewParams = {}
239
- } else if (value == 'timelineView') {
240
- this.insideViewClass = TimelineView
241
- this.insideViewParams = {}
242
239
  }
243
240
  }
244
241