@omniumretail/component-library 1.0.96 → 1.0.98
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/dist/bundle.js +2 -2
- package/dist/types/components/Table/index.d.ts +4 -0
- package/dist/types/components/Tag/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/Table/Table.stories.tsx +4 -1
- package/src/components/Table/index.tsx +33 -17
- package/src/components/Tag/Tag.stories.tsx +1 -1
- package/src/components/Tag/index.tsx +9 -0
package/dist/bundle.js
CHANGED
|
@@ -11047,7 +11047,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
11047
11047
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
11048
11048
|
|
|
11049
11049
|
"use strict";
|
|
11050
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Table\": function() { return /* binding */ Table; },\n/* harmony export */ \"sortBy\": function() { return /* binding */ sortBy; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/space/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/dropdown/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/select/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/table/index.js\");\n/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.module.scss */ \"./src/components/Table/styles.module.scss\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ \"react-i18next\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/icons/MoreOutlined.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Button */ \"./src/components/Button/index.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar sortBy;\r\n(function (sortBy) {\r\n sortBy[\"asc\"] = \"asc\";\r\n sortBy[\"desc\"] = \"desc\";\r\n})(sortBy || (sortBy = {}));\r\nvar Table = function (props) {\r\n var _a;\r\n var _b;\r\n var t = (0,react_i18next__WEBPACK_IMPORTED_MODULE_3__.useTranslation)().t;\r\n var _c = props.dataSource, dataSource = _c === void 0 ? undefined : _c, fieldsToSort = props.fieldsToSort, _d = props.selectPlaceholder, selectPlaceholder = _d === void 0 ? 'Sort By' : _d, onSort = props.onSort, headingTranslationsKey = props.headingTranslationsKey, items = props.actionsArray, rowKeyValue = props.rowKeyValue, hiddenColumns = props.hiddenColumns, rowSelection = props.rowSelection, onSelectAllButtonClick = props.onSelectAllButtonClick, AllItemsShowing = props.AllItemsShowing, selectAllStatus = props.selectAllStatus, isTableDataRefreshed = props.isTableDataRefreshed, tableLoading = props.tableLoading, tableMaxHeight = props.tableMaxHeight, sortByColumns = props.sortByColumns, columnsToSort = props.columnsToSort;\r\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), customFilters = _e[0], setCustomFilters = _e[1];\r\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), customColumns = _f[0], setCustomColumns = _f[1];\r\n var _g = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), sortInfo = _g[0], setSortInfo = _g[1];\r\n var _h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || []), selectedRowKeys = _h[0], setselectedRowKeys = _h[1];\r\n var _j = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), selectedAllRowKeys = _j[0], setSelectedAllRowKeys = _j[1];\r\n var _k = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), deselectAll = _k[0], setDeselectAll = _k[1];\r\n var onSelectChange = function (newSelectedRowKeys) {\r\n if (rowSelection.type === 'radio') {\r\n setselectedRowKeys(newSelectedRowKeys);\r\n return;\r\n }\r\n setselectedRowKeys(function (prevKeys) {\r\n var dataSourceIds = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (data) { return data[rowKeyValue]; });\r\n var oldKeys = prevKeys.filter(function (key) {\r\n return !(dataSourceIds === null || dataSourceIds === void 0 ? void 0 : dataSourceIds.includes(key));\r\n });\r\n return __spreadArray(__spreadArray([], oldKeys, true), newSelectedRowKeys, true);\r\n });\r\n setSelectedAllRowKeys(false);\r\n setDeselectAll(false);\r\n };\r\n var handleChange = function (pagination, filters, sorter, extra) {\r\n var getPagination = {\r\n currentPage: pagination.current,\r\n };\r\n var getSortAndPaginationInfo = __assign(__assign({}, sortInfo), getPagination);\r\n props.paginationInfo(getSortAndPaginationInfo);\r\n // SORT \r\n if (sortByColumns) {\r\n var field = sorter.field, order = sorter.order;\r\n var mappedOrder = null;\r\n if (order === \"ascend\") {\r\n mappedOrder = \"asc\";\r\n }\r\n else if (order === \"descend\") {\r\n mappedOrder = \"desc\";\r\n }\r\n if (field && mappedOrder) {\r\n props.columnsSortChange({ field: field, order: mappedOrder });\r\n }\r\n }\r\n };\r\n var setSorter = function (option) {\r\n onSort === null || onSort === void 0 ? void 0 : onSort(option.value.split('-')[0], option.direction);\r\n var sortData = {\r\n sortDirection: option.direction,\r\n sortValue: option.value.split('-')[0],\r\n };\r\n setSortInfo(sortData);\r\n };\r\n var selectAllRows = function () {\r\n if (selectedAllRowKeys) {\r\n setDeselectAll(true);\r\n }\r\n else {\r\n onSelectAllButtonClick === null || onSelectAllButtonClick === void 0 ? void 0 : onSelectAllButtonClick(); // Call the onSelectAllButtonClick callback\r\n }\r\n };\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n if (isTableDataRefreshed && !tableLoading || AllItemsShowing) {\r\n if (selectAllStatus && AllItemsShowing) {\r\n var allRowKeys = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (record) { return record[rowKeyValue]; });\r\n setselectedRowKeys(allRowKeys);\r\n setSelectedAllRowKeys(true);\r\n }\r\n }\r\n }, [isTableDataRefreshed, tableLoading, selectAllStatus, AllItemsShowing]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n if (deselectAll) {\r\n setselectedRowKeys([]);\r\n setDeselectAll(false);\r\n setSelectedAllRowKeys(false);\r\n }\r\n }, [deselectAll]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n props.rowSelectionInfo(selectedRowKeys);\r\n }, [selectedRowKeys]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a;\r\n if (dataSource && (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) > 0) {\r\n // Columns\r\n var columns = Object.keys(dataSource === null || dataSource === void 0 ? void 0 : dataSource[0]).map(function (key) {\r\n if (hiddenColumns === null || hiddenColumns === void 0 ? void 0 : hiddenColumns.includes(key)) {\r\n return;\r\n }\r\n var isColumnSortable = (columnsToSort === null || columnsToSort === void 0 ? void 0 : columnsToSort.includes(key)) ? sortByColumns : false;\r\n return ({\r\n title: headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key,\r\n dataIndex: key,\r\n key: key,\r\n ellipsis: false,\r\n sorter: isColumnSortable,\r\n });\r\n }).filter(function (el) { return el !== undefined; });\r\n var columnActions = {\r\n key: 'action',\r\n title: headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat('action')) : 'action',\r\n dataIndex: 6,\r\n ellipsis: false,\r\n render: function () {\r\n if (!(items === null || items === void 0 ? void 0 : items[0]))\r\n return null; // Verifica se o array items é nulo\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], __assign({ size: \"middle\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_7__[\"default\"], __assign({ menu: { items: items } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"a\", { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { style: { color: 'var(--color-blue)', transform: 'scale(1.6)' } }) }) })) })));\r\n },\r\n };\r\n items && columns.push(columnActions);\r\n setCustomColumns(columns);\r\n // Filters\r\n var dataKeysToFilter = Object.keys(dataSource === null || dataSource === void 0 ? void 0 : dataSource[0]).filter(function (el) { return fieldsToSort === null || fieldsToSort === void 0 ? void 0 : fieldsToSort.includes(el); });\r\n var filters = (_a = []).concat.apply(_a, __spreadArray(__spreadArray([], dataKeysToFilter.map(function (key) { return ({\r\n value: \"\".concat(key, \"-\").concat(sortBy.desc),\r\n label: \"\".concat(headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key, \" (\").concat(sortBy.desc, \")\"),\r\n direction: \"\".concat(sortBy.desc),\r\n }); }), false), dataKeysToFilter.map(function (key) { return ({\r\n value: \"\".concat(key, \"-\").concat(sortBy.asc),\r\n label: \"\".concat(headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key, \" (\").concat(sortBy.asc, \")\"),\r\n direction: \"\".concat(sortBy.asc),\r\n }); }), false));\r\n setCustomFilters(filters);\r\n }\r\n }, [dataSource]);\r\n var shouldRenderSortDropdown = customFilters.length > 0;\r\n var tableWrapperClasses = classnames__WEBPACK_IMPORTED_MODULE_4___default()((_a = {},\r\n _a[_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tableWrapperNoSelection] = !rowSelection,\r\n _a), [_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tableWrapper]);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: tableWrapperClasses }, { children: [shouldRenderSortDropdown &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], __assign({ style: { marginBottom: 16 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__[\"default\"], { style: { width: 'auto', minWidth: 200 }, placeholder: selectPlaceholder, onSelect: function (_, option) {\r\n setSorter(option);\r\n }, optionFilterProp: \"children\", filterOption: function (input, option) { var _a; return ((_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : '').includes(input); }, filterSort: function (optionA, optionB) { var _a, _b; return ((_a = optionA === null || optionA === void 0 ? void 0 : optionA.label) !== null && _a !== void 0 ? _a : '').toLowerCase().localeCompare(((_b = optionB === null || optionB === void 0 ? void 0 : optionB.label) !== null && _b !== void 0 ? _b : '').toLowerCase()); }, options: customFilters }) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_10__[\"default\"], __assign({ dataSource: dataSource, onChange: handleChange }, props, { columns: customColumns }, props.rowSelection ? ({\r\n rowSelection: {\r\n selectedRowKeys: selectedRowKeys,\r\n onChange: onSelectChange,\r\n type: (_b = props.rowSelection) === null || _b === void 0 ? void 0 : _b.type,\r\n }\r\n }) : null, { rowKey: rowKeyValue }, (tableMaxHeight ? { scroll: { y: tableMaxHeight } } : {}))), onSelectAllButtonClick &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Button__WEBPACK_IMPORTED_MODULE_5__.Button, __assign({ onClick: selectAllRows, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].selectAllRows }, { children: selectedAllRowKeys ? t('components.table.deselectAll') : t('components.table.selectAll') }))] })));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UYWJsZS9pbmRleC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9saWIvLi9zcmMvY29tcG9uZW50cy9UYWJsZS9pbmRleC50c3g/M2U4OCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXHJcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn07XHJcbnZhciBfX3NwcmVhZEFycmF5ID0gKHRoaXMgJiYgdGhpcy5fX3NwcmVhZEFycmF5KSB8fCBmdW5jdGlvbiAodG8sIGZyb20sIHBhY2spIHtcclxuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xyXG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xyXG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XHJcbn07XHJcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFNwYWNlLCBTZWxlY3QsIERyb3Bkb3duIH0gZnJvbSAnYW50ZCc7XHJcbmltcG9ydCB7IFRhYmxlIGFzIEFudGRUYWJsZSB9IGZyb20gJ2FudGQnO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc3R5bGVzLm1vZHVsZS5zY3NzJztcclxuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcclxuaW1wb3J0IHsgTW9yZU91dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xyXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcclxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi4vQnV0dG9uJztcclxuZXhwb3J0IHZhciBzb3J0Qnk7XHJcbihmdW5jdGlvbiAoc29ydEJ5KSB7XHJcbiAgICBzb3J0QnlbXCJhc2NcIl0gPSBcImFzY1wiO1xyXG4gICAgc29ydEJ5W1wiZGVzY1wiXSA9IFwiZGVzY1wiO1xyXG59KShzb3J0QnkgfHwgKHNvcnRCeSA9IHt9KSk7XHJcbmV4cG9ydCB2YXIgVGFibGUgPSBmdW5jdGlvbiAocHJvcHMpIHtcclxuICAgIHZhciBfYTtcclxuICAgIHZhciBfYjtcclxuICAgIHZhciB0ID0gdXNlVHJhbnNsYXRpb24oKS50O1xyXG4gICAgdmFyIF9jID0gcHJvcHMuZGF0YVNvdXJjZSwgZGF0YVNvdXJjZSA9IF9jID09PSB2b2lkIDAgPyB1bmRlZmluZWQgOiBfYywgZmllbGRzVG9Tb3J0ID0gcHJvcHMuZmllbGRzVG9Tb3J0LCBfZCA9IHByb3BzLnNlbGVjdFBsYWNlaG9sZGVyLCBzZWxlY3RQbGFjZWhvbGRlciA9IF9kID09PSB2b2lkIDAgPyAnU29ydCBCeScgOiBfZCwgb25Tb3J0ID0gcHJvcHMub25Tb3J0LCBoZWFkaW5nVHJhbnNsYXRpb25zS2V5ID0gcHJvcHMuaGVhZGluZ1RyYW5zbGF0aW9uc0tleSwgaXRlbXMgPSBwcm9wcy5hY3Rpb25zQXJyYXksIHJvd0tleVZhbHVlID0gcHJvcHMucm93S2V5VmFsdWUsIGhpZGRlbkNvbHVtbnMgPSBwcm9wcy5oaWRkZW5Db2x1bW5zLCByb3dTZWxlY3Rpb24gPSBwcm9wcy5yb3dTZWxlY3Rpb24sIG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2sgPSBwcm9wcy5vblNlbGVjdEFsbEJ1dHRvbkNsaWNrLCBBbGxJdGVtc1Nob3dpbmcgPSBwcm9wcy5BbGxJdGVtc1Nob3dpbmcsIHNlbGVjdEFsbFN0YXR1cyA9IHByb3BzLnNlbGVjdEFsbFN0YXR1cywgaXNUYWJsZURhdGFSZWZyZXNoZWQgPSBwcm9wcy5pc1RhYmxlRGF0YVJlZnJlc2hlZCwgdGFibGVMb2FkaW5nID0gcHJvcHMudGFibGVMb2FkaW5nLCB0YWJsZU1heEhlaWdodCA9IHByb3BzLnRhYmxlTWF4SGVpZ2h0LCBzb3J0QnlDb2x1bW5zID0gcHJvcHMuc29ydEJ5Q29sdW1ucywgY29sdW1uc1RvU29ydCA9IHByb3BzLmNvbHVtbnNUb1NvcnQ7XHJcbiAgICB2YXIgX2UgPSB1c2VTdGF0ZShbXSksIGN1c3RvbUZpbHRlcnMgPSBfZVswXSwgc2V0Q3VzdG9tRmlsdGVycyA9IF9lWzFdO1xyXG4gICAgdmFyIF9mID0gdXNlU3RhdGUoW10pLCBjdXN0b21Db2x1bW5zID0gX2ZbMF0sIHNldEN1c3RvbUNvbHVtbnMgPSBfZlsxXTtcclxuICAgIHZhciBfZyA9IHVzZVN0YXRlKFtdKSwgc29ydEluZm8gPSBfZ1swXSwgc2V0U29ydEluZm8gPSBfZ1sxXTtcclxuICAgIHZhciBfaCA9IHVzZVN0YXRlKChyb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24uc2VsZWN0ZWRSb3dLZXlzKSB8fCBbXSksIHNlbGVjdGVkUm93S2V5cyA9IF9oWzBdLCBzZXRzZWxlY3RlZFJvd0tleXMgPSBfaFsxXTtcclxuICAgIHZhciBfaiA9IHVzZVN0YXRlKGZhbHNlKSwgc2VsZWN0ZWRBbGxSb3dLZXlzID0gX2pbMF0sIHNldFNlbGVjdGVkQWxsUm93S2V5cyA9IF9qWzFdO1xyXG4gICAgdmFyIF9rID0gdXNlU3RhdGUoZmFsc2UpLCBkZXNlbGVjdEFsbCA9IF9rWzBdLCBzZXREZXNlbGVjdEFsbCA9IF9rWzFdO1xyXG4gICAgdmFyIG9uU2VsZWN0Q2hhbmdlID0gZnVuY3Rpb24gKG5ld1NlbGVjdGVkUm93S2V5cykge1xyXG4gICAgICAgIGlmIChyb3dTZWxlY3Rpb24udHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMobmV3U2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMoZnVuY3Rpb24gKHByZXZLZXlzKSB7XHJcbiAgICAgICAgICAgIHZhciBkYXRhU291cmNlSWRzID0gZGF0YVNvdXJjZSA9PT0gbnVsbCB8fCBkYXRhU291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhU291cmNlLm1hcChmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YVtyb3dLZXlWYWx1ZV07IH0pO1xyXG4gICAgICAgICAgICB2YXIgb2xkS2V5cyA9IHByZXZLZXlzLmZpbHRlcihmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIShkYXRhU291cmNlSWRzID09PSBudWxsIHx8IGRhdGFTb3VyY2VJZHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2VJZHMuaW5jbHVkZXMoa2V5KSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBvbGRLZXlzLCB0cnVlKSwgbmV3U2VsZWN0ZWRSb3dLZXlzLCB0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXRTZWxlY3RlZEFsbFJvd0tleXMoZmFsc2UpO1xyXG4gICAgICAgIHNldERlc2VsZWN0QWxsKGZhbHNlKTtcclxuICAgIH07XHJcbiAgICB2YXIgaGFuZGxlQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgICB2YXIgZ2V0UGFnaW5hdGlvbiA9IHtcclxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBnZXRTb3J0QW5kUGFnaW5hdGlvbkluZm8gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc29ydEluZm8pLCBnZXRQYWdpbmF0aW9uKTtcclxuICAgICAgICBwcm9wcy5wYWdpbmF0aW9uSW5mbyhnZXRTb3J0QW5kUGFnaW5hdGlvbkluZm8pO1xyXG4gICAgICAgIC8vIFNPUlQgXHJcbiAgICAgICAgaWYgKHNvcnRCeUNvbHVtbnMpIHtcclxuICAgICAgICAgICAgdmFyIGZpZWxkID0gc29ydGVyLmZpZWxkLCBvcmRlciA9IHNvcnRlci5vcmRlcjtcclxuICAgICAgICAgICAgdmFyIG1hcHBlZE9yZGVyID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKG9yZGVyID09PSBcImFzY2VuZFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXBwZWRPcmRlciA9IFwiYXNjXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAob3JkZXIgPT09IFwiZGVzY2VuZFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXBwZWRPcmRlciA9IFwiZGVzY1wiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBtYXBwZWRPcmRlcikge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuY29sdW1uc1NvcnRDaGFuZ2UoeyBmaWVsZDogZmllbGQsIG9yZGVyOiBtYXBwZWRPcmRlciB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgc2V0U29ydGVyID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgICAgIG9uU29ydCA9PT0gbnVsbCB8fCBvblNvcnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU29ydChvcHRpb24udmFsdWUuc3BsaXQoJy0nKVswXSwgb3B0aW9uLmRpcmVjdGlvbik7XHJcbiAgICAgICAgdmFyIHNvcnREYXRhID0ge1xyXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiBvcHRpb24uZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICBzb3J0VmFsdWU6IG9wdGlvbi52YWx1ZS5zcGxpdCgnLScpWzBdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2V0U29ydEluZm8oc29ydERhdGEpO1xyXG4gICAgfTtcclxuICAgIHZhciBzZWxlY3RBbGxSb3dzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEFsbFJvd0tleXMpIHtcclxuICAgICAgICAgICAgc2V0RGVzZWxlY3RBbGwodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvblNlbGVjdEFsbEJ1dHRvbkNsaWNrID09PSBudWxsIHx8IG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2soKTsgLy8gQ2FsbCB0aGUgb25TZWxlY3RBbGxCdXR0b25DbGljayBjYWxsYmFja1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChpc1RhYmxlRGF0YVJlZnJlc2hlZCAmJiAhdGFibGVMb2FkaW5nIHx8IEFsbEl0ZW1zU2hvd2luZykge1xyXG4gICAgICAgICAgICBpZiAoc2VsZWN0QWxsU3RhdHVzICYmIEFsbEl0ZW1zU2hvd2luZykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFsbFJvd0tleXMgPSBkYXRhU291cmNlID09PSBudWxsIHx8IGRhdGFTb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2UubWFwKGZ1bmN0aW9uIChyZWNvcmQpIHsgcmV0dXJuIHJlY29yZFtyb3dLZXlWYWx1ZV07IH0pO1xyXG4gICAgICAgICAgICAgICAgc2V0c2VsZWN0ZWRSb3dLZXlzKGFsbFJvd0tleXMpO1xyXG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRBbGxSb3dLZXlzKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzVGFibGVEYXRhUmVmcmVzaGVkLCB0YWJsZUxvYWRpbmcsIHNlbGVjdEFsbFN0YXR1cywgQWxsSXRlbXNTaG93aW5nXSk7XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChkZXNlbGVjdEFsbCkge1xyXG4gICAgICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMoW10pO1xyXG4gICAgICAgICAgICBzZXREZXNlbGVjdEFsbChmYWxzZSk7XHJcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQWxsUm93S2V5cyhmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Rlc2VsZWN0QWxsXSk7XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHByb3BzLnJvd1NlbGVjdGlvbkluZm8oc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgIH0sIFtzZWxlY3RlZFJvd0tleXNdKTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIGlmIChkYXRhU291cmNlICYmIChkYXRhU291cmNlID09PSBudWxsIHx8IGRhdGFTb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2UubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICAgICAgLy8gQ29sdW1uc1xyXG4gICAgICAgICAgICB2YXIgY29sdW1ucyA9IE9iamVjdC5rZXlzKGRhdGFTb3VyY2UgPT09IG51bGwgfHwgZGF0YVNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YVNvdXJjZVswXSkubWFwKGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRkZW5Db2x1bW5zID09PSBudWxsIHx8IGhpZGRlbkNvbHVtbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGhpZGRlbkNvbHVtbnMuaW5jbHVkZXMoa2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhciBpc0NvbHVtblNvcnRhYmxlID0gKGNvbHVtbnNUb1NvcnQgPT09IG51bGwgfHwgY29sdW1uc1RvU29ydCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sdW1uc1RvU29ydC5pbmNsdWRlcyhrZXkpKSA/IHNvcnRCeUNvbHVtbnMgOiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBoZWFkaW5nVHJhbnNsYXRpb25zS2V5ID8gdChcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5LCBcIi5cIikuY29uY2F0KGtleSkpIDoga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFJbmRleDoga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0ZXI6IGlzQ29sdW1uU29ydGFibGUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSkuZmlsdGVyKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWwgIT09IHVuZGVmaW5lZDsgfSk7XHJcbiAgICAgICAgICAgIHZhciBjb2x1bW5BY3Rpb25zID0ge1xyXG4gICAgICAgICAgICAgICAga2V5OiAnYWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIHRpdGxlOiBoZWFkaW5nVHJhbnNsYXRpb25zS2V5ID8gdChcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5LCBcIi5cIikuY29uY2F0KCdhY3Rpb24nKSkgOiAnYWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIGRhdGFJbmRleDogNixcclxuICAgICAgICAgICAgICAgIGVsbGlwc2lzOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHJlbmRlcjogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghKGl0ZW1zID09PSBudWxsIHx8IGl0ZW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpdGVtc1swXSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBWZXJpZmljYSBzZSBvIGFycmF5IGl0ZW1zIMOpIG51bG9cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goU3BhY2UsIF9fYXNzaWduKHsgc2l6ZTogXCJtaWRkbGVcIiB9LCB7IGNoaWxkcmVuOiBfanN4KERyb3Bkb3duLCBfX2Fzc2lnbih7IG1lbnU6IHsgaXRlbXM6IGl0ZW1zIH0gfSwgeyBjaGlsZHJlbjogX2pzeChcImFcIiwgeyBjaGlsZHJlbjogX2pzeChNb3JlT3V0bGluZWQsIHsgc3R5bGU6IHsgY29sb3I6ICd2YXIoLS1jb2xvci1ibHVlKScsIHRyYW5zZm9ybTogJ3NjYWxlKDEuNiknIH0gfSkgfSkgfSkpIH0pKSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBpdGVtcyAmJiBjb2x1bW5zLnB1c2goY29sdW1uQWN0aW9ucyk7XHJcbiAgICAgICAgICAgIHNldEN1c3RvbUNvbHVtbnMoY29sdW1ucyk7XHJcbiAgICAgICAgICAgIC8vIEZpbHRlcnNcclxuICAgICAgICAgICAgdmFyIGRhdGFLZXlzVG9GaWx0ZXIgPSBPYmplY3Qua2V5cyhkYXRhU291cmNlID09PSBudWxsIHx8IGRhdGFTb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2VbMF0pLmZpbHRlcihmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGZpZWxkc1RvU29ydCA9PT0gbnVsbCB8fCBmaWVsZHNUb1NvcnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkc1RvU29ydC5pbmNsdWRlcyhlbCk7IH0pO1xyXG4gICAgICAgICAgICB2YXIgZmlsdGVycyA9IChfYSA9IFtdKS5jb25jYXQuYXBwbHkoX2EsIF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgZGF0YUtleXNUb0ZpbHRlci5tYXAoZnVuY3Rpb24gKGtleSkgeyByZXR1cm4gKHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLmNvbmNhdChrZXksIFwiLVwiKS5jb25jYXQoc29ydEJ5LmRlc2MpLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiXCIuY29uY2F0KGhlYWRpbmdUcmFuc2xhdGlvbnNLZXkgPyB0KFwiXCIuY29uY2F0KGhlYWRpbmdUcmFuc2xhdGlvbnNLZXksIFwiLlwiKS5jb25jYXQoa2V5KSkgOiBrZXksIFwiIChcIikuY29uY2F0KHNvcnRCeS5kZXNjLCBcIilcIiksXHJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiXCIuY29uY2F0KHNvcnRCeS5kZXNjKSxcclxuICAgICAgICAgICAgfSk7IH0pLCBmYWxzZSksIGRhdGFLZXlzVG9GaWx0ZXIubWFwKGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuICh7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIi5jb25jYXQoa2V5LCBcIi1cIikuY29uY2F0KHNvcnRCeS5hc2MpLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiXCIuY29uY2F0KGhlYWRpbmdUcmFuc2xhdGlvbnNLZXkgPyB0KFwiXCIuY29uY2F0KGhlYWRpbmdUcmFuc2xhdGlvbnNLZXksIFwiLlwiKS5jb25jYXQoa2V5KSkgOiBrZXksIFwiIChcIikuY29uY2F0KHNvcnRCeS5hc2MsIFwiKVwiKSxcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogXCJcIi5jb25jYXQoc29ydEJ5LmFzYyksXHJcbiAgICAgICAgICAgIH0pOyB9KSwgZmFsc2UpKTtcclxuICAgICAgICAgICAgc2V0Q3VzdG9tRmlsdGVycyhmaWx0ZXJzKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbZGF0YVNvdXJjZV0pO1xyXG4gICAgdmFyIHNob3VsZFJlbmRlclNvcnREcm9wZG93biA9IGN1c3RvbUZpbHRlcnMubGVuZ3RoID4gMDtcclxuICAgIHZhciB0YWJsZVdyYXBwZXJDbGFzc2VzID0gY2xhc3NuYW1lcygoX2EgPSB7fSxcclxuICAgICAgICBfYVtzdHlsZXMudGFibGVXcmFwcGVyTm9TZWxlY3Rpb25dID0gIXJvd1NlbGVjdGlvbixcclxuICAgICAgICBfYSksIFtzdHlsZXMudGFibGVXcmFwcGVyXSk7XHJcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiB0YWJsZVdyYXBwZXJDbGFzc2VzIH0sIHsgY2hpbGRyZW46IFtzaG91bGRSZW5kZXJTb3J0RHJvcGRvd24gJiZcclxuICAgICAgICAgICAgICAgIF9qc3goU3BhY2UsIF9fYXNzaWduKHsgc3R5bGU6IHsgbWFyZ2luQm90dG9tOiAxNiB9IH0sIHsgY2hpbGRyZW46IF9qc3goU2VsZWN0LCB7IHN0eWxlOiB7IHdpZHRoOiAnYXV0bycsIG1pbldpZHRoOiAyMDAgfSwgcGxhY2Vob2xkZXI6IHNlbGVjdFBsYWNlaG9sZGVyLCBvblNlbGVjdDogZnVuY3Rpb24gKF8sIG9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U29ydGVyKG9wdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9wdGlvbkZpbHRlclByb3A6IFwiY2hpbGRyZW5cIiwgZmlsdGVyT3B0aW9uOiBmdW5jdGlvbiAoaW5wdXQsIG9wdGlvbikgeyB2YXIgX2E7IHJldHVybiAoKF9hID0gb3B0aW9uID09PSBudWxsIHx8IG9wdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9uLmxhYmVsKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJykuaW5jbHVkZXMoaW5wdXQpOyB9LCBmaWx0ZXJTb3J0OiBmdW5jdGlvbiAob3B0aW9uQSwgb3B0aW9uQikgeyB2YXIgX2EsIF9iOyByZXR1cm4gKChfYSA9IG9wdGlvbkEgPT09IG51bGwgfHwgb3B0aW9uQSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9uQS5sYWJlbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZSgoKF9iID0gb3B0aW9uQiA9PT0gbnVsbCB8fCBvcHRpb25CID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRpb25CLmxhYmVsKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAnJykudG9Mb3dlckNhc2UoKSk7IH0sIG9wdGlvbnM6IGN1c3RvbUZpbHRlcnMgfSkgfSkpLCBfanN4KEFudGRUYWJsZSwgX19hc3NpZ24oeyBkYXRhU291cmNlOiBkYXRhU291cmNlLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlIH0sIHByb3BzLCB7IGNvbHVtbnM6IGN1c3RvbUNvbHVtbnMgfSwgcHJvcHMucm93U2VsZWN0aW9uID8gKHtcclxuICAgICAgICAgICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBvblNlbGVjdENoYW5nZSxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAoX2IgPSBwcm9wcy5yb3dTZWxlY3Rpb24pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50eXBlLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSA6IG51bGwsIHsgcm93S2V5OiByb3dLZXlWYWx1ZSB9LCAodGFibGVNYXhIZWlnaHQgPyB7IHNjcm9sbDogeyB5OiB0YWJsZU1heEhlaWdodCB9IH0gOiB7fSkpKSwgb25TZWxlY3RBbGxCdXR0b25DbGljayAmJlxyXG4gICAgICAgICAgICAgICAgX2pzeChCdXR0b24sIF9fYXNzaWduKHsgb25DbGljazogc2VsZWN0QWxsUm93cywgY2xhc3NOYW1lOiBzdHlsZXMuc2VsZWN0QWxsUm93cyB9LCB7IGNoaWxkcmVuOiBzZWxlY3RlZEFsbFJvd0tleXMgPyB0KCdjb21wb25lbnRzLnRhYmxlLmRlc2VsZWN0QWxsJykgOiB0KCdjb21wb25lbnRzLnRhYmxlLnNlbGVjdEFsbCcpIH0pKV0gfSkpKTtcclxufTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Table/index.tsx\n");
|
|
11050
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Table\": function() { return /* binding */ Table; },\n/* harmony export */ \"sortBy\": function() { return /* binding */ sortBy; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/space/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/dropdown/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/select/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/table/index.js\");\n/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.module.scss */ \"./src/components/Table/styles.module.scss\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ \"react-i18next\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/icons/MoreOutlined.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Button */ \"./src/components/Button/index.tsx\");\nvar __assign = (undefined && undefined.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar sortBy;\r\n(function (sortBy) {\r\n sortBy[\"asc\"] = \"asc\";\r\n sortBy[\"desc\"] = \"desc\";\r\n})(sortBy || (sortBy = {}));\r\nvar Table = function (props) {\r\n var _a;\r\n var _b;\r\n var t = (0,react_i18next__WEBPACK_IMPORTED_MODULE_3__.useTranslation)().t;\r\n var _c = props.dataSource, dataSource = _c === void 0 ? undefined : _c, fieldsToSort = props.fieldsToSort, _d = props.selectPlaceholder, selectPlaceholder = _d === void 0 ? 'Sort By' : _d, onSort = props.onSort, headingTranslationsKey = props.headingTranslationsKey, items = props.actionsArray, rowKeyValue = props.rowKeyValue, hiddenColumns = props.hiddenColumns, rowSelection = props.rowSelection, onSelectAllButtonClick = props.onSelectAllButtonClick, AllItemsShowing = props.AllItemsShowing, selectAllStatus = props.selectAllStatus, isTableDataRefreshed = props.isTableDataRefreshed, tableLoading = props.tableLoading, tableMaxHeight = props.tableMaxHeight, sortByColumns = props.sortByColumns, columnsToSort = props.columnsToSort, fixedColumns = props.fixedColumns;\r\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), customFilters = _e[0], setCustomFilters = _e[1];\r\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), customColumns = _f[0], setCustomColumns = _f[1];\r\n var _g = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), sortInfo = _g[0], setSortInfo = _g[1];\r\n var _h = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) || []), selectedRowKeys = _h[0], setselectedRowKeys = _h[1];\r\n var _j = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), selectedAllRowKeys = _j[0], setSelectedAllRowKeys = _j[1];\r\n var _k = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), deselectAll = _k[0], setDeselectAll = _k[1];\r\n var onSelectChange = function (newSelectedRowKeys) {\r\n if (rowSelection.type === 'radio') {\r\n setselectedRowKeys(newSelectedRowKeys);\r\n return;\r\n }\r\n setselectedRowKeys(function (prevKeys) {\r\n var dataSourceIds = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (data) { return data[rowKeyValue]; });\r\n var oldKeys = prevKeys.filter(function (key) {\r\n return !(dataSourceIds === null || dataSourceIds === void 0 ? void 0 : dataSourceIds.includes(key));\r\n });\r\n return __spreadArray(__spreadArray([], oldKeys, true), newSelectedRowKeys, true);\r\n });\r\n setSelectedAllRowKeys(false);\r\n setDeselectAll(false);\r\n };\r\n var handleChange = function (pagination, filters, sorter, extra) {\r\n var getPagination = {\r\n currentPage: pagination.current,\r\n };\r\n var getSortAndPaginationInfo = __assign(__assign({}, sortInfo), getPagination);\r\n props.paginationInfo(getSortAndPaginationInfo);\r\n // SORT \r\n if (sortByColumns) {\r\n var field = sorter.field, order = sorter.order;\r\n var mappedOrder = null;\r\n if (order === \"ascend\") {\r\n mappedOrder = \"asc\";\r\n }\r\n else if (order === \"descend\") {\r\n mappedOrder = \"desc\";\r\n }\r\n if (field && mappedOrder) {\r\n props.columnsSortChange({ field: field, order: mappedOrder });\r\n }\r\n }\r\n };\r\n var setSorter = function (option) {\r\n onSort === null || onSort === void 0 ? void 0 : onSort(option.value.split('-')[0], option.direction);\r\n var sortData = {\r\n sortDirection: option.direction,\r\n sortValue: option.value.split('-')[0],\r\n };\r\n setSortInfo(sortData);\r\n };\r\n var selectAllRows = function () {\r\n if (selectedAllRowKeys) {\r\n setDeselectAll(true);\r\n }\r\n else {\r\n onSelectAllButtonClick === null || onSelectAllButtonClick === void 0 ? void 0 : onSelectAllButtonClick(); // Call the onSelectAllButtonClick callback\r\n }\r\n };\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n if (isTableDataRefreshed && !tableLoading || AllItemsShowing) {\r\n if (selectAllStatus && AllItemsShowing) {\r\n var allRowKeys = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (record) { return record[rowKeyValue]; });\r\n setselectedRowKeys(allRowKeys);\r\n setSelectedAllRowKeys(true);\r\n }\r\n }\r\n }, [isTableDataRefreshed, tableLoading, selectAllStatus, AllItemsShowing]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n if (deselectAll) {\r\n setselectedRowKeys([]);\r\n setDeselectAll(false);\r\n setSelectedAllRowKeys(false);\r\n }\r\n }, [deselectAll]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n props.rowSelectionInfo(selectedRowKeys);\r\n }, [selectedRowKeys]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a;\r\n if (dataSource && (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) > 0) {\r\n // Columns\r\n var columns_1 = Object.keys(dataSource === null || dataSource === void 0 ? void 0 : dataSource[0]).map(function (key) {\r\n if (hiddenColumns === null || hiddenColumns === void 0 ? void 0 : hiddenColumns.includes(key)) {\r\n return;\r\n }\r\n var isColumnSortable = (columnsToSort === null || columnsToSort === void 0 ? void 0 : columnsToSort.includes(key)) ? sortByColumns : false;\r\n var column = {\r\n title: headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key,\r\n dataIndex: key,\r\n key: key,\r\n ellipsis: false,\r\n sorter: isColumnSortable,\r\n // No fixed property here, we'll add it later based on the fixedColumns prop\r\n };\r\n return column;\r\n }).filter(function (el) { return el !== undefined; });\r\n var columnActions = {\r\n key: 'action',\r\n title: headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat('action')) : 'action',\r\n dataIndex: 6,\r\n ellipsis: false,\r\n render: function () {\r\n if (!(items === null || items === void 0 ? void 0 : items[0]))\r\n return null; // Verifica se o array items é nulo\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], __assign({ size: \"middle\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_7__[\"default\"], __assign({ menu: { items: items } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"a\", { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__[\"default\"], { style: { color: 'var(--color-blue)', transform: 'scale(1.6)' } }) }) })) })));\r\n },\r\n };\r\n items && columns_1.push(columnActions);\r\n if (fixedColumns) {\r\n fixedColumns.forEach(function (column) {\r\n var dataIndex = column.dataIndex, side = column.side;\r\n var foundColumn = columns_1.find(function (col) { return col.dataIndex === dataIndex; });\r\n if (foundColumn) {\r\n foundColumn.fixed = side;\r\n }\r\n });\r\n }\r\n setCustomColumns(columns_1);\r\n // Filters\r\n var dataKeysToFilter = Object.keys(dataSource === null || dataSource === void 0 ? void 0 : dataSource[0]).filter(function (el) { return fieldsToSort === null || fieldsToSort === void 0 ? void 0 : fieldsToSort.includes(el); });\r\n var filters = (_a = []).concat.apply(_a, __spreadArray(__spreadArray([], dataKeysToFilter.map(function (key) { return ({\r\n value: \"\".concat(key, \"-\").concat(sortBy.desc),\r\n label: \"\".concat(headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key, \" (\").concat(sortBy.desc, \")\"),\r\n direction: \"\".concat(sortBy.desc),\r\n }); }), false), dataKeysToFilter.map(function (key) { return ({\r\n value: \"\".concat(key, \"-\").concat(sortBy.asc),\r\n label: \"\".concat(headingTranslationsKey ? t(\"\".concat(headingTranslationsKey, \".\").concat(key)) : key, \" (\").concat(sortBy.asc, \")\"),\r\n direction: \"\".concat(sortBy.asc),\r\n }); }), false));\r\n setCustomFilters(filters);\r\n }\r\n }, [dataSource]);\r\n var shouldRenderSortDropdown = customFilters.length > 0;\r\n var tableWrapperClasses = classnames__WEBPACK_IMPORTED_MODULE_4___default()((_a = {},\r\n _a[_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tableWrapperNoSelection] = !rowSelection,\r\n _a), [_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tableWrapper]);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: tableWrapperClasses }, { children: [shouldRenderSortDropdown &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], __assign({ style: { marginBottom: 16 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_9__[\"default\"], { style: { width: 'auto', minWidth: 200 }, placeholder: selectPlaceholder, onSelect: function (_, option) {\r\n setSorter(option);\r\n }, optionFilterProp: \"children\", filterOption: function (input, option) { var _a; return ((_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : '').includes(input); }, filterSort: function (optionA, optionB) { var _a, _b; return ((_a = optionA === null || optionA === void 0 ? void 0 : optionA.label) !== null && _a !== void 0 ? _a : '').toLowerCase().localeCompare(((_b = optionB === null || optionB === void 0 ? void 0 : optionB.label) !== null && _b !== void 0 ? _b : '').toLowerCase()); }, options: customFilters }) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_10__[\"default\"], __assign({ dataSource: dataSource, onChange: handleChange }, props, { columns: customColumns }, props.rowSelection ? ({\r\n rowSelection: {\r\n selectedRowKeys: selectedRowKeys,\r\n onChange: onSelectChange,\r\n type: (_b = props.rowSelection) === null || _b === void 0 ? void 0 : _b.type,\r\n }\r\n }) : null, { rowKey: rowKeyValue }, (tableMaxHeight ? { scroll: { y: tableMaxHeight } } : {}))), onSelectAllButtonClick &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Button__WEBPACK_IMPORTED_MODULE_5__.Button, __assign({ onClick: selectAllRows, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].selectAllRows }, { children: selectedAllRowKeys ? t('components.table.deselectAll') : t('components.table.selectAll') }))] })));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UYWJsZS9pbmRleC50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbGliLy4vc3JjL2NvbXBvbmVudHMvVGFibGUvaW5kZXgudHN4PzNlODgiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxyXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59O1xyXG52YXIgX19zcHJlYWRBcnJheSA9ICh0aGlzICYmIHRoaXMuX19zcHJlYWRBcnJheSkgfHwgZnVuY3Rpb24gKHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59O1xyXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xyXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBTcGFjZSwgU2VsZWN0LCBEcm9wZG93biB9IGZyb20gJ2FudGQnO1xyXG5pbXBvcnQgeyBUYWJsZSBhcyBBbnRkVGFibGUgfSBmcm9tICdhbnRkJztcclxuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5tb2R1bGUuc2Nzcyc7XHJcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XHJcbmltcG9ydCB7IE1vcmVPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcclxuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XHJcbmV4cG9ydCB2YXIgc29ydEJ5O1xyXG4oZnVuY3Rpb24gKHNvcnRCeSkge1xyXG4gICAgc29ydEJ5W1wiYXNjXCJdID0gXCJhc2NcIjtcclxuICAgIHNvcnRCeVtcImRlc2NcIl0gPSBcImRlc2NcIjtcclxufSkoc29ydEJ5IHx8IChzb3J0QnkgPSB7fSkpO1xyXG5leHBvcnQgdmFyIFRhYmxlID0gZnVuY3Rpb24gKHByb3BzKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICB2YXIgX2I7XHJcbiAgICB2YXIgdCA9IHVzZVRyYW5zbGF0aW9uKCkudDtcclxuICAgIHZhciBfYyA9IHByb3BzLmRhdGFTb3VyY2UsIGRhdGFTb3VyY2UgPSBfYyA9PT0gdm9pZCAwID8gdW5kZWZpbmVkIDogX2MsIGZpZWxkc1RvU29ydCA9IHByb3BzLmZpZWxkc1RvU29ydCwgX2QgPSBwcm9wcy5zZWxlY3RQbGFjZWhvbGRlciwgc2VsZWN0UGxhY2Vob2xkZXIgPSBfZCA9PT0gdm9pZCAwID8gJ1NvcnQgQnknIDogX2QsIG9uU29ydCA9IHByb3BzLm9uU29ydCwgaGVhZGluZ1RyYW5zbGF0aW9uc0tleSA9IHByb3BzLmhlYWRpbmdUcmFuc2xhdGlvbnNLZXksIGl0ZW1zID0gcHJvcHMuYWN0aW9uc0FycmF5LCByb3dLZXlWYWx1ZSA9IHByb3BzLnJvd0tleVZhbHVlLCBoaWRkZW5Db2x1bW5zID0gcHJvcHMuaGlkZGVuQ29sdW1ucywgcm93U2VsZWN0aW9uID0gcHJvcHMucm93U2VsZWN0aW9uLCBvblNlbGVjdEFsbEJ1dHRvbkNsaWNrID0gcHJvcHMub25TZWxlY3RBbGxCdXR0b25DbGljaywgQWxsSXRlbXNTaG93aW5nID0gcHJvcHMuQWxsSXRlbXNTaG93aW5nLCBzZWxlY3RBbGxTdGF0dXMgPSBwcm9wcy5zZWxlY3RBbGxTdGF0dXMsIGlzVGFibGVEYXRhUmVmcmVzaGVkID0gcHJvcHMuaXNUYWJsZURhdGFSZWZyZXNoZWQsIHRhYmxlTG9hZGluZyA9IHByb3BzLnRhYmxlTG9hZGluZywgdGFibGVNYXhIZWlnaHQgPSBwcm9wcy50YWJsZU1heEhlaWdodCwgc29ydEJ5Q29sdW1ucyA9IHByb3BzLnNvcnRCeUNvbHVtbnMsIGNvbHVtbnNUb1NvcnQgPSBwcm9wcy5jb2x1bW5zVG9Tb3J0LCBmaXhlZENvbHVtbnMgPSBwcm9wcy5maXhlZENvbHVtbnM7XHJcbiAgICB2YXIgX2UgPSB1c2VTdGF0ZShbXSksIGN1c3RvbUZpbHRlcnMgPSBfZVswXSwgc2V0Q3VzdG9tRmlsdGVycyA9IF9lWzFdO1xyXG4gICAgdmFyIF9mID0gdXNlU3RhdGUoW10pLCBjdXN0b21Db2x1bW5zID0gX2ZbMF0sIHNldEN1c3RvbUNvbHVtbnMgPSBfZlsxXTtcclxuICAgIHZhciBfZyA9IHVzZVN0YXRlKFtdKSwgc29ydEluZm8gPSBfZ1swXSwgc2V0U29ydEluZm8gPSBfZ1sxXTtcclxuICAgIHZhciBfaCA9IHVzZVN0YXRlKChyb3dTZWxlY3Rpb24gPT09IG51bGwgfHwgcm93U2VsZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByb3dTZWxlY3Rpb24uc2VsZWN0ZWRSb3dLZXlzKSB8fCBbXSksIHNlbGVjdGVkUm93S2V5cyA9IF9oWzBdLCBzZXRzZWxlY3RlZFJvd0tleXMgPSBfaFsxXTtcclxuICAgIHZhciBfaiA9IHVzZVN0YXRlKGZhbHNlKSwgc2VsZWN0ZWRBbGxSb3dLZXlzID0gX2pbMF0sIHNldFNlbGVjdGVkQWxsUm93S2V5cyA9IF9qWzFdO1xyXG4gICAgdmFyIF9rID0gdXNlU3RhdGUoZmFsc2UpLCBkZXNlbGVjdEFsbCA9IF9rWzBdLCBzZXREZXNlbGVjdEFsbCA9IF9rWzFdO1xyXG4gICAgdmFyIG9uU2VsZWN0Q2hhbmdlID0gZnVuY3Rpb24gKG5ld1NlbGVjdGVkUm93S2V5cykge1xyXG4gICAgICAgIGlmIChyb3dTZWxlY3Rpb24udHlwZSA9PT0gJ3JhZGlvJykge1xyXG4gICAgICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMobmV3U2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMoZnVuY3Rpb24gKHByZXZLZXlzKSB7XHJcbiAgICAgICAgICAgIHZhciBkYXRhU291cmNlSWRzID0gZGF0YVNvdXJjZSA9PT0gbnVsbCB8fCBkYXRhU291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhU291cmNlLm1hcChmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gZGF0YVtyb3dLZXlWYWx1ZV07IH0pO1xyXG4gICAgICAgICAgICB2YXIgb2xkS2V5cyA9IHByZXZLZXlzLmZpbHRlcihmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIShkYXRhU291cmNlSWRzID09PSBudWxsIHx8IGRhdGFTb3VyY2VJZHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2VJZHMuaW5jbHVkZXMoa2V5KSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBvbGRLZXlzLCB0cnVlKSwgbmV3U2VsZWN0ZWRSb3dLZXlzLCB0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXRTZWxlY3RlZEFsbFJvd0tleXMoZmFsc2UpO1xyXG4gICAgICAgIHNldERlc2VsZWN0QWxsKGZhbHNlKTtcclxuICAgIH07XHJcbiAgICB2YXIgaGFuZGxlQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgICB2YXIgZ2V0UGFnaW5hdGlvbiA9IHtcclxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBnZXRTb3J0QW5kUGFnaW5hdGlvbkluZm8gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgc29ydEluZm8pLCBnZXRQYWdpbmF0aW9uKTtcclxuICAgICAgICBwcm9wcy5wYWdpbmF0aW9uSW5mbyhnZXRTb3J0QW5kUGFnaW5hdGlvbkluZm8pO1xyXG4gICAgICAgIC8vIFNPUlQgXHJcbiAgICAgICAgaWYgKHNvcnRCeUNvbHVtbnMpIHtcclxuICAgICAgICAgICAgdmFyIGZpZWxkID0gc29ydGVyLmZpZWxkLCBvcmRlciA9IHNvcnRlci5vcmRlcjtcclxuICAgICAgICAgICAgdmFyIG1hcHBlZE9yZGVyID0gbnVsbDtcclxuICAgICAgICAgICAgaWYgKG9yZGVyID09PSBcImFzY2VuZFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXBwZWRPcmRlciA9IFwiYXNjXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAob3JkZXIgPT09IFwiZGVzY2VuZFwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXBwZWRPcmRlciA9IFwiZGVzY1wiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChmaWVsZCAmJiBtYXBwZWRPcmRlcikge1xyXG4gICAgICAgICAgICAgICAgcHJvcHMuY29sdW1uc1NvcnRDaGFuZ2UoeyBmaWVsZDogZmllbGQsIG9yZGVyOiBtYXBwZWRPcmRlciB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgc2V0U29ydGVyID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgICAgIG9uU29ydCA9PT0gbnVsbCB8fCBvblNvcnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU29ydChvcHRpb24udmFsdWUuc3BsaXQoJy0nKVswXSwgb3B0aW9uLmRpcmVjdGlvbik7XHJcbiAgICAgICAgdmFyIHNvcnREYXRhID0ge1xyXG4gICAgICAgICAgICBzb3J0RGlyZWN0aW9uOiBvcHRpb24uZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICBzb3J0VmFsdWU6IG9wdGlvbi52YWx1ZS5zcGxpdCgnLScpWzBdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2V0U29ydEluZm8oc29ydERhdGEpO1xyXG4gICAgfTtcclxuICAgIHZhciBzZWxlY3RBbGxSb3dzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEFsbFJvd0tleXMpIHtcclxuICAgICAgICAgICAgc2V0RGVzZWxlY3RBbGwodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBvblNlbGVjdEFsbEJ1dHRvbkNsaWNrID09PSBudWxsIHx8IG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2soKTsgLy8gQ2FsbCB0aGUgb25TZWxlY3RBbGxCdXR0b25DbGljayBjYWxsYmFja1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChpc1RhYmxlRGF0YVJlZnJlc2hlZCAmJiAhdGFibGVMb2FkaW5nIHx8IEFsbEl0ZW1zU2hvd2luZykge1xyXG4gICAgICAgICAgICBpZiAoc2VsZWN0QWxsU3RhdHVzICYmIEFsbEl0ZW1zU2hvd2luZykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFsbFJvd0tleXMgPSBkYXRhU291cmNlID09PSBudWxsIHx8IGRhdGFTb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2UubWFwKGZ1bmN0aW9uIChyZWNvcmQpIHsgcmV0dXJuIHJlY29yZFtyb3dLZXlWYWx1ZV07IH0pO1xyXG4gICAgICAgICAgICAgICAgc2V0c2VsZWN0ZWRSb3dLZXlzKGFsbFJvd0tleXMpO1xyXG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRBbGxSb3dLZXlzKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lzVGFibGVEYXRhUmVmcmVzaGVkLCB0YWJsZUxvYWRpbmcsIHNlbGVjdEFsbFN0YXR1cywgQWxsSXRlbXNTaG93aW5nXSk7XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmIChkZXNlbGVjdEFsbCkge1xyXG4gICAgICAgICAgICBzZXRzZWxlY3RlZFJvd0tleXMoW10pO1xyXG4gICAgICAgICAgICBzZXREZXNlbGVjdEFsbChmYWxzZSk7XHJcbiAgICAgICAgICAgIHNldFNlbGVjdGVkQWxsUm93S2V5cyhmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2Rlc2VsZWN0QWxsXSk7XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHByb3BzLnJvd1NlbGVjdGlvbkluZm8oc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgIH0sIFtzZWxlY3RlZFJvd0tleXNdKTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIGlmIChkYXRhU291cmNlICYmIChkYXRhU291cmNlID09PSBudWxsIHx8IGRhdGFTb3VyY2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGFTb3VyY2UubGVuZ3RoKSA+IDApIHtcclxuICAgICAgICAgICAgLy8gQ29sdW1uc1xyXG4gICAgICAgICAgICB2YXIgY29sdW1uc18xID0gT2JqZWN0LmtleXMoZGF0YVNvdXJjZSA9PT0gbnVsbCB8fCBkYXRhU291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhU291cmNlWzBdKS5tYXAoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGRlbkNvbHVtbnMgPT09IG51bGwgfHwgaGlkZGVuQ29sdW1ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGlkZGVuQ29sdW1ucy5pbmNsdWRlcyhrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdmFyIGlzQ29sdW1uU29ydGFibGUgPSAoY29sdW1uc1RvU29ydCA9PT0gbnVsbCB8fCBjb2x1bW5zVG9Tb3J0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2x1bW5zVG9Tb3J0LmluY2x1ZGVzKGtleSkpID8gc29ydEJ5Q29sdW1ucyA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogaGVhZGluZ1RyYW5zbGF0aW9uc0tleSA/IHQoXCJcIi5jb25jYXQoaGVhZGluZ1RyYW5zbGF0aW9uc0tleSwgXCIuXCIpLmNvbmNhdChrZXkpKSA6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhSW5kZXg6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICBlbGxpcHNpczogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgc29ydGVyOiBpc0NvbHVtblNvcnRhYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIE5vIGZpeGVkIHByb3BlcnR5IGhlcmUsIHdlJ2xsIGFkZCBpdCBsYXRlciBiYXNlZCBvbiB0aGUgZml4ZWRDb2x1bW5zIHByb3BcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1uO1xyXG4gICAgICAgICAgICB9KS5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbCAhPT0gdW5kZWZpbmVkOyB9KTtcclxuICAgICAgICAgICAgdmFyIGNvbHVtbkFjdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICBrZXk6ICdhY3Rpb24nLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGhlYWRpbmdUcmFuc2xhdGlvbnNLZXkgPyB0KFwiXCIuY29uY2F0KGhlYWRpbmdUcmFuc2xhdGlvbnNLZXksIFwiLlwiKS5jb25jYXQoJ2FjdGlvbicpKSA6ICdhY3Rpb24nLFxyXG4gICAgICAgICAgICAgICAgZGF0YUluZGV4OiA2LFxyXG4gICAgICAgICAgICAgICAgZWxsaXBzaXM6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoaXRlbXMgPT09IG51bGwgfHwgaXRlbXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW1zWzBdKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIFZlcmlmaWNhIHNlIG8gYXJyYXkgaXRlbXMgw6kgbnVsb1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChTcGFjZSwgX19hc3NpZ24oeyBzaXplOiBcIm1pZGRsZVwiIH0sIHsgY2hpbGRyZW46IF9qc3goRHJvcGRvd24sIF9fYXNzaWduKHsgbWVudTogeyBpdGVtczogaXRlbXMgfSB9LCB7IGNoaWxkcmVuOiBfanN4KFwiYVwiLCB7IGNoaWxkcmVuOiBfanN4KE1vcmVPdXRsaW5lZCwgeyBzdHlsZTogeyBjb2xvcjogJ3ZhcigtLWNvbG9yLWJsdWUpJywgdHJhbnNmb3JtOiAnc2NhbGUoMS42KScgfSB9KSB9KSB9KSkgfSkpKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGl0ZW1zICYmIGNvbHVtbnNfMS5wdXNoKGNvbHVtbkFjdGlvbnMpO1xyXG4gICAgICAgICAgICBpZiAoZml4ZWRDb2x1bW5zKSB7XHJcbiAgICAgICAgICAgICAgICBmaXhlZENvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGFJbmRleCA9IGNvbHVtbi5kYXRhSW5kZXgsIHNpZGUgPSBjb2x1bW4uc2lkZTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZm91bmRDb2x1bW4gPSBjb2x1bW5zXzEuZmluZChmdW5jdGlvbiAoY29sKSB7IHJldHVybiBjb2wuZGF0YUluZGV4ID09PSBkYXRhSW5kZXg7IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZENvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZENvbHVtbi5maXhlZCA9IHNpZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0Q3VzdG9tQ29sdW1ucyhjb2x1bW5zXzEpO1xyXG4gICAgICAgICAgICAvLyBGaWx0ZXJzXHJcbiAgICAgICAgICAgIHZhciBkYXRhS2V5c1RvRmlsdGVyID0gT2JqZWN0LmtleXMoZGF0YVNvdXJjZSA9PT0gbnVsbCB8fCBkYXRhU291cmNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhU291cmNlWzBdKS5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBmaWVsZHNUb1NvcnQgPT09IG51bGwgfHwgZmllbGRzVG9Tb3J0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZHNUb1NvcnQuaW5jbHVkZXMoZWwpOyB9KTtcclxuICAgICAgICAgICAgdmFyIGZpbHRlcnMgPSAoX2EgPSBbXSkuY29uY2F0LmFwcGx5KF9hLCBfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sIGRhdGFLZXlzVG9GaWx0ZXIubWFwKGZ1bmN0aW9uIChrZXkpIHsgcmV0dXJuICh7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIi5jb25jYXQoa2V5LCBcIi1cIikuY29uY2F0KHNvcnRCeS5kZXNjKSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5ID8gdChcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5LCBcIi5cIikuY29uY2F0KGtleSkpIDoga2V5LCBcIiAoXCIpLmNvbmNhdChzb3J0QnkuZGVzYywgXCIpXCIpLFxyXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBcIlwiLmNvbmNhdChzb3J0QnkuZGVzYyksXHJcbiAgICAgICAgICAgIH0pOyB9KSwgZmFsc2UpLCBkYXRhS2V5c1RvRmlsdGVyLm1hcChmdW5jdGlvbiAoa2V5KSB7IHJldHVybiAoe1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIuY29uY2F0KGtleSwgXCItXCIpLmNvbmNhdChzb3J0QnkuYXNjKSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5ID8gdChcIlwiLmNvbmNhdChoZWFkaW5nVHJhbnNsYXRpb25zS2V5LCBcIi5cIikuY29uY2F0KGtleSkpIDoga2V5LCBcIiAoXCIpLmNvbmNhdChzb3J0QnkuYXNjLCBcIilcIiksXHJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiXCIuY29uY2F0KHNvcnRCeS5hc2MpLFxyXG4gICAgICAgICAgICB9KTsgfSksIGZhbHNlKSk7XHJcbiAgICAgICAgICAgIHNldEN1c3RvbUZpbHRlcnMoZmlsdGVycyk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2RhdGFTb3VyY2VdKTtcclxuICAgIHZhciBzaG91bGRSZW5kZXJTb3J0RHJvcGRvd24gPSBjdXN0b21GaWx0ZXJzLmxlbmd0aCA+IDA7XHJcbiAgICB2YXIgdGFibGVXcmFwcGVyQ2xhc3NlcyA9IGNsYXNzbmFtZXMoKF9hID0ge30sXHJcbiAgICAgICAgX2Fbc3R5bGVzLnRhYmxlV3JhcHBlck5vU2VsZWN0aW9uXSA9ICFyb3dTZWxlY3Rpb24sXHJcbiAgICAgICAgX2EpLCBbc3R5bGVzLnRhYmxlV3JhcHBlcl0pO1xyXG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogdGFibGVXcmFwcGVyQ2xhc3NlcyB9LCB7IGNoaWxkcmVuOiBbc2hvdWxkUmVuZGVyU29ydERyb3Bkb3duICYmXHJcbiAgICAgICAgICAgICAgICBfanN4KFNwYWNlLCBfX2Fzc2lnbih7IHN0eWxlOiB7IG1hcmdpbkJvdHRvbTogMTYgfSB9LCB7IGNoaWxkcmVuOiBfanN4KFNlbGVjdCwgeyBzdHlsZTogeyB3aWR0aDogJ2F1dG8nLCBtaW5XaWR0aDogMjAwIH0sIHBsYWNlaG9sZGVyOiBzZWxlY3RQbGFjZWhvbGRlciwgb25TZWxlY3Q6IGZ1bmN0aW9uIChfLCBvcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNvcnRlcihvcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBvcHRpb25GaWx0ZXJQcm9wOiBcImNoaWxkcmVuXCIsIGZpbHRlck9wdGlvbjogZnVuY3Rpb24gKGlucHV0LCBvcHRpb24pIHsgdmFyIF9hOyByZXR1cm4gKChfYSA9IG9wdGlvbiA9PT0gbnVsbCB8fCBvcHRpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbi5sYWJlbCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLmluY2x1ZGVzKGlucHV0KTsgfSwgZmlsdGVyU29ydDogZnVuY3Rpb24gKG9wdGlvbkEsIG9wdGlvbkIpIHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoX2EgPSBvcHRpb25BID09PSBudWxsIHx8IG9wdGlvbkEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9wdGlvbkEubGFiZWwpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoKChfYiA9IG9wdGlvbkIgPT09IG51bGwgfHwgb3B0aW9uQiA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9uQi5sYWJlbCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogJycpLnRvTG93ZXJDYXNlKCkpOyB9LCBvcHRpb25zOiBjdXN0b21GaWx0ZXJzIH0pIH0pKSwgX2pzeChBbnRkVGFibGUsIF9fYXNzaWduKHsgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSB9LCBwcm9wcywgeyBjb2x1bW5zOiBjdXN0b21Db2x1bW5zIH0sIHByb3BzLnJvd1NlbGVjdGlvbiA/ICh7XHJcbiAgICAgICAgICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJvd0tleXM6IHNlbGVjdGVkUm93S2V5cyxcclxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogb25TZWxlY3RDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogKF9iID0gcHJvcHMucm93U2VsZWN0aW9uKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudHlwZSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkgOiBudWxsLCB7IHJvd0tleTogcm93S2V5VmFsdWUgfSwgKHRhYmxlTWF4SGVpZ2h0ID8geyBzY3JvbGw6IHsgeTogdGFibGVNYXhIZWlnaHQgfSB9IDoge30pKSksIG9uU2VsZWN0QWxsQnV0dG9uQ2xpY2sgJiZcclxuICAgICAgICAgICAgICAgIF9qc3goQnV0dG9uLCBfX2Fzc2lnbih7IG9uQ2xpY2s6IHNlbGVjdEFsbFJvd3MsIGNsYXNzTmFtZTogc3R5bGVzLnNlbGVjdEFsbFJvd3MgfSwgeyBjaGlsZHJlbjogc2VsZWN0ZWRBbGxSb3dLZXlzID8gdCgnY29tcG9uZW50cy50YWJsZS5kZXNlbGVjdEFsbCcpIDogdCgnY29tcG9uZW50cy50YWJsZS5zZWxlY3RBbGwnKSB9KSldIH0pKSk7XHJcbn07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Table/index.tsx\n");
|
|
11051
11051
|
|
|
11052
11052
|
/***/ }),
|
|
11053
11053
|
|
|
@@ -11058,7 +11058,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
11058
11058
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
11059
11059
|
|
|
11060
11060
|
"use strict";
|
|
11061
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"TagField\": function() { return /* binding */ TagField; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/icons/SearchOutlined.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/tag/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/input/index.js\");\n/* harmony import */ var rc_tween_one__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rc-tween-one */ \"./node_modules/rc-tween-one/es/TweenOneGroup.js\");\n/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.module.scss */ \"./src/components/Tag/styles.module.scss\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! i18next */ \"i18next\");\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(i18next__WEBPACK_IMPORTED_MODULE_4__);\nvar __assign = (undefined && undefined.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar TagField = function (props) {\r\n var _a = props.customTags, customTags = _a === void 0 ? [] : _a, advancedTags = props.advancedTags;\r\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(customTags.filter(function (tag) { return !tag.includes('='); })), tags = _b[0], setTags = _b[1];\r\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), inputVisible = _c[0], setInputVisible = _c[1];\r\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''), inputValue = _d[0], setInputValue = _d[1];\r\n var inputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\r\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), advancedTagList = _e[0], setAdvancedTagList = _e[1];\r\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(customTags.filter(function (tag) { return !tag.includes('='); })), allTags = _f[0], setAllTags = _f[1];\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a;\r\n if (inputVisible) {\r\n (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n }, [inputVisible]);\r\n var handleClose = function (removedTag) {\r\n var newAllTags = allTags.filter(function (tag) { return tag !== removedTag; });\r\n setAllTags(newAllTags);\r\n var newTags = tags.filter(function (tag) { return tag !== removedTag; });\r\n setTags(newTags);\r\n if (advancedTags && advancedTagList.some(function (tag) { return tag.display === removedTag; })) {\r\n var newAdvancedTags = advancedTagList.filter(function (tag) { return tag.display !== removedTag; });\r\n setAdvancedTagList(newAdvancedTags);\r\n }\r\n };\r\n var showInput = function () {\r\n setInputVisible(true);\r\n };\r\n var handleInputChange = function (e) {\r\n setInputValue(e.target.value);\r\n };\r\n var handleInputConfirm = function () {\r\n var _a, _b;\r\n if (inputValue && allTags.indexOf(inputValue) === -1) {\r\n var _c = inputValue.split('='), value = _c[1];\r\n setAllTags(__spreadArray(__spreadArray([], allTags, true), [inputValue], false));\r\n var matchedFilter = advancedTags && advancedTags.find(function (filter) { return filter.display === inputValue.split('=')[0]; });\r\n if (matchedFilter && !advancedTagList.some(function (tag) { return tag.display === inputValue; })) {\r\n var newTag = {\r\n display: inputValue,\r\n value: \"\".concat(matchedFilter.value, \"=\").concat(value)\r\n };\r\n setAdvancedTagList(__spreadArray(__spreadArray([], advancedTagList, true), [newTag], false));\r\n }\r\n else {\r\n setTags(__spreadArray(__spreadArray([], tags, true), [inputValue], false));\r\n }\r\n }\r\n setInputVisible(false);\r\n setInputValue('');\r\n var basicTags = tags.filter(function (tag) { return !advancedTagList.some(function (tagObj) { return tagObj.display === tag; }); });\r\n (_a = props.tagsInfo) === null || _a === void 0 ? void 0 : _a.call(props, basicTags);\r\n (_b = props.advancedTagsInfo) === null || _b === void 0 ? void 0 : _b.call(props, advancedTagList.map(function (tagObj) { return tagObj.value; }));\r\n };\r\n var handleKeyDown = function (e) {\r\n var cursorPosition = e.currentTarget.selectionStart;\r\n var advancedFilterMatch = advancedTags && advancedTags.find(function (filter) { return inputValue.startsWith(\"\".concat(filter, \"=\")); });\r\n if (advancedFilterMatch) {\r\n var filterLength = advancedFilterMatch.display.length;\r\n if (cursorPosition <= filterLength && ![8, 46].includes(e.keyCode)) {\r\n e.preventDefault();\r\n }\r\n }\r\n // Prevent the input of '=' manually\r\n if (e.key === \"=\") {\r\n e.preventDefault();\r\n }\r\n };\r\n var doSomething = function (e) {\r\n var tag = e.target.innerText;\r\n if (!advancedTagList.map(function (tagObj) { return tagObj.display; }).includes(tag)) {\r\n setInputValue(\"\".concat(tag, \"=\"));\r\n setInputVisible(true);\r\n }\r\n };\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a, _b;\r\n (_a = props.tagsInfo) === null || _a === void 0 ? void 0 : _a.call(props, tags);\r\n (_b = props.advancedTagsInfo) === null || _b === void 0 ? void 0 : _b.call(props, advancedTagList.map(function (tag) { return tag.value; }));\r\n }, [tags, advancedTagList]);\r\n var forMap = function (tag) {\r\n var tagElem = ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_5__[\"default\"], __assign({ closable: true, onClose: function (e) {\r\n e.preventDefault();\r\n handleClose(tag);\r\n } }, { children: tag })));\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__new, style: { display: 'inline-block' } }, { children: tagElem }), tag));\r\n };\r\n var advancedTagsMap = function (tag) {\r\n var disabled = advancedTagList.map(function (tag) { return tag.display.split('=')[0]; }).includes(tag.display);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ onClick: !disabled ? doSomething : undefined, style: { color: disabled ? 'gray' : undefined } }, { children: tag.display }), tag.display));\r\n };\r\n var tagChild = allTags.map(forMap);\r\n var advancedTagsChild = advancedTags && advancedTags.map(advancedTagsMap);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield }, { children: [inputVisible && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { ref: inputRef, type: \"text\", size: \"small\", value: inputValue, onChange: handleInputChange, onKeyDown: handleKeyDown, onPressEnter: handleInputConfirm, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__input })), !inputVisible && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_5__[\"default\"], __assign({ onClick: showInput, className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__creator, 'site-tag-plus') }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}), \" \", (0,i18next__WEBPACK_IMPORTED_MODULE_4__.t)('components.tag.search')] }))), advancedTags &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ style: { marginTop: 16, marginBottom: 16 }, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].advancedTagsWrapper }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].label }, { children: [(0,i18next__WEBPACK_IMPORTED_MODULE_4__.t)('components.tag.advancedFields'), \":\"] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].advancedTags }, { children: advancedTagsChild }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ style: { marginTop: 16 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(rc_tween_one__WEBPACK_IMPORTED_MODULE_8__[\"default\"], __assign({ enter: {\r\n scale: 0.8,\r\n opacity: 0,\r\n type: 'from',\r\n duration: 100,\r\n }, onEnd: function (e) {\r\n if (e.type === 'appear' || e.type === 'enter') {\r\n e.target.style = 'display: inline-block';\r\n }\r\n }, leave: { opacity: 0, width: 0, scale: 0, duration: 200 }, appear: false }, { children: tagChild })) }))] })));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UYWcvaW5kZXgudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9saWIvLi9zcmMvY29tcG9uZW50cy9UYWcvaW5kZXgudHN4P2IxYzYiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxyXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfTtcclxuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG59O1xyXG52YXIgX19zcHJlYWRBcnJheSA9ICh0aGlzICYmIHRoaXMuX19zcHJlYWRBcnJheSkgfHwgZnVuY3Rpb24gKHRvLCBmcm9tLCBwYWNrKSB7XHJcbiAgICBpZiAocGFjayB8fCBhcmd1bWVudHMubGVuZ3RoID09PSAyKSBmb3IgKHZhciBpID0gMCwgbCA9IGZyb20ubGVuZ3RoLCBhcjsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGlmIChhciB8fCAhKGkgaW4gZnJvbSkpIHtcclxuICAgICAgICAgICAgaWYgKCFhcikgYXIgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tLCAwLCBpKTtcclxuICAgICAgICAgICAgYXJbaV0gPSBmcm9tW2ldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0by5jb25jYXQoYXIgfHwgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZnJvbSkpO1xyXG59O1xyXG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IFNlYXJjaE91dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xyXG5pbXBvcnQgeyBJbnB1dCwgVGFnIH0gZnJvbSAnYW50ZCc7XHJcbmltcG9ydCB7IFR3ZWVuT25lR3JvdXAgfSBmcm9tICdyYy10d2Vlbi1vbmUnO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vc3R5bGVzLm1vZHVsZS5zY3NzJztcclxuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XHJcbmltcG9ydCB7IHQgfSBmcm9tICdpMThuZXh0JztcclxuZXhwb3J0IHZhciBUYWdGaWVsZCA9IGZ1bmN0aW9uIChwcm9wcykge1xyXG4gICAgdmFyIF9hID0gcHJvcHMuY3VzdG9tVGFncywgY3VzdG9tVGFncyA9IF9hID09PSB2b2lkIDAgPyBbXSA6IF9hLCBhZHZhbmNlZFRhZ3MgPSBwcm9wcy5hZHZhbmNlZFRhZ3M7XHJcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShjdXN0b21UYWdzLmZpbHRlcihmdW5jdGlvbiAodGFnKSB7IHJldHVybiAhdGFnLmluY2x1ZGVzKCc9Jyk7IH0pKSwgdGFncyA9IF9iWzBdLCBzZXRUYWdzID0gX2JbMV07XHJcbiAgICB2YXIgX2MgPSB1c2VTdGF0ZShmYWxzZSksIGlucHV0VmlzaWJsZSA9IF9jWzBdLCBzZXRJbnB1dFZpc2libGUgPSBfY1sxXTtcclxuICAgIHZhciBfZCA9IHVzZVN0YXRlKCcnKSwgaW5wdXRWYWx1ZSA9IF9kWzBdLCBzZXRJbnB1dFZhbHVlID0gX2RbMV07XHJcbiAgICB2YXIgaW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XHJcbiAgICB2YXIgX2UgPSB1c2VTdGF0ZShbXSksIGFkdmFuY2VkVGFnTGlzdCA9IF9lWzBdLCBzZXRBZHZhbmNlZFRhZ0xpc3QgPSBfZVsxXTtcclxuICAgIHZhciBfZiA9IHVzZVN0YXRlKGN1c3RvbVRhZ3MuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuICF0YWcuaW5jbHVkZXMoJz0nKTsgfSkpLCBhbGxUYWdzID0gX2ZbMF0sIHNldEFsbFRhZ3MgPSBfZlsxXTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hO1xyXG4gICAgICAgIGlmIChpbnB1dFZpc2libGUpIHtcclxuICAgICAgICAgICAgKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2lucHV0VmlzaWJsZV0pO1xyXG4gICAgdmFyIGhhbmRsZUNsb3NlID0gZnVuY3Rpb24gKHJlbW92ZWRUYWcpIHtcclxuICAgICAgICB2YXIgbmV3QWxsVGFncyA9IGFsbFRhZ3MuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHRhZyAhPT0gcmVtb3ZlZFRhZzsgfSk7XHJcbiAgICAgICAgc2V0QWxsVGFncyhuZXdBbGxUYWdzKTtcclxuICAgICAgICB2YXIgbmV3VGFncyA9IHRhZ3MuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHRhZyAhPT0gcmVtb3ZlZFRhZzsgfSk7XHJcbiAgICAgICAgc2V0VGFncyhuZXdUYWdzKTtcclxuICAgICAgICBpZiAoYWR2YW5jZWRUYWdzICYmIGFkdmFuY2VkVGFnTGlzdC5zb21lKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHRhZy5kaXNwbGF5ID09PSByZW1vdmVkVGFnOyB9KSkge1xyXG4gICAgICAgICAgICB2YXIgbmV3QWR2YW5jZWRUYWdzID0gYWR2YW5jZWRUYWdMaXN0LmZpbHRlcihmdW5jdGlvbiAodGFnKSB7IHJldHVybiB0YWcuZGlzcGxheSAhPT0gcmVtb3ZlZFRhZzsgfSk7XHJcbiAgICAgICAgICAgIHNldEFkdmFuY2VkVGFnTGlzdChuZXdBZHZhbmNlZFRhZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgc2hvd0lucHV0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHNldElucHV0VmlzaWJsZSh0cnVlKTtcclxuICAgIH07XHJcbiAgICB2YXIgaGFuZGxlSW5wdXRDaGFuZ2UgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIHNldElucHV0VmFsdWUoZS50YXJnZXQudmFsdWUpO1xyXG4gICAgfTtcclxuICAgIHZhciBoYW5kbGVJbnB1dENvbmZpcm0gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZSAmJiBhbGxUYWdzLmluZGV4T2YoaW5wdXRWYWx1ZSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHZhciBfYyA9IGlucHV0VmFsdWUuc3BsaXQoJz0nKSwgdmFsdWUgPSBfY1sxXTtcclxuICAgICAgICAgICAgc2V0QWxsVGFncyhfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sIGFsbFRhZ3MsIHRydWUpLCBbaW5wdXRWYWx1ZV0sIGZhbHNlKSk7XHJcbiAgICAgICAgICAgIHZhciBtYXRjaGVkRmlsdGVyID0gYWR2YW5jZWRUYWdzICYmIGFkdmFuY2VkVGFncy5maW5kKGZ1bmN0aW9uIChmaWx0ZXIpIHsgcmV0dXJuIGZpbHRlci5kaXNwbGF5ID09PSBpbnB1dFZhbHVlLnNwbGl0KCc9JylbMF07IH0pO1xyXG4gICAgICAgICAgICBpZiAobWF0Y2hlZEZpbHRlciAmJiAhYWR2YW5jZWRUYWdMaXN0LnNvbWUoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gdGFnLmRpc3BsYXkgPT09IGlucHV0VmFsdWU7IH0pKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV3VGFnID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlucHV0VmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIuY29uY2F0KG1hdGNoZWRGaWx0ZXIudmFsdWUsIFwiPVwiKS5jb25jYXQodmFsdWUpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgc2V0QWR2YW5jZWRUYWdMaXN0KF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgYWR2YW5jZWRUYWdMaXN0LCB0cnVlKSwgW25ld1RhZ10sIGZhbHNlKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUYWdzKF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgdGFncywgdHJ1ZSksIFtpbnB1dFZhbHVlXSwgZmFsc2UpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRJbnB1dFZpc2libGUoZmFsc2UpO1xyXG4gICAgICAgIHNldElucHV0VmFsdWUoJycpO1xyXG4gICAgICAgIHZhciBiYXNpY1RhZ3MgPSB0YWdzLmZpbHRlcihmdW5jdGlvbiAodGFnKSB7IHJldHVybiAhYWR2YW5jZWRUYWdMaXN0LnNvbWUoZnVuY3Rpb24gKHRhZ09iaikgeyByZXR1cm4gdGFnT2JqLmRpc3BsYXkgPT09IHRhZzsgfSk7IH0pO1xyXG4gICAgICAgIChfYSA9IHByb3BzLnRhZ3NJbmZvKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChwcm9wcywgYmFzaWNUYWdzKTtcclxuICAgICAgICAoX2IgPSBwcm9wcy5hZHZhbmNlZFRhZ3NJbmZvKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChwcm9wcywgYWR2YW5jZWRUYWdMaXN0Lm1hcChmdW5jdGlvbiAodGFnT2JqKSB7IHJldHVybiB0YWdPYmoudmFsdWU7IH0pKTtcclxuICAgIH07XHJcbiAgICB2YXIgaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgdmFyIGN1cnNvclBvc2l0aW9uID0gZS5jdXJyZW50VGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgIHZhciBhZHZhbmNlZEZpbHRlck1hdGNoID0gYWR2YW5jZWRUYWdzICYmIGFkdmFuY2VkVGFncy5maW5kKGZ1bmN0aW9uIChmaWx0ZXIpIHsgcmV0dXJuIGlucHV0VmFsdWUuc3RhcnRzV2l0aChcIlwiLmNvbmNhdChmaWx0ZXIsIFwiPVwiKSk7IH0pO1xyXG4gICAgICAgIGlmIChhZHZhbmNlZEZpbHRlck1hdGNoKSB7XHJcbiAgICAgICAgICAgIHZhciBmaWx0ZXJMZW5ndGggPSBhZHZhbmNlZEZpbHRlck1hdGNoLmRpc3BsYXkubGVuZ3RoO1xyXG4gICAgICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPD0gZmlsdGVyTGVuZ3RoICYmICFbOCwgNDZdLmluY2x1ZGVzKGUua2V5Q29kZSkpIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBQcmV2ZW50IHRoZSBpbnB1dCBvZiAnPScgbWFudWFsbHlcclxuICAgICAgICBpZiAoZS5rZXkgPT09IFwiPVwiKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgdmFyIGRvU29tZXRoaW5nID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICB2YXIgdGFnID0gZS50YXJnZXQuaW5uZXJUZXh0O1xyXG4gICAgICAgIGlmICghYWR2YW5jZWRUYWdMaXN0Lm1hcChmdW5jdGlvbiAodGFnT2JqKSB7IHJldHVybiB0YWdPYmouZGlzcGxheTsgfSkuaW5jbHVkZXModGFnKSkge1xyXG4gICAgICAgICAgICBzZXRJbnB1dFZhbHVlKFwiXCIuY29uY2F0KHRhZywgXCI9XCIpKTtcclxuICAgICAgICAgICAgc2V0SW5wdXRWaXNpYmxlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBfYSwgX2I7XHJcbiAgICAgICAgKF9hID0gcHJvcHMudGFnc0luZm8pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHByb3BzLCB0YWdzKTtcclxuICAgICAgICAoX2IgPSBwcm9wcy5hZHZhbmNlZFRhZ3NJbmZvKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChwcm9wcywgYWR2YW5jZWRUYWdMaXN0Lm1hcChmdW5jdGlvbiAodGFnKSB7IHJldHVybiB0YWcudmFsdWU7IH0pKTtcclxuICAgIH0sIFt0YWdzLCBhZHZhbmNlZFRhZ0xpc3RdKTtcclxuICAgIHZhciBmb3JNYXAgPSBmdW5jdGlvbiAodGFnKSB7XHJcbiAgICAgICAgdmFyIHRhZ0VsZW0gPSAoX2pzeChUYWcsIF9fYXNzaWduKHsgY2xvc2FibGU6IHRydWUsIG9uQ2xvc2U6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZSh0YWcpO1xyXG4gICAgICAgICAgICB9IH0sIHsgY2hpbGRyZW46IHRhZyB9KSkpO1xyXG4gICAgICAgIHJldHVybiAoX2pzeChcInNwYW5cIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IHN0eWxlc1sndGFnZmllbGRfX25ldyddLCBzdHlsZTogeyBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9IH0sIHsgY2hpbGRyZW46IHRhZ0VsZW0gfSksIHRhZykpO1xyXG4gICAgfTtcclxuICAgIHZhciBhZHZhbmNlZFRhZ3NNYXAgPSBmdW5jdGlvbiAodGFnKSB7XHJcbiAgICAgICAgdmFyIGRpc2FibGVkID0gYWR2YW5jZWRUYWdMaXN0Lm1hcChmdW5jdGlvbiAodGFnKSB7IHJldHVybiB0YWcuZGlzcGxheS5zcGxpdCgnPScpWzBdOyB9KS5pbmNsdWRlcyh0YWcuZGlzcGxheSk7XHJcbiAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIF9fYXNzaWduKHsgb25DbGljazogIWRpc2FibGVkID8gZG9Tb21ldGhpbmcgOiB1bmRlZmluZWQsIHN0eWxlOiB7IGNvbG9yOiBkaXNhYmxlZCA/ICdncmF5JyA6IHVuZGVmaW5lZCB9IH0sIHsgY2hpbGRyZW46IHRhZy5kaXNwbGF5IH0pLCB0YWcuZGlzcGxheSkpO1xyXG4gICAgfTtcclxuICAgIHZhciB0YWdDaGlsZCA9IGFsbFRhZ3MubWFwKGZvck1hcCk7XHJcbiAgICB2YXIgYWR2YW5jZWRUYWdzQ2hpbGQgPSBhZHZhbmNlZFRhZ3MgJiYgYWR2YW5jZWRUYWdzLm1hcChhZHZhbmNlZFRhZ3NNYXApO1xyXG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogc3R5bGVzLnRhZ2ZpZWxkIH0sIHsgY2hpbGRyZW46IFtpbnB1dFZpc2libGUgJiYgKF9qc3goSW5wdXQsIHsgcmVmOiBpbnB1dFJlZiwgdHlwZTogXCJ0ZXh0XCIsIHNpemU6IFwic21hbGxcIiwgdmFsdWU6IGlucHV0VmFsdWUsIG9uQ2hhbmdlOiBoYW5kbGVJbnB1dENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLCBvblByZXNzRW50ZXI6IGhhbmRsZUlucHV0Q29uZmlybSwgY2xhc3NOYW1lOiBzdHlsZXNbJ3RhZ2ZpZWxkX19pbnB1dCddIH0pKSwgIWlucHV0VmlzaWJsZSAmJiAoX2pzeHMoVGFnLCBfX2Fzc2lnbih7IG9uQ2xpY2s6IHNob3dJbnB1dCwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKHN0eWxlc1sndGFnZmllbGRfX2NyZWF0b3InXSwgJ3NpdGUtdGFnLXBsdXMnKSB9LCB7IGNoaWxkcmVuOiBbX2pzeChTZWFyY2hPdXRsaW5lZCwge30pLCBcIiBcIiwgdCgnY29tcG9uZW50cy50YWcuc2VhcmNoJyldIH0pKSksIGFkdmFuY2VkVGFncyAmJlxyXG4gICAgICAgICAgICAgICAgX2pzeHMoXCJkaXZcIiwgX19hc3NpZ24oeyBzdHlsZTogeyBtYXJnaW5Ub3A6IDE2LCBtYXJnaW5Cb3R0b206IDE2IH0sIGNsYXNzTmFtZTogc3R5bGVzLmFkdmFuY2VkVGFnc1dyYXBwZXIgfSwgeyBjaGlsZHJlbjogW19qc3hzKFwiZGl2XCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBzdHlsZXMubGFiZWwgfSwgeyBjaGlsZHJlbjogW3QoJ2NvbXBvbmVudHMudGFnLmFkdmFuY2VkRmllbGRzJyksIFwiOlwiXSB9KSksIF9qc3goXCJkaXZcIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IHN0eWxlcy5hZHZhbmNlZFRhZ3MgfSwgeyBjaGlsZHJlbjogYWR2YW5jZWRUYWdzQ2hpbGQgfSkpXSB9KSksIF9qc3goXCJkaXZcIiwgX19hc3NpZ24oeyBzdHlsZTogeyBtYXJnaW5Ub3A6IDE2IH0gfSwgeyBjaGlsZHJlbjogX2pzeChUd2Vlbk9uZUdyb3VwLCBfX2Fzc2lnbih7IGVudGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlOiAwLjgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdmcm9tJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDEwMCxcclxuICAgICAgICAgICAgICAgICAgICB9LCBvbkVuZDogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2FwcGVhcicgfHwgZS50eXBlID09PSAnZW50ZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnRhcmdldC5zdHlsZSA9ICdkaXNwbGF5OiBpbmxpbmUtYmxvY2snO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgbGVhdmU6IHsgb3BhY2l0eTogMCwgd2lkdGg6IDAsIHNjYWxlOiAwLCBkdXJhdGlvbjogMjAwIH0sIGFwcGVhcjogZmFsc2UgfSwgeyBjaGlsZHJlbjogdGFnQ2hpbGQgfSkpIH0pKV0gfSkpKTtcclxufTtcclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/components/Tag/index.tsx\n");
|
|
11061
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"TagField\": function() { return /* binding */ TagField; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons */ \"./node_modules/@ant-design/icons/es/icons/SearchOutlined.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/tag/index.js\");\n/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ \"./node_modules/antd/es/input/index.js\");\n/* harmony import */ var rc_tween_one__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! rc-tween-one */ \"./node_modules/rc-tween-one/es/TweenOneGroup.js\");\n/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.module.scss */ \"./src/components/Tag/styles.module.scss\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! i18next */ \"i18next\");\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(i18next__WEBPACK_IMPORTED_MODULE_4__);\nvar __assign = (undefined && undefined.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar TagField = function (props) {\r\n var _a = props.customTags, customTags = _a === void 0 ? [] : _a, advancedTags = props.advancedTags;\r\n var _b = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(customTags.filter(function (tag) { return !tag.includes('='); })), tags = _b[0], setTags = _b[1];\r\n var _c = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false), inputVisible = _c[0], setInputVisible = _c[1];\r\n var _d = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''), inputValue = _d[0], setInputValue = _d[1];\r\n var inputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\r\n var _e = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]), advancedTagList = _e[0], setAdvancedTagList = _e[1];\r\n var _f = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(customTags.filter(function (tag) { return !tag.includes('='); })), allTags = _f[0], setAllTags = _f[1];\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a;\r\n if (inputVisible) {\r\n (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n }, [inputVisible]);\r\n var handleClose = function (removedTag) {\r\n var newAllTags = allTags.filter(function (tag) { return tag !== removedTag; });\r\n setAllTags(newAllTags);\r\n var newTags = tags.filter(function (tag) { return tag !== removedTag; });\r\n setTags(newTags);\r\n if (advancedTags && advancedTagList.some(function (tag) { return tag.display === removedTag; })) {\r\n var newAdvancedTags = advancedTagList.filter(function (tag) { return tag.display !== removedTag; });\r\n setAdvancedTagList(newAdvancedTags);\r\n }\r\n };\r\n var showInput = function () {\r\n setInputVisible(true);\r\n };\r\n var handleInputChange = function (e) {\r\n setInputValue(e.target.value);\r\n };\r\n var handleInputConfirm = function () {\r\n var _a, _b;\r\n if (inputValue && allTags.indexOf(inputValue) === -1) {\r\n var _c = inputValue.split('='), value = _c[1];\r\n setAllTags(__spreadArray(__spreadArray([], allTags, true), [inputValue], false));\r\n var matchedFilter = advancedTags && advancedTags.find(function (filter) { return filter.display === inputValue.split('=')[0]; });\r\n if (matchedFilter && !advancedTagList.some(function (tag) { return tag.display === inputValue; })) {\r\n var newTag = {\r\n display: inputValue,\r\n value: \"\".concat(matchedFilter.value, \"=\").concat(value)\r\n };\r\n setAdvancedTagList(__spreadArray(__spreadArray([], advancedTagList, true), [newTag], false));\r\n }\r\n else {\r\n setTags(__spreadArray(__spreadArray([], tags, true), [inputValue], false));\r\n }\r\n }\r\n setInputVisible(false);\r\n setInputValue('');\r\n var basicTags = tags.filter(function (tag) { return !advancedTagList.some(function (tagObj) { return tagObj.display === tag; }); });\r\n (_a = props.tagsInfo) === null || _a === void 0 ? void 0 : _a.call(props, basicTags);\r\n (_b = props.advancedTagsInfo) === null || _b === void 0 ? void 0 : _b.call(props, advancedTagList.map(function (tagObj) { return tagObj.value; }));\r\n };\r\n var handleKeyDown = function (e) {\r\n var cursorPosition = e.currentTarget.selectionStart;\r\n var advancedFilterMatch = advancedTags && advancedTags.find(function (filter) { return inputValue.startsWith(\"\".concat(filter, \"=\")); });\r\n if (advancedFilterMatch) {\r\n var filterLength = advancedFilterMatch.display.length;\r\n if (cursorPosition <= filterLength && ![8, 46].includes(e.keyCode)) {\r\n e.preventDefault();\r\n }\r\n }\r\n // Prevent the input of '=' manually\r\n if (e.key === \"=\") {\r\n e.preventDefault();\r\n }\r\n };\r\n var doSomething = function (e) {\r\n var tag = e.target.innerText;\r\n if (!advancedTagList.map(function (tagObj) { return tagObj.display; }).includes(tag)) {\r\n setInputValue(\"\".concat(tag, \"=\"));\r\n setInputVisible(true);\r\n }\r\n };\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n var _a, _b;\r\n (_a = props.tagsInfo) === null || _a === void 0 ? void 0 : _a.call(props, tags);\r\n (_b = props.advancedTagsInfo) === null || _b === void 0 ? void 0 : _b.call(props, advancedTagList.map(function (tag) { return tag.value; }));\r\n }, [tags, advancedTagList]);\r\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\r\n // Adiciona a nova tag ao allTags usando a prop addExtraTags\r\n if (props.addExtraTags && typeof props.addExtraTags === \"string\") {\r\n setTags(__spreadArray(__spreadArray([], tags, true), [props.addExtraTags], false));\r\n setAllTags(__spreadArray(__spreadArray([], allTags, true), [props.addExtraTags], false));\r\n }\r\n }, [props.addExtraTags]);\r\n var forMap = function (tag) {\r\n var tagElem = ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_5__[\"default\"], __assign({ closable: true, onClose: function (e) {\r\n e.preventDefault();\r\n handleClose(tag);\r\n } }, { children: tag })));\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__new, style: { display: 'inline-block' } }, { children: tagElem }), tag));\r\n };\r\n var advancedTagsMap = function (tag) {\r\n var disabled = advancedTagList.map(function (tag) { return tag.display.split('=')[0]; }).includes(tag.display);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ onClick: !disabled ? doSomething : undefined, style: { color: disabled ? 'gray' : undefined } }, { children: tag.display }), tag.display));\r\n };\r\n var tagChild = allTags.map(forMap);\r\n var advancedTagsChild = advancedTags && advancedTags.map(advancedTagsMap);\r\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield }, { children: [inputVisible && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(antd__WEBPACK_IMPORTED_MODULE_6__[\"default\"], { ref: inputRef, type: \"text\", size: \"small\", value: inputValue, onChange: handleInputChange, onKeyDown: handleKeyDown, onPressEnter: handleInputConfirm, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__input })), !inputVisible && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_5__[\"default\"], __assign({ onClick: showInput, className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(_styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].tagfield__creator, 'site-tag-plus') }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ant_design_icons__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}), \" \", (0,i18next__WEBPACK_IMPORTED_MODULE_4__.t)('components.tag.search')] }))), advancedTags &&\r\n (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ style: { marginTop: 16, marginBottom: 16 }, className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].advancedTagsWrapper }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].label }, { children: [(0,i18next__WEBPACK_IMPORTED_MODULE_4__.t)('components.tag.advancedFields'), \":\"] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_2__[\"default\"].advancedTags }, { children: advancedTagsChild }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", __assign({ style: { marginTop: 16 } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(rc_tween_one__WEBPACK_IMPORTED_MODULE_8__[\"default\"], __assign({ enter: {\r\n scale: 0.8,\r\n opacity: 0,\r\n type: 'from',\r\n duration: 100,\r\n }, onEnd: function (e) {\r\n if (e.type === 'appear' || e.type === 'enter') {\r\n e.target.style = 'display: inline-block';\r\n }\r\n }, leave: { opacity: 0, width: 0, scale: 0, duration: 200 }, appear: false }, { children: tagChild })) }))] })));\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29tcG9uZW50cy9UYWcvaW5kZXgudHN4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL2xpYi8uL3NyYy9jb21wb25lbnRzL1RhZy9pbmRleC50c3g/YjFjNiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XHJcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xyXG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xyXG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXHJcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbn07XHJcbnZhciBfX3NwcmVhZEFycmF5ID0gKHRoaXMgJiYgdGhpcy5fX3NwcmVhZEFycmF5KSB8fCBmdW5jdGlvbiAodG8sIGZyb20sIHBhY2spIHtcclxuICAgIGlmIChwYWNrIHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIGZvciAodmFyIGkgPSAwLCBsID0gZnJvbS5sZW5ndGgsIGFyOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFyIHx8ICEoaSBpbiBmcm9tKSkge1xyXG4gICAgICAgICAgICBpZiAoIWFyKSBhciA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGZyb20sIDAsIGkpO1xyXG4gICAgICAgICAgICBhcltpXSA9IGZyb21baV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvLmNvbmNhdChhciB8fCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmcm9tKSk7XHJcbn07XHJcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XHJcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgU2VhcmNoT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XHJcbmltcG9ydCB7IElucHV0LCBUYWcgfSBmcm9tICdhbnRkJztcclxuaW1wb3J0IHsgVHdlZW5PbmVHcm91cCB9IGZyb20gJ3JjLXR3ZWVuLW9uZSc7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9zdHlsZXMubW9kdWxlLnNjc3MnO1xyXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcclxuaW1wb3J0IHsgdCB9IGZyb20gJ2kxOG5leHQnO1xyXG5leHBvcnQgdmFyIFRhZ0ZpZWxkID0gZnVuY3Rpb24gKHByb3BzKSB7XHJcbiAgICB2YXIgX2EgPSBwcm9wcy5jdXN0b21UYWdzLCBjdXN0b21UYWdzID0gX2EgPT09IHZvaWQgMCA/IFtdIDogX2EsIGFkdmFuY2VkVGFncyA9IHByb3BzLmFkdmFuY2VkVGFncztcclxuICAgIHZhciBfYiA9IHVzZVN0YXRlKGN1c3RvbVRhZ3MuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuICF0YWcuaW5jbHVkZXMoJz0nKTsgfSkpLCB0YWdzID0gX2JbMF0sIHNldFRhZ3MgPSBfYlsxXTtcclxuICAgIHZhciBfYyA9IHVzZVN0YXRlKGZhbHNlKSwgaW5wdXRWaXNpYmxlID0gX2NbMF0sIHNldElucHV0VmlzaWJsZSA9IF9jWzFdO1xyXG4gICAgdmFyIF9kID0gdXNlU3RhdGUoJycpLCBpbnB1dFZhbHVlID0gX2RbMF0sIHNldElucHV0VmFsdWUgPSBfZFsxXTtcclxuICAgIHZhciBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcclxuICAgIHZhciBfZSA9IHVzZVN0YXRlKFtdKSwgYWR2YW5jZWRUYWdMaXN0ID0gX2VbMF0sIHNldEFkdmFuY2VkVGFnTGlzdCA9IF9lWzFdO1xyXG4gICAgdmFyIF9mID0gdXNlU3RhdGUoY3VzdG9tVGFncy5maWx0ZXIoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gIXRhZy5pbmNsdWRlcygnPScpOyB9KSksIGFsbFRhZ3MgPSBfZlswXSwgc2V0QWxsVGFncyA9IF9mWzFdO1xyXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgaWYgKGlucHV0VmlzaWJsZSkge1xyXG4gICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbaW5wdXRWaXNpYmxlXSk7XHJcbiAgICB2YXIgaGFuZGxlQ2xvc2UgPSBmdW5jdGlvbiAocmVtb3ZlZFRhZykge1xyXG4gICAgICAgIHZhciBuZXdBbGxUYWdzID0gYWxsVGFncy5maWx0ZXIoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gdGFnICE9PSByZW1vdmVkVGFnOyB9KTtcclxuICAgICAgICBzZXRBbGxUYWdzKG5ld0FsbFRhZ3MpO1xyXG4gICAgICAgIHZhciBuZXdUYWdzID0gdGFncy5maWx0ZXIoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gdGFnICE9PSByZW1vdmVkVGFnOyB9KTtcclxuICAgICAgICBzZXRUYWdzKG5ld1RhZ3MpO1xyXG4gICAgICAgIGlmIChhZHZhbmNlZFRhZ3MgJiYgYWR2YW5jZWRUYWdMaXN0LnNvbWUoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gdGFnLmRpc3BsYXkgPT09IHJlbW92ZWRUYWc7IH0pKSB7XHJcbiAgICAgICAgICAgIHZhciBuZXdBZHZhbmNlZFRhZ3MgPSBhZHZhbmNlZFRhZ0xpc3QuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHRhZy5kaXNwbGF5ICE9PSByZW1vdmVkVGFnOyB9KTtcclxuICAgICAgICAgICAgc2V0QWR2YW5jZWRUYWdMaXN0KG5ld0FkdmFuY2VkVGFncyk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHZhciBzaG93SW5wdXQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgc2V0SW5wdXRWaXNpYmxlKHRydWUpO1xyXG4gICAgfTtcclxuICAgIHZhciBoYW5kbGVJbnB1dENoYW5nZSA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgc2V0SW5wdXRWYWx1ZShlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9O1xyXG4gICAgdmFyIGhhbmRsZUlucHV0Q29uZmlybSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2EsIF9iO1xyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlICYmIGFsbFRhZ3MuaW5kZXhPZihpbnB1dFZhbHVlKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgdmFyIF9jID0gaW5wdXRWYWx1ZS5zcGxpdCgnPScpLCB2YWx1ZSA9IF9jWzFdO1xyXG4gICAgICAgICAgICBzZXRBbGxUYWdzKF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgYWxsVGFncywgdHJ1ZSksIFtpbnB1dFZhbHVlXSwgZmFsc2UpKTtcclxuICAgICAgICAgICAgdmFyIG1hdGNoZWRGaWx0ZXIgPSBhZHZhbmNlZFRhZ3MgJiYgYWR2YW5jZWRUYWdzLmZpbmQoZnVuY3Rpb24gKGZpbHRlcikgeyByZXR1cm4gZmlsdGVyLmRpc3BsYXkgPT09IGlucHV0VmFsdWUuc3BsaXQoJz0nKVswXTsgfSk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaGVkRmlsdGVyICYmICFhZHZhbmNlZFRhZ0xpc3Quc29tZShmdW5jdGlvbiAodGFnKSB7IHJldHVybiB0YWcuZGlzcGxheSA9PT0gaW5wdXRWYWx1ZTsgfSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBuZXdUYWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5wdXRWYWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIi5jb25jYXQobWF0Y2hlZEZpbHRlci52YWx1ZSwgXCI9XCIpLmNvbmNhdCh2YWx1ZSlcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBzZXRBZHZhbmNlZFRhZ0xpc3QoX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCBhZHZhbmNlZFRhZ0xpc3QsIHRydWUpLCBbbmV3VGFnXSwgZmFsc2UpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHNldFRhZ3MoX19zcHJlYWRBcnJheShfX3NwcmVhZEFycmF5KFtdLCB0YWdzLCB0cnVlKSwgW2lucHV0VmFsdWVdLCBmYWxzZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldElucHV0VmlzaWJsZShmYWxzZSk7XHJcbiAgICAgICAgc2V0SW5wdXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgdmFyIGJhc2ljVGFncyA9IHRhZ3MuZmlsdGVyKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuICFhZHZhbmNlZFRhZ0xpc3Quc29tZShmdW5jdGlvbiAodGFnT2JqKSB7IHJldHVybiB0YWdPYmouZGlzcGxheSA9PT0gdGFnOyB9KTsgfSk7XHJcbiAgICAgICAgKF9hID0gcHJvcHMudGFnc0luZm8pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHByb3BzLCBiYXNpY1RhZ3MpO1xyXG4gICAgICAgIChfYiA9IHByb3BzLmFkdmFuY2VkVGFnc0luZm8pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKHByb3BzLCBhZHZhbmNlZFRhZ0xpc3QubWFwKGZ1bmN0aW9uICh0YWdPYmopIHsgcmV0dXJuIHRhZ09iai52YWx1ZTsgfSkpO1xyXG4gICAgfTtcclxuICAgIHZhciBoYW5kbGVLZXlEb3duID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICB2YXIgY3Vyc29yUG9zaXRpb24gPSBlLmN1cnJlbnRUYXJnZXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgdmFyIGFkdmFuY2VkRmlsdGVyTWF0Y2ggPSBhZHZhbmNlZFRhZ3MgJiYgYWR2YW5jZWRUYWdzLmZpbmQoZnVuY3Rpb24gKGZpbHRlcikgeyByZXR1cm4gaW5wdXRWYWx1ZS5zdGFydHNXaXRoKFwiXCIuY29uY2F0KGZpbHRlciwgXCI9XCIpKTsgfSk7XHJcbiAgICAgICAgaWYgKGFkdmFuY2VkRmlsdGVyTWF0Y2gpIHtcclxuICAgICAgICAgICAgdmFyIGZpbHRlckxlbmd0aCA9IGFkdmFuY2VkRmlsdGVyTWF0Y2guZGlzcGxheS5sZW5ndGg7XHJcbiAgICAgICAgICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSBmaWx0ZXJMZW5ndGggJiYgIVs4LCA0Nl0uaW5jbHVkZXMoZS5rZXlDb2RlKSkge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFByZXZlbnQgdGhlIGlucHV0IG9mICc9JyBtYW51YWxseVxyXG4gICAgICAgIGlmIChlLmtleSA9PT0gXCI9XCIpIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB2YXIgZG9Tb21ldGhpbmcgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIHZhciB0YWcgPSBlLnRhcmdldC5pbm5lclRleHQ7XHJcbiAgICAgICAgaWYgKCFhZHZhbmNlZFRhZ0xpc3QubWFwKGZ1bmN0aW9uICh0YWdPYmopIHsgcmV0dXJuIHRhZ09iai5kaXNwbGF5OyB9KS5pbmNsdWRlcyh0YWcpKSB7XHJcbiAgICAgICAgICAgIHNldElucHV0VmFsdWUoXCJcIi5jb25jYXQodGFnLCBcIj1cIikpO1xyXG4gICAgICAgICAgICBzZXRJbnB1dFZpc2libGUodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICAoX2EgPSBwcm9wcy50YWdzSW5mbykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocHJvcHMsIHRhZ3MpO1xyXG4gICAgICAgIChfYiA9IHByb3BzLmFkdmFuY2VkVGFnc0luZm8pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKHByb3BzLCBhZHZhbmNlZFRhZ0xpc3QubWFwKGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHRhZy52YWx1ZTsgfSkpO1xyXG4gICAgfSwgW3RhZ3MsIGFkdmFuY2VkVGFnTGlzdF0pO1xyXG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAvLyBBZGljaW9uYSBhIG5vdmEgdGFnIGFvIGFsbFRhZ3MgdXNhbmRvIGEgcHJvcCBhZGRFeHRyYVRhZ3NcclxuICAgICAgICBpZiAocHJvcHMuYWRkRXh0cmFUYWdzICYmIHR5cGVvZiBwcm9wcy5hZGRFeHRyYVRhZ3MgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgc2V0VGFncyhfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sIHRhZ3MsIHRydWUpLCBbcHJvcHMuYWRkRXh0cmFUYWdzXSwgZmFsc2UpKTtcclxuICAgICAgICAgICAgc2V0QWxsVGFncyhfX3NwcmVhZEFycmF5KF9fc3ByZWFkQXJyYXkoW10sIGFsbFRhZ3MsIHRydWUpLCBbcHJvcHMuYWRkRXh0cmFUYWdzXSwgZmFsc2UpKTtcclxuICAgICAgICB9XHJcbiAgICB9LCBbcHJvcHMuYWRkRXh0cmFUYWdzXSk7XHJcbiAgICB2YXIgZm9yTWFwID0gZnVuY3Rpb24gKHRhZykge1xyXG4gICAgICAgIHZhciB0YWdFbGVtID0gKF9qc3goVGFnLCBfX2Fzc2lnbih7IGNsb3NhYmxlOiB0cnVlLCBvbkNsb3NlOiBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UodGFnKTtcclxuICAgICAgICAgICAgfSB9LCB7IGNoaWxkcmVuOiB0YWcgfSkpKTtcclxuICAgICAgICByZXR1cm4gKF9qc3goXCJzcGFuXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBzdHlsZXNbJ3RhZ2ZpZWxkX19uZXcnXSwgc3R5bGU6IHsgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfSB9LCB7IGNoaWxkcmVuOiB0YWdFbGVtIH0pLCB0YWcpKTtcclxuICAgIH07XHJcbiAgICB2YXIgYWR2YW5jZWRUYWdzTWFwID0gZnVuY3Rpb24gKHRhZykge1xyXG4gICAgICAgIHZhciBkaXNhYmxlZCA9IGFkdmFuY2VkVGFnTGlzdC5tYXAoZnVuY3Rpb24gKHRhZykgeyByZXR1cm4gdGFnLmRpc3BsYXkuc3BsaXQoJz0nKVswXTsgfSkuaW5jbHVkZXModGFnLmRpc3BsYXkpO1xyXG4gICAgICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBfX2Fzc2lnbih7IG9uQ2xpY2s6ICFkaXNhYmxlZCA/IGRvU29tZXRoaW5nIDogdW5kZWZpbmVkLCBzdHlsZTogeyBjb2xvcjogZGlzYWJsZWQgPyAnZ3JheScgOiB1bmRlZmluZWQgfSB9LCB7IGNoaWxkcmVuOiB0YWcuZGlzcGxheSB9KSwgdGFnLmRpc3BsYXkpKTtcclxuICAgIH07XHJcbiAgICB2YXIgdGFnQ2hpbGQgPSBhbGxUYWdzLm1hcChmb3JNYXApO1xyXG4gICAgdmFyIGFkdmFuY2VkVGFnc0NoaWxkID0gYWR2YW5jZWRUYWdzICYmIGFkdmFuY2VkVGFncy5tYXAoYWR2YW5jZWRUYWdzTWFwKTtcclxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IHN0eWxlcy50YWdmaWVsZCB9LCB7IGNoaWxkcmVuOiBbaW5wdXRWaXNpYmxlICYmIChfanN4KElucHV0LCB7IHJlZjogaW5wdXRSZWYsIHR5cGU6IFwidGV4dFwiLCBzaXplOiBcInNtYWxsXCIsIHZhbHVlOiBpbnB1dFZhbHVlLCBvbkNoYW5nZTogaGFuZGxlSW5wdXRDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlS2V5RG93biwgb25QcmVzc0VudGVyOiBoYW5kbGVJbnB1dENvbmZpcm0sIGNsYXNzTmFtZTogc3R5bGVzWyd0YWdmaWVsZF9faW5wdXQnXSB9KSksICFpbnB1dFZpc2libGUgJiYgKF9qc3hzKFRhZywgX19hc3NpZ24oeyBvbkNsaWNrOiBzaG93SW5wdXQsIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhzdHlsZXNbJ3RhZ2ZpZWxkX19jcmVhdG9yJ10sICdzaXRlLXRhZy1wbHVzJykgfSwgeyBjaGlsZHJlbjogW19qc3goU2VhcmNoT3V0bGluZWQsIHt9KSwgXCIgXCIsIHQoJ2NvbXBvbmVudHMudGFnLnNlYXJjaCcpXSB9KSkpLCBhZHZhbmNlZFRhZ3MgJiZcclxuICAgICAgICAgICAgICAgIF9qc3hzKFwiZGl2XCIsIF9fYXNzaWduKHsgc3R5bGU6IHsgbWFyZ2luVG9wOiAxNiwgbWFyZ2luQm90dG9tOiAxNiB9LCBjbGFzc05hbWU6IHN0eWxlcy5hZHZhbmNlZFRhZ3NXcmFwcGVyIH0sIHsgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogc3R5bGVzLmxhYmVsIH0sIHsgY2hpbGRyZW46IFt0KCdjb21wb25lbnRzLnRhZy5hZHZhbmNlZEZpZWxkcycpLCBcIjpcIl0gfSkpLCBfanN4KFwiZGl2XCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBzdHlsZXMuYWR2YW5jZWRUYWdzIH0sIHsgY2hpbGRyZW46IGFkdmFuY2VkVGFnc0NoaWxkIH0pKV0gfSkpLCBfanN4KFwiZGl2XCIsIF9fYXNzaWduKHsgc3R5bGU6IHsgbWFyZ2luVG9wOiAxNiB9IH0sIHsgY2hpbGRyZW46IF9qc3goVHdlZW5PbmVHcm91cCwgX19hc3NpZ24oeyBlbnRlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZTogMC44LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZnJvbScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAsXHJcbiAgICAgICAgICAgICAgICAgICAgfSwgb25FbmQ6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdhcHBlYXInIHx8IGUudHlwZSA9PT0gJ2VudGVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuc3R5bGUgPSAnZGlzcGxheTogaW5saW5lLWJsb2NrJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIGxlYXZlOiB7IG9wYWNpdHk6IDAsIHdpZHRoOiAwLCBzY2FsZTogMCwgZHVyYXRpb246IDIwMCB9LCBhcHBlYXI6IGZhbHNlIH0sIHsgY2hpbGRyZW46IHRhZ0NoaWxkIH0pKSB9KSldIH0pKSk7XHJcbn07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/components/Tag/index.tsx\n");
|
|
11062
11062
|
|
|
11063
11063
|
/***/ }),
|
|
11064
11064
|
|
|
@@ -33,5 +33,9 @@ export interface TableCustomProps extends TableProps<any> {
|
|
|
33
33
|
columnsSortChange?: any;
|
|
34
34
|
sortByColumns?: boolean;
|
|
35
35
|
columnsToSort?: string[];
|
|
36
|
+
fixedColumns?: {
|
|
37
|
+
dataIndex: string;
|
|
38
|
+
side: 'left' | 'right';
|
|
39
|
+
}[];
|
|
36
40
|
}
|
|
37
41
|
export declare const Table: (props: TableCustomProps) => JSX.Element;
|
package/package.json
CHANGED
|
@@ -20,7 +20,10 @@ const Template: Story<TableCustomProps> = (args) => {
|
|
|
20
20
|
// For example, trigger an API call
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
return <Table
|
|
23
|
+
return <Table scroll={{y: 1000, x: 3000}} fixedColumns={[
|
|
24
|
+
{ dataIndex: 'name', side: 'left' },
|
|
25
|
+
{ dataIndex: 'mecanographicNumber', side: 'left' },
|
|
26
|
+
]} columnsSortChange={handleSortByColumnChange} paginationInfo={setPageInfo} headingTranslationsKey={'tableHeadings'} rowSelectionInfo={setRowSelectionInfo} actionsArray={
|
|
24
27
|
[
|
|
25
28
|
{ key: '1', label: `${t('actions.one')}`, onClick: () => {
|
|
26
29
|
console.log('onClick');
|
|
@@ -45,6 +45,7 @@ export interface TableCustomProps extends TableProps<any> {
|
|
|
45
45
|
columnsSortChange?: any;
|
|
46
46
|
sortByColumns?: boolean;
|
|
47
47
|
columnsToSort?: string[];
|
|
48
|
+
fixedColumns?: { dataIndex: string; side: 'left' | 'right' }[];
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
export const Table = (props: TableCustomProps) => {
|
|
@@ -67,7 +68,8 @@ export const Table = (props: TableCustomProps) => {
|
|
|
67
68
|
tableLoading,
|
|
68
69
|
tableMaxHeight,
|
|
69
70
|
sortByColumns,
|
|
70
|
-
columnsToSort
|
|
71
|
+
columnsToSort,
|
|
72
|
+
fixedColumns
|
|
71
73
|
} = props;
|
|
72
74
|
|
|
73
75
|
const [customFilters, setCustomFilters] = useState<any>([]);
|
|
@@ -107,16 +109,16 @@ export const Table = (props: TableCustomProps) => {
|
|
|
107
109
|
props.paginationInfo(getSortAndPaginationInfo);
|
|
108
110
|
|
|
109
111
|
// SORT
|
|
110
|
-
if(sortByColumns) {
|
|
112
|
+
if (sortByColumns) {
|
|
111
113
|
const { field, order } = sorter;
|
|
112
114
|
let mappedOrder = null;
|
|
113
|
-
if(order === "ascend") {
|
|
115
|
+
if (order === "ascend") {
|
|
114
116
|
mappedOrder = "asc";
|
|
115
|
-
} else if(order === "descend") {
|
|
117
|
+
} else if (order === "descend") {
|
|
116
118
|
mappedOrder = "desc";
|
|
117
119
|
}
|
|
118
|
-
|
|
119
|
-
if(field && mappedOrder) {
|
|
120
|
+
|
|
121
|
+
if (field && mappedOrder) {
|
|
120
122
|
props.columnsSortChange({ field, order: mappedOrder });
|
|
121
123
|
}
|
|
122
124
|
}
|
|
@@ -172,13 +174,17 @@ export const Table = (props: TableCustomProps) => {
|
|
|
172
174
|
|
|
173
175
|
const isColumnSortable = columnsToSort?.includes(key) ? sortByColumns : false;
|
|
174
176
|
|
|
175
|
-
|
|
177
|
+
const column = {
|
|
176
178
|
title: headingTranslationsKey ? t(`${headingTranslationsKey}.${key}`) : key,
|
|
177
179
|
dataIndex: key,
|
|
178
180
|
key: key,
|
|
179
181
|
ellipsis: false,
|
|
180
182
|
sorter: isColumnSortable,
|
|
181
|
-
|
|
183
|
+
// No fixed property here, we'll add it later based on the fixedColumns prop
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
return column;
|
|
187
|
+
|
|
182
188
|
}).filter(el => el !== undefined) as any;
|
|
183
189
|
|
|
184
190
|
let columnActions = {
|
|
@@ -188,21 +194,31 @@ export const Table = (props: TableCustomProps) => {
|
|
|
188
194
|
ellipsis: false,
|
|
189
195
|
render: () => {
|
|
190
196
|
if (!items?.[0]) return null; // Verifica se o array items é nulo
|
|
191
|
-
|
|
197
|
+
|
|
192
198
|
return (
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
199
|
+
<Space size="middle">
|
|
200
|
+
<Dropdown menu={{ items }}>
|
|
201
|
+
<a>
|
|
202
|
+
<MoreOutlined style={{ color: 'var(--color-blue)', transform: 'scale(1.6)' }} />
|
|
203
|
+
</a>
|
|
204
|
+
</Dropdown>
|
|
205
|
+
</Space>
|
|
200
206
|
);
|
|
201
|
-
|
|
207
|
+
},
|
|
202
208
|
};
|
|
203
209
|
|
|
204
210
|
items && columns.push(columnActions as any);
|
|
205
211
|
|
|
212
|
+
if (fixedColumns) {
|
|
213
|
+
fixedColumns.forEach((column) => {
|
|
214
|
+
const { dataIndex, side } = column;
|
|
215
|
+
const foundColumn = columns.find((col: any) => col.dataIndex === dataIndex);
|
|
216
|
+
if (foundColumn) {
|
|
217
|
+
foundColumn.fixed = side;
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
|
|
206
222
|
setCustomColumns(columns);
|
|
207
223
|
|
|
208
224
|
// Filters
|
|
@@ -16,7 +16,7 @@ const Template: Story<TagProps> = (args) => {
|
|
|
16
16
|
|
|
17
17
|
console.log('page: basic', tagsInfo,'advanced', advancedTagsInfo);
|
|
18
18
|
|
|
19
|
-
return <TagField {...args} advancedTags={advancedsFilters} tagsInfo={setTagsInfo} advancedTagsInfo={setAdvancedTagsInfo}></TagField>;
|
|
19
|
+
return <TagField {...args} advancedTags={advancedsFilters} tagsInfo={setTagsInfo} advancedTagsInfo={setAdvancedTagsInfo} addExtraTags={"ola"}></TagField>;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export const Primary = Template.bind({});
|
|
@@ -12,6 +12,7 @@ export interface customTagProps extends TagProps {
|
|
|
12
12
|
tagsInfo?: (tags: string[]) => void;
|
|
13
13
|
advancedTagsInfo?: (tags: string[]) => void;
|
|
14
14
|
advancedTags?: { display: string; value: string }[];
|
|
15
|
+
addExtraTags?: string;
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export const TagField = (props: customTagProps) => {
|
|
@@ -107,6 +108,14 @@ export const TagField = (props: customTagProps) => {
|
|
|
107
108
|
props.advancedTagsInfo?.(advancedTagList.map(tag => tag.value));
|
|
108
109
|
}, [tags, advancedTagList]);
|
|
109
110
|
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
// Adiciona a nova tag ao allTags usando a prop addExtraTags
|
|
113
|
+
if (props.addExtraTags && typeof props.addExtraTags === "string") {
|
|
114
|
+
setTags([...tags, props.addExtraTags]);
|
|
115
|
+
setAllTags([...allTags, props.addExtraTags]);
|
|
116
|
+
}
|
|
117
|
+
}, [props.addExtraTags]);
|
|
118
|
+
|
|
110
119
|
const forMap = (tag: string) => {
|
|
111
120
|
const tagElem = (
|
|
112
121
|
<Tag
|