@green-code-studio/objects-list 1.0.0 → 1.0.1
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/demoDist/demo.js +123 -6
- package/dist/style.mjs +1 -1
- package/package.json +2 -2
- package/src/style/objectsList.scss +1 -1
package/demoDist/demo.js
CHANGED
|
@@ -80,6 +80,36 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
80
80
|
|
|
81
81
|
/***/ }),
|
|
82
82
|
|
|
83
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/style/objectsList.scss":
|
|
84
|
+
/*!*****************************************************************************************************************!*\
|
|
85
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/style/objectsList.scss ***!
|
|
86
|
+
\*****************************************************************************************************************/
|
|
87
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
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}\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 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.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// 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
|
+
|
|
91
|
+
/***/ }),
|
|
92
|
+
|
|
93
|
+
/***/ "./node_modules/css-loader/dist/runtime/api.js":
|
|
94
|
+
/*!*****************************************************!*\
|
|
95
|
+
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
|
|
96
|
+
\*****************************************************/
|
|
97
|
+
/***/ ((module) => {
|
|
98
|
+
|
|
99
|
+
eval("\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/css-loader/dist/runtime/api.js?");
|
|
100
|
+
|
|
101
|
+
/***/ }),
|
|
102
|
+
|
|
103
|
+
/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
|
|
104
|
+
/*!**************************************************************!*\
|
|
105
|
+
!*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
|
|
106
|
+
\**************************************************************/
|
|
107
|
+
/***/ ((module) => {
|
|
108
|
+
|
|
109
|
+
eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/css-loader/dist/runtime/noSourceMaps.js?");
|
|
110
|
+
|
|
111
|
+
/***/ }),
|
|
112
|
+
|
|
83
113
|
/***/ "./node_modules/fast-creator/dist/entry.js":
|
|
84
114
|
/*!*************************************************!*\
|
|
85
115
|
!*** ./node_modules/fast-creator/dist/entry.js ***!
|
|
@@ -100,13 +130,83 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
100
130
|
|
|
101
131
|
/***/ }),
|
|
102
132
|
|
|
133
|
+
/***/ "./src/style/objectsList.scss":
|
|
134
|
+
/*!************************************!*\
|
|
135
|
+
!*** ./src/style/objectsList.scss ***!
|
|
136
|
+
\************************************/
|
|
137
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
138
|
+
|
|
139
|
+
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_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_objectsList_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./objectsList.scss */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/style/objectsList.scss\");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_objectsList_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_objectsList_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_objectsList_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_sass_loader_dist_cjs_js_objectsList_scss__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/style/objectsList.scss?");
|
|
140
|
+
|
|
141
|
+
/***/ }),
|
|
142
|
+
|
|
143
|
+
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
|
|
144
|
+
/*!****************************************************************************!*\
|
|
145
|
+
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
|
|
146
|
+
\****************************************************************************/
|
|
147
|
+
/***/ ((module) => {
|
|
148
|
+
|
|
149
|
+
eval("\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?");
|
|
150
|
+
|
|
151
|
+
/***/ }),
|
|
152
|
+
|
|
153
|
+
/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
|
|
154
|
+
/*!********************************************************************!*\
|
|
155
|
+
!*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
|
|
156
|
+
\********************************************************************/
|
|
157
|
+
/***/ ((module) => {
|
|
158
|
+
|
|
159
|
+
eval("\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/insertBySelector.js?");
|
|
160
|
+
|
|
161
|
+
/***/ }),
|
|
162
|
+
|
|
163
|
+
/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
|
|
164
|
+
/*!**********************************************************************!*\
|
|
165
|
+
!*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
|
|
166
|
+
\**********************************************************************/
|
|
167
|
+
/***/ ((module) => {
|
|
168
|
+
|
|
169
|
+
eval("\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/insertStyleElement.js?");
|
|
170
|
+
|
|
171
|
+
/***/ }),
|
|
172
|
+
|
|
173
|
+
/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
|
|
174
|
+
/*!**********************************************************************************!*\
|
|
175
|
+
!*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
|
|
176
|
+
\**********************************************************************************/
|
|
177
|
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
178
|
+
|
|
179
|
+
eval("\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?");
|
|
180
|
+
|
|
181
|
+
/***/ }),
|
|
182
|
+
|
|
183
|
+
/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
|
|
184
|
+
/*!***************************************************************!*\
|
|
185
|
+
!*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
|
|
186
|
+
\***************************************************************/
|
|
187
|
+
/***/ ((module) => {
|
|
188
|
+
|
|
189
|
+
eval("\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/styleDomAPI.js?");
|
|
190
|
+
|
|
191
|
+
/***/ }),
|
|
192
|
+
|
|
193
|
+
/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
|
|
194
|
+
/*!*********************************************************************!*\
|
|
195
|
+
!*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
|
|
196
|
+
\*********************************************************************/
|
|
197
|
+
/***/ ((module) => {
|
|
198
|
+
|
|
199
|
+
eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/style-loader/dist/runtime/styleTagTransform.js?");
|
|
200
|
+
|
|
201
|
+
/***/ }),
|
|
202
|
+
|
|
103
203
|
/***/ "./demo/demo.js":
|
|
104
204
|
/*!**********************!*\
|
|
105
205
|
!*** ./demo/demo.js ***!
|
|
106
206
|
\**********************/
|
|
107
207
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
108
208
|
|
|
109
|
-
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\r\n\r\n\r\nconsole.log('aa');\r\nconst dataSource={\r\n async get(options){\r\n return {\r\n rows:[\r\n {id:1, name:'John'},\r\n {id:2, name:'Doe'},\r\n {id:3, name:'Smith'},\r\n ]\r\n }\r\n }\r\n}\r\nconst objectList=new _src_index_js__WEBPACK_IMPORTED_MODULE_0__.ObjectsList(dataSource)\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 return {\r\n rows:[\r\n {id:1, name:'John'},\r\n {id:2, name:'Doe'},\r\n {id:3, name:'Smith'},\r\n ]\r\n }\r\n }\r\n}\r\nconst objectList=new _src_index_js__WEBPACK_IMPORTED_MODULE_0__.ObjectsList(dataSource)\r\nobjectList.columns=[\r\n {dataName:'id', title:'ID'},\r\n {dataName:'name', title:'Name'},\r\n]\r\nobjectList.style.height='500px';\r\ndocument.body.appendChild(objectList);\r\nobjectList.refresh();\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./demo/demo.js?");
|
|
110
210
|
|
|
111
211
|
/***/ }),
|
|
112
212
|
|
|
@@ -116,7 +216,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _src
|
|
|
116
216
|
\*********************************************************************/
|
|
117
217
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
118
218
|
|
|
119
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContextMenu: () => (/* binding */ __webpack_exports__ContextMenu)\n/* harmony export */ });\n/*\n * ATTENTION: The \"eval\" devtool has been used (maybe by default in mode: \"development\").\n * This devtool is neither made for production nor for readable output files.\n * It uses \"eval()\" calls to create a separate source file in the browser devtools.\n * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)\n * or disable the default devtool with \"devtool: false\".\n * If you are looking for production-ready output files, see mode: \"production\" (https://webpack.js.org/configuration/mode/).\n */\n/******/ var __webpack_modules__ = ({\n\n/***/ \"./src/contextMenu.js\":\n/*!****************************!*\\\n !*** ./src/contextMenu.js ***!\n \\****************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */ ContextMenu: () => (/* binding */ ContextMenu)\\n/* harmony export */ });\\nclass ContextMenu {\\r\\n constructor(elements, parent = null) {\\r\\n this.generateHtml(elements);\\r\\n this.bindGlobalEvents();\\r\\n this.subMenu = null;\\r\\n }\\r\\n\\r\\n generateHtml(elements) {\\r\\n this.html = document.create('ul.contextMenu');\\r\\n for (const element of elements) {\\r\\n this.html.append(this.generateElementHtml(element));\\r\\n }\\r\\n this.html.onmousedown = e => e.stopPropagation();\\r\\n }\\r\\n\\r\\n generateElementHtml(element) {\\r\\n const elementHtml = document.create('li.element', {tabIndex: 0});\\r\\n if (element.submenu) {\\r\\n elementHtml.classList.add('hasSubmenu');\\r\\n }\\r\\n if (element.icon)\\r\\n elementHtml.addChild('span.icon', {className: element.icon});\\r\\n else\\r\\n elementHtml.addChild('span.iconPlaceholder');\\r\\n\\r\\n elementHtml.addChild('span.content', {text: element.text || ''});\\r\\n if (element.onclick) {\\r\\n elementHtml.onclick = e => {\\r\\n element.onclick.call(elementHtml, e);\\r\\n this.destroy()\\r\\n };\\r\\n elementHtml.onkeydown = e => {\\r\\n if (e.key == 'Enter') {\\r\\n element.onclick.call(elementHtml, e);\\r\\n this.destroy()\\r\\n } else if (e.key == 'ArrowDown') {\\r\\n (elementHtml.nextElementSibling ?? elementHtml.parentNode.firstElementChild).focus();\\r\\n } else if (e.key == 'ArrowUp') {\\r\\n (elementHtml.previousElementSibling ?? elementHtml.parentNode.lastElementChild).focus();\\r\\n }\\r\\n };\\r\\n }\\r\\n elementHtml.onmouseenter = e => {\\r\\n elementHtml.focus();\\r\\n if (this.submenu) {\\r\\n this.submenu.destroy();\\r\\n this.submenu = null;\\r\\n }\\r\\n if (element.submenu) {\\r\\n this.submenu = new ContextMenu(element.submenu);\\r\\n document.body.appendChild(this.submenu.html);\\r\\n this.submenu.setPositionToParent(elementHtml);\\r\\n }\\r\\n };\\r\\n return elementHtml;\\r\\n }\\r\\n\\r\\n bindGlobalEvents() {\\r\\n this.bindedDestroyEvent = this.destroy.bind(this);\\r\\n addEventListener('mousedown', this.bindedDestroyEvent);\\r\\n addEventListener('blur', this.bindedDestroyEvent);\\r\\n }\\r\\n\\r\\n setPositionToPointer(event) {\\r\\n const placeHorizontal = innerWidth - event.clientX;\\r\\n const placeVertical = innerHeight - event.clientY;\\r\\n const isRight = this.html.offsetWidth <= placeHorizontal;\\r\\n const isBottom = this.html.offsetHeight <= placeVertical;\\r\\n\\r\\n this.html.style.left = 'auto';\\r\\n this.html.style.right = 'auto';\\r\\n this.html.style.top = 'auto';\\r\\n this.html.style.bottom = 'auto';\\r\\n\\r\\n if (isRight)\\r\\n this.html.style.left = `${event.clientX}px`;\\r\\n else\\r\\n this.html.style.right = `${Math.min(innerWidth - event.clientX + 1, innerWidth - this.html.offsetWidth)}px`;\\r\\n\\r\\n if (isBottom)\\r\\n this.html.style.top = `${event.clientY}px`;\\r\\n else\\r\\n this.html.style.bottom = `${Math.min(innerHeight - event.clientY + 1, innerHeight - this.html.offsetHeight)}px`;\\r\\n }\\r\\n\\r\\n setPositionToParent(parent) {\\r\\n const parentBoundingBox = parent.getBoundingClientRect();\\r\\n const placeRight = innerWidth - parentBoundingBox.right;\\r\\n const placeLeft = parentBoundingBox.left;\\r\\n const placeBottom = innerHeight - parentBoundingBox.top;\\r\\n const isRight = this.html.offsetWidth <= placeRight;\\r\\n const isBottom = this.html.offsetHeight <= placeBottom;\\r\\n\\r\\n this.html.style.left = 'auto';\\r\\n this.html.style.right = 'auto';\\r\\n this.html.style.top = 'auto';\\r\\n this.html.style.bottom = 'auto';\\r\\n\\r\\n if (isRight)\\r\\n this.html.style.left = `${parentBoundingBox.right}px`;\\r\\n else\\r\\n this.html.style.right = `${Math.min(innerWidth - parentBoundingBox.left, innerWidth - this.html.offsetWidth)}px`;\\r\\n\\r\\n if (isBottom)\\r\\n this.html.style.top = `${parentBoundingBox.top}px`;\\r\\n else\\r\\n this.html.style.bottom = `${Math.min(innerHeight - parentBoundingBox.bottom, innerHeight - this.html.offsetHeight)}px`;\\r\\n }\\r\\n\\r\\n destroy() {\\r\\n this.html.remove();\\r\\n removeEventListener('mousedown', this.bindedDestroyEvent);\\r\\n removeEventListener('blur', this.bindedDestroyEvent);\\r\\n }\\r\\n\\r\\n static openContextMenu(event, elements) {\\r\\n const menu = new ContextMenu(elements);\\r\\n document.body.appendChild(menu.html);\\r\\n menu.setPositionToPointer(event);\\r\\n event.preventDefault();\\r\\n if (menu.html.firstChild)\\r\\n menu.html.firstChild.focus();\\r\\n\\r\\n return menu;\\r\\n }\\r\\n}\\n\\n//# sourceURL=webpack://@green-code-studio/context-menu/./src/contextMenu.js?\");\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */ ContextMenu: () => (/* reexport safe */ _contextMenu_js__WEBPACK_IMPORTED_MODULE_0__.ContextMenu)\\n/* harmony export */ });\\n/* harmony import */ var _contextMenu_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contextMenu.js */ \\\"./src/contextMenu.js\\\");\\n\\r\\n\\n\\n//# sourceURL=webpack://@green-code-studio/context-menu/./src/index.js?\");\n\n/***/ })\n\n/******/ });\n/************************************************************************/\n/******/ // The module cache\n/******/ var __webpack_module_cache__ = {};\n/******/ \n/******/ // The require function\n/******/ function __nested_webpack_require_7128__(moduleId) {\n/******/ \t// Check if module is in cache\n/******/ \tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \tif (cachedModule !== undefined) {\n/******/ \t\treturn cachedModule.exports;\n/******/ \t}\n/******/ \t// Create a new module (and put it into the cache)\n/******/ \tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t// no module.id needed\n/******/ \t\t// no module.loaded needed\n/******/ \t\texports: {}\n/******/ \t};\n/******/ \n/******/ \t// Execute the module function\n/******/ \t__webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_7128__);\n/******/ \n/******/ \t// Return the exports of the module\n/******/ \treturn module.exports;\n/******/ }\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__nested_webpack_require_7128__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__nested_webpack_require_7128__.o(definition, key) && !__nested_webpack_require_7128__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__nested_webpack_require_7128__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/make namespace object */\n/******/ (() => {\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_7128__.r = (exports) => {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/ })();\n/******/ \n/************************************************************************/\n/******/ \n/******/ // startup\n/******/ // Load entry module and return exports\n/******/ // This entry module can't be inlined because the eval devtool is used.\n/******/ var __nested_webpack_exports__ = __nested_webpack_require_7128__(\"./src/index.js\");\n/******/ var __webpack_exports__ContextMenu = __nested_webpack_exports__.ContextMenu;\n/******/ \n/******/ \n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/@green-code-studio/context-menu/dist/index.mjs?");
|
|
219
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContextMenu: () => (/* binding */ __webpack_exports__ContextMenu)\n/* harmony export */ });\n/*\n * ATTENTION: The \"eval\" devtool has been used (maybe by default in mode: \"development\").\n * This devtool is neither made for production nor for readable output files.\n * It uses \"eval()\" calls to create a separate source file in the browser devtools.\n * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)\n * or disable the default devtool with \"devtool: false\".\n * If you are looking for production-ready output files, see mode: \"production\" (https://webpack.js.org/configuration/mode/).\n */\n/******/ var __webpack_modules__ = ({\n\n/***/ \"./node_modules/fast-creator/dist/entry.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/fast-creator/dist/entry.js ***!\n \\*************************************************/\n/***/ ((module) => {\n\neval(\"\\n\\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\\n\\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\\n\\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\\n\\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\\n\\nfunction _nonIterableSpread() { throw new TypeError(\\\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\\\"); }\\n\\nfunction _iterableToArray(iter) { if (typeof Symbol !== \\\"undefined\\\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\\n\\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\\n\\nfunction _typeof(obj) { \\\"@babel/helpers - typeof\\\"; if (typeof Symbol === \\\"function\\\" && typeof Symbol.iterator === \\\"symbol\\\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \\\"function\\\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \\\"symbol\\\" : typeof obj; }; } return _typeof(obj); }\\n\\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \\\"undefined\\\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\\\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\\\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\\\"return\\\"] != null) it[\\\"return\\\"](); } finally { if (didErr) throw err; } } }; }\\n\\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \\\"string\\\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \\\"Object\\\" && o.constructor) n = o.constructor.name; if (n === \\\"Map\\\" || n === \\\"Set\\\") return Array.from(n); if (n === \\\"Arguments\\\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\\n\\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\\n\\n/**\\r\\n *\\r\\n * @param attributes\\r\\n * @param documentObject\\r\\n * @returns {HTMLElement}\\r\\n */\\nfunction createFromDefinition() {\\n var attributes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\\n var documentObject = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\\n if (!documentObject) documentObject = document;\\n var element = documentObject.createElement(attributes.tagName || 'div');\\n repairClasses(attributes);\\n\\n for (var attrName in attributes) {\\n if (attrName === 'className') {\\n element.className = attributes[attrName];\\n } else if (attrName === 'classList') {\\n var _iterator = _createForOfIteratorHelper(attributes.classList),\\n _step;\\n\\n try {\\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\\n var x = _step.value;\\n element.classList.add(x);\\n }\\n } catch (err) {\\n _iterator.e(err);\\n } finally {\\n _iterator.f();\\n }\\n } else if (attrName === 'text') {\\n element.textContent = attributes.text;\\n } else if (attrName === 'html') {\\n element.innerHTML = attributes.html;\\n } else if (attrName === 'data') {\\n Object.assign(element.dataset, attributes.data);\\n } else if (attrName === 'children') {\\n attributes.children.forEach(function (x) {\\n return element.appendChild(x instanceof Node ? x : create(x, {}, documentObject));\\n });\\n } else if (attrName.startsWith('on')) {\\n element[attrName] = attributes[attrName];\\n } else if (attrName.startsWith('style')) {\\n if (_typeof(attributes[attrName]) == \\\"object\\\") {\\n for (var styleName in attributes[attrName]) {\\n element.style.setProperty(styleName, attributes[attrName][styleName]);\\n }\\n } else if (attributes[attrName] !== false) {\\n element.setAttribute(attrName, attributes[attrName]);\\n }\\n } else if (attrName === 'tagName') {//nothing\\n } else {\\n if (attributes[attrName] === true) element.setAttribute(attrName, attrName);else if (attributes[attrName] !== false) element.setAttribute(attrName, attributes[attrName]);\\n }\\n }\\n\\n return element;\\n}\\n\\nfunction repairClasses(obj) {\\n if (obj.className) {\\n if (!obj.classList) obj.classList = [];\\n obj.classList = [].concat(_toConsumableArray(obj.classList), _toConsumableArray(obj.className.split(' ')));\\n delete obj.className;\\n }\\n}\\n/**\\r\\n *\\r\\n * @param {string} selector\\r\\n * $returns {object}\\r\\n */\\n\\n\\nfunction parseSelector(selector) {\\n selector = (selector + \\\"\\\").trim();\\n var position = 0;\\n\\n function parseElement() {\\n var ret = {};\\n var canBeTagname = true;\\n\\n while (position < selector.length) {\\n var _char = selector[position];\\n position++;\\n\\n if (_char === '#') {\\n ret.id = parseText();\\n } else if (_char === '.') {\\n if (!ret.classList) ret.classList = [];\\n ret.classList.push(parseText());\\n } else if (_char === '[') {\\n var attrName = parseText(['=', ']']);\\n skipWhitespace();\\n\\n if (selector[position] == '=') {\\n position++;\\n skipWhitespace();\\n if (selector[position] != '\\\"') throw new Error(\\\"Syntax error in position \\\" + position);\\n position++;\\n var value = parseAttributeValue();\\n skipWhitespace();\\n if (selector[position] != '\\\"') throw new Error(\\\"Syntax error in position \\\" + position);\\n position++;\\n skipWhitespace();\\n if (selector[position] != ']') throw new Error(\\\"Syntax error in position \\\" + position);\\n position++;\\n ret[attrName] = value;\\n } else if (selector[position] == ']') {\\n position++;\\n ret[attrName] = true;\\n } else {\\n throw new Error(\\\"Syntax error in position \\\" + position);\\n }\\n } else if (/\\\\s/.test(_char)) {\\n while (position < selector.length && /\\\\s/.test(selector[position])) {\\n position++;\\n skipWhitespace();\\n }\\n\\n ret.children = [parseElement()];\\n } else if (canBeTagname) {\\n ret.tagName = _char + parseText();\\n } else {\\n throw new Error(\\\"Syntax error in position \\\" + position);\\n }\\n\\n canBeTagname = false;\\n }\\n\\n return ret;\\n }\\n\\n function parseText() {\\n var escape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['.', '#', ',', '['];\\n var text = '';\\n\\n while (position < selector.length) {\\n var _char2 = selector[position];\\n\\n if (/\\\\s/.test(_char2) || escape.includes(_char2)) {\\n return text;\\n } else {\\n text += _char2;\\n position++;\\n }\\n }\\n\\n return text;\\n }\\n\\n function parseAttributeValue() {\\n var text = '';\\n\\n while (position < selector.length) {\\n var _char3 = selector[position];\\n\\n if (_char3 == '\\\"') {\\n return text;\\n } else {\\n text += _char3;\\n position++;\\n }\\n }\\n\\n return text;\\n }\\n\\n function skipWhitespace() {\\n while (position < selector.length) {\\n var _char4 = selector[position];\\n\\n if (!/\\\\s/.test(_char4)) {\\n return;\\n } else {\\n position++;\\n }\\n }\\n }\\n\\n if (selector === \\\"\\\") return {};else return parseElement();\\n}\\n/**\\r\\n *\\r\\n * @param {string} selector\\r\\n * @param {object} attributes\\r\\n * @param documentObject\\r\\n * @returns {HTMLElement}\\r\\n */\\n\\n\\nfunction create() {\\n var definition = {};\\n var documentObject = null;\\n\\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\\n params[_key] = arguments[_key];\\n }\\n\\n if (typeof params[0] == \\\"string\\\") definition = mergeObjects(definition, parseSelector(params.splice(0, 1)[0]));\\n if (_typeof(params[0]) == \\\"object\\\" && !(params[0] instanceof Node)) definition = mergeObjects(definition, params.splice(0, 1)[0]);\\n\\n for (var _i = 0, _params = params; _i < _params.length; _i++) {\\n var param = _params[_i];\\n\\n if (param instanceof Document) {\\n documentObject = param;\\n } else if (param instanceof Node) {\\n documentObject = param.ownerDocument;\\n if (!definition.children) definition.children = [];\\n definition.children.push(param);\\n }\\n }\\n\\n return createFromDefinition(definition, documentObject);\\n}\\n\\nfunction mergeObjects(a, b) {\\n repairClasses(a);\\n repairClasses(b);\\n\\n var ret = _objectSpread({}, a, {}, b);\\n\\n if (a.data && b.data) {\\n ret.data = _objectSpread({}, a.data, {}, b.data);\\n }\\n\\n if (a.children && b.children) {\\n ret.children = [].concat(_toConsumableArray(a.children), _toConsumableArray(b.children));\\n }\\n\\n if (a.classList && b.classList) {\\n ret.classList = [].concat(_toConsumableArray(a.classList), _toConsumableArray(b.classList));\\n }\\n\\n return ret;\\n}\\n\\nmodule.exports = {\\n createFromDefinition: createFromDefinition,\\n parseSelector: parseSelector,\\n create: create,\\n mergeObjects: mergeObjects,\\n \\\"default\\\": create\\n};\\n\\n//# sourceURL=webpack://@green-code-studio/context-menu/./node_modules/fast-creator/dist/entry.js?\");\n\n/***/ }),\n\n/***/ \"./src/contextMenu.js\":\n/*!****************************!*\\\n !*** ./src/contextMenu.js ***!\n \\****************************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */ ContextMenu: () => (/* binding */ ContextMenu)\\n/* harmony export */ });\\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-creator */ \\\"./node_modules/fast-creator/dist/entry.js\\\");\\n\\r\\n\\r\\nclass ContextMenu {\\r\\n constructor(elements, parent = null) {\\r\\n this.generateHtml(elements);\\r\\n this.bindGlobalEvents();\\r\\n this.subMenu = null;\\r\\n }\\r\\n\\r\\n generateHtml(elements) {\\r\\n this.html = (0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('ul.contextMenu');\\r\\n for (const element of elements) {\\r\\n this.html.append(this.generateElementHtml(element));\\r\\n }\\r\\n this.html.onmousedown = e => e.stopPropagation();\\r\\n }\\r\\n\\r\\n generateElementHtml(element) {\\r\\n const elementHtml = (0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('li.element', {tabIndex: 0});\\r\\n if (element.submenu) {\\r\\n elementHtml.classList.add('hasSubmenu');\\r\\n }\\r\\n if (element.icon)\\r\\n elementHtml.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('span.icon', {className: element.icon}));\\r\\n else\\r\\n elementHtml.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('span.iconPlaceholder'));\\r\\n\\r\\n elementHtml.addChild('span.content', {text: element.text || ''});\\r\\n if (element.onclick) {\\r\\n elementHtml.onclick = e => {\\r\\n element.onclick.call(elementHtml, e);\\r\\n this.destroy()\\r\\n };\\r\\n elementHtml.onkeydown = e => {\\r\\n if (e.key == 'Enter') {\\r\\n element.onclick.call(elementHtml, e);\\r\\n this.destroy()\\r\\n } else if (e.key == 'ArrowDown') {\\r\\n (elementHtml.nextElementSibling ?? elementHtml.parentNode.firstElementChild).focus();\\r\\n } else if (e.key == 'ArrowUp') {\\r\\n (elementHtml.previousElementSibling ?? elementHtml.parentNode.lastElementChild).focus();\\r\\n }\\r\\n };\\r\\n }\\r\\n elementHtml.onmouseenter = e => {\\r\\n elementHtml.focus();\\r\\n if (this.submenu) {\\r\\n this.submenu.destroy();\\r\\n this.submenu = null;\\r\\n }\\r\\n if (element.submenu) {\\r\\n this.submenu = new ContextMenu(element.submenu);\\r\\n document.body.appendChild(this.submenu.html);\\r\\n this.submenu.setPositionToParent(elementHtml);\\r\\n }\\r\\n };\\r\\n return elementHtml;\\r\\n }\\r\\n\\r\\n bindGlobalEvents() {\\r\\n this.bindedDestroyEvent = this.destroy.bind(this);\\r\\n addEventListener('mousedown', this.bindedDestroyEvent);\\r\\n addEventListener('blur', this.bindedDestroyEvent);\\r\\n }\\r\\n\\r\\n setPositionToPointer(event) {\\r\\n const placeHorizontal = innerWidth - event.clientX;\\r\\n const placeVertical = innerHeight - event.clientY;\\r\\n const isRight = this.html.offsetWidth <= placeHorizontal;\\r\\n const isBottom = this.html.offsetHeight <= placeVertical;\\r\\n\\r\\n this.html.style.left = 'auto';\\r\\n this.html.style.right = 'auto';\\r\\n this.html.style.top = 'auto';\\r\\n this.html.style.bottom = 'auto';\\r\\n\\r\\n if (isRight)\\r\\n this.html.style.left = `${event.clientX}px`;\\r\\n else\\r\\n this.html.style.right = `${Math.min(innerWidth - event.clientX + 1, innerWidth - this.html.offsetWidth)}px`;\\r\\n\\r\\n if (isBottom)\\r\\n this.html.style.top = `${event.clientY}px`;\\r\\n else\\r\\n this.html.style.bottom = `${Math.min(innerHeight - event.clientY + 1, innerHeight - this.html.offsetHeight)}px`;\\r\\n }\\r\\n\\r\\n setPositionToParent(parent) {\\r\\n const parentBoundingBox = parent.getBoundingClientRect();\\r\\n const placeRight = innerWidth - parentBoundingBox.right;\\r\\n const placeLeft = parentBoundingBox.left;\\r\\n const placeBottom = innerHeight - parentBoundingBox.top;\\r\\n const isRight = this.html.offsetWidth <= placeRight;\\r\\n const isBottom = this.html.offsetHeight <= placeBottom;\\r\\n\\r\\n this.html.style.left = 'auto';\\r\\n this.html.style.right = 'auto';\\r\\n this.html.style.top = 'auto';\\r\\n this.html.style.bottom = 'auto';\\r\\n\\r\\n if (isRight)\\r\\n this.html.style.left = `${parentBoundingBox.right}px`;\\r\\n else\\r\\n this.html.style.right = `${Math.min(innerWidth - parentBoundingBox.left, innerWidth - this.html.offsetWidth)}px`;\\r\\n\\r\\n if (isBottom)\\r\\n this.html.style.top = `${parentBoundingBox.top}px`;\\r\\n else\\r\\n this.html.style.bottom = `${Math.min(innerHeight - parentBoundingBox.bottom, innerHeight - this.html.offsetHeight)}px`;\\r\\n }\\r\\n\\r\\n destroy() {\\r\\n this.html.remove();\\r\\n removeEventListener('mousedown', this.bindedDestroyEvent);\\r\\n removeEventListener('blur', this.bindedDestroyEvent);\\r\\n }\\r\\n\\r\\n static openContextMenu(event, elements) {\\r\\n const menu = new ContextMenu(elements);\\r\\n document.body.appendChild(menu.html);\\r\\n menu.setPositionToPointer(event);\\r\\n event.preventDefault();\\r\\n if (menu.html.firstChild)\\r\\n menu.html.firstChild.focus();\\r\\n\\r\\n return menu;\\r\\n }\\r\\n}\\r\\n\\n\\n//# sourceURL=webpack://@green-code-studio/context-menu/./src/contextMenu.js?\");\n\n/***/ }),\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {\n\neval(\"__webpack_require__.r(__webpack_exports__);\\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\\n/* harmony export */ ContextMenu: () => (/* reexport safe */ _contextMenu_js__WEBPACK_IMPORTED_MODULE_0__.ContextMenu)\\n/* harmony export */ });\\n/* harmony import */ var _contextMenu_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contextMenu.js */ \\\"./src/contextMenu.js\\\");\\n\\r\\n\\n\\n//# sourceURL=webpack://@green-code-studio/context-menu/./src/index.js?\");\n\n/***/ })\n\n/******/ });\n/************************************************************************/\n/******/ // The module cache\n/******/ var __webpack_module_cache__ = {};\n/******/ \n/******/ // The require function\n/******/ function __nested_webpack_require_18583__(moduleId) {\n/******/ \t// Check if module is in cache\n/******/ \tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \tif (cachedModule !== undefined) {\n/******/ \t\treturn cachedModule.exports;\n/******/ \t}\n/******/ \t// Create a new module (and put it into the cache)\n/******/ \tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t// no module.id needed\n/******/ \t\t// no module.loaded needed\n/******/ \t\texports: {}\n/******/ \t};\n/******/ \n/******/ \t// Execute the module function\n/******/ \t__webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_18583__);\n/******/ \n/******/ \t// Return the exports of the module\n/******/ \treturn module.exports;\n/******/ }\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__nested_webpack_require_18583__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__nested_webpack_require_18583__.o(definition, key) && !__nested_webpack_require_18583__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__nested_webpack_require_18583__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/make namespace object */\n/******/ (() => {\n/******/ \t// define __esModule on exports\n/******/ \t__nested_webpack_require_18583__.r = (exports) => {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/ })();\n/******/ \n/************************************************************************/\n/******/ \n/******/ // startup\n/******/ // Load entry module and return exports\n/******/ // This entry module can't be inlined because the eval devtool is used.\n/******/ var __nested_webpack_exports__ = __nested_webpack_require_18583__(\"./src/index.js\");\n/******/ var __webpack_exports__ContextMenu = __nested_webpack_exports__.ContextMenu;\n/******/ \n/******/ \n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./node_modules/@green-code-studio/context-menu/dist/index.mjs?");
|
|
120
220
|
|
|
121
221
|
/***/ }),
|
|
122
222
|
|
|
@@ -176,7 +276,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
176
276
|
\*************************/
|
|
177
277
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
178
278
|
|
|
179
|
-
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 tr.
|
|
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?");
|
|
180
280
|
|
|
181
281
|
/***/ }),
|
|
182
282
|
|
|
@@ -196,7 +296,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
196
296
|
\**********************************/
|
|
197
297
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
198
298
|
|
|
199
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PaginationButtons: () => (/* binding */ PaginationButtons)\n/* harmony export */ });\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n\r\n\r\nclass PaginationButtons extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.currentPage = 0;\r\n this.totalPages = 0;\r\n this.onpageclick = null;\r\n }\r\n\r\n render() {\r\n let pagination = this.getPagination();\r\n this.
|
|
299
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PaginationButtons: () => (/* binding */ PaginationButtons)\n/* harmony export */ });\n/* harmony import */ var fast_creator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-creator */ \"./node_modules/fast-creator/dist/entry.js\");\n\r\n\r\nclass PaginationButtons extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.currentPage = 0;\r\n this.totalPages = 0;\r\n this.onpageclick = null;\r\n }\r\n\r\n render() {\r\n let pagination = this.getPagination();\r\n while(this.firstChild){\r\n this.removeChild(this.firstChild)\r\n }\r\n for (let pageNumber of pagination) {\r\n if (pageNumber == null) {\r\n this.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('span', {text: '...'}));\r\n } else {\r\n let pageButton = (0,fast_creator__WEBPACK_IMPORTED_MODULE_0__.create)('button', {\r\n text: pageNumber + 1,\r\n className: pageNumber == this.currentPage ? 'active' : ''\r\n });\r\n this.append(pageButton);\r\n pageButton.onclick = () => {\r\n if (this.onpageclick) {\r\n this.onpageclick(pageNumber);\r\n }\r\n this.currentPage = pageNumber;\r\n this.render();\r\n };\r\n }\r\n }\r\n }\r\n\r\n getPagination() {\r\n const boxesCount = 7;\r\n let boxes = [];\r\n if (this.totalPages <= boxesCount) {\r\n for (let i = 0; i < this.totalPages; i++) {\r\n boxes.push(i);\r\n }\r\n } else if (this.currentPage <= (boxesCount - 1) / 2 - 1) {\r\n for (let i = 0; i <= boxesCount - 3; i++) {\r\n boxes.push(i);\r\n }\r\n boxes.push(null);\r\n boxes.push(this.totalPages - 1);\r\n } else if (this.currentPage >= this.totalPages - (boxesCount - 1) / 2 - 1) {\r\n boxes.push(0);\r\n boxes.push(null);\r\n for (\r\n let i = this.totalPages - Math.floor((boxesCount - 1) / 2) - 2;\r\n i < this.totalPages;\r\n i++\r\n ) {\r\n boxes.push(i);\r\n }\r\n } else {\r\n boxes.push(0);\r\n boxes.push(null);\r\n for (\r\n let i = this.currentPage - Math.floor((boxesCount - 5) / 2);\r\n i <= this.currentPage + Math.ceil((boxesCount - 5) / 2);\r\n i++\r\n ) {\r\n boxes.push(i);\r\n }\r\n boxes.push(null);\r\n boxes.push(this.totalPages - 1);\r\n }\r\n return boxes;\r\n }\r\n}\r\n\r\ncustomElements.define('pagination-buttons', PaginationButtons);\r\n\n\n//# sourceURL=webpack://@green-code-studio/objects-list/./src/paginationButtons.js?");
|
|
200
300
|
|
|
201
301
|
/***/ }),
|
|
202
302
|
|
|
@@ -206,7 +306,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
206
306
|
\**************************/
|
|
207
307
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
208
308
|
|
|
209
|
-
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) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgTable = this;\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 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 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 }\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.actions'))\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 tr.children.removeAll();\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 tr.children[i].style.width = widths[i] + 'px';\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 }).max());\r\n needed.push({base: actionWidth, grow: 0});\r\n let availableToGrow = this.clientWidth - needed.sum(x => x.base);\r\n let sumGrow = needed.sum(x => x.grow);\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 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 elements = actions.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?");
|
|
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) {\r\n super();\r\n this.objectsList = objectsList;\r\n this.init();\r\n window.dbgTable = this;\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 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 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 }\r\n this.head.append((0,fast_creator__WEBPACK_IMPORTED_MODULE_1__.create)('.column.actions'))\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 tr.children[i].style.width = widths[i] + 'px';\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 (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 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 elements = actions.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?");
|
|
210
310
|
|
|
211
311
|
/***/ }),
|
|
212
312
|
|
|
@@ -234,7 +334,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
234
334
|
/******/ }
|
|
235
335
|
/******/ // Create a new module (and put it into the cache)
|
|
236
336
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
237
|
-
/******/
|
|
337
|
+
/******/ id: moduleId,
|
|
238
338
|
/******/ // no module.loaded needed
|
|
239
339
|
/******/ exports: {}
|
|
240
340
|
/******/ };
|
|
@@ -247,6 +347,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
247
347
|
/******/ }
|
|
248
348
|
/******/
|
|
249
349
|
/************************************************************************/
|
|
350
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
351
|
+
/******/ (() => {
|
|
352
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
353
|
+
/******/ __webpack_require__.n = (module) => {
|
|
354
|
+
/******/ var getter = module && module.__esModule ?
|
|
355
|
+
/******/ () => (module['default']) :
|
|
356
|
+
/******/ () => (module);
|
|
357
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
358
|
+
/******/ return getter;
|
|
359
|
+
/******/ };
|
|
360
|
+
/******/ })();
|
|
361
|
+
/******/
|
|
250
362
|
/******/ /* webpack/runtime/define property getters */
|
|
251
363
|
/******/ (() => {
|
|
252
364
|
/******/ // define getter functions for harmony exports
|
|
@@ -275,6 +387,11 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
275
387
|
/******/ };
|
|
276
388
|
/******/ })();
|
|
277
389
|
/******/
|
|
390
|
+
/******/ /* webpack/runtime/nonce */
|
|
391
|
+
/******/ (() => {
|
|
392
|
+
/******/ __webpack_require__.nc = undefined;
|
|
393
|
+
/******/ })();
|
|
394
|
+
/******/
|
|
278
395
|
/************************************************************************/
|
|
279
396
|
/******/
|
|
280
397
|
/******/ // startup
|
package/dist/style.mjs
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
\************************************/
|
|
15
15
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
16
16
|
|
|
17
|
-
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,
|
|
17
|
+
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}\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 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.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// 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?");
|
|
18
18
|
|
|
19
19
|
/***/ }),
|
|
20
20
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@green-code-studio/objects-list",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"author": "Mateusz Krawczyk",
|
|
6
6
|
"license": "MIT",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"build": "webpack --config webpack.config.js --mode development"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@green-code-studio/context-menu": "^1.0.
|
|
15
|
+
"@green-code-studio/context-menu": "^1.0.2",
|
|
16
16
|
"@green-code-studio/internationalization": "^1.0.4",
|
|
17
17
|
"fast-creator": "^1.6.0"
|
|
18
18
|
},
|