UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

196 lines (195 loc) • 27.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _windowinfo = require("@faceless-ui/window-info"); const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); const _reacti18next = require("react-i18next"); const _formatFilesize = /*#__PURE__*/ _interop_require_default(require("../../../../../uploads/formatFilesize")); const _getTranslation = require("../../../../../utilities/getTranslation"); const _Button = /*#__PURE__*/ _interop_require_default(require("../../../elements/Button")); const _DeleteMany = /*#__PURE__*/ _interop_require_default(require("../../../elements/DeleteMany")); const _EditMany = /*#__PURE__*/ _interop_require_default(require("../../../elements/EditMany")); const _Gutter = require("../../../elements/Gutter"); const _ListControls = require("../../../elements/ListControls"); const _ListSelection = /*#__PURE__*/ _interop_require_default(require("../../../elements/ListSelection")); const _Paginator = /*#__PURE__*/ _interop_require_default(require("../../../elements/Paginator")); const _PerPage = /*#__PURE__*/ _interop_require_default(require("../../../elements/PerPage")); const _Pill = /*#__PURE__*/ _interop_require_default(require("../../../elements/Pill")); const _PublishMany = /*#__PURE__*/ _interop_require_default(require("../../../elements/PublishMany")); const _ShimmerEffect = require("../../../elements/ShimmerEffect"); const _Table = require("../../../elements/Table"); const _UnpublishMany = /*#__PURE__*/ _interop_require_default(require("../../../elements/UnpublishMany")); const _ViewDescription = /*#__PURE__*/ _interop_require_default(require("../../../elements/ViewDescription")); const _Meta = /*#__PURE__*/ _interop_require_default(require("../../../utilities/Meta")); const _RelationshipProvider = require("./RelationshipProvider"); const _SelectionProvider = require("./SelectionProvider"); 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 = 'collection-list'; const DefaultList = (props)=>{ const { collection: { admin: { components: { AfterList, AfterListTable, BeforeList, BeforeListTable } = {}, description } = {}, labels: { plural: pluralLabel, singular: singularLabel } }, collection, customHeader, data, handlePageChange, handlePerPageChange, handleSearchChange, handleSortChange, handleWhereChange, hasCreatePermission, limit, modifySearchParams, newDocumentURL, resetParams, titleField } = props; const { breakpoints: { s: smallBreak } } = (0, _windowinfo.useWindowInfo)(); const { i18n, t } = (0, _reacti18next.useTranslation)('general'); let formattedDocs = data.docs || []; if (collection.upload) { formattedDocs = formattedDocs?.map((doc)=>{ return { ...doc, filesize: (0, _formatFilesize.default)(doc.filesize) }; }); } return /*#__PURE__*/ _react.default.createElement("div", { className: baseClass }, Array.isArray(BeforeList) && BeforeList.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, { key: i, ...props })), /*#__PURE__*/ _react.default.createElement(_Meta.default, { title: (0, _getTranslation.getTranslation)(collection.labels.plural, i18n) }), /*#__PURE__*/ _react.default.createElement(_SelectionProvider.SelectionProvider, { docs: data.docs, totalDocs: data.totalDocs }, /*#__PURE__*/ _react.default.createElement(_Gutter.Gutter, { className: `${baseClass}__wrap` }, /*#__PURE__*/ _react.default.createElement("header", { className: `${baseClass}__header` }, customHeader && customHeader, !customHeader && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement("h1", null, (0, _getTranslation.getTranslation)(pluralLabel, i18n)), hasCreatePermission && /*#__PURE__*/ _react.default.createElement(_Pill.default, { "aria-label": t('createNewLabel', { label: (0, _getTranslation.getTranslation)(singularLabel, i18n) }), to: newDocumentURL }, t('createNew')), !smallBreak && /*#__PURE__*/ _react.default.createElement(_ListSelection.default, { label: (0, _getTranslation.getTranslation)(collection.labels.plural, i18n) }), description && /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__sub-header` }, /*#__PURE__*/ _react.default.createElement(_ViewDescription.default, { description: description })))), /*#__PURE__*/ _react.default.createElement(_ListControls.ListControls, { collection: collection, handleSearchChange: handleSearchChange, handleSortChange: handleSortChange, handleWhereChange: handleWhereChange, modifySearchQuery: modifySearchParams, resetParams: resetParams, titleField: titleField }), Array.isArray(BeforeListTable) && BeforeListTable.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, { key: i, ...props })), !data.docs && /*#__PURE__*/ _react.default.createElement(_ShimmerEffect.StaggeredShimmers, { className: [ `${baseClass}__shimmer`, `${baseClass}__shimmer--rows` ].join(' '), count: 6 }), data.docs && data.docs.length > 0 && /*#__PURE__*/ _react.default.createElement(_RelationshipProvider.RelationshipProvider, null, /*#__PURE__*/ _react.default.createElement(_Table.Table, { data: formattedDocs })), data.docs && data.docs.length === 0 && /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__no-results` }, /*#__PURE__*/ _react.default.createElement("p", null, t('noResults', { label: (0, _getTranslation.getTranslation)(pluralLabel, i18n) })), hasCreatePermission && newDocumentURL && /*#__PURE__*/ _react.default.createElement(_Button.default, { el: "link", to: newDocumentURL }, t('createNewLabel', { label: (0, _getTranslation.getTranslation)(singularLabel, i18n) }))), Array.isArray(AfterListTable) && AfterListTable.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, { key: i, ...props })), data.docs && data.docs.length > 0 && /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__page-controls` }, /*#__PURE__*/ _react.default.createElement(_Paginator.default, { disableHistoryChange: modifySearchParams === false, hasNextPage: data.hasNextPage, hasPrevPage: data.hasPrevPage, limit: data.limit, nextPage: data.nextPage, numberOfNeighbors: 1, onChange: handlePageChange, page: data.page, prevPage: data.prevPage, totalPages: data.totalPages }), data?.totalDocs > 0 && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__page-info` }, data.page * data.limit - (data.limit - 1), "-", data.totalPages > 1 && data.totalPages !== data.page ? data.limit * data.page : data.totalDocs, ' ', t('of'), " ", data.totalDocs), /*#__PURE__*/ _react.default.createElement(_PerPage.default, { handleChange: handlePerPageChange, limit: limit, limits: collection?.admin?.pagination?.limits, modifySearchParams: modifySearchParams, resetPage: data.totalDocs <= data.pagingCounter }), smallBreak && /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__list-selection` }, /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, /*#__PURE__*/ _react.default.createElement(_ListSelection.default, { label: (0, _getTranslation.getTranslation)(collection.labels.plural, i18n) }), /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__list-selection-actions` }, /*#__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 })))))))), Array.isArray(AfterList) && AfterList.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, { key: i, ...props }))); }; const _default = DefaultList; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL2NvbGxlY3Rpb25zL0xpc3QvRGVmYXVsdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlV2luZG93SW5mbyB9IGZyb20gJ0BmYWNlbGVzcy11aS93aW5kb3ctaW5mbydcbmltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IGZvcm1hdEZpbGVzaXplIGZyb20gJy4uLy4uLy4uLy4uLy4uL3VwbG9hZHMvZm9ybWF0RmlsZXNpemUnXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvQnV0dG9uJ1xuaW1wb3J0IERlbGV0ZU1hbnkgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvRGVsZXRlTWFueSdcbmltcG9ydCBFZGl0TWFueSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9FZGl0TWFueSdcbmltcG9ydCB7IEd1dHRlciB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0d1dHRlcidcbmltcG9ydCB7IExpc3RDb250cm9scyB9IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0xpc3RDb250cm9scydcbmltcG9ydCBMaXN0U2VsZWN0aW9uIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL0xpc3RTZWxlY3Rpb24nXG5pbXBvcnQgUGFnaW5hdG9yIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1BhZ2luYXRvcidcbmltcG9ydCBQZXJQYWdlIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1BlclBhZ2UnXG5pbXBvcnQgUGlsbCBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9QaWxsJ1xuaW1wb3J0IFB1Ymxpc2hNYW55IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1B1Ymxpc2hNYW55J1xuaW1wb3J0IHsgU3RhZ2dlcmVkU2hpbW1lcnMgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9TaGltbWVyRWZmZWN0J1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9UYWJsZSdcbmltcG9ydCBVbnB1Ymxpc2hNYW55IGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1VucHVibGlzaE1hbnknXG5pbXBvcnQgVmlld0Rlc2NyaXB0aW9uIGZyb20gJy4uLy4uLy4uL2VsZW1lbnRzL1ZpZXdEZXNjcmlwdGlvbidcbmltcG9ydCBNZXRhIGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9NZXRhJ1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwUHJvdmlkZXIgfSBmcm9tICcuL1JlbGF0aW9uc2hpcFByb3ZpZGVyJ1xuaW1wb3J0IHsgU2VsZWN0aW9uUHJvdmlkZXIgfSBmcm9tICcuL1NlbGVjdGlvblByb3ZpZGVyJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdjb2xsZWN0aW9uLWxpc3QnXG5cbmNvbnN0IERlZmF1bHRMaXN0OiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbGxlY3Rpb246IHtcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGNvbXBvbmVudHM6IHsgQWZ0ZXJMaXN0LCBBZnRlckxpc3RUYWJsZSwgQmVmb3JlTGlzdCwgQmVmb3JlTGlzdFRhYmxlIH0gPSB7fSxcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICB9ID0ge30sXG4gICAgICBsYWJlbHM6IHsgcGx1cmFsOiBwbHVyYWxMYWJlbCwgc2luZ3VsYXI6IHNpbmd1bGFyTGFiZWwgfSxcbiAgICB9LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgY3VzdG9tSGVhZGVyLFxuICAgIGRhdGEsXG4gICAgaGFuZGxlUGFnZUNoYW5nZSxcbiAgICBoYW5kbGVQZXJQYWdlQ2hhbmdlLFxuICAgIGhhbmRsZVNlYXJjaENoYW5nZSxcbiAgICBoYW5kbGVTb3J0Q2hhbmdlLFxuICAgIGhhbmRsZVdoZXJlQ2hhbmdlLFxuICAgIGhhc0NyZWF0ZVBlcm1pc3Npb24sXG4gICAgbGltaXQsXG4gICAgbW9kaWZ5U2VhcmNoUGFyYW1zLFxuICAgIG5ld0RvY3VtZW50VVJMLFxuICAgIHJlc2V0UGFyYW1zLFxuICAgIHRpdGxlRmllbGQsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHtcbiAgICBicmVha3BvaW50czogeyBzOiBzbWFsbEJyZWFrIH0sXG4gIH0gPSB1c2VXaW5kb3dJbmZvKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG4gIGxldCBmb3JtYXR0ZWREb2NzID0gZGF0YS5kb2NzIHx8IFtdXG5cbiAgaWYgKGNvbGxlY3Rpb24udXBsb2FkKSB7XG4gICAgZm9ybWF0dGVkRG9jcyA9IGZvcm1hdHRlZERvY3M/Lm1hcCgoZG9jKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kb2MsXG4gICAgICAgIGZpbGVzaXplOiBmb3JtYXRGaWxlc2l6ZShkb2MuZmlsZXNpemUpLFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAge0FycmF5LmlzQXJyYXkoQmVmb3JlTGlzdCkgJiZcbiAgICAgICAgQmVmb3JlTGlzdC5tYXAoKENvbXBvbmVudCwgaSkgPT4gPENvbXBvbmVudCBrZXk9e2l9IHsuLi5wcm9wc30gLz4pfVxuXG4gICAgICA8TWV0YSB0aXRsZT17Z2V0VHJhbnNsYXRpb24oY29sbGVjdGlvbi5sYWJlbHMucGx1cmFsLCBpMThuKX0gLz5cbiAgICAgIDxTZWxlY3Rpb25Qcm92aWRlciBkb2NzPXtkYXRhLmRvY3N9IHRvdGFsRG9jcz17ZGF0YS50b3RhbERvY3N9PlxuICAgICAgICA8R3V0dGVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcGB9PlxuICAgICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXJgfT5cbiAgICAgICAgICAgIHtjdXN0b21IZWFkZXIgJiYgY3VzdG9tSGVhZGVyfVxuICAgICAgICAgICAgeyFjdXN0b21IZWFkZXIgJiYgKFxuICAgICAgICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPGgxPntnZXRUcmFuc2xhdGlvbihwbHVyYWxMYWJlbCwgaTE4bil9PC9oMT5cbiAgICAgICAgICAgICAgICB7aGFzQ3JlYXRlUGVybWlzc2lvbiAmJiAoXG4gICAgICAgICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjcmVhdGVOZXdMYWJlbCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHNpbmd1bGFyTGFiZWwsIGkxOG4pIH0pfVxuICAgICAgICAgICAgICAgICAgICB0bz17bmV3RG9jdW1lbnRVUkx9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt0KCdjcmVhdGVOZXcnKX1cbiAgICAgICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHshc21hbGxCcmVhayAmJiAoXG4gICAgICAgICAgICAgICAgICA8TGlzdFNlbGVjdGlvbiBsYWJlbD17Z2V0VHJhbnNsYXRpb24oY29sbGVjdGlvbi5sYWJlbHMucGx1cmFsLCBpMThuKX0gLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHtkZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc3ViLWhlYWRlcmB9PlxuICAgICAgICAgICAgICAgICAgICA8Vmlld0Rlc2NyaXB0aW9uIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDxMaXN0Q29udHJvbHNcbiAgICAgICAgICAgIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259XG4gICAgICAgICAgICBoYW5kbGVTZWFyY2hDaGFuZ2U9e2hhbmRsZVNlYXJjaENoYW5nZX1cbiAgICAgICAgICAgIGhhbmRsZVNvcnRDaGFuZ2U9e2hhbmRsZVNvcnRDaGFuZ2V9XG4gICAgICAgICAgICBoYW5kbGVXaGVyZUNoYW5nZT17aGFuZGxlV2hlcmVDaGFuZ2V9XG4gICAgICAgICAgICBtb2RpZnlTZWFyY2hRdWVyeT17bW9kaWZ5U2VhcmNoUGFyYW1zfVxuICAgICAgICAgICAgcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfVxuICAgICAgICAgICAgdGl0bGVGaWVsZD17dGl0bGVGaWVsZH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KEJlZm9yZUxpc3RUYWJsZSkgJiZcbiAgICAgICAgICAgIEJlZm9yZUxpc3RUYWJsZS5tYXAoKENvbXBvbmVudCwgaSkgPT4gPENvbXBvbmVudCBrZXk9e2l9IHsuLi5wcm9wc30gLz4pfVxuICAgICAgICAgIHshZGF0YS5kb2NzICYmIChcbiAgICAgICAgICAgIDxTdGFnZ2VyZWRTaGltbWVyc1xuICAgICAgICAgICAgICBjbGFzc05hbWU9e1tgJHtiYXNlQ2xhc3N9X19zaGltbWVyYCwgYCR7YmFzZUNsYXNzfV9fc2hpbW1lci0tcm93c2BdLmpvaW4oJyAnKX1cbiAgICAgICAgICAgICAgY291bnQ9ezZ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2RhdGEuZG9jcyAmJiBkYXRhLmRvY3MubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8UmVsYXRpb25zaGlwUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDxUYWJsZSBkYXRhPXtmb3JtYXR0ZWREb2NzfSAvPlxuICAgICAgICAgICAgPC9SZWxhdGlvbnNoaXBQcm92aWRlcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtkYXRhLmRvY3MgJiYgZGF0YS5kb2NzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbm8tcmVzdWx0c2B9PlxuICAgICAgICAgICAgICA8cD57dCgnbm9SZXN1bHRzJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocGx1cmFsTGFiZWwsIGkxOG4pIH0pfTwvcD5cbiAgICAgICAgICAgICAge2hhc0NyZWF0ZVBlcm1pc3Npb24gJiYgbmV3RG9jdW1lbnRVUkwgJiYgKFxuICAgICAgICAgICAgICAgIDxCdXR0b24gZWw9XCJsaW5rXCIgdG89e25ld0RvY3VtZW50VVJMfT5cbiAgICAgICAgICAgICAgICAgIHt0KCdjcmVhdGVOZXdMYWJlbCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHNpbmd1bGFyTGFiZWwsIGkxOG4pIH0pfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7QXJyYXkuaXNBcnJheShBZnRlckxpc3RUYWJsZSkgJiZcbiAgICAgICAgICAgIEFmdGVyTGlzdFRhYmxlLm1hcCgoQ29tcG9uZW50LCBpKSA9PiA8Q29tcG9uZW50IGtleT17aX0gey4uLnByb3BzfSAvPil9XG4gICAgICAgICAge2RhdGEuZG9jcyAmJiBkYXRhLmRvY3MubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcGFnZS1jb250cm9sc2B9PlxuICAgICAgICAgICAgICA8UGFnaW5hdG9yXG4gICAgICAgICAgICAgICAgZGlzYWJsZUhpc3RvcnlDaGFuZ2U9e21vZGlmeVNlYXJjaFBhcmFtcyA9PT0gZmFsc2V9XG4gICAgICAgICAgICAgICAgaGFzTmV4dFBhZ2U9e2RhdGEuaGFzTmV4dFBhZ2V9XG4gICAgICAgICAgICAgICAgaGFzUHJldlBhZ2U9e2RhdGEuaGFzUHJldlBhZ2V9XG4gICAgICAgICAgICAgICAgbGltaXQ9e2RhdGEubGltaXR9XG4gICAgICAgICAgICAgICAgbmV4dFBhZ2U9e2RhdGEubmV4dFBhZ2V9XG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZOZWlnaGJvcnM9ezF9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVBhZ2VDaGFuZ2V9XG4gICAgICAgICAgICAgICAgcGFnZT17ZGF0YS5wYWdlfVxuICAgICAgICAgICAgICAgIHByZXZQYWdlPXtkYXRhLnByZXZQYWdlfVxuICAgICAgICAgICAgICAgIHRvdGFsUGFnZXM9e2RhdGEudG90YWxQYWdlc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2RhdGE/LnRvdGFsRG9jcyA+IDAgJiYgKFxuICAgICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19wYWdlLWluZm9gfT5cbiAgICAgICAgICAgICAgICAgICAge2RhdGEucGFnZSAqIGRhdGEubGltaXQgLSAoZGF0YS5saW1pdCAtIDEpfS1cbiAgICAgICAgICAgICAgICAgICAge2RhdGEudG90YWxQYWdlcyA+IDEgJiYgZGF0YS50b3RhbFBhZ2VzICE9PSBkYXRhLnBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICA/IGRhdGEubGltaXQgKiBkYXRhLnBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICA6IGRhdGEudG90YWxEb2NzfXsnICd9XG4gICAgICAgICAgICAgICAgICAgIHt0KCdvZicpfSB7ZGF0YS50b3RhbERvY3N9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxQZXJQYWdlXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlUGVyUGFnZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgbGltaXQ9e2xpbWl0fVxuICAgICAgICAgICAgICAgICAgICBsaW1pdHM9e2NvbGxlY3Rpb24/LmFkbWluPy5wYWdpbmF0aW9uPy5saW1pdHN9XG4gICAgICAgICAgICAgICAgICAgIG1vZGlmeVNlYXJjaFBhcmFtcz17bW9kaWZ5U2VhcmNoUGFyYW1zfVxuICAgICAgICAgICAgICAgICAgICByZXNldFBhZ2U9e2RhdGEudG90YWxEb2NzIDw9IGRhdGEucGFnaW5nQ291bnRlcn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7c21hbGxCcmVhayAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0LXNlbGVjdGlvbmB9PlxuICAgICAgICAgICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0U2VsZWN0aW9uIGxhYmVsPXtnZXRUcmFuc2xhdGlvbihjb2xsZWN0aW9uLmxhYmVscy5wbHVyYWwsIGkxOG4pfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2xpc3Qtc2VsZWN0aW9uLWFjdGlvbnNgfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEVkaXRNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFB1Ymxpc2hNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFVucHVibGlzaE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlTWFueSBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSByZXNldFBhcmFtcz17cmVzZXRQYXJhbXN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvR3V0dGVyPlxuICAgICAgPC9TZWxlY3Rpb25Qcm92aWRlcj5cbiAgICAgIHtBcnJheS5pc0FycmF5KEFmdGVyTGlzdCkgJiZcbiAgICAgICAgQWZ0ZXJMaXN0Lm1hcCgoQ29tcG9uZW50LCBpKSA9PiA8Q29tcG9uZW50IGtleT17aX0gey4uLnByb3BzfSAvPil9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGVmYXVsdExpc3RcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJEZWZhdWx0TGlzdCIsInByb3BzIiwiY29sbGVjdGlvbiIsImFkbWluIiwiY29tcG9uZW50cyIsIkFmdGVyTGlzdCIsIkFmdGVyTGlzdFRhYmxlIiwiQmVmb3JlTGlzdCIsIkJlZm9yZUxpc3RUYWJsZSIsImRlc2NyaXB0aW9uIiwibGFiZWxzIiwicGx1cmFsIiwicGx1cmFsTGFiZWwiLCJzaW5ndWxhciIsInNpbmd1bGFyTGFiZWwiLCJjdXN0b21IZWFkZXIiLCJkYXRhIiwiaGFuZGxlUGFnZUNoYW5nZSIsImhhbmRsZVBlclBhZ2VDaGFuZ2UiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJoYW5kbGVTb3J0Q2hhbmdlIiwiaGFuZGxlV2hlcmVDaGFuZ2UiLCJoYXNDcmVhdGVQZXJtaXNzaW9uIiwibGltaXQiLCJtb2RpZnlTZWFyY2hQYXJhbXMiLCJuZXdEb2N1bWVudFVSTCIsInJlc2V0UGFyYW1zIiwidGl0bGVGaWVsZCIsImJyZWFrcG9pbnRzIiwicyIsInNtYWxsQnJlYWsiLCJ1c2VXaW5kb3dJbmZvIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImZvcm1hdHRlZERvY3MiLCJkb2NzIiwidXBsb2FkIiwibWFwIiwiZG9jIiwiZmlsZXNpemUiLCJmb3JtYXRGaWxlc2l6ZSIsImRpdiIsImNsYXNzTmFtZSIsIkFycmF5IiwiaXNBcnJheSIsIkNvbXBvbmVudCIsImkiLCJrZXkiLCJNZXRhIiwidGl0bGUiLCJnZXRUcmFuc2xhdGlvbiIsIlNlbGVjdGlvblByb3ZpZGVyIiwidG90YWxEb2NzIiwiR3V0dGVyIiwiaGVhZGVyIiwiRnJhZ21lbnQiLCJoMSIsIlBpbGwiLCJhcmlhLWxhYmVsIiwibGFiZWwiLCJ0byIsIkxpc3RTZWxlY3Rpb24iLCJWaWV3RGVzY3JpcHRpb24iLCJMaXN0Q29udHJvbHMiLCJtb2RpZnlTZWFyY2hRdWVyeSIsIlN0YWdnZXJlZFNoaW1tZXJzIiwiam9pbiIsImNvdW50IiwibGVuZ3RoIiwiUmVsYXRpb25zaGlwUHJvdmlkZXIiLCJUYWJsZSIsInAiLCJCdXR0b24iLCJlbCIsIlBhZ2luYXRvciIsImRpc2FibGVIaXN0b3J5Q2hhbmdlIiwiaGFzTmV4dFBhZ2UiLCJoYXNQcmV2UGFnZSIsIm5leHRQYWdlIiwibnVtYmVyT2ZOZWlnaGJvcnMiLCJvbkNoYW5nZSIsInBhZ2UiLCJwcmV2UGFnZSIsInRvdGFsUGFnZXMiLCJQZXJQYWdlIiwiaGFuZGxlQ2hhbmdlIiwibGltaXRzIiwicGFnaW5hdGlvbiIsInJlc2V0UGFnZSIsInBhZ2luZ0NvdW50ZXIiLCJFZGl0TWFueSIsIlB1Ymxpc2hNYW55IiwiVW5wdWJsaXNoTWFueSIsIkRlbGV0ZU1hbnkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBOExBOzs7ZUFBQTs7OzRCQTlMOEI7K0RBQ0U7OEJBQ0Q7dUVBSUo7Z0NBQ0k7K0RBQ1o7bUVBQ0k7aUVBQ0Y7d0JBQ0U7OEJBQ007c0VBQ0g7a0VBQ0o7Z0VBQ0Y7NkRBQ0g7b0VB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