UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

164 lines (163 loc) • 22 kB
"use strict"; 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+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGlzdENvbnRyb2xzIiwiYmFzZUNsYXNzIiwicHJvcHMiLCJjb2xsZWN0aW9uIiwiYWRtaW4iLCJsaXN0U2VhcmNoYWJsZUZpZWxkcyIsImZpZWxkcyIsImVuYWJsZUNvbHVtbnMiLCJlbmFibGVTb3J0IiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiaGFuZGxlU29ydENoYW5nZSIsImhhbmRsZVdoZXJlQ2hhbmdlIiwibW9kaWZ5U2VhcmNoUXVlcnkiLCJyZXNldFBhcmFtcyIsInRpdGxlRmllbGQiLCJwYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQiLCJ2YWxpZGF0ZVdoZXJlUXVlcnkiLCJ3aGVyZSIsInRleHRGaWVsZHNUb0JlU2VhcmNoZWQiLCJzZXRGaWVsZHNUb0JlU2VhcmNoZWQiLCJ1c2VTdGF0ZSIsImdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQiLCJ2aXNpYmxlRHJhd2VyIiwic2V0VmlzaWJsZURyYXdlciIsInVuZGVmaW5lZCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJicmVha3BvaW50cyIsInMiLCJzbWFsbEJyZWFrIiwidXNlV2luZG93SW5mbyIsIlJlYWN0IiwidXNlRWZmZWN0IiwiZGl2IiwiY2xhc3NOYW1lIiwiU2VhcmNoRmlsdGVyIiwiZmllbGRMYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWwiLCJuYW1lIiwiZmllbGROYW1lIiwiZmllbGRBZmZlY3RzRGF0YSIsImhhbmRsZUNoYW5nZSIsIkZyYWdtZW50IiwiRWRpdE1hbnkiLCJQdWJsaXNoTWFueSIsIlVucHVibGlzaE1hbnkiLCJEZWxldGVNYW55IiwiUGlsbCIsImFyaWEtY29udHJvbHMiLCJhcmlhLWV4cGFuZGVkIiwiaWNvbiIsIkNoZXZyb24iLCJvbkNsaWNrIiwicGlsbFN0eWxlIiwiQW5pbWF0ZUhlaWdodCIsImhlaWdodCIsImlkIiwiQ29sdW1uU2VsZWN0b3IiLCJXaGVyZUJ1aWxkZXIiLCJTb3J0Q29tcGxleCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFnQ2FBOzs7ZUFBQUE7Ozs0QkFoQ2lCOytEQUNFOzJFQUNOOzhCQUNLO3VCQUlFO2dDQUNGO2dFQUNYOzhCQUNZO3VFQUVMO21FQUNKO2lFQUNGOzZEQUNKO29FQUNPO3FFQUNDO29FQUNEO3NFQUNFO3FFQUNEOzJFQUNNOzJDQUNXO1FBQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1DLFlBQVk7QUFPWCxNQUFNRCxlQUFnQyxDQUFDRTtJQUM1QyxNQUFNLEVBQ0pDLFlBQVksRUFDVkMsT0FBTyxFQUFFQyxvQkFBb0IsRUFBRSxFQUMvQkMsTUFBTSxFQUNQLEVBQ0RILFVBQVUsRUFDVkksZ0JBQWdCLElBQUksRUFDcEJDLGFBQWEsS0FBSyxFQUNsQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsb0JBQW9CLElBQUksRUFDeEJDLFdBQVcsRUFDWEMsVUFBVSxFQUNYLEdBQUdaO0lBRUosTUFBTWEsU0FBU0MsSUFBQUEsNkJBQWU7SUFDOUIsTUFBTUMsOEJBQThCQyxJQUFBQSwyQkFBa0IsRUFBQ0gsUUFBUUk7SUFFL0QsTUFBTSxDQUFDQyx3QkFBd0JDLHNCQUFzQixHQUFHQyxJQUFBQSxlQUFRLEVBQzlEQyxJQUFBQSxvREFBeUIsRUFBQ2xCLHNCQUFzQkM7SUFFbEQsTUFBTSxDQUFDa0IsZUFBZUMsaUJBQWlCLEdBQUdILElBQUFBLGVBQVEsRUFDaERMLDhCQUE4QixVQUFVUztJQUUxQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFDbkMsTUFBTSxFQUNKQyxhQUFhLEVBQUVDLEdBQUdDLFVBQVUsRUFBRSxFQUMvQixHQUFHQyxJQUFBQSx5QkFBYTtJQUVqQkMsY0FBSyxDQUFDQyxTQUFTLENBQUM7UUFDZGQsc0JBQXNCRSxJQUFBQSxvREFBeUIsRUFBQ2xCLHNCQUFzQkM7SUFDeEUsR0FBRztRQUFDRDtRQUFzQkM7S0FBTztJQUVqQyxxQkFDRSw2QkFBQzhCO1FBQUlDLFdBQVdwQztxQkFDZCw2QkFBQ21DO1FBQUlDLFdBQVcsQ0FBQyxFQUFFcEMsVUFBVSxNQUFNLENBQUM7cUJBQ2xDLDZCQUFDcUMscUJBQVk7UUFDWEMsWUFDRSxBQUFDekIsQ0FBQUEsY0FBYzBCLElBQUFBLDhCQUFjLEVBQUMxQixXQUFXMkIsS0FBSyxJQUFJM0IsV0FBVzRCLElBQUksRUFBRWYsS0FBSSxLQUFNRDtRQUUvRWlCLFdBQVc3QixjQUFjOEIsSUFBQUEsdUJBQWdCLEVBQUM5QixjQUFjQSxXQUFXNEIsSUFBSSxHQUFHaEI7UUFDMUVtQixjQUFjcEM7UUFDZEosc0JBQXNCZTtRQUN0QlIsbUJBQW1CQTtzQkFFckIsNkJBQUN3QjtRQUFJQyxXQUFXLENBQUMsRUFBRXBDLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ21DO1FBQUlDLFdBQVcsQ0FBQyxFQUFFcEMsVUFBVSxjQUFjLENBQUM7T0FDekMsQ0FBQytCLDRCQUNBLDZCQUFDRSxjQUFLLENBQUNZLFFBQVEsc0JBQ2IsNkJBQUNDLGlCQUFRO1FBQUM1QyxZQUFZQTtRQUFZVSxhQUFhQTtzQkFDL0MsNkJBQUNtQyxvQkFBVztRQUFDN0MsWUFBWUE7UUFBWVUsYUFBYUE7c0JBQ2xELDZCQUFDb0Msc0JBQWE7UUFBQzlDLFlBQVlBO1FBQVlVLGFBQWFBO3NCQUNwRCw2QkFBQ3FDLG1CQUFVO1FBQUMvQyxZQUFZQTtRQUFZVSxhQUFhQTtTQUdwRE4sK0JBQ0MsNkJBQUM0QyxhQUFJO1FBQ0hDLGlCQUFlLENBQUMsRUFBRW5ELFVBQVUsUUFBUSxDQUFDO1FBQ3JDb0QsaUJBQWU3QixrQkFBa0I7UUFDakNhLFdBQVcsQ0FBQyxFQUFFcEMsVUFBVSxpQkFBaUIsRUFDdkN1QixrQkFBa0IsWUFBWSxDQUFDLEVBQUV2QixVQUFVLGdCQUFnQixDQUFDLEdBQUcsR0FDaEUsQ0FBQztRQUNGcUQsb0JBQU0sNkJBQUNDLGdCQUFPO1FBQ2RDLFNBQVMsSUFDUC9CLGlCQUFpQkQsa0JBQWtCLFlBQVksWUFBWUU7UUFFN0QrQixXQUFVO09BRVQ3QixFQUFFLDJCQUdQLDZCQUFDdUIsYUFBSTtRQUNIQyxpQkFBZSxDQUFDLEVBQUVuRCxVQUFVLE1BQU0sQ0FBQztRQUNuQ29ELGlCQUFlN0Isa0JBQWtCO1FBQ2pDYSxXQUFXLENBQUMsRUFBRXBDLFVBQVUsZUFBZSxFQUNyQ3VCLGtCQUFrQixVQUFVLENBQUMsRUFBRXZCLFVBQVUsZ0JBQWdCLENBQUMsR0FBRyxHQUM5RCxDQUFDO1FBQ0ZxRCxvQkFBTSw2QkFBQ0MsZ0JBQU87UUFDZEMsU0FBUyxJQUFNL0IsaUJBQWlCRCxrQkFBa0IsVUFBVSxVQUFVRTtRQUN0RStCLFdBQVU7T0FFVDdCLEVBQUUsYUFFSnBCLDRCQUNDLDZCQUFDMkMsYUFBSTtRQUNIQyxpQkFBZSxDQUFDLEVBQUVuRCxVQUFVLEtBQUssQ0FBQztRQUNsQ29ELGlCQUFlN0Isa0JBQWtCO1FBQ2pDYSxXQUFXLENBQUMsRUFBRXBDLFVBQVUsYUFBYSxDQUFDO1FBQ3RDcUQsb0JBQU0sNkJBQUNDLGdCQUFPO1FBQ2RDLFNBQVMsSUFBTS9CLGlCQUFpQkQsa0JBQWtCLFNBQVMsU0FBU0U7UUFDcEUrQixXQUFVO09BRVQ3QixFQUFFLGFBTVpyQiwrQkFDQyw2QkFBQ21ELDJCQUFhO1FBQ1pyQixXQUFXLENBQUMsRUFBRXBDLFVBQVUsU0FBUyxDQUFDO1FBQ2xDMEQsUUFBUW5DLGtCQUFrQixZQUFZLFNBQVM7UUFDL0NvQyxJQUFJLENBQUMsRUFBRTNELFVBQVUsUUFBUSxDQUFDO3FCQUUxQiw2QkFBQzRELHVCQUFjO1FBQUMxRCxZQUFZQTt1QkFHaEMsNkJBQUN1RCwyQkFBYTtRQUNackIsV0FBVyxDQUFDLEVBQUVwQyxVQUFVLE9BQU8sQ0FBQztRQUNoQzBELFFBQVFuQyxrQkFBa0IsVUFBVSxTQUFTO1FBQzdDb0MsSUFBSSxDQUFDLEVBQUUzRCxVQUFVLE1BQU0sQ0FBQztxQkFFeEIsNkJBQUM2RCxxQkFBWTtRQUNYM0QsWUFBWUE7UUFDWjBDLGNBQWNsQztRQUNkQyxtQkFBbUJBO1NBR3RCSiw0QkFDQyw2QkFBQ2tELDJCQUFhO1FBQ1pyQixXQUFXLENBQUMsRUFBRXBDLFVBQVUsTUFBTSxDQUFDO1FBQy9CMEQsUUFBUW5DLGtCQUFrQixTQUFTLFNBQVM7UUFDNUNvQyxJQUFJLENBQUMsRUFBRTNELFVBQVUsS0FBSyxDQUFDO3FCQUV2Qiw2QkFBQzhELG9CQUFXO1FBQ1Y1RCxZQUFZQTtRQUNaMEMsY0FBY25DO1FBQ2RFLG1CQUFtQkE7O0FBTS9CIn0=