payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
164 lines (163 loc) • 22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "ListControls", {
enumerable: true,
get: function() {
return ListControls;
}
});
const _windowinfo = require("@faceless-ui/window-info");
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _reactanimateheight = /*#__PURE__*/ _interop_require_default(require("react-animate-height"));
const _reacti18next = require("react-i18next");
const _types = require("../../../../fields/config/types");
const _getTranslation = require("../../../../utilities/getTranslation");
const _Chevron = /*#__PURE__*/ _interop_require_default(require("../../icons/Chevron"));
const _SearchParams = require("../../utilities/SearchParams");
const _ColumnSelector = /*#__PURE__*/ _interop_require_default(require("../ColumnSelector"));
const _DeleteMany = /*#__PURE__*/ _interop_require_default(require("../DeleteMany"));
const _EditMany = /*#__PURE__*/ _interop_require_default(require("../EditMany"));
const _Pill = /*#__PURE__*/ _interop_require_default(require("../Pill"));
const _PublishMany = /*#__PURE__*/ _interop_require_default(require("../PublishMany"));
const _SearchFilter = /*#__PURE__*/ _interop_require_default(require("../SearchFilter"));
const _SortComplex = /*#__PURE__*/ _interop_require_default(require("../SortComplex"));
const _UnpublishMany = /*#__PURE__*/ _interop_require_default(require("../UnpublishMany"));
const _WhereBuilder = /*#__PURE__*/ _interop_require_default(require("../WhereBuilder"));
const _validateWhereQuery = /*#__PURE__*/ _interop_require_default(require("../WhereBuilder/validateWhereQuery"));
const _getTextFieldsToBeSearched = require("./getTextFieldsToBeSearched");
require("./index.scss");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const baseClass = 'list-controls';
const ListControls = (props)=>{
const { collection: { admin: { listSearchableFields }, fields }, collection, enableColumns = true, enableSort = false, handleSearchChange, handleSortChange, handleWhereChange, modifySearchQuery = true, resetParams, titleField } = props;
const params = (0, _SearchParams.useSearchParams)();
const shouldInitializeWhereOpened = (0, _validateWhereQuery.default)(params?.where);
const [textFieldsToBeSearched, setFieldsToBeSearched] = (0, _react.useState)((0, _getTextFieldsToBeSearched.getTextFieldsToBeSearched)(listSearchableFields, fields));
const [visibleDrawer, setVisibleDrawer] = (0, _react.useState)(shouldInitializeWhereOpened ? 'where' : undefined);
const { i18n, t } = (0, _reacti18next.useTranslation)('general');
const { breakpoints: { s: smallBreak } } = (0, _windowinfo.useWindowInfo)();
_react.default.useEffect(()=>{
setFieldsToBeSearched((0, _getTextFieldsToBeSearched.getTextFieldsToBeSearched)(listSearchableFields, fields));
}, [
listSearchableFields,
fields
]);
return /*#__PURE__*/ _react.default.createElement("div", {
className: baseClass
}, /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__wrap`
}, /*#__PURE__*/ _react.default.createElement(_SearchFilter.default, {
fieldLabel: (titleField && (0, _getTranslation.getTranslation)(titleField.label || titleField.name, i18n)) ?? undefined,
fieldName: titleField && (0, _types.fieldAffectsData)(titleField) ? titleField.name : undefined,
handleChange: handleSearchChange,
listSearchableFields: textFieldsToBeSearched,
modifySearchQuery: modifySearchQuery
}), /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__buttons`
}, /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__buttons-wrap`
}, !smallBreak && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_EditMany.default, {
collection: collection,
resetParams: resetParams
}), /*#__PURE__*/ _react.default.createElement(_PublishMany.default, {
collection: collection,
resetParams: resetParams
}), /*#__PURE__*/ _react.default.createElement(_UnpublishMany.default, {
collection: collection,
resetParams: resetParams
}), /*#__PURE__*/ _react.default.createElement(_DeleteMany.default, {
collection: collection,
resetParams: resetParams
})), enableColumns && /*#__PURE__*/ _react.default.createElement(_Pill.default, {
"aria-controls": `${baseClass}-columns`,
"aria-expanded": visibleDrawer === 'columns',
className: `${baseClass}__toggle-columns ${visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''}`,
icon: /*#__PURE__*/ _react.default.createElement(_Chevron.default, null),
onClick: ()=>setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined),
pillStyle: "light"
}, t('columns')), /*#__PURE__*/ _react.default.createElement(_Pill.default, {
"aria-controls": `${baseClass}-where`,
"aria-expanded": visibleDrawer === 'where',
className: `${baseClass}__toggle-where ${visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''}`,
icon: /*#__PURE__*/ _react.default.createElement(_Chevron.default, null),
onClick: ()=>setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined),
pillStyle: "light"
}, t('filters')), enableSort && /*#__PURE__*/ _react.default.createElement(_Pill.default, {
"aria-controls": `${baseClass}-sort`,
"aria-expanded": visibleDrawer === 'sort',
className: `${baseClass}__toggle-sort`,
icon: /*#__PURE__*/ _react.default.createElement(_Chevron.default, null),
onClick: ()=>setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined),
pillStyle: "light"
}, t('sort'))))), enableColumns && /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
className: `${baseClass}__columns`,
height: visibleDrawer === 'columns' ? 'auto' : 0,
id: `${baseClass}-columns`
}, /*#__PURE__*/ _react.default.createElement(_ColumnSelector.default, {
collection: collection
})), /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
className: `${baseClass}__where`,
height: visibleDrawer === 'where' ? 'auto' : 0,
id: `${baseClass}-where`
}, /*#__PURE__*/ _react.default.createElement(_WhereBuilder.default, {
collection: collection,
handleChange: handleWhereChange,
modifySearchQuery: modifySearchQuery
})), enableSort && /*#__PURE__*/ _react.default.createElement(_reactanimateheight.default, {
className: `${baseClass}__sort`,
height: visibleDrawer === 'sort' ? 'auto' : 0,
id: `${baseClass}-sort`
}, /*#__PURE__*/ _react.default.createElement(_SortComplex.default, {
collection: collection,
handleChange: handleSortChange,
modifySearchQuery: modifySearchQuery
})));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0xpc3RDb250cm9scy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlV2luZG93SW5mbyB9IGZyb20gJ0BmYWNlbGVzcy11aS93aW5kb3ctaW5mbydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEFuaW1hdGVIZWlnaHQgZnJvbSAncmVhY3QtYW5pbWF0ZS1oZWlnaHQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IENoZXZyb24gZnJvbSAnLi4vLi4vaWNvbnMvQ2hldnJvbidcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9TZWFyY2hQYXJhbXMnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCBDb2x1bW5TZWxlY3RvciBmcm9tICcuLi9Db2x1bW5TZWxlY3RvcidcbmltcG9ydCBEZWxldGVNYW55IGZyb20gJy4uL0RlbGV0ZU1hbnknXG5pbXBvcnQgRWRpdE1hbnkgZnJvbSAnLi4vRWRpdE1hbnknXG5pbXBvcnQgUGlsbCBmcm9tICcuLi9QaWxsJ1xuaW1wb3J0IFB1Ymxpc2hNYW55IGZyb20gJy4uL1B1Ymxpc2hNYW55J1xuaW1wb3J0IFNlYXJjaEZpbHRlciBmcm9tICcuLi9TZWFyY2hGaWx0ZXInXG5pbXBvcnQgU29ydENvbXBsZXggZnJvbSAnLi4vU29ydENvbXBsZXgnXG5pbXBvcnQgVW5wdWJsaXNoTWFueSBmcm9tICcuLi9VbnB1Ymxpc2hNYW55J1xuaW1wb3J0IFdoZXJlQnVpbGRlciBmcm9tICcuLi9XaGVyZUJ1aWxkZXInXG5pbXBvcnQgdmFsaWRhdGVXaGVyZVF1ZXJ5IGZyb20gJy4uL1doZXJlQnVpbGRlci92YWxpZGF0ZVdoZXJlUXVlcnknXG5pbXBvcnQgeyBnZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkIH0gZnJvbSAnLi9nZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdsaXN0LWNvbnRyb2xzJ1xuXG4vKipcbiAqIFRoZSBMaXN0Q29udHJvbHMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBjb250cm9scyAoc2VhcmNoLCBmaWx0ZXIsIHdoZXJlKVxuICogZm9yIGEgY29sbGVjdGlvbidzIGxpc3Qgdmlldy4gWW91IGNhbiBmaW5kIHRob3NlIGRpcmVjdGx5IGFib3ZlIHRoZSB0YWJsZSB3aGljaCBsaXN0c1xuICogdGhlIGNvbGxlY3Rpb24ncyBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBMaXN0Q29udHJvbHM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgY29sbGVjdGlvbjoge1xuICAgICAgYWRtaW46IHsgbGlzdFNlYXJjaGFibGVGaWVsZHMgfSxcbiAgICAgIGZpZWxkcyxcbiAgICB9LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgZW5hYmxlQ29sdW1ucyA9IHRydWUsXG4gICAgZW5hYmxlU29ydCA9IGZhbHNlLFxuICAgIGhhbmRsZVNlYXJjaENoYW5nZSxcbiAgICBoYW5kbGVTb3J0Q2hhbmdlLFxuICAgIGhhbmRsZVdoZXJlQ2hhbmdlLFxuICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ID0gdHJ1ZSxcbiAgICByZXNldFBhcmFtcyxcbiAgICB0aXRsZUZpZWxkLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBwYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCBzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQgPSB2YWxpZGF0ZVdoZXJlUXVlcnkocGFyYW1zPy53aGVyZSlcblxuICBjb25zdCBbdGV4dEZpZWxkc1RvQmVTZWFyY2hlZCwgc2V0RmllbGRzVG9CZVNlYXJjaGVkXSA9IHVzZVN0YXRlKFxuICAgIGdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQobGlzdFNlYXJjaGFibGVGaWVsZHMsIGZpZWxkcyksXG4gIClcbiAgY29uc3QgW3Zpc2libGVEcmF3ZXIsIHNldFZpc2libGVEcmF3ZXJdID0gdXNlU3RhdGU8J2NvbHVtbnMnIHwgJ3NvcnQnIHwgJ3doZXJlJz4oXG4gICAgc2hvdWxkSW5pdGlhbGl6ZVdoZXJlT3BlbmVkID8gJ3doZXJlJyA6IHVuZGVmaW5lZCxcbiAgKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcbiAgY29uc3Qge1xuICAgIGJyZWFrcG9pbnRzOiB7IHM6IHNtYWxsQnJlYWsgfSxcbiAgfSA9IHVzZVdpbmRvd0luZm8oKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RmllbGRzVG9CZVNlYXJjaGVkKGdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQobGlzdFNlYXJjaGFibGVGaWVsZHMsIGZpZWxkcykpXG4gIH0sIFtsaXN0U2VhcmNoYWJsZUZpZWxkcywgZmllbGRzXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBgfT5cbiAgICAgICAgPFNlYXJjaEZpbHRlclxuICAgICAgICAgIGZpZWxkTGFiZWw9e1xuICAgICAgICAgICAgKHRpdGxlRmllbGQgJiYgZ2V0VHJhbnNsYXRpb24odGl0bGVGaWVsZC5sYWJlbCB8fCB0aXRsZUZpZWxkLm5hbWUsIGkxOG4pKSA/PyB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgZmllbGROYW1lPXt0aXRsZUZpZWxkICYmIGZpZWxkQWZmZWN0c0RhdGEodGl0bGVGaWVsZCkgPyB0aXRsZUZpZWxkLm5hbWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVTZWFyY2hDaGFuZ2V9XG4gICAgICAgICAgbGlzdFNlYXJjaGFibGVGaWVsZHM9e3RleHRGaWVsZHNUb0JlU2VhcmNoZWR9XG4gICAgICAgICAgbW9kaWZ5U2VhcmNoUXVlcnk9e21vZGlmeVNlYXJjaFF1ZXJ5fVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYnV0dG9uc2B9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19idXR0b25zLXdyYXBgfT5cbiAgICAgICAgICAgIHshc21hbGxCcmVhayAmJiAoXG4gICAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICA8RWRpdE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgIDxQdWJsaXNoTWFueSBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSByZXNldFBhcmFtcz17cmVzZXRQYXJhbXN9IC8+XG4gICAgICAgICAgICAgICAgPFVucHVibGlzaE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgIDxEZWxldGVNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZW5hYmxlQ29sdW1ucyAmJiAoXG4gICAgICAgICAgICAgIDxQaWxsXG4gICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17YCR7YmFzZUNsYXNzfS1jb2x1bW5zYH1cbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt2aXNpYmxlRHJhd2VyID09PSAnY29sdW1ucyd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b2dnbGUtY29sdW1ucyAke1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZURyYXdlciA9PT0gJ2NvbHVtbnMnID8gYCR7YmFzZUNsYXNzfV9fYnV0dG9ucy1hY3RpdmVgIDogJydcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICBpY29uPXs8Q2hldnJvbiAvPn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZURyYXdlcih2aXNpYmxlRHJhd2VyICE9PSAnY29sdW1ucycgPyAnY29sdW1ucycgOiB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBpbGxTdHlsZT1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdjb2x1bW5zJyl9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtgJHtiYXNlQ2xhc3N9LXdoZXJlYH1cbiAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ3doZXJlJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b2dnbGUtd2hlcmUgJHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlRHJhd2VyID09PSAnd2hlcmUnID8gYCR7YmFzZUNsYXNzfV9fYnV0dG9ucy1hY3RpdmVgIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgIGljb249ezxDaGV2cm9uIC8+fVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaXNpYmxlRHJhd2VyKHZpc2libGVEcmF3ZXIgIT09ICd3aGVyZScgPyAnd2hlcmUnIDogdW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgcGlsbFN0eWxlPVwibGlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnZmlsdGVycycpfVxuICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAge2VuYWJsZVNvcnQgJiYgKFxuICAgICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e2Ake2Jhc2VDbGFzc30tc29ydGB9XG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ3NvcnQnfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLXNvcnRgfVxuICAgICAgICAgICAgICAgIGljb249ezxDaGV2cm9uIC8+fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFZpc2libGVEcmF3ZXIodmlzaWJsZURyYXdlciAhPT0gJ3NvcnQnID8gJ3NvcnQnIDogdW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJsaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnc29ydCcpfVxuICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAge2VuYWJsZUNvbHVtbnMgJiYgKFxuICAgICAgICA8QW5pbWF0ZUhlaWdodFxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29sdW1uc2B9XG4gICAgICAgICAgaGVpZ2h0PXt2aXNpYmxlRHJhd2VyID09PSAnY29sdW1ucycgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGlkPXtgJHtiYXNlQ2xhc3N9LWNvbHVtbnNgfVxuICAgICAgICA+XG4gICAgICAgICAgPENvbHVtblNlbGVjdG9yIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IC8+XG4gICAgICAgIDwvQW5pbWF0ZUhlaWdodD5cbiAgICAgICl9XG4gICAgICA8QW5pbWF0ZUhlaWdodFxuICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3doZXJlYH1cbiAgICAgICAgaGVpZ2h0PXt2aXNpYmxlRHJhd2VyID09PSAnd2hlcmUnID8gJ2F1dG8nIDogMH1cbiAgICAgICAgaWQ9e2Ake2Jhc2VDbGFzc30td2hlcmVgfVxuICAgICAgPlxuICAgICAgICA8V2hlcmVCdWlsZGVyXG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVdoZXJlQ2hhbmdlfVxuICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgLz5cbiAgICAgIDwvQW5pbWF0ZUhlaWdodD5cbiAgICAgIHtlbmFibGVTb3J0ICYmIChcbiAgICAgICAgPEFuaW1hdGVIZWlnaHRcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NvcnRgfVxuICAgICAgICAgIGhlaWdodD17dmlzaWJsZURyYXdlciA9PT0gJ3NvcnQnID8gJ2F1dG8nIDogMH1cbiAgICAgICAgICBpZD17YCR7YmFzZUNsYXNzfS1zb3J0YH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTb3J0Q29tcGxleFxuICAgICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU29ydENoYW5nZX1cbiAgICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FuaW1hdGVIZWlnaHQ+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlzdENvbnRyb2xzIiwiYmFzZUNsYXNzIiwicHJvcHMiLCJjb2xsZWN0aW9uIiwiYWRtaW4iLCJsaXN0U2VhcmNoYWJsZUZpZWxkcyIsImZpZWxkcyIsImVuYWJsZUNvbHVtbnMiLCJlbmFibGVTb3J0IiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiaGFuZGxlU29ydENoYW5nZSIsImhhbmRsZVdoZXJlQ2hhbmdlIiwibW9kaWZ5U2VhcmNoUXVlcnkiLCJyZXNldFBhcmFtcyIsInRpdGxlRmllbGQiLCJwYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQiLCJ2YWxpZGF0ZVdoZXJlUXVlcnkiLCJ3aGVyZSIsInRleHRGaWVsZHNUb0JlU2VhcmNoZWQiLCJzZXRGaWVsZHNUb0JlU2VhcmNoZWQiLCJ1c2VTdGF0ZSIsImdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQiLCJ2aXNpYmxlRHJhd2VyIiwic2V0VmlzaWJsZURyYXdlciIsInVuZGVmaW5lZCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJicmVha3BvaW50cyIsInMiLCJzbWFsbEJyZWFrIiwidXNlV2luZG93SW5mbyIsIlJlYWN0IiwidXNlRWZmZWN0IiwiZGl2IiwiY2xhc3NOYW1lIiwiU2VhcmNoRmlsdGVyIiwiZmllbGRMYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWwiLCJuYW1lIiwiZmllbGROYW1lIiwiZmllbGRBZmZlY3RzRGF0YSIsImhhbmRsZUNoYW5nZSIsIkZyYWdtZW50IiwiRWRpdE1hbnkiLCJQdWJsaXNoTWFueSIsIlVucHVibGlzaE1hbnkiLCJEZWxldGVNYW55IiwiUGlsbCIsImFyaWEtY29udHJvbHMiLCJhcmlhLWV4cGFuZGVkIiwiaWNvbiIsIkNoZXZyb24iLCJvbkNsaWNrIiwicGlsbFN0eWxlIiwiQW5pbWF0ZUhlaWdodCIsImhlaWdodCIsImlkIiwiQ29sdW1uU2VsZWN0b3IiLCJXaGVyZUJ1aWxkZXIiLCJTb3J0Q29tcGxleCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQ2FBOzs7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