@guillotinaweb/react-gmi 0.20.1 → 0.22.2
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/CHANGELOG.md +17 -0
- package/README.md +18 -10
- package/dist/components/fields/editableField.d.ts +0 -2
- package/dist/components/fields/renderField.d.ts +8 -0
- package/dist/components/login.d.ts +7 -14
- package/dist/components/selected_items_actions.d.ts +5 -2
- package/dist/hooks/useConfig.d.ts +2 -0
- package/dist/hooks/useRegistry.d.ts +2 -0
- package/dist/lib/client.d.ts +5 -4
- package/dist/lib/rest.d.ts +2 -1
- package/dist/react-gmi.esm.js +2179 -2142
- package/dist/react-gmi.esm.js.map +1 -1
- package/dist/react-gmi.js +2178 -2141
- package/dist/react-gmi.js.map +1 -1
- package/dist/react-gmi.modern.js +1721 -1680
- package/dist/react-gmi.modern.js.map +1 -1
- package/dist/react-gmi.umd.js +2178 -2141
- package/dist/react-gmi.umd.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-gmi.esm.js","sources":["../src/guillo-gmi/lib/rest.js","../src/guillo-gmi/lib/helpers.js","../src/guillo-gmi/components/ui/icon.js","../src/guillo-gmi/components/ui/loading.js","../src/guillo-gmi/components/ui/tag.js","../src/guillo-gmi/components/ui/delete.js","../src/guillo-gmi/components/ui/table.js","../src/guillo-gmi/components/ui/notification.js","../src/guillo-gmi/hooks/useLocation.js","../src/guillo-gmi/components/Link.js","../src/guillo-gmi/components/TdLink.js","../src/guillo-gmi/lib/search.js","../src/guillo-gmi/lib/client.js","../src/guillo-gmi/contexts/index.js","../src/guillo-gmi/components/input/button.js","../src/guillo-gmi/components/modal.js","../src/guillo-gmi/hooks/useSetState.js","../src/guillo-gmi/hooks/useCrudContext.js","../src/guillo-gmi/actions/add_item.js","../src/guillo-gmi/hooks/useConfig.js","../src/guillo-gmi/actions/remove_items.js","../src/guillo-gmi/components/input/checkbox.js","../src/guillo-gmi/components/error_zone.js","../src/guillo-gmi/hooks/useInput.js","../src/guillo-gmi/lib/validators.js","../src/guillo-gmi/components/input/input.js","../src/guillo-gmi/components/input/email.js","../src/guillo-gmi/components/input/form.js","../src/guillo-gmi/components/input/password.js","../src/guillo-gmi/components/input/form_builder.js","../src/guillo-gmi/components/input/select.js","../src/guillo-gmi/components/input/upload.js","../src/guillo-gmi/components/input/textarea.js","../src/guillo-gmi/components/input/search_input.js","../src/guillo-gmi/components/input/input_list.js","../src/guillo-gmi/hooks/useClickAway.js","../src/guillo-gmi/components/input/dropdown.js","../src/guillo-gmi/components/fields/renderField.js","../src/guillo-gmi/lib/utils.js","../src/guillo-gmi/components/fields/downloadField.js","../src/guillo-gmi/components/fields/editableField.js","../src/guillo-gmi/components/behaviors/iattachment.js","../src/guillo-gmi/components/behaviors/imultiattachment.js","../src/guillo-gmi/components/behaviors/idublincore.js","../src/guillo-gmi/components/panel/actions.js","../src/guillo-gmi/hooks/useMountedState.js","../src/guillo-gmi/hooks/useAsyncFn.js","../src/guillo-gmi/hooks/useAsync.js","../src/guillo-gmi/components/panel/addons.js","../src/guillo-gmi/components/panel/behaviors.js","../src/guillo-gmi/components/selected_items_actions.js","../src/guillo-gmi/components/pagination.js","../src/guillo-gmi/models/sharing.js","../src/guillo-gmi/models/index.js","../src/guillo-gmi/components/item.js","../src/guillo-gmi/components/searchLabels.js","../src/guillo-gmi/components/panel/items.js","../src/guillo-gmi/components/behavior_view.js","../src/guillo-gmi/components/properties_view.js","../src/guillo-gmi/components/panel/properties.js","../src/guillo-gmi/components/panel/permissions_prinperm.js","../src/guillo-gmi/components/panel/permissions_prinrole.js","../src/guillo-gmi/components/panel/permissions_roleperm.js","../src/guillo-gmi/components/panel/permissions.js","../src/guillo-gmi/components/widgets/tags.js","../src/guillo-gmi/components/context_toolbar.js","../src/guillo-gmi/components/flash.js","../src/guillo-gmi/components/tabs.js","../src/guillo-gmi/views/folder.js","../src/guillo-gmi/views/item.js","../src/guillo-gmi/views/application.js","../src/guillo-gmi/views/base.js","../src/guillo-gmi/views/container.js","../src/guillo-gmi/forms/users.js","../src/guillo-gmi/hooks/useRemoteField.js","../src/guillo-gmi/views/users.js","../src/guillo-gmi/actions/copy_items.js","../src/guillo-gmi/actions/copy_item.js","../src/guillo-gmi/actions/move_items.js","../src/guillo-gmi/actions/move_item.js","../src/guillo-gmi/actions/remove_item.js","../src/guillo-gmi/actions/change_pass.js","../src/guillo-gmi/forms/base.js","../src/guillo-gmi/views/groups.js","../src/guillo-gmi/components/error_boundary.js","../src/guillo-gmi/components/notallowed.js","../src/guillo-gmi/components/notfound.js","../src/guillo-gmi/components/path.js","../src/guillo-gmi/components/fields/editComponent.js","../src/guillo-gmi/hooks/useRegistry.js","../src/guillo-gmi/reducers/guillotina.js","../src/guillo-gmi/components/guillotina.js","../src/guillo-gmi/components/layout.js","../src/guillo-gmi/components/login.js","../src/guillo-gmi/forms/required_fields.js","../src/guillo-gmi/lib/auth.js"],"sourcesContent":["export class RestClient {\n constructor(url, auth) {\n this.auth = auth\n this.url = url\n }\n\n async request(path, data, headers) {\n data = data || {}\n data.headers = headers || this.getHeaders()\n return await fetch(`${this.url}${path}`, data)\n }\n\n getHeaders() {\n const authToken = this.auth.getToken()\n if (!authToken) return {}\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n\n async post(path, data) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path) {\n return await this.request(path, {})\n }\n\n async put(path, data) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path, data) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path, data) {\n const headers = this.getHeaders()\n delete headers['Content-Type']\n headers['Content-Type'] = data['content-type']\n headers['X-UPLOAD-FILENAME'] = data.filename\n headers['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n headers\n )\n }\n\n async delete(path, data = undefined) {\n return await this.request(path, {\n method: 'delete',\n body: JSON.stringify(data),\n })\n }\n}\n","export const classnames = (classNames) => {\n return classNames.filter(Boolean).join(' ').trim()\n}\n\nexport const noop = () => {}\n\nlet current = 0\n\nexport const generateUID = (prefix) => `${prefix || 'id'}-${current++}`\n\nexport const toQueryString = (params) => {\n return Object.keys(params)\n .map((key) => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])\n })\n .join('&')\n}\n\nexport function base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64)\n const binaryLen = binaryString.length\n const bytes = new Uint8Array(binaryLen)\n for (var i = 0; i < binaryLen; i++) {\n var ascii = binaryString.charCodeAt(i)\n bytes[i] = ascii\n }\n return bytes\n}\n\nexport function stringToSlug(str) {\n str = str.replace(/^\\s+|\\s+$/g, '') // trim\n str = str.toLowerCase()\n\n // remove accents, swap ñ for n, etc\n var from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n var to = 'aaaaeeeeiiiioooouuuunc------'\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-') // collapse dashes\n\n return str\n}\n\nexport function sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve()\n }, ms)\n })\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Icon = ({ icon, className, align }) => {\n const addClass = className ? className.split(' ') : [className]\n\n align = align || 'is-right'\n\n return (\n <span className={classnames(['icon', align, ...addClass])}>\n <i className={icon}></i>\n </span>\n )\n}\n","import React from 'react'\n\nexport const Loading = ({ ...rest }) => (\n <div className=\"progress-line\" {...rest}></div>\n)\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Tag = ({\n name,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}) => (\n <span className={classnames(['tag', color, size])}>\n {name}\n {onRemove !== undefined && (\n <button className=\"delete is-small\" onClick={() => onRemove()}></button>\n )}\n </span>\n)\n","import React from 'react'\n\nexport function Delete({ onClick, className, children }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`delete ${className}`}\n data-test=\"btnDeleteTest\"\n >\n {children}\n </button>\n )\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport function Table({ headers, children, className }) {\n className = className\n ? className.split(' ')\n : ' is-full is-fullwidth is-narrow'.split(' ')\n return (\n <table className={classnames(['table', ...className])}>\n <thead>\n <tr>\n {headers &&\n headers.map((item, idx) => <th key={item + idx}>{item}</th>)}\n </tr>\n </thead>\n <tbody>{children}</tbody>\n </table>\n )\n}\n","import React from 'react'\n\nexport function Notification({ isColor = '', children }) {\n return (\n <div className={'notification is-' + isColor} data-test=\"notificationTest\">\n {children}\n </div>\n )\n}\n","import { useEffect, useRef, useState, useCallback } from 'react'\n\n// Mostly inspired from\n// https://github.com/molefrog/wouter\n\nconst setURLParams = (p) =>\n window.history['pushState'](\n 0,\n 0,\n (window.history.pathname || '') + '?' + p.toString().replace(/%2F/g, '/')\n )\n\nconst clean = (to) => {\n const current = new URLSearchParams()\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n}\n\nexport const useLocation = () => {\n const [path, update] = useState(currentSearchParams())\n const prevPath = useRef(path)\n\n useEffect(() => {\n patchHistoryEvents()\n\n // this function checks if the location has been changed since the\n // last render and updates the state only when needed.\n // unfortunately, we can't rely on `path` value here, since it can be stale,\n // that's why we store the last pathname in a ref.\n const checkForUpdates = () => {\n const pathname = currentSearchParams()\n prevPath.current !== pathname && update((prevPath.current = pathname))\n }\n\n const events = ['popstate', 'pushState', 'replaceState']\n events.map((e) => window.addEventListener(e, checkForUpdates))\n\n // it's possible that an update has occurred between render and the effect handler,\n // so we run additional check on mount to catch these updates. Based on:\n // https://gist.github.com/bvaughn/e25397f70e8c65b0ae0d7c90b731b189\n checkForUpdates()\n\n return () =>\n events.map((e) => window.removeEventListener(e, checkForUpdates))\n }, [])\n\n // the 2nd argument of the `useLocation` return value is a function\n // that allows to perform a navigation.\n //\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n const navigate = useCallback(\n (to, replace) => {\n if (replace) {\n clean(to)\n return\n }\n let current = new URLSearchParams(path.toString())\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n },\n [path]\n )\n\n const remove = useCallback(\n (param) => {\n let current = new URLSearchParams(path.toString())\n current.delete(param)\n setURLParams(current)\n },\n [path]\n )\n\n return [path, navigate, remove]\n}\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\n\nlet patched = 0\n\nconst patchHistoryEvents = () => {\n if (patched) return\n ;['pushState', 'replaceState'].map((type) => {\n const original = window.history[type]\n\n window.history[type] = function () {\n const result = original.apply(this, arguments)\n const event = new Event(type)\n event.arguments = arguments\n\n dispatchEvent(event)\n return result\n }\n })\n\n return (patched = 1)\n}\n\nconst currentSearchParams = (path = window.location.search) =>\n new URLSearchParams(path)\n","import React from 'react'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function Link({ aRef, model, children, ...props }) {\n const [path, navigate] = useLocation()\n const aStyle = { textDecoration: 'none', color: 'currentColor' }\n\n function onClick(e) {\n e.stopPropagation()\n if (actAsLink(e)) return\n e.preventDefault()\n navigate({ path: model.path }, true)\n if (props.onClick) props.onClick(e)\n }\n\n return (\n <a\n {...props}\n ref={aRef}\n href={`?${path}${model.id}/`}\n style={aStyle}\n onClick={onClick}\n >\n {children}\n </a>\n )\n}\n\nfunction actAsLink(e) {\n return e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0\n}\n","import React, { useRef } from 'react'\nimport { Link } from './Link'\n\nexport function TdLink({ model, children, ...props }) {\n const link = useRef()\n\n function onClick() {\n link.current.click()\n }\n\n return (\n <td {...props} onClick={onClick}>\n <Link model={model} aRef={link}>\n {children}\n </Link>\n </td>\n )\n}\n","const SEP = '='\nconst DEFAULT_FIELD = 'title__in'\nconst CLEANER = '||'\n\nexport function parser(qs, defaultField = DEFAULT_FIELD) {\n let lastKey = undefined\n qs.trim()\n\n if (qs.includes('\"')) {\n qs = qs.replace(/\"(\\w+) (\\w+)\"/, `$1${CLEANER}$2`)\n }\n\n qs = qs.split(' ')\n return qs.map((part) => {\n if (part.includes(CLEANER)) {\n part = part.replace('||', ' ')\n }\n if (!part.includes(SEP)) {\n return !lastKey ? [defaultField, part] : [lastKey, part]\n }\n const [key, val] = part.split(SEP)\n lastKey = key\n return [key, val]\n })\n}\n\nexport function buildQs(parsedQuery) {\n return parsedQuery\n .map(\n ([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`\n )\n .join('&')\n}\n","import React from 'react'\nimport { RestClient } from './rest'\nimport { toQueryString } from './helpers'\nimport { Icon } from '../components/ui'\nimport { TdLink } from '../components/TdLink'\nimport { parser } from './search'\n\nlet cacheTypes = {}\nlet cacheSchemas = {}\n\nexport class GuillotinaClient {\n constructor(rest, isContainer) {\n this.rest = rest\n this.isContainer = isContainer\n }\n\n async getContext(path) {\n switch (path) {\n case '/':\n return await this.rest.get('')\n default:\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n }\n\n async get(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsPostresql({ start = 0, pageSize = 10, withDepth = true }) {\n let result = []\n\n result = [\n ...parser(start.toString(), 'b_start'),\n ...parser(pageSize.toString(), 'b_size'),\n ]\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n return result\n }\n\n getQueryParamsElasticsearch({\n start = 0,\n pageSize = 10,\n path,\n withDepth = true,\n }) {\n let result = []\n let containerPath = getContainerFromPath(path)\n\n if (containerPath.startsWith('/')) {\n containerPath = containerPath.slice(1)\n }\n let objectPath = path.replace(containerPath, '')\n if (objectPath.endsWith('/')) {\n objectPath = objectPath.slice(0, -1)\n }\n\n result = [\n ...parser(start.toString(), '_from'),\n ...parser(pageSize.toString(), 'size'),\n ]\n\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n if (objectPath !== '') {\n result = [...result, ...parser(objectPath, 'path__wildcard')]\n }\n return result\n }\n\n getItemsColumn() {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n label: '',\n child: (m) => <td style={smallcss}>{<Icon icon={m.icon} />}</td>,\n },\n {\n label: 'type',\n child: (m) => (\n <TdLink style={smallcss} model={m}>\n <span className=\"tag\">{m.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n child: (m, navigate, search) => (\n <TdLink model={m}>\n {m.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{m.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n ),\n },\n {\n label: 'modified',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat(data) {\n data.member = data.items\n data.items_count = data.items_total\n return data\n }\n\n async search(path, params, container = false, prepare = true) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (container) {\n path = getContainerFromPath(path)\n }\n let query = prepare ? toQueryString(params) : params\n const url = `${path}@search?${query}`\n let res = await this.rest.get(url)\n let data = await res.json()\n return this.applyCompat(data)\n }\n\n async canido(path, permissions) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (Array.isArray(permissions)) {\n permissions.join(',')\n }\n const url = `${path}@canido?permissions=${permissions}`\n return await this.rest.get(url)\n }\n\n async createObject(path, data) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path) {\n let url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path, data) {\n console.log('path', path, this.cleanPath(path))\n return await this.rest.delete(this.cleanPath(path), data)\n }\n\n async create(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path, data) {\n return await this.create(path, data)\n }\n\n async patch(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path, file) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path, name) {\n if (!cacheSchemas[name]) {\n let url = getContainerFromPath(path)\n // todo: handle db case (only addable containers)\n const res = await this.rest.get(`${url}@types/${name}`)\n cacheSchemas[name] = await res.json()\n }\n return cacheSchemas[name]\n }\n\n async getAddons(path) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path, key) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path, key) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path) {\n const endpoint = `${getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path) {\n const endpoint = `${getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(path) {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [gr, usr] = await Promise.all([groups, users])\n\n return {\n groups: gr.ok ? await gr.json() : [],\n users: usr.ok ? await usr.json() : [],\n }\n }\n\n async getRoles(path) {\n const endpoint = `${getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path) {\n // paths used to query the API always has to start without a \"/\"\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!path.endsWith('/')) {\n path = `${path}/`\n }\n const req = await this.rest.get(path + '@all_permissions')\n const resp = await req.json()\n const permissions = Array.from(new Set(extractPermissions(resp)))\n return permissions\n }\n\n async getTypes(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!cacheTypes[path]) {\n const types = await this.rest.get(path + '@addable-types')\n if (types.status === 401 || types.status === 404) {\n cacheTypes[path] = []\n } else {\n const res = await types.json()\n cacheTypes[path] = res\n }\n }\n return cacheTypes[path]\n }\n}\n\nexport function getClient(url, auth, isContainer = false) {\n return new GuillotinaClient(new RestClient(url, auth), isContainer)\n}\n\nexport const getContainerFromPath = (path) => {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n let parts = path.split('/')\n return `${parts[0]}/${parts[1]}/`\n}\n\nexport const lightFileReader = async (file) => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e.target.result\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n }\n })\n}\n\nconst extractPermissions = (data) => {\n let result = []\n if (typeof data !== 'object') {\n } else if (!Array.isArray(data) && data.permission) {\n result = result.concat([data.permission])\n } else if (!Array.isArray(data)) {\n Object.keys(data).map(\n (key) => (result = result.concat(extractPermissions(data[key])))\n )\n } else if (Array.isArray(data)) {\n data.map((item) => (result = result.concat(extractPermissions(item))))\n }\n return result\n}\n","import React from 'react'\nimport { createContext } from 'react'\nimport { getContainerFromPath } from '../lib/client'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext({})\n\nexport const TraversalContext = createContext({})\n\nclass Traversal {\n constructor({ flash, ...props }) {\n Object.assign(this, props)\n if (typeof flash === 'function') this.flash = flash\n }\n\n refresh({ transparent = false } = {}) {\n this.dispatch({ type: 'REFRESH', payload: { transparent } })\n }\n\n get path() {\n return this.state.path\n }\n\n get pathPrefix() {\n return this.state.path.slice(1)\n }\n\n get context() {\n return this.state.context\n }\n\n get containerPath() {\n return getContainerFromPath(this.path)\n }\n\n apply(data) {\n // apply a optimistic update to context\n this.dispatch({ type: 'APPLY', payload: data })\n }\n\n flash(message, type) {\n this.dispatch({ type: 'SET_FLASH', payload: { flash: { message, type } } })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({ type: 'CLEAR_FLASH' })\n }\n\n doAction(action, params) {\n this.dispatch({ type: 'SET_ACTION', payload: { action, params } })\n }\n\n cancelAction() {\n this.dispatch({ type: 'CLEAR_ACTION' })\n }\n\n hasPerm(permission) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs, tabsPermissions) {\n const result = {}\n Object.keys(tabs).forEach((item) => {\n const perm = tabsPermissions[item]\n if (perm && this.hasPerm(perm)) {\n result[item] = tabs[item]\n } else if (!perm) {\n result[item] = tabs[item]\n }\n })\n return result\n }\n}\n\nexport function TraversalProvider({ children, ...props }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return React.useContext(TraversalContext)\n}\n\nexport function ClientProvider({ children, client }) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return React.useContext(ClientContext)\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nconst noop = () => {}\n\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n ...rest\n}) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n if (disabled) onClick = noop\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import React from 'react'\nimport usePortal from 'react-useportal'\nimport { Button } from './input/button'\n\nexport function Modal(props) {\n const { isActive, setActive, children } = props\n const { Portal } = usePortal()\n\n const css = 'modal ' + (isActive ? 'is-active ' : '') + props.className\n return (\n <Portal>\n <div className={css}>\n <div className=\"modal-background\" onClick={() => setActive(false)} />\n <div className=\"modal-content\">\n <div className=\"box\">{children}</div>\n </div>\n <button\n className=\"modal-close is-large\"\n aria-label=\"close\"\n onClick={() => setActive(false)}\n />\n </div>\n </Portal>\n )\n}\n\nexport function Confirm({ message, onCancel, onConfirm, loading }) {\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <React.Fragment>\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button className=\"button is-danger\" onClick={() => onCancel()}>\n Cancel\n </button>\n \n <Button\n loading={loading}\n className=\"is-success\"\n onClick={() => onConfirm()}\n dataTest=\"btnConfirmModalTest\"\n >\n Confirm\n </Button>\n </div>\n </div>\n </React.Fragment>\n </Modal>\n )\n}\n\n// @todo Improve it... Replacing the inputText to a tree\nexport function PathTree({\n title,\n defaultPath,\n children,\n onConfirm,\n onCancel,\n}) {\n return (\n <Modal isActive setActive={onCancel}>\n <h1>{title}</h1>\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onConfirm(e.target[0].value, e.target)\n }}\n >\n <input\n className=\"input\"\n placeholder=\"/folder (without /db/container on front)\"\n style={{ margin: '20px 0' }}\n defaultValue={defaultPath}\n type=\"text\"\n />\n {children}\n <div className=\"level-right\">\n <button type=\"button\" className=\"button is-danger\" onClick={onCancel}>\n Cancel\n </button>\n \n <button type=\"submit\" className=\"button is-success\">\n Confirm\n </button>\n </div>\n </form>\n </Modal>\n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useSetState(initialState) {\n const [state, set] = useState(initialState)\n const setState = useCallback(\n (patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n )\n },\n [set]\n )\n\n return [state, setState]\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\n\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nconst getErrorMessage = (dataError, defaultValue) => {\n if (dataError && dataError.details) {\n return dataError.details\n } else if (dataError && dataError.reason) {\n return dataError.reason\n }\n return defaultValue\n}\n\nconst processResponse = async (res, ready_body = true) => {\n if (res.status < 400)\n return {\n isError: false,\n loading: false,\n result: ready_body ? await res.json() : res.status,\n response: res,\n }\n else\n return {\n isError: true,\n loading: false,\n errorMessage: getErrorMessage(await res.json(), res.status),\n response: res,\n }\n}\n\nconst patch = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst del = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.delete(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst post = (setState, Ctx) => async (data, endpoint, body = true) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.post(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst get = (setState, Ctx) => async (endpoint) => {\n setState({ loading: true })\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const req = await Ctx.client.get(path)\n const data = await req.json()\n setState({ loading: false, result: data, response: req })\n return data\n}\n\nexport function useCrudContext() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n return {\n ...state,\n Ctx,\n patch: patch(setState, Ctx),\n del: del(setState, Ctx),\n post: post(setState, Ctx),\n get: get(setState, Ctx),\n }\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\nexport function AddItem(props) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const { type } = props\n const { getForm } = Ctx.registry\n\n const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n const form = Object.assign(\n {},\n { '@type': type },\n data.formData ? data.formData : data\n )\n\n const { isError, errorMessage } = await post(form)\n if (!isError) {\n Ctx.flash('Content created!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n loading={loading}\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Add ' + type}\n title={'Add ' + type}\n type={type}\n dataTest={`formAdd${type}Test`}\n />\n </Modal>\n )\n}\n","import React from 'react'\n\nexport const Permissions = [\n 'guillotina.AddContent',\n 'guillotina.ModifyContent',\n 'guillotina.ViewContent',\n 'guillotina.DeleteContent',\n 'guillotina.AccessContent',\n 'guillotina.SeePermissions',\n 'guillotina.ChangePermissions',\n 'guillotina.MoveContent',\n 'guillotina.DuplicateContent',\n 'guillotina.ReadConfiguration',\n 'guillotina.RegisterConfigurations',\n 'guillotina.WriteConfiguration',\n 'guillotina.ManageAddons',\n 'guillotina.swagger.View',\n]\n\nexport const Config = {\n DisabledTypes: ['UserManager', 'GroupManager'],\n PageSize: 10,\n DelayActions: 200,\n Permissions: Permissions,\n SearchEngine: 'PostreSQL', // Elasticsearch\n}\n\nlet calculated = Object.assign({}, Config)\n\nconst addConfig = (additional, original) => {\n const rest = Object.assign({}, original)\n Object.keys(additional).forEach((item) => {\n if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {\n rest[item] = [].concat(Config[item], additional[item])\n } else if (typeof Config[item] === 'object') {\n rest[item] = Object.assign({}, Config[item], additional[item])\n } else {\n rest[item] = additional[item]\n }\n })\n return rest\n}\n\nexport function useConfig(cfg) {\n const ref = React.useRef()\n if (cfg && !ref.current) {\n console.log('cfg', cfg)\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n\n // if (cfg && !ref.current) {\n // ref.current = addConfig(cfg, ref.current);\n // calculated = ref.current\n // console.log(\"Current config\", cfg)\n // }\n return calculated\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\n\n// BBB guillotina 5\nconst getId = (item) => {\n if (item['@id']) {\n return item['@id']\n }\n return item['@absolute_url']\n}\n\nexport function RemoveItems(props) {\n const Ctx = useTraversal()\n const cfg = useConfig()\n const [loading, setLoading] = React.useState(false)\n const { items = [] } = props\n const last = items[items.length - 1]['@name']\n const itemsNames = items\n .map((item) => item['@name'])\n .join(', ')\n .replace(`, ${last}`, ` and ${last}`)\n\n async function removeItems() {\n let errors = []\n setLoading(true)\n\n const actions = items.map(async (item) => {\n console.log(item)\n const res = await Ctx.client.delete(getId(item))\n if (!res.ok) {\n const err = await res.json()\n errors.push(err)\n }\n })\n // this sleep is here, to let elasticsearch, wait for\n // index our operations... (will work 99% of use cases)\n actions.push(sleep(cfg.DelayActions))\n\n await Promise.all(actions)\n\n if (errors.length === 0) {\n Ctx.flash(`Items removed!`, 'success')\n Ctx.refresh()\n } else {\n const errorstr = errors.map((err) => JSON.stringify(err)).join('\\n')\n Ctx.flash(`Something went wrong!! ${errorstr}`, 'danger')\n }\n setLoading(false)\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItems}\n message={`Are you sure to remove: ${itemsNames}?`}\n />\n )\n}\n","import React, { useEffect, useRef } from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n value = false,\n color,\n backgroundColor,\n borderColor,\n children,\n placeholder,\n onChange,\n dataTest,\n ...rest\n}) => {\n const inputRef = useRef(null)\n const [state, setState] = React.useState(value)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev) => {\n setState(ev.target.checked)\n onChange(ev.target.checked)\n }\n\n return (\n <div className=\"field\">\n <label htmlFor={id} className={classnames(['checkbox', className])}>\n <input\n ref={inputRef}\n disabled={disabled || loading}\n id={id}\n type=\"checkbox\"\n className={classnames(['checkbox', classNameInput])}\n checked={state}\n onChange={updateState}\n data-test={dataTest}\n {...rest}\n />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\nconst ErrorZone = ({ children, id, className }) => {\n return (\n <p className={classnames(['help is-danger', className])} id={id}>\n {children}\n </p>\n )\n}\n\nErrorZone.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n}\n\nexport default ErrorZone\n","import React from 'react'\n\nconst applyValidators = (value, validators) => {\n let validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n let [state, setState] = React.useState({ hasError: false, value: value })\n\n const onUpdate = (ev) => {\n const value = ev && ev.target ? ev.target.value : ev ? ev : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validator) === false\n if (hasError) setState({ value: state.value, hasError })\n }\n\n const onFocus = () => {\n if (state.hasError) {\n setState({ value: state.value, hasError: false })\n }\n }\n\n React.useEffect(() => {\n setState({ value, hasError: false })\n }, [value])\n\n return {\n onChange: onUpdate,\n onFocus,\n onBlur,\n state,\n }\n}\n\nexport default useInput\n","// From github.com/protonmail/proton-shared\n\n/* eslint-disable no-useless-escape */\nexport const REGEX_EMAIL = /(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/i\nexport const REGEX_URL = /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)/\nexport const REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/i\nexport const REGEX_NUMBER = /^\\d+$/\n\nexport const isEmpty = (value = '') => !value.length\nexport const maxLength = (value = '', limit = 0) => value.length <= limit\nexport const minLength = (value = '', limit = 0) => value.length >= limit\nexport const isEmail = (value = '') => REGEX_EMAIL.test(value)\nexport const isURL = (value = '') => REGEX_URL.test(value)\nexport const isHexColor = (value = '') => REGEX_HEX_COLOR.test(value)\nexport const isNumber = (value = '') => REGEX_NUMBER.test(value)\nexport const notEmpty = (value) => !!value.length\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport ErrorZone from '../error_zone'\nimport useInput from '../../hooks/useInput'\nimport { notEmpty } from '../../lib/validators'\nimport { useEffect } from 'react'\n\nconst noop = () => true\n\n/** @type any */\nexport const Input = React.forwardRef(\n (\n {\n icon,\n iconPosition = 'has-icons-right',\n error,\n errorZoneClassName,\n autoComplete = 'off',\n className = '',\n widget = 'input',\n type = 'text',\n onPressEnter,\n isSubmitted,\n loading = false,\n required = false,\n id,\n placeholder,\n value,\n autofocus = false,\n onChange,\n validator = noop,\n errorMessage,\n dataTest = 'testInput',\n ...rest\n },\n ref\n ) => {\n if (required) {\n validator = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validator)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || React.useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error) {\n ref.current.focus()\n }\n }, [mounted, autofocus, ref, error])\n\n const theError = state.hasError ? errorMessage || 'invalid field' : ''\n const statusClasses = state.hasError ? 'is-danger' : ''\n\n const cssControl = () => (icon ? ['control', iconPosition] : ['control'])\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssControl())}>\n <input\n className={classnames([widget, className, statusClasses])}\n aria-invalid={theError}\n aria-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || rest.disabled}\n required={required}\n data-test={dataTest}\n {...handlers}\n {...rest}\n />\n {icon && icon}\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {state.hasError ? theError : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nInput.propTypes = {\n icon: PropTypes.node,\n iconPosition: PropTypes.arrayOf(\n PropTypes.oneOf(['has-icons-left', 'has-icons-right', ''])\n ),\n error: PropTypes.string,\n errorZoneClassName: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onPressEnter: PropTypes.func,\n placeholder: PropTypes.string,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n","import React from 'react'\nimport { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\n\nexport const EmailInput = ({ value = '', dataTest, ...rest }) => {\n return (\n <Input\n type=\"email\"\n validator={isEmail}\n errorMessage=\"Email address invalid\"\n value={value}\n data-test={dataTest}\n icon={<Icon icon=\"fas fa-envelope\" />}\n {...rest}\n />\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { noop } from '../../lib/helpers'\nimport { classnames } from '../../lib/helpers'\n\nexport const Form = ({\n children,\n className = '',\n onSubmit = noop,\n onReset = noop,\n autoComplete = 'off',\n title,\n error,\n dataTest,\n ...rest\n}) => {\n const handleSubmit = (event) => {\n event.preventDefault()\n onSubmit(event)\n }\n return (\n <div data-test={dataTest}>\n {title && (\n <div className=\"level\">\n <h1 className=\"title is-size-4\">{title}</h1>\n </div>\n )}\n {error && <div className=\"notification is-danger\">{error}</div>}\n <form\n onSubmit={handleSubmit}\n onReset={onReset}\n autoComplete={autoComplete}\n className={classnames(['form', className])}\n {...rest}\n >\n {children}\n </form>\n </div>\n )\n}\n\nForm.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func,\n autoComplete: PropTypes.string,\n}\n","import React from 'react'\nimport { Input } from './input'\n\nexport const PasswordInput = ({ value = '', ...rest }) => {\n return <Input value={value} type=\"password\" {...rest} />\n}\n","import React from 'react'\nimport { Form } from './form'\nimport { Input } from './input'\nimport { EmailInput } from './email'\nimport { PasswordInput } from './password'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport { generateUID } from '../../lib/helpers'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\nexport function FormBuilder({\n schema,\n formData,\n title,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = [],\n submitButton = true,\n ...rest\n}) {\n const ref = React.useRef()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n let initialState = {}\n const fields = Object.keys(properties).filter((x) => !exclude.includes(x))\n\n fields.forEach((element) => {\n initialState[element] = values[element] || undefined\n })\n\n // Register remotes\n if (!ref.current) {\n ref.current = {}\n Object.keys(remotes).forEach((item) => (ref.current[item] = remotes[item]))\n } else {\n // apply remote changes\n Object.keys(remotes).forEach((key) => {\n if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {\n ref.current[key] = remotes[key]\n }\n })\n }\n\n ref.current = ref.current || {}\n const onUpdate = (field) => (ev) => {\n ref.current[field] = ev.target ? ev.target.value : ev.value || ev\n }\n\n const GetTag = ({ field }) => {\n const Tag =\n formComponents[properties[field].widget || properties[field].type]\n\n const props = {\n label: properties[field].title,\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: properties[field].title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n }\n\n if (required.includes(field)) {\n props.required = true\n props.placeholder += ' *'\n }\n Tag.displayName = `${field}Field`\n return <Tag {...props} />\n }\n\n const children_ = React.Children.map(children, (child) =>\n React.cloneElement(child, { onChange: onUpdate })\n )\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} {...rest}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\n// @ TODO implement hasErrors\n\n/** @type any */\nexport const Select = React.forwardRef(\n (\n {\n options,\n error,\n errorZoneClassName,\n size = 1,\n placeholder,\n id,\n className = '',\n classWrap = '',\n multiple = false,\n loading = false,\n isSubmitted,\n onChange,\n appendDefault = false,\n style = {},\n dataTest,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (ev.target.value === '') {\n onChange({ target: { value: undefined } })\n } else {\n onChange(ev)\n }\n }\n\n if (appendDefault) {\n options = [{ text: 'Choose..', value: '' }].concat(options)\n }\n const statusClasses = error ? 'is-danger' : ''\n\n const cssWrap = [\n 'select',\n statusClasses,\n multiple ? 'is-multiple' : '',\n classWrap,\n ]\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssWrap)}>\n <select\n className={classnames(['', className])}\n size={size}\n multiple={multiple}\n disabled={loading || rest.disabled}\n onChange={onUpdate}\n {...rest}\n ref={ref}\n style={style}\n data-test={dataTest}\n >\n {options.map(({ text, ...rest }, index) => (\n <option key={index.toString()} {...rest}>\n {text}\n </option>\n ))}\n </select>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </div>\n )\n }\n)\n\nSelect.propTypes = {\n error: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n size: PropTypes.number,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.object),\n multiple: PropTypes.bool,\n className: PropTypes.string,\n}\n","import React from 'react'\nimport { lightFileReader } from '../../lib/client'\n\nexport function FileUpload({ label, onChange, ...props }) {\n const changed = async (event) => {\n const file = await lightFileReader(event.target.files[0])\n onChange(file)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n {...props}\n type=\"file\"\n name=\"file\"\n onChange={changed}\n />\n <span className=\"file-cta\">\n <span className=\"file-icon\">\n <i className=\"fas fa-upload\"></i>\n </span>\n <span className=\"file-label\">{label || 'Choose a file…'}</span>\n </span>\n </label>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\nexport const Textarea = React.forwardRef(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (onChange) {\n onChange(ev.target.value)\n }\n }\n const statusClasses = error ? 'is-danger' : ''\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classWrap}>\n <textarea\n className={classnames(['textarea', className, statusClasses])}\n rows={rows}\n onChange={onUpdate}\n value={value}\n data-test={dataTest}\n {...rest}\n ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n","import React, { useState } from 'react'\n\nimport PropTypes from 'prop-types'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport useSetState from '../../hooks/useSetState'\nimport ErrorZone from '../error_zone'\nimport { Loading } from '../ui'\nimport { generateUID } from '../../lib/helpers'\nimport { useConfig } from '../../hooks/useConfig'\nfunction debounce(func, wait) {\n let timeout\n return function () {\n const context = this\n const args = arguments\n const later = function () {\n timeout = null\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n }\n}\n\nconst initialState = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\nexport const SearchInput = ({\n onChange,\n error,\n errorZoneClassName,\n traversal = null,\n path = null,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = null,\n}) => {\n const [options, setOptions] = useSetState(initialState)\n const [isOpen, setIsOpen] = React.useState(false)\n const [searchTerm, setSearchTerm] = React.useState('')\n const inputRef = React.useRef(null)\n const wrapperRef = React.useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n\n const [uid] = useState(generateUID('search_input'))\n\n const getHeight = () => {\n if (wrapperRef && wrapperRef.current) {\n return {\n maxHeight: `${\n window.innerHeight -\n wrapperRef.current.getBoundingClientRect().top -\n 100\n }px`,\n }\n }\n return { maxHeight: 'auto' }\n }\n\n const delayedQuery = React.useCallback(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n setOptions({ loading: true })\n let searchTermQs = []\n let searchTermParsed = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n let qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n\n if (qs.length > 0 || searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([...qs, ...searchTermParsed, ...qsParsed])\n }\n\n const data = await traversal.client.search(\n path,\n searchTermQs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n const newItems =\n options.items && concat ? [...options.items, ...data.items] : data.items\n\n setOptions({\n items: newItems ?? [],\n loading: false,\n items_total: data.items_total ?? 0,\n page: page,\n })\n }\n\n const renderTextItemOptionFn = (item) => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return item.title || item['@name']\n }\n\n React.useEffect(() => {\n if (path && !options.loading && !options.items) {\n ;(async () => {\n handleSearch(options.page)\n })()\n }\n }, [path, options.loading, options.items])\n\n return (\n <React.Fragment>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(!isOpen)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{value && value.title ? value.title : 'Choose...'}</span>\n <span className=\"icon\">\n <i className=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </div>\n <div\n className=\"dropdown-menu\"\n id=\"dropdown-menu\"\n role=\"menu\"\n style={getHeight()}\n >\n <div className=\"dropdown-content\">\n <div className=\"dropdown-item\">\n <input\n ref={inputRef}\n data-test={dataTestSearchInput}\n className=\"input\"\n type=\"text\"\n placeholder=\"Search...\"\n value={searchTerm}\n onChange={(ev) => {\n delayedQuery(ev.target.value)\n setSearchTerm(ev.target.value)\n }}\n />\n </div>\n <hr className=\"dropdown-divider\" />\n {options.loading && <Loading />}\n {options.items &&\n options.items.map((item) => {\n return (\n <a\n href=\"#\"\n className={`dropdown-item editable ${\n value && value.id === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={() => {\n onChange && onChange(item)\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </a>\n )\n })}\n\n {options.items && options.items.length === 0 && (\n <div className=\"dropdown-item\"> No results </div>\n )}\n\n {options.items && options.items_total > options.items.length && (\n <React.Fragment>\n <hr className=\"dropdown-divider\" />\n <div\n className=\"dropdown-item editable\"\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n handleSearch(options.page + 1, true)\n }}\n >\n Load more...\n </div>\n </React.Fragment>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </React.Fragment>\n )\n}\n\nSearchInput.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.object,\n client: PropTypes.object,\n path: PropTypes.string,\n PageSize: PropTypes.number,\n btnClass: PropTypes.string,\n}\n","import * as React from 'react'\nimport { Input } from './input'\n\nexport const InputList = React.forwardRef(\n ({ value, onChange, dataTest }, ref) => {\n const [inputValue, setInputValue] = React.useState('')\n const addTags = (event) => {\n if (event.key === 'Enter' && event.target.value !== '') {\n onChange([...value, event.target.value])\n setInputValue('')\n }\n }\n\n return (\n <div className=\"control\">\n <div className=\"tags\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {tag}\n <button\n className=\"delete is-small\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n ></button>\n </div>\n ))}\n </div>\n <Input\n type=\"text\"\n placeholder=\"Press enter to add value\"\n onKeyUp={(event) => addTags(event)}\n value={inputValue}\n ref={ref}\n dataTest={dataTest}\n onChange={(value) => {\n if (value !== '') {\n setInputValue(value)\n }\n }}\n />\n </div>\n )\n }\n)\n","import { useEffect, useRef } from 'react'\n\nconst defaultEvents = ['mousedown', 'touchstart']\nconst on = (obj, ...args) => obj.addEventListener(...args)\nconst off = (obj, ...args) => obj.removeEventListener(...args)\n\nexport default function useClickAway(ref, onClickAway, events = defaultEvents) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event) => {\n const { current: el } = ref\n el && !el.contains(event.target) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName, handler)\n }\n }\n }, [events, ref])\n}\n","import React, { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n ...props\n}) {\n const ref = useRef(null)\n const [isActive, setIsActive] = useState(false)\n const position = isRight ? 'is-right' : ''\n const status = isActive\n ? `dropdown ${position} is-active`\n : `dropdown ${position}`\n\n useClickAway(ref, () => {\n setIsActive(false)\n })\n\n return (\n <div ref={ref} className={status} {...props}>\n <div className=\"dropdown-trigger\">\n <button\n className=\"button is-size-7\"\n onClick={() => setIsActive(!isActive)}\n aria-haspopup=\"true\"\n disabled={disabled}\n aria-controls={id}\n >\n {children}\n </button>\n </div>\n <div className=\"dropdown-menu\" id={id} role=\"menu\">\n <div className=\"dropdown-content\">\n {options.map((option) => {\n const disabled =\n typeof optionDisabledWhen === 'function'\n ? optionDisabledWhen(option)\n : false\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n <a\n className={\n disabled ? 'dropdown-item is-active' : 'dropdown-item'\n }\n data-test={`dropdownItemTest-${option.text.toLowerCase()}`}\n key={option.text}\n onClick={disabled ? undefined : () => onChange(option.value)}\n style={\n disabled\n ? {\n cursor: 'not-allowed',\n color: 'black',\n opacity: 0.5,\n backgroundColor: '#eeeeee',\n }\n : {}\n }\n >\n {option.text}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nconst plain = ['string', 'number', 'boolean']\n\nexport function RenderField({ value, Widget }) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} />\n }\n\n const type = typeof value\n if (plain.includes(type)) {\n return value\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => (\n <div key={item}>\n <RenderField value={item} />\n </div>\n ))\n }\n return Object.keys(value).map((key) => (\n <FieldValue field={key} value={value[key]} key={key} />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\nconst FieldValue = ({ field, value }) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderField value={value} />\n </div>\n </div>\n)\n","import { stringToSlug } from './helpers'\n\nexport const formatDate = (str) => {\n const d = new Date(str)\n const minutes = d.getMinutes() < 10 ? `0${d.getMinutes()}` : d.getMinutes()\n return `${d.getDate()}/${\n d.getMonth() + 1\n }/${d.getFullYear()} ${d.getHours()}:${minutes}`\n}\n\nexport const get = (obj, path, defValue) => {\n // If path is not defined or it has false value\n if (!path) return undefined\n // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n // Regex explained: https://regexr.com/58j0k\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n // Find value if exist return otherwise return undefined value;\n return (\n pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || defValue\n )\n}\n\nexport function getNewId(id = '') {\n const suffix = '-copy-'\n const rgx = new RegExp(`($|${suffix}\\\\d*)`)\n\n return stringToSlug(id).replace(rgx, (r) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const DownloadField = ({ value }) => {\n const Ctx = useTraversal()\n const { data, field } = value\n\n const getField = async (downloadFile) => {\n const endpoint = `${Ctx.path}@download/${field}`\n const res = await Ctx.client.download(endpoint)\n const text = await res.blob()\n const blob = new Blob([text], {\n type: data.content_type,\n })\n const url = window.URL.createObjectURL(blob)\n\n // Create blob link to download\n const link = document.createElement('a')\n link.href = url\n if (downloadFile) {\n link.setAttribute('download', `${data.filename}`)\n } else {\n link.setAttribute('target', `_blank`)\n }\n\n document.body.appendChild(link)\n link.click()\n setTimeout(function () {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url)\n link.parentNode?.removeChild(link)\n }, 100)\n }\n\n return (\n <div className=\"field\">\n <div className=\"label\">{data.filename}</div>\n <div className=\"columns\">\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-left\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(false)\n }}\n >\n Open\n </button>\n </div>\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-right\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(true)\n }}\n >\n Download\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../input/button'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useState } from 'react'\nimport { useRef } from 'react'\nimport { useEffect } from 'react'\nimport { Icon } from '../ui'\nimport { RenderField } from './renderField'\nimport { get } from '../../lib/utils'\nimport { DownloadField } from './downloadField'\n\nexport const DEFAULT_VALUE_EDITABLE_FIELD = 'Click to edit'\nexport const DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}) {\n const ref = useRef()\n const [isEdit, setEdit] = useState(false)\n const [val, setValue] = useState(value)\n const { patch, loading, Ctx } = useCrudContext()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified = modifyContent && !get(schema, 'readonly', false)\n const haveDeleteBtn =\n schema?.widget === 'file' ||\n schema?.widget === 'select' ||\n schema?.type === 'array'\n\n const getRenderProps = () => {\n const renderProps = {\n value:\n val ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n if (val && schema?.widget === 'file') {\n renderProps['value'] = {\n data: val,\n field: field,\n }\n renderProps['Widget'] = DownloadField\n } else if (schema?.type === 'boolean') {\n renderProps['value'] = val?.toString() ?? renderProps['value']\n } else if (val && schema?.type === 'datetime') {\n renderProps['value'] = new Date(val).toLocaleString()\n }\n return renderProps\n }\n\n const saveField = async (ev) => {\n if (ev) ev.preventDefault()\n\n if (!field) {\n Ctx.flash(`Provide a key name!`, 'danger')\n return\n }\n\n if (!val && required) {\n Ctx.flash(`${field} is mandatory!`, 'danger')\n return\n }\n\n if (schema?.widget === 'file') {\n const value = val\n if (value) {\n value['filename'] = unescape(encodeURIComponent(value['filename']))\n }\n const endpoint = `${Ctx.path}@upload/${field}`\n const req = await Ctx.client.upload(endpoint, value)\n if (req.status !== 200) {\n Ctx.flash(`Failed to upload file ${field}!`, 'danger')\n } else {\n Ctx.flash(`${field} uploaded!`, 'success')\n }\n } else {\n const data = ns ? { [ns]: { [field]: val } } : { [field]: val }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, updated!`, 'success')\n }\n }\n\n setEdit(false)\n Ctx.refresh()\n }\n\n const deleteField = async (ev) => {\n if (ev) ev.preventDefault()\n if (schema?.widget === 'file') {\n if (!field || (!val && required)) {\n Ctx.flash(`You can't delete ${field}!`, 'danger')\n return\n }\n\n const data = ns ? { [ns]: { [field]: null } } : { [field]: null }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, deleted!`, 'success')\n }\n\n setEdit(false)\n Ctx.refresh()\n } else if (schema?.type === 'string' && schema?.enum) {\n setValue(null)\n } else if (schema?.type === 'array' && schema?.items.type === 'string') {\n setValue([])\n }\n }\n return (\n <React.Fragment>\n {!isEdit && (\n <div\n className={canModified ? 'editable' : ''}\n onClick={() => {\n setEdit(!!canModified)\n }}\n data-test={`editableFieldTest-${field}`}\n >\n <RenderField {...getRenderProps()} />\n {canModified && <Icon icon=\"fas fa-edit\" />}\n </div>\n )}\n\n {isEdit && (\n <div className=\"field\" data-test={`editableFieldTest-${field}`}>\n <div className=\"control\">\n <EditComponent\n ref={ref}\n schema={schema}\n val={val}\n setValue={setValue}\n dataTest={`editableFieldEditTest`}\n />\n </div>\n <div className=\"field is-grouped\">\n <div className=\"control\">\n <Button\n className=\"is-small is-primary\"\n loading={loading}\n onClick={saveField}\n dataTest=\"editableFieldBtnSaveTest\"\n >\n Save\n </Button>\n </div>\n <div className=\"control\">\n <Button\n className=\"is-small\"\n onClick={() => setEdit(false)}\n dataTest=\"editableFieldBtnCancelTest\"\n >\n Cancel\n </Button>\n </div>\n {!required && haveDeleteBtn && (\n <div className=\"control\">\n <Button\n className=\"is-small is-danger\"\n onClick={deleteField}\n dataTest=\"editableFieldBtnDeleteTest\"\n >\n Delete\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nexport function IAttachment({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties[key]}\n modifyContent={modifyContent && ['file'].includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Input } from '../input/input'\nimport { FileUpload } from '../input/upload'\nimport { Button } from '../input/button'\nimport { useState } from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport ErrorZone from '../error_zone'\nimport { EditableField } from '../fields/editableField'\nimport { Delete } from '../ui'\nimport { Confirm } from '../../components/modal'\n\nexport function IMultiAttachment({ properties, values }) {\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState()\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError('Provide a file and a key name')\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/files/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to upload file')\n setLoading(false)\n return\n }\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(`${fileKey} uploaded!`, 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/files/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to delete file')\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(`${fileKeyToDelete} delete!`, 'success')\n Ctx.refresh()\n }\n\n return (\n <React.Fragment>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile(fileKeyToDelete)}\n message={`Are you sure to remove: ${fileKeyToDelete}?`}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`files/${key}`}\n value={values['files'][key]}\n ns=\"guillotina.behaviors.attachment.IMultiAttachment.files\"\n schema={properties['files']['additionalProperties']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n ))}\n {Object.keys(values['files']).length === 0 && (\n <tr>\n <td colSpan={2}>No files uploaded</td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">Upload a file</label>\n <form className=\"columns\">\n <div className=\"column is-4\">\n <Input\n placeholder=\"Key\"\n name=\"field\"\n className=\"is-small\"\n value={fileKey}\n onChange={(ev) => setFileKey(ev)}\n />\n {error && <ErrorZone>{error}</ErrorZone>}\n </div>\n <div className=\"column is-2\">\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div className=\"column is-2\">\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!fileKey && !file}\n >\n Upload\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\nexport function IDublinCore({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.dublincore.IDublinCore\"\n schema={properties[key]}\n modifyContent={modifyContent && editableFields.includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const ACTIONS_OBJECT = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItem',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItem',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItem',\n },\n}\n\nexport function PanelActions() {\n const traversal = useTraversal()\n\n const hasPerm = (perms) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey) => {\n traversal.doAction(ACTIONS_OBJECT[actionKey].action, {\n item: traversal.context,\n })\n }\n\n return (\n <React.Fragment>\n {Object.keys(ACTIONS_OBJECT).map((actionKey) => {\n if (hasPerm(ACTIONS_OBJECT[actionKey].perms)) {\n return (\n <button\n key={`panel_action_${ACTIONS_OBJECT[actionKey].text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKey)\n }}\n >\n {ACTIONS_OBJECT[actionKey].text}\n </button>\n )\n }\n })}\n </React.Fragment>\n )\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nexport default function useMountedState() {\n const mountedRef = useRef(false)\n const get = useCallback(() => mountedRef.current, [])\n\n useEffect(() => {\n mountedRef.current = true\n\n return () => {\n mountedRef.current = false\n }\n })\n\n return get\n}\n","import { useCallback, useState, useRef } from 'react'\nimport useMountedState from './useMountedState'\n\nexport default function useAsyncFn(\n fn,\n deps = [],\n initialState = { loading: false }\n) {\n const lastCallId = useRef(0)\n const isMounted = useMountedState()\n const [state, set] = useState(initialState)\n\n const callback = useCallback((...args) => {\n const callId = ++lastCallId.current\n set((prevState) => ({ ...prevState, loading: true }))\n\n return fn(...args).then(\n (value) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ value, loading: false })\n\n return value\n },\n (error) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ error, loading: false })\n\n return error\n }\n )\n }, deps)\n\n return [state, callback]\n}\n","import { useEffect } from 'react'\nimport useAsyncFn from './useAsyncFn'\n\nexport default function useAsync(fn, deps = []) {\n const [state, callback] = useAsyncFn(fn, deps, {\n loading: true,\n })\n\n useEffect(() => {\n callback()\n }, [callback])\n\n return state\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport useAsync from '../../hooks/useAsync'\n\n// TODO: Refactor without useAsync... just crudContext\nexport function PanelAddons(props) {\n const Ctx = useTraversal()\n let [action, setAction] = React.useState(false)\n\n const installAddon = async (Ctx, key) => {\n await Ctx.client.installAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} installed`, 'success')\n setAction(!action)\n }\n\n const removeAddon = async (Ctx, key) => {\n await Ctx.client.removeAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} removed`, 'success')\n setAction(!action)\n }\n\n const state = useAsync(async () => {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n return prepareData(data)\n }, [action])\n\n return (\n <React.Fragment>\n {state.loading ? (\n <div>loading</div>\n ) : state.error ? (\n <p>Error: {state.error.message}</p>\n ) : (\n <div className=\"columns\">\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Available Addons\n </h2>\n <hr />\n {state.value.available.length === 0 && (\n <p>No Addon available in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.available.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-primary is-small\"\n onClick={() => installAddon(Ctx, addon.id)}\n >\n Install\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Installed Addons\n </h2>\n <hr />\n {state.value.installed.length === 0 && (\n <p>No Addon installed in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.installed.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-danger is-small\"\n onClick={() => removeAddon(Ctx, addon.id)}\n >\n Remove\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n\nconst prepareData = (result) => {\n const addons = arrayToObject(result.available)\n return {\n available: result.available.filter(\n (item) => !result.installed.includes(item.id)\n ),\n installed: result.installed.map((id) => addons[id]),\n }\n}\n\nconst arrayToObject = (array) =>\n array.reduce((obj, item) => {\n obj[item.id] = item\n return obj\n }, {})\n","import React from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { Table } from '../ui/table'\nimport { Button } from '../input/button'\n\nexport function PanelBehaviors() {\n const { Ctx, get, result, loading, isError } = useCrudContext()\n const ops = useCrudContext()\n\n const [state, setState] = React.useState(false)\n\n const enableBehavior = (behavior) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior) => async () => {\n await ops.del({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n React.useEffect(() => {\n get('@behaviors')\n }, [])\n\n return (\n <div className=\"columns behaviors\">\n <div className=\"column is-8 is-size-7\">\n <h2 className=\"title is-size-5 has-text-grey-dark\">Behaviors</h2>\n {!loading && !isError && result && (\n <React.Fragment>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Static</h3>\n </td>\n </tr>\n {result.static.map((behavior) => (\n <tr key={behavior}>\n <td>Static</td>\n <td>{behavior}</td>\n <td className=\"\">\n <Button className=\"is-small is-pulled-right\" disabled>\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Enabled</h3>\n </td>\n </tr>\n {result.dynamic.map((behavior) => (\n <tr key={behavior}>\n <td>Enabled</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-danger is-pulled-right\"\n onClick={disableBehavior(behavior)}\n >\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Available</h3>\n </td>\n </tr>\n {result.available.map((behavior) => (\n <tr key={behavior}>\n <td>Available</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-primary is-pulled-right\"\n onClick={enableBehavior(behavior)}\n >\n Enable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n </React.Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import React, { createContext, useState, useContext } from 'react'\nimport Dropdown from './input/dropdown'\nimport { Checkbox } from './input/checkbox'\nimport { useTraversal } from '../contexts'\n\nconst ItemsActionsCtx = createContext({})\n\nexport const actions = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItems',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItems',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItems',\n },\n}\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\nexport function ItemsActionsProvider({ items, children }) {\n const traversal = useTraversal()\n const [selected, setSelected] = useState({})\n\n function onSelectAllItems(checked) {\n setSelected(\n items.reduce(\n (obj, item) => {\n obj[`${item.path}/${item.id}`] = checked\n return obj\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item) {\n setSelected((state) => ({\n ...state,\n all: false,\n [`${item.path}/${item.id}`]: !state[`${item.path}/${item.id}`],\n }))\n }\n\n function onAction(actionKey) {\n traversal.doAction(actions[actionKey].action, {\n items: items.filter((item) => selected[`${item.path}/${item.id}`]),\n })\n }\n\n return (\n <ItemsActionsCtx.Provider\n value={{\n onAction,\n onSelectAllItems,\n onSelectOneItem,\n selected,\n }}\n >\n {children}\n </ItemsActionsCtx.Provider>\n )\n}\n\n/**\n * Checkbox component without props that consume the ItemsActionsContext\n * and it select/unselect all items of the page.\n */\nexport function AllItemsCheckbox() {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n key={selected.all}\n onChange={onSelectAllItems}\n style={{ marginLeft: 2 }}\n value={selected.all}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\nexport function ItemCheckbox({ item }) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n key={value}\n onChange={() => onSelectOneItem(item)}\n value={value}\n />\n )\n}\n\n/**\n * Dropdown to choose some action to apply to the selected items.\n */\nexport function ItemsActionsDropdown() {\n const traversal = useTraversal()\n const { selected, onAction } = useContext(ItemsActionsCtx)\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(actions).map((action) => ({\n text: actions[action].text,\n value: action,\n }))\n\n return (\n <Dropdown\n disabled={disabled}\n id=\"items-actions\"\n onChange={onAction}\n optionDisabledWhen={(o) =>\n actions[o.value].perms.some((perm) => !traversal.hasPerm(perm))\n }\n options={options}\n >\n Choose action...\n </Dropdown>\n )\n}\n","import React from 'react'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nexport function Pagination({ current, total, doPaginate, pager }) {\n const maxPages = Math.ceil(total / pager)\n if (maxPages <= 1) {\n return null\n }\n\n return (\n <div>\n <p className=\"level-right has-text-grey is-size-7\">\n <span className=\"has-text-black\">{current + 1}</span>/\n <span className=\"has-text-black\">{maxPages}</span> of {total} items\n </p>\n <nav\n className=\"pagination is-size-7\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <a\n className=\"pagination-previous is-small\"\n disabled={current === 0}\n onClick={() => (current > 0 ? doPaginate(current - 1) : null)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-left\"></i>\n </span>\n </a>\n <a\n className=\"pagination-next is-small\"\n disabled={current >= maxPages - 1}\n onClick={() => doPaginate(current + 1)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-right\"></i>\n </span>\n </a>\n </nav>\n </div>\n )\n}\n","const base = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: {},\n}\n\nexport class Sharing {\n constructor(element) {\n Object.assign(this, element || base)\n }\n\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\n\nexport * from './sharing'\n\nexport class ItemModel {\n constructor(item, url, path) {\n this.item = item\n this.url = url\n this._path = path\n }\n\n get path() {\n // Compat\n let item = this.item['@id'] ? this.item['@id'] : this.item['@absolute_url']\n let path = item.split('//')[1].split('/').splice(1).join('/')\n path = `/${path}/`\n if (this.url.length > 0) {\n if (this.url.startsWith('/')) {\n path = path.replace(this.url.substring(1), '')\n } else {\n path = path.replace(this.url, '')\n }\n }\n\n return path\n }\n\n get name() {\n return this.item.title || this.item['@name']\n }\n\n get icon() {\n // eslint-disable-next-line\n const cfg = useConfig()\n if (cfg.icons && cfg.icons[this.type]) {\n return cfg.icons[this.type]\n }\n\n switch (this.type) {\n case 'GroupManager':\n return 'fas fa-users-cog'\n case 'UserManager':\n return 'fas fa-user-cog'\n case 'User':\n return 'fas fa-user'\n case 'Group':\n return 'fas fa-users'\n case 'Folder':\n return 'fas fa-folder'\n default:\n return 'fas fa-file'\n }\n }\n\n get fullPath() {\n return this._url + this.item.id\n }\n\n get id() {\n if (this.item.id) {\n return this.item.id\n }\n let id = this.item['@id'].split('&')[0].split('/')\n return id[id.length - 1]\n }\n\n get uid() {\n return this.item['@uid']\n }\n\n get type() {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\n\nexport function Item({ item, icon }) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\nexport function RItem({ item, search, columns }) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url, traversal.path)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item} data-test={`itemTest-${item['@name']}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\nexport function ItemTitle({ title, actions }) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import React from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function SearchLabels(props) {\n const { query, label } = props\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n return (\n <div className=\"tags\">\n {search && (\n <Tag name={label ?? 'Search:'} color=\"is-light\" size=\"is-size-7\" />\n )}\n {search && (\n <Tag\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport {\n ItemsActionsProvider,\n AllItemsCheckbox,\n ItemsActionsDropdown,\n} from '../selected_items_actions'\nimport { Pagination } from '../pagination'\nimport { RItem } from '../item'\nimport { SearchLabels } from '../../components/searchLabels'\nimport { useTraversal } from '../../contexts'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useEffect } from 'react'\nimport { useLocation } from '../../hooks/useLocation'\n\nconst initialState = {\n page: 0,\n items: [],\n loading: true,\n total: 0,\n}\n\nexport function PanelItems() {\n const [location, setLocation] = useLocation()\n const { PageSize, SearchEngine } = useConfig()\n\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initialState)\n const { items, loading, total } = state\n\n const columns =\n Ctx.registry.getItemsColumn(Ctx.context['@type']) ||\n Ctx.client.getItemsColumn()\n\n let search = location.get('q')\n let type = location.get('type')\n let page\n\n try {\n page = parseInt(location.get('page')) || 0\n } catch {\n page = 0\n }\n\n let searchParsed = undefined\n if (search && search !== '') {\n searchParsed = parser(search)\n }\n\n let typeParsed = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n useEffect(() => {\n if (Ctx.state.loading) return\n ;(async () => {\n let data\n setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n\n let qsParsed = Ctx.client[fnName]({\n path: Ctx.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n let qs = ''\n if (search || type) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ])\n } else {\n qs = buildQs(qsParsed)\n }\n\n data = await Ctx.client.search(\n Ctx.path,\n qs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n setState({\n items: data.member,\n loading: false,\n total: data.items_count,\n })\n })()\n }, [search, type, Ctx.state.refresh, page])\n\n const doPaginate = (page) => {\n setLocation({ page: page })\n }\n\n return (\n <ItemsActionsProvider items={items}>\n <div className=\"columns\">\n <div className=\"column is-2 is-size-7\">\n <ItemsActionsDropdown />\n </div>\n <div className=\"column\">\n <SearchLabels />\n </div>\n <div className=\"column\">\n <SearchLabels label=\"Type\" query=\"type\" />\n </div>\n <div className=\"column\">\n <Pagination\n current={page}\n total={total}\n key=\"pagination-top\"\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </div>\n {loading && <div className=\"progress-line\"></div>}\n {!loading && (\n <table\n className=\"table is-fullwidth is-hoverable\"\n data-test=\"itemPanelTableTest\"\n >\n <thead className=\"is-size-7\">\n <tr>\n <th>\n <AllItemsCheckbox />\n </th>\n {columns.map((i) => (\n <th key={i.label} className=\"has-text-info\">\n {i.label}\n </th>\n ))}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {items &&\n items.map((item) => (\n <RItem\n item={item}\n key={item['@uid']}\n search={search}\n columns={columns}\n />\n ))}\n {items && items.length === 0 && (\n <tr>\n <td colSpan=\"6\" className=\"has-text-centered\">\n Anything here!\n </td>\n </tr>\n )}\n </tbody>\n </table>\n )}\n <div className=\"columns is-centered\">\n <Pagination\n current={page}\n key=\"pagination-bottom\"\n total={total}\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </ItemsActionsProvider>\n )\n}\n","import React from 'react'\nimport { Table } from './ui/table'\nimport { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\n\nexport function BehaviorsView({ context, schema }) {\n const Ctx = useTraversal()\n const { getBehavior } = Ctx.registry\n\n const behaviors = [].concat(\n context.__behaviors__,\n context['@static_behaviors']\n )\n const GetBehavior = (b) => {\n const Cls = getBehavior(b, BehaviorNotImplemented)\n return (\n <Cls\n values={context[b]}\n properties={get(schema, ['definitions', b, 'properties'], {})}\n />\n )\n }\n\n return (\n <React.Fragment>\n {behaviors.map((behavior) => (\n <div className=\"container\" key={behavior}>\n <h3 className=\"title is-size-6 has-text-grey\">{behavior}</h3>\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {GetBehavior(behavior)}\n </Table>\n <hr />\n </div>\n ))}\n </React.Fragment>\n )\n}\n\nexport function BehaviorNotImplemented() {\n return (\n <tr>\n <td colSpan=\"3\">Not Implemented</td>\n </tr>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\n\nexport function PropertiesButtonView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Buttons) {\n const Element = React.cloneElement(Props.Buttons, { Ctx: Ctx })\n return Element\n }\n return null\n}\n\nexport function PropertiesView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Panels) {\n const Element = React.cloneElement(Props.Panels, { Ctx: Ctx })\n return Element\n }\n return null\n}\n","import React, { useEffect } from 'react'\nimport { ItemModel } from '../../models'\nimport { BehaviorsView } from '../behavior_view'\nimport { Icon } from '../ui/icon'\nimport { EditableField } from '../fields/editableField'\nimport { PropertiesButtonView } from '../properties_view'\nimport { PropertiesView } from '../properties_view'\nimport { useConfig } from '../../hooks/useConfig'\nimport useSetState from '../../hooks/useSetState'\nimport { useTraversal } from '../../contexts'\nimport { get } from '../../lib/utils'\n\nconst _showProperties = ['@id', '@name', '@uid']\nconst _ignoreFields = [\n 'guillotina.behaviors.attachment.IAttachment',\n 'guillotina.behaviors.dublincore.IDublinCore',\n 'guillotina.behaviors.attachment.IMultiAttachment',\n '__behaviors__',\n 'type_name',\n 'creation_date',\n 'modification_date',\n 'uuid',\n 'title',\n]\n\nexport function PanelProperties() {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const cfg = useConfig()\n\n const [schema, setSchema] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n const model = new ItemModel(Ctx.context)\n\n const showProperties = cfg.properties_default || _showProperties\n const ignoreFields = cfg.properties_ignore_fields || _ignoreFields\n\n const properties = Object.keys(schema?.data?.properties || [])\n .filter((key) => !ignoreFields.includes(key))\n .map((key) => ({ key, value: schema.data.properties[key] }))\n\n useEffect(() => {\n ;(async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, model.type)\n setSchema({ loading: false, data: dataJson })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n })()\n }, [schema])\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <h2 className=\"title is-size-4 is-primary\">\n <Icon icon={model.icon} align=\"is-left\" className=\"has-text-grey\" />{' '}\n \n <span>{Ctx.context.title || Ctx.context['@name']}</span>\n </h2>\n </div>\n <div className=\"level-right\">\n <PropertiesButtonView />\n </div>\n </div>\n\n <hr />\n {schema && schema.data && !schema.loading && (\n <div className=\"columns\">\n <div className=\"column\">\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {showProperties.map((prop) => (\n <tr key={'prop' + prop}>\n <td>{prop}</td>\n <td>\n <EditableField\n field={prop}\n value={Ctx.context[prop]}\n modifyContent={false}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {properties.length > 0 && (\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {properties.map(({ key, value }) => {\n return (\n <tr key={'prop' + key}>\n <td>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={get(schema.data, 'required', []).includes(\n key\n )}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n <PropertiesView />\n <BehaviorsView context={Ctx.context} schema={schema.data} />\n </div>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async (ev) => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinrole({ principals, roles, operations, refresh }) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n roles: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n options={roles}\n onChange={getMultiples('roles', setState)}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n role: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n console.log(state)\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n appendDefault\n options={roles}\n onChange={(ev) => setState({ role: ev.target.value })}\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport { PermissionPrinperm } from './permissions_prinperm'\nimport { PermissionPrinrole } from './permissions_prinrole'\nimport { PermissionRoleperm } from './permissions_roleperm'\nimport { Select } from '../input/select'\nimport { Sharing } from '../../models'\nimport { Table } from '../ui/table'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PanelPermissions() {\n const { get, result, loading } = useCrudContext()\n const ctx = useTraversal()\n\n const [reset, setReset] = React.useState(1)\n\n React.useEffect(() => {\n get('@sharing')\n }, [reset])\n\n const perms = new Sharing(result)\n\n return (\n <div className=\"columns\">\n {!loading && (\n <div\n className=\"column is-8 is-size-7 permissions\"\n data-test=\"containerPermissionsInfoTest\"\n >\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Role Permissions\n </h2>\n <Table headers={['Role', 'Premission', 'Setting']}>\n {perms.roles.map((role, idx) => (\n <React.Fragment key={'ff' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n {/* <td>\n <Icon icon=\"fas fa-ban\" />\n <span>Remove</span>\n </td> */}\n </tr>\n {Object.keys(perms.getRole(role)).map((row, idx) => (\n <tr key={'k' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getRole(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.roles.length === 0 && (\n <tr>\n <td colSpan=\"3\">No roles permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Permissions\n </h2>\n <Table headers={['Principal', 'Premission', 'Setting']}>\n {perms.principals.map((role, idx) => (\n <React.Fragment key={'f2' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrincipals(role)).map((row, idx) => (\n <tr key={'x' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrincipals(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.principals.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Roles\n </h2>\n <Table headers={['Principal', 'Role', 'Setting']}>\n {perms.prinrole.map((role, idx) => (\n <React.Fragment key={role + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrinroles(role)).map((row, idx) => (\n <tr key={'xx' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrinroles(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.prinrole.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals roles defined</td>\n </tr>\n )}\n </Table>\n </div>\n )}\n {ctx.hasPerm('guillotina.ChangePermissions') && (\n <AddPermission refresh={setReset} reset={reset} />\n )}\n </div>\n )\n}\n\nconst initial = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n currentObj: undefined,\n}\n\nconst operations = [\n { text: 'Allow', value: 'Allow' },\n { text: 'Deny', value: 'Deny' },\n { text: 'AllowSingle', value: 'AllowSingle' },\n { text: 'Unset', value: 'Unset' },\n]\n\nconst defaultOptions = [\n { text: 'Choose..', value: '' },\n { text: 'Role Permissions', value: 'roleperm' },\n { text: 'Principal Permissions', value: 'prinperm' },\n { text: 'Principal Roles', value: 'prinrole' },\n]\n\nexport function AddPermission({ refresh, reset }) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n React.useEffect(() => {\n async function init() {\n const permissions = (await Ctx.client.getAllPermissions(Ctx.path)).map(\n (perm) => ({\n text: perm,\n value: perm,\n })\n )\n let principals = []\n let roles = []\n\n let principalsData = await Ctx.client.getPrincipals(Ctx.path)\n const groups = principalsData.groups.map((group) => ({\n text: group.id,\n value: group.id,\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname,\n value: user.id,\n }))\n principals = [...groups, ...users]\n\n const req = await Ctx.client.getRoles(Ctx.path)\n if (req.ok) {\n roles = (await req.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">Add Permissions</h1>\n <p>Select a type:</p>\n <Select\n options={defaultOptions}\n onChange={(v) => setState({ current: v.target.value })}\n dataTest=\"selectPermissionTypeTest\"\n />\n <hr />\n {state.current && state.current === 'roleperm' && (\n <PermissionRoleperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinperm' && (\n <PermissionPrinperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinrole' && (\n <PermissionPrinrole\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\nimport { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\n\nconst prepareAvailable = (items, already, title) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n if (items[0] && typeof items[0] === 'string') {\n return [def]\n .concat(items.map((x) => ({ value: x, text: x })))\n .filter((item) => !already.includes(item.value))\n }\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}) {\n const selectRef = React.useRef()\n\n const [result, setResult] = React.useState(items)\n available = prepareAvailable(available || [], result, title)\n\n const remove = (value) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value) => {\n if (value === '') return\n const items = result.concat([value])\n setResult(items)\n onChange(items)\n }\n\n return (\n <React.Fragment>\n <h3 className=\"title is-size-6\">{title}</h3>\n {loading ? <Loading style={{ marginBottom: '1.5rem' }} /> : <hr />}\n <ul>\n <div className=\"tags\">\n {result.map((item) => (\n <Tag name={item} onRemove={() => remove(item)} key={item} />\n ))}\n </div>\n {result.length === 0 && (\n <li style={{ marginBottom: '20px' }}>{noData}</li>\n )}\n {available.length > 1 && (\n <li className=\"widget-list-add select is-small\">\n <Select\n options={available}\n ref={selectRef}\n onChange={(ev) => {\n addItem(ev.target.value)\n selectRef.current.value = ''\n }}\n />\n </li>\n )}\n </ul>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useEffect } from 'react'\n\nimport Dropdown from './input/dropdown'\nimport useSetState from '../hooks/useSetState'\nimport { Button } from './input/button'\nimport { Icon } from './ui/icon'\nimport { useTraversal } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useLocation } from '../hooks/useLocation'\nimport { Select } from './input/select'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const [state, setState] = useSetState(initialState)\n const Ctx = useTraversal()\n const Config = useConfig()\n useEffect(() => {\n ;(async function anyNameFunction() {\n const types = await Ctx.client.getTypes(Ctx.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n })()\n }, [Ctx.path])\n\n const doAction = (item) => {\n Ctx.doAction('addItem', { type: item })\n setState({ isActive: false })\n }\n\n if (state.types && state.types.length === 1) {\n return (\n <Button\n className={'is-small is-success'}\n onClick={() => doAction(state.types[0])}\n dataTest=\"itemAddTypeTest\"\n >\n Add {state.types[0]}\n </Button>\n )\n }\n\n if (state.types && state.types.length === 0) {\n return null\n }\n\n // Implement some kind of filtering\n return (\n <Dropdown\n id=\"dropdown-menu\"\n isRight\n onChange={doAction}\n options={(state.types || []).map((item) => ({ text: item, value: item }))}\n >\n <span className=\"icon\" data-test=\"itemAddTypeTest\">\n <i className=\"fas fa-plus\"></i>\n </span>\n </Dropdown>\n )\n}\n\nexport function ContextToolbar({ AddButton, ...props }) {\n const [state, setState] = useSetState(initialState)\n const [location, setLocation, del] = useLocation()\n const traversal = useTraversal()\n const ref = React.useRef(null)\n const Config = useConfig()\n\n const searchText = location.get('q')\n\n useEffect(() => {\n loadTypes()\n }, [traversal.path])\n async function loadTypes() {\n const types = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, tab: 'Items', page: 0 })\n ev.preventDefault()\n }\n\n const onSearchByType = (ev) => {\n const typeText = ev.target.value\n if (typeText && typeText !== '') {\n setLocation({ type: typeText, tab: 'Items', page: 0 })\n } else {\n del('type')\n }\n }\n\n // cleanup form on state.search change\n React.useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <React.Fragment>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n ref={ref}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder=\"Search...\"\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <div className=\"level-item\">\n <Select\n appendDefault\n dataTest=\"selectFilterTypeTest\"\n classWrap=\"is-size-7\"\n options={(state.types || []).map((item) => ({\n text: item,\n value: item,\n }))}\n onChange={onSearchByType}\n />\n </div>\n {traversal.hasPerm('guillotina.AddContent') && (\n <div className=\"level-item\">\n {AddButton !== undefined ? (\n <AddButton />\n ) : (\n <CreateButton {...props} />\n )}\n </div>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Notification } from './ui/notification'\nimport { Delete } from './ui/delete'\n\nexport function Flash() {\n const Ctx = useTraversal()\n const { flash } = Ctx.state\n\n if (!flash.message) return null\n\n return (\n <Notification isColor={flash.type}>\n {flash.message}\n <Delete onClick={() => Ctx.clearFlash()} />\n </Notification>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\n\nfunction FallbackTab({ title }) {\n return <div>Tab '{title}' not found</div>\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n ...props\n}) {\n const [location, setLocation] = useLocation()\n\n if (location.get('tab')) {\n currentTab = location.get('tab')\n } else {\n currentTab = currentTab || Object.keys(tabs)[0]\n }\n\n /*if (!Object.keys(tabs).includes(currentTab)) {\n setLocation(defaultTab)\n currentTab = defaultTab\n }*/\n\n const [current, setTab] = useState(currentTab)\n const CurrentComp = tabs[current] || fallback\n\n React.useEffect(() => {\n if (Object.keys(tabs).includes(currentTab)) {\n setTab(currentTab)\n // setLocation({tab: currentTab})\n }\n }, [currentTab, tabs])\n\n const changeTab = (tab) => {\n setLocation({ tab: tab })\n }\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"tabs\">\n <ul>\n {Object.keys(tabs).map((tab) => (\n <li\n className={\n 'is-size-7 ' + (tab === current ? 'is-active' : '')\n }\n key={tab}\n >\n <a\n data-test={`tabTest-${tab.toLowerCase()}`}\n onClick={() => changeTab(tab)}\n >\n {tab}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n {rightToolbar && <div className=\"level-right\">{rightToolbar}</div>}\n </div>\n <div className=\"container\">\n <CurrentComp title={current} {...props} />\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { useTraversal } from '../contexts'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n// import { PanelRequester } from \"../components/panel/requester\";\n\nconst tabs = {\n Items: PanelItems,\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n // Requester: PanelRequester,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n // Requester: \"guillotina.swagger.View\"\n}\n\nexport function FolderCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar {...props} />}\n {...props}\n />\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { useTraversal } from '../contexts'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelActions } from '../components/panel/actions'\n\nconst tabs = {\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n}\n\nexport function ItemCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return <TabsPanel tabs={calculated} currentTab=\"Properties\" {...props} />\n}\n","import React from 'react'\n\nimport { Item } from '../components/item'\nimport { ItemTitle } from '../components/item'\nimport { Button } from '../components/input/button'\nimport { useState } from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { Form } from '../components/input/form'\nimport { Input } from '../components/input/input'\n\nexport function ApplicationCtx(props) {\n const { databases } = props.state.context\n return (\n <React.Fragment>\n <h3>Databases</h3>\n <div className=\"container\">\n <ItemTitle title=\"Objects\" />\n {databases.map((db) => (\n <Item\n item={{ id: db, path: `/${db}/` }}\n key={db}\n icon={'fas fa-database'}\n />\n ))}\n </div>\n </React.Fragment>\n )\n}\n\nexport function DatabaseCtx({ state }) {\n const { containers } = state.context\n const { path } = state\n return (\n <React.Fragment>\n <div className=\"container\">\n <ItemTitle title=\"Containers\" actions={<CreateContainer />} />\n <table className=\"table is-fullwidth is-hoverable\">\n <tbody>\n {containers.map((db) => (\n <Item\n item={{ id: db, path: `${path}${db}/` }}\n key={db}\n icon={'fas fa-archive'}\n />\n ))}\n </tbody>\n </table>\n </div>\n </React.Fragment>\n )\n}\n\nexport function CreateContainer(props) {\n const [isActive, setActive] = useState(false)\n\n return (\n <React.Fragment>\n <ModalAddContainer isActive={isActive} setActive={setActive} {...props} />\n <button\n className=\"button is-warning is-pulled-right\"\n onClick={() => setActive(true)}\n >\n <span className=\"icon is-small\">\n <i className=\"fas fa-plus\"></i>\n </span>\n <span>Create</span>\n </button>\n </React.Fragment>\n )\n}\n\nfunction ModalAddContainer({ isActive, setActive }) {\n const Ctx = useTraversal()\n const [isLoading, setLoading] = useState(false)\n const [idField, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n async function createContainer() {\n setLoading(true)\n const data = {\n '@type': 'Container',\n id: idField,\n }\n try {\n const res = await Ctx.client.createObject(Ctx.path, data)\n const result = await res.json()\n if (res.status === 200) {\n Ctx.refresh()\n setId('')\n setLoading(false)\n setActive(false)\n Ctx.flash('Container created', 'primary')\n } else {\n setId('')\n setLoading(false)\n setError(result.message)\n }\n } catch {\n setError('Error-submitting-form')\n setLoading(false)\n }\n }\n\n return (\n <Modal isActive={isActive} setActive={setActive}>\n <Form onSubmit={createContainer} title=\"Add Container\" error={error}>\n <Input\n required\n placeholder=\"Container Name\"\n onChange={(v) => {\n setId(v)\n }}\n value={idField}\n loading={isLoading}\n />\n <Button loading={isLoading}>Add Container</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\n\nexport function PanelNotImplemented(props) {\n return (\n <div className=\"container\">\n <h2 className=\"title\">{props.title}</h2>\n <p>Not implemented</p>\n </div>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { PanelAddons } from '../components/panel/addons'\nimport { useTraversal } from '../contexts'\nimport { PanelNotImplemented } from './base'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n// import { PanelRequester } from \"../components/panel/requester\";\n\nconst tabs = {\n Items: PanelItems,\n Addons: PanelAddons,\n Registry: PanelNotImplemented,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n // Requester: PanelRequester\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Addons: 'guillotina.ManageAddons',\n Registry: 'guillotina.ReadConfiguration',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n // Requester: \"guillotina.swagger.View\"\n}\n\nexport function ContainerCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar {...props} />}\n {...props}\n />\n )\n}\n","import React from 'react'\nimport { FormBuilder } from '../components/input/form_builder'\n\nconst schema = {\n type: 'object',\n required: ['username', 'password'],\n properties: {\n username: {\n type: 'string',\n title: 'Username',\n },\n email: {\n type: 'string',\n title: 'Email',\n widget: 'email',\n },\n name: {\n type: 'string',\n title: 'Name',\n },\n password: {\n type: 'string',\n title: 'Password',\n widget: 'password',\n },\n disabled: {\n type: 'boolean',\n title: 'Disabled',\n },\n },\n}\n\nexport const UserForm = ({ isEdit = false, children, ...props }) => {\n const attr = isEdit ? {} : { title: 'Add User' }\n\n return (\n <FormBuilder schema={schema} {...props} {...attr}>\n {children}\n </FormBuilder>\n )\n}\n","import React from 'react'\n\n/*\n This hook allows to bind (remote) fields on the DOM\n to a form generated with Formbuilder.\n You can link whatever field you want...\n\n const [remoteFields, updateRemoteField] = useRemoteField({widget_1: ['a', 'b']})\n\n <Form remotes={remoteFields} onSubmit={ev => console.log(ev)}>\n <Input />\n </Form>\n\n <Widget onChange={updateRemoteField('widgte_1')}>\n\n This will add the values from a remote field into the desired widget\n\n*/\n\nexport const useRemoteField = (initial) => {\n const [remotes, setRemote] = React.useState(initial)\n\n const updateRemote = (name) => (value) => {\n setRemote({\n ...remotes,\n [name]: value,\n })\n }\n\n return [remotes, updateRemote]\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { UserForm } from '../forms/users'\nimport { formatDate } from '../lib/utils'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { TagsWidget } from '../components/widgets/tags'\nimport { Icon } from '../components/ui/icon'\nimport { Button } from '../components/input/button'\nimport { useRemoteField } from '../hooks/useRemoteField'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar(props) {\n const Ctx = useTraversal()\n\n return (\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'User' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-user\" />\n <span>Add a User</span>\n </button>\n )\n}\n\nexport function UsersCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Users\"\n rightToolbar={<UsersToolbar />}\n {...props}\n />\n )\n}\n\nexport function UserCtx() {\n const { Ctx, patch, loading } = useCrudContext()\n\n const [state, setState] = React.useState({ roles: [], gorups: [] })\n\n const fields = {\n user_groups: [],\n user_roles: Ctx.context.user_roles,\n }\n\n const [remotes, updateRemote] = useRemoteField(fields)\n\n React.useEffect(() => {\n ;(async () => {\n const [requestGetGroups, requestGetRoles] = await Promise.all([\n Ctx.client.search(Ctx.path, { type_name: 'Group' }, true),\n Ctx.client.getRoles(Ctx.path),\n ])\n\n let groups = requestGetGroups\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = await requestGetRoles.json()\n }\n\n setState({\n roles: roles,\n groups: groups.items.map((item) => ({\n value: item.id,\n text: item['@name'],\n })),\n })\n })()\n }, [])\n\n const updateObject = async (data) => {\n Ctx.apply(data)\n const { isError, errorMessage } = await patch(data)\n if (isError) {\n Ctx.flash(`Update failed: ${errorMessage}`, 'danger')\n } else {\n Ctx.flash('Data updated', 'primary')\n Ctx.refresh()\n }\n }\n\n return (\n <div className=\"container\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-user\"></Icon>\n User\n </h2>\n\n <hr />\n <div className=\"columns\">\n <div className=\"column\">\n <div className=\"container user-props\">\n <p>\n <label>Username: </label> {Ctx.context.username} (\n {Ctx.context.email})\n </p>\n <p>\n <label> Created: </label> {formatDate(Ctx.context.creation_date)}\n </p>\n <p>\n <label> Updated: </label>{' '}\n {formatDate(Ctx.context.modification_date)}\n </p>\n <Button\n className=\"is-size-7 is-info\"\n onClick={() => {\n Ctx.doAction('changePassword')\n }}\n >\n Change Password\n </Button>\n </div>\n <hr />\n <UserForm\n actionName=\"Save\"\n onSubmit={(ev) => updateObject(ev)}\n isEdit={true}\n formData={Ctx.context}\n exclude={['password']}\n remotes={remotes}\n submitButton={false}\n >\n <Button loading={loading} dataTest=\"formUserTestBtnSubmit\">\n Update\n </Button>\n </UserForm>\n </div>\n <div className=\"column\">\n <TagsWidget\n onChange={updateRemote('user_groups')}\n items={Ctx.context.user_groups}\n title=\"Groups\"\n noData=\"There is no groups for this user\"\n available={state.groups}\n />\n <hr />\n <TagsWidget\n onChange={updateRemote('user_roles')}\n items={remotes.user_roles}\n title=\"Roles\"\n noData=\"The user doesn't have any role\"\n available={state.roles}\n />\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getContainerFromPath } from '../lib/client'\nimport { getNewId } from '../lib/utils'\n\nconst withError = (res) => res.status >= 300\nexport function CopyItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function copyItems(path, form) {\n const responses = await Promise.all(\n items.map((item, i) => {\n const input = form[i + 1] || {}\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@duplicate`, {\n destination: path,\n new_id: input.value || getNewId(item.id),\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be copied to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not copied correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items copied!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${Ctx.path.split(getContainerFromPath(Ctx.path))[1]}`}\n onConfirm={copyItems}\n onCancel={() => Ctx.cancelAction()}\n >\n {items.map((item) => (\n <React.Fragment key={item.id}>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item.id}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n defaultValue={getNewId(item.id)}\n />\n </React.Fragment>\n ))}\n \n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\n\nexport function CopyItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const { item } = props\n\n async function copyItem(path, form) {\n const input = form[1] || {}\n const { isError, errorMessage } = await post(\n {\n destination: path,\n new_id: input.value || getNewId(item['@name']),\n },\n '@duplicate'\n )\n\n if (!isError) {\n Ctx.flash(`Field copied!`, 'success')\n } else {\n Ctx.flash(`Failed to copy item!: ${errorMessage}`, 'danger')\n }\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${item['parent']['@name']}`}\n onConfirm={copyItem}\n onCancel={() => Ctx.cancelAction()}\n >\n <React.Fragment>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item['@name']}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n defaultValue={getNewId(item['@name'])}\n />\n </React.Fragment>\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\n\nconst withError = (res) => res.status >= 300\n\nexport function MoveItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function moveItems(path) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@move`, {\n destination: path,\n new_id: item['@name'],\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be moved to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not moved correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items moved!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItems}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function MoveItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path) {\n const { isError, errorMessage, result } = await post(\n {\n destination: path,\n new_id: item['@name'],\n },\n '@move'\n )\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(result['@url'])}/`,\n tab: '',\n })\n Ctx.flash(`Field moved!`, 'success')\n } else {\n Ctx.flash(`Failed to move item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function RemoveItem(props) {\n const Ctx = useTraversal()\n const { del, loading } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function removeItem() {\n const { isError, errorMessage } = await del()\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(item['parent']['@id'])}/`,\n tab: '',\n })\n Ctx.flash(`Field removed!`, 'success')\n } else {\n Ctx.flash(`Failed to delete item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItem}\n message={`Are you sure to remove: ${item['@name']}?`}\n />\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Input } from '../components/input/input'\nimport { Button } from '../components/input/button'\nimport { Form } from '../components/input/form'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword(props) {\n const [state, setState] = React.useState(initial)\n const [perror, setPerror] = React.useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n // const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n if (state.pass1 === '') {\n setPerror('provide a password')\n return\n }\n\n if (state.pass1 !== state.pass2) {\n setPerror(\"passwords doesn't match\")\n return\n }\n\n setPerror(undefined)\n\n let form = {\n password: state.pass1,\n }\n\n const { isError, errorMessage } = await patch(form)\n if (!isError) {\n Ctx.flash('Password Changed', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n const setPass = (field) => (val) => {\n let n = {}\n n[field] = val\n setState((state) => ({ ...state, ...n }))\n setPerror(undefined)\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Change'}\n title={'Change Password'}\n >\n {perror && (\n <div className=\"notification is-danger is-size-7\">\n <button className=\"delete\"></button>\n {perror}\n </div>\n )}\n <Input\n id=\"pass\"\n placeholder=\"New Password\"\n type=\"password\"\n value={state.pass1}\n onChange={setPass('pass1')}\n />\n\n <Input\n id=\"pass\"\n placeholder=\"Repeat Password\"\n type=\"password\"\n value={state.pass2}\n onChange={setPass('pass2')}\n />\n <Button>Change</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { Input } from '../components/input/input'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\n\nexport function BaseForm({ onSubmit, actionName, title, dataTest, loading }) {\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n const submit = () => {\n if (name === '') {\n setError('This field is required')\n return\n }\n onSubmit({ title: name, id })\n }\n\n const setTitle = (value) => {\n setId(stringToSlug(value))\n setName(value)\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n <Input\n id=\"title\"\n placeholder=\"Title\"\n required\n value={name}\n onChange={setTitle}\n autofocus\n error={error}\n dataTest=\"titleTestInput\"\n />\n\n <Input\n id=\"id\"\n placeholder=\"Id\"\n value={id}\n onChange={setId}\n dataTest=\"idTestInput\"\n />\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Icon } from '../components/ui/icon'\nimport { useEffect } from 'react'\nimport { useState } from 'react'\nimport { Select } from '../components/input/select'\nimport { SearchInput } from '../components/input/search_input'\nimport { Tag } from '../components/ui/tag'\nimport { parser } from '../lib/search'\nimport { EditableField } from '../components/fields/editableField'\nimport { getContainerFromPath } from '../lib/client'\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const Ctx = useTraversal()\n\n return (\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'Group' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-users\" />\n <span>Add a Group</span>\n </button>\n )\n}\n\nexport function GroupsCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\n {...props}\n />\n )\n}\n\nlet sortParsed = parser(`_sort_asc=id`)\nlet searchParsed = parser('type_name=User')\n\nexport function GroupCtx() {\n const { Ctx, patch } = useCrudContext()\n const [roles, setRoles] = useState([])\n\n useEffect(() => {\n ;(async () => {\n const requestGetRoles = await Ctx.client.getRoles(Ctx.path)\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = (await requestGetRoles.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n })()\n }, [])\n\n const handleResponse = async (isError, message, errorMessage) => {\n if (!isError) {\n Ctx.flash(message, 'success')\n Ctx.refresh()\n } else {\n Ctx.flash(`Failed to update!: ${errorMessage}`, 'danger')\n }\n }\n\n const addRole = async (ev) => {\n const role = ev.target.value\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.concat(role),\n })\n handleResponse(isError, `Role ${role} added to group`, errorMessage)\n }\n\n const removeRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.filter((r) => r !== role),\n })\n handleResponse(isError, `Role ${role} removed from group`, errorMessage)\n }\n\n const addUser = async (newUser) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUser.id] = true\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${newUser.title} added to group!`,\n errorMessage\n )\n }\n\n const removeUser = async (userToRemove) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = userToRemove !== user\n })\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${userToRemove} removed from group`,\n errorMessage\n )\n }\n\n return (\n <div className=\"container group-view\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-users\"></Icon>\n <span> Group</span>\n </h2>\n <hr />\n <div className=\"columns\">\n <div className=\"column is-4\">\n <label className=\"label\">Title: </label>\n <EditableField\n field=\"title\"\n modifyContent\n value={Ctx.context.title}\n />\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Roles</h3>\n <p>Add a Role</p>\n <Select\n options={roles.filter(\n (role) => !Ctx.context.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={addRole}\n />\n <hr />\n {Ctx.context.user_roles.map((urole) => (\n <p className=\"control\" key={`roles_${urole}`}>\n <Tag\n name={urole}\n onRemove={() => removeRole(urole)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Users</h3>\n <p>Add a User</p>\n <SearchInput\n path={getContainerFromPath(Ctx.path)}\n qs={[...searchParsed, ...sortParsed]}\n traversal={Ctx}\n onChange={addUser}\n btnClass=\"is-small\"\n />\n <hr />\n {Ctx.context.users.map((user) => (\n <p className=\"control\" key={`user_${user}`}>\n <Tag\n name={user}\n onRemove={() => removeUser(user)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nexport default class ErrorBoundary extends React.Component {\n state = {}\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n errorMsg: error.message,\n errorStack: errorInfo.componentStack,\n })\n }\n\n render() {\n const { hasError, errorMsg, errorStack } = this.state\n\n if (hasError) {\n return (\n <div className=\"box main-panel\">\n <div style={style}>Something went wrong.</div>\n {errorMsg && (\n <p>\n <b>{errorMsg}</b>\n </p>\n )}\n {errorStack && <p>{errorStack}</p>}\n </div>\n )\n }\n\n return this.props.children\n }\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotAllowed() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-danger\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-ban\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">Not Allowed</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotFound() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-grey\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-dizzy\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">404. Not Found</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n let segments = ctx.path.replace(/\\/$/, '').split('/')\n let links = buildPaths(segments)\n\n if (segments.length === 1) {\n return false\n }\n\n return (\n <nav className=\"breadcrumb\" aria-label=\"breadcrumbs\">\n <ul>\n {segments.map((item, indx) => {\n const path = links[indx]\n const onClick = (e) => {\n if (window.event.ctrlKey || window.event.metaKey) return\n e.preventDefault()\n navigate({ path }, true)\n }\n\n return indx === 0 ? (\n <li key={indx}>\n <a href={path} onClick={onClick}>\n <span className=\"icon\">\n <i className=\"fas fa-home\"></i>\n </span>\n </a>\n </li>\n ) : (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-${item.toLowerCase()}`}\n >\n {item}\n </a>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nconst buildPaths = (segments) => {\n let current = ''\n let results = []\n segments.map((item, indx) => {\n if (indx === 0) {\n current += '/'\n } else {\n current += item + '/'\n }\n results.push(current)\n return item\n })\n return results\n}\n","import React from 'react'\nimport { Textarea } from '../input/textarea'\nimport { Checkbox } from '../input/checkbox'\nimport { FileUpload } from '../input/upload'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { InputList } from '../input/input_list'\nimport { get } from '../../lib/utils'\n\nexport const EditComponent = React.forwardRef(\n ({ schema, val, setValue, dataTest, className, ...rest }, ref) => {\n if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={val || ''}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n value={!!val}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'array') {\n return (\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'file') {\n return (\n <FileUpload\n onChange={(ev) => setValue(ev)}\n label={get(val, 'filename', null)}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'select') {\n return (\n <Select\n value={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n {...rest}\n options={schema?.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n onChange={(ev) => {\n const selectValue = get(ev, 'target.value', '')\n return setValue(selectValue)\n }}\n />\n )\n }\n const getInputType = () => {\n switch (schema?.type) {\n case 'integer':\n return 'number'\n case 'date':\n return 'date'\n case 'datetime':\n return 'datetime-local'\n default:\n return 'text'\n }\n }\n return (\n <Input\n value={val || ''}\n className={className}\n dataTest={dataTest}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n type={getInputType()}\n {...rest}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","import { FolderCtx } from '../views/folder'\nimport { ItemCtx } from '../views/item'\nimport { ApplicationCtx } from '../views/application'\nimport { DatabaseCtx } from '../views/application'\nimport { ContainerCtx } from '../views/container'\nimport { UsersCtx } from '../views/users'\nimport { UserCtx } from '../views/users'\nimport { CopyItems } from '../actions/copy_items'\nimport { CopyItem } from '../actions/copy_item'\nimport { MoveItems } from '../actions/move_items'\nimport { MoveItem } from '../actions/move_item'\nimport { RemoveItems } from '../actions/remove_items'\nimport { RemoveItem } from '../actions/remove_item'\nimport { AddItem } from '../actions/add_item'\nimport { ChangePassword } from '../actions/change_pass'\nimport { BaseForm } from '../forms/base'\nimport { UserForm } from '../forms/users'\nimport { IAttachment } from '../components/behaviors/iattachment'\nimport { IDublinCore } from '../components/behaviors/idublincore'\nimport { IMultiAttachment } from '../components/behaviors/imultiattachment'\nimport { GroupsCtx } from '../views/groups'\nimport { GroupCtx } from '../views/groups'\nimport ErrorBoundary from '../components/error_boundary'\nimport React from 'react'\nimport { NotAllowed } from '../components/notallowed'\nimport { NotFound } from '../components/notfound'\nimport { Path } from '../components/path'\nimport { EditComponent } from '../components/fields/editComponent'\n\nlet registry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n}\n\nconst get = (key, param, fallback) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback) => {\n if (!context) return\n // console.log(\"Component for path\", path)\n // lookup by path\n if (registry.paths[path]) {\n return registry.paths[path]\n }\n // by type\n if (registry.views[context['@type']]) {\n return registry.views[context['@type']]\n }\n if (fallback) {\n return fallback\n }\n return defaultComponent(context)\n}\n\nconst getItemsColumn = (type) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getForm = (type, fallback = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type, fallback) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type, fallback) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type) => {\n return registry.properties[type] || {}\n}\n\nexport const defaultComponent = (context) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data) {\n // if data is provided we need to merge it into actual registry\n const ref = React.useRef()\n if (data && !ref.current) {\n console.log('registry initialized')\n ref.current = true\n Object.keys(data).map(\n (key) => (registry[key] = { ...registry[key], ...data[key] })\n )\n }\n\n return {\n registry,\n get,\n getForm,\n getComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n }\n}\n\n/*\n\nconst registry = {\n paths: {\n \"/db/guillotina/tags/\": TagsContext\n },\n forms: {\n Tag: AddTagForm\n }\n}\n\n\n<guillotina registry={registry} />\n\n\n*/\n","export const initialState = {\n path: '',\n loading: false,\n context: undefined,\n flash: {\n message: undefined,\n type: undefined,\n },\n action: {\n action: undefined,\n params: undefined,\n },\n permissions: undefined,\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport function guillotinaReducer(state, action) {\n switch (action.type) {\n case 'SET_PATH':\n return { ...state, path: action.payload, loading: true }\n\n case 'SET_CONTEXT':\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case 'SET_ERROR':\n return { ...state, errorStatus: action.payload, loading: false }\n\n case 'SET_FLASH':\n return { ...state, ...action.payload }\n\n case 'CLEAR_FLASH':\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case 'SET_ACTION':\n return { ...state, action: action.payload }\n case 'CLEAR_ACTION':\n return { ...state, action: { action: undefined, params: undefined } }\n\n case 'REFRESH':\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case 'APPLY':\n return { ...state, context: { ...state.context, ...action.payload } }\n\n default:\n return state\n }\n}\n","import React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport { guillotinaReducer } from '../reducers/guillotina'\nimport { initialState } from '../reducers/guillotina'\nimport { Loading } from './ui/loading'\n\nexport function Guillotina({ auth, ...props }) {\n const url = props.url || 'http://localhost:8080' // without trailing slash\n const config = props.config || {}\n const client = useGuillotinaClient()\n\n const { Permissions } = useConfig(config)\n const registry = useRegistry(props.registry || {})\n // Location is cooked routing solution (only uses search params)\n const [location] = useLocation()\n\n // if there is no path provided just go to root\n const searchPath = location.get('path') || '/'\n if (searchPath && searchPath !== '') {\n initialState.path = searchPath\n }\n\n const [state, dispatch] = useReducer(guillotinaReducer, initialState)\n\n const { path, refresh } = state\n\n useEffect(() => {\n dispatch({ type: 'SET_PATH', payload: searchPath })\n }, [searchPath])\n\n useEffect(() => {\n ;(async () => {\n let data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({ type: 'SET_ERROR', payload: 'notallowed' })\n return\n } else if (data.status === 404) {\n dispatch({ type: 'SET_ERROR', payload: 'notfound' })\n return\n }\n let context = await data.json()\n const pr = await client.canido(path, Permissions)\n const permissions = await pr.json()\n dispatch({ type: 'SET_CONTEXT', payload: { context, permissions } })\n })()\n }, [path, refresh, client])\n\n const ErrorBoundary = registry.get('views', 'ErrorBoundary')\n const NotAllowed = registry.get('views', 'NotAllowed')\n const NotFound = registry.get('views', 'NotFound')\n const Path = registry.get('components', 'Path')\n\n const contextData = {\n url,\n client,\n auth,\n state,\n dispatch,\n registry,\n flash: config.flash,\n }\n\n const { action, errorStatus, permissions } = state\n const Main = registry.getComponent(state.context, path)\n const Action = action.action ? registry.getAction(action.action) : null\n\n return (\n <ErrorBoundary>\n {!errorStatus && (\n <TraversalProvider {...contextData}>\n {permissions && (\n <React.Fragment>\n {action.action && <Action {...action.params} />}\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <Path />\n </div>\n </div>\n </div>\n <Flash />\n {Main && (\n <ErrorBoundary>\n <div className=\"box main-panel\">\n {state.loading && <Loading />}\n {!state.loading && <Main state={state} />}\n </div>\n </ErrorBoundary>\n )}\n {/* <p>Guillotina {JSON.stringify(state.context)}</p> */}\n </React.Fragment>\n )}\n </TraversalProvider>\n )}\n {errorStatus === 'notallowed' && <NotAllowed />}\n {errorStatus === 'notfound' && <NotFound />}\n </ErrorBoundary>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function Layout({ children, onLogout, auth }) {\n const doLogout = (ev) => {\n auth.logout()\n onLogout()\n }\n\n return (\n <React.Fragment>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\">\n <a className=\"navbar-item\" href=\"/\">\n <img\n src={process.env.PUBLIC_URL + '/logo.svg'}\n alt=\"Guillotina logo\"\n height=\"80\"\n />\n </a>\n <a\n id=\"burger\"\n href=\"/\"\n role=\"button\"\n className=\"navbar-burger burger\"\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </a>\n </div>\n <div id=\"navbarmenu\" className=\"navbar-menu\">\n <div className=\"navbar-start\"></div>\n <div className=\"navbar-end\">\n <div className=\"navbar-item\">\n {auth.isLogged && (\n <div className=\"buttons\">\n <button className=\"button is-size-7\" onClick={doLogout}>\n <Icon icon=\"fas fa-sign-out-alt\" size=\"is-size-7\" />\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </nav>\n </header>\n <section className=\"section main\">\n <div className=\"container\">\n <div className=\"column\">{children}</div>\n </div>\n </section>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Component } from 'react'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\n\nexport class Login extends Component {\n state = {\n username: '',\n password: '',\n loading: undefined,\n schema: '',\n errors: undefined,\n }\n\n constructor(props) {\n super(props)\n if (props.schemas) {\n this.state.schema = props.schemas[0]\n }\n }\n\n ref = React.createRef()\n\n doLogin = async (ev) => {\n ev.preventDefault()\n this.setState({ loading: true, errors: undefined })\n const { username, password, schema } = this.state\n\n if (schema !== '') {\n this.props.auth.setAccount(schema)\n }\n const auth = this.props.auth\n const res = await auth.login(username, password)\n\n if (!res) {\n this.setState({ errors: auth.errors, loading: false })\n return\n }\n\n if (this.props.onLogin) {\n this.props.onLogin()\n }\n }\n\n componentDidMount() {\n this.ref.current.focus()\n }\n\n render() {\n let { password, username, errors } = this.state\n const { schemas } = this.props\n return (\n <React.Fragment>\n <form\n className=\"login__form\"\n action=\"\"\n onSubmit={this.doLogin}\n data-test=\"formLoginTest\"\n >\n <div className=\"field\">\n <label className=\"label\">Username:</label>\n <input\n type=\"text\"\n className=\"input\"\n placeholder=\"Username\"\n onChange={(e) => this.setState({ username: e.target.value })}\n value={username}\n ref={this.ref}\n data-test=\"inputUsernameLoginTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Password:</label>\n <input\n type=\"password\"\n className=\"input\"\n onChange={(e) => this.setState({ password: e.target.value })}\n value={password}\n data-test=\"inputPasswordLoginTest\"\n />\n </div>\n {schemas && (\n <div className=\"field\">\n <label className=\"label\">Schema:</label>\n <div className=\"select\">\n <select\n onChange={(e) => this.setState({ schema: e.target.value })}\n >\n {schemas.map((s) => (\n <option value={s} key={s}>\n {s}\n </option>\n ))}\n </select>\n </div>\n </div>\n )}\n <div className=\"field\">\n <button\n className=\"button is-warning\"\n type=\"submit\"\n data-test=\"btnLoginTest\"\n >\n Login\n </button>\n </div>\n <div className=\"field\">\n {errors && (\n <p className=\"has-text-danger\">\n {ERRORS[errors] || 'Generic error'}\n </p>\n )}\n </div>\n </form>\n </React.Fragment>\n )\n }\n}\n","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useTraversal } from '../contexts'\nimport useSetState from '../hooks/useSetState'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}) {\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n ;(async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, type)\n setSchema({\n loading: false,\n data: dataJson,\n formFields: [...dataJson.required, ...extraFields],\n })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n })()\n }, [schema])\n\n const submit = () => {\n const currentErrors = {}\n\n schema.formFields.forEach((key) => {\n if (!formData[key]) {\n currentErrors[key] = 'This field is required'\n }\n })\n\n if (Object.keys(currentErrors).length > 0) {\n setErrors(currentErrors)\n return\n }\n\n onSubmit({ id: formData.uuid, ...formData })\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n {schema &&\n schema.data &&\n !schema.loading &&\n schema.formFields.map((key) => {\n if (!ignoreFiels.includes(key)) {\n const value = schema.data.properties[key]\n return (\n <EditComponent\n key={key}\n id={key}\n placeholder={value?.title ?? ''}\n className=\"\"\n required\n schema={schema.data.properties[key]}\n setValue={(ev) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n [key]: ev,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n })\n } else {\n setFormData({ ...formData, [key]: ev })\n }\n }}\n error={errors[key]}\n dataTest={`${key}TestInput`}\n val={key in formData ? formData[key] : ''}\n />\n )\n }\n return null\n })}\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import jwt_decode from 'jwt-decode'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n\n constructor(url) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account) {\n this.url = this.base_url + account\n }\n\n async login(username, password) {\n const url = this.getUrl('@login')\n try {\n const data = await fetch(url, {\n method: 'post',\n body: JSON.stringify({\n username: username,\n password: password,\n }),\n })\n if (data.status === 200) {\n const credentials = await data.json()\n this.storeAuth(credentials, username)\n return true\n } else {\n this.errors = 'invalid_credentials'\n }\n } catch (e) {\n this.errors = 'failed_to_fetch'\n return false\n }\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n return false\n }\n\n get isLogged() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token, expires] = this._getToken()\n if (!token || !expires) {\n return false\n }\n if (this.isExpired(expires)) {\n return false\n }\n return true\n }\n\n get username() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token] = this._getToken()\n const data = jwt_decode(token)\n console.log(token)\n return data.id\n }\n\n storeAuth(data) {\n localStorage.setItem('auth', data.token)\n localStorage.setItem('auth_expires', data.exp)\n }\n\n cleanAuth() {\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n }\n\n logout() {\n this.cleanAuth()\n }\n\n async refreshToken() {\n console.log('refresh!!!')\n this.retryRefresh++\n let data = await fetch(this.getUrl('@login-renew'), {\n headers: this.getHeaders(),\n method: 'post',\n })\n if (data.status === 401) {\n // invalid token\n this.cleanAuth()\n this.onLogout()\n return\n }\n const res = await data.json()\n console.log('refresh data', res)\n this.storeAuth(res)\n console.log('token refreshed')\n this.retryRefresh = 0\n return data.token\n }\n\n willExpire(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 < now + 10 * 1000) {\n return true\n }\n return false\n }\n\n isExpired(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 > now) {\n return false\n }\n return true\n }\n\n _getToken() {\n return [localStorage.getItem('auth'), localStorage.getItem('auth_expires')]\n }\n\n getToken() {\n const [token] = this._getToken()\n return token\n }\n\n getHeaders() {\n const [authToken, expires] = this._getToken()\n if (!authToken) return {}\n\n if (this.willExpire(expires) && this.retryRefresh < this.maxRetry) {\n ;(async () => await this.refreshToken())()\n }\n\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n}\n"],"names":["RestClient","url","auth","request","path","data","headers","getHeaders","fetch","authToken","getToken","Accept","Authorization","post","method","body","JSON","stringify","get","put","patch","upload","filename","delete","undefined","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","params","Object","keys","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","window","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","Icon","icon","className","align","addClass","split","Loading","rest","Tag","name","onRemove","size","color","Delete","onClick","children","Table","item","idx","Notification","isColor","setURLParams","p","history","pathname","toString","clean","URLSearchParams","forEach","_key","set","useLocation","useState","currentSearchParams","update","prevPath","useRef","useEffect","patchHistoryEvents","checkForUpdates","events","e","addEventListener","removeEventListener","navigate","useCallback","remove","param","patched","type","original","result","apply","arguments","event","Event","dispatchEvent","location","search","Link","aRef","model","props","aStyle","textDecoration","stopPropagation","actAsLink","preventDefault","id","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","lastKey","includes","part","val","buildQs","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","isContainer","getContext","startsWith","substring","slice","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","containerPath","getContainerFromPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","child","m","created","updated","applyCompat","member","items","items_count","items_total","container","prepare","query","res","json","canido","permissions","Array","isArray","createObject","cleanPath","console","log","create","file","download","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","endpoint","getUsers","getPrincipals","groups","users","all","gr","usr","ok","getRoles","getAllPermissions","req","resp","Set","extractPermissions","getTypes","types","status","getClient","parts","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","target","normalize","permission","concat","AuthContext","createContext","ClientContext","TraversalContext","Traversal","flash","assign","refresh","transparent","dispatch","payload","message","scrollTo","top","left","behavior","clearFlash","doAction","action","cancelAction","hasPerm","state","filterTabs","tabs","tabsPermissions","perm","context","TraversalProvider","useTraversal","React","useContext","ClientProvider","client","useGuillotinaClient","Button","loading","disabled","dataTest","css","Modal","isActive","setActive","usePortal","Portal","Confirm","onCancel","onConfirm","marginTop","PathTree","title","defaultPath","value","margin","useSetState","initialState","setState","prevState","Function","_catch","recover","then","initial","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","ready_body","Ctx","newState","error","del","useCrudContext","AddItem","doSubmit","form","formData","getForm","registry","Form","err","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","calculated","addConfig","additional","useConfig","cfg","ref","getId","RemoveItems","removeItems","errors","setLoading","actions","push","errorstr","last","itemsNames","Checkbox","classNameInput","indeterminate","placeholder","onChange","inputRef","updateState","ev","checked","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","iconPosition","errorZoneClassName","autoComplete","widget","required","autofocus","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","arrayOf","oneOf","autoFocus","bool","isSubmitted","onKeyDown","onKeyUp","onPressEnter","readOnly","oneOfType","number","EmailInput","onSubmit","onReset","handleSubmit","isRequired","PasswordInput","formComponents","password","boolean","email","FormBuilder","schema","actionName","exclude","remotes","submitButton","properties","values","fields","x","element","field","GetTag","displayName","children_","Children","cloneElement","changes","Select","options","classWrap","multiple","appendDefault","style","text","cssWrap","index","object","FileUpload","changed","files","Textarea","rows","debounce","wait","timeout","args","later","clearTimeout","page","SearchInput","traversal","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","searchTermQs","searchTermParsed","fnName","qsParsed","newItems","renderTextItemOptionFn","currentTarget","contains","relatedTarget","InputList","inputValue","setInputValue","addTags","React.createElement","tag","indexOf","defaultEvents","on","obj","off","useClickAway","onClickAway","savedCallback","handler","el","eventName","document","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","plain","RenderField","Widget","FieldValue","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","href","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","DEFAULT_VALUE_EDITABLE_FIELD","DEFAULT_VALUE_NO_EDITABLE_FIELD","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","canModified","haveDeleteBtn","getRenderProps","renderProps","toLocaleString","saveField","unescape","dataPatch","deleteField","enum","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","editableFields","IDublinCore","ACTIONS_OBJECT","DELETE","perms","MOVE","COPY","PanelActions","some","onAction","actionKey","React.Fragment","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callback","callId","useAsync","PanelAddons","setAction","pathPrefix","prepareData","available","addon","installed","addons","arrayToObject","array","PanelBehaviors","ops","enableBehavior","disableBehavior","static","dynamic","ItemsActionsCtx","ItemsActionsProvider","selected","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","marginLeft","ItemCheckbox","absId","ItemsActionsDropdown","every","v","o","Pagination","total","doPaginate","pager","maxPages","Math","ceil","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","role","principal","getPrinroles","ItemModel","_path","splice","icons","_url","type_name","creation_date","modification_date","Item","RItem","columns","ItemTitle","SearchLabels","clearSearch","PanelItems","setLocation","searchParsed","typeParsed","BehaviorsView","getBehavior","behaviors","__behaviors__","GetBehavior","b","Cls","BehaviorNotImplemented","PropertiesButtonView","getProperties","Props","Buttons","Element","PropertiesView","Panels","_showProperties","_ignoreFields","PanelProperties","setSchema","showProperties","properties_default","ignoreFields","properties_ignore_fields","dataJson","prop","PermissionPrinperm","principals","operations","setting","getMultiples","setter","selectedOptions","savePermission","random","PermissionPrinrole","roles","PermissionRoleperm","PanelPermissions","ctx","reset","setReset","row","currentObj","defaultOptions","AddPermission","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","onSearchQuery","q","tab","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","databases","db","DatabaseCtx","containers","CreateContainer","ModalAddContainer","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","username","UserForm","attr","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","gorups","user_groups","user_roles","requestGetGroups","requestGetRoles","updateObject","withError","CopyItems","copyItems","input","destination","new_id","responses","display","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","setPerror","perror","setPass","n","BaseForm","setName","submit","setTitle","Groups","GroupToolbar","GroupsCtx","sortParsed","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundary","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","Component","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","vocabulary","selectValue","getInputType","paths","views","Application","Database","Container","UserManager","User","Group","GroupManager","Folder","changePassword","forms","itemsColumn","schemas","components","searchEngineQueryParamsFunction","PostreSQL","Elasticsearch","getComponent","defaultComponent","funcCols","getAction","is_folderish","useRegistry","errorStatus","guillotinaReducer","now","Guillotina","config","searchPath","useReducer","pr","contextData","Main","Action","Layout","onLogout","doLogout","logout","process","env","PUBLIC_URL","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","createRef","doLogin","setAccount","login","onLogin","componentDidMount","s","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","localStorage","credentials","storeAuth","setItem","token","exp","cleanAuth","refreshToken","willExpire","expiration","getTime","isExpired","_getToken","getItem","expires","jwt_decode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAaA,UAAb;AACE,sBAAYC,GAAZ,EAAiBC,IAAjB,EAAuB;AACrB,SAAKA,IAAL,GAAYA,IAAZ;AACA,SAAKD,GAAL,GAAWA,GAAX;AACD;;AAJH;;AAAA,SAMQE,OANR,oBAMgBC,IANhB,EAMsBC,IANtB,EAM4BC,OAN5B;AAAA,QAMqC;AAAA,mBAEP,IAFO;;AACjCD,MAAAA,IAAI,GAAGA,IAAI,IAAI,EAAf;AACAA,MAAAA,IAAI,CAACC,OAAL,GAAeA,OAAO,IAAI,OAAKC,UAAL,EAA1B;AAFiC,6BAGpBC,KAAK,MAAI,OAAKP,GAAT,GAAeG,IAAf,EAAuBC,IAAvB,CAHe;AAIlC,KAVH;AAAA;AAAA;AAAA;;AAAA,SAYEE,UAZF,GAYE,sBAAa;AACX,QAAME,SAAS,GAAG,KAAKP,IAAL,CAAUQ,QAAV,EAAlB;AACA,QAAI,CAACD,SAAL,EAAgB,OAAO,EAAP;AAChB,WAAO;AACLE,MAAAA,MAAM,EAAE,kBADH;AAEL,sBAAgB,kBAFX;AAGLC,MAAAA,aAAa,EAAE,YAAYH;AAHtB,KAAP;AAKD,GApBH;;AAAA,SAsBQI,IAtBR,iBAsBaT,IAtBb,EAsBmBC,IAtBnB;AAAA,QAsByB;AAAA,mBACR,IADQ;;AAAA,6BACR,OAAKF,OAAL,CAAaC,IAAb,EAAmB;AAC9BU,QAAAA,MAAM,EAAE,MADsB;AAE9BC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,IAAf;AAFwB,OAAnB,CADQ;AAKtB,KA3BH;AAAA;AAAA;AAAA;;AAAA,SA6BQa,GA7BR,gBA6BYd,IA7BZ;AAAA,QA6BkB;AAAA,mBACD,IADC;;AAAA,6BACD,OAAKD,OAAL,CAAaC,IAAb,EAAmB,EAAnB,CADC;AAEf,KA/BH;AAAA;AAAA;AAAA;;AAAA,SAiCQe,GAjCR,gBAiCYf,IAjCZ,EAiCkBC,IAjClB;AAAA,QAiCwB;AAAA,mBACP,IADO;;AAAA,6BACP,OAAKF,OAAL,CAAaC,IAAb,EAAmB;AAC9BU,QAAAA,MAAM,EAAE,KADsB;AAE9BC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,IAAf;AAFwB,OAAnB,CADO;AAKrB,KAtCH;AAAA;AAAA;AAAA;;AAAA,SAwCQe,KAxCR,kBAwCchB,IAxCd,EAwCoBC,IAxCpB;AAAA,QAwC0B;AAAA,oBACT,IADS;;AAAA,6BACT,QAAKF,OAAL,CAAaC,IAAb,EAAmB;AAC9BU,QAAAA,MAAM,EAAE,OADsB;AAE9BC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,IAAf;AAFwB,OAAnB,CADS;AAKvB,KA7CH;AAAA;AAAA;AAAA;;AAAA,SA+CQgB,MA/CR,mBA+CejB,IA/Cf,EA+CqBC,IA/CrB;AAAA,QA+C2B;AAAA,oBACP,IADO;;AACvB,UAAMC,OAAO,GAAG,QAAKC,UAAL,EAAhB;;AACA,aAAOD,OAAO,CAAC,cAAD,CAAd;AACAA,MAAAA,OAAO,CAAC,cAAD,CAAP,GAA0BD,IAAI,CAAC,cAAD,CAA9B;AACAC,MAAAA,OAAO,CAAC,mBAAD,CAAP,GAA+BD,IAAI,CAACiB,QAApC;AACAhB,MAAAA,OAAO,CAAC,kBAAD,CAAP,GAA8B,QAA9B;AALuB,6BAMV,QAAKH,OAAL,CACXC,IADW,EAEX;AACEU,QAAAA,MAAM,EAAE,OADV;AAEEC,QAAAA,IAAI,EAAEV,IAAI,CAACA;AAFb,OAFW,EAMXC,OANW,CANU;AAcxB,KA7DH;AAAA;AAAA;AAAA;;AAAA,SA+DQiB,MA/DR,oBA+DenB,IA/Df,EA+DqBC,IA/DrB;AAAA,QA+DqBA,IA/DrB;AA+DqBA,MAAAA,IA/DrB,GA+D4BmB,SA/D5B;AAAA;;AAAA,QA+DuC;AAAA,oBACtB,IADsB;;AAAA,6BACtB,QAAKrB,OAAL,CAAaC,IAAb,EAAmB;AAC9BU,QAAAA,MAAM,EAAE,QADsB;AAE9BC,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeZ,IAAf;AAFwB,OAAnB,CADsB;AAKpC,KApEH;AAAA;AAAA;AAAA;;AAAA;AAAA;;ICAaoB,UAAU,GAAG,SAAbA,UAAa,CAACC,UAAD,EAAgB;AACxC,SAAOA,UAAU,CAACC,MAAX,CAAkBC,OAAlB,EAA2BC,IAA3B,CAAgC,GAAhC,EAAqCC,IAArC,EAAP;AACD;IAEYC,IAAI,GAAG,SAAPA,IAAO,GAAM;AAE1B,IAAIC,OAAO,GAAG,CAAd;IAEaC,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD;AAAA,UAAeA,MAAM,IAAI,IAAzB,UAAiCF,OAAO,EAAxC;AAAA;IAEdG,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD,EAAY;AACvC,SAAOC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACJG,GADI,CACA,UAACC,GAAD,EAAS;AACZ,WAAOC,kBAAkB,CAACD,GAAD,CAAlB,GAA0B,GAA1B,GAAgCC,kBAAkB,CAACL,MAAM,CAACI,GAAD,CAAP,CAAzD;AACD,GAHI,EAIJX,IAJI,CAIC,GAJD,CAAP;AAKD;AAEM,SAASa,mBAAT,CAA6BC,MAA7B,EAAqC;AAC1C,MAAMC,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYH,MAAZ,CAArB;AACA,MAAMI,SAAS,GAAGH,YAAY,CAACI,MAA/B;AACA,MAAMC,KAAK,GAAG,IAAIC,UAAJ,CAAeH,SAAf,CAAd;;AACA,OAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAApB,EAA+BI,CAAC,EAAhC,EAAoC;AAClC,QAAIC,KAAK,GAAGR,YAAY,CAACS,UAAb,CAAwBF,CAAxB,CAAZ;AACAF,IAAAA,KAAK,CAACE,CAAD,CAAL,GAAWC,KAAX;AACD;;AACD,SAAOH,KAAP;AACD;AAEM,SAASK,YAAT,CAAsBC,GAAtB,EAA2B;AAChCA,EAAAA,GAAG,GAAGA,GAAG,CAACC,OAAJ,CAAY,YAAZ,EAA0B,EAA1B,CAAN,CADgC;;AAEhCD,EAAAA,GAAG,GAAGA,GAAG,CAACE,WAAJ,EAAN,CAFgC;;AAKhC,MAAIC,IAAI,GAAG,8BAAX;AACA,MAAIC,EAAE,GAAG,8BAAT;;AACA,OAAK,IAAIR,CAAC,GAAG,CAAR,EAAWS,CAAC,GAAGF,IAAI,CAACV,MAAzB,EAAiCG,CAAC,GAAGS,CAArC,EAAwCT,CAAC,EAAzC,EAA6C;AAC3CI,IAAAA,GAAG,GAAGA,GAAG,CAACC,OAAJ,CAAY,IAAIK,MAAJ,CAAWH,IAAI,CAACI,MAAL,CAAYX,CAAZ,CAAX,EAA2B,GAA3B,CAAZ,EAA6CQ,EAAE,CAACG,MAAH,CAAUX,CAAV,CAA7C,CAAN;AACD;;AAEDI,EAAAA,GAAG,GAAGA,GAAG,CACNC,OADG,CACK,cADL,EACqB,EADrB;AAAA,GAEHA,OAFG,CAEK,MAFL,EAEa,GAFb;AAAA,GAGHA,OAHG,CAGK,KAHL,EAGY,GAHZ,CAAN,CAXgC;;AAgBhC,SAAOD,GAAP;AACD;AAEM,SAASQ,KAAT,CAAeC,EAAf,EAAmB;AACxB,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9BC,IAAAA,UAAU,CAAC,YAAY;AACrBD,MAAAA,OAAO;AACR,KAFS,EAEPF,EAFO,CAAV;AAGD,GAJM,CAAP;AAKD;;ICnDYI,IAAI,GAAG,SAAPA,IAAO,OAAgC;AAAA,MAA7BC,IAA6B,QAA7BA,IAA6B;AAAA,MAAvBC,SAAuB,QAAvBA,SAAuB;AAAA,MAAZC,KAAY,QAAZA,KAAY;AAClD,MAAMC,QAAQ,GAAGF,SAAS,GAAGA,SAAS,CAACG,KAAV,CAAgB,GAAhB,CAAH,GAA0B,CAACH,SAAD,CAApD;AAEAC,EAAAA,KAAK,GAAGA,KAAK,IAAI,UAAjB;AAEA,sBACE;AAAM,IAAA,SAAS,EAAE9C,UAAU,EAAE,MAAF,EAAU8C,KAAV,SAAoBC,QAApB;AAA3B,kBACE;AAAG,IAAA,SAAS,EAAEH;AAAd,IADF,CADF;AAKD;;ICXYK,OAAO,GAAG,SAAVA,OAAU;AAAA,MAAMC,IAAN;;AAAA,sBACrB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,EADqB;AAAA;;ICCVC,GAAG,GAAG,SAANA,GAAM;AAAA,MACjBC,IADiB,QACjBA,IADiB;AAAA,MAEjBC,QAFiB,QAEjBA,QAFiB;AAAA,uBAGjBC,IAHiB;AAAA,MAGjBA,IAHiB,0BAGV,WAHU;AAAA,wBAIjBC,KAJiB;AAAA,MAIjBA,KAJiB,2BAIT,YAJS;AAAA,sBAMjB;AAAM,IAAA,SAAS,EAAEvD,UAAU,CAAC,CAAC,KAAD,EAAQuD,KAAR,EAAeD,IAAf,CAAD;AAA3B,KACGF,IADH,EAEGC,QAAQ,KAAKtD,SAAb,iBACC;AAAQ,IAAA,SAAS,EAAC,iBAAlB;AAAoC,IAAA,OAAO,EAAE;AAAA,aAAMsD,QAAQ,EAAd;AAAA;AAA7C,IAHJ,CANiB;AAAA;;ACDZ,SAASG,MAAT,OAAkD;AAAA,MAAhCC,OAAgC,QAAhCA,OAAgC;AAAA,MAAvBZ,SAAuB,QAAvBA,SAAuB;AAAA,MAAZa,QAAY,QAAZA,QAAY;AACvD,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,OAAO,EAAED,OAFX;AAGE,IAAA,SAAS,cAAYZ,SAHvB;AAIE,iBAAU;AAJZ,KAMGa,QANH,CADF;AAUD;;ACVM,SAASC,KAAT,OAAiD;AAAA,MAAhC9E,OAAgC,QAAhCA,OAAgC;AAAA,MAAvB6E,QAAuB,QAAvBA,QAAuB;AAAA,MAAbb,SAAa,QAAbA,SAAa;AACtDA,EAAAA,SAAS,GAAGA,SAAS,GACjBA,SAAS,CAACG,KAAV,CAAgB,GAAhB,CADiB,GAEjB,kCAAkCA,KAAlC,CAAwC,GAAxC,CAFJ;AAGA,sBACE;AAAO,IAAA,SAAS,EAAEhD,UAAU,EAAE,OAAF,SAAc6C,SAAd;AAA5B,kBACE,gDACE,gCACGhE,OAAO,IACNA,OAAO,CAACiC,GAAR,CAAY,UAAC8C,IAAD,EAAOC,GAAP;AAAA,wBAAe;AAAI,MAAA,GAAG,EAAED,IAAI,GAAGC;AAAhB,OAAsBD,IAAtB,CAAf;AAAA,GAAZ,CAFJ,CADF,CADF,eAOE,mCAAQF,QAAR,CAPF,CADF;AAWD;;AChBM,SAASI,YAAT,OAAkD;AAAA,0BAA1BC,OAA0B;AAAA,MAA1BA,OAA0B,6BAAhB,EAAgB;AAAA,MAAZL,QAAY,QAAZA,QAAY;AACvD,sBACE;AAAK,IAAA,SAAS,EAAE,qBAAqBK,OAArC;AAA8C,iBAAU;AAAxD,KACGL,QADH,CADF;AAKD;;ACLD;;AAEA,IAAMM,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD;AAAA,SACnB7C,MAAM,CAAC8C,OAAP,CAAe,WAAf,EACE,CADF,EAEE,CAFF,EAGE,CAAC9C,MAAM,CAAC8C,OAAP,CAAeC,QAAf,IAA2B,EAA5B,IAAkC,GAAlC,GAAwCF,CAAC,CAACG,QAAF,GAAarC,OAAb,CAAqB,MAArB,EAA6B,GAA7B,CAH1C,CADmB;AAAA,CAArB;;AAOA,IAAMsC,KAAK,GAAG,SAARA,KAAQ,CAACnC,EAAD,EAAQ;AACpB,MAAM3B,OAAO,GAAG,IAAI+D,eAAJ,EAAhB;AACA1D,EAAAA,MAAM,CAACC,IAAP,CAAYqB,EAAZ,EAAgBqC,OAAhB,CAAwB,UAACC,IAAD;AAAA,WAAUjE,OAAO,CAACkE,GAAR,CAAYD,IAAZ,EAAkBtC,EAAE,CAACsC,IAAD,CAApB,CAAV;AAAA,GAAxB;AACAR,EAAAA,YAAY,CAACzD,OAAD,CAAZ;AACD,CAJD;;IAMamE,WAAW,GAAG,SAAdA,WAAc,GAAM;AAAA,kBACRC,QAAQ,CAACC,mBAAmB,EAApB,CADA;AAAA,MACxBjG,IADwB;AAAA,MAClBkG,MADkB;;AAE/B,MAAMC,QAAQ,GAAGC,MAAM,CAACpG,IAAD,CAAvB;AAEAqG,EAAAA,SAAS,CAAC,YAAM;AACdC,IAAAA,kBAAkB,GADJ;AAId;AACA;AACA;;AACA,QAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5B,UAAMf,QAAQ,GAAGS,mBAAmB,EAApC;AACAE,MAAAA,QAAQ,CAACvE,OAAT,KAAqB4D,QAArB,IAAiCU,MAAM,CAAEC,QAAQ,CAACvE,OAAT,GAAmB4D,QAArB,CAAvC;AACD,KAHD;;AAKA,QAAMgB,MAAM,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,cAA1B,CAAf;AACAA,IAAAA,MAAM,CAACrE,GAAP,CAAW,UAACsE,CAAD;AAAA,aAAOhE,MAAM,CAACiE,gBAAP,CAAwBD,CAAxB,EAA2BF,eAA3B,CAAP;AAAA,KAAX,EAbc;AAgBd;AACA;;AACAA,IAAAA,eAAe;AAEf,WAAO;AAAA,aACLC,MAAM,CAACrE,GAAP,CAAW,UAACsE,CAAD;AAAA,eAAOhE,MAAM,CAACkE,mBAAP,CAA2BF,CAA3B,EAA8BF,eAA9B,CAAP;AAAA,OAAX,CADK;AAAA,KAAP;AAED,GAtBQ,EAsBN,EAtBM,CAAT,CAJ+B;AA6B/B;AACA;AACA;AACA;;AACA,MAAMK,QAAQ,GAAGC,WAAW,CAC1B,UAACtD,EAAD,EAAKH,OAAL,EAAiB;AACf,QAAIA,OAAJ,EAAa;AACXsC,MAAAA,KAAK,CAACnC,EAAD,CAAL;AACA;AACD;;AACD,QAAI3B,OAAO,GAAG,IAAI+D,eAAJ,CAAoB3F,IAAI,CAACyF,QAAL,EAApB,CAAd;AACAxD,IAAAA,MAAM,CAACC,IAAP,CAAYqB,EAAZ,EAAgBqC,OAAhB,CAAwB,UAACC,IAAD;AAAA,aAAUjE,OAAO,CAACkE,GAAR,CAAYD,IAAZ,EAAkBtC,EAAE,CAACsC,IAAD,CAApB,CAAV;AAAA,KAAxB;AACAR,IAAAA,YAAY,CAACzD,OAAD,CAAZ;AACD,GATyB,EAU1B,CAAC5B,IAAD,CAV0B,CAA5B;AAaA,MAAM8G,MAAM,GAAGD,WAAW,CACxB,UAACE,KAAD,EAAW;AACT,QAAInF,OAAO,GAAG,IAAI+D,eAAJ,CAAoB3F,IAAI,CAACyF,QAAL,EAApB,CAAd;AACA7D,IAAAA,OAAO,CAACT,MAAR,CAAe4F,KAAf;AACA1B,IAAAA,YAAY,CAACzD,OAAD,CAAZ;AACD,GALuB,EAMxB,CAAC5B,IAAD,CANwB,CAA1B;AASA,SAAO,CAACA,IAAD,EAAO4G,QAAP,EAAiBE,MAAjB,CAAP;AACD;AAGD;AACA;AACA;AACA;;AAEA,IAAIE,OAAO,GAAG,CAAd;;AAEA,IAAMV,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,MAAIU,OAAJ,EAAa;AACZ,GAAC,WAAD,EAAc,cAAd,EAA8B7E,GAA9B,CAAkC,UAAC8E,IAAD,EAAU;AAC3C,QAAMC,QAAQ,GAAGzE,MAAM,CAAC8C,OAAP,CAAe0B,IAAf,CAAjB;;AAEAxE,IAAAA,MAAM,CAAC8C,OAAP,CAAe0B,IAAf,IAAuB,YAAY;AACjC,UAAME,MAAM,GAAGD,QAAQ,CAACE,KAAT,CAAe,IAAf,EAAqBC,SAArB,CAAf;AACA,UAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUN,IAAV,CAAd;AACAK,MAAAA,KAAK,CAACD,SAAN,GAAkBA,SAAlB;AAEAG,MAAAA,aAAa,CAACF,KAAD,CAAb;AACA,aAAOH,MAAP;AACD,KAPD;AAQD,GAXA;AAaD,SAAQH,OAAO,GAAG,CAAlB;AACD,CAhBD;;AAkBA,IAAMf,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACjG,IAAD;AAAA,MAACA,IAAD;AAACA,IAAAA,IAAD,GAAQyC,MAAM,CAACgF,QAAP,CAAgBC,MAAxB;AAAA;;AAAA,SAC1B,IAAI/B,eAAJ,CAAoB3F,IAApB,CAD0B;AAAA,CAA5B;;ACnGO,SAAS2H,IAAT,OAAmD;AAAA,MAAnCC,IAAmC,QAAnCA,IAAmC;AAAA,MAA7BC,KAA6B,QAA7BA,KAA6B;AAAA,MAAtB9C,QAAsB,QAAtBA,QAAsB;AAAA,MAAT+C,KAAS;;AAAA,qBAC/B/B,WAAW,EADoB;AAAA,MACjD/F,IADiD;AAAA,MAC3C4G,QAD2C;;AAExD,MAAMmB,MAAM,GAAG;AAAEC,IAAAA,cAAc,EAAE,MAAlB;AAA0BpD,IAAAA,KAAK,EAAE;AAAjC,GAAf;;AAEA,WAASE,OAAT,CAAiB2B,CAAjB,EAAoB;AAClBA,IAAAA,CAAC,CAACwB,eAAF;AACA,QAAIC,SAAS,CAACzB,CAAD,CAAb,EAAkB;AAClBA,IAAAA,CAAC,CAAC0B,cAAF;AACAvB,IAAAA,QAAQ,CAAC;AAAE5G,MAAAA,IAAI,EAAE6H,KAAK,CAAC7H;AAAd,KAAD,EAAuB,IAAvB,CAAR;AACA,QAAI8H,KAAK,CAAChD,OAAV,EAAmBgD,KAAK,CAAChD,OAAN,CAAc2B,CAAd;AACpB;;AAED,sBACE,sCACMqB,KADN;AAEE,IAAA,GAAG,EAAEF,IAFP;AAGE,IAAA,IAAI,QAAM5H,IAAN,GAAa6H,KAAK,CAACO,EAAnB,MAHN;AAIE,IAAA,KAAK,EAAEL,MAJT;AAKE,IAAA,OAAO,EAAEjD;AALX,MAOGC,QAPH,CADF;AAWD;;AAED,SAASmD,SAAT,CAAmBzB,CAAnB,EAAsB;AACpB,SAAOA,CAAC,CAAC4B,OAAF,IAAa5B,CAAC,CAAC6B,OAAf,IAA0B7B,CAAC,CAAC8B,MAA5B,IAAsC9B,CAAC,CAAC+B,QAAxC,IAAoD/B,CAAC,CAACgC,MAAF,KAAa,CAAxE;AACD;;AC3BM,SAASC,MAAT,OAA+C;AAAA,MAA7Bb,KAA6B,QAA7BA,KAA6B;AAAA,MAAtB9C,QAAsB,QAAtBA,QAAsB;AAAA,MAAT+C,KAAS;;AACpD,MAAMa,IAAI,GAAGvC,MAAM,EAAnB;;AAEA,WAAStB,OAAT,GAAmB;AACjB6D,IAAAA,IAAI,CAAC/G,OAAL,CAAagH,KAAb;AACD;;AAED,sBACE,uCAAQd,KAAR;AAAe,IAAA,OAAO,EAAEhD;AAAxB,mBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE+C,KAAb;AAAoB,IAAA,IAAI,EAAEc;AAA1B,KACG5D,QADH,CADF,CADF;AAOD;;ACjBD,IAAM8D,GAAG,GAAG,GAAZ;AACA,IAAMC,aAAa,GAAG,WAAtB;AACA,IAAMC,OAAO,GAAG,IAAhB;AAEO,SAASC,MAAT,CAAgBC,EAAhB,EAAoBC,YAApB,EAAkD;AAAA,MAA9BA,YAA8B;AAA9BA,IAAAA,YAA8B,GAAfJ,aAAe;AAAA;;AACvD,MAAIK,OAAO,GAAG/H,SAAd;AACA6H,EAAAA,EAAE,CAACvH,IAAH;;AAEA,MAAIuH,EAAE,CAACG,QAAH,CAAY,GAAZ,CAAJ,EAAsB;AACpBH,IAAAA,EAAE,GAAGA,EAAE,CAAC7F,OAAH,CAAW,eAAX,SAAiC2F,OAAjC,QAAL;AACD;;AAEDE,EAAAA,EAAE,GAAGA,EAAE,CAAC5E,KAAH,CAAS,GAAT,CAAL;AACA,SAAO4E,EAAE,CAAC9G,GAAH,CAAO,UAACkH,IAAD,EAAU;AACtB,QAAIA,IAAI,CAACD,QAAL,CAAcL,OAAd,CAAJ,EAA4B;AAC1BM,MAAAA,IAAI,GAAGA,IAAI,CAACjG,OAAL,CAAa,IAAb,EAAmB,GAAnB,CAAP;AACD;;AACD,QAAI,CAACiG,IAAI,CAACD,QAAL,CAAcP,GAAd,CAAL,EAAyB;AACvB,aAAO,CAACM,OAAD,GAAW,CAACD,YAAD,EAAeG,IAAf,CAAX,GAAkC,CAACF,OAAD,EAAUE,IAAV,CAAzC;AACD;;AANqB,sBAOHA,IAAI,CAAChF,KAAL,CAAWwE,GAAX,CAPG;AAAA,QAOfzG,GAPe;AAAA,QAOVkH,GAPU;;AAQtBH,IAAAA,OAAO,GAAG/G,GAAV;AACA,WAAO,CAACA,GAAD,EAAMkH,GAAN,CAAP;AACD,GAVM,CAAP;AAWD;AAEM,SAASC,OAAT,CAAiBC,WAAjB,EAA8B;AACnC,SAAOA,WAAW,CACfrH,GADI,CAEH;AAAA,QAAEC,GAAF;AAAA,QAAOkH,GAAP;AAAA,WAAmBjH,kBAAkB,CAACD,GAAD,CAArC,SAA8CC,kBAAkB,CAACiH,GAAD,CAAhE;AAAA,GAFG,EAIJ7H,IAJI,CAIC,GAJD,CAAP;AAKD;;ACzBD,IAAIgI,UAAU,GAAG,EAAjB;AACA,IAAIC,YAAY,GAAG,EAAnB;IAEaC,gBAAb;AACE,4BAAYpF,IAAZ,EAAkBqF,WAAlB,EAA+B;AAC7B,SAAKrF,IAAL,GAAYA,IAAZ;AACA,SAAKqF,WAAL,GAAmBA,WAAnB;AACD;;AAJH;;AAAA,SAMQC,UANR,uBAMmB7J,IANnB;AAAA,QAMyB;AAAA,mBAGJ,IAHI;;AACrB,cAAQA,IAAR;AACE,aAAK,GAAL;AAAA,iCACe,OAAKuE,IAAL,CAAUzD,GAAV,CAAc,EAAd,CADf;;AAEA;AACE,cAAId,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,YAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AAHH,iCAIe,OAAKxF,IAAL,CAAUzD,GAAV,CAAcd,IAAd,CAJf;AAHF;AASD,KAhBH;AAAA;AAAA;AAAA;;AAAA,SAkBQc,GAlBR,gBAkBYd,IAlBZ;AAAA,QAkBkB;AAAA,mBAID,IAJC;;AACd,UAAIA,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAACgK,KAAL,CAAW,CAAX,CAAP;AACD;;AAHa,6BAID,OAAKzF,IAAL,CAAUzD,GAAV,CAAcd,IAAd,CAJC;AAKf,KAvBH;AAAA;AAAA;AAAA;;AAAA,SAyBEiK,uBAzBF,GAyBE,uCAAwE;AAAA,0BAA9CC,KAA8C;AAAA,QAA9CA,KAA8C,2BAAtC,CAAsC;AAAA,6BAAnCC,QAAmC;AAAA,QAAnCA,QAAmC,8BAAxB,EAAwB;AAAA,8BAApBC,SAAoB;AAAA,QAApBA,SAAoB,+BAAR,IAAQ;AACtE,QAAIjD,MAAM,GAAG,EAAb;AAEAA,IAAAA,MAAM,aACD6B,MAAM,CAACkB,KAAK,CAACzE,QAAN,EAAD,EAAmB,SAAnB,CADL,EAEDuD,MAAM,CAACmB,QAAQ,CAAC1E,QAAT,EAAD,EAAsB,QAAtB,CAFL,CAAN;;AAIA,QAAI2E,SAAJ,EAAe;AAAA;;AACbjD,MAAAA,MAAM,aAAOA,MAAP,aAAmB6B,MAAM,CAAC,GAAD,EAAM,OAAN,CAAzB,sBAA2C,EAA3C,CAAN;AACD;;AACD,WAAO7B,MAAP;AACD,GApCH;;AAAA,SAsCEkD,2BAtCF,GAsCE,4CAKG;AAAA,4BAJDH,KAIC;AAAA,QAJDA,KAIC,4BAJO,CAIP;AAAA,+BAHDC,QAGC;AAAA,QAHDA,QAGC,+BAHU,EAGV;AAAA,QAFDnK,IAEC,SAFDA,IAEC;AAAA,gCADDoK,SACC;AAAA,QADDA,SACC,gCADW,IACX;AACD,QAAIjD,MAAM,GAAG,EAAb;AACA,QAAImD,aAAa,GAAGC,oBAAoB,CAACvK,IAAD,CAAxC;;AAEA,QAAIsK,aAAa,CAACR,UAAd,CAAyB,GAAzB,CAAJ,EAAmC;AACjCQ,MAAAA,aAAa,GAAGA,aAAa,CAACN,KAAd,CAAoB,CAApB,CAAhB;AACD;;AACD,QAAIQ,UAAU,GAAGxK,IAAI,CAACoD,OAAL,CAAakH,aAAb,EAA4B,EAA5B,CAAjB;;AACA,QAAIE,UAAU,CAACC,QAAX,CAAoB,GAApB,CAAJ,EAA8B;AAC5BD,MAAAA,UAAU,GAAGA,UAAU,CAACR,KAAX,CAAiB,CAAjB,EAAoB,CAAC,CAArB,CAAb;AACD;;AAED7C,IAAAA,MAAM,aACD6B,MAAM,CAACkB,KAAK,CAACzE,QAAN,EAAD,EAAmB,OAAnB,CADL,EAEDuD,MAAM,CAACmB,QAAQ,CAAC1E,QAAT,EAAD,EAAsB,MAAtB,CAFL,CAAN;;AAKA,QAAI2E,SAAJ,EAAe;AAAA;;AACbjD,MAAAA,MAAM,aAAOA,MAAP,cAAmB6B,MAAM,CAAC,GAAD,EAAM,OAAN,CAAzB,uBAA2C,EAA3C,CAAN;AACD;;AACD,QAAIwB,UAAU,KAAK,EAAnB,EAAuB;AACrBrD,MAAAA,MAAM,aAAOA,MAAP,EAAkB6B,MAAM,CAACwB,UAAD,EAAa,gBAAb,CAAxB,CAAN;AACD;;AACD,WAAOrD,MAAP;AACD,GAnEH;;AAAA,SAqEEuD,cArEF,GAqEE,0BAAiB;AACf,QAAMC,QAAQ,GAAG;AAAEC,MAAAA,KAAK,EAAE;AAAT,KAAjB;AACA,QAAMC,SAAS,GAAG;AAAED,MAAAA,KAAK,EAAE;AAAT,KAAlB;AAEA,WAAO,CACL;AACEE,MAAAA,KAAK,EAAE,EADT;AAEEC,MAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,4BAAO;AAAI,UAAA,KAAK,EAAEL;AAAX,wBAAsB,oBAAC,IAAD;AAAM,UAAA,IAAI,EAAEK,CAAC,CAAC/G;AAAd,UAAtB,CAAP;AAAA;AAFT,KADK,EAKL;AACE6G,MAAAA,KAAK,EAAE,MADT;AAEEC,MAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,4BACL,oBAAC,MAAD;AAAQ,UAAA,KAAK,EAAEL,QAAf;AAAyB,UAAA,KAAK,EAAEK;AAAhC,wBACE;AAAM,UAAA,SAAS,EAAC;AAAhB,WAAuBA,CAAC,CAAC/D,IAAzB,CADF,CADK;AAAA;AAFT,KALK,EAaL;AACE6D,MAAAA,KAAK,EAAE,SADT;AAEEC,MAAAA,KAAK,EAAE,eAACC,CAAD,EAAIpE,QAAJ,EAAcc,MAAd;AAAA,4BACL,oBAAC,MAAD;AAAQ,UAAA,KAAK,EAAEsD;AAAf,WACGA,CAAC,CAACvG,IADL,EAEGiD,MAAM,iBACL,oBAAC,KAAD,CAAO,QAAP,qBACE,+BADF,eAEE;AAAM,UAAA,SAAS,EAAC;AAAhB,WAA0CsD,CAAC,CAAChL,IAA5C,CAFF,CAHJ,CADK;AAAA;AAFT,KAbK,EA2BL;AACE8K,MAAAA,KAAK,EAAE,SADT;AAEEC,MAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,4BACL;AAAI,UAAA,KAAK,EAAEH,SAAX;AAAsB,UAAA,SAAS,EAAC;AAAhC,WACGG,CAAC,CAACC,OADL,CADK;AAAA;AAFT,KA3BK,EAmCL;AACEH,MAAAA,KAAK,EAAE,UADT;AAEEC,MAAAA,KAAK,EAAE,eAACC,CAAD;AAAA,4BACL;AAAI,UAAA,KAAK,EAAEH,SAAX;AAAsB,UAAA,SAAS,EAAC;AAAhC,WACGG,CAAC,CAACE,OADL,CADK;AAAA;AAFT,KAnCK,CAAP;AA4CD,GArHH;AAAA;;AAAA,SAwHEC,WAxHF,GAwHE,qBAAYlL,IAAZ,EAAkB;AAChBA,IAAAA,IAAI,CAACmL,MAAL,GAAcnL,IAAI,CAACoL,KAAnB;AACApL,IAAAA,IAAI,CAACqL,WAAL,GAAmBrL,IAAI,CAACsL,WAAxB;AACA,WAAOtL,IAAP;AACD,GA5HH;;AAAA,SA8HQyH,MA9HR,mBA8He1H,IA9Hf,EA8HqBgC,MA9HrB,EA8H6BwJ,SA9H7B,EA8HgDC,OA9HhD;AAAA,QA8H6BD,SA9H7B;AA8H6BA,MAAAA,SA9H7B,GA8HyC,KA9HzC;AAAA;;AAAA,QA8HgDC,OA9HhD;AA8HgDA,MAAAA,OA9HhD,GA8H0D,IA9H1D;AAAA;;AAAA,QA8HgE;AAAA,mBAS5C,IAT4C;;AAC5D,UAAIzL,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAACgK,KAAL,CAAW,CAAX,CAAP;AACD;;AACD,UAAIwB,SAAJ,EAAe;AACbxL,QAAAA,IAAI,GAAGuK,oBAAoB,CAACvK,IAAD,CAA3B;AACD;;AACD,UAAI0L,KAAK,GAAGD,OAAO,GAAG1J,aAAa,CAACC,MAAD,CAAhB,GAA2BA,MAA9C;AACA,UAAMnC,GAAG,GAAMG,IAAN,gBAAqB0L,KAA9B;AAR4D,6BAS5C,OAAKnH,IAAL,CAAUzD,GAAV,CAAcjB,GAAd,CAT4C,iBASxD8L,GATwD;AAAA,+BAU3CA,GAAG,CAACC,IAAJ,EAV2C,iBAUxD3L,IAVwD;AAW5D,iBAAO,OAAKkL,WAAL,CAAiBlL,IAAjB,CAAP;AAX4D;AAAA;AAY7D,KA1IH;AAAA;AAAA;AAAA;;AAAA,SA4IQ4L,MA5IR,mBA4Ie7L,IA5If,EA4IqB8L,WA5IrB;AAAA,QA4IkC;AAAA,mBAQjB,IARiB;;AAC9B,UAAI9L,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAACgK,KAAL,CAAW,CAAX,CAAP;AACD;;AACD,UAAI+B,KAAK,CAACC,OAAN,CAAcF,WAAd,CAAJ,EAAgC;AAC9BA,QAAAA,WAAW,CAACrK,IAAZ,CAAiB,GAAjB;AACD;;AACD,UAAM5B,GAAG,GAAMG,IAAN,4BAAiC8L,WAA1C;AAP8B,6BAQjB,OAAKvH,IAAL,CAAUzD,GAAV,CAAcjB,GAAd,CARiB;AAS/B,KArJH;AAAA;AAAA;AAAA;;AAAA,SAuJQoM,YAvJR,yBAuJqBjM,IAvJrB,EAuJ2BC,IAvJ3B;AAAA,QAuJiC;AAAA,oBAChB,IADgB;;AAAA,6BAChB,QAAKsE,IAAL,CAAU9D,IAAV,CAAeT,IAAf,EAAqBC,IAArB,CADgB;AAE9B,KAzJH;AAAA;AAAA;AAAA;;AAAA,SA2JEiM,SA3JF,GA2JE,mBAAUlM,IAAV,EAAgB;AACd,QAAIH,GAAG,GAAGG,IAAI,CAACqE,KAAL,CAAW,GAAX,EAAgB2F,KAAhB,CAAsB,CAAtB,CAAV;AACA,gBAAUnK,GAAG,CAAC4B,IAAJ,CAAS,GAAT,CAAV;AACD,GA9JH;;AAAA,SAgKQN,MAhKR,oBAgKenB,IAhKf,EAgKqBC,IAhKrB;AAAA,QAgK2B;AAAA,oBACG,IADH;;AACvBkM,MAAAA,OAAO,CAACC,GAAR,CAAY,MAAZ,EAAoBpM,IAApB,EAA0B,QAAKkM,SAAL,CAAelM,IAAf,CAA1B;AADuB,6BAEV,QAAKuE,IAAL,CAAUpD,MAAV,CAAiB,QAAK+K,SAAL,CAAelM,IAAf,CAAjB,EAAuCC,IAAvC,CAFU;AAGxB,KAnKH;AAAA;AAAA;AAAA;;AAAA,SAqKQoM,MArKR,mBAqKerM,IArKf,EAqKqBC,IArKrB;AAAA,QAqK2B;AAAA,oBAIV,IAJU;;AACvB,UAAID,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AAHsB,6BAIV,QAAKxF,IAAL,CAAU9D,IAAV,CAAeT,IAAf,EAAqBC,IAArB,CAJU;AAKxB,KA1KH;AAAA;AAAA;AAAA;;AAAA,SA4KQQ,IA5KR,iBA4KaT,IA5Kb,EA4KmBC,IA5KnB;AAAA,QA4KyB;AAAA,oBACR,IADQ;;AAAA,6BACR,QAAKoM,MAAL,CAAYrM,IAAZ,EAAkBC,IAAlB,CADQ;AAEtB,KA9KH;AAAA;AAAA;AAAA;;AAAA,SAgLQe,KAhLR,kBAgLchB,IAhLd,EAgLoBC,IAhLpB;AAAA,QAgL0B;AAAA,oBAIT,IAJS;;AACtB,UAAID,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AAHqB,6BAIT,QAAKxF,IAAL,CAAUvD,KAAV,CAAgBhB,IAAhB,EAAsBC,IAAtB,CAJS;AAKvB,KArLH;AAAA;AAAA;AAAA;;AAAA,SAuLQgB,MAvLR,mBAuLejB,IAvLf,EAuLqBsM,IAvLrB;AAAA,QAuL2B;AAAA,oBAIV,IAJU;;AACvB,UAAItM,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AAHsB,6BAIV,QAAKxF,IAAL,CAAUtD,MAAV,CAAiBjB,IAAjB,EAAuBsM,IAAvB,CAJU;AAKxB,KA5LH;AAAA;AAAA;AAAA;;AAAA,SA8LQC,QA9LR,qBA8LiBvM,IA9LjB;AAAA,QA8LuB;AAAA,oBAIN,IAJM;;AACnB,UAAIA,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AAHkB,6BAIN,QAAKxF,IAAL,CAAUzD,GAAV,CAAcd,IAAd,CAJM;AAKpB,KAnMH;AAAA;AAAA;AAAA;;AAAA,SAqMQwM,aArMR,0BAqMsBxM,IArMtB,EAqM4ByE,IArM5B;AAAA,QAqMkC;AAAA,oBAIV,IAJU;;AAAA;AAO9B,eAAOiF,YAAY,CAACjF,IAAD,CAAnB;AAP8B;;AAAA;AAAA,YAC1B,CAACiF,YAAY,CAACjF,IAAD,CADa;AAE5B,cAAI5E,GAAG,GAAG0K,oBAAoB,CAACvK,IAAD,CAA9B,CAF4B;;AAAA,iCAIV,QAAKuE,IAAL,CAAUzD,GAAV,CAAiBjB,GAAjB,eAA8B4E,IAA9B,CAJU,iBAItBkH,GAJsB;AAAA,mCAKDA,GAAG,CAACC,IAAJ,EALC;AAK5BlC,cAAAA,YAAY,CAACjF,IAAD,CAAZ;AAL4B;AAAA;AAAA;AAAA;;AAAA;AAQ/B,KA7MH;AAAA;AAAA;AAAA;;AAAA,SA+MQgI,SA/MR,sBA+MkBzM,IA/MlB;AAAA,QA+MwB;AAAA,oBACP,IADO;;AAAA,6BACP,QAAKuE,IAAL,CAAUzD,GAAV,CAAiBd,IAAjB,aADO;AAErB,KAjNH;AAAA;AAAA;AAAA;;AAAA,SAmNQ0M,YAnNR,yBAmNqB1M,IAnNrB,EAmN2BoC,GAnN3B;AAAA,QAmNgC;AAAA,oBACf,IADe;;AAAA,6BACf,QAAKmC,IAAL,CAAU9D,IAAV,CAAkBT,IAAlB,cAAiC;AAAEoI,QAAAA,EAAE,EAAEhG;AAAN,OAAjC,CADe;AAE7B,KArNH;AAAA;AAAA;AAAA;;AAAA,SAuNQuK,WAvNR,wBAuNoB3M,IAvNpB,EAuN0BoC,GAvN1B;AAAA,QAuN+B;AAAA,oBACd,IADc;;AAAA,6BACd,QAAKmC,IAAL,CAAUpD,MAAV,CAAoBnB,IAApB,cAAmC;AAAEoI,QAAAA,EAAE,EAAEhG;AAAN,OAAnC,CADc;AAE5B,KAzNH;AAAA;AAAA;AAAA;;AAAA,SA2NQwK,SA3NR,sBA2NkB5M,IA3NlB;AAAA,QA2NwB;AAAA,oBAEP,IAFO;;AACpB,UAAM6M,QAAQ,GAAMtC,oBAAoB,CAACvK,IAAD,CAA1B,YAAd;AADoB,6BAEP,QAAKuE,IAAL,CAAUzD,GAAV,CAAc+L,QAAd,CAFO;AAGrB,KA9NH;AAAA;AAAA;AAAA;;AAAA,SAgOQC,QAhOR,qBAgOiB9M,IAhOjB;AAAA,QAgOuB;AAAA,oBAEN,IAFM;;AACnB,UAAM6M,QAAQ,GAAMtC,oBAAoB,CAACvK,IAAD,CAA1B,WAAd;AADmB,6BAEN,QAAKuE,IAAL,CAAUzD,GAAV,CAAc+L,QAAd,CAFM;AAGpB,KAnOH;AAAA;AAAA;AAAA;;AAAA,SAqOQE,aArOR,0BAqOsB/M,IArOtB;AAAA,QAqO4B;AAAA,oBACT,IADS;;AACxB,UAAMgN,MAAM,GAAG,QAAKJ,SAAL,CAAe5M,IAAf,CAAf;;AACA,UAAMiN,KAAK,GAAG,QAAKH,QAAL,CAAc9M,IAAd,CAAd;;AAFwB,6BAGA6D,OAAO,CAACqJ,GAAR,CAAY,CAACF,MAAD,EAASC,KAAT,CAAZ,CAHA;AAAA,YAGjBE,EAHiB;AAAA,YAGbC,GAHa;;AAAA;AAAA;AAKxB,mBAAO;AACLJ,cAAAA,MAAM,UADD;AAELC,cAAAA,KAAK;AAFA,aAAP;AALwB;;AAAA,wBAOfG,GAAG,CAACC,EAPW;AAAA,2CAOAD,GAAG,CAACxB,IAAJ,EAPA,wBAOa,EAPb;AAAA;;AAAA,qBAMduB,EAAE,CAACE,EANW;AAAA,wCAMAF,EAAE,CAACvB,IAAH,EANA,wBAMY,EANZ;AAAA;AASzB,KA9OH;AAAA;AAAA;AAAA;;AAAA,SAgPQ0B,QAhPR,qBAgPiBtN,IAhPjB;AAAA,QAgPuB;AAAA,oBAEN,IAFM;;AACnB,UAAM6M,QAAQ,GAAMtC,oBAAoB,CAACvK,IAAD,CAA1B,qBAAd;AADmB,6BAEN,QAAKuE,IAAL,CAAUzD,GAAV,CAAc+L,QAAd,CAFM;AAGpB,KAnPH;AAAA;AAAA;AAAA;;AAAA,SAqPQU,iBArPR,8BAqP0BvN,IArP1B;AAAA,QAqPgC;AAAA,oBAQV,IARU;;AAC5B;AACA,UAAIA,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAACgK,KAAL,CAAW,CAAX,CAAP;AACD;;AACD,UAAI,CAAChK,IAAI,CAACyK,QAAL,CAAc,GAAd,CAAL,EAAyB;AACvBzK,QAAAA,IAAI,GAAMA,IAAN,MAAJ;AACD;;AAP2B,6BAQV,QAAKuE,IAAL,CAAUzD,GAAV,CAAcd,IAAI,GAAG,kBAArB,CARU,iBAQtBwN,GARsB;AAAA,+BASTA,GAAG,CAAC5B,IAAJ,EATS,iBAStB6B,IATsB;AAU5B,cAAM3B,WAAW,GAAGC,KAAK,CAACzI,IAAN,CAAW,IAAIoK,GAAJ,CAAQC,kBAAkB,CAACF,IAAD,CAA1B,CAAX,CAApB;AACA,iBAAO3B,WAAP;AAX4B;AAAA;AAY7B,KAjQH;AAAA;AAAA;AAAA;;AAAA,SAmQQ8B,QAnQR,qBAmQiB5N,IAnQjB;AAAA,QAmQuB;AAAA,oBAKG,IALH;;AAAA;AAanB,eAAOyJ,UAAU,CAACzJ,IAAD,CAAjB;AAbmB;;AACnB,UAAIA,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,QAAAA,IAAI,GAAGA,IAAI,CAACgK,KAAL,CAAW,CAAX,CAAP;AACD;;AAHkB;AAAA,YAIf,CAACP,UAAU,CAACzJ,IAAD,CAJI;AAAA,iCAKG,QAAKuE,IAAL,CAAUzD,GAAV,CAAcd,IAAI,GAAG,gBAArB,CALH,iBAKX6N,KALW;AAAA;AAAA,kBAMbA,KAAK,CAACC,MAAN,KAAiB,GAAjB,IAAwBD,KAAK,CAACC,MAAN,KAAiB,GAN5B;AAOfrE,gBAAAA,UAAU,CAACzJ,IAAD,CAAV,GAAmB,EAAnB;AAPe;AAAA,uCASG6N,KAAK,CAACjC,IAAN,EATH,iBASTD,GATS;AAUflC,kBAAAA,UAAU,CAACzJ,IAAD,CAAV,GAAmB2L,GAAnB;AAVe;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAcpB,KAjRH;AAAA;AAAA;AAAA;;AAAA;AAAA;AAoRO,SAASoC,SAAT,CAAmBlO,GAAnB,EAAwBC,IAAxB,EAA8B8J,WAA9B,EAAmD;AAAA,MAArBA,WAAqB;AAArBA,IAAAA,WAAqB,GAAP,KAAO;AAAA;;AACxD,SAAO,IAAID,gBAAJ,CAAqB,IAAI/J,UAAJ,CAAeC,GAAf,EAAoBC,IAApB,CAArB,EAAgD8J,WAAhD,CAAP;AACD;IAEYW,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACvK,IAAD,EAAU;AAC5C,MAAIA,IAAI,CAAC8J,UAAL,CAAgB,GAAhB,CAAJ,EAA0B;AACxB9J,IAAAA,IAAI,GAAGA,IAAI,CAAC+J,SAAL,CAAe,CAAf,CAAP;AACD;;AACD,MAAIiE,KAAK,GAAGhO,IAAI,CAACqE,KAAL,CAAW,GAAX,CAAZ;AACA,SAAU2J,KAAK,CAAC,CAAD,CAAf,SAAsBA,KAAK,CAAC,CAAD,CAA3B;AACD;IAEYC,eAAe,YAAfA,eAAe,CAAU3B,IAAV;AAAA,MAAmB;AAC7C,2BAAO,IAAIzI,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,UAAMoK,MAAM,GAAG,IAAIC,UAAJ,EAAf;AACAD,MAAAA,MAAM,CAACE,iBAAP,CAAyB9B,IAAzB;;AACA4B,MAAAA,MAAM,CAACG,SAAP,GAAmB,UAAC5H,CAAD,EAAO;AACxB,YAAM6H,QAAQ,GAAG7H,CAAC,CAAC8H,MAAF,CAASpH,MAA1B;AACArD,QAAAA,OAAO,CAAC;AACN5C,UAAAA,QAAQ,EAAEoL,IAAI,CAAC7H,IAAL,CAAU+J,SAAV,CAAoB,KAApB,EAA2BpL,OAA3B,CAAmC,kBAAnC,EAAuD,EAAvD,CADJ;AAENnD,UAAAA,IAAI,EAAEqO,QAFA;AAGN,0BAAgBhC,IAAI,CAACrF;AAHf,SAAD,CAAP;AAKD,OAPD;AAQD,KAXM,CAAP;AAYD,GAb2B;AAAA;AAAA;AAAA;;AAe5B,IAAM0G,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC1N,IAAD,EAAU;AACnC,MAAIkH,MAAM,GAAG,EAAb;;AACA,MAAI,OAAOlH,IAAP,KAAgB,QAApB,EAA8B,CAA9B,MACO,IAAI,CAAC8L,KAAK,CAACC,OAAN,CAAc/L,IAAd,CAAD,IAAwBA,IAAI,CAACwO,UAAjC,EAA6C;AAClDtH,IAAAA,MAAM,GAAGA,MAAM,CAACuH,MAAP,CAAc,CAACzO,IAAI,CAACwO,UAAN,CAAd,CAAT;AACD,GAFM,MAEA,IAAI,CAAC1C,KAAK,CAACC,OAAN,CAAc/L,IAAd,CAAL,EAA0B;AAC/BgC,IAAAA,MAAM,CAACC,IAAP,CAAYjC,IAAZ,EAAkBkC,GAAlB,CACE,UAACC,GAAD;AAAA,aAAU+E,MAAM,GAAGA,MAAM,CAACuH,MAAP,CAAcf,kBAAkB,CAAC1N,IAAI,CAACmC,GAAD,CAAL,CAAhC,CAAnB;AAAA,KADF;AAGD,GAJM,MAIA,IAAI2J,KAAK,CAACC,OAAN,CAAc/L,IAAd,CAAJ,EAAyB;AAC9BA,IAAAA,IAAI,CAACkC,GAAL,CAAS,UAAC8C,IAAD;AAAA,aAAWkC,MAAM,GAAGA,MAAM,CAACuH,MAAP,CAAcf,kBAAkB,CAAC1I,IAAD,CAAhC,CAApB;AAAA,KAAT;AACD;;AACD,SAAOkC,MAAP;AACD,CAbD;;ICrTawH,WAAW,GAAGC,aAAa,CAAC,EAAD;IAE3BC,aAAa,GAAGD,aAAa,CAAC,EAAD;IAE7BE,gBAAgB,GAAGF,aAAa,CAAC,EAAD;;IAEvCG;AACJ,2BAAiC;AAAA,QAAnBC,KAAmB,QAAnBA,KAAmB;AAAA,QAATlH,KAAS;;AAC/B7F,IAAAA,MAAM,CAACgN,MAAP,CAAc,IAAd,EAAoBnH,KAApB;AACA,QAAI,OAAOkH,KAAP,KAAiB,UAArB,EAAiC,KAAKA,KAAL,GAAaA,KAAb;AAClC;;;;SAEDE,UAAA,wBAAsC;AAAA,mCAAJ,EAAI;AAAA,kCAA5BC,WAA4B;AAAA,QAA5BA,WAA4B,kCAAd,KAAc;;AACpC,SAAKC,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE,SAAR;AAAmBoI,MAAAA,OAAO,EAAE;AAAEF,QAAAA,WAAW,EAAXA;AAAF;AAA5B,KAAd;AACD;;SAkBD/H,QAAA,eAAMnH,IAAN,EAAY;AACV;AACA,SAAKmP,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE,OAAR;AAAiBoI,MAAAA,OAAO,EAAEpP;AAA1B,KAAd;AACD;;SAED+O,QAAA,eAAMM,OAAN,EAAerI,IAAf,EAAqB;AACnB,SAAKmI,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE,WAAR;AAAqBoI,MAAAA,OAAO,EAAE;AAAEL,QAAAA,KAAK,EAAE;AAAEM,UAAAA,OAAO,EAAPA,OAAF;AAAWrI,UAAAA,IAAI,EAAJA;AAAX;AAAT;AAA9B,KAAd;AACAxE,IAAAA,MAAM,CAAC8M,QAAP,CAAgB;AAAEC,MAAAA,GAAG,EAAE,CAAP;AAAUC,MAAAA,IAAI,EAAE,CAAhB;AAAmBC,MAAAA,QAAQ,EAAE;AAA7B,KAAhB;AACD;;SAEDC,aAAA,sBAAa;AACX,SAAKP,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE;AAAR,KAAd;AACD;;SAED2I,WAAA,kBAASC,MAAT,EAAiB7N,MAAjB,EAAyB;AACvB,SAAKoN,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE,YAAR;AAAsBoI,MAAAA,OAAO,EAAE;AAAEQ,QAAAA,MAAM,EAANA,MAAF;AAAU7N,QAAAA,MAAM,EAANA;AAAV;AAA/B,KAAd;AACD;;SAED8N,eAAA,wBAAe;AACb,SAAKV,QAAL,CAAc;AAAEnI,MAAAA,IAAI,EAAE;AAAR,KAAd;AACD;;SAED8I,UAAA,iBAAQtB,UAAR,EAAoB;AAClB,WAAO,KAAKuB,KAAL,CAAWlE,WAAX,CAAuB2C,UAAvB,MAAuC,IAA9C;AACD;;SAEDwB,aAAA,oBAAWC,IAAX,EAAiBC,eAAjB,EAAkC;AAAA;;AAChC,QAAMhJ,MAAM,GAAG,EAAf;AACAlF,IAAAA,MAAM,CAACC,IAAP,CAAYgO,IAAZ,EAAkBtK,OAAlB,CAA0B,UAACX,IAAD,EAAU;AAClC,UAAMmL,IAAI,GAAGD,eAAe,CAAClL,IAAD,CAA5B;;AACA,UAAImL,IAAI,IAAI,KAAI,CAACL,OAAL,CAAaK,IAAb,CAAZ,EAAgC;AAC9BjJ,QAAAA,MAAM,CAAClC,IAAD,CAAN,GAAeiL,IAAI,CAACjL,IAAD,CAAnB;AACD,OAFD,MAEO,IAAI,CAACmL,IAAL,EAAW;AAChBjJ,QAAAA,MAAM,CAAClC,IAAD,CAAN,GAAeiL,IAAI,CAACjL,IAAD,CAAnB;AACD;AACF,KAPD;AAQA,WAAOkC,MAAP;AACD;;;;wBArDU;AACT,aAAO,KAAK6I,KAAL,CAAWhQ,IAAlB;AACD;;;wBAEgB;AACf,aAAO,KAAKgQ,KAAL,CAAWhQ,IAAX,CAAgBgK,KAAhB,CAAsB,CAAtB,CAAP;AACD;;;wBAEa;AACZ,aAAO,KAAKgG,KAAL,CAAWK,OAAlB;AACD;;;wBAEmB;AAClB,aAAO9F,oBAAoB,CAAC,KAAKvK,IAAN,CAA3B;AACD;;;;;;AA0CI,SAASsQ,iBAAT,QAAmD;AAAA,MAAtBvL,QAAsB,SAAtBA,QAAsB;AAAA,MAAT+C,KAAS;;AACxD,sBACE,oBAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAE,IAAIiH,SAAJ,CAAcjH,KAAd;AAAlC,KACG/C,QADH,CADF;AAKD;AAEM,SAASwL,YAAT,GAAwB;AAC7B,SAAOC,KAAK,CAACC,UAAN,CAAiB3B,gBAAjB,CAAP;AACD;AAEM,SAAS4B,cAAT,QAA8C;AAAA,MAApB3L,QAAoB,SAApBA,QAAoB;AAAA,MAAV4L,MAAU,SAAVA,MAAU;AACnD,sBACE,oBAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEA;AAA/B,KAAwC5L,QAAxC,CADF;AAGD;AAEM,SAAS6L,mBAAT,GAA+B;AACpC,SAAOJ,KAAK,CAACC,UAAN,CAAiB5B,aAAjB,CAAP;AACD;;AC7FD,IAAMlN,MAAI,GAAG,SAAPA,IAAO,GAAM,EAAnB;;IAEakP,MAAM,GAAG,SAATA,MAAS,OAShB;AAAA;;AAAA,MARJ9L,QAQI,QARJA,QAQI;AAAA,4BAPJb,SAOI;AAAA,MAPJA,SAOI,+BAPQ,YAOR;AAAA,MANJY,OAMI,QANJA,OAMI;AAAA,uBALJmC,IAKI;AAAA,MALJA,IAKI,0BALG,QAKH;AAAA,0BAJJ6J,OAII;AAAA,MAJJA,OAII,6BAJM,KAIN;AAAA,2BAHJC,QAGI;AAAA,MAHJA,QAGI,8BAHO,KAGP;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADDzM,IACC;;AACJ,MAAI0M,GAAG,GAAG,aAAGvC,MAAH,eAAU,QAAV,SAAuBxK,SAAS,CAACG,KAAV,CAAgB,GAAhB,CAAvB,EAAV;;AACA,MAAIyM,OAAJ,EAAaG,GAAG,GAAGA,GAAG,CAACvC,MAAJ,CAAW,YAAX,CAAN;AACb,MAAIqC,QAAJ,EAAcjM,OAAO,GAAGnD,MAAV;AAEd,sBACE;AAAG,IAAA,SAAS,EAAC;AAAb,kBACE;AACE,IAAA,IAAI,EAAEsF,IADR;AAEE,IAAA,SAAS,EAAE5F,UAAU,CAAC4P,GAAD,CAFvB;AAGE,IAAA,OAAO,EAAEnM,OAHX;AAIE,IAAA,QAAQ,EAAEiM;AAJZ,KAKMxM,IALN;AAME,iBAAWyM;AANb,MAQGjM,QARH,CADF,CADF;AAcD;;AC7BM,SAASmM,KAAT,CAAepJ,KAAf,EAAsB;AAAA,MACnBqJ,QADmB,GACerJ,KADf,CACnBqJ,QADmB;AAAA,MACTC,SADS,GACetJ,KADf,CACTsJ,SADS;AAAA,MACErM,QADF,GACe+C,KADf,CACE/C,QADF;;AAAA,mBAERsM,SAAS,EAFD;AAAA,MAEnBC,MAFmB,cAEnBA,MAFmB;;AAI3B,MAAML,GAAG,GAAG,YAAYE,QAAQ,GAAG,YAAH,GAAkB,EAAtC,IAA4CrJ,KAAK,CAAC5D,SAA9D;AACA,sBACE,oBAAC,MAAD,qBACE;AAAK,IAAA,SAAS,EAAE+M;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAC,kBAAf;AAAkC,IAAA,OAAO,EAAE;AAAA,aAAMG,SAAS,CAAC,KAAD,CAAf;AAAA;AAA3C,IADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsBrM,QAAtB,CADF,CAFF,eAKE;AACE,IAAA,SAAS,EAAC,sBADZ;AAEE,kBAAW,OAFb;AAGE,IAAA,OAAO,EAAE;AAAA,aAAMqM,SAAS,CAAC,KAAD,CAAf;AAAA;AAHX,IALF,CADF,CADF;AAeD;AAEM,SAASG,OAAT,OAA4D;AAAA,MAAzCjC,OAAyC,QAAzCA,OAAyC;AAAA,MAAhCkC,QAAgC,QAAhCA,QAAgC;AAAA,MAAtBC,SAAsB,QAAtBA,SAAsB;AAAA,MAAXX,OAAW,QAAXA,OAAW;;AACjE,MAAMM,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAMI,QAAQ,EAAd;AAAA,GAAlB;;AACA,sBACE,oBAAC,KAAD;AAAO,IAAA,QAAQ,MAAf;AAAgB,IAAA,SAAS,EAAEJ,SAA3B;AAAsC,IAAA,SAAS,EAAC;AAAhD,kBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAI,IAAA,SAAS,EAAC;AAAd,KAAiC9B,OAAO,IAAI,eAA5C,CADF,eAEE;AAAK,IAAA,SAAS,EAAC,OAAf;AAAuB,IAAA,KAAK,EAAE;AAAEoC,MAAAA,SAAS,EAAE;AAAb;AAA9B,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAQ,IAAA,SAAS,EAAC,kBAAlB;AAAqC,IAAA,OAAO,EAAE;AAAA,aAAMF,QAAQ,EAAd;AAAA;AAA9C,cADF,2BAKE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEV,OADX;AAEE,IAAA,SAAS,EAAC,YAFZ;AAGE,IAAA,OAAO,EAAE;AAAA,aAAMW,SAAS,EAAf;AAAA,KAHX;AAIE,IAAA,QAAQ,EAAC;AAJX,eALF,CAFF,CAFF,CADF,CADF;AAwBD;;AAGM,SAASE,QAAT,QAMJ;AAAA,MALDC,KAKC,SALDA,KAKC;AAAA,MAJDC,WAIC,SAJDA,WAIC;AAAA,MAHD9M,QAGC,SAHDA,QAGC;AAAA,MAFD0M,SAEC,SAFDA,SAEC;AAAA,MADDD,QACC,SADDA,QACC;AACD,sBACE,oBAAC,KAAD;AAAO,IAAA,QAAQ,MAAf;AAAgB,IAAA,SAAS,EAAEA;AAA3B,kBACE,gCAAKI,KAAL,CADF,eAEE;AACE,IAAA,QAAQ,EAAE,kBAACnL,CAAD,EAAO;AACfA,MAAAA,CAAC,CAAC0B,cAAF;AACAsJ,MAAAA,SAAS,CAAChL,CAAC,CAAC8H,MAAF,CAAS,CAAT,EAAYuD,KAAb,EAAoBrL,CAAC,CAAC8H,MAAtB,CAAT;AACD;AAJH,kBAME;AACE,IAAA,SAAS,EAAC,OADZ;AAEE,IAAA,WAAW,EAAC,0CAFd;AAGE,IAAA,KAAK,EAAE;AAAEwD,MAAAA,MAAM,EAAE;AAAV,KAHT;AAIE,IAAA,YAAY,EAAEF,WAJhB;AAKE,IAAA,IAAI,EAAC;AALP,IANF,EAaG9M,QAbH,eAcE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAQ,IAAA,IAAI,EAAC,QAAb;AAAsB,IAAA,SAAS,EAAC,kBAAhC;AAAmD,IAAA,OAAO,EAAEyM;AAA5D,cADF,2BAKE;AAAQ,IAAA,IAAI,EAAC,QAAb;AAAsB,IAAA,SAAS,EAAC;AAAhC,eALF,CAdF,CAFF,CADF;AA6BD;;ACzFc,SAASQ,WAAT,CAAqBC,YAArB,EAAmC;AAAA,kBAC3BjM,QAAQ,CAACiM,YAAD,CADmB;AAAA,MACzCjC,KADyC;AAAA,MAClClK,GADkC;;AAEhD,MAAMoM,QAAQ,GAAGrL,WAAW,CAC1B,UAAC7F,KAAD,EAAW;AACT8E,IAAAA,GAAG,CAAC,UAACqM,SAAD;AAAA,aACFlQ,MAAM,CAACgN,MAAP,CACE,EADF,EAEEkD,SAFF,EAGEnR,KAAK,YAAYoR,QAAjB,GAA4BpR,KAAK,CAACmR,SAAD,CAAjC,GAA+CnR,KAHjD,CADE;AAAA,KAAD,CAAH;AAOD,GATyB,EAU1B,CAAC8E,GAAD,CAV0B,CAA5B;AAaA,SAAO,CAACkK,KAAD,EAAQkC,QAAR,CAAP;AACD;;ACgiBM,SAASG,MAAT,CAAgB1R,IAAhB,EAAsB2R,OAAtB,EAA+B;AACrC,MAAI;AACH,QAAInL,MAAM,GAAGxG,IAAI,EAAjB;AACA,GAFD,CAEE,OAAM8F,CAAN,EAAS;AACV,WAAO6L,OAAO,CAAC7L,CAAD,CAAd;AACA;;AACD,MAAIU,MAAM,IAAIA,MAAM,CAACoL,IAArB,EAA2B;AAC1B,WAAOpL,MAAM,CAACoL,IAAP,CAAY,KAAK,CAAjB,EAAoBD,OAApB,CAAP;AACA;;AACD,SAAOnL,MAAP;AACA;;AAzjBD,IAAMqL,OAAO,GAAG;AACd1B,EAAAA,OAAO,EAAE1P,SADK;AAEdqR,EAAAA,OAAO,EAAE,KAFK;AAGdC,EAAAA,YAAY,EAAEtR,SAHA;AAId+F,EAAAA,MAAM,EAAE/F,SAJM;AAKduR,EAAAA,QAAQ,EAAEvR;AALI,CAAhB;;AAQA,IAAMwR,eAAe,GAAG,SAAlBA,eAAkB,CAACC,SAAD,EAAYC,YAAZ,EAA6B;AACnD,MAAID,SAAS,IAAIA,SAAS,CAACE,OAA3B,EAAoC;AAClC,WAAOF,SAAS,CAACE,OAAjB;AACD,GAFD,MAEO,IAAIF,SAAS,IAAIA,SAAS,CAACG,MAA3B,EAAmC;AACxC,WAAOH,SAAS,CAACG,MAAjB;AACD;;AACD,SAAOF,YAAP;AACD,CAPD;;AASA,IAAMG,eAAe,YAAfA,eAAe,CAAUtH,GAAV,EAAeuH,UAAf;AAAA,MAAeA,UAAf;AAAeA,IAAAA,UAAf,GAA4B,IAA5B;AAAA;;AAAA,MAAqC;AAAA;AAEtD,aAAO;AACLT,QAAAA,OAAO,EAAE,KADJ;AAEL3B,QAAAA,OAAO,EAAE,KAFJ;AAGL3J,QAAAA,MAAM,WAHD;AAILwL,QAAAA,QAAQ,EAAEhH;AAJL,OAAP;AAFsD;;AACxD,QAAIA,GAAG,CAACmC,MAAJ,GAAa,GAAjB,yBAIYoF,UAJZ,mBAI+BvH,GAAG,CAACC,IAAJ,EAJ/B,wBAI4CD,GAAG,CAACmC,MAJhD,+BAWwCnC,GAAG,CAACC,IAAJ,EAXxC;AAQE,aAAO;AACL6G,QAAAA,OAAO,EAAE,IADJ;AAEL3B,QAAAA,OAAO,EAAE,KAFJ;AAGL4B,QAAAA,YAAY,EAAEE,eAAe,aAAmBjH,GAAG,CAACmC,MAAvB,CAHxB;AAIL6E,QAAAA,QAAQ,EAAEhH;AAJL,OAAP;AARF;AAcD,GAfoB;AAAA;AAAA;AAAA,CAArB;;AAiBA,IAAM3K,KAAK,GAAG,SAARA,KAAQ,CAACkR,QAAD,EAAWiB,GAAX;AAAA,mBAA0BlT,IAA1B,EAAgC4M,QAAhC,EAA0ClM,IAA1C;AAAA,QAA0CA,IAA1C;AAA0CA,MAAAA,IAA1C,GAAiD,KAAjD;AAAA;;AAAA,QAA2D;AAAA;AAWvEuR,QAAAA,QAAQ,CAACkB,QAAD,CAAR;AACA,eAAOA,QAAP;AAZuE;;AACvElB,MAAAA,QAAQ,CAAC;AAAEpB,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAR;AACA,UAAIsC,QAAQ,GAAG,EAAf;;AAFuE,sCAGnE;AACF,YAAMpT,IAAI,GAAG6M,QAAQ,QAAMsG,GAAG,CAACnT,IAAV,GAAiB6M,QAAjB,GAA8BsG,GAAG,CAACnT,IAAvD;AADE,+BAEgBmT,GAAG,CAACxC,MAAJ,CAAW3P,KAAX,CAAiBhB,IAAjB,EAAuBC,IAAvB,CAFhB,iBAEI0L,GAFJ;AAAA,iCAGesH,eAAe,CAACtH,GAAD,EAAMhL,IAAN,CAH9B;AAGFyS,YAAAA,QAAQ,mBAAR;AAHE;AAAA;AAIH,OAPsE,YAO9D3M,CAP8D,EAO3D;AACV0F,QAAAA,OAAO,CAACkH,KAAR,CAAc,OAAd,EAAuB5M,CAAvB;AACA2M,QAAAA,QAAQ,GAAG;AAAEX,UAAAA,OAAO,EAAE,IAAX;AAAiBC,UAAAA,YAAY,EAAE;AAA/B,SAAX;AACD,OAVsE;;AAAA;AAaxE,KAba;AAAA;AAAA;AAAA;AAAA,CAAd;;AAeA,IAAMY,GAAG,GAAG,SAANA,GAAM,CAACpB,QAAD,EAAWiB,GAAX;AAAA,mBAA0BlT,IAA1B,EAAgC4M,QAAhC,EAA0ClM,IAA1C;AAAA,QAA0CA,IAA1C;AAA0CA,MAAAA,IAA1C,GAAiD,KAAjD;AAAA;;AAAA,QAA2D;AAAA;AAWrEuR,QAAAA,QAAQ,CAACkB,QAAD,CAAR;AACA,eAAOA,QAAP;AAZqE;;AACrElB,MAAAA,QAAQ,CAAC;AAAEpB,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAR;AACA,UAAIsC,QAAQ,GAAG,EAAf;;AAFqE,uCAGjE;AACF,YAAMpT,IAAI,GAAG6M,QAAQ,QAAMsG,GAAG,CAACnT,IAAV,GAAiB6M,QAAjB,GAA8BsG,GAAG,CAACnT,IAAvD;AADE,+BAEgBmT,GAAG,CAACxC,MAAJ,CAAWxP,MAAX,CAAkBnB,IAAlB,EAAwBC,IAAxB,CAFhB,iBAEI0L,GAFJ;AAAA,iCAGesH,eAAe,CAACtH,GAAD,EAAMhL,IAAN,CAH9B;AAGFyS,YAAAA,QAAQ,oBAAR;AAHE;AAAA;AAIH,OAPoE,YAO5D3M,CAP4D,EAOzD;AACV0F,QAAAA,OAAO,CAACkH,KAAR,CAAc,OAAd,EAAuB5M,CAAvB;AACA2M,QAAAA,QAAQ,GAAG;AAAEX,UAAAA,OAAO,EAAE,IAAX;AAAiBC,UAAAA,YAAY,EAAE;AAA/B,SAAX;AACD,OAVoE;;AAAA;AAatE,KAbW;AAAA;AAAA;AAAA;AAAA,CAAZ;;AAeA,IAAMjS,IAAI,GAAG,SAAPA,IAAO,CAACyR,QAAD,EAAWiB,GAAX;AAAA,mBAA0BlT,IAA1B,EAAgC4M,QAAhC,EAA0ClM,IAA1C;AAAA,QAA0CA,IAA1C;AAA0CA,MAAAA,IAA1C,GAAiD,IAAjD;AAAA;;AAAA,QAA0D;AAAA;AAWrEuR,QAAAA,QAAQ,CAACkB,QAAD,CAAR;AACA,eAAOA,QAAP;AAZqE;;AACrElB,MAAAA,QAAQ,CAAC;AAAEpB,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAR;AACA,UAAIsC,QAAQ,GAAG,EAAf;;AAFqE,uCAGjE;AACF,YAAMpT,IAAI,GAAG6M,QAAQ,QAAMsG,GAAG,CAACnT,IAAV,GAAiB6M,QAAjB,GAA8BsG,GAAG,CAACnT,IAAvD;AADE,+BAEgBmT,GAAG,CAACxC,MAAJ,CAAWlQ,IAAX,CAAgBT,IAAhB,EAAsBC,IAAtB,CAFhB,iBAEI0L,GAFJ;AAAA,iCAGesH,eAAe,CAACtH,GAAD,EAAMhL,IAAN,CAH9B;AAGFyS,YAAAA,QAAQ,oBAAR;AAHE;AAAA;AAIH,OAPoE,YAO5D3M,CAP4D,EAOzD;AACV0F,QAAAA,OAAO,CAACkH,KAAR,CAAc,OAAd,EAAuB5M,CAAvB;AACA2M,QAAAA,QAAQ,GAAG;AAAEX,UAAAA,OAAO,EAAE,IAAX;AAAiBC,UAAAA,YAAY,EAAE;AAA/B,SAAX;AACD,OAVoE;;AAAA;AAatE,KAbY;AAAA;AAAA;AAAA;AAAA,CAAb;;AAeA,IAAM5R,GAAG,GAAG,SAANA,GAAM,CAACoR,QAAD,EAAWiB,GAAX;AAAA,mBAA0BtG,QAA1B;AAAA,QAAuC;AACjDqF,MAAAA,QAAQ,CAAC;AAAEpB,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAR;AACA,UAAM9Q,IAAI,GAAG6M,QAAQ,QAAMsG,GAAG,CAACnT,IAAV,GAAiB6M,QAAjB,GAA8BsG,GAAG,CAACnT,IAAvD;AAFiD,6BAG/BmT,GAAG,CAACxC,MAAJ,CAAW7P,GAAX,CAAed,IAAf,CAH+B,iBAG3CwN,GAH2C;AAAA,+BAI9BA,GAAG,CAAC5B,IAAJ,EAJ8B,iBAI3C3L,IAJ2C;AAKjDiS,UAAAA,QAAQ,CAAC;AAAEpB,YAAAA,OAAO,EAAE,KAAX;AAAkB3J,YAAAA,MAAM,EAAElH,IAA1B;AAAgC0S,YAAAA,QAAQ,EAAEnF;AAA1C,WAAD,CAAR;AACA,iBAAOvN,IAAP;AANiD;AAAA;AAOlD,KAPW;AAAA;AAAA;AAAA;AAAA,CAAZ;;AASO,SAASsT,cAAT,GAA0B;AAC/B,MAAMJ,GAAG,GAAG5C,YAAY,EAAxB;;AAD+B,qBAELyB,WAAW,CAACQ,OAAD,CAFN;AAAA,MAExBxC,KAFwB;AAAA,MAEjBkC,QAFiB;;AAI/B,sBACKlC,KADL;AAEEmD,IAAAA,GAAG,EAAHA,GAFF;AAGEnS,IAAAA,KAAK,EAAEA,KAAK,CAACkR,QAAD,EAAWiB,GAAX,CAHd;AAIEG,IAAAA,GAAG,EAAEA,GAAG,CAACpB,QAAD,EAAWiB,GAAX,CAJV;AAKE1S,IAAAA,IAAI,EAAEA,IAAI,CAACyR,QAAD,EAAWiB,GAAX,CALZ;AAMErS,IAAAA,GAAG,EAAEA,GAAG,CAACoR,QAAD,EAAWiB,GAAX;AANV;AAQD;;AClGM,SAASK,OAAT,CAAiB1L,KAAjB,EAAwB;AAAA,MAYd2L,QAZc,YAYdA,QAZc,CAYLxT,IAZK;AAAA,QAYC;AAC5B,UAAMyT,IAAI,GAAGzR,MAAM,CAACgN,MAAP,CACX,EADW,EAEX;AAAE,iBAAShI;AAAX,OAFW,EAGXhH,IAAI,CAAC0T,QAAL,GAAgB1T,IAAI,CAAC0T,QAArB,GAAgC1T,IAHrB,CAAb;AAD4B,6BAOYQ,IAAI,CAACiT,IAAD,CAPhB;AAAA,YAOpBjB,OAPoB,QAOpBA,OAPoB;AAAA,YAOXC,YAPW,QAOXA,YAPW;;AAQ5B,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,CAAU,kBAAV,EAA8B,SAA9B;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AAEDS,QAAAA,GAAG,CAACrD,YAAJ;AACAqD,QAAAA,GAAG,CAACjE,OAAJ;AAf4B;AAgB7B,KA5B4B;AAAA;AAAA;AAAA;;AAC7B,MAAMiE,GAAG,GAAG5C,YAAY,EAAxB;;AAD6B,wBAEHgD,cAAc,EAFX;AAAA,MAErB9S,IAFqB,mBAErBA,IAFqB;AAAA,MAEfqQ,OAFe,mBAEfA,OAFe;;AAAA,MAGrB7J,IAHqB,GAGZa,KAHY,CAGrBb,IAHqB;AAAA,MAIrB2M,OAJqB,GAITT,GAAG,CAACU,QAJK,CAIrBD,OAJqB;AAM7B,MAAME,IAAI,GAAGF,OAAO,CAAC3M,IAAD,CAApB;;AAEA,MAAMmK,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB+B,IAAAA,GAAG,CAACrD,YAAJ;AACD,GAFD;;AAsBA,sBACE,oBAAC,KAAD;AAAO,IAAA,QAAQ,EAAE,IAAjB;AAAuB,IAAA,SAAS,EAAEsB;AAAlC,kBACE,oBAAC,IAAD;AACE,IAAA,OAAO,EAAEN,OADX;AAEE,IAAA,QAAQ,EAAE2C,QAFZ;AAGE,IAAA,OAAO,EAAE,iBAACM,GAAD;AAAA,aAAS5H,OAAO,CAACC,GAAR,CAAY2H,GAAZ,CAAT;AAAA,KAHX;AAIE,IAAA,UAAU,EAAE,SAAS9M,IAJvB;AAKE,IAAA,KAAK,EAAE,SAASA,IALlB;AAME,IAAA,IAAI,EAAEA,IANR;AAOE,IAAA,QAAQ,cAAYA,IAAZ;AAPV,IADF,CADF;AAaD;;IC9CY+M,WAAW,GAAG,CACzB,uBADyB,EAEzB,0BAFyB,EAGzB,wBAHyB,EAIzB,0BAJyB,EAKzB,0BALyB,EAMzB,2BANyB,EAOzB,8BAPyB,EAQzB,wBARyB,EASzB,6BATyB,EAUzB,8BAVyB,EAWzB,mCAXyB,EAYzB,+BAZyB,EAazB,yBAbyB,EAczB,yBAdyB;IAiBdC,MAAM,GAAG;AACpBC,EAAAA,aAAa,EAAE,CAAC,aAAD,EAAgB,cAAhB,CADK;AAEpBC,EAAAA,QAAQ,EAAE,EAFU;AAGpBC,EAAAA,YAAY,EAAE,GAHM;AAIpBJ,EAAAA,WAAW,EAAEA,WAJO;AAKpBK,EAAAA,YAAY,EAAE,WALM;;AAAA;AAQtB,IAAIC,UAAU,GAAGrS,MAAM,CAACgN,MAAP,CAAc,EAAd,EAAkBgF,MAAlB,CAAjB;;AAEA,IAAMM,SAAS,GAAG,SAAZA,SAAY,CAACC,UAAD,EAAatN,QAAb,EAA0B;AAC1C,MAAM3C,IAAI,GAAGtC,MAAM,CAACgN,MAAP,CAAc,EAAd,EAAkB/H,QAAlB,CAAb;AACAjF,EAAAA,MAAM,CAACC,IAAP,CAAYsS,UAAZ,EAAwB5O,OAAxB,CAAgC,UAACX,IAAD,EAAU;AACxC,QAAI,OAAOgP,MAAM,CAAChP,IAAD,CAAb,KAAwB,QAAxB,IAAoC8G,KAAK,CAACC,OAAN,CAAciI,MAAM,CAAChP,IAAD,CAApB,CAAxC,EAAqE;AACnEV,MAAAA,IAAI,CAACU,IAAD,CAAJ,GAAa,GAAGyJ,MAAH,CAAUuF,MAAM,CAAChP,IAAD,CAAhB,EAAwBuP,UAAU,CAACvP,IAAD,CAAlC,CAAb;AACD,KAFD,MAEO,IAAI,OAAOgP,MAAM,CAAChP,IAAD,CAAb,KAAwB,QAA5B,EAAsC;AAC3CV,MAAAA,IAAI,CAACU,IAAD,CAAJ,GAAahD,MAAM,CAACgN,MAAP,CAAc,EAAd,EAAkBgF,MAAM,CAAChP,IAAD,CAAxB,EAAgCuP,UAAU,CAACvP,IAAD,CAA1C,CAAb;AACD,KAFM,MAEA;AACLV,MAAAA,IAAI,CAACU,IAAD,CAAJ,GAAauP,UAAU,CAACvP,IAAD,CAAvB;AACD;AACF,GARD;AASA,SAAOV,IAAP;AACD,CAZD;;AAcO,SAASkQ,SAAT,CAAmBC,GAAnB,EAAwB;AAC7B,MAAMC,GAAG,GAAGnE,KAAK,CAACpK,MAAN,EAAZ;;AACA,MAAIsO,GAAG,IAAI,CAACC,GAAG,CAAC/S,OAAhB,EAAyB;AACvBuK,IAAAA,OAAO,CAACC,GAAR,CAAY,KAAZ,EAAmBsI,GAAnB;AACAJ,IAAAA,UAAU,GAAGC,SAAS,CAACG,GAAD,EAAMJ,UAAN,CAAtB;AACAK,IAAAA,GAAG,CAAC/S,OAAJ,GAAc0S,UAAd;AACD,GAN4B;AAS7B;AACA;AACA;AACA;;;AACA,SAAOA,UAAP;AACD;;AClDD,IAAMM,KAAK,GAAG,SAARA,KAAQ,CAAC3P,IAAD,EAAU;AACtB,MAAIA,IAAI,CAAC,KAAD,CAAR,EAAiB;AACf,WAAOA,IAAI,CAAC,KAAD,CAAX;AACD;;AACD,SAAOA,IAAI,CAAC,eAAD,CAAX;AACD,CALD;;AAOO,SAAS4P,WAAT,CAAqB/M,KAArB,EAA4B;AAAA,MAWlBgN,WAXkB,YAWlBA,WAXkB;AAAA,QAWJ;AAC3B,UAAIC,MAAM,GAAG,EAAb;AACAC,MAAAA,UAAU,CAAC,IAAD,CAAV;AAEA,UAAMC,OAAO,GAAG5J,KAAK,CAAClJ,GAAN,WAAiB8C,IAAjB;AAAA,YAA0B;AACxCkH,UAAAA,OAAO,CAACC,GAAR,CAAYnH,IAAZ;AADwC,iCAEtBkO,GAAG,CAACxC,MAAJ,CAAWxP,MAAX,CAAkByT,KAAK,CAAC3P,IAAD,CAAvB,CAFsB,iBAElC0G,GAFkC;AAAA;AAAA,kBAGpC,CAACA,GAAG,CAAC0B,EAH+B;AAAA,uCAIpB1B,GAAG,CAACC,IAAJ,EAJoB,iBAIhCmI,GAJgC;AAKtCgB,kBAAAA,MAAM,CAACG,IAAP,CAAYnB,GAAZ;AALsC;AAAA;AAAA;;AAAA;AAAA;AAOzC,SAPe;AAAA;AAAA;AAAA,QAAhB,CAJ2B;AAa3B;;AACAkB,MAAAA,OAAO,CAACC,IAAR,CAAavR,KAAK,CAAC+Q,GAAG,CAACN,YAAL,CAAlB;AAd2B,6BAgBrBvQ,OAAO,CAACqJ,GAAR,CAAY+H,OAAZ,CAhBqB;AAkB3B,YAAIF,MAAM,CAACnS,MAAP,KAAkB,CAAtB,EAAyB;AACvBuQ,UAAAA,GAAG,CAACnE,KAAJ,mBAA4B,SAA5B;AACAmE,UAAAA,GAAG,CAACjE,OAAJ;AACD,SAHD,MAGO;AACL,cAAMiG,QAAQ,GAAGJ,MAAM,CAAC5S,GAAP,CAAW,UAAC4R,GAAD;AAAA,mBAASnT,IAAI,CAACC,SAAL,CAAekT,GAAf,CAAT;AAAA,WAAX,EAAyCtS,IAAzC,CAA8C,IAA9C,CAAjB;AACA0R,UAAAA,GAAG,CAACnE,KAAJ,6BAAoCmG,QAApC,EAAgD,QAAhD;AACD;;AACDH,QAAAA,UAAU,CAAC,KAAD,CAAV;AACA7B,QAAAA,GAAG,CAACrD,YAAJ;AA1B2B;AA2B5B,KAtCgC;AAAA;AAAA;AAAA;;AACjC,MAAMqD,GAAG,GAAG5C,YAAY,EAAxB;AACA,MAAMmE,GAAG,GAAGD,SAAS,EAArB;;AAFiC,wBAGHjE,KAAK,CAACxK,QAAN,CAAe,KAAf,CAHG;AAAA,MAG1B8K,OAH0B;AAAA,MAGjBkE,UAHiB;;AAAA,qBAIVlN,KAJU,CAIzBuD,KAJyB;AAAA,MAIzBA,KAJyB,6BAIjB,EAJiB;AAKjC,MAAM+J,IAAI,GAAG/J,KAAK,CAACA,KAAK,CAACzI,MAAN,GAAe,CAAhB,CAAL,CAAwB,OAAxB,CAAb;AACA,MAAMyS,UAAU,GAAGhK,KAAK,CACrBlJ,GADgB,CACZ,UAAC8C,IAAD;AAAA,WAAUA,IAAI,CAAC,OAAD,CAAd;AAAA,GADY,EAEhBxD,IAFgB,CAEX,IAFW,EAGhB2B,OAHgB,QAGHgS,IAHG,YAGaA,IAHb,CAAnB;AAkCA,sBACE,oBAAC,OAAD;AACE,IAAA,OAAO,EAAEtE,OADX;AAEE,IAAA,QAAQ,EAAE;AAAA,aAAMqC,GAAG,CAACrD,YAAJ,EAAN;AAAA,KAFZ;AAGE,IAAA,SAAS,EAAEgF,WAHb;AAIE,IAAA,OAAO,+BAA6BO,UAA7B;AAJT,IADF;AAQD;;IC3DYC,QAAQ,GAAG,SAAXA,QAAW,OAgBlB;AAAA,MAfJlN,EAeI,QAfJA,EAeI;AAAA,MAdJlE,SAcI,QAdJA,SAcI;AAAA,MAbJqR,cAaI,QAbJA,cAaI;AAAA,MAZJzE,OAYI,QAZJA,OAYI;AAAA,MAXJC,QAWI,QAXJA,QAWI;AAAA,gCAVJyE,aAUI;AAAA,MAVJA,aAUI,mCAVY,KAUZ;AAAA,wBATJ1D,KASI;AAAA,MATJA,KASI,2BATI,KASJ;AAAA,MALJ/M,QAKI,QALJA,QAKI;AAAA,MAJJ0Q,WAII,QAJJA,WAII;AAAA,MAHJC,QAGI,QAHJA,QAGI;AAAA,MAFJ1E,QAEI,QAFJA,QAEI;AAAA,MADDzM,IACC;;AACJ,MAAMoR,QAAQ,GAAGvP,MAAM,CAAC,IAAD,CAAvB;;AADI,wBAEsBoK,KAAK,CAACxK,QAAN,CAAe8L,KAAf,CAFtB;AAAA,MAEG9B,KAFH;AAAA,MAEUkC,QAFV;;AAIJ7L,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIsP,QAAQ,CAAC/T,OAAb,EAAsB;AACpB+T,MAAAA,QAAQ,CAAC/T,OAAT,CAAiB4T,aAAjB,GAAiCA,aAAjC;AACD;AACF,GAJQ,EAIN,CAACA,aAAD,CAJM,CAAT;;AAMA,MAAMI,WAAW,GAAG,SAAdA,WAAc,CAACC,EAAD,EAAQ;AAC1B3D,IAAAA,QAAQ,CAAC2D,EAAE,CAACtH,MAAH,CAAUuH,OAAX,CAAR;AACAJ,IAAAA,QAAQ,CAACG,EAAE,CAACtH,MAAH,CAAUuH,OAAX,CAAR;AACD,GAHD;;AAKA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,OAAO,EAAE1N,EAAhB;AAAoB,IAAA,SAAS,EAAE/G,UAAU,CAAC,CAAC,UAAD,EAAa6C,SAAb,CAAD;AAAzC,kBACE;AACE,IAAA,GAAG,EAAEyR,QADP;AAEE,IAAA,QAAQ,EAAE5E,QAAQ,IAAID,OAFxB;AAGE,IAAA,EAAE,EAAE1I,EAHN;AAIE,IAAA,IAAI,EAAC,UAJP;AAKE,IAAA,SAAS,EAAE/G,UAAU,CAAC,CAAC,UAAD,EAAakU,cAAb,CAAD,CALvB;AAME,IAAA,OAAO,EAAEvF,KANX;AAOE,IAAA,QAAQ,EAAE4F,WAPZ;AAQE,iBAAW5E;AARb,KASMzM,IATN,EADF,EAYGQ,QAAQ,IAAI0Q,WAZf,CADF,CADF;AAkBD;;AChDD,IAAMM,SAAS,GAAG,SAAZA,SAAY,OAAiC;AAAA,MAA9BhR,QAA8B,QAA9BA,QAA8B;AAAA,MAApBqD,EAAoB,QAApBA,EAAoB;AAAA,MAAhBlE,SAAgB,QAAhBA,SAAgB;AACjD,sBACE;AAAG,IAAA,SAAS,EAAE7C,UAAU,CAAC,CAAC,gBAAD,EAAmB6C,SAAnB,CAAD,CAAxB;AAAyD,IAAA,EAAE,EAAEkE;AAA7D,KACGrD,QADH,CADF;AAKD,CAND;;AAQAgR,SAAS,CAACC,SAAV,GAAsB;AACpBjR,EAAAA,QAAQ,EAAEkR,SAAS,CAACC,IADA;AAEpB9N,EAAAA,EAAE,EAAE6N,SAAS,CAACE,MAFM;AAGpBjS,EAAAA,SAAS,EAAE+R,SAAS,CAACE;AAHD,CAAtB;;ACVA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACtE,KAAD,EAAQuE,UAAR,EAAuB;AAC7C,MAAIC,UAAU,GAAGvK,KAAK,CAACC,OAAN,CAAcqK,UAAd,IAA4BA,UAA5B,GAAyC,CAACA,UAAD,CAA1D;AACA,MAAIlP,MAAM,GAAG,IAAb;AACAmP,EAAAA,UAAU,CAAC1Q,OAAX,CAAmB,UAAC2Q,IAAD,EAAU;AAC3B,QAAIA,IAAI,CAACzE,KAAD,CAAJ,KAAgB,KAApB,EAA2B;AACzB3K,MAAAA,MAAM,GAAG,KAAT;AACD;AACF,GAJD;AAKA,SAAOA,MAAP;AACD,CATD;;AAWA,IAAMqP,QAAQ,GAAG,SAAXA,QAAW,CAACd,QAAD,EAAW5D,KAAX,EAAkB2E,SAAlB,EAAgC;AAAA,wBACvBjG,KAAK,CAACxK,QAAN,CAAe;AAAE0Q,IAAAA,QAAQ,EAAE,KAAZ;AAAmB5E,IAAAA,KAAK,EAAEA;AAA1B,GAAf,CADuB;AAAA,MAC1C9B,KAD0C;AAAA,MACnCkC,QADmC;;AAG/C,MAAMyE,QAAQ,GAAG,SAAXA,QAAW,CAACd,EAAD,EAAQ;AACvB,QAAM/D,KAAK,GAAG+D,EAAE,IAAIA,EAAE,CAACtH,MAAT,GAAkBsH,EAAE,CAACtH,MAAH,CAAUuD,KAA5B,GAAoC+D,EAAE,GAAGA,EAAH,GAAQ,EAA5D;AACA3D,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,KAAK,EAALA,KAAF;AAAS4E,MAAAA,QAAQ,EAAE;AAAnB,KAAD,CAAR;AACA,QAAIhB,QAAJ,EAAcA,QAAQ,CAAC5D,KAAD,CAAR;AACf,GAJD;;AAMA,MAAM8E,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,QAAMF,QAAQ,GAAGN,eAAe,CAACpG,KAAK,CAAC8B,KAAP,EAAc2E,SAAd,CAAf,KAA4C,KAA7D;AACA,QAAIC,QAAJ,EAAcxE,QAAQ,CAAC;AAAEJ,MAAAA,KAAK,EAAE9B,KAAK,CAAC8B,KAAf;AAAsB4E,MAAAA,QAAQ,EAARA;AAAtB,KAAD,CAAR;AACf,GAHD;;AAKA,MAAMG,OAAO,GAAG,SAAVA,OAAU,GAAM;AACpB,QAAI7G,KAAK,CAAC0G,QAAV,EAAoB;AAClBxE,MAAAA,QAAQ,CAAC;AAAEJ,QAAAA,KAAK,EAAE9B,KAAK,CAAC8B,KAAf;AAAsB4E,QAAAA,QAAQ,EAAE;AAAhC,OAAD,CAAR;AACD;AACF,GAJD;;AAMAlG,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpB6L,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,KAAK,EAALA,KAAF;AAAS4E,MAAAA,QAAQ,EAAE;AAAnB,KAAD,CAAR;AACD,GAFD,EAEG,CAAC5E,KAAD,CAFH;AAIA,SAAO;AACL4D,IAAAA,QAAQ,EAAEiB,QADL;AAELE,IAAAA,OAAO,EAAPA,OAFK;AAGLD,IAAAA,MAAM,EAANA,MAHK;AAIL5G,IAAAA,KAAK,EAALA;AAJK,GAAP;AAMD,CA9BD;;ACbA;;AAEA;IACa8G,WAAW,GAAG;IACdC,SAAS,GAAG;IACZC,eAAe,GAAG;IAClBC,YAAY,GAAG;IAEfC,OAAO,GAAG,SAAVA,OAAU,CAACpF,KAAD;AAAA,MAACA,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,SAAgB,CAACA,KAAK,CAAClP,MAAvB;AAAA;IACVuU,SAAS,GAAG,SAAZA,SAAY,CAACrF,KAAD,EAAasF,KAAb;AAAA,MAACtF,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,MAAasF,KAAb;AAAaA,IAAAA,KAAb,GAAqB,CAArB;AAAA;;AAAA,SAA2BtF,KAAK,CAAClP,MAAN,IAAgBwU,KAA3C;AAAA;IACZC,SAAS,GAAG,SAAZA,SAAY,CAACvF,KAAD,EAAasF,KAAb;AAAA,MAACtF,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,MAAasF,KAAb;AAAaA,IAAAA,KAAb,GAAqB,CAArB;AAAA;;AAAA,SAA2BtF,KAAK,CAAClP,MAAN,IAAgBwU,KAA3C;AAAA;IACZE,OAAO,GAAG,SAAVA,OAAU,CAACxF,KAAD;AAAA,MAACA,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,SAAgBgF,WAAW,CAACS,IAAZ,CAAiBzF,KAAjB,CAAhB;AAAA;IACV0F,KAAK,GAAG,SAARA,KAAQ,CAAC1F,KAAD;AAAA,MAACA,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,SAAgBiF,SAAS,CAACQ,IAAV,CAAezF,KAAf,CAAhB;AAAA;IACR2F,UAAU,GAAG,SAAbA,UAAa,CAAC3F,KAAD;AAAA,MAACA,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,SAAgBkF,eAAe,CAACO,IAAhB,CAAqBzF,KAArB,CAAhB;AAAA;IACb4F,QAAQ,GAAG,SAAXA,QAAW,CAAC5F,KAAD;AAAA,MAACA,KAAD;AAACA,IAAAA,KAAD,GAAS,EAAT;AAAA;;AAAA,SAAgBmF,YAAY,CAACM,IAAb,CAAkBzF,KAAlB,CAAhB;AAAA;IACX6F,QAAQ,GAAG,SAAXA,QAAW,CAAC7F,KAAD;AAAA,SAAW,CAAC,CAACA,KAAK,CAAClP,MAAnB;AAAA;;ACPxB,IAAMjB,MAAI,GAAG,SAAPA,IAAO;AAAA,SAAM,IAAN;AAAA,CAAb;AAEA;;;IACaiW,KAAK,GAAGpH,KAAK,CAACqH,UAAN,CACnB,gBAwBElD,GAxBF,EAyBK;AAAA,MAvBD1Q,IAuBC,QAvBDA,IAuBC;AAAA,+BAtBD6T,YAsBC;AAAA,MAtBDA,YAsBC,kCAtBc,iBAsBd;AAAA,MArBDzE,KAqBC,QArBDA,KAqBC;AAAA,MApBD0E,kBAoBC,QApBDA,kBAoBC;AAAA,+BAnBDC,YAmBC;AAAA,MAnBDA,YAmBC,kCAnBc,KAmBd;AAAA,4BAlBD9T,SAkBC;AAAA,MAlBDA,SAkBC,+BAlBW,EAkBX;AAAA,yBAjBD+T,MAiBC;AAAA,MAjBDA,MAiBC,4BAjBQ,OAiBR;AAAA,uBAhBDhR,IAgBC;AAAA,MAhBDA,IAgBC,0BAhBM,MAgBN;AAAA,0BAbD6J,OAaC;AAAA,MAbDA,OAaC,6BAbS,KAaT;AAAA,2BAZDoH,QAYC;AAAA,MAZDA,QAYC,8BAZU,KAYV;AAAA,MAXD9P,EAWC,QAXDA,EAWC;AAAA,MAVDqN,WAUC,QAVDA,WAUC;AAAA,MATD3D,KASC,QATDA,KASC;AAAA,4BARDqG,SAQC;AAAA,MARDA,SAQC,+BARW,KAQX;AAAA,MAPDzC,QAOC,QAPDA,QAOC;AAAA,4BANDe,SAMC;AAAA,MANDA,SAMC,+BANW9U,MAMX;AAAA,MALD+Q,YAKC,QALDA,YAKC;AAAA,2BAJD1B,QAIC;AAAA,MAJDA,QAIC,8BAJU,WAIV;AAAA,MAHEzM,IAGF;;AACH,MAAI2T,QAAJ,EAAc;AACZzB,IAAAA,SAAS,GAAG1K,KAAK,CAACC,OAAN,CAAcyK,SAAd,IACRA,SAAS,CAACvB,IAAV,CAAeyC,QAAf,CADQ,GAER,CAAClB,SAAD,EAAYkB,QAAZ,CAFJ;AAGD;;AALE,kBAO4BnB,QAAQ,CAACd,QAAD,EAAW5D,KAAX,WAAWA,KAAX,GAAoB,EAApB,EAAwB2E,SAAxB,CAPpC;AAAA,MAOKzG,KAPL,aAOKA,KAPL;AAAA,MAOeoI,QAPf;;AAAA,kBAQWpS,QAAQ,CAACnE,WAAW,CAAC,OAAD,CAAZ,CARnB;AAAA,MAQIwW,GARJ;;AAAA,mBAS2BrS,QAAQ,CAAC,KAAD,CATnC;AAAA,MASIsS,OATJ;AAAA,MASaC,UATb;;;AAWH5D,EAAAA,GAAG,GAAGA,GAAG,IAAInE,KAAK,CAACpK,MAAN,EAAb;AAEAC,EAAAA,SAAS,CAAC,YAAM;AACdkS,IAAAA,UAAU,CAAC,IAAD,CAAV;AACD,GAFQ,EAEN,EAFM,CAAT;AAIAlS,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI8R,SAAS,IAAI,CAAC9E,KAAlB,EAAyB;AACvBsB,MAAAA,GAAG,CAAC/S,OAAJ,CAAY4W,KAAZ;AACD;AACF,GAJQ,EAIN,CAACF,OAAD,EAAUH,SAAV,EAAqBxD,GAArB,EAA0BtB,KAA1B,CAJM,CAAT;AAMA,MAAMoF,QAAQ,GAAGzI,KAAK,CAAC0G,QAAN,GAAiBhE,YAAY,IAAI,eAAjC,GAAmD,EAApE;AACA,MAAMgG,aAAa,GAAG1I,KAAK,CAAC0G,QAAN,GAAiB,WAAjB,GAA+B,EAArD;;AAEA,MAAMiC,UAAU,GAAG,SAAbA,UAAa;AAAA,WAAO1U,IAAI,GAAG,CAAC,SAAD,EAAY6T,YAAZ,CAAH,GAA+B,CAAC,SAAD,CAA1C;AAAA,GAAnB;;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG1P,EAAE,IAAIqN,WAAN,gBACC;AAAO,IAAA,SAAS,EAAC,OAAjB;AAAyB,IAAA,OAAO,EAAErN;AAAlC,KACGqN,WADH,CADD,GAIG,IALN,eAME;AAAK,IAAA,SAAS,EAAEpU,UAAU,CAACsX,UAAU,EAAX;AAA1B,kBACE;AACE,IAAA,SAAS,EAAEtX,UAAU,CAAC,CAAC4W,MAAD,EAAS/T,SAAT,EAAoBwU,aAApB,CAAD,CADvB;AAEE,oBAAcD,QAFhB;AAGE,wBAAkBJ,GAHpB;AAIE,IAAA,EAAE,EAAEjQ,EAJN;AAKE,IAAA,GAAG,EAAEuM,GALP;AAME,IAAA,IAAI,EAAE1N,IANR;AAOE,IAAA,KAAK,EAAE+I,KAAK,CAAC8B,KAPf;AAQE,IAAA,WAAW,EAAE2D,WARf;AASE,IAAA,YAAY,EAAEuC,YAThB;AAUE,IAAA,QAAQ,EAAElH,OAAO,IAAIvM,IAAI,CAACwM,QAV5B;AAWE,IAAA,QAAQ,EAAEmH,QAXZ;AAYE,iBAAWlH;AAZb,KAaMoH,QAbN,EAcM7T,IAdN,EADF,EAiBGN,IAAI,IAAIA,IAjBX,CANF,eAyBE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAE8T,kBAAtB;AAA0C,IAAA,EAAE,EAAEM;AAA9C,KACGrI,KAAK,CAAC0G,QAAN,GAAiB+B,QAAjB,GAA4B,EAD/B,CAzBF,CADF;AA+BD,CArFkB;AAwFrBb,KAAK,CAAC5B,SAAN,GAAkB;AAChB/R,EAAAA,IAAI,EAAEgS,SAAS,CAACC,IADA;AAEhB4B,EAAAA,YAAY,EAAE7B,SAAS,CAAC2C,OAAV,CACZ3C,SAAS,CAAC4C,KAAV,CAAgB,CAAC,gBAAD,EAAmB,iBAAnB,EAAsC,EAAtC,CAAhB,CADY,CAFE;AAKhBxF,EAAAA,KAAK,EAAE4C,SAAS,CAACE,MALD;AAMhB4B,EAAAA,kBAAkB,EAAE9B,SAAS,CAACE,MANd;AAOhB6B,EAAAA,YAAY,EAAE/B,SAAS,CAACE,MAPR;AAQhB2C,EAAAA,SAAS,EAAE7C,SAAS,CAAC8C,IARL;AAShB7U,EAAAA,SAAS,EAAE+R,SAAS,CAACE,MATL;AAUhBpF,EAAAA,QAAQ,EAAEkF,SAAS,CAAC8C,IAVJ;AAWhBjI,EAAAA,OAAO,EAAEmF,SAAS,CAAC8C,IAXH;AAYhBC,EAAAA,WAAW,EAAE/C,SAAS,CAAC8C,IAZP;AAahB3Q,EAAAA,EAAE,EAAE6N,SAAS,CAACE,MAbE;AAchB1R,EAAAA,IAAI,EAAEwR,SAAS,CAACE,MAdA;AAehBT,EAAAA,QAAQ,EAAEO,SAAS,CAACM,IAfJ;AAgBhB0C,EAAAA,SAAS,EAAEhD,SAAS,CAACM,IAhBL;AAiBhB2C,EAAAA,OAAO,EAAEjD,SAAS,CAACM,IAjBH;AAkBhB4C,EAAAA,YAAY,EAAElD,SAAS,CAACM,IAlBR;AAmBhBd,EAAAA,WAAW,EAAEQ,SAAS,CAACE,MAnBP;AAoBhBiD,EAAAA,QAAQ,EAAEnD,SAAS,CAAC8C,IApBJ;AAqBhBb,EAAAA,QAAQ,EAAEjC,SAAS,CAAC8C,IArBJ;AAsBhB9R,EAAAA,IAAI,EAAEgP,SAAS,CAACE,MAtBA;AAuBhBrE,EAAAA,KAAK,EAAEmE,SAAS,CAACoD,SAAV,CAAoB,CACzBpD,SAAS,CAACE,MADe,EAEzBF,SAAS,CAACqD,MAFe,EAGzBrD,SAAS,CAAC8C,IAHe,CAApB;AAvBS,CAAlB;;IC9FaQ,UAAU,GAAG,SAAbA,UAAa,OAAuC;AAAA,wBAApCzH,KAAoC;AAAA,MAApCA,KAAoC,2BAA5B,EAA4B;AAAA,MAAxBd,QAAwB,QAAxBA,QAAwB;AAAA,MAAXzM,IAAW;;AAC/D,sBACE,oBAAC,KAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,SAAS,EAAE+S,OAFb;AAGE,IAAA,YAAY,EAAC,uBAHf;AAIE,IAAA,KAAK,EAAExF,KAJT;AAKE,iBAAWd,QALb;AAME,IAAA,IAAI,eAAE,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX;AANR,KAOMzM,IAPN,EADF;AAWD;;ICZYuP,IAAI,GAAG,SAAPA,IAAO,OAUd;AAAA,MATJ/O,QASI,QATJA,QASI;AAAA,4BARJb,SAQI;AAAA,MARJA,SAQI,+BARQ,EAQR;AAAA,2BAPJsV,QAOI;AAAA,MAPJA,QAOI,8BAPO7X,IAOP;AAAA,0BANJ8X,OAMI;AAAA,MANJA,OAMI,6BANM9X,IAMN;AAAA,+BALJqW,YAKI;AAAA,MALJA,YAKI,kCALW,KAKX;AAAA,MAJJpG,KAII,QAJJA,KAII;AAAA,MAHJyB,KAGI,QAHJA,KAGI;AAAA,MAFJrC,QAEI,QAFJA,QAEI;AAAA,MADDzM,IACC;;AACJ,MAAMmV,YAAY,GAAG,SAAfA,YAAe,CAACpS,KAAD,EAAW;AAC9BA,IAAAA,KAAK,CAACa,cAAN;AACAqR,IAAAA,QAAQ,CAAClS,KAAD,CAAR;AACD,GAHD;;AAIA,sBACE;AAAK,iBAAW0J;AAAhB,KACGY,KAAK,iBACJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,KAAiCA,KAAjC,CADF,CAFJ,EAMGyB,KAAK,iBAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAyCA,KAAzC,CANZ,eAOE;AACE,IAAA,QAAQ,EAAEqG,YADZ;AAEE,IAAA,OAAO,EAAED,OAFX;AAGE,IAAA,YAAY,EAAEzB,YAHhB;AAIE,IAAA,SAAS,EAAE3W,UAAU,CAAC,CAAC,MAAD,EAAS6C,SAAT,CAAD;AAJvB,KAKMK,IALN,GAOGQ,QAPH,CAPF,CADF;AAmBD;AAED+O,IAAI,CAACkC,SAAL,GAAiB;AACfjR,EAAAA,QAAQ,EAAEkR,SAAS,CAACC,IAAV,CAAeyD,UADV;AAEfzV,EAAAA,SAAS,EAAE+R,SAAS,CAACE,MAFN;AAGfqD,EAAAA,QAAQ,EAAEvD,SAAS,CAACM,IAHL;AAIfkD,EAAAA,OAAO,EAAExD,SAAS,CAACM,IAJJ;AAKfyB,EAAAA,YAAY,EAAE/B,SAAS,CAACE;AALT,CAAjB;;ICtCayD,aAAa,GAAG,SAAhBA,aAAgB,OAA6B;AAAA,wBAA1B9H,KAA0B;AAAA,MAA1BA,KAA0B,2BAAlB,EAAkB;AAAA,MAAXvN,IAAW;;AACxD,sBAAO,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAEuN,KAAd;AAAqB,IAAA,IAAI,EAAC;AAA1B,KAAyCvN,IAAzC,EAAP;AACD;;ACID,IAAMsV,cAAc,GAAG;AACrB1D,EAAAA,MAAM,EAAEyB,KADa;AAErBkC,EAAAA,QAAQ,EAAEF,aAFW;AAGrBG,EAAAA,OAAO,EAAEzE,QAHY;AAIrB0E,EAAAA,KAAK,EAAET;AAJc,CAAvB;AAOO,SAASU,WAAT,OAWJ;AAAA,MAVDC,MAUC,QAVDA,MAUC;AAAA,MATDvG,QASC,QATDA,QASC;AAAA,MAPD6F,QAOC,QAPDA,QAOC;AAAA,MANDW,UAMC,QANDA,UAMC;AAAA,MALDpV,QAKC,QALDA,QAKC;AAAA,0BAJDqV,OAIC;AAAA,MAJDA,OAIC,6BAJS,EAIT;AAAA,0BAHDC,OAGC;AAAA,MAHDA,OAGC,6BAHS,EAGT;AAAA,+BAFDC,YAEC;AAAA,MAFDA,YAEC,kCAFc,IAEd;AAAA,MADE/V,IACF;;AACD,MAAMoQ,GAAG,GAAGnE,KAAK,CAACpK,MAAN,EAAZ;AADC,MAEOmU,UAFP,GAEgCL,MAFhC,CAEOK,UAFP;AAAA,MAEmBrC,QAFnB,GAEgCgC,MAFhC,CAEmBhC,QAFnB;AAGD,MAAMsC,MAAM,GAAGvY,MAAM,CAACgN,MAAP,CAAc,EAAd,EAAkB0E,QAAQ,IAAI,EAA9B,CAAf,CAHC;;AAMD,MAAI1B,YAAY,GAAG,EAAnB;AACA,MAAMwI,MAAM,GAAGxY,MAAM,CAACC,IAAP,CAAYqY,UAAZ,EAAwBhZ,MAAxB,CAA+B,UAACmZ,CAAD;AAAA,WAAO,CAACN,OAAO,CAAChR,QAAR,CAAiBsR,CAAjB,CAAR;AAAA,GAA/B,CAAf;AAEAD,EAAAA,MAAM,CAAC7U,OAAP,CAAe,UAAC+U,OAAD,EAAa;AAC1B1I,IAAAA,YAAY,CAAC0I,OAAD,CAAZ,GAAwBH,MAAM,CAACG,OAAD,CAAN,IAAmBvZ,SAA3C;AACD,GAFD,EATC;;AAcD,MAAI,CAACuT,GAAG,CAAC/S,OAAT,EAAkB;AAChB+S,IAAAA,GAAG,CAAC/S,OAAJ,GAAc,EAAd;AACAK,IAAAA,MAAM,CAACC,IAAP,CAAYmY,OAAZ,EAAqBzU,OAArB,CAA6B,UAACX,IAAD;AAAA,aAAW0P,GAAG,CAAC/S,OAAJ,CAAYqD,IAAZ,IAAoBoV,OAAO,CAACpV,IAAD,CAAtC;AAAA,KAA7B;AACD,GAHD,MAGO;AACL;AACAhD,IAAAA,MAAM,CAACC,IAAP,CAAYmY,OAAZ,EAAqBzU,OAArB,CAA6B,UAACxD,GAAD,EAAS;AACpC,UAAIxB,IAAI,CAACC,SAAL,CAAe8T,GAAG,CAAC/S,OAAJ,CAAYQ,GAAZ,CAAf,MAAqCxB,IAAI,CAACC,SAAL,CAAewZ,OAAO,CAACjY,GAAD,CAAtB,CAAzC,EAAuE;AACrEuS,QAAAA,GAAG,CAAC/S,OAAJ,CAAYQ,GAAZ,IAAmBiY,OAAO,CAACjY,GAAD,CAA1B;AACD;AACF,KAJD;AAKD;;AAEDuS,EAAAA,GAAG,CAAC/S,OAAJ,GAAc+S,GAAG,CAAC/S,OAAJ,IAAe,EAA7B;;AACA,MAAM+U,QAAQ,GAAG,SAAXA,QAAW,CAACiE,KAAD;AAAA,WAAW,UAAC/E,EAAD,EAAQ;AAClClB,MAAAA,GAAG,CAAC/S,OAAJ,CAAYgZ,KAAZ,IAAqB/E,EAAE,CAACtH,MAAH,GAAYsH,EAAE,CAACtH,MAAH,CAAUuD,KAAtB,GAA8B+D,EAAE,CAAC/D,KAAH,IAAY+D,EAA/D;AACD,KAFgB;AAAA,GAAjB;;AAIA,MAAMgF,MAAM,GAAG,SAATA,MAAS,QAAe;AAAA,QAAZD,KAAY,SAAZA,KAAY;AAC5B,QAAMpW,GAAG,GACPqV,cAAc,CAACU,UAAU,CAACK,KAAD,CAAV,CAAkB3C,MAAlB,IAA4BsC,UAAU,CAACK,KAAD,CAAV,CAAkB3T,IAA/C,CADhB;AAGA,QAAMa,KAAK,GAAG;AACZgD,MAAAA,KAAK,EAAEyP,UAAU,CAACK,KAAD,CAAV,CAAkBhJ,KADb;AAEZE,MAAAA,KAAK,EAAEG,YAAY,CAAC2I,KAAD,CAFP;AAGZlF,MAAAA,QAAQ,EAAEiB,QAAQ,CAACiE,KAAD,CAHN;AAIZnF,MAAAA,WAAW,EAAE8E,UAAU,CAACK,KAAD,CAAV,CAAkBhJ,KAAlB,IAA2B,EAJ5B;AAKZxJ,MAAAA,EAAE,EAAEvG,WAAW,EALH;AAMZmP,MAAAA,QAAQ,EAAK4J,KAAL;AANI,KAAd;;AASA,QAAI1C,QAAQ,CAAC9O,QAAT,CAAkBwR,KAAlB,CAAJ,EAA8B;AAC5B9S,MAAAA,KAAK,CAACoQ,QAAN,GAAiB,IAAjB;AACApQ,MAAAA,KAAK,CAAC2N,WAAN,IAAqB,IAArB;AACD;;AACDjR,IAAAA,GAAG,CAACsW,WAAJ,GAAqBF,KAArB;AACA,wBAAO,oBAAC,GAAD,EAAS9S,KAAT,CAAP;AACD,GAnBD;;AAqBA,MAAMiT,SAAS,GAAGvK,KAAK,CAACwK,QAAN,CAAe7Y,GAAf,CAAmB4C,QAAnB,EAA6B,UAACgG,KAAD;AAAA,WAC7CyF,KAAK,CAACyK,YAAN,CAAmBlQ,KAAnB,EAA0B;AAAE2K,MAAAA,QAAQ,EAAEiB;AAAZ,KAA1B,CAD6C;AAAA,GAA7B,CAAlB;;AAIA,MAAMuE,OAAO,GAAG,SAAVA,OAAU,GAAM;AACpB1B,IAAAA,QAAQ,CAAC7E,GAAG,CAAC/S,OAAL,EAAc4Y,MAAd,CAAR;AACD,GAFD;;AAIA,sBACE,oBAAC,IAAD;AAAM,IAAA,QAAQ,EAAEU;AAAhB,KAA6B3W,IAA7B,GACGkW,MAAM,CAACtY,GAAP,CAAW,UAACyY,KAAD;AAAA,wBACV,oBAAC,MAAD;AAAQ,MAAA,KAAK,EAAEA,KAAf;AAAsB,MAAA,GAAG,EAAEA;AAA3B,MADU;AAAA,GAAX,CADH,EAIGG,SAJH,EAKGT,YAAY,iBAAI,oBAAC,MAAD,QAASH,UAAT,CALnB,CADF;AASD;;ACzFD;;IACagB,MAAM,GAAG3K,KAAK,CAACqH,UAAN,CACpB,gBAmBElD,GAnBF,EAoBK;AAAA,MAlBDyG,OAkBC,QAlBDA,OAkBC;AAAA,MAjBD/H,KAiBC,QAjBDA,KAiBC;AAAA,MAhBD0E,kBAgBC,QAhBDA,kBAgBC;AAAA,uBAfDpT,IAeC;AAAA,MAfDA,IAeC,0BAfM,CAeN;AAAA,MAdD8Q,WAcC,QAdDA,WAcC;AAAA,MAbDrN,EAaC,QAbDA,EAaC;AAAA,4BAZDlE,SAYC;AAAA,MAZDA,SAYC,+BAZW,EAYX;AAAA,4BAXDmX,SAWC;AAAA,MAXDA,SAWC,+BAXW,EAWX;AAAA,2BAVDC,QAUC;AAAA,MAVDA,QAUC,8BAVU,KAUV;AAAA,0BATDxK,OASC;AAAA,MATDA,OASC,6BATS,KAST;AAAA,MAPD4E,QAOC,QAPDA,QAOC;AAAA,gCAND6F,aAMC;AAAA,MANDA,aAMC,mCANe,KAMf;AAAA,wBALDC,KAKC;AAAA,MALDA,KAKC,2BALO,EAKP;AAAA,MAJDxK,QAIC,QAJDA,QAIC;AAAA,MAHEzM,IAGF;;AAAA,kBACWyB,QAAQ,CAACnE,WAAW,CAAC,QAAD,CAAZ,CADnB;AAAA,MACIwW,GADJ;;AAGH,MAAM1B,QAAQ,GAAG,SAAXA,QAAW,CAACd,EAAD,EAAQ;AACvB,QAAIA,EAAE,CAACtH,MAAH,CAAUuD,KAAV,KAAoB,EAAxB,EAA4B;AAC1B4D,MAAAA,QAAQ,CAAC;AAAEnH,QAAAA,MAAM,EAAE;AAAEuD,UAAAA,KAAK,EAAE1Q;AAAT;AAAV,OAAD,CAAR;AACD,KAFD,MAEO;AACLsU,MAAAA,QAAQ,CAACG,EAAD,CAAR;AACD;AACF,GAND;;AAQA,MAAI0F,aAAJ,EAAmB;AACjBH,IAAAA,OAAO,GAAG,CAAC;AAAEK,MAAAA,IAAI,EAAE,UAAR;AAAoB3J,MAAAA,KAAK,EAAE;AAA3B,KAAD,EAAkCpD,MAAlC,CAAyC0M,OAAzC,CAAV;AACD;;AACD,MAAM1C,aAAa,GAAGrF,KAAK,GAAG,WAAH,GAAiB,EAA5C;AAEA,MAAMqI,OAAO,GAAG,CACd,QADc,EAEdhD,aAFc,EAGd4C,QAAQ,GAAG,aAAH,GAAmB,EAHb,EAIdD,SAJc,CAAhB;AAOA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGjT,EAAE,IAAIqN,WAAN,gBACC;AAAO,IAAA,SAAS,EAAC,OAAjB;AAAyB,IAAA,OAAO,EAAErN;AAAlC,KACGqN,WADH,CADD,GAIG,IALN,eAME;AAAK,IAAA,SAAS,EAAEpU,UAAU,CAACqa,OAAD;AAA1B,kBACE;AACE,IAAA,SAAS,EAAEra,UAAU,CAAC,CAAC,EAAD,EAAK6C,SAAL,CAAD,CADvB;AAEE,IAAA,IAAI,EAAES,IAFR;AAGE,IAAA,QAAQ,EAAE2W,QAHZ;AAIE,IAAA,QAAQ,EAAExK,OAAO,IAAIvM,IAAI,CAACwM,QAJ5B;AAKE,IAAA,QAAQ,EAAE4F;AALZ,KAMMpS,IANN;AAOE,IAAA,GAAG,EAAEoQ,GAPP;AAQE,IAAA,KAAK,EAAE6G,KART;AASE,iBAAWxK;AATb,MAWGoK,OAAO,CAACjZ,GAAR,CAAY,iBAAoBwZ,KAApB;AAAA,QAAGF,IAAH,SAAGA,IAAH;AAAA,QAAYlX,IAAZ;;AAAA,wBACX;AAAQ,MAAA,GAAG,EAAEoX,KAAK,CAAClW,QAAN;AAAb,OAAmClB,IAAnC,GACGkX,IADH,CADW;AAAA,GAAZ,CAXH,CADF,CANF,EAyBGpI,KAAK,iBACJ,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAE0E,kBAAtB;AAA0C,IAAA,EAAE,EAAEM;AAA9C,KACGhF,KAAK,GAAGA,KAAH,GAAW,EADnB,CA1BJ,CADF;AAiCD,CA7EmB;AAgFtB8H,MAAM,CAACnF,SAAP,GAAmB;AACjB3C,EAAAA,KAAK,EAAE4C,SAAS,CAACE,MADA;AAEjBpF,EAAAA,QAAQ,EAAEkF,SAAS,CAAC8C,IAFH;AAGjBjI,EAAAA,OAAO,EAAEmF,SAAS,CAAC8C,IAHF;AAIjBC,EAAAA,WAAW,EAAE/C,SAAS,CAAC8C,IAJN;AAKjBpU,EAAAA,IAAI,EAAEsR,SAAS,CAACqD,MALC;AAMjB5D,EAAAA,QAAQ,EAAEO,SAAS,CAACM,IANH;AAOjB6E,EAAAA,OAAO,EAAEnF,SAAS,CAAC2C,OAAV,CAAkB3C,SAAS,CAAC2F,MAA5B,CAPQ;AAQjBN,EAAAA,QAAQ,EAAErF,SAAS,CAAC8C,IARH;AASjB7U,EAAAA,SAAS,EAAE+R,SAAS,CAACE;AATJ,CAAnB;;ACrFO,SAAS0F,UAAT,OAAmD;AAAA,MAA7B/Q,KAA6B,QAA7BA,KAA6B;AAAA,MAAtB4K,QAAsB,QAAtBA,QAAsB;AAAA,MAAT5N,KAAS;;AACxD,MAAMgU,OAAO,YAAPA,OAAO,CAAUxU,KAAV;AAAA,QAAoB;AAAA,6BACZ2G,eAAe,CAAC3G,KAAK,CAACiH,MAAN,CAAawN,KAAb,CAAmB,CAAnB,CAAD,CADH,iBACzBzP,IADyB;AAE/BoJ,QAAAA,QAAQ,CAACpJ,IAAD,CAAR;AAF+B;AAGhC,KAHY;AAAA;AAAA;AAAA,GAAb;;AAKA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE;AACE,IAAA,SAAS,EAAC;AADZ,KAEMxE,KAFN;AAGE,IAAA,IAAI,EAAC,MAHP;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,QAAQ,EAAEgU;AALZ,KADF,eAQE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAG,IAAA,SAAS,EAAC;AAAb,IADF,CADF,eAIE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8BhR,KAAK,IAAI,gBAAvC,CAJF,CARF,CADF,CADF;AAmBD;;ICxBYkR,QAAQ,GAAGxL,KAAK,CAACqH,UAAN,CACtB,gBAcElD,GAdF,EAeK;AAAA,wBAbD7C,KAaC;AAAA,MAbDA,KAaC,2BAbO,EAaP;AAAA,4BAZDuJ,SAYC;AAAA,MAZDA,SAYC,+BAZW,EAYX;AAAA,uBAXDY,IAWC;AAAA,MAXDA,IAWC,0BAXM,CAWN;AAAA,4BAVD/X,SAUC;AAAA,MAVDA,SAUC,+BAVW,EAUX;AAAA,MATDwR,QASC,QATDA,QASC;AAAA,MARD1E,QAQC,QARDA,QAQC;AAAA,MAPDqC,KAOC,QAPDA,KAOC;AAAA,MAND0E,kBAMC,QANDA,kBAMC;AAAA,MALDtC,WAKC,QALDA,WAKC;AAAA,MAJDrN,EAIC,QAJDA,EAIC;AAAA,MAHE7D,IAGF;;AAAA,kBACWyB,QAAQ,CAACnE,WAAW,CAAC,QAAD,CAAZ,CADnB;AAAA,MACIwW,GADJ;;AAGH,MAAM1B,QAAQ,GAAG,SAAXA,QAAW,CAACd,EAAD,EAAQ;AACvB,QAAIH,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACG,EAAE,CAACtH,MAAH,CAAUuD,KAAX,CAAR;AACD;AACF,GAJD;;AAKA,MAAM4G,aAAa,GAAGrF,KAAK,GAAG,WAAH,GAAiB,EAA5C;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGjL,EAAE,IAAIqN,WAAN,gBACC;AAAO,IAAA,SAAS,EAAC,OAAjB;AAAyB,IAAA,OAAO,EAAErN;AAAlC,KACGqN,WADH,CADD,GAIG,IALN,eAME;AAAK,IAAA,SAAS,EAAE4F;AAAhB,kBACE;AACE,IAAA,SAAS,EAAEha,UAAU,CAAC,CAAC,UAAD,EAAa6C,SAAb,EAAwBwU,aAAxB,CAAD,CADvB;AAEE,IAAA,IAAI,EAAEuD,IAFR;AAGE,IAAA,QAAQ,EAAEtF,QAHZ;AAIE,IAAA,KAAK,EAAE7E,KAJT;AAKE,iBAAWd;AALb,KAMMzM,IANN;AAOE,IAAA,GAAG,EAAEoQ;AAPP,KADF,CANF,eAiBE,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAEoD,kBAAtB;AAA0C,IAAA,EAAE,EAAEM;AAA9C,KACGhF,KAAK,GAAGA,KAAH,GAAW,EADnB,CAjBF,CADF;AAuBD,CAjDqB;;ACMxB,SAAS6I,QAAT,CAAkB3F,IAAlB,EAAwB4F,IAAxB,EAA8B;AAC5B,MAAIC,OAAJ;AACA,SAAO,YAAY;AACjB,QAAM/L,OAAO,GAAG,IAAhB;AACA,QAAMgM,IAAI,GAAGhV,SAAb;;AACA,QAAMiV,KAAK,GAAG,SAARA,KAAQ,GAAY;AACxBF,MAAAA,OAAO,GAAG,IAAV;AACA7F,MAAAA,IAAI,CAACnP,KAAL,CAAWiJ,OAAX,EAAoBgM,IAApB;AACD,KAHD;;AAIAE,IAAAA,YAAY,CAACH,OAAD,CAAZ;AACAA,IAAAA,OAAO,GAAGrY,UAAU,CAACuY,KAAD,EAAQH,IAAR,CAApB;AACD,GATD;AAUD;;AAED,IAAMlK,YAAY,GAAG;AACnBuK,EAAAA,IAAI,EAAE,CADa;AAEnBnR,EAAAA,KAAK,EAAEjK,SAFY;AAGnB0P,EAAAA,OAAO,EAAE,KAHU;AAInBvF,EAAAA,WAAW,EAAE;AAJM,CAArB;IAOakR,WAAW,GAAG,SAAdA,WAAc,OAcrB;AAAA,MAbJ/G,QAaI,QAbJA,QAaI;AAAA,MAZJrC,KAYI,QAZJA,KAYI;AAAA,MAXJ0E,kBAWI,QAXJA,kBAWI;AAAA,4BAVJ2E,SAUI;AAAA,MAVJA,SAUI,+BAVQ,IAUR;AAAA,uBATJ1c,IASI;AAAA,MATJA,IASI,0BATG,IASH;AAAA,qBARJiJ,EAQI;AAAA,MARJA,EAQI,wBARC,EAQD;AAAA,iCAPJ0T,cAOI;AAAA,MAPJA,cAOI,oCAPa,QAOb;AAAA,MANJ7K,KAMI,QANJA,KAMI;AAAA,2BALJ8K,QAKI;AAAA,MALJA,QAKI,8BALO,EAKP;AAAA,kCAJJC,eAII;AAAA,MAJJA,eAII,qCAJc,wBAId;AAAA,mCAHJC,mBAGI;AAAA,MAHJA,mBAGI,sCAHkB,iBAGlB;AAAA,+BAFJC,YAEI;AAAA,MAFJA,YAEI,kCAFW,qBAEX;AAAA,mCADJC,oBACI;AAAA,MADJA,oBACI,sCADmB,IACnB;;AAAA,qBAC0BhL,WAAW,CAACC,YAAD,CADrC;AAAA,MACGmJ,OADH;AAAA,MACY6B,UADZ;;AAAA,wBAEwBzM,KAAK,CAACxK,QAAN,CAAe,KAAf,CAFxB;AAAA,MAEGkX,MAFH;AAAA,MAEWC,SAFX;;AAAA,yBAGgC3M,KAAK,CAACxK,QAAN,CAAe,EAAf,CAHhC;AAAA,MAGGoX,UAHH;AAAA,MAGeC,aAHf;;AAIJ,MAAM1H,QAAQ,GAAGnF,KAAK,CAACpK,MAAN,CAAa,IAAb,CAAjB;AACA,MAAMkX,UAAU,GAAG9M,KAAK,CAACpK,MAAN,CAAa,IAAb,CAAnB;;AALI,mBAM+BqO,SAAS,EANxC;AAAA,MAMIN,QANJ,cAMIA,QANJ;AAAA,MAMcE,YANd,cAMcA,YANd;;AAAA,kBAQUrO,QAAQ,CAACnE,WAAW,CAAC,cAAD,CAAZ,CARlB;AAAA,MAQGwW,GARH;;AAUJ,MAAMkF,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB,QAAID,UAAU,IAAIA,UAAU,CAAC1b,OAA7B,EAAsC;AACpC,aAAO;AACL4b,QAAAA,SAAS,EACP/a,MAAM,CAACgb,WAAP,GACAH,UAAU,CAAC1b,OAAX,CAAmB8b,qBAAnB,GAA2ClO,GAD3C,GAEA,GAHO;AADJ,OAAP;AAOD;;AACD,WAAO;AAAEgO,MAAAA,SAAS,EAAE;AAAb,KAAP;AACD,GAXD;;AAaA,MAAMG,YAAY,GAAGnN,KAAK,CAAC3J,WAAN,CACnBqV,QAAQ,CAAC,UAACpK,KAAD;AAAA,WAAW8L,YAAY,CAAC,CAAD,EAAI,KAAJ,EAAW9L,KAAX,CAAvB;AAAA,GAAD,EAA2C,GAA3C,CADW,EAEnB,EAFmB,CAArB;;AAKA,MAAM8L,YAAY,YAAZA,YAAY,CAAUpB,IAAV,EAAoB9N,MAApB,EAAoCoD,KAApC;AAAA,QAAU0K,IAAV;AAAUA,MAAAA,IAAV,GAAiB,CAAjB;AAAA;;AAAA,QAAoB9N,MAApB;AAAoBA,MAAAA,MAApB,GAA6B,KAA7B;AAAA;;AAAA,QAAoCoD,KAApC;AAAoCA,MAAAA,KAApC,GAA4C,EAA5C;AAAA;;AAAA,QAAmD;AACnEmL,MAAAA,UAAU,CAAC;AAAEnM,QAAAA,OAAO,EAAE;AAAX,OAAD,CAAV;AACA,UAAI+M,YAAY,GAAG,EAAnB;AACA,UAAIC,gBAAgB,GAAG,EAAvB;;AACA,UAAIhM,KAAK,KAAK,EAAd,EAAkB;AAChBgM,QAAAA,gBAAgB,GAAG9U,MAAM,CAAI2T,cAAJ,SAAsB7K,KAAtB,CAAzB;AACD;;AANkE,UAO3DhR,GAP2D,GAOnD4b,SAAS,CAAC7I,QAPyC,CAO3D/S,GAP2D;AAQnE,UAAMid,MAAM,GAAGjd,GAAG,CAAC,iCAAD,EAAoCuT,YAApC,CAAlB;AACA,UAAI2J,QAAQ,GAAGtB,SAAS,CAAC/L,MAAV,CAAiBoN,MAAjB,EAAyB;AACtC/d,QAAAA,IAAI,EAAE0c,SAAS,CAAC1c,IADsB;AAEtCkK,QAAAA,KAAK,EAAEsS,IAAI,GAAGrI,QAFwB;AAGtChK,QAAAA,QAAQ,EAAEgK;AAH4B,OAAzB,CAAf;;AAMA,UAAIlL,EAAE,CAACrG,MAAH,GAAY,CAAZ,IAAiBkb,gBAAgB,CAAClb,MAAjB,GAA0B,CAA3C,IAAgDob,QAAQ,CAACpb,MAAT,GAAkB,CAAtE,EAAyE;AACvEib,QAAAA,YAAY,GAAGtU,OAAO,WAAKN,EAAL,EAAY6U,gBAAZ,EAAiCE,QAAjC,EAAtB;AACD;;AAjBkE,6BAmBhDtB,SAAS,CAAC/L,MAAV,CAAiBjJ,MAAjB,CACjB1H,IADiB,EAEjB6d,YAFiB,EAGjB,KAHiB,EAIjB,KAJiB,EAKjBrB,IAAI,GAAGrI,QALU,EAMjBA,QANiB,CAnBgD,iBAmB7DlU,IAnB6D;AAAA;;AA2BnE,YAAMge,QAAQ,GACZ7C,OAAO,CAAC/P,KAAR,IAAiBqD,MAAjB,aAA8B0M,OAAO,CAAC/P,KAAtC,EAAgDpL,IAAI,CAACoL,KAArD,IAA8DpL,IAAI,CAACoL,KADrE;AAGA4R,QAAAA,UAAU,CAAC;AACT5R,UAAAA,KAAK,EAAE4S,QAAF,WAAEA,QAAF,GAAc,EADV;AAETnN,UAAAA,OAAO,EAAE,KAFA;AAGTvF,UAAAA,WAAW,uBAAEtL,IAAI,CAACsL,WAAP,gCAAsB,CAHxB;AAITiR,UAAAA,IAAI,EAAEA;AAJG,SAAD,CAAV;AA9BmE;AAoCpE,KApCiB;AAAA;AAAA;AAAA,GAAlB;;AAsCA,MAAM0B,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACjZ,IAAD,EAAU;AACvC,QAAI+X,oBAAJ,EAA0B;AACxB,aAAOA,oBAAoB,CAAC/X,IAAD,CAA3B;AACD;;AACD,WAAOA,IAAI,CAAC2M,KAAL,IAAc3M,IAAI,CAAC,OAAD,CAAzB;AACD,GALD;;AAOAuL,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpB,QAAIrG,IAAI,IAAI,CAACob,OAAO,CAACtK,OAAjB,IAA4B,CAACsK,OAAO,CAAC/P,KAAzC,EAAgD;;AAAA,UAChC;AACZuS,QAAAA,YAAY,CAACxC,OAAO,CAACoB,IAAT,CAAZ;AACD,OAH6C;AAAA;AAAA;AAI/C;AACF,GAND,EAMG,CAACxc,IAAD,EAAOob,OAAO,CAACtK,OAAf,EAAwBsK,OAAO,CAAC/P,KAAhC,CANH;AAQA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AACE,iBAAWwR,eADb;AAEE,IAAA,GAAG,EAAES,UAFP;AAGE,IAAA,SAAS,iBAAcJ,MAAM,GAAG,WAAH,GAAiB,EAArC,CAHX;AAIE,IAAA,MAAM,EAAE,gBAACrH,EAAD,EAAQ;AACd,UAAI,CAACA,EAAE,CAACsI,aAAH,CAAiBC,QAAjB,CAA0BvI,EAAE,CAACwI,aAA7B,CAAL,EAAkD;AAChD,YAAIjB,UAAU,KAAK,EAAnB,EAAuB;AACrBC,UAAAA,aAAa,CAAC,EAAD,CAAb;AACAJ,UAAAA,UAAU,CAAChL,YAAD,CAAV;AACD;;AACDkL,QAAAA,SAAS,CAAC,CAACD,MAAF,CAAT;AACD;AACF;AAZH,kBAcE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,SAAS,cAAYN,QADvB;AAEE,IAAA,OAAO,EAAE,iBAAC/G,EAAD,EAAQ;AACfA,MAAAA,EAAE,CAAC1N,cAAH;AACAgV,MAAAA,SAAS,CAAC,CAACD,MAAF,CAAT;AACD,KALH;AAME,qBAAc,MANhB;AAOE,qBAAc;AAPhB,kBASE,kCAAOpL,KAAK,IAAIA,KAAK,CAACF,KAAf,GAAuBE,KAAK,CAACF,KAA7B,GAAqC,WAA5C,CATF,eAUE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAG,IAAA,SAAS,EAAC,mBAAb;AAAiC,mBAAY;AAA7C,IADF,CAVF,CADF,CAdF,eA8BE;AACE,IAAA,SAAS,EAAC,eADZ;AAEE,IAAA,EAAE,EAAC,eAFL;AAGE,IAAA,IAAI,EAAC,MAHP;AAIE,IAAA,KAAK,EAAE2L,SAAS;AAJlB,kBAME;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,GAAG,EAAE5H,QADP;AAEE,iBAAWmH,mBAFb;AAGE,IAAA,SAAS,EAAC,OAHZ;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,WAAW,EAAC,WALd;AAME,IAAA,KAAK,EAAEM,UANT;AAOE,IAAA,QAAQ,EAAE,kBAACvH,EAAD,EAAQ;AAChB8H,MAAAA,YAAY,CAAC9H,EAAE,CAACtH,MAAH,CAAUuD,KAAX,CAAZ;AACAuL,MAAAA,aAAa,CAACxH,EAAE,CAACtH,MAAH,CAAUuD,KAAX,CAAb;AACD;AAVH,IADF,CADF,eAeE;AAAI,IAAA,SAAS,EAAC;AAAd,IAfF,EAgBGsJ,OAAO,CAACtK,OAAR,iBAAmB,oBAAC,OAAD,OAhBtB,EAiBGsK,OAAO,CAAC/P,KAAR,IACC+P,OAAO,CAAC/P,KAAR,CAAclJ,GAAd,CAAkB,UAAC8C,IAAD,EAAU;AAC1B,wBACE;AACE,MAAA,IAAI,EAAC,GADP;AAEE,MAAA,SAAS,+BACP6M,KAAK,IAAIA,KAAK,CAAC1J,EAAN,KAAanD,IAAI,CAACmD,EAA3B,GAAgC,WAAhC,GAA8C,EADvC,CAFX;AAKE,mBAAc2U,YAAd,SAA8B9X,IAAI,CAACmD,EALrC;AAME,MAAA,WAAW,EAAE,uBAAM;AACjBsN,QAAAA,QAAQ,IAAIA,QAAQ,CAACzQ,IAAD,CAApB;AACAkY,QAAAA,SAAS,CAAC,KAAD,CAAT;AACD,OATH;AAUE,MAAA,GAAG,EAAElY,IAAI,CAACjF;AAVZ,OAYGke,sBAAsB,CAACjZ,IAAD,CAZzB,CADF;AAgBD,GAjBD,CAlBJ,EAqCGmW,OAAO,CAAC/P,KAAR,IAAiB+P,OAAO,CAAC/P,KAAR,CAAczI,MAAd,KAAyB,CAA1C,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,oBAtCJ,EAyCGwY,OAAO,CAAC/P,KAAR,IAAiB+P,OAAO,CAAC7P,WAAR,GAAsB6P,OAAO,CAAC/P,KAAR,CAAczI,MAArD,iBACC,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAI,IAAA,SAAS,EAAC;AAAd,IADF,eAEE;AACE,IAAA,SAAS,EAAC,wBADZ;AAEE,IAAA,WAAW,EAAE,qBAACiT,EAAD,EAAQ;AACnBA,MAAAA,EAAE,CAAC5N,eAAH;AACA4N,MAAAA,EAAE,CAAC1N,cAAH;AACAyV,MAAAA,YAAY,CAACxC,OAAO,CAACoB,IAAR,GAAe,CAAhB,EAAmB,IAAnB,CAAZ;AACD;AANH,oBAFF,CA1CJ,CANF,CA9BF,CADF,EAgGGnJ,KAAK,iBACJ,oBAAC,SAAD;AAAW,IAAA,SAAS,EAAE0E,kBAAtB;AAA0C,IAAA,EAAE,EAAEM;AAA9C,KACGhF,KAAK,GAAGA,KAAH,GAAW,EADnB,CAjGJ,CADF;AAwGD;AAEDoJ,WAAW,CAACzG,SAAZ,GAAwB;AACtBN,EAAAA,QAAQ,EAAEO,SAAS,CAACM,IADE;AAEtBzE,EAAAA,KAAK,EAAEmE,SAAS,CAAC2F,MAFK;AAGtBjL,EAAAA,MAAM,EAAEsF,SAAS,CAAC2F,MAHI;AAItB5b,EAAAA,IAAI,EAAEiW,SAAS,CAACE,MAJM;AAKtBhC,EAAAA,QAAQ,EAAE8B,SAAS,CAACqD,MALE;AAMtBsD,EAAAA,QAAQ,EAAE3G,SAAS,CAACE;AANE,CAAxB;;ICrOamI,SAAS,GAAG9N,UAAA,CACvB,gBAAgCmE,GAAhC,EAAwC;AAAA,MAArC7C,KAAqC,QAArCA,KAAqC;AAAA,MAA9B4D,QAA8B,QAA9BA,QAA8B;AAAA,MAApB1E,QAAoB,QAApBA,QAAoB;;AAAA,wBACFR,QAAA,CAAe,EAAf,CADE;AAAA,MAC/B+N,UAD+B;AAAA,MACnBC,aADmB;;AAEtC,MAAMC,OAAO,GAAG,SAAVA,OAAU,CAACnX,KAAD,EAAW;AACzB,QAAIA,KAAK,CAAClF,GAAN,KAAc,OAAd,IAAyBkF,KAAK,CAACiH,MAAN,CAAauD,KAAb,KAAuB,EAApD,EAAwD;AACtD4D,MAAAA,QAAQ,WAAK5D,KAAL,GAAYxK,KAAK,CAACiH,MAAN,CAAauD,KAAzB,GAAR;AACA0M,MAAAA,aAAa,CAAC,EAAD,CAAb;AACD;AACF,GALD;;AAOA,sBACEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KACG5M,KAAK,CAAC3P,GAAN,CAAU,UAACwc,GAAD,EAAMhD,KAAN;AAAA,wBACT+C;AACE,MAAA,GAAG,kBAAgBC,GAAhB,SAAuBhD,KAD5B;AAEE,MAAA,SAAS,EAAC;AAFZ,OAIGgD,GAJH,eAKED;AACE,MAAA,SAAS,EAAC,iBADZ;AAEE,MAAA,OAAO,EAAE;AAAA,eACPhJ,QAAQ,WACH5D,KAAK,CAACvQ,MAAN,CAAa,UAACod,GAAD;AAAA,iBAAS7M,KAAK,CAAC8M,OAAN,CAAcD,GAAd,MAAuBhD,KAAhC;AAAA,SAAb,CADG,EADD;AAAA;AAFX,MALF,CADS;AAAA,GAAV,CADH,CADF,eAmBE+C,cAAC,KAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,WAAW,EAAC,0BAFd;AAGE,IAAA,OAAO,EAAE,iBAACpX,KAAD;AAAA,aAAWmX,OAAO,CAACnX,KAAD,CAAlB;AAAA,KAHX;AAIE,IAAA,KAAK,EAAEiX,UAJT;AAKE,IAAA,GAAG,EAAE5J,GALP;AAME,IAAA,QAAQ,EAAE3D,QANZ;AAOE,IAAA,QAAQ,EAAE,kBAACc,KAAD,EAAW;AACnB,UAAIA,KAAK,KAAK,EAAd,EAAkB;AAChB0M,QAAAA,aAAa,CAAC1M,KAAD,CAAb;AACD;AACF;AAXH,IAnBF,CADF;AAmCD,CA7CsB;;ACDzB,IAAM+M,aAAa,GAAG,CAAC,WAAD,EAAc,YAAd,CAAtB;;AACA,IAAMC,EAAE,GAAG,SAALA,EAAK,CAACC,GAAD;AAAA,SAAkBA,GAAG,CAACrY,gBAAJ,OAAAqY,GAAG,8BAArB;AAAA,CAAX;;AACA,IAAMC,GAAG,GAAG,SAANA,GAAM,CAACD,GAAD;AAAA,SAAkBA,GAAG,CAACpY,mBAAJ,OAAAoY,GAAG,8BAArB;AAAA,CAAZ;;AAEe,SAASE,YAAT,CAAsBtK,GAAtB,EAA2BuK,WAA3B,EAAwC1Y,MAAxC,EAAgE;AAAA,MAAxBA,MAAwB;AAAxBA,IAAAA,MAAwB,GAAfqY,aAAe;AAAA;;AAC7E,MAAMM,aAAa,GAAG/Y,MAAM,CAAC8Y,WAAD,CAA5B;AAEA7Y,EAAAA,SAAS,CAAC,YAAM;AACd8Y,IAAAA,aAAa,CAACvd,OAAd,GAAwBsd,WAAxB;AACD,GAFQ,EAEN,CAACA,WAAD,CAFM,CAAT;AAIA7Y,EAAAA,SAAS,CAAC,YAAM;AACd,QAAM+Y,OAAO,GAAG,SAAVA,OAAU,CAAC9X,KAAD,EAAW;AAAA,UACR+X,EADQ,GACD1K,GADC,CACjB/S,OADiB;AAEzByd,MAAAA,EAAE,IAAI,CAACA,EAAE,CAACjB,QAAH,CAAY9W,KAAK,CAACiH,MAAlB,CAAP,IAAoC4Q,aAAa,CAACvd,OAAd,CAAsB0F,KAAtB,CAApC;AACD,KAHD;;AAKA,yDAAwBd,MAAxB,wCAAgC;AAAA,UAArB8Y,SAAqB;AAC9BR,MAAAA,EAAE,CAACS,QAAD,EAAWD,SAAX,EAAsBF,OAAtB,CAAF;AACD;;AAED,WAAO,YAAM;AACX,4DAAwB5Y,MAAxB,2CAAgC;AAAA,YAArB8Y,SAAqB;AAC9BN,QAAAA,GAAG,CAACO,QAAD,EAAWD,SAAX,EAAsBF,OAAtB,CAAH;AACD;AACF,KAJD;AAKD,GAfQ,EAeN,CAAC5Y,MAAD,EAASmO,GAAT,CAfM,CAAT;AAgBD;;AC1Bc,SAAS6K,QAAT,OASZ;AAAA,MARDza,QAQC,QARDA,QAQC;AAAA,MAPDgM,QAOC,QAPDA,QAOC;AAAA,MAND3I,EAMC,QANDA,EAMC;AAAA,MALDqX,OAKC,QALDA,OAKC;AAAA,MAJD/J,QAIC,QAJDA,QAIC;AAAA,MAHDgK,kBAGC,QAHDA,kBAGC;AAAA,MAFDtE,OAEC,QAFDA,OAEC;AAAA,MADEtT,KACF;;AACD,MAAM6M,GAAG,GAAGvO,MAAM,CAAC,IAAD,CAAlB;;AADC,kBAE+BJ,QAAQ,CAAC,KAAD,CAFvC;AAAA,MAEMmL,QAFN;AAAA,MAEgBwO,WAFhB;;AAGD,MAAMC,QAAQ,GAAGH,OAAO,GAAG,UAAH,GAAgB,EAAxC;AACA,MAAM3R,MAAM,GAAGqD,QAAQ,iBACPyO,QADO,gCAEPA,QAFhB;AAIAX,EAAAA,YAAY,CAACtK,GAAD,EAAM,YAAM;AACtBgL,IAAAA,WAAW,CAAC,KAAD,CAAX;AACD,GAFW,CAAZ;AAIA,sBACE;AAAK,IAAA,GAAG,EAAEhL,GAAV;AAAe,IAAA,SAAS,EAAE7G;AAA1B,KAAsChG,KAAtC,gBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,SAAS,EAAC,kBADZ;AAEE,IAAA,OAAO,EAAE;AAAA,aAAM6X,WAAW,CAAC,CAACxO,QAAF,CAAjB;AAAA,KAFX;AAGE,qBAAc,MAHhB;AAIE,IAAA,QAAQ,EAAEJ,QAJZ;AAKE,qBAAe3I;AALjB,KAOGrD,QAPH,CADF,CADF,eAYE;AAAK,IAAA,SAAS,EAAC,eAAf;AAA+B,IAAA,EAAE,EAAEqD,EAAnC;AAAuC,IAAA,IAAI,EAAC;AAA5C,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGgT,OAAO,CAACjZ,GAAR,CAAY,UAAC0d,MAAD,EAAY;AACvB,QAAM9O,QAAQ,GACZ,OAAO2O,kBAAP,KAA8B,UAA9B,GACIA,kBAAkB,CAACG,MAAD,CADtB,GAEI,KAHN;AAKA;AAAA;AACE;AACA;AACE,QAAA,SAAS,EACP9O,QAAQ,GAAG,yBAAH,GAA+B,eAF3C;AAIE,2CAA+B8O,MAAM,CAACpE,IAAP,CAAYpY,WAAZ,EAJjC;AAKE,QAAA,GAAG,EAAEwc,MAAM,CAACpE,IALd;AAME,QAAA,OAAO,EAAE1K,QAAQ,GAAG3P,SAAH,GAAe;AAAA,iBAAMsU,QAAQ,CAACmK,MAAM,CAAC/N,KAAR,CAAd;AAAA,SANlC;AAOE,QAAA,KAAK,EACHf,QAAQ,GACJ;AACE+O,UAAAA,MAAM,EAAE,aADV;AAEElb,UAAAA,KAAK,EAAE,OAFT;AAGEmb,UAAAA,OAAO,EAAE,GAHX;AAIEC,UAAAA,eAAe,EAAE;AAJnB,SADI,GAOJ;AAfR,SAkBGH,MAAM,CAACpE,IAlBV;AAFF;AAuBD,GA7BA,CADH,CADF,CAZF,CADF;AAiDD;;ACvED,IAAMwE,KAAK,GAAG,CAAC,QAAD,EAAW,QAAX,EAAqB,SAArB,CAAd;AAEO,SAASC,WAAT,OAAwC;AAAA,MAAjBpO,KAAiB,QAAjBA,KAAiB;AAAA,MAAVqO,MAAU,QAAVA,MAAU;AAC7C,MAAIrO,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAK1Q,SAAhC,EAA2C,OAAO,EAAP;;AAE3C,MAAI+e,MAAJ,EAAY;AACV,wBAAO,oBAAC,MAAD;AAAQ,MAAA,KAAK,EAAErO;AAAf,MAAP;AACD;;AAED,MAAM7K,IAAI,GAAG,OAAO6K,KAApB;;AACA,MAAImO,KAAK,CAAC7W,QAAN,CAAenC,IAAf,CAAJ,EAA0B;AACxB,WAAO6K,KAAP;AACD;;AACD,MAAI7K,IAAI,KAAK,QAAb,EAAuB;AACrB,QAAI8E,KAAK,CAACC,OAAN,CAAc8F,KAAd,CAAJ,EAA0B;AACxB,aAAOA,KAAK,CAAC3P,GAAN,CAAU,UAAC8C,IAAD;AAAA,4BACf;AAAK,UAAA,GAAG,EAAEA;AAAV,wBACE,oBAAC,WAAD;AAAa,UAAA,KAAK,EAAEA;AAApB,UADF,CADe;AAAA,OAAV,CAAP;AAKD;;AACD,WAAOhD,MAAM,CAACC,IAAP,CAAY4P,KAAZ,EAAmB3P,GAAnB,CAAuB,UAACC,GAAD;AAAA,0BAC5B,oBAAC,UAAD;AAAY,QAAA,KAAK,EAAEA,GAAnB;AAAwB,QAAA,KAAK,EAAE0P,KAAK,CAAC1P,GAAD,CAApC;AAA2C,QAAA,GAAG,EAAEA;AAAhD,QAD4B;AAAA,KAAvB,CAAP;AAGD;;AACD,sBAAO,iDAAkBxB,IAAI,CAACC,SAAL,CAAeiR,KAAf,CAAlB,CAAP;AACD;;AAED,IAAMsO,UAAU,GAAG,SAAbA,UAAa;AAAA,MAAGxF,KAAH,SAAGA,KAAH;AAAA,MAAU9I,KAAV,SAAUA,KAAV;AAAA,sBACjB;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwB8I,KAAxB,CADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,WAAD;AAAa,IAAA,KAAK,EAAE9I;AAApB,IADF,CAFF,CADiB;AAAA,CAAnB;;IC5BauO,UAAU,GAAG,SAAbA,UAAa,CAACld,GAAD,EAAS;AACjC,MAAMmd,CAAC,GAAG,IAAIC,IAAJ,CAASpd,GAAT,CAAV;AACA,MAAMqd,OAAO,GAAGF,CAAC,CAACG,UAAF,KAAiB,EAAjB,SAA0BH,CAAC,CAACG,UAAF,EAA1B,GAA6CH,CAAC,CAACG,UAAF,EAA7D;AACA,SAAUH,CAAC,CAACI,OAAF,EAAV,UACEJ,CAAC,CAACK,QAAF,KAAe,CADjB,UAEIL,CAAC,CAACM,WAAF,EAFJ,SAEuBN,CAAC,CAACO,QAAF,EAFvB,SAEuCL,OAFvC;AAGD;IAEY1f,KAAG,GAAG,SAANA,GAAM,CAACie,GAAD,EAAM/e,IAAN,EAAY8gB,QAAZ,EAAyB;AAC1C;AACA,MAAI,CAAC9gB,IAAL,EAAW,OAAOoB,SAAP,CAF+B;AAI1C;;AACA,MAAM2f,SAAS,GAAGhV,KAAK,CAACC,OAAN,CAAchM,IAAd,IAAsBA,IAAtB,GAA6BA,IAAI,CAACghB,KAAL,CAAW,aAAX,CAA/C,CAL0C;;AAO1C,SACED,SAAS,CAACE,MAAV,CAAiB,UAACC,OAAD,EAAU9e,GAAV;AAAA,WAAkB8e,OAAO,IAAIA,OAAO,CAAC9e,GAAD,CAApC;AAAA,GAAjB,EAA4D2c,GAA5D,KAAoE+B,QADtE;AAGD;AAEM,SAASK,QAAT,CAAkB/Y,EAAlB,EAA2B;AAAA,MAATA,EAAS;AAATA,IAAAA,EAAS,GAAJ,EAAI;AAAA;;AAChC,MAAMgZ,MAAM,GAAG,QAAf;AACA,MAAMC,GAAG,GAAG,IAAI5d,MAAJ,SAAiB2d,MAAjB,WAAZ;AAEA,SAAOle,YAAY,CAACkF,EAAD,CAAZ,CAAiBhF,OAAjB,CAAyBie,GAAzB,EAA8B,UAACC,CAAD,EAAO;AAC1C,QAAMC,GAAG,GAAGC,QAAQ,CAACF,CAAC,CAACle,OAAF,CAAUge,MAAV,EAAkB,EAAlB,KAAyB,GAA1B,CAApB;AACA,gBAAUA,MAAV,IAAmBG,GAAG,GAAG,CAAzB;AACD,GAHM,CAAP;AAID;;IC3BYE,aAAa,GAAG,SAAhBA,aAAgB,OAAe;AAAA,MAAZ3P,KAAY,QAAZA,KAAY;AAC1C,MAAMqB,GAAG,GAAG5C,YAAY,EAAxB;AAD0C,MAElCtQ,IAFkC,GAElB6R,KAFkB,CAElC7R,IAFkC;AAAA,MAE5B2a,KAF4B,GAElB9I,KAFkB,CAE5B8I,KAF4B;;AAI1C,MAAM8G,QAAQ,YAARA,QAAQ,CAAUC,YAAV;AAAA,QAA2B;AACvC,UAAM9U,QAAQ,GAAMsG,GAAG,CAACnT,IAAV,kBAA2B4a,KAAzC;AADuC,6BAErBzH,GAAG,CAACxC,MAAJ,CAAWpE,QAAX,CAAoBM,QAApB,CAFqB,iBAEjClB,GAFiC;AAAA,+BAGpBA,GAAG,CAACiW,IAAJ,EAHoB,iBAGjCnG,IAHiC;AAIvC,cAAMmG,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACpG,IAAD,CAAT,EAAiB;AAC5BxU,YAAAA,IAAI,EAAEhH,IAAI,CAAC6hB;AADiB,WAAjB,CAAb;AAGA,cAAMjiB,GAAG,GAAG4C,MAAM,CAACsf,GAAP,CAAWC,eAAX,CAA2BJ,IAA3B,CAAZ,CAPuC;;AAUvC,cAAMjZ,IAAI,GAAG4W,QAAQ,CAAC0C,aAAT,CAAuB,GAAvB,CAAb;AACAtZ,UAAAA,IAAI,CAACuZ,IAAL,GAAYriB,GAAZ;;AACA,cAAI8hB,YAAJ,EAAkB;AAChBhZ,YAAAA,IAAI,CAACwZ,YAAL,CAAkB,UAAlB,OAAiCliB,IAAI,CAACiB,QAAtC;AACD,WAFD,MAEO;AACLyH,YAAAA,IAAI,CAACwZ,YAAL,CAAkB,QAAlB;AACD;;AAED5C,UAAAA,QAAQ,CAAC5e,IAAT,CAAcyhB,WAAd,CAA0BzZ,IAA1B;AACAA,UAAAA,IAAI,CAACC,KAAL;AACA7E,UAAAA,UAAU,CAAC,YAAY;AAAA;;AACrB;AACAtB,YAAAA,MAAM,CAACsf,GAAP,CAAWM,eAAX,CAA2BxiB,GAA3B;AACA,gCAAA8I,IAAI,CAAC2Z,UAAL,sCAAiBC,WAAjB,CAA6B5Z,IAA7B;AACD,WAJS,EAIP,GAJO,CAAV;AApBuC;AAAA;AAyBxC,KAzBa;AAAA;AAAA;AAAA,GAAd;;AA2BA,sBACE+V;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwBze,IAAI,CAACiB,QAA7B,CADF,eAEEwd;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,uCADZ;AAEE,IAAA,OAAO,mBAASpX,KAAT;AAAA,UAAmB;AACxBA,QAAAA,KAAK,CAACa,cAAN;AACAb,QAAAA,KAAK,CAACW,eAAN;AACAyZ,QAAAA,QAAQ,CAAC,KAAD,CAAR;AAHwB;AAIzB,OAJM;AAAA;AAAA;AAAA;AAFT,YADF,CADF,eAaEhD;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA;AACE,IAAA,SAAS,EAAC,wCADZ;AAEE,IAAA,OAAO,mBAASpX,KAAT;AAAA,UAAmB;AACxBA,QAAAA,KAAK,CAACa,cAAN;AACAb,QAAAA,KAAK,CAACW,eAAN;AACAyZ,QAAAA,QAAQ,CAAC,IAAD,CAAR;AAHwB;AAIzB,OAJM;AAAA;AAAA;AAAA;AAFT,gBADF,CAbF,CAFF,CADF;AA+BD;;ICtDYc,4BAA4B,GAAG;IAC/BC,+BAA+B,GAAG;AAExC,SAASC,aAAT,OAOJ;AAAA,MAND9H,KAMC,QANDA,KAMC;AAAA,MALD9I,KAKC,QALDA,KAKC;AAAA,MAJD6Q,EAIC,QAJDA,EAIC;AAAA,yBAHDzI,MAGC;AAAA,MAHDA,MAGC,4BAHQ9Y,SAGR;AAAA,MAFDwhB,aAEC,QAFDA,aAEC;AAAA,MADD1K,QACC,QADDA,QACC;AACD,MAAMvD,GAAG,GAAGvO,MAAM,EAAlB;;AADC,kBAEyBJ,QAAQ,CAAC,KAAD,CAFjC;AAAA,MAEM6c,MAFN;AAAA,MAEcC,OAFd;;AAAA,mBAGuB9c,QAAQ,CAAC8L,KAAD,CAH/B;AAAA,MAGMxI,GAHN;AAAA,MAGWyZ,QAHX;;AAAA,wBAI+BxP,cAAc,EAJ7C;AAAA,MAIOvS,KAJP,mBAIOA,KAJP;AAAA,MAIc8P,OAJd,mBAIcA,OAJd;AAAA,MAIuBqC,GAJvB,mBAIuBA,GAJvB;;AAMD,MAAM6P,aAAa,GAAG7P,GAAG,CAACU,QAAJ,CAAa/S,GAAb,CAAiB,YAAjB,EAA+B,eAA/B,CAAtB;AAEAuF,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIwc,MAAM,IAAIlO,GAAG,CAAC/S,OAAlB,EAA2B;AACzB+S,MAAAA,GAAG,CAAC/S,OAAJ,CAAY4W,KAAZ;AACD;AACF,GAJQ,CAAT;AAMA,MAAMyK,WAAW,GAAGL,aAAa,IAAI,CAAC9hB,KAAG,CAACoZ,MAAD,EAAS,UAAT,EAAqB,KAArB,CAAzC;AACA,MAAMgJ,aAAa,GACjB,CAAAhJ,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,MAAnB,IACA,CAAAiC,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,QADnB,IAEA,CAAAiC,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,OAHnB;;AAKA,MAAMkc,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,QAAMC,WAAW,GAAG;AAClBtR,MAAAA,KAAK,EACHxI,GADG,WACHA,GADG,GAEFsZ,aAAa,GACVJ,4BADU,GAEVC;AALY,KAApB;;AAOA,QAAInZ,GAAG,IAAI,CAAA4Q,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,MAA9B,EAAsC;AACpCmL,MAAAA,WAAW,CAAC,OAAD,CAAX,GAAuB;AACrBnjB,QAAAA,IAAI,EAAEqJ,GADe;AAErBsR,QAAAA,KAAK,EAAEA;AAFc,OAAvB;AAIAwI,MAAAA,WAAW,CAAC,QAAD,CAAX,GAAwB3B,aAAxB;AACD,KAND,MAMO,IAAI,CAAAvH,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,SAArB,EAAgC;AAAA;;AACrCmc,MAAAA,WAAW,CAAC,OAAD,CAAX,oBAAuB9Z,GAAvB,oBAAuBA,GAAG,CAAE7D,QAAL,EAAvB,4BAA0C2d,WAAW,CAAC,OAAD,CAArD;AACD,KAFM,MAEA,IAAI9Z,GAAG,IAAI,CAAA4Q,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,UAA5B,EAAwC;AAC7Cmc,MAAAA,WAAW,CAAC,OAAD,CAAX,GAAuB,IAAI7C,IAAJ,CAASjX,GAAT,EAAc+Z,cAAd,EAAvB;AACD;;AACD,WAAOD,WAAP;AACD,GApBD;;AAsBA,MAAME,SAAS,YAATA,SAAS,CAAUzN,EAAV;AAAA,QAAiB;AAAA;AAmC9BiN,QAAAA,OAAO,CAAC,KAAD,CAAP;AACA3P,QAAAA,GAAG,CAACjE,OAAJ;AApC8B;;AAC9B,UAAI2G,EAAJ,EAAQA,EAAE,CAAC1N,cAAH;;AAER,UAAI,CAACyS,KAAL,EAAY;AACVzH,QAAAA,GAAG,CAACnE,KAAJ,wBAAiC,QAAjC;AACA;AACD;;AAED,UAAI,CAAC1F,GAAD,IAAQ4O,QAAZ,EAAsB;AACpB/E,QAAAA,GAAG,CAACnE,KAAJ,CAAa4L,KAAb,qBAAoC,QAApC;AACA;AACD;;AAX6B;AAAA,YAa1B,CAAAV,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,MAbO;AAc5B,cAAMnG,MAAK,GAAGxI,GAAd;;AACA,cAAIwI,MAAJ,EAAW;AACTA,YAAAA,MAAK,CAAC,UAAD,CAAL,GAAoByR,QAAQ,CAAClhB,kBAAkB,CAACyP,MAAK,CAAC,UAAD,CAAN,CAAnB,CAA5B;AACD;;AACD,cAAMjF,QAAQ,GAAMsG,GAAG,CAACnT,IAAV,gBAAyB4a,KAAvC;AAlB4B,iCAmBVzH,GAAG,CAACxC,MAAJ,CAAW1P,MAAX,CAAkB4L,QAAlB,EAA4BiF,MAA5B,CAnBU,iBAmBtBtE,GAnBsB;AAAA,gBAoBxBA,GAAG,CAACM,MAAJ,KAAe,GApBS;AAqB1BqF,cAAAA,GAAG,CAACnE,KAAJ,4BAAmC4L,KAAnC,QAA6C,QAA7C;AArB0B;AAuB1BzH,cAAAA,GAAG,CAACnE,KAAJ,CAAa4L,KAAb,iBAAgC,SAAhC;AAvB0B;AAAA;AAAA;AAAA;;AA0B5B,cAAM3a,IAAI,GAAG0iB,EAAE,sBAAMA,EAAN,mBAAc/H,KAAd,IAAsBtR,GAAtB,oCAAmCsR,KAAnC,IAA2CtR,GAA3C,QAAf;AA1B4B,iCA2BJtI,KAAK,CAACf,IAAD,CA3BD,iBA2BtBujB,SA3BsB;AAAA,gBA4BxBA,SAAS,CAAC/Q,OA5Bc;AA6B1BU,cAAAA,GAAG,CAACnE,KAAJ,qBAA4B4L,KAA5B,QAAsC,QAAtC;AA7B0B;AA+B1BzH,cAAAA,GAAG,CAACnE,KAAJ,YAAmB4L,KAAnB,iBAAsC,SAAtC;AA/B0B;AAAA;AAAA;AAAA;;AAAA;AAqC/B,KArCc;AAAA;AAAA;AAAA,GAAf;;AAuCA,MAAM6I,WAAW,YAAXA,WAAW,CAAU5N,EAAV;AAAA,QAAiB;AAChC,UAAIA,EAAJ,EAAQA,EAAE,CAAC1N,cAAH;AADwB;AAAA,YAE5B,CAAA+R,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,MAFS;AAAA;;AAG9B,cAAI,CAAC2C,KAAD,IAAW,CAACtR,GAAD,IAAQ4O,QAAvB,EAAkC;AAChC/E,YAAAA,GAAG,CAACnE,KAAJ,uBAA8B4L,KAA9B,QAAwC,QAAxC;AACA;AACD;;AAED,cAAM3a,IAAI,GAAG0iB,EAAE,sBAAMA,EAAN,qBAAc/H,KAAd,IAAsB,IAAtB,qCAAoCA,KAApC,IAA4C,IAA5C,QAAf;AAR8B,iCASN5Z,KAAK,CAACf,IAAD,CATC,iBASxBujB,SATwB;AAU9B,gBAAIA,SAAS,CAAC/Q,OAAd,EAAuB;AACrBU,cAAAA,GAAG,CAACnE,KAAJ,qBAA4B4L,KAA5B,QAAsC,QAAtC;AACD,aAFD,MAEO;AACLzH,cAAAA,GAAG,CAACnE,KAAJ,YAAmB4L,KAAnB,iBAAsC,SAAtC;AACD;;AAEDkI,YAAAA,OAAO,CAAC,KAAD,CAAP;AACA3P,YAAAA,GAAG,CAACjE,OAAJ;AAjB8B;AAAA,eAkBzB,IAAI,CAAAgL,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,QAAjB,IAA6BiT,MAA7B,YAA6BA,MAAM,CAAEwJ,IAAzC,EAA+C;AACpDX,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACD,SAFM,MAEA,IAAI,CAAA7I,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,OAAjB,IAA4B,CAAAiT,MAAM,QAAN,YAAAA,MAAM,CAAE7O,KAAR,CAAcpE,IAAd,MAAuB,QAAvD,EAAiE;AACtE8b,UAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AAtB+B;AAuBjC,KAvBgB;AAAA;AAAA;AAAA,GAAjB;;AAwBA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACG,CAACF,MAAD,iBACC;AACE,IAAA,SAAS,EAAEI,WAAW,GAAG,UAAH,GAAgB,EADxC;AAEE,IAAA,OAAO,EAAE,mBAAM;AACbH,MAAAA,OAAO,CAAC,CAAC,CAACG,WAAH,CAAP;AACD,KAJH;AAKE,wCAAgCrI;AALlC,kBAOE,oBAAC,WAAD,EAAiBuI,cAAc,EAA/B,CAPF,EAQGF,WAAW,iBAAI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IARlB,CAFJ,EAcGJ,MAAM,iBACL;AAAK,IAAA,SAAS,EAAC,OAAf;AAAuB,wCAAgCjI;AAAvD,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,aAAD;AACE,IAAA,GAAG,EAAEjG,GADP;AAEE,IAAA,MAAM,EAAEuF,MAFV;AAGE,IAAA,GAAG,EAAE5Q,GAHP;AAIE,IAAA,QAAQ,EAAEyZ,QAJZ;AAKE,IAAA,QAAQ;AALV,IADF,CADF,eAUE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,IAAA,OAAO,EAAEjS,OAFX;AAGE,IAAA,OAAO,EAAEwS,SAHX;AAIE,IAAA,QAAQ,EAAC;AAJX,YADF,CADF,eAWE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,UADZ;AAEE,IAAA,OAAO,EAAE;AAAA,aAAMR,OAAO,CAAC,KAAD,CAAb;AAAA,KAFX;AAGE,IAAA,QAAQ,EAAC;AAHX,cADF,CAXF,EAoBG,CAAC5K,QAAD,IAAagL,aAAb,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,oBADZ;AAEE,IAAA,OAAO,EAAEO,WAFX;AAGE,IAAA,QAAQ,EAAC;AAHX,cADF,CArBJ,CAVF,CAfJ,CADF;AA8DD;;ACxLM,SAASE,WAAT,OAA6C;AAAA,MAAtBpJ,UAAsB,QAAtBA,UAAsB;AAAA,MAAVC,MAAU,QAAVA,MAAU;AAClD,MAAMrH,GAAG,GAAG5C,YAAY,EAAxB;AACA,MAAMqS,aAAa,GAAGzP,GAAG,CAACpD,OAAJ,CAAY,0BAAZ,CAAtB;AAEA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACG9N,MAAM,CAACC,IAAP,CAAYqY,UAAZ,EAAwBpY,GAAxB,CAA4B,UAACC,GAAD;AAAA,wBAC3B;AAAI,MAAA,GAAG,EAAE,gBAAgBA;AAAzB,oBACE;AAAI,MAAA,GAAG,EAAE;AAAT,OAAaA,GAAb,CADF,eAEE;AAAI,MAAA,GAAG,EAAE;AAAT,oBACE,oBAAC,aAAD;AACE,MAAA,KAAK,EAAEA,GADT;AAEE,MAAA,KAAK,EAAEoY,MAAM,CAACpY,GAAD,CAFf;AAGE,MAAA,EAAE,EAAC,6CAHL;AAIE,MAAA,MAAM,EAAEmY,UAAU,CAACnY,GAAD,CAJpB;AAKE,MAAA,aAAa,EAAEwgB,aAAa,IAAI,CAAC,MAAD,EAASxZ,QAAT,CAAkBhH,GAAlB;AALlC,MADF,CAFF,CAD2B;AAAA,GAA5B,CADH,CADF;AAkBD;;ACfM,SAASwhB,gBAAT,OAAkD;AAAA,MAAtBrJ,UAAsB,QAAtBA,UAAsB;AAAA,MAAVC,MAAU,QAAVA,MAAU;;AAAA,kBACzBxU,QAAQ,CAAC,EAAD,CADiB;AAAA,MAChD6d,OADgD;AAAA,MACvCC,UADuC;;AAAA,mBAE/B9d,QAAQ,EAFuB;AAAA,MAEhDsG,IAFgD;AAAA,MAE1CyX,OAF0C;;AAAA,mBAGT/d,QAAQ,CAAC5E,SAAD,CAHC;AAAA,MAGhD4iB,eAHgD;AAAA,MAG/BC,kBAH+B;;AAAA,mBAKzBje,QAAQ,CAAC,KAAD,CALiB;AAAA,MAKhD8K,OALgD;AAAA,MAKvCkE,UALuC;;AAAA,mBAM7BhP,QAAQ,CAAC5E,SAAD,CANqB;AAAA,MAMhDiS,KANgD;AAAA,MAMzC6Q,QANyC;;AAAA,wBAOvC3Q,cAAc,EAPyB;AAAA,MAO/CJ,GAP+C,mBAO/CA,GAP+C;;AAQvD,MAAMyP,aAAa,GAAGzP,GAAG,CAACpD,OAAJ,CAAY,0BAAZ,CAAtB;;AAEA,MAAMoU,UAAU,YAAVA,UAAU,CAAUtO,EAAV;AAAA,QAAiB;AAC/BA,MAAAA,EAAE,CAAC1N,cAAH;;AACA,UAAI,CAAC0b,OAAD,IAAY,CAACvX,IAAjB,EAAuB;AACrB4X,QAAAA,QAAQ,CAAC,+BAAD,CAAR;AACA;AACD;;AACDlP,MAAAA,UAAU,CAAC,IAAD,CAAV;AACAkP,MAAAA,QAAQ,CAAC9iB,SAAD,CAAR;AACA,UAAMyL,QAAQ,GAAMsG,GAAG,CAACnT,IAAV,sBAA+B6jB,OAA7C;AAR+B,6BASb1Q,GAAG,CAACxC,MAAJ,CAAW1P,MAAX,CAAkB4L,QAAlB,EAA4BP,IAA5B,CATa,iBASzBkB,GATyB;AAU/B,YAAIA,GAAG,CAACM,MAAJ,KAAe,GAAnB,EAAwB;AACtBoW,UAAAA,QAAQ,CAAC,uBAAD,CAAR;AACAlP,UAAAA,UAAU,CAAC,KAAD,CAAV;AACA;AACD;;AACD8O,QAAAA,UAAU,CAAC,EAAD,CAAV;AACAC,QAAAA,OAAO,CAAC3iB,SAAD,CAAP;AACA4T,QAAAA,UAAU,CAAC,KAAD,CAAV;AACA7B,QAAAA,GAAG,CAACnE,KAAJ,CAAa6U,OAAb,iBAAkC,SAAlC;AACA1Q,QAAAA,GAAG,CAACjE,OAAJ;AAnB+B;AAoBhC,KApBe;AAAA;AAAA;AAAA,GAAhB;;AAsBA,MAAMkV,UAAU,YAAVA,UAAU;AAAA,QAAe;AAC7BpP,MAAAA,UAAU,CAAC,IAAD,CAAV;AACAkP,MAAAA,QAAQ,CAAC9iB,SAAD,CAAR;AACA,UAAMyL,QAAQ,GAAMsG,GAAG,CAACnT,IAAV,sBAA+BgkB,eAA7C;AAH6B,6BAIX7Q,GAAG,CAACxC,MAAJ,CAAWxP,MAAX,CAAkB0L,QAAlB,EAA4BP,IAA5B,CAJW,iBAIvBkB,GAJuB;AAK7B,YAAIA,GAAG,CAACM,MAAJ,KAAe,GAAnB,EAAwB;AACtBoW,UAAAA,QAAQ,CAAC,uBAAD,CAAR;AACAlP,UAAAA,UAAU,CAAC,KAAD,CAAV;AACA;AACD;;AACDA,QAAAA,UAAU,CAAC,KAAD,CAAV;AACA7B,QAAAA,GAAG,CAACnE,KAAJ,CAAagV,eAAb,eAAwC,SAAxC;AACA7Q,QAAAA,GAAG,CAACjE,OAAJ;AAZ6B;AAa9B,KAbe;AAAA;AAAA;AAAA,GAAhB;;AAeA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACG8U,eAAe,iBACd,oBAAC,OAAD;AACE,IAAA,OAAO,EAAElT,OADX;AAEE,IAAA,QAAQ,EAAE;AAAA,aAAMmT,kBAAkB,CAAC7iB,SAAD,CAAxB;AAAA,KAFZ;AAGE,IAAA,SAAS,EAAE;AAAA,aAAMgjB,UAAU,CAAA,CAAhB;AAAA,KAHb;AAIE,IAAA,OAAO,+BAA6BJ,eAA7B;AAJT,IAFJ,EAUG/hB,MAAM,CAACC,IAAP,CAAYsY,MAAM,CAAC,OAAD,CAAlB,EAA6BrY,GAA7B,CAAiC,UAACC,GAAD;AAAA,wBAChC;AAAI,MAAA,GAAG,EAAE,qBAAqBA;AAA9B,oBACE;AAAI,MAAA,GAAG,EAAE;AAAT,OAAaA,GAAb,CADF,eAEE;AAAI,MAAA,GAAG,EAAE;AAAT,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,aAAD;AACE,MAAA,KAAK,aAAWA,GADlB;AAEE,MAAA,KAAK,EAAEoY,MAAM,CAAC,OAAD,CAAN,CAAgBpY,GAAhB,CAFT;AAGE,MAAA,EAAE,EAAC,wDAHL;AAIE,MAAA,MAAM,EAAEmY,UAAU,CAAC,OAAD,CAAV,CAAoB,sBAApB,CAJV;AAKE,MAAA,aAAa,EAAE;AALjB,MADF,eAQE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,MAAD;AACE,MAAA,OAAO,EAAE,iBAAC1E,EAAD,EAAQ;AACfA,QAAAA,EAAE,CAAC1N,cAAH;AACA8b,QAAAA,kBAAkB,CAAC7hB,GAAD,CAAlB;AACD;AAJH,MADF,CARF,CADF,CAFF,CADgC;AAAA,GAAjC,CAVH,EAkCGH,MAAM,CAACC,IAAP,CAAYsY,MAAM,CAAC,OAAD,CAAlB,EAA6B5X,MAA7B,KAAwC,CAAxC,iBACC,6CACE;AAAI,IAAA,OAAO,EAAE;AAAb,yBADF,CAnCJ,EAuCGggB,aAAa,iBACZ,6CACE;AAAI,IAAA,OAAO,EAAE;AAAb,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,qBADF,eAEE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,KAAD;AACE,IAAA,WAAW,EAAC,KADd;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,SAAS,EAAC,UAHZ;AAIE,IAAA,KAAK,EAAEiB,OAJT;AAKE,IAAA,QAAQ,EAAE,kBAAChO,EAAD;AAAA,aAAQiO,UAAU,CAACjO,EAAD,CAAlB;AAAA;AALZ,IADF,EAQGxC,KAAK,iBAAI,oBAAC,SAAD,QAAYA,KAAZ,CARZ,CADF,eAWE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,UAAD;AAAY,IAAA,QAAQ,EAAE,kBAACwC,EAAD;AAAA,aAAQkO,OAAO,CAAClO,EAAD,CAAf;AAAA;AAAtB,IADF,EAEGvJ,IAAI,IAAIA,IAAI,CAACpL,QAFhB,CAXF,eAeE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,IAAA,OAAO,EAAE4P,OAFX;AAGE,IAAA,OAAO,EAAEqT,UAHX;AAIE,IAAA,QAAQ,EAAE,CAACN,OAAD,IAAY,CAACvX;AAJzB,cADF,CAfF,CAFF,CADF,CAxCJ,CADF;AA2ED;;ACjID,IAAM+X,cAAc,GAAG,CACrB,OADqB,EAErB,aAFqB,EAGrB,gBAHqB,EAIrB,iBAJqB,CAAvB;AAOO,SAASC,WAAT,OAA6C;AAAA,MAAtB/J,UAAsB,QAAtBA,UAAsB;AAAA,MAAVC,MAAU,QAAVA,MAAU;AAClD,MAAMrH,GAAG,GAAG5C,YAAY,EAAxB;AACA,MAAMqS,aAAa,GAAGzP,GAAG,CAACpD,OAAJ,CAAY,0BAAZ,CAAtB;AAEA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACG9N,MAAM,CAACC,IAAP,CAAYqY,UAAZ,EAAwBpY,GAAxB,CAA4B,UAACC,GAAD;AAAA,wBAC3B;AAAI,MAAA,GAAG,EAAE,YAAYA;AAArB,oBACE;AAAI,MAAA,GAAG,EAAE;AAAT,OAAaA,GAAb,CADF,eAEE;AAAI,MAAA,GAAG,EAAE;AAAT,oBACE,oBAAC,aAAD;AACE,MAAA,KAAK,EAAEA,GADT;AAEE,MAAA,KAAK,EAAEoY,MAAM,CAACpY,GAAD,CAFf;AAGE,MAAA,EAAE,EAAC,6CAHL;AAIE,MAAA,MAAM,EAAEmY,UAAU,CAACnY,GAAD,CAJpB;AAKE,MAAA,aAAa,EAAEwgB,aAAa,IAAIyB,cAAc,CAACjb,QAAf,CAAwBhH,GAAxB;AALlC,MADF,CAFF,CAD2B;AAAA,GAA5B,CADH,CADF;AAkBD;;IC9BYmiB,cAAc,GAAG;AAC5BC,EAAAA,MAAM,EAAE;AACN/I,IAAAA,IAAI,EAAE,QADA;AAENgJ,IAAAA,KAAK,EAAE,CAAC,0BAAD,CAFD;AAGN5U,IAAAA,MAAM,EAAE;AAHF,GADoB;AAM5B6U,EAAAA,IAAI,EAAE;AACJjJ,IAAAA,IAAI,EAAE,YADF;AAEJgJ,IAAAA,KAAK,EAAE,CAAC,wBAAD,CAFH;AAGJ5U,IAAAA,MAAM,EAAE;AAHJ,GANsB;AAW5B8U,EAAAA,IAAI,EAAE;AACJlJ,IAAAA,IAAI,EAAE,YADF;AAEJgJ,IAAAA,KAAK,EAAE,CAAC,6BAAD,CAFH;AAGJ5U,IAAAA,MAAM,EAAE;AAHJ;AAXsB;AAkBvB,SAAS+U,YAAT,GAAwB;AAC7B,MAAMlI,SAAS,GAAGnM,YAAY,EAA9B;;AAEA,MAAMR,OAAO,GAAG,SAAVA,OAAU,CAAC0U,KAAD,EAAW;AACzB,WAAOA,KAAK,CAACI,IAAN,CAAW,UAACzU,IAAD;AAAA,aAAUsM,SAAS,CAAC3M,OAAV,CAAkBK,IAAlB,CAAV;AAAA,KAAX,CAAP;AACD,GAFD;;AAIA,MAAM0U,QAAQ,GAAG,SAAXA,QAAW,CAACC,SAAD,EAAe;AAC9BrI,IAAAA,SAAS,CAAC9M,QAAV,CAAmB2U,cAAc,CAACQ,SAAD,CAAd,CAA0BlV,MAA7C,EAAqD;AACnD5K,MAAAA,IAAI,EAAEyX,SAAS,CAACrM;AADmC,KAArD;AAGD,GAJD;;AAMA,sBACEqO,cAACsG,QAAD,QACG/iB,MAAM,CAACC,IAAP,CAAYqiB,cAAZ,EAA4BpiB,GAA5B,CAAgC,UAAC4iB,SAAD,EAAe;AAC9C,QAAIhV,OAAO,CAACwU,cAAc,CAACQ,SAAD,CAAd,CAA0BN,KAA3B,CAAX,EAA8C;AAC5C,0BACE/F;AACE,QAAA,GAAG,oBAAkB6F,cAAc,CAACQ,SAAD,CAAd,CAA0BtJ,IADjD;AAEE,QAAA,SAAS,EAAC,aAFZ;AAGE,QAAA,OAAO,EAAE,mBAAM;AACbqJ,UAAAA,QAAQ,CAACC,SAAD,CAAR;AACD;AALH,SAOGR,cAAc,CAACQ,SAAD,CAAd,CAA0BtJ,IAP7B,CADF;AAWD;AACF,GAdA,CADH,CADF;AAmBD;;ACnDc,SAASwJ,eAAT,GAA2B;AACxC,MAAMC,UAAU,GAAG9e,MAAM,CAAC,KAAD,CAAzB;AACA,MAAMtF,GAAG,GAAG+F,WAAW,CAAC;AAAA,WAAMqe,UAAU,CAACtjB,OAAjB;AAAA,GAAD,EAA2B,EAA3B,CAAvB;AAEAyE,EAAAA,SAAS,CAAC,YAAM;AACd6e,IAAAA,UAAU,CAACtjB,OAAX,GAAqB,IAArB;AAEA,WAAO,YAAM;AACXsjB,MAAAA,UAAU,CAACtjB,OAAX,GAAqB,KAArB;AACD,KAFD;AAGD,GANQ,CAAT;AAQA,SAAOd,GAAP;AACD;;ACZc,SAASqkB,UAAT,CACbC,EADa,EAEbC,IAFa,EAGbpT,YAHa,EAIb;AAAA,MAFAoT,IAEA;AAFAA,IAAAA,IAEA,GAFO,EAEP;AAAA;;AAAA,MADApT,YACA;AADAA,IAAAA,YACA,GADe;AAAEnB,MAAAA,OAAO,EAAE;AAAX,KACf;AAAA;;AACA,MAAMwU,UAAU,GAAGlf,MAAM,CAAC,CAAD,CAAzB;AACA,MAAMmf,SAAS,GAAGN,eAAe,EAAjC;;AAFA,kBAGqBjf,QAAQ,CAACiM,YAAD,CAH7B;AAAA,MAGOjC,KAHP;AAAA,MAGclK,GAHd;;AAKA,MAAM0f,QAAQ,GAAG3e,WAAW,CAAC,YAAa;AACxC,QAAM4e,MAAM,GAAG,EAAEH,UAAU,CAAC1jB,OAA5B;AACAkE,IAAAA,GAAG,CAAC,UAACqM,SAAD;AAAA,0BAAqBA,SAArB;AAAgCrB,QAAAA,OAAO,EAAE;AAAzC;AAAA,KAAD,CAAH;AAEA,WAAOsU,EAAE,MAAF,mCAAY7S,IAAZ,CACL,UAACT,KAAD,EAAW;AACTyT,MAAAA,SAAS,MACPE,MAAM,KAAKH,UAAU,CAAC1jB,OADxB,IAEEkE,GAAG,CAAC;AAAEgM,QAAAA,KAAK,EAALA,KAAF;AAAShB,QAAAA,OAAO,EAAE;AAAlB,OAAD,CAFL;AAIA,aAAOgB,KAAP;AACD,KAPI,EAQL,UAACuB,KAAD,EAAW;AACTkS,MAAAA,SAAS,MACPE,MAAM,KAAKH,UAAU,CAAC1jB,OADxB,IAEEkE,GAAG,CAAC;AAAEuN,QAAAA,KAAK,EAALA,KAAF;AAASvC,QAAAA,OAAO,EAAE;AAAlB,OAAD,CAFL;AAIA,aAAOuC,KAAP;AACD,KAdI,CAAP;AAgBD,GApB2B,EAoBzBgS,IApByB,CAA5B;AAsBA,SAAO,CAACrV,KAAD,EAAQwV,QAAR,CAAP;AACD;;AChCc,SAASE,QAAT,CAAkBN,EAAlB,EAAsBC,IAAtB,EAAiC;AAAA,MAAXA,IAAW;AAAXA,IAAAA,IAAW,GAAJ,EAAI;AAAA;;AAAA,oBACpBF,UAAU,CAACC,EAAD,EAAKC,IAAL,EAAW;AAC7CvU,IAAAA,OAAO,EAAE;AADoC,GAAX,CADU;AAAA,MACvCd,KADuC;AAAA,MAChCwV,QADgC;;AAK9Cnf,EAAAA,SAAS,CAAC,YAAM;AACdmf,IAAAA,QAAQ;AACT,GAFQ,EAEN,CAACA,QAAD,CAFM,CAAT;AAIA,SAAOxV,KAAP;AACD;;ACRM,SAAS2V,WAAT,CAAqB7d,KAArB,EAA4B;AACjC,MAAMqL,GAAG,GAAG5C,YAAY,EAAxB;;AADiC,wBAEPC,KAAK,CAACxK,QAAN,CAAe,KAAf,CAFO;AAAA,MAE5B6J,MAF4B;AAAA,MAEpB+V,SAFoB;;AAIjC,MAAMlZ,YAAY,YAAZA,YAAY,CAAUyG,GAAV,EAAe/Q,GAAf;AAAA,QAAuB;AAAA,6BACjC+Q,GAAG,CAACxC,MAAJ,CAAWjE,YAAX,CAAwByG,GAAG,CAAC0S,UAA5B,EAAwCzjB,GAAxC,CADiC;AAEvC+Q,QAAAA,GAAG,CAACnE,KAAJ,YAAmB5M,GAAnB,iBAAoC,SAApC;AACAwjB,QAAAA,SAAS,CAAC,CAAC/V,MAAF,CAAT;AAHuC;AAIxC,KAJiB;AAAA;AAAA;AAAA,GAAlB;;AAMA,MAAMlD,WAAW,YAAXA,WAAW,CAAUwG,GAAV,EAAe/Q,GAAf;AAAA,QAAuB;AAAA,6BAChC+Q,GAAG,CAACxC,MAAJ,CAAWhE,WAAX,CAAuBwG,GAAG,CAAC0S,UAA3B,EAAuCzjB,GAAvC,CADgC;AAEtC+Q,QAAAA,GAAG,CAACnE,KAAJ,YAAmB5M,GAAnB,eAAkC,SAAlC;AACAwjB,QAAAA,SAAS,CAAC,CAAC/V,MAAF,CAAT;AAHsC;AAIvC,KAJgB;AAAA;AAAA;AAAA,GAAjB;;AAMA,MAAMG,KAAK,GAAG0V,QAAQ;AAAA,QAAa;AAAA,6BACVvS,GAAG,CAACxC,MAAJ,CAAWlE,SAAX,CAAqB0G,GAAG,CAAC0S,UAAzB,CADU,iBAC3BlT,QAD2B;AAAA,+BAEdA,QAAQ,CAAC/G,IAAT,EAFc,OAG1Bka,WAH0B;AAAA;AAIlC,KAJqB;AAAA;AAAA;AAAA,KAInB,CAACjW,MAAD,CAJmB,CAAtB;AAMA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACGG,KAAK,CAACc,OAAN,gBACC,2CADD,GAEGd,KAAK,CAACqD,KAAN,gBACF,0CAAWrD,KAAK,CAACqD,KAAN,CAAY/D,OAAvB,CADE,gBAGF;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,wBADF,eAIE,+BAJF,EAKGU,KAAK,CAAC8B,KAAN,CAAYiU,SAAZ,CAAsBnjB,MAAtB,KAAiC,CAAjC,iBACC,sEANJ,eAQE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,mCACGoN,KAAK,CAAC8B,KAAN,CAAYiU,SAAZ,CAAsB5jB,GAAtB,CAA0B,UAAC6jB,KAAD;AAAA,wBACzB,6CACE,gCAAKA,KAAK,CAACpU,KAAX,CADF,eAEE,6CACE;AACE,MAAA,SAAS,EAAC,4BADZ;AAEE,MAAA,OAAO,EAAE;AAAA,eAAMlF,YAAY,CAACyG,GAAD,EAAM6S,KAAK,CAAC5d,EAAZ,CAAlB;AAAA;AAFX,iBADF,CAFF,CADyB;AAAA,GAA1B,CADH,CADF,CARF,CADF,eA2BE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,wBADF,eAIE,+BAJF,EAKG4H,KAAK,CAAC8B,KAAN,CAAYmU,SAAZ,CAAsBrjB,MAAtB,KAAiC,CAAjC,iBACC,sEANJ,eAQE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,mCACGoN,KAAK,CAAC8B,KAAN,CAAYmU,SAAZ,CAAsB9jB,GAAtB,CAA0B,UAAC6jB,KAAD;AAAA,wBACzB,6CACE,gCAAKA,KAAK,CAACpU,KAAX,CADF,eAEE,6CACE;AACE,MAAA,SAAS,EAAC,2BADZ;AAEE,MAAA,OAAO,EAAE;AAAA,eAAMjF,WAAW,CAACwG,GAAD,EAAM6S,KAAK,CAAC5d,EAAZ,CAAjB;AAAA;AAFX,gBADF,CAFF,CADyB;AAAA,GAA1B,CADH,CADF,CARF,CA3BF,CANJ,CADF;AAgED;;AAED,IAAM0d,WAAW,GAAG,SAAdA,WAAc,CAAC3e,MAAD,EAAY;AAC9B,MAAM+e,MAAM,GAAGC,aAAa,CAAChf,MAAM,CAAC4e,SAAR,CAA5B;AACA,SAAO;AACLA,IAAAA,SAAS,EAAE5e,MAAM,CAAC4e,SAAP,CAAiBxkB,MAAjB,CACT,UAAC0D,IAAD;AAAA,aAAU,CAACkC,MAAM,CAAC8e,SAAP,CAAiB7c,QAAjB,CAA0BnE,IAAI,CAACmD,EAA/B,CAAX;AAAA,KADS,CADN;AAIL6d,IAAAA,SAAS,EAAE9e,MAAM,CAAC8e,SAAP,CAAiB9jB,GAAjB,CAAqB,UAACiG,EAAD;AAAA,aAAQ8d,MAAM,CAAC9d,EAAD,CAAd;AAAA,KAArB;AAJN,GAAP;AAMD,CARD;;AAUA,IAAM+d,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SACpBA,KAAK,CAACnF,MAAN,CAAa,UAAClC,GAAD,EAAM9Z,IAAN,EAAe;AAC1B8Z,IAAAA,GAAG,CAAC9Z,IAAI,CAACmD,EAAN,CAAH,GAAenD,IAAf;AACA,WAAO8Z,GAAP;AACD,GAHD,EAGG,EAHH,CADoB;AAAA,CAAtB;;AClGO,SAASsH,cAAT,GAA0B;AAAA,wBACgB9S,cAAc,EAD9B;AAAA,MACvBJ,GADuB,mBACvBA,GADuB;AAAA,MAClBrS,GADkB,mBAClBA,GADkB;AAAA,MACbqG,MADa,mBACbA,MADa;AAAA,MACL2J,OADK,mBACLA,OADK;AAAA,MACI2B,OADJ,mBACIA,OADJ;;AAE/B,MAAM6T,GAAG,GAAG/S,cAAc,EAA1B;;AAF+B,wBAIL/C,KAAK,CAACxK,QAAN,CAAe,KAAf,CAJK;AAAA,MAIxBgK,KAJwB;AAAA,MAIjBkC,QAJiB;;AAM/B,MAAMqU,cAAc,GAAG,SAAjBA,cAAiB,CAAC7W,QAAD;AAAA;AAAA,UAA0B;AAAA,+BACzC4W,GAAG,CAACtlB,KAAJ,CAAU;AAAE0O,UAAAA,QAAQ,EAARA;AAAF,SAAV,EAAwB,YAAxB,CADyC;AAE/CwC,UAAAA,QAAQ,CAAC,CAAClC,KAAF,CAAR;AACAmD,UAAAA,GAAG,CAACjE,OAAJ;AAH+C;AAIhD,OAJsB;AAAA;AAAA;AAAA;AAAA,GAAvB;;AAMA,MAAMsX,eAAe,GAAG,SAAlBA,eAAkB,CAAC9W,QAAD;AAAA;AAAA,UAA0B;AAAA,+BAC1C4W,GAAG,CAAChT,GAAJ,CAAQ;AAAE5D,UAAAA,QAAQ,EAARA;AAAF,SAAR,EAAsB,YAAtB,CAD0C;AAEhDwC,UAAAA,QAAQ,CAAC,CAAClC,KAAF,CAAR;AACAmD,UAAAA,GAAG,CAACjE,OAAJ;AAHgD;AAIjD,OAJuB;AAAA;AAAA;AAAA;AAAA,GAAxB;;AAMAsB,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpBvF,IAAAA,GAAG,CAAC,YAAD,CAAH;AACD,GAFD,EAEG,EAFH;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,iBADF,EAEG,CAACgQ,OAAD,IAAY,CAAC2B,OAAb,IAAwBtL,MAAxB,iBACC,oBAAC,KAAD,CAAO,QAAP,qBACE,oBAAC,KAAD,qBACE,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,cADF,CADF,CADF,EAMGA,MAAM,CAACsf,MAAP,CAActkB,GAAd,CAAkB,UAACuN,QAAD;AAAA,wBACjB;AAAI,MAAA,GAAG,EAAEA;AAAT,oBACE,yCADF,eAEE,gCAAKA,QAAL,CAFF,eAGE;AAAI,MAAA,SAAS,EAAC;AAAd,oBACE,oBAAC,MAAD;AAAQ,MAAA,SAAS,EAAC,0BAAlB;AAA6C,MAAA,QAAQ;AAArD,iBADF,CAHF,CADiB;AAAA,GAAlB,CANH,CADF,eAmBE,oBAAC,KAAD,qBACE,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,eADF,CADF,CADF,EAMGvI,MAAM,CAACuf,OAAP,CAAevkB,GAAf,CAAmB,UAACuN,QAAD;AAAA,wBAClB;AAAI,MAAA,GAAG,EAAEA;AAAT,oBACE,0CADF,eAEE,gCAAKA,QAAL,CAFF,eAGE,6CACE,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,oCADZ;AAEE,MAAA,OAAO,EAAE8W,eAAe,CAAC9W,QAAD;AAF1B,iBADF,CAHF,CADkB;AAAA,GAAnB,CANH,CAnBF,eAwCE,oBAAC,KAAD,qBACE,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,iBADF,CADF,CADF,EAMGvI,MAAM,CAAC4e,SAAP,CAAiB5jB,GAAjB,CAAqB,UAACuN,QAAD;AAAA,wBACpB;AAAI,MAAA,GAAG,EAAEA;AAAT,oBACE,4CADF,eAEE,gCAAKA,QAAL,CAFF,eAGE,6CACE,oBAAC,MAAD;AACE,MAAA,SAAS,EAAC,qCADZ;AAEE,MAAA,OAAO,EAAE6W,cAAc,CAAC7W,QAAD;AAFzB,gBADF,CAHF,CADoB;AAAA,GAArB,CANH,CAxCF,CAHJ,CADF,eAoEE;AAAK,IAAA,SAAS,EAAC;AAAf,IApEF,CADF;AAwED;;AC9FD,IAAMiX,eAAe,GAAG/X,aAAa,CAAC,EAAD,CAArC;IAEaqG,OAAO,GAAG;AACrBuP,EAAAA,MAAM,EAAE;AACN/I,IAAAA,IAAI,EAAE,QADA;AAENgJ,IAAAA,KAAK,EAAE,CAAC,0BAAD,CAFD;AAGN5U,IAAAA,MAAM,EAAE;AAHF,GADa;AAMrB6U,EAAAA,IAAI,EAAE;AACJjJ,IAAAA,IAAI,EAAE,YADF;AAEJgJ,IAAAA,KAAK,EAAE,CAAC,wBAAD,CAFH;AAGJ5U,IAAAA,MAAM,EAAE;AAHJ,GANe;AAWrB8U,EAAAA,IAAI,EAAE;AACJlJ,IAAAA,IAAI,EAAE,YADF;AAEJgJ,IAAAA,KAAK,EAAE,CAAC,6BAAD,CAFH;AAGJ5U,IAAAA,MAAM,EAAE;AAHJ;AAXe;AAkBvB;AACA;AACA;AACA;;AACO,SAAS+W,oBAAT,OAAmD;AAAA,MAAnBvb,KAAmB,QAAnBA,KAAmB;AAAA,MAAZtG,QAAY,QAAZA,QAAY;AACxD,MAAM2X,SAAS,GAAGnM,YAAY,EAA9B;;AADwD,kBAExBvK,QAAQ,CAAC,EAAD,CAFgB;AAAA,MAEjD6gB,QAFiD;AAAA,MAEvCC,WAFuC;;AAIxD,WAASC,gBAAT,CAA0BjR,OAA1B,EAAmC;AACjCgR,IAAAA,WAAW,CACTzb,KAAK,CAAC4V,MAAN,CACE,UAAClC,GAAD,EAAM9Z,IAAN,EAAe;AACb8Z,MAAAA,GAAG,CAAI9Z,IAAI,CAACjF,IAAT,SAAiBiF,IAAI,CAACmD,EAAtB,CAAH,GAAiC0N,OAAjC;AACA,aAAOiJ,GAAP;AACD,KAJH,EAKE;AAAE7R,MAAAA,GAAG,EAAE4I;AAAP,KALF,CADS,CAAX;AASD;;AAED,WAASkR,eAAT,CAAyB/hB,IAAzB,EAA+B;AAC7B6hB,IAAAA,WAAW,CAAC,UAAC9W,KAAD;AAAA;;AAAA,0BACPA,KADO;AAEV9C,QAAAA,GAAG,EAAE;AAFK,mBAGNjI,IAAI,CAACjF,IAHC,SAGOiF,IAAI,CAACmD,EAHZ,IAGmB,CAAC4H,KAAK,CAAI/K,IAAI,CAACjF,IAAT,SAAiBiF,IAAI,CAACmD,EAAtB,CAHzB;AAAA,KAAD,CAAX;AAKD;;AAED,WAAS0c,QAAT,CAAkBC,SAAlB,EAA6B;AAC3BrI,IAAAA,SAAS,CAAC9M,QAAV,CAAmBqF,OAAO,CAAC8P,SAAD,CAAP,CAAmBlV,MAAtC,EAA8C;AAC5CxE,MAAAA,KAAK,EAAEA,KAAK,CAAC9J,MAAN,CAAa,UAAC0D,IAAD;AAAA,eAAU4hB,QAAQ,CAAI5hB,IAAI,CAACjF,IAAT,SAAiBiF,IAAI,CAACmD,EAAtB,CAAlB;AAAA,OAAb;AADqC,KAA9C;AAGD;;AAED,sBACE,oBAAC,eAAD,CAAiB,QAAjB;AACE,IAAA,KAAK,EAAE;AACL0c,MAAAA,QAAQ,EAARA,QADK;AAELiC,MAAAA,gBAAgB,EAAhBA,gBAFK;AAGLC,MAAAA,eAAe,EAAfA,eAHK;AAILH,MAAAA,QAAQ,EAARA;AAJK;AADT,KAQG9hB,QARH,CADF;AAYD;AAED;AACA;AACA;AACA;;AACO,SAASkiB,gBAAT,GAA4B;AAAA,oBACMxW,UAAU,CAACkW,eAAD,CADhB;AAAA,MACzBI,gBADyB,eACzBA,gBADyB;AAAA,MACPF,QADO,eACPA,QADO;;AAGjC,sBACE,oBAAC,QAAD;AACE,IAAA,GAAG,EAAEA,QAAQ,CAAC3Z,GADhB;AAEE,IAAA,QAAQ,EAAE6Z,gBAFZ;AAGE,IAAA,KAAK,EAAE;AAAEG,MAAAA,UAAU,EAAE;AAAd,KAHT;AAIE,IAAA,KAAK,EAAEL,QAAQ,CAAC3Z;AAJlB,IADF;AAQD;AAED;AACA;AACA;;AACO,SAASia,YAAT,QAAgC;AAAA,MAARliB,IAAQ,SAARA,IAAQ;;AAAA,qBACCwL,UAAU,CAACkW,eAAD,CADX;AAAA,MAC7BE,QAD6B,gBAC7BA,QAD6B;AAAA,MACnBG,eADmB,gBACnBA,eADmB;;AAErC,MAAMI,KAAK,GAAMniB,IAAI,CAACjF,IAAX,SAAmBiF,IAAI,CAACmD,EAAnC;AACA,MAAM0J,KAAK,GAAG+U,QAAQ,CAACO,KAAD,CAAtB;AAEA,sBACE,oBAAC,QAAD;AACE,IAAA,GAAG,EAAEtV,KADP;AAEE,IAAA,QAAQ,EAAE;AAAA,aAAMkV,eAAe,CAAC/hB,IAAD,CAArB;AAAA,KAFZ;AAGE,IAAA,KAAK,EAAE6M;AAHT,IADF;AAOD;AAED;AACA;AACA;;AACO,SAASuV,oBAAT,GAAgC;AACrC,MAAM3K,SAAS,GAAGnM,YAAY,EAA9B;;AADqC,qBAENE,UAAU,CAACkW,eAAD,CAFJ;AAAA,MAE7BE,QAF6B,gBAE7BA,QAF6B;AAAA,MAEnB/B,QAFmB,gBAEnBA,QAFmB;;AAGrC,MAAM/T,QAAQ,GAAG9O,MAAM,CAACuY,MAAP,CAAcqM,QAAd,EAAwBS,KAAxB,CAA8B,UAACC,CAAD;AAAA,WAAO,CAACA,CAAR;AAAA,GAA9B,CAAjB;AACA,MAAMnM,OAAO,GAAGnZ,MAAM,CAACC,IAAP,CAAY+S,OAAZ,EAAqB9S,GAArB,CAAyB,UAAC0N,MAAD;AAAA,WAAa;AACpD4L,MAAAA,IAAI,EAAExG,OAAO,CAACpF,MAAD,CAAP,CAAgB4L,IAD8B;AAEpD3J,MAAAA,KAAK,EAAEjC;AAF6C,KAAb;AAAA,GAAzB,CAAhB;AAKA,sBACE,oBAAC,QAAD;AACE,IAAA,QAAQ,EAAEkB,QADZ;AAEE,IAAA,EAAE,EAAC,eAFL;AAGE,IAAA,QAAQ,EAAE+T,QAHZ;AAIE,IAAA,kBAAkB,EAAE,4BAAC0C,CAAD;AAAA,aAClBvS,OAAO,CAACuS,CAAC,CAAC1V,KAAH,CAAP,CAAiB2S,KAAjB,CAAuBI,IAAvB,CAA4B,UAACzU,IAAD;AAAA,eAAU,CAACsM,SAAS,CAAC3M,OAAV,CAAkBK,IAAlB,CAAX;AAAA,OAA5B,CADkB;AAAA,KAJtB;AAOE,IAAA,OAAO,EAAEgL;AAPX,wBADF;AAaD;;AClID;;AACO,SAASqM,UAAT,OAA2D;AAAA,MAArC7lB,OAAqC,QAArCA,OAAqC;AAAA,MAA5B8lB,KAA4B,QAA5BA,KAA4B;AAAA,MAArBC,UAAqB,QAArBA,UAAqB;AAAA,MAATC,KAAS,QAATA,KAAS;AAChE,MAAMC,QAAQ,GAAGC,IAAI,CAACC,IAAL,CAAUL,KAAK,GAAGE,KAAlB,CAAjB;;AACA,MAAIC,QAAQ,IAAI,CAAhB,EAAmB;AACjB,WAAO,IAAP;AACD;;AAED,sBACE,8CACE;AAAG,IAAA,SAAS,EAAC;AAAb,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAkCjmB,OAAO,GAAG,CAA5C,CADF,oBAEE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAkCimB,QAAlC,CAFF,aAE8DH,KAF9D,WADF,eAKE;AACE,IAAA,SAAS,EAAC,sBADZ;AAEE,IAAA,IAAI,EAAC,YAFP;AAGE,kBAAW;AAHb,kBAKE;AACE,IAAA,SAAS,EAAC,8BADZ;AAEE,IAAA,QAAQ,EAAE9lB,OAAO,KAAK,CAFxB;AAGE,IAAA,OAAO,EAAE;AAAA,aAAOA,OAAO,GAAG,CAAV,GAAc+lB,UAAU,CAAC/lB,OAAO,GAAG,CAAX,CAAxB,GAAwC,IAA/C;AAAA;AAHX,kBAKE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAG,IAAA,SAAS,EAAC;AAAb,IADF,CALF,CALF,eAcE;AACE,IAAA,SAAS,EAAC,0BADZ;AAEE,IAAA,QAAQ,EAAEA,OAAO,IAAIimB,QAAQ,GAAG,CAFlC;AAGE,IAAA,OAAO,EAAE;AAAA,aAAMF,UAAU,CAAC/lB,OAAO,GAAG,CAAX,CAAhB;AAAA;AAHX,kBAKE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAG,IAAA,SAAS,EAAC;AAAb,IADF,CALF,CAdF,CALF,CADF;AAgCD;;ACzCD,IAAMomB,IAAI,GAAG;AACXC,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,EADL;AAELC,IAAAA,QAAQ,EAAE,EAFL;AAGLC,IAAAA,QAAQ,EAAE;AAHL,GADI;AAMXC,EAAAA,OAAO,EAAE;AANE,CAAb;IASaC,OAAb;AACE,mBAAY3N,OAAZ,EAAqB;AACnB1Y,IAAAA,MAAM,CAACgN,MAAP,CAAc,IAAd,EAAoB0L,OAAO,IAAIqN,IAA/B;AACD;;AAHH;;AAAA,SASEO,OATF,GASE,iBAAQC,IAAR,EAAc;AACZ,WAAO,KAAKP,KAAL,CAAWC,QAAX,CAAoBM,IAApB,CAAP;AACD,GAXH;;AAAA,SAiBEzb,aAjBF,GAiBE,uBAAc0b,SAAd,EAAyB;AACvB,WAAO,KAAKR,KAAL,CAAWE,QAAX,CAAoBM,SAApB,CAAP;AACD,GAnBH;;AAAA,SAyBEC,YAzBF,GAyBE,sBAAaF,IAAb,EAAmB;AACjB,WAAO,KAAKP,KAAL,CAAWG,QAAX,CAAoBI,IAApB,CAAP;AACD,GA3BH;;AAAA;AAAA;AAAA,wBAKc;AACV,aAAOvmB,MAAM,CAACC,IAAP,CAAY,KAAK+lB,KAAL,CAAWC,QAAvB,CAAP;AACD;AAPH;AAAA;AAAA,wBAamB;AACf,aAAOjmB,MAAM,CAACC,IAAP,CAAY,KAAK+lB,KAAL,CAAWE,QAAvB,CAAP;AACD;AAfH;AAAA;AAAA,wBAqBiB;AACb,aAAOlmB,MAAM,CAACC,IAAP,CAAY,KAAK+lB,KAAL,CAAWG,QAAvB,CAAP;AACD;AAvBH;;AAAA;AAAA;;ICJaO,SAAb;AACE,qBAAY1jB,IAAZ,EAAkBpF,GAAlB,EAAuBG,IAAvB,EAA6B;AAC3B,SAAKiF,IAAL,GAAYA,IAAZ;AACA,SAAKpF,GAAL,GAAWA,GAAX;AACA,SAAK+oB,KAAL,GAAa5oB,IAAb;AACD;;AALH;AAAA;AAAA,wBAOa;AACT;AACA,UAAIiF,IAAI,GAAG,KAAKA,IAAL,CAAU,KAAV,IAAmB,KAAKA,IAAL,CAAU,KAAV,CAAnB,GAAsC,KAAKA,IAAL,CAAU,eAAV,CAAjD;AACA,UAAIjF,IAAI,GAAGiF,IAAI,CAACZ,KAAL,CAAW,IAAX,EAAiB,CAAjB,EAAoBA,KAApB,CAA0B,GAA1B,EAA+BwkB,MAA/B,CAAsC,CAAtC,EAAyCpnB,IAAzC,CAA8C,GAA9C,CAAX;AACAzB,MAAAA,IAAI,SAAOA,IAAP,MAAJ;;AACA,UAAI,KAAKH,GAAL,CAAS+C,MAAT,GAAkB,CAAtB,EAAyB;AACvB,YAAI,KAAK/C,GAAL,CAASiK,UAAT,CAAoB,GAApB,CAAJ,EAA8B;AAC5B9J,UAAAA,IAAI,GAAGA,IAAI,CAACoD,OAAL,CAAa,KAAKvD,GAAL,CAASkK,SAAT,CAAmB,CAAnB,CAAb,EAAoC,EAApC,CAAP;AACD,SAFD,MAEO;AACL/J,UAAAA,IAAI,GAAGA,IAAI,CAACoD,OAAL,CAAa,KAAKvD,GAAlB,EAAuB,EAAvB,CAAP;AACD;AACF;;AAED,aAAOG,IAAP;AACD;AArBH;AAAA;AAAA,wBAuBa;AACT,aAAO,KAAKiF,IAAL,CAAU2M,KAAV,IAAmB,KAAK3M,IAAL,CAAU,OAAV,CAA1B;AACD;AAzBH;AAAA;AAAA,wBA2Ba;AACT;AACA,UAAMyP,GAAG,GAAGD,SAAS,EAArB;;AACA,UAAIC,GAAG,CAACoU,KAAJ,IAAapU,GAAG,CAACoU,KAAJ,CAAU,KAAK7hB,IAAf,CAAjB,EAAuC;AACrC,eAAOyN,GAAG,CAACoU,KAAJ,CAAU,KAAK7hB,IAAf,CAAP;AACD;;AAED,cAAQ,KAAKA,IAAb;AACE,aAAK,cAAL;AACE,iBAAO,kBAAP;;AACF,aAAK,aAAL;AACE,iBAAO,iBAAP;;AACF,aAAK,MAAL;AACE,iBAAO,aAAP;;AACF,aAAK,OAAL;AACE,iBAAO,cAAP;;AACF,aAAK,QAAL;AACE,iBAAO,eAAP;;AACF;AACE,iBAAO,aAAP;AAZJ;AAcD;AAhDH;AAAA;AAAA,wBAkDiB;AACb,aAAO,KAAK8hB,IAAL,GAAY,KAAK9jB,IAAL,CAAUmD,EAA7B;AACD;AApDH;AAAA;AAAA,wBAsDW;AACP,UAAI,KAAKnD,IAAL,CAAUmD,EAAd,EAAkB;AAChB,eAAO,KAAKnD,IAAL,CAAUmD,EAAjB;AACD;;AACD,UAAIA,EAAE,GAAG,KAAKnD,IAAL,CAAU,KAAV,EAAiBZ,KAAjB,CAAuB,GAAvB,EAA4B,CAA5B,EAA+BA,KAA/B,CAAqC,GAArC,CAAT;AACA,aAAO+D,EAAE,CAACA,EAAE,CAACxF,MAAH,GAAY,CAAb,CAAT;AACD;AA5DH;AAAA;AAAA,wBA8DY;AACR,aAAO,KAAKqC,IAAL,CAAU,MAAV,CAAP;AACD;AAhEH;AAAA;AAAA,wBAkEa;AACT,aAAO,KAAKA,IAAL,CAAU,OAAV,KAAsB,KAAKA,IAAL,CAAU+jB,SAAvC;AACD;AApEH;AAAA;AAAA,wBAsEc;AACV,aAAO,KAAK/jB,IAAL,CAAU2M,KAAjB;AACD;AAxEH;AAAA;AAAA,wBA0EgB;AACZ,aAAO,KAAK3M,IAAL,CAAUgkB,aAAV,GAA0B5I,UAAU,CAAC,KAAKpb,IAAL,CAAUgkB,aAAX,CAApC,GAAgE,EAAvE;AACD;AA5EH;AAAA;AAAA,wBA8EgB;AACZ,aAAO,KAAKhkB,IAAL,CAAUikB,iBAAV,GACH7I,UAAU,CAAC,KAAKpb,IAAL,CAAUikB,iBAAX,CADP,GAEH,EAFJ;AAGD;AAlFH;;AAAA;AAAA;;ACIO,SAASC,IAAT,OAA8B;AAAA,MAAdlkB,IAAc,QAAdA,IAAc;AAAA,MAARhB,IAAQ,QAARA,IAAQ;;AAAA,qBACd8B,WAAW,EADG;AAAA,MAC1Ba,QAD0B;;AAEnC,MAAM+B,IAAI,GAAG,SAAPA,IAAO;AAAA,WAAM/B,QAAQ,CAAC;AAAE5G,MAAAA,IAAI,EAAEiF,IAAI,CAACjF;AAAb,KAAD,EAAsB,IAAtB,CAAd;AAAA,GAAb;;AACA,sBACE,6CACE;AAAI,IAAA,OAAO,EAAE2I,IAAb;AAAmB,IAAA,KAAK,EAAE;AAAEiC,MAAAA,KAAK,EAAE;AAAT;AAA1B,KACG3G,IAAI,iBAAI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAEA;AAAZ,IADX,CADF,eAIE;AAAI,IAAA,OAAO,EAAE0E;AAAb,KAAoB1D,IAAI,CAACmD,EAAzB,CAJF,CADF;AAQD;AAED,IAAMuC,QAAQ,GAAG;AACfC,EAAAA,KAAK,EAAE;AADQ,CAAjB;AAIO,SAASwe,KAAT,QAA0C;AAAA,MAAzBnkB,IAAyB,SAAzBA,IAAyB;AAAA,MAAnByC,MAAmB,SAAnBA,MAAmB;AAAA,MAAX2hB,OAAW,SAAXA,OAAW;;AAAA,sBAC1BtjB,WAAW,EADe;AAAA,MACtCa,QADsC;;AAE/C,MAAM8V,SAAS,GAAGnM,YAAY,EAA9B;AACA,MAAM1I,KAAK,GAAG,IAAI8gB,SAAJ,CAAc1jB,IAAd,EAAoByX,SAAS,CAAC7c,GAA9B,EAAmC6c,SAAS,CAAC1c,IAA7C,CAAd;;AACA,MAAM2I,IAAI,GAAG,SAAPA,IAAO;AAAA,WAAM/B,QAAQ,CAAC;AAAE5G,MAAAA,IAAI,EAAE6H,KAAK,CAAC7H;AAAd,KAAD,EAAuB,IAAvB,CAAd;AAAA,GAAb;;AAEA,sBACE;AAAI,IAAA,GAAG,EAAEiF,IAAT;AAAe,+BAAuBA,IAAI,CAAC,OAAD;AAA1C,kBACE;AAAI,IAAA,KAAK,EAAE0F;AAAX,kBACE,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAE1F;AAApB,IADF,CADF,EAIGokB,OAAO,CAAClnB,GAAR,CAAY,UAACY,CAAD;AAAA,wBACX,oBAAC,KAAD,CAAO,QAAP;AAAgB,MAAA,GAAG,EAAEA,CAAC,CAAC+H;AAAvB,OACG/H,CAAC,CAACgI,KAAF,CAAQlD,KAAR,EAAec,IAAf,EAAqBjB,MAArB,CADH,CADW;AAAA,GAAZ,CAJH,eASE;AAAI,IAAA,KAAK,EAAEiD;AAAX,KACG+R,SAAS,CAAC3M,OAAV,CAAkB,0BAAlB,kBACC,oBAAC,MAAD;AACE,IAAA,OAAO,EAAE;AAAA,aACP2M,SAAS,CAAC9M,QAAV,CAAmB,aAAnB,EAAkC;AAAEvE,QAAAA,KAAK,EAAE,CAACxD,KAAK,CAAC5C,IAAP;AAAT,OAAlC,CADO;AAAA;AADX,IAFJ,CATF,CADF;AAqBD;AAEM,SAASqkB,SAAT,QAAuC;AAAA,MAAlB1X,KAAkB,SAAlBA,KAAkB;AAAA,MAAXqD,OAAW,SAAXA,OAAW;AAC5C,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,KAAkDrD,KAAlD,CADF,CADF,CADF,eAME;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6BqD,OAAO,IAAIA,OAAxC,CADF,CANF,CADF;AAYD;;AChEM,SAASsU,YAAT,CAAsBzhB,KAAtB,EAA6B;AAAA,MAC1B4D,KAD0B,GACT5D,KADS,CAC1B4D,KAD0B;AAAA,MACnBZ,KADmB,GACThD,KADS,CACnBgD,KADmB;;AAAA,qBAER/E,WAAW,EAFH;AAAA,MAE3B0B,QAF2B;AAAA,MAEf6L,GAFe;;AAGlC,MAAM5L,MAAM,GAAGD,QAAQ,CAAC3G,GAAT,CAAa4K,KAAb,WAAaA,KAAb,GAAsB,GAAtB,CAAf;;AAEA,MAAM8d,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBlW,IAAAA,GAAG,CAAC5H,KAAD,WAACA,KAAD,GAAU,GAAV,CAAH;AACD,GAFD;;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhE,MAAM,iBACL,oBAAC,GAAD;AAAK,IAAA,IAAI,EAAEoD,KAAF,WAAEA,KAAF,GAAW,SAApB;AAA+B,IAAA,KAAK,EAAC,UAArC;AAAgD,IAAA,IAAI,EAAC;AAArD,IAFJ,EAIGpD,MAAM,iBACL,oBAAC,GAAD;AACE,IAAA,IAAI,EAAEA,MADR;AAEE,IAAA,KAAK,EAAC,SAFR;AAGE,IAAA,IAAI,EAAC,WAHP;AAIE,IAAA,QAAQ,EAAE;AAAA,aAAM8hB,WAAW,EAAjB;AAAA;AAJZ,IALJ,CADF;AAeD;;ACVD,IAAMvX,cAAY,GAAG;AACnBuK,EAAAA,IAAI,EAAE,CADa;AAEnBnR,EAAAA,KAAK,EAAE,EAFY;AAGnByF,EAAAA,OAAO,EAAE,IAHU;AAInB4W,EAAAA,KAAK,EAAE;AAJY,CAArB;AAOO,SAAS+B,UAAT,GAAsB;AAAA,qBACK1jB,WAAW,EADhB;AAAA,MACpB0B,QADoB;AAAA,MACViiB,WADU;;AAAA,mBAEQjV,SAAS,EAFjB;AAAA,MAEnBN,QAFmB,cAEnBA,QAFmB;AAAA,MAETE,YAFS,cAETA,YAFS;;AAI3B,MAAMlB,GAAG,GAAG5C,YAAY,EAAxB;;AAJ2B,qBAKDyB,WAAW,CAACC,cAAD,CALV;AAAA,MAKpBjC,KALoB;AAAA,MAKbkC,QALa;;AAAA,MAMnB7G,KANmB,GAMO2E,KANP,CAMnB3E,KANmB;AAAA,MAMZyF,OANY,GAMOd,KANP,CAMZc,OANY;AAAA,MAMH4W,KANG,GAMO1X,KANP,CAMH0X,KANG;AAQ3B,MAAM2B,OAAO,GACXlW,GAAG,CAACU,QAAJ,CAAanJ,cAAb,CAA4ByI,GAAG,CAAC9C,OAAJ,CAAY,OAAZ,CAA5B,KACA8C,GAAG,CAACxC,MAAJ,CAAWjG,cAAX,EAFF;AAIA,MAAIhD,MAAM,GAAGD,QAAQ,CAAC3G,GAAT,CAAa,GAAb,CAAb;AACA,MAAImG,IAAI,GAAGQ,QAAQ,CAAC3G,GAAT,CAAa,MAAb,CAAX;AACA,MAAI0b,IAAJ;;AAEA,MAAI;AACFA,IAAAA,IAAI,GAAGgF,QAAQ,CAAC/Z,QAAQ,CAAC3G,GAAT,CAAa,MAAb,CAAD,CAAR,IAAkC,CAAzC;AACD,GAFD,CAEE,gBAAM;AACN0b,IAAAA,IAAI,GAAG,CAAP;AACD;;AAED,MAAImN,YAAY,GAAGvoB,SAAnB;;AACA,MAAIsG,MAAM,IAAIA,MAAM,KAAK,EAAzB,EAA6B;AAC3BiiB,IAAAA,YAAY,GAAG3gB,MAAM,CAACtB,MAAD,CAArB;AACD;;AAED,MAAIkiB,UAAU,GAAGxoB,SAAjB;;AACA,MAAI6F,IAAI,IAAIA,IAAI,KAAK,EAArB,EAAyB;AACvB2iB,IAAAA,UAAU,GAAG5gB,MAAM,CAAC/B,IAAD,EAAO,WAAP,CAAnB;AACD;;AAEDZ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAI8M,GAAG,CAACnD,KAAJ,CAAUc,OAAd,EAAuB;;AADT,QAEA;AACZ,UAAI7Q,IAAJ;AACAiS,MAAAA,QAAQ,CAAC;AAAEpB,QAAAA,OAAO,EAAE,IAAX;AAAiB4W,QAAAA,KAAK,EAAEvU,GAAG,CAAC9C,OAAJ,CAAYzN;AAApC,OAAD,CAAR;AAFY,UAGJ9B,GAHI,GAGIqS,GAAG,CAACU,QAHR,CAGJ/S,GAHI;AAIZ,UAAMid,MAAM,GAAGjd,GAAG,CAAC,iCAAD,EAAoCuT,YAApC,CAAlB;AAEA,UAAI2J,QAAQ,GAAG7K,GAAG,CAACxC,MAAJ,CAAWoN,MAAX,EAAmB;AAChC/d,QAAAA,IAAI,EAAEmT,GAAG,CAACnT,IADsB;AAEhCkK,QAAAA,KAAK,EAAEsS,IAAI,GAAGrI,QAFkB;AAGhChK,QAAAA,QAAQ,EAAEgK;AAHsB,OAAnB,CAAf;AAKA,UAAIlL,EAAE,GAAG,EAAT;;AACA,UAAIvB,MAAM,IAAIT,IAAd,EAAoB;AAAA;;AAClBgC,QAAAA,EAAE,GAAGM,OAAO,WACPyU,QADO,mBAEN2L,YAFM,4BAEU,EAFV,iBAGNC,UAHM,0BAGQ,EAHR,EAAZ;AAKD,OAND,MAMO;AACL3gB,QAAAA,EAAE,GAAGM,OAAO,CAACyU,QAAD,CAAZ;AACD;;AApBW,6BAsBC7K,GAAG,CAACxC,MAAJ,CAAWjJ,MAAX,CACXyL,GAAG,CAACnT,IADO,EAEXiJ,EAFW,EAGX,KAHW,EAIX,KAJW,EAKXuT,IAAI,GAAGrI,QALI,EAMXA,QANW,CAtBD;AAsBZlU,QAAAA,IAAI,qBAAJ;AAQAiS,QAAAA,QAAQ,CAAC;AACP7G,UAAAA,KAAK,EAAEpL,IAAI,CAACmL,MADL;AAEP0F,UAAAA,OAAO,EAAE,KAFF;AAGP4W,UAAAA,KAAK,EAAEznB,IAAI,CAACqL;AAHL,SAAD,CAAR;AA9BY;AAmCb,KArCa;AAAA;AAAA;AAsCf,GAtCQ,EAsCN,CAAC5D,MAAD,EAAST,IAAT,EAAekM,GAAG,CAACnD,KAAJ,CAAUd,OAAzB,EAAkCsN,IAAlC,CAtCM,CAAT;;AAwCA,MAAMmL,UAAU,GAAG,SAAbA,UAAa,CAACnL,IAAD,EAAU;AAC3BkN,IAAAA,WAAW,CAAC;AAAElN,MAAAA,IAAI,EAAEA;AAAR,KAAD,CAAX;AACD,GAFD;;AAIA,sBACE,oBAAC,oBAAD;AAAsB,IAAA,KAAK,EAAEnR;AAA7B,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,oBAAD,OADF,CADF,eAIE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,YAAD,OADF,CAJF,eAOE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,YAAD;AAAc,IAAA,KAAK,EAAC,MAApB;AAA2B,IAAA,KAAK,EAAC;AAAjC,IADF,CAPF,eAUE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,UAAD;AACE,IAAA,OAAO,EAAEmR,IADX;AAEE,IAAA,KAAK,EAAEkL,KAFT;AAGE,IAAA,GAAG,EAAC,gBAHN;AAIE,IAAA,UAAU,EAAEC,UAJd;AAKE,IAAA,KAAK,EAAExT;AALT,IADF,CAVF,CADF,EAqBGrD,OAAO,iBAAI;AAAK,IAAA,SAAS,EAAC;AAAf,IArBd,EAsBG,CAACA,OAAD,iBACC;AACE,IAAA,SAAS,EAAC,iCADZ;AAEE,iBAAU;AAFZ,kBAIE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,6CACE,6CACE,oBAAC,gBAAD,OADF,CADF,EAIGuY,OAAO,CAAClnB,GAAR,CAAY,UAACY,CAAD;AAAA,wBACX;AAAI,MAAA,GAAG,EAAEA,CAAC,CAAC+H,KAAX;AAAkB,MAAA,SAAS,EAAC;AAA5B,OACG/H,CAAC,CAAC+H,KADL,CADW;AAAA,GAAZ,CAJH,eASE,uCATF,CADF,CAJF,eAiBE,mCACGO,KAAK,IACJA,KAAK,CAAClJ,GAAN,CAAU,UAAC8C,IAAD;AAAA,wBACR,oBAAC,KAAD;AACE,MAAA,IAAI,EAAEA,IADR;AAEE,MAAA,GAAG,EAAEA,IAAI,CAAC,MAAD,CAFX;AAGE,MAAA,MAAM,EAAEyC,MAHV;AAIE,MAAA,OAAO,EAAE2hB;AAJX,MADQ;AAAA,GAAV,CAFJ,EAUGhe,KAAK,IAAIA,KAAK,CAACzI,MAAN,KAAiB,CAA1B,iBACC,6CACE;AAAI,IAAA,OAAO,EAAC,GAAZ;AAAgB,IAAA,SAAS,EAAC;AAA1B,sBADF,CAXJ,CAjBF,CAvBJ,eA4DE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,UAAD;AACE,IAAA,OAAO,EAAE4Z,IADX;AAEE,IAAA,GAAG,EAAC,mBAFN;AAGE,IAAA,KAAK,EAAEkL,KAHT;AAIE,IAAA,UAAU,EAAEC,UAJd;AAKE,IAAA,KAAK,EAAExT;AALT,IADF,CA5DF,CADF;AAwED;;ACxKM,SAAS0V,aAAT,OAA4C;AAAA,MAAnBxZ,OAAmB,QAAnBA,OAAmB;AAAA,MAAV6J,MAAU,QAAVA,MAAU;AACjD,MAAM/G,GAAG,GAAG5C,YAAY,EAAxB;AADiD,MAEzCuZ,WAFyC,GAEzB3W,GAAG,CAACU,QAFqB,CAEzCiW,WAFyC;AAIjD,MAAMC,SAAS,GAAG,GAAGrb,MAAH,CAChB2B,OAAO,CAAC2Z,aADQ,EAEhB3Z,OAAO,CAAC,mBAAD,CAFS,CAAlB;;AAIA,MAAM4Z,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAO;AACzB,QAAMC,GAAG,GAAGL,WAAW,CAACI,CAAD,EAAIE,sBAAJ,CAAvB;AACA,wBACE,oBAAC,GAAD;AACE,MAAA,MAAM,EAAE/Z,OAAO,CAAC6Z,CAAD,CADjB;AAEE,MAAA,UAAU,EAAEppB,KAAG,CAACoZ,MAAD,EAAS,CAAC,aAAD,EAAgBgQ,CAAhB,EAAmB,YAAnB,CAAT,EAA2C,EAA3C;AAFjB,MADF;AAMD,GARD;;AAUA,sBACE,oBAAC,KAAD,CAAO,QAAP,QACGH,SAAS,CAAC5nB,GAAV,CAAc,UAACuN,QAAD;AAAA,wBACb;AAAK,MAAA,SAAS,EAAC,WAAf;AAA2B,MAAA,GAAG,EAAEA;AAAhC,oBACE;AAAI,MAAA,SAAS,EAAC;AAAd,OAA+CA,QAA/C,CADF,eAEE,oBAAC,KAAD;AACE,MAAA,OAAO,EAAE,CAAC,OAAD,EAAU,OAAV,CADX;AAEE,MAAA,SAAS,EAAC;AAFZ,OAIGua,WAAW,CAACva,QAAD,CAJd,CAFF,eAQE,+BARF,CADa;AAAA,GAAd,CADH,CADF;AAgBD;AAEM,SAAS0a,sBAAT,GAAkC;AACvC,sBACE,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,uBADF,CADF;AAKD;;AC5CM,SAASC,oBAAT,GAAgC;AACrC,MAAMlX,GAAG,GAAG5C,YAAY,EAAxB;AADqC,MAE7B+Z,aAF6B,GAEXnX,GAAG,CAACU,QAFO,CAE7ByW,aAF6B;AAIrC,MAAMC,KAAK,GAAGD,aAAa,CAACnX,GAAG,CAAC9C,OAAJ,CAAY,OAAZ,CAAD,CAA3B;;AAEA,MAAIka,KAAK,CAACC,OAAV,EAAmB;AACjB,QAAMC,OAAO,GAAGja,KAAK,CAACyK,YAAN,CAAmBsP,KAAK,CAACC,OAAzB,EAAkC;AAAErX,MAAAA,GAAG,EAAEA;AAAP,KAAlC,CAAhB;AACA,WAAOsX,OAAP;AACD;;AACD,SAAO,IAAP;AACD;AAEM,SAASC,cAAT,GAA0B;AAC/B,MAAMvX,GAAG,GAAG5C,YAAY,EAAxB;AAD+B,MAEvB+Z,aAFuB,GAELnX,GAAG,CAACU,QAFC,CAEvByW,aAFuB;AAG/B,MAAMC,KAAK,GAAGD,aAAa,CAACnX,GAAG,CAAC9C,OAAJ,CAAY,OAAZ,CAAD,CAA3B;;AAEA,MAAIka,KAAK,CAACI,MAAV,EAAkB;AAChB,QAAMF,OAAO,GAAGja,KAAK,CAACyK,YAAN,CAAmBsP,KAAK,CAACI,MAAzB,EAAiC;AAAExX,MAAAA,GAAG,EAAEA;AAAP,KAAjC,CAAhB;AACA,WAAOsX,OAAP;AACD;;AACD,SAAO,IAAP;AACD;;ACwhBM,SAASpY,QAAT,CAAgB1R,IAAhB,EAAsB2R,OAAtB,EAA+B;AACrC,MAAI;AACH,QAAInL,MAAM,GAAGxG,IAAI,EAAjB;AACA,GAFD,CAEE,OAAM8F,CAAN,EAAS;AACV,WAAO6L,OAAO,CAAC7L,CAAD,CAAd;AACA;;AACD,MAAIU,MAAM,IAAIA,MAAM,CAACoL,IAArB,EAA2B;AAC1B,WAAOpL,MAAM,CAACoL,IAAP,CAAY,KAAK,CAAjB,EAAoBD,OAApB,CAAP;AACA;;AACD,SAAOnL,MAAP;AACA;;AAhjBD,IAAMyjB,eAAe,GAAG,CAAC,KAAD,EAAQ,OAAR,EAAiB,MAAjB,CAAxB;AACA,IAAMC,aAAa,GAAG,CACpB,6CADoB,EAEpB,6CAFoB,EAGpB,kDAHoB,EAIpB,eAJoB,EAKpB,WALoB,EAMpB,eANoB,EAOpB,mBAPoB,EAQpB,MARoB,EASpB,OAToB,CAAtB;AAYO,SAASC,eAAT,GAA2B;AAAA;;AAChC,MAAM3X,GAAG,GAAG5C,YAAY,EAAxB;AACA,MAAMqS,aAAa,GAAGzP,GAAG,CAACpD,OAAJ,CAAY,0BAAZ,CAAtB;AACA,MAAM2E,GAAG,GAAGD,SAAS,EAArB;;AAHgC,qBAKJzC,WAAW,CAAC;AACtC/R,IAAAA,IAAI,EAAEmB,SADgC;AAEtC0P,IAAAA,OAAO,EAAE,KAF6B;AAGtCuC,IAAAA,KAAK,EAAEjS;AAH+B,GAAD,CALP;AAAA,MAKzB8Y,MALyB;AAAA,MAKjB6Q,SALiB;;AAWhC,MAAMljB,KAAK,GAAG,IAAI8gB,SAAJ,CAAcxV,GAAG,CAAC9C,OAAlB,CAAd;AAEA,MAAM2a,cAAc,GAAGtW,GAAG,CAACuW,kBAAJ,IAA0BL,eAAjD;AACA,MAAMM,YAAY,GAAGxW,GAAG,CAACyW,wBAAJ,IAAgCN,aAArD;AAEA,MAAMtQ,UAAU,GAAGtY,MAAM,CAACC,IAAP,CAAY,CAAAgY,MAAM,QAAN,4BAAAA,MAAM,CAAEja,IAAR,kCAAcsa,UAAd,KAA4B,EAAxC,EAChBhZ,MADgB,CACT,UAACa,GAAD;AAAA,WAAS,CAAC8oB,YAAY,CAAC9hB,QAAb,CAAsBhH,GAAtB,CAAV;AAAA,GADS,EAEhBD,GAFgB,CAEZ,UAACC,GAAD;AAAA,WAAU;AAAEA,MAAAA,GAAG,EAAHA,GAAF;AAAO0P,MAAAA,KAAK,EAAEoI,MAAM,CAACja,IAAP,CAAYsa,UAAZ,CAAuBnY,GAAvB;AAAd,KAAV;AAAA,GAFY,CAAnB;AAIAiE,EAAAA,SAAS,CAAC,YAAM;;AACb;AAAA,UAAa;AAAA;AAAA,cACR,CAAC6T,MAAM,CAACpJ,OAAR,IAAmB,CAACoJ,MAAM,CAACja,IAA3B,IAAmC,CAACia,MAAM,CAAC7G,KADnC;AAAA,8CAEN;AACF0X,cAAAA,SAAS,CAAC;AAAEja,gBAAAA,OAAO,EAAE;AAAX,eAAD,CAAT;AADE,qCAEqBqC,GAAG,CAACxC,MAAJ,CAAWnE,aAAX,CAAyB2G,GAAG,CAACnT,IAA7B,EAAmC6H,KAAK,CAACZ,IAAzC,CAFrB,iBAEImkB,QAFJ;AAGFL,gBAAAA,SAAS,CAAC;AAAEja,kBAAAA,OAAO,EAAE,KAAX;AAAkB7Q,kBAAAA,IAAI,EAAEmrB;AAAxB,iBAAD,CAAT;AAHE;AAIH,aANS,YAMDrX,GANC,EAMI;AACZgX,cAAAA,SAAS,CAAC;AAAEja,gBAAAA,OAAO,EAAE,KAAX;AAAkBuC,gBAAAA,KAAK,EAAEU;AAAzB,eAAD,CAAT;AACD,aARS;;AAAA;AAAA;AAAA;;AAAA;AAUb,OAVA;AAAA;AAAA;AAAA;AAWF,GAZQ,EAYN,CAACmG,MAAD,CAZM,CAAT;AAcA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAErS,KAAK,CAAC5D,IAAlB;AAAwB,IAAA,KAAK,EAAC,SAA9B;AAAwC,IAAA,SAAS,EAAC;AAAlD,IADF,EACuE,GADvE,uBAGE,kCAAOkP,GAAG,CAAC9C,OAAJ,CAAYuB,KAAZ,IAAqBuB,GAAG,CAAC9C,OAAJ,CAAY,OAAZ,CAA5B,CAHF,CADF,CADF,eAQE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,oBAAD,OADF,CARF,CADF,eAcE,+BAdF,EAeG6J,MAAM,IAAIA,MAAM,CAACja,IAAjB,IAAyB,CAACia,MAAM,CAACpJ,OAAjC,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,gDACE,6CACE;AAAI,IAAA,SAAS,EAAC;AAAd,YADF,eAEE;AAAI,IAAA,SAAS,EAAC;AAAd,aAFF,CADF,CADF,eAOE,mCACGka,cAAc,CAAC7oB,GAAf,CAAmB,UAACkpB,IAAD;AAAA,wBAClB;AAAI,MAAA,GAAG,EAAE,SAASA;AAAlB,oBACE,gCAAKA,IAAL,CADF,eAEE,6CACE,oBAAC,aAAD;AACE,MAAA,KAAK,EAAEA,IADT;AAEE,MAAA,KAAK,EAAElY,GAAG,CAAC9C,OAAJ,CAAYgb,IAAZ,CAFT;AAGE,MAAA,aAAa,EAAE;AAHjB,MADF,CAFF,CADkB;AAAA,GAAnB,CADH,CAPF,CADF,EAuBG9Q,UAAU,CAAC3X,MAAX,GAAoB,CAApB,iBACC;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,gDACE,6CACE;AAAI,IAAA,SAAS,EAAC;AAAd,YADF,eAEE;AAAI,IAAA,SAAS,EAAC;AAAd,aAFF,CADF,CADF,eAOE,mCACG2X,UAAU,CAACpY,GAAX,CAAe,gBAAoB;AAAA,QAAjBC,GAAiB,QAAjBA,GAAiB;AAAA,QAAZ0P,KAAY,QAAZA,KAAY;AAClC,wBACE;AAAI,MAAA,GAAG,EAAE,SAAS1P;AAAlB,oBACE,gCAAK0P,KAAK,CAACF,KAAN,IAAexP,GAApB,CADF,eAEE,6CACE,oBAAC,aAAD;AACE,MAAA,KAAK,EAAEA,GADT;AAEE,MAAA,KAAK,EAAE+Q,GAAG,CAAC9C,OAAJ,CAAYjO,GAAZ,CAFT;AAGE,MAAA,MAAM,EAAE0P,KAHV;AAIE,MAAA,aAAa,EAAE8Q,aAJjB;AAKE,MAAA,QAAQ,EAAE9hB,KAAG,CAACoZ,MAAM,CAACja,IAAR,EAAc,UAAd,EAA0B,EAA1B,CAAH,CAAiCmJ,QAAjC,CACRhH,GADQ;AALZ,MADF,CAFF,CADF;AAgBD,GAjBA,CADH,CAPF,CAxBJ,eAqDE,oBAAC,cAAD,OArDF,eAsDE,oBAAC,aAAD;AAAe,IAAA,OAAO,EAAE+Q,GAAG,CAAC9C,OAA5B;AAAqC,IAAA,MAAM,EAAE6J,MAAM,CAACja;AAApD,IAtDF,CADF,CAhBJ,CADF;AA8ED;;AChIM,SAASqrB,kBAAT,OAKJ;AAAA,MAJDC,UAIC,QAJDA,UAIC;AAAA,MAHDzf,WAGC,QAHDA,WAGC;AAAA,MAFD0f,UAEC,QAFDA,UAEC;AAAA,MADDtc,OACC,QADDA,OACC;AACD,MAAMiE,GAAG,GAAG5C,YAAY,EAAxB;;AADC,wBAEyBgD,cAAc,EAFvC;AAAA,MAEO9S,IAFP,mBAEOA,IAFP;AAAA,MAEaqQ,OAFb,mBAEaA,OAFb;;AAAA,qBAGyBkB,WAAW,CAAC;AACpCyW,IAAAA,SAAS,EAAErnB,SADyB;AAEpCqN,IAAAA,UAAU,EAAE,EAFwB;AAGpCgd,IAAAA,OAAO,EAAErqB,SAH2B;AAIpCiS,IAAAA,KAAK,EAAEjS;AAJ6B,GAAD,CAHpC;AAAA,MAGM4O,KAHN;AAAA,MAGakC,QAHb;;AAUD,MAAMwZ,YAAY,GAAG,SAAfA,YAAe,CAAC9Q,KAAD,EAAQ+Q,MAAR;AAAA,WAAmB,UAAC9V,EAAD,EAAQ;AAAA;;AAC9C,UAAI2E,MAAM,GAAG,EAAb;;AACA,WAAK,IAAIzX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8S,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0BhpB,MAA9C,EAAsDG,CAAC,EAAvD,EAA2D;AACzDyX,QAAAA,MAAM,GAAGA,MAAM,CAAC9L,MAAP,CAAc,CAACmH,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0B7oB,CAA1B,EAA6B+O,KAA9B,CAAd,CAAT;AACD;;AACD6Z,MAAAA,MAAM,wBAAI/Q,KAAJ,IAAYJ,MAAZ,WAAN;AACD,KANoB;AAAA,GAArB;;AAQA,MAAMqR,cAAc,YAAdA,cAAc,CAAUhW,EAAV;AAAA,QAAiB;AACnC,UAAI,CAAC7F,KAAK,CAACyY,SAAP,IAAoB,CAACzY,KAAK,CAACyb,OAA3B,IAAsCzb,KAAK,CAACvB,UAAN,CAAiB7L,MAAjB,KAA4B,CAAtE,EAAyE;AACvEsP,QAAAA,QAAQ,CAAC;AAAEmB,UAAAA,KAAK,EAAE;AAAT,SAAD,CAAR;AACA;AACD;;AACDnB,MAAAA,QAAQ,CAAC;AAAEmB,QAAAA,KAAK,EAAEjS;AAAT,OAAD,CAAR;AACA,UAAMnB,IAAI,GAAG;AACXkoB,QAAAA,QAAQ,EAAEnY,KAAK,CAACvB,UAAN,CAAiBtM,GAAjB,CAAqB,UAACiO,IAAD;AAAA,iBAAW;AACxCqY,YAAAA,SAAS,EAAEzY,KAAK,CAACyY,SADuB;AAExCha,YAAAA,UAAU,EAAE2B,IAF4B;AAGxCqb,YAAAA,OAAO,EAAEzb,KAAK,CAACyb;AAHyB,WAAX;AAAA,SAArB;AADC,OAAb;AANmC,6BAaKhrB,IAAI,CAACR,IAAD,EAAO,UAAP,EAAmB,KAAnB,CAbT;AAAA,YAa3BwS,OAb2B,SAa3BA,OAb2B;AAAA,YAalBC,YAbkB,SAalBA,YAbkB;;AAcnC,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,CAAU,qBAAV,EAAiC,SAAjC;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AACDxD,QAAAA,OAAO,CAAC4Y,IAAI,CAACgE,MAAL,EAAD,CAAP;AAnBmC;AAoBpC,KApBmB;AAAA;AAAA;AAAA,GAApB;;AAsBA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhb,OADH,EAEGd,KAAK,CAACqD,KAAN,iBAAe,oBAAC,SAAD,4BAFlB,eAGE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,0BADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAEkY,UAFX;AAGE,IAAA,QAAQ,EAAE,kBAAC1V,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEuW,QAAAA,SAAS,EAAE5S,EAAE,CAACtH,MAAH,CAAUuD;AAAvB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAHF,eAYE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,0BADF,eAEE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEhG,WADX;AAEE,IAAA,QAAQ,EAAE4f,YAAY,CAAC,YAAD,EAAexZ,QAAf,CAFxB;AAGE,IAAA,IAAI,EAAE,CAHR;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,QAAQ,EAAC;AALX,IAFF,CAZF,eAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,iBADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAEsZ,UAFX;AAGE,IAAA,QAAQ,EAAE,kBAAC3V,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEuZ,QAAAA,OAAO,EAAE5V,EAAE,CAACtH,MAAH,CAAUuD;AAArB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAtBF,eA+BE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,IAAA,OAAO,EAAEhB,OAFX;AAGE,IAAA,OAAO,EAAE+a,cAHX;AAIE,IAAA,QAAQ,EAAC;AAJX,YA/BF,CADF;AA0CD;;ACvFM,SAASE,kBAAT,OAAwE;AAAA,MAA1CR,UAA0C,QAA1CA,UAA0C;AAAA,MAA9BS,KAA8B,QAA9BA,KAA8B;AAAA,MAAvBR,UAAuB,QAAvBA,UAAuB;AAAA,MAAXtc,OAAW,QAAXA,OAAW;AAC7E,MAAMiE,GAAG,GAAG5C,YAAY,EAAxB;;AAD6E,wBAEnDgD,cAAc,EAFqC;AAAA,MAErE9S,IAFqE,mBAErEA,IAFqE;AAAA,MAE/DqQ,OAF+D,mBAE/DA,OAF+D;;AAAA,qBAGnDkB,WAAW,CAAC;AACpCyW,IAAAA,SAAS,EAAErnB,SADyB;AAEpC4qB,IAAAA,KAAK,EAAE,EAF6B;AAGpCP,IAAAA,OAAO,EAAErqB,SAH2B;AAIpCiS,IAAAA,KAAK,EAAEjS;AAJ6B,GAAD,CAHwC;AAAA,MAGtE4O,KAHsE;AAAA,MAG/DkC,QAH+D;;AAU7E,MAAMwZ,YAAY,GAAG,SAAfA,YAAe,CAAC9Q,KAAD,EAAQ+Q,MAAR;AAAA,WAAmB,UAAC9V,EAAD,EAAQ;AAAA;;AAC9C,UAAI2E,MAAM,GAAG,EAAb;;AACA,WAAK,IAAIzX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8S,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0BhpB,MAA9C,EAAsDG,CAAC,EAAvD,EAA2D;AACzDyX,QAAAA,MAAM,GAAGA,MAAM,CAAC9L,MAAP,CAAc,CAACmH,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0B7oB,CAA1B,EAA6B+O,KAA9B,CAAd,CAAT;AACD;;AACD6Z,MAAAA,MAAM,wBAAI/Q,KAAJ,IAAYJ,MAAZ,WAAN;AACD,KANoB;AAAA,GAArB;;AAQA,MAAMqR,cAAc,YAAdA,cAAc;AAAA,QAAe;AACjC,UAAI,CAAC7b,KAAK,CAACyY,SAAP,IAAoB,CAACzY,KAAK,CAACyb,OAA3B,IAAsCzb,KAAK,CAACgc,KAAN,CAAYppB,MAAZ,KAAuB,CAAjE,EAAoE;AAClEsP,QAAAA,QAAQ,CAAC;AAAEmB,UAAAA,KAAK,EAAE;AAAT,SAAD,CAAR;AACA;AACD;;AACDnB,MAAAA,QAAQ,CAAC;AAAEmB,QAAAA,KAAK,EAAEjS;AAAT,OAAD,CAAR;AACA,UAAMnB,IAAI,GAAG;AACXmoB,QAAAA,QAAQ,EAAEpY,KAAK,CAACgc,KAAN,CAAY7pB,GAAZ,CAAgB,UAACiO,IAAD;AAAA,iBAAW;AACnCqY,YAAAA,SAAS,EAAEzY,KAAK,CAACyY,SADkB;AAEnCD,YAAAA,IAAI,EAAEpY,IAF6B;AAGnCqb,YAAAA,OAAO,EAAEzb,KAAK,CAACyb;AAHoB,WAAX;AAAA,SAAhB;AADC,OAAb;AANiC,6BAaOhrB,IAAI,CAACR,IAAD,EAAO,UAAP,EAAmB,KAAnB,CAbX;AAAA,YAazBwS,OAbyB,SAazBA,OAbyB;AAAA,YAahBC,YAbgB,SAahBA,YAbgB;;AAcjC,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,CAAU,qBAAV,EAAiC,SAAjC;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AACDxD,QAAAA,OAAO,CAAC4Y,IAAI,CAACgE,MAAL,EAAD,CAAP;AAnBiC;AAoBlC,KApBmB;AAAA;AAAA;AAAA,GAApB;;AAsBA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhb,OADH,EAEGd,KAAK,CAACqD,KAAN,iBAAe,oBAAC,SAAD,4BAFlB,eAGE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,0BADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAEkY,UAFX;AAGE,IAAA,QAAQ,EAAE,kBAAC1V,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEuW,QAAAA,SAAS,EAAE5S,EAAE,CAACtH,MAAH,CAAUuD;AAAvB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAHF,eAYE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,qBADF,eAEE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEka,KADX;AAEE,IAAA,QAAQ,EAAEN,YAAY,CAAC,OAAD,EAAUxZ,QAAV,CAFxB;AAGE,IAAA,IAAI,EAAE,CAHR;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,QAAQ,EAAC;AALX,IAFF,CAZF,eAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,iBADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAEsZ,UAFX;AAGE,IAAA,QAAQ,EAAE,kBAAC3V,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEuZ,QAAAA,OAAO,EAAE5V,EAAE,CAACtH,MAAH,CAAUuD;AAArB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAtBF,eA+BE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,IAAA,OAAO,EAAEhB,OAFX;AAGE,IAAA,OAAO,EAAE+a,cAHX;AAIE,IAAA,QAAQ,EAAC;AAJX,YA/BF,CADF;AA0CD;;AClFM,SAASI,kBAAT,OAKJ;AAAA,MAJDD,KAIC,QAJDA,KAIC;AAAA,MAHDlgB,WAGC,QAHDA,WAGC;AAAA,MAFD0f,UAEC,QAFDA,UAEC;AAAA,MADDtc,OACC,QADDA,OACC;AACD,MAAMiE,GAAG,GAAG5C,YAAY,EAAxB;;AADC,wBAEyBgD,cAAc,EAFvC;AAAA,MAEO9S,IAFP,mBAEOA,IAFP;AAAA,MAEaqQ,OAFb,mBAEaA,OAFb;;AAAA,qBAGyBkB,WAAW,CAAC;AACpCwW,IAAAA,IAAI,EAAEpnB,SAD8B;AAEpCqN,IAAAA,UAAU,EAAE,EAFwB;AAGpCgd,IAAAA,OAAO,EAAErqB,SAH2B;AAIpCiS,IAAAA,KAAK,EAAEjS;AAJ6B,GAAD,CAHpC;AAAA,MAGM4O,KAHN;AAAA,MAGakC,QAHb;;AAUD,MAAMwZ,YAAY,GAAG,SAAfA,YAAe,CAAC9Q,KAAD,EAAQ+Q,MAAR;AAAA,WAAmB,UAAC9V,EAAD,EAAQ;AAAA;;AAC9C,UAAI2E,MAAM,GAAG,EAAb;;AACA,WAAK,IAAIzX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8S,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0BhpB,MAA9C,EAAsDG,CAAC,EAAvD,EAA2D;AACzDyX,QAAAA,MAAM,GAAGA,MAAM,CAAC9L,MAAP,CAAc,CAACmH,EAAE,CAACtH,MAAH,CAAUqd,eAAV,CAA0B7oB,CAA1B,EAA6B+O,KAA9B,CAAd,CAAT;AACD;;AACD6Z,MAAAA,MAAM,wBAAI/Q,KAAJ,IAAYJ,MAAZ,WAAN;AACD,KANoB;AAAA,GAArB;;AAQA,MAAMqR,cAAc,YAAdA,cAAc;AAAA,QAAe;AACjC,UAAI,CAAC7b,KAAK,CAACwY,IAAP,IAAe,CAACxY,KAAK,CAACyb,OAAtB,IAAiCzb,KAAK,CAACvB,UAAN,CAAiB7L,MAAjB,KAA4B,CAAjE,EAAoE;AAClEuJ,QAAAA,OAAO,CAACC,GAAR,CAAY4D,KAAZ;AACAkC,QAAAA,QAAQ,CAAC;AAAEmB,UAAAA,KAAK,EAAE;AAAT,SAAD,CAAR;AACA;AACD;;AACDnB,MAAAA,QAAQ,CAAC;AAAEmB,QAAAA,KAAK,EAAEjS;AAAT,OAAD,CAAR;AACA,UAAMnB,IAAI,GAAG;AACXioB,QAAAA,QAAQ,EAAElY,KAAK,CAACvB,UAAN,CAAiBtM,GAAjB,CAAqB,UAACiO,IAAD;AAAA,iBAAW;AACxCoY,YAAAA,IAAI,EAAExY,KAAK,CAACwY,IAD4B;AAExC/Z,YAAAA,UAAU,EAAE2B,IAF4B;AAGxCqb,YAAAA,OAAO,EAAEzb,KAAK,CAACyb;AAHyB,WAAX;AAAA,SAArB;AADC,OAAb;AAPiC,6BAcOhrB,IAAI,CAACR,IAAD,EAAO,UAAP,EAAmB,KAAnB,CAdX;AAAA,YAczBwS,OAdyB,SAczBA,OAdyB;AAAA,YAchBC,YAdgB,SAchBA,YAdgB;;AAejC,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,CAAU,qBAAV,EAAiC,SAAjC;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AAEDxD,QAAAA,OAAO,CAAC4Y,IAAI,CAACgE,MAAL,EAAD,CAAP;AArBiC;AAsBlC,KAtBmB;AAAA;AAAA;AAAA,GAApB;;AAwBA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhb,OADH,EAEGd,KAAK,CAACqD,KAAN,iBAAe,oBAAC,SAAD,4BAFlB,eAGE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,qBADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAE2Y,KAFX;AAGE,IAAA,QAAQ,EAAE,kBAACnW,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEsW,QAAAA,IAAI,EAAE3S,EAAE,CAACtH,MAAH,CAAUuD;AAAlB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAHF,eAYE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,0BADF,eAEE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEhG,WADX;AAEE,IAAA,QAAQ,EAAE4f,YAAY,CAAC,YAAD,EAAexZ,QAAf,CAFxB;AAGE,IAAA,QAAQ,EAAC,uBAHX;AAIE,IAAA,IAAI,EAAE,CAJR;AAKE,IAAA,QAAQ;AALV,IAFF,CAZF,eAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,iBADF,eAEE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,OAAO,EAAEsZ,UAFX;AAGE,IAAA,QAAQ,EAAE,kBAAC3V,EAAD;AAAA,aAAQ3D,QAAQ,CAAC;AAAEuZ,QAAAA,OAAO,EAAE5V,EAAE,CAACtH,MAAH,CAAUuD;AAArB,OAAD,CAAhB;AAAA,KAHZ;AAIE,IAAA,QAAQ,EAAC;AAJX,IAFF,CAtBF,eA+BE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,IAAA,OAAO,EAAEhB,OAFX;AAGE,IAAA,OAAO,EAAE+a,cAHX;AAIE,IAAA,QAAQ,EAAC;AAJX,YA/BF,CADF;AA0CD;;ACtFM,SAASK,gBAAT,GAA4B;AAAA,wBACA3Y,cAAc,EADd;AAAA,MACzBzS,GADyB,mBACzBA,GADyB;AAAA,MACpBqG,MADoB,mBACpBA,MADoB;AAAA,MACZ2J,OADY,mBACZA,OADY;;AAEjC,MAAMqb,GAAG,GAAG5b,YAAY,EAAxB;;AAFiC,wBAIPC,KAAK,CAACxK,QAAN,CAAe,CAAf,CAJO;AAAA,MAI1BomB,KAJ0B;AAAA,MAInBC,QAJmB;;AAMjC7b,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpBvF,IAAAA,GAAG,CAAC,UAAD,CAAH;AACD,GAFD,EAEG,CAACsrB,KAAD,CAFH;AAIA,MAAM3H,KAAK,GAAG,IAAI6D,OAAJ,CAAYnhB,MAAZ,CAAd;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,CAAC2J,OAAD,iBACC;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,iBAAU;AAFZ,kBAIE;AAAI,IAAA,SAAS,EAAC;AAAd,wBAJF,eAOE,oBAAC,KAAD;AAAO,IAAA,OAAO,EAAE,CAAC,MAAD,EAAS,YAAT,EAAuB,SAAvB;AAAhB,KACG2T,KAAK,CAACuH,KAAN,CAAY7pB,GAAZ,CAAgB,UAACqmB,IAAD,EAAOtjB,GAAP;AAAA,wBACf,oBAAC,KAAD,CAAO,QAAP;AAAgB,MAAA,GAAG,EAAE,OAAOA;AAA5B,oBACE,6CACE;AAAI,MAAA,OAAO,EAAC,GAAZ;AAAgB,MAAA,SAAS,EAAC;AAA1B,OACGsjB,IADH,CADF,CADF,EAUGvmB,MAAM,CAACC,IAAP,CAAYuiB,KAAK,CAAC8D,OAAN,CAAcC,IAAd,CAAZ,EAAiCrmB,GAAjC,CAAqC,UAACmqB,GAAD,EAAMpnB,GAAN;AAAA,0BACpC;AAAI,QAAA,GAAG,EAAE,MAAMA;AAAf,sBACE,+BADF,eAEE,gCAAKonB,GAAL,CAFF,eAGE,gCAAK7H,KAAK,CAAC8D,OAAN,CAAcC,IAAd,EAAoB8D,GAApB,CAAL,CAHF,CADoC;AAAA,KAArC,CAVH,CADe;AAAA,GAAhB,CADH,EAqBG7H,KAAK,CAACuH,KAAN,CAAYppB,MAAZ,KAAuB,CAAvB,iBACC,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,oCADF,CAtBJ,CAPF,eAkCE;AAAI,IAAA,SAAS,EAAC;AAAd,6BAlCF,eAqCE,oBAAC,KAAD;AAAO,IAAA,OAAO,EAAE,CAAC,WAAD,EAAc,YAAd,EAA4B,SAA5B;AAAhB,KACG6hB,KAAK,CAAC8G,UAAN,CAAiBppB,GAAjB,CAAqB,UAACqmB,IAAD,EAAOtjB,GAAP;AAAA,wBACpB,oBAAC,KAAD,CAAO,QAAP;AAAgB,MAAA,GAAG,EAAE,OAAOA;AAA5B,oBACE,6CACE;AAAI,MAAA,OAAO,EAAC,GAAZ;AAAgB,MAAA,SAAS,EAAC;AAA1B,OACGsjB,IADH,CADF,CADF,EAMGvmB,MAAM,CAACC,IAAP,CAAYuiB,KAAK,CAAC1X,aAAN,CAAoByb,IAApB,CAAZ,EAAuCrmB,GAAvC,CAA2C,UAACmqB,GAAD,EAAMpnB,GAAN;AAAA,0BAC1C;AAAI,QAAA,GAAG,EAAE,MAAMA;AAAf,sBACE,+BADF,eAEE,gCAAKonB,GAAL,CAFF,eAGE,gCAAK7H,KAAK,CAAC1X,aAAN,CAAoByb,IAApB,EAA0B8D,GAA1B,CAAL,CAHF,CAD0C;AAAA,KAA3C,CANH,CADoB;AAAA,GAArB,CADH,EAiBG7H,KAAK,CAAC8G,UAAN,CAAiB3oB,MAAjB,KAA4B,CAA5B,iBACC,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,yCADF,CAlBJ,CArCF,eA4DE;AAAI,IAAA,SAAS,EAAC;AAAd,uBA5DF,eA+DE,oBAAC,KAAD;AAAO,IAAA,OAAO,EAAE,CAAC,WAAD,EAAc,MAAd,EAAsB,SAAtB;AAAhB,KACG6hB,KAAK,CAAC2D,QAAN,CAAejmB,GAAf,CAAmB,UAACqmB,IAAD,EAAOtjB,GAAP;AAAA,wBAClB,oBAAC,KAAD,CAAO,QAAP;AAAgB,MAAA,GAAG,EAAEsjB,IAAI,GAAGtjB;AAA5B,oBACE,6CACE;AAAI,MAAA,OAAO,EAAC,GAAZ;AAAgB,MAAA,SAAS,EAAC;AAA1B,OACGsjB,IADH,CADF,CADF,EAMGvmB,MAAM,CAACC,IAAP,CAAYuiB,KAAK,CAACiE,YAAN,CAAmBF,IAAnB,CAAZ,EAAsCrmB,GAAtC,CAA0C,UAACmqB,GAAD,EAAMpnB,GAAN;AAAA,0BACzC;AAAI,QAAA,GAAG,EAAE,OAAOA;AAAhB,sBACE,+BADF,eAEE,gCAAKonB,GAAL,CAFF,eAGE,gCAAK7H,KAAK,CAACiE,YAAN,CAAmBF,IAAnB,EAAyB8D,GAAzB,CAAL,CAHF,CADyC;AAAA,KAA1C,CANH,CADkB;AAAA,GAAnB,CADH,EAiBG7H,KAAK,CAAC2D,QAAN,CAAexlB,MAAf,KAA0B,CAA1B,iBACC,6CACE;AAAI,IAAA,OAAO,EAAC;AAAZ,mCADF,CAlBJ,CA/DF,CAFJ,EA0FGupB,GAAG,CAACpc,OAAJ,CAAY,8BAAZ,kBACC,oBAAC,aAAD;AAAe,IAAA,OAAO,EAAEsc,QAAxB;AAAkC,IAAA,KAAK,EAAED;AAAzC,IA3FJ,CADF;AAgGD;AAED,IAAM5Z,SAAO,GAAG;AACd1G,EAAAA,WAAW,EAAE1K,SADC;AAEd4qB,EAAAA,KAAK,EAAE,EAFO;AAGdT,EAAAA,UAAU,EAAEnqB,SAHE;AAIdQ,EAAAA,OAAO,EAAE,EAJK;AAKd2qB,EAAAA,UAAU,EAAEnrB;AALE,CAAhB;AAQA,IAAMoqB,UAAU,GAAG,CACjB;AAAE/P,EAAAA,IAAI,EAAE,OAAR;AAAiB3J,EAAAA,KAAK,EAAE;AAAxB,CADiB,EAEjB;AAAE2J,EAAAA,IAAI,EAAE,MAAR;AAAgB3J,EAAAA,KAAK,EAAE;AAAvB,CAFiB,EAGjB;AAAE2J,EAAAA,IAAI,EAAE,aAAR;AAAuB3J,EAAAA,KAAK,EAAE;AAA9B,CAHiB,EAIjB;AAAE2J,EAAAA,IAAI,EAAE,OAAR;AAAiB3J,EAAAA,KAAK,EAAE;AAAxB,CAJiB,CAAnB;AAOA,IAAM0a,cAAc,GAAG,CACrB;AAAE/Q,EAAAA,IAAI,EAAE,UAAR;AAAoB3J,EAAAA,KAAK,EAAE;AAA3B,CADqB,EAErB;AAAE2J,EAAAA,IAAI,EAAE,kBAAR;AAA4B3J,EAAAA,KAAK,EAAE;AAAnC,CAFqB,EAGrB;AAAE2J,EAAAA,IAAI,EAAE,uBAAR;AAAiC3J,EAAAA,KAAK,EAAE;AAAxC,CAHqB,EAIrB;AAAE2J,EAAAA,IAAI,EAAE,iBAAR;AAA2B3J,EAAAA,KAAK,EAAE;AAAlC,CAJqB,CAAvB;AAOO,SAAS2a,aAAT,OAA2C;AAAA,MAAlBvd,OAAkB,QAAlBA,OAAkB;AAAA,MAATkd,KAAS,QAATA,KAAS;AAChD,MAAMjZ,GAAG,GAAG5C,YAAY,EAAxB;;AADgD,qBAEtByB,WAAW,CAACQ,SAAD,CAFW;AAAA,MAEzCxC,KAFyC;AAAA,MAElCkC,QAFkC;;AAIhD1B,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AAAA,QACLqmB,IADK,YACLA,IADK;AAAA,UACE;AAAA,+BACOvZ,GAAG,CAACxC,MAAJ,CAAWpD,iBAAX,CAA6B4F,GAAG,CAACnT,IAAjC,CADP;AACpB,cAAM8L,WAAW,GAAG,sBAA+C3J,GAA/C,CAClB,UAACiO,IAAD;AAAA,mBAAW;AACTqL,cAAAA,IAAI,EAAErL,IADG;AAET0B,cAAAA,KAAK,EAAE1B;AAFE,aAAX;AAAA,WADkB,CAApB;;AAMA,cAAImb,UAAU,GAAG,EAAjB;AACA,cAAIS,KAAK,GAAG,EAAZ;AARoB,iCAUO7Y,GAAG,CAACxC,MAAJ,CAAW5D,aAAX,CAAyBoG,GAAG,CAACnT,IAA7B,CAVP,iBAUhB2sB,cAVgB;AAWpB,gBAAM3f,MAAM,GAAG2f,cAAc,CAAC3f,MAAf,CAAsB7K,GAAtB,CAA0B,UAACyqB,KAAD;AAAA,qBAAY;AACnDnR,gBAAAA,IAAI,EAAEmR,KAAK,CAACxkB,EADuC;AAEnD0J,gBAAAA,KAAK,EAAE8a,KAAK,CAACxkB;AAFsC,eAAZ;AAAA,aAA1B,CAAf;AAIA,gBAAM6E,KAAK,GAAG0f,cAAc,CAAC1f,KAAf,CAAqB9K,GAArB,CAAyB,UAAC0qB,IAAD;AAAA,qBAAW;AAChDpR,gBAAAA,IAAI,EAAEoR,IAAI,CAACC,QADqC;AAEhDhb,gBAAAA,KAAK,EAAE+a,IAAI,CAACzkB;AAFoC,eAAX;AAAA,aAAzB,CAAd;AAIAmjB,YAAAA,UAAU,aAAOve,MAAP,EAAkBC,KAAlB,CAAV;AAnBoB,mCAqBFkG,GAAG,CAACxC,MAAJ,CAAWrD,QAAX,CAAoB6F,GAAG,CAACnT,IAAxB,CArBE,iBAqBdwN,GArBc;AAAA;AA4BpB0E,gBAAAA,QAAQ,CAAC;AAAEpG,kBAAAA,WAAW,EAAXA,WAAF;AAAekgB,kBAAAA,KAAK,EAALA,KAAf;AAAsBT,kBAAAA,UAAU,EAAVA;AAAtB,iBAAD,CAAR;AA5BoB;;AAAA;AAAA,oBAsBhB/d,GAAG,CAACH,EAtBY;AAAA,yCAuBHG,GAAG,CAAC5B,IAAJ,EAvBG;AAuBlBogB,oBAAAA,KAAK,GAAG,UAAmB7pB,GAAnB,CAAuB,UAACqmB,IAAD;AAAA,6BAAW;AACxC/M,wBAAAA,IAAI,EAAE+M,IADkC;AAExC1W,wBAAAA,KAAK,EAAE0W;AAFiC,uBAAX;AAAA,qBAAvB,CAAR;AAvBkB;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AA6BrB,OA9BmB;AAAA;AAAA;AAAA;;AAgCpBkE,IAAAA,IAAI;AACL,GAjCD,EAiCG,CAACN,KAAD,CAjCH;AAmCA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,uBADF,eAEE,gDAFF,eAGE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEI,cADX;AAEE,IAAA,QAAQ,EAAE,kBAACjF,CAAD;AAAA,aAAOrV,QAAQ,CAAC;AAAEtQ,QAAAA,OAAO,EAAE2lB,CAAC,CAAChZ,MAAF,CAASuD;AAApB,OAAD,CAAf;AAAA,KAFZ;AAGE,IAAA,QAAQ,EAAC;AAHX,IAHF,eAQE,+BARF,EASG9B,KAAK,CAACpO,OAAN,IAAiBoO,KAAK,CAACpO,OAAN,KAAkB,UAAnC,iBACC,oBAAC,kBAAD,eACMoO,KADN;AAEE,IAAA,UAAU,EAAEwb,UAFd;AAGE,IAAA,OAAO,EAAEtc;AAHX,KAVJ,EAgBGc,KAAK,CAACpO,OAAN,IAAiBoO,KAAK,CAACpO,OAAN,KAAkB,UAAnC,iBACC,oBAAC,kBAAD,eACMoO,KADN;AAEE,IAAA,UAAU,EAAEwb,UAFd;AAGE,IAAA,OAAO,EAAEtc;AAHX,KAjBJ,EAuBGc,KAAK,CAACpO,OAAN,IAAiBoO,KAAK,CAACpO,OAAN,KAAkB,UAAnC,iBACC,oBAAC,kBAAD,eACMoO,KADN;AAEE,IAAA,UAAU,EAAEwb,UAFd;AAGE,IAAA,OAAO,EAAEtc;AAHX,KAxBJ,CADF;AAiCD;;ACnND,IAAM6d,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC1hB,KAAD,EAAQ2hB,OAAR,EAAiBpb,KAAjB,EAA2B;AAClD,MAAMqb,GAAG,GAAG;AAAEnb,IAAAA,KAAK,EAAE,EAAT;AAAa2J,IAAAA,IAAI,WAAS7J;AAA1B,GAAZ;AACA,MAAIvG,KAAK,CAACzI,MAAN,KAAiB,CAArB,EAAwB,OAAO,EAAP;;AACxB,MAAIyI,KAAK,CAAC,CAAD,CAAL,IAAY,OAAOA,KAAK,CAAC,CAAD,CAAZ,KAAoB,QAApC,EAA8C;AAC5C,WAAO,CAAC4hB,GAAD,EACJve,MADI,CACGrD,KAAK,CAAClJ,GAAN,CAAU,UAACuY,CAAD;AAAA,aAAQ;AAAE5I,QAAAA,KAAK,EAAE4I,CAAT;AAAYe,QAAAA,IAAI,EAAEf;AAAlB,OAAR;AAAA,KAAV,CADH,EAEJnZ,MAFI,CAEG,UAAC0D,IAAD;AAAA,aAAU,CAAC+nB,OAAO,CAAC5jB,QAAR,CAAiBnE,IAAI,CAAC6M,KAAtB,CAAX;AAAA,KAFH,CAAP;AAGD;;AACD,SAAO,CAACmb,GAAD,EAAMve,MAAN,CAAarD,KAAb,EAAoB9J,MAApB,CAA2B,UAAC0D,IAAD;AAAA,WAAU,CAAC+nB,OAAO,CAAC5jB,QAAR,CAAiBnE,IAAI,CAAC6M,KAAtB,CAAX;AAAA,GAA3B,CAAP;AACD,CATD;;AAWO,SAASob,UAAT,OAOJ;AAAA,MAND7hB,KAMC,QANDA,KAMC;AAAA,MALD0a,SAKC,QALDA,SAKC;AAAA,MAJDnU,KAIC,QAJDA,KAIC;AAAA,MAHDub,MAGC,QAHDA,MAGC;AAAA,MAFDzX,QAEC,QAFDA,QAEC;AAAA,MADD5E,OACC,QADDA,OACC;AACD,MAAMsc,SAAS,GAAG5c,KAAK,CAACpK,MAAN,EAAlB;;AADC,wBAG2BoK,KAAK,CAACxK,QAAN,CAAeqF,KAAf,CAH3B;AAAA,MAGMlE,MAHN;AAAA,MAGckmB,SAHd;;AAIDtH,EAAAA,SAAS,GAAGgH,gBAAgB,CAAChH,SAAS,IAAI,EAAd,EAAkB5e,MAAlB,EAA0ByK,KAA1B,CAA5B;;AAEA,MAAM9K,MAAM,GAAG,SAATA,MAAS,CAACgL,KAAD,EAAW;AACxB,QAAMzG,KAAK,GAAGlE,MAAM,CAAC5F,MAAP,CAAc,UAAC0D,IAAD;AAAA,aAAUA,IAAI,KAAK6M,KAAnB;AAAA,KAAd,CAAd;AACAub,IAAAA,SAAS,CAAChiB,KAAD,CAAT;AACAqK,IAAAA,QAAQ,CAACrK,KAAD,CAAR;AACD,GAJD;;AAMA,MAAMiiB,OAAO,GAAG,SAAVA,OAAU,CAACxb,KAAD,EAAW;AACzB,QAAIA,KAAK,KAAK,EAAd,EAAkB;AAClB,QAAMzG,KAAK,GAAGlE,MAAM,CAACuH,MAAP,CAAc,CAACoD,KAAD,CAAd,CAAd;AACAub,IAAAA,SAAS,CAAChiB,KAAD,CAAT;AACAqK,IAAAA,QAAQ,CAACrK,KAAD,CAAR;AACD,GALD;;AAOA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAI,IAAA,SAAS,EAAC;AAAd,KAAiCuG,KAAjC,CADF,EAEGd,OAAO,gBAAG,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAE;AAAEyc,MAAAA,YAAY,EAAE;AAAhB;AAAhB,IAAH,gBAAoD,+BAF9D,eAGE,6CACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGpmB,MAAM,CAAChF,GAAP,CAAW,UAAC8C,IAAD;AAAA,wBACV,oBAAC,GAAD;AAAK,MAAA,IAAI,EAAEA,IAAX;AAAiB,MAAA,QAAQ,EAAE;AAAA,eAAM6B,MAAM,CAAC7B,IAAD,CAAZ;AAAA,OAA3B;AAA+C,MAAA,GAAG,EAAEA;AAApD,MADU;AAAA,GAAX,CADH,CADF,EAMGkC,MAAM,CAACvE,MAAP,KAAkB,CAAlB,iBACC;AAAI,IAAA,KAAK,EAAE;AAAE2qB,MAAAA,YAAY,EAAE;AAAhB;AAAX,KAAsCJ,MAAtC,CAPJ,EASGpH,SAAS,CAACnjB,MAAV,GAAmB,CAAnB,iBACC;AAAI,IAAA,SAAS,EAAC;AAAd,kBACE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEmjB,SADX;AAEE,IAAA,GAAG,EAAEqH,SAFP;AAGE,IAAA,QAAQ,EAAE,kBAACvX,EAAD,EAAQ;AAChByX,MAAAA,OAAO,CAACzX,EAAE,CAACtH,MAAH,CAAUuD,KAAX,CAAP;AACAsb,MAAAA,SAAS,CAACxrB,OAAV,CAAkBkQ,KAAlB,GAA0B,EAA1B;AACD;AANH,IADF,CAVJ,CAHF,CADF;AA4BD;;AC1DD;;AACA,IAAMG,cAAY,GAAG;AAAEpE,EAAAA,KAAK,EAAEzM;AAAT,CAArB;AAEO,SAASosB,YAAT,GAAwB;AAAA,qBACHxb,WAAW,CAACC,cAAD,CADR;AAAA,MACtBjC,KADsB;AAAA,MACfkC,QADe;;AAE7B,MAAMiB,GAAG,GAAG5C,YAAY,EAAxB;AACA,MAAM0D,MAAM,GAAGQ,SAAS,EAAxB;AACApO,EAAAA,SAAS,CAAC,YAAM;;AACb,cAAgBonB,eAAhB;AAAA,UAAkC;AAAA,+BACbta,GAAG,CAACxC,MAAJ,CAAW/C,QAAX,CAAoBuF,GAAG,CAACnT,IAAxB,CADa,iBAC3B6N,KAD2B;AAEjCqE,UAAAA,QAAQ,CAAC;AACPrE,YAAAA,KAAK,EAAEA,KAAK,CAACtM,MAAN,CAAa,UAAC0D,IAAD;AAAA,qBAAU,CAACgP,MAAM,CAACC,aAAP,CAAqB9K,QAArB,CAA8BnE,IAA9B,CAAX;AAAA,aAAb;AADA,WAAD,CAAR;AAFiC;AAKlC,OALA;AAAA;AAAA;AAAA;AAMF,GAPQ,EAON,CAACkO,GAAG,CAACnT,IAAL,CAPM,CAAT;;AASA,MAAM4P,QAAQ,GAAG,SAAXA,QAAW,CAAC3K,IAAD,EAAU;AACzBkO,IAAAA,GAAG,CAACvD,QAAJ,CAAa,SAAb,EAAwB;AAAE3I,MAAAA,IAAI,EAAEhC;AAAR,KAAxB;AACAiN,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,QAAQ,EAAE;AAAZ,KAAD,CAAR;AACD,GAHD;;AAKA,MAAInB,KAAK,CAACnC,KAAN,IAAemC,KAAK,CAACnC,KAAN,CAAYjL,MAAZ,KAAuB,CAA1C,EAA6C;AAC3C,wBACE,oBAAC,MAAD;AACE,MAAA,SAAS,EAAE,qBADb;AAEE,MAAA,OAAO,EAAE;AAAA,eAAMgN,QAAQ,CAACI,KAAK,CAACnC,KAAN,CAAY,CAAZ,CAAD,CAAd;AAAA,OAFX;AAGE,MAAA,QAAQ,EAAC;AAHX,eAKOmC,KAAK,CAACnC,KAAN,CAAY,CAAZ,CALP,CADF;AASD;;AAED,MAAImC,KAAK,CAACnC,KAAN,IAAemC,KAAK,CAACnC,KAAN,CAAYjL,MAAZ,KAAuB,CAA1C,EAA6C;AAC3C,WAAO,IAAP;AACD,GAhC4B;;;AAmC7B,sBACE,oBAAC,QAAD;AACE,IAAA,EAAE,EAAC,eADL;AAEE,IAAA,OAAO,MAFT;AAGE,IAAA,QAAQ,EAAEgN,QAHZ;AAIE,IAAA,OAAO,EAAE,CAACI,KAAK,CAACnC,KAAN,IAAe,EAAhB,EAAoB1L,GAApB,CAAwB,UAAC8C,IAAD;AAAA,aAAW;AAAEwW,QAAAA,IAAI,EAAExW,IAAR;AAAc6M,QAAAA,KAAK,EAAE7M;AAArB,OAAX;AAAA,KAAxB;AAJX,kBAME;AAAM,IAAA,SAAS,EAAC,MAAhB;AAAuB,iBAAU;AAAjC,kBACE;AAAG,IAAA,SAAS,EAAC;AAAb,IADF,CANF,CADF;AAYD;AAEM,SAASyoB,cAAT,OAAiD;AAAA,MAYvCC,SAZuC,YAYvCA,SAZuC;AAAA,QAY3B;AAAA,6BACLjR,SAAS,CAAC/L,MAAV,CAAiB/C,QAAjB,CAA0B8O,SAAS,CAAC1c,IAApC,CADK,iBACnB6N,KADmB;AAEzBqE,QAAAA,QAAQ,CAAC;AACPrE,UAAAA,KAAK,EAAEA,KAAK,CAACtM,MAAN,CAAa,UAAC0D,IAAD;AAAA,mBAAU,CAACgP,MAAM,CAACC,aAAP,CAAqB9K,QAArB,CAA8BnE,IAA9B,CAAX;AAAA,WAAb;AADA,SAAD,CAAR;AAFyB;AAK1B,KAjBqD;AAAA;AAAA;AAAA;;AAAA,MAAvB2oB,SAAuB,QAAvBA,SAAuB;AAAA,MAAT9lB,KAAS;;AAAA,sBAC5BkK,WAAW,CAACC,cAAD,CADiB;AAAA,MAC/CjC,KAD+C;AAAA,MACxCkC,QADwC;;AAAA,qBAEjBnM,WAAW,EAFM;AAAA,MAE/C0B,QAF+C;AAAA,MAErCiiB,WAFqC;AAAA,MAExBpW,GAFwB;;AAGtD,MAAMoJ,SAAS,GAAGnM,YAAY,EAA9B;AACA,MAAMoE,GAAG,GAAGnE,KAAK,CAACpK,MAAN,CAAa,IAAb,CAAZ;AACA,MAAM6N,MAAM,GAAGQ,SAAS,EAAxB;AAEA,MAAMoZ,UAAU,GAAGpmB,QAAQ,CAAC3G,GAAT,CAAa,GAAb,CAAnB;AAEAuF,EAAAA,SAAS,CAAC,YAAM;AACdsnB,IAAAA,SAAS;AACV,GAFQ,EAEN,CAACjR,SAAS,CAAC1c,IAAX,CAFM,CAAT;;AAUA,MAAM8tB,aAAa,GAAG,SAAhBA,aAAgB,CAACjY,EAAD,EAAQ;AAC5B,QAAMnO,MAAM,GAAGmO,EAAE,CAACtH,MAAH,CAAU,CAAV,EAAauD,KAA5B;AACA4X,IAAAA,WAAW,CAAC;AAAEqE,MAAAA,CAAC,EAAErmB,MAAL;AAAasmB,MAAAA,GAAG,EAAE,OAAlB;AAA2BxR,MAAAA,IAAI,EAAE;AAAjC,KAAD,CAAX;AACA3G,IAAAA,EAAE,CAAC1N,cAAH;AACD,GAJD;;AAMA,MAAM8lB,cAAc,GAAG,SAAjBA,cAAiB,CAACpY,EAAD,EAAQ;AAC7B,QAAMqY,QAAQ,GAAGrY,EAAE,CAACtH,MAAH,CAAUuD,KAA3B;;AACA,QAAIoc,QAAQ,IAAIA,QAAQ,KAAK,EAA7B,EAAiC;AAC/BxE,MAAAA,WAAW,CAAC;AAAEziB,QAAAA,IAAI,EAAEinB,QAAR;AAAkBF,QAAAA,GAAG,EAAE,OAAvB;AAAgCxR,QAAAA,IAAI,EAAE;AAAtC,OAAD,CAAX;AACD,KAFD,MAEO;AACLlJ,MAAAA,GAAG,CAAC,MAAD,CAAH;AACD;AACF,GAPD,CAzBsD;;;AAmCtD9C,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpB,QAAI,CAACwnB,UAAD,IAAeA,UAAU,KAAK,EAAlC,EAAsC;AACpClZ,MAAAA,GAAG,CAAC/S,OAAJ,CAAYkQ,KAAZ,GAAoB,EAApB;AACD;AACF,GAJD,EAIG,CAAC+b,UAAD,CAJH;AAMA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAM,IAAA,MAAM,EAAC,EAAb;AAAgB,IAAA,SAAS,EAAC,MAA1B;AAAiC,IAAA,QAAQ,EAAEC;AAA3C,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,GAAG,EAAEnZ,GADP;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,SAAS,EAAC,iBAHZ;AAIE,IAAA,WAAW,EAAC,WAJd;AAKE,iBAAU;AALZ,IADF,CADF,eAUE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,SAAS,EAAC,8CADZ;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,iBAAU;AAHZ,kBAKE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IALF,CADF,CAVF,CADF,CADF,CADF,eAyBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,MAAD;AACE,IAAA,aAAa,MADf;AAEE,IAAA,QAAQ,EAAC,sBAFX;AAGE,IAAA,SAAS,EAAC,WAHZ;AAIE,IAAA,OAAO,EAAE,CAAC3E,KAAK,CAACnC,KAAN,IAAe,EAAhB,EAAoB1L,GAApB,CAAwB,UAAC8C,IAAD;AAAA,aAAW;AAC1CwW,QAAAA,IAAI,EAAExW,IADoC;AAE1C6M,QAAAA,KAAK,EAAE7M;AAFmC,OAAX;AAAA,KAAxB,CAJX;AAQE,IAAA,QAAQ,EAAEgpB;AARZ,IADF,CAzBF,EAqCGvR,SAAS,CAAC3M,OAAV,CAAkB,uBAAlB,kBACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACG6d,SAAS,KAAKxsB,SAAd,gBACC,oBAAC,SAAD,OADD,gBAGC,oBAAC,YAAD,EAAkB0G,KAAlB,CAJJ,CAtCJ,CADF;AAiDD;;ACrJM,SAASqmB,KAAT,GAAiB;AACtB,MAAMhb,GAAG,GAAG5C,YAAY,EAAxB;AADsB,MAEdvB,KAFc,GAEJmE,GAAG,CAACnD,KAFA,CAEdhB,KAFc;AAItB,MAAI,CAACA,KAAK,CAACM,OAAX,EAAoB,OAAO,IAAP;AAEpB,sBACE,oBAAC,YAAD;AAAc,IAAA,OAAO,EAAEN,KAAK,CAAC/H;AAA7B,KACG+H,KAAK,CAACM,OADT,eAEE,oBAAC,MAAD;AAAQ,IAAA,OAAO,EAAE;AAAA,aAAM6D,GAAG,CAACxD,UAAJ,EAAN;AAAA;AAAjB,IAFF,CADF;AAMD;;ACbD,SAASye,WAAT,OAAgC;AAAA,MAATxc,KAAS,QAATA,KAAS;AAC9B,sBAAO,0CAAWA,KAAX,gBAAP;AACD;;AAEM,SAASyc,SAAT,QAMJ;AAAA,MALDne,IAKC,SALDA,IAKC;AAAA,MAJDoe,UAIC,SAJDA,UAIC;AAAA,MAHDC,YAGC,SAHDA,YAGC;AAAA,6BAFDC,QAEC;AAAA,MAFDA,QAEC,+BAFUJ,WAEV;AAAA,MADEtmB,KACF;;AAAA,qBAC+B/B,WAAW,EAD1C;AAAA,MACM0B,QADN;AAAA,MACgBiiB,WADhB;;AAGD,MAAIjiB,QAAQ,CAAC3G,GAAT,CAAa,KAAb,CAAJ,EAAyB;AACvBwtB,IAAAA,UAAU,GAAG7mB,QAAQ,CAAC3G,GAAT,CAAa,KAAb,CAAb;AACD,GAFD,MAEO;AACLwtB,IAAAA,UAAU,GAAGA,UAAU,IAAIrsB,MAAM,CAACC,IAAP,CAAYgO,IAAZ,EAAkB,CAAlB,CAA3B;AACD;AAED;AACF;AACA;AACA;;;AAZG,kBAcyBlK,QAAQ,CAACsoB,UAAD,CAdjC;AAAA,MAcM1sB,OAdN;AAAA,MAce6sB,MAdf;;AAeD,MAAMC,WAAW,GAAGxe,IAAI,CAACtO,OAAD,CAAJ,IAAiB4sB,QAArC;AAEAhe,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;AACpB,QAAIpE,MAAM,CAACC,IAAP,CAAYgO,IAAZ,EAAkB9G,QAAlB,CAA2BklB,UAA3B,CAAJ,EAA4C;AAC1CG,MAAAA,MAAM,CAACH,UAAD,CAAN,CAD0C;AAG3C;AACF,GALD,EAKG,CAACA,UAAD,EAAape,IAAb,CALH;;AAOA,MAAMye,SAAS,GAAG,SAAZA,SAAY,CAACX,GAAD,EAAS;AACzBtE,IAAAA,WAAW,CAAC;AAAEsE,MAAAA,GAAG,EAAEA;AAAP,KAAD,CAAX;AACD,GAFD;;AAIA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,gCACG/rB,MAAM,CAACC,IAAP,CAAYgO,IAAZ,EAAkB/N,GAAlB,CAAsB,UAAC6rB,GAAD;AAAA,wBACrB;AACE,MAAA,SAAS,EACP,gBAAgBA,GAAG,KAAKpsB,OAAR,GAAkB,WAAlB,GAAgC,EAAhD,CAFJ;AAIE,MAAA,GAAG,EAAEosB;AAJP,oBAME;AACE,gCAAsBA,GAAG,CAAC3qB,WAAJ,EADxB;AAEE,MAAA,OAAO,EAAE;AAAA,eAAMsrB,SAAS,CAACX,GAAD,CAAf;AAAA;AAFX,OAIGA,GAJH,CANF,CADqB;AAAA,GAAtB,CADH,CADF,CADF,CADF,EAsBGO,YAAY,iBAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8BA,YAA9B,CAtBnB,CADF,eAyBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,WAAD;AAAa,IAAA,KAAK,EAAE3sB;AAApB,KAAiCkG,KAAjC,EADF,CAzBF,CADF;AA+BD;;AC9DD,IAAMoI,IAAI,GAAG;AACX0e,EAAAA,KAAK,EAAEnF,UADI;AAEXoF,EAAAA,UAAU,EAAE/D,eAFD;AAGXgE,EAAAA,SAAS,EAAEzI,cAHA;AAIXrS,EAAAA,WAAW,EAAEkY,gBAJF;AAKX6C,EAAAA,OAAO,EAAEnK,YALE;;AAAA,CAAb;AASA,IAAMzU,eAAe,GAAG;AACtBye,EAAAA,KAAK,EAAE,wBADe;AAEtBC,EAAAA,UAAU,EAAE,wBAFU;AAGtBC,EAAAA,SAAS,EAAE,0BAHW;AAItB9a,EAAAA,WAAW,EAAE,2BAJS;;AAAA,CAAxB;AAQO,SAASgb,SAAT,CAAmBlnB,KAAnB,EAA0B;AAC/B,MAAMqkB,GAAG,GAAG5b,YAAY,EAAxB;AACA,MAAM+D,UAAU,GAAG6X,GAAG,CAAClc,UAAJ,CAAeC,IAAf,EAAqBC,eAArB,CAAnB;AAEA,sBACE,oBAAC,SAAD;AACE,IAAA,IAAI,EAAEmE,UADR;AAEE,IAAA,UAAU,EAAC,OAFb;AAGE,IAAA,YAAY,eAAE,oBAAC,cAAD,EAAoBxM,KAApB;AAHhB,KAIMA,KAJN,EADF;AAQD;;AChCD,IAAMoI,MAAI,GAAG;AACX2e,EAAAA,UAAU,EAAE/D,eADD;AAEXgE,EAAAA,SAAS,EAAEzI,cAFA;AAGXrS,EAAAA,WAAW,EAAEkY,gBAHF;AAIX6C,EAAAA,OAAO,EAAEnK;AAJE,CAAb;AAOA,IAAMzU,iBAAe,GAAG;AACtB0e,EAAAA,UAAU,EAAE,wBADU;AAEtBC,EAAAA,SAAS,EAAE,0BAFW;AAGtB9a,EAAAA,WAAW,EAAE;AAHS,CAAxB;AAMO,SAASib,OAAT,CAAiBnnB,KAAjB,EAAwB;AAC7B,MAAMqkB,GAAG,GAAG5b,YAAY,EAAxB;AACA,MAAM+D,UAAU,GAAG6X,GAAG,CAAClc,UAAJ,CAAeC,MAAf,EAAqBC,iBAArB,CAAnB;AAEA,sBAAO,oBAAC,SAAD;AAAW,IAAA,IAAI,EAAEmE,UAAjB;AAA6B,IAAA,UAAU,EAAC;AAAxC,KAAyDxM,KAAzD,EAAP;AACD;;ACwhBM,kBAAgBnH,IAAhB,EAAsB2R,OAAtB,EAA+B;AACrC,MAAI;AACH,QAAInL,MAAM,GAAGxG,IAAI,EAAjB;AACA,GAFD,CAEE,OAAM8F,CAAN,EAAS;AACV,WAAO6L,OAAO,CAAC7L,CAAD,CAAd;AACA;;AACD,MAAIU,MAAM,IAAIA,MAAM,CAACoL,IAArB,EAA2B;AAC1B,WAAOpL,MAAM,CAACoL,IAAP,CAAY,KAAK,CAAjB,EAAoBD,OAApB,CAAP;AACA;;AACD,SAAOnL,MAAP;AACA;;AAjjBM,SAAS+nB,cAAT,CAAwBpnB,KAAxB,EAA+B;AAAA,MAC5BqnB,SAD4B,GACdrnB,KAAK,CAACkI,KAAN,CAAYK,OADE,CAC5B8e,SAD4B;AAEpC,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE,4CADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,SAAD;AAAW,IAAA,KAAK,EAAC;AAAjB,IADF,EAEGA,SAAS,CAAChtB,GAAV,CAAc,UAACitB,EAAD;AAAA,wBACb,oBAAC,IAAD;AACE,MAAA,IAAI,EAAE;AAAEhnB,QAAAA,EAAE,EAAEgnB,EAAN;AAAUpvB,QAAAA,IAAI,QAAMovB,EAAN;AAAd,OADR;AAEE,MAAA,GAAG,EAAEA,EAFP;AAGE,MAAA,IAAI,EAAE;AAHR,MADa;AAAA,GAAd,CAFH,CAFF,CADF;AAeD;AAEM,SAASC,WAAT,OAAgC;AAAA,MAATrf,KAAS,QAATA,KAAS;AAAA,MAC7Bsf,UAD6B,GACdtf,KAAK,CAACK,OADQ,CAC7Bif,UAD6B;AAAA,MAE7BtvB,IAF6B,GAEpBgQ,KAFoB,CAE7BhQ,IAF6B;AAGrC,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,SAAD;AAAW,IAAA,KAAK,EAAC,YAAjB;AAA8B,IAAA,OAAO,eAAE,oBAAC,eAAD;AAAvC,IADF,eAEE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE,mCACGsvB,UAAU,CAACntB,GAAX,CAAe,UAACitB,EAAD;AAAA,wBACd,oBAAC,IAAD;AACE,MAAA,IAAI,EAAE;AAAEhnB,QAAAA,EAAE,EAAEgnB,EAAN;AAAUpvB,QAAAA,IAAI,OAAKA,IAAL,GAAYovB,EAAZ;AAAd,OADR;AAEE,MAAA,GAAG,EAAEA,EAFP;AAGE,MAAA,IAAI,EAAE;AAHR,MADc;AAAA,GAAf,CADH,CADF,CAFF,CADF,CADF;AAkBD;AAEM,SAASG,eAAT,CAAyBznB,KAAzB,EAAgC;AAAA,kBACP9B,QAAQ,CAAC,KAAD,CADD;AAAA,MAC9BmL,QAD8B;AAAA,MACpBC,SADoB;;AAGrC,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE,oBAAC,iBAAD;AAAmB,IAAA,QAAQ,EAAED,QAA7B;AAAuC,IAAA,SAAS,EAAEC;AAAlD,KAAiEtJ,KAAjE,EADF,eAEE;AACE,IAAA,SAAS,EAAC,mCADZ;AAEE,IAAA,OAAO,EAAE;AAAA,aAAMsJ,SAAS,CAAC,IAAD,CAAf;AAAA;AAFX,kBAIE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAG,IAAA,SAAS,EAAC;AAAb,IADF,CAJF,eAOE,2CAPF,CAFF,CADF;AAcD;;AAED,SAASoe,iBAAT,QAAoD;AAAA,MAMnCC,eANmC,YAMnCA,eANmC;AAAA,QAMjB;AAC/Bza,MAAAA,UAAU,CAAC,IAAD,CAAV;AACA,UAAM/U,IAAI,GAAG;AACX,iBAAS,WADE;AAEXmI,QAAAA,EAAE,EAAEsnB;AAFO,OAAb;;AAF+B,wCAM3B;AAAA,+BACgBvc,GAAG,CAACxC,MAAJ,CAAW1E,YAAX,CAAwBkH,GAAG,CAACnT,IAA5B,EAAkCC,IAAlC,CADhB,iBACI0L,GADJ;AAAA,iCAEmBA,GAAG,CAACC,IAAJ,EAFnB,iBAEIzE,MAFJ;AAAA,gBAGEwE,GAAG,CAACmC,MAAJ,KAAe,GAHjB;AAIAqF,cAAAA,GAAG,CAACjE,OAAJ;AACAygB,cAAAA,KAAK,CAAC,EAAD,CAAL;AACA3a,cAAAA,UAAU,CAAC,KAAD,CAAV;AACA5D,cAAAA,SAAS,CAAC,KAAD,CAAT;AACA+B,cAAAA,GAAG,CAACnE,KAAJ,CAAU,mBAAV,EAA+B,SAA/B;AARA;AAUA2gB,cAAAA,KAAK,CAAC,EAAD,CAAL;AACA3a,cAAAA,UAAU,CAAC,KAAD,CAAV;AACAkP,cAAAA,QAAQ,CAAC/c,MAAM,CAACmI,OAAR,CAAR;AAZA;AAAA;AAAA;AAcH,OApB8B,cAoBvB;AACN4U,QAAAA,QAAQ,CAAC,uBAAD,CAAR;AACAlP,QAAAA,UAAU,CAAC,KAAD,CAAV;AACD,OAvB8B;;AAAA;AAwBhC,KA9BiD;AAAA;AAAA;AAAA;;AAAA,MAAvB7D,QAAuB,SAAvBA,QAAuB;AAAA,MAAbC,SAAa,SAAbA,SAAa;AAClD,MAAM+B,GAAG,GAAG5C,YAAY,EAAxB;;AADkD,mBAElBvK,QAAQ,CAAC,KAAD,CAFU;AAAA,MAE3C4pB,SAF2C;AAAA,MAEhC5a,UAFgC;;AAAA,mBAGzBhP,QAAQ,CAAC,EAAD,CAHiB;AAAA,MAG3C0pB,OAH2C;AAAA,MAGlCC,KAHkC;;AAAA,mBAIxB3pB,QAAQ,CAAC5E,SAAD,CAJgB;AAAA,MAI3CiS,KAJ2C;AAAA,MAIpC6Q,QAJoC;;AAgClD,sBACE,oBAAC,KAAD;AAAO,IAAA,QAAQ,EAAE/S,QAAjB;AAA2B,IAAA,SAAS,EAAEC;AAAtC,kBACE,oBAAC,IAAD;AAAM,IAAA,QAAQ,EAAEqe,eAAhB;AAAiC,IAAA,KAAK,EAAC,eAAvC;AAAuD,IAAA,KAAK,EAAEpc;AAA9D,kBACE,oBAAC,KAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,WAAW,EAAC,gBAFd;AAGE,IAAA,QAAQ,EAAE,kBAACkU,CAAD,EAAO;AACfoI,MAAAA,KAAK,CAACpI,CAAD,CAAL;AACD,KALH;AAME,IAAA,KAAK,EAAEmI,OANT;AAOE,IAAA,OAAO,EAAEE;AAPX,IADF,eAUE,oBAAC,MAAD;AAAQ,IAAA,OAAO,EAAEA;AAAjB,qBAVF,CADF,CADF;AAgBD;;ACtHM,SAASC,mBAAT,CAA6B/nB,KAA7B,EAAoC;AACzC,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,KAAuBA,KAAK,CAAC8J,KAA7B,CADF,eAEE,iDAFF,CADF;AAMD;;ACGD,IAAM1B,MAAI,GAAG;AACX0e,EAAAA,KAAK,EAAEnF,UADI;AAEXqG,EAAAA,MAAM,EAAEnK,WAFG;AAGXoK,EAAAA,QAAQ,EAAEF,mBAHC;AAIXf,EAAAA,SAAS,EAAEzI,cAJA;AAKXrS,EAAAA,WAAW,EAAEkY,gBALF;AAMX6C,EAAAA,OAAO,EAAEnK,YANE;;AAAA,CAAb;AAUA,IAAMzU,iBAAe,GAAG;AACtBye,EAAAA,KAAK,EAAE,wBADe;AAEtBkB,EAAAA,MAAM,EAAE,yBAFc;AAGtBC,EAAAA,QAAQ,EAAE,8BAHY;AAItBjB,EAAAA,SAAS,EAAE,0BAJW;AAKtB9a,EAAAA,WAAW,EAAE,2BALS;;AAAA,CAAxB;AASO,SAASgc,YAAT,CAAsBloB,KAAtB,EAA6B;AAClC,MAAMqkB,GAAG,GAAG5b,YAAY,EAAxB;AACA,MAAM+D,UAAU,GAAG6X,GAAG,CAAClc,UAAJ,CAAeC,MAAf,EAAqBC,iBAArB,CAAnB;AACA,sBACE,oBAAC,SAAD;AACE,IAAA,IAAI,EAAEmE,UADR;AAEE,IAAA,UAAU,EAAC,OAFb;AAGE,IAAA,YAAY,eAAE,oBAAC,cAAD,EAAoBxM,KAApB;AAHhB,KAIMA,KAJN,EADF;AAQD;;ACvCD,IAAMoS,MAAM,GAAG;AACbjT,EAAAA,IAAI,EAAE,QADO;AAEbiR,EAAAA,QAAQ,EAAE,CAAC,UAAD,EAAa,UAAb,CAFG;AAGbqC,EAAAA,UAAU,EAAE;AACV0V,IAAAA,QAAQ,EAAE;AACRhpB,MAAAA,IAAI,EAAE,QADE;AAER2K,MAAAA,KAAK,EAAE;AAFC,KADA;AAKVoI,IAAAA,KAAK,EAAE;AACL/S,MAAAA,IAAI,EAAE,QADD;AAEL2K,MAAAA,KAAK,EAAE,OAFF;AAGLqG,MAAAA,MAAM,EAAE;AAHH,KALG;AAUVxT,IAAAA,IAAI,EAAE;AACJwC,MAAAA,IAAI,EAAE,QADF;AAEJ2K,MAAAA,KAAK,EAAE;AAFH,KAVI;AAcVkI,IAAAA,QAAQ,EAAE;AACR7S,MAAAA,IAAI,EAAE,QADE;AAER2K,MAAAA,KAAK,EAAE,UAFC;AAGRqG,MAAAA,MAAM,EAAE;AAHA,KAdA;AAmBVlH,IAAAA,QAAQ,EAAE;AACR9J,MAAAA,IAAI,EAAE,SADE;AAER2K,MAAAA,KAAK,EAAE;AAFC;AAnBA;AAHC,CAAf;IA6Base,QAAQ,GAAG,SAAXA,QAAW,OAA4C;AAAA,yBAAzCrN,MAAyC;AAAA,MAAzCA,MAAyC,4BAAhC,KAAgC;AAAA,MAAzB9d,QAAyB,QAAzBA,QAAyB;AAAA,MAAZ+C,KAAY;;AAClE,MAAMqoB,IAAI,GAAGtN,MAAM,GAAG,EAAH,GAAQ;AAAEjR,IAAAA,KAAK,EAAE;AAAT,GAA3B;AAEA,sBACE,oBAAC,WAAD;AAAa,IAAA,MAAM,EAAEsI;AAArB,KAAiCpS,KAAjC,EAA4CqoB,IAA5C,GACGprB,QADH,CADF;AAKD;;ACtCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEaqrB,cAAc,GAAG,SAAjBA,cAAiB,CAAC5d,OAAD,EAAa;AAAA,wBACZhC,KAAK,CAACxK,QAAN,CAAewM,OAAf,CADY;AAAA,MAClC6H,OADkC;AAAA,MACzBgW,SADyB;;AAGzC,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAAC7rB,IAAD;AAAA,WAAU,UAACqN,KAAD,EAAW;AAAA;;AACxCue,MAAAA,SAAS,cACJhW,OADI,6BAEN5V,IAFM,IAECqN,KAFD,cAAT;AAID,KALoB;AAAA,GAArB;;AAOA,SAAO,CAACuI,OAAD,EAAUiW,YAAV,CAAP;AACD;;AClBD,IAAMpgB,MAAI,GAAG;AACXqgB,EAAAA,KAAK,EAAE9G;AADI,CAAb;AAIO,SAAS+G,YAAT,CAAsB1oB,KAAtB,EAA6B;AAClC,MAAMqL,GAAG,GAAG5C,YAAY,EAAxB;AAEA,sBACE;AACE,IAAA,SAAS,EAAC,mBADZ;AAEE,IAAA,OAAO,EAAE;AAAA,aAAM4C,GAAG,CAACvD,QAAJ,CAAa,SAAb,EAAwB;AAAE3I,QAAAA,IAAI,EAAE;AAAR,OAAxB,CAAN;AAAA,KAFX;AAGE,qBAAc,MAHhB;AAIE,qBAAc;AAJhB,kBAME,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IANF,eAOE,+CAPF,CADF;AAWD;AAEM,SAASwpB,QAAT,CAAkB3oB,KAAlB,EAAyB;AAC9B,sBACE,oBAAC,SAAD;AACE,IAAA,IAAI,EAAEoI,MADR;AAEE,IAAA,UAAU,EAAC,OAFb;AAGE,IAAA,YAAY,eAAE,oBAAC,YAAD;AAHhB,KAIMpI,KAJN,EADF;AAQD;AAEM,SAAS4oB,OAAT,GAAmB;AAAA,wBACQnd,cAAc,EADtB;AAAA,MAChBJ,GADgB,mBAChBA,GADgB;AAAA,MACXnS,KADW,mBACXA,KADW;AAAA,MACJ8P,OADI,mBACJA,OADI;;AAAA,wBAGEN,KAAK,CAACxK,QAAN,CAAe;AAAEgmB,IAAAA,KAAK,EAAE,EAAT;AAAa2E,IAAAA,MAAM,EAAE;AAArB,GAAf,CAHF;AAAA,MAGjB3gB,KAHiB;AAAA,MAGVkC,QAHU;;AAKxB,MAAMuI,MAAM,GAAG;AACbmW,IAAAA,WAAW,EAAE,EADA;AAEbC,IAAAA,UAAU,EAAE1d,GAAG,CAAC9C,OAAJ,CAAYwgB;AAFX,GAAf;;AALwB,wBAUQT,cAAc,CAAC3V,MAAD,CAVtB;AAAA,MAUjBJ,OAViB;AAAA,MAURiW,YAVQ;;AAYxB9f,EAAAA,KAAK,CAACnK,SAAN,CAAgB,YAAM;;AAAA,QACN;AAAA,6BACsCxC,OAAO,CAACqJ,GAAR,CAAY,CAC5DiG,GAAG,CAACxC,MAAJ,CAAWjJ,MAAX,CAAkByL,GAAG,CAACnT,IAAtB,EAA4B;AAAEgpB,QAAAA,SAAS,EAAE;AAAb,OAA5B,EAAoD,IAApD,CAD4D,EAE5D7V,GAAG,CAACxC,MAAJ,CAAWrD,QAAX,CAAoB6F,GAAG,CAACnT,IAAxB,CAF4D,CAAZ,CADtC;AAAA,YACL8wB,gBADK;AAAA,YACaC,eADb;;AAAA;AAaZ7e,UAAAA,QAAQ,CAAC;AACP8Z,YAAAA,KAAK,EAAEA,KADA;AAEPhf,YAAAA,MAAM,EAAEA,MAAM,CAAC3B,KAAP,CAAalJ,GAAb,CAAiB,UAAC8C,IAAD;AAAA,qBAAW;AAClC6M,gBAAAA,KAAK,EAAE7M,IAAI,CAACmD,EADsB;AAElCqT,gBAAAA,IAAI,EAAExW,IAAI,CAAC,OAAD;AAFwB,eAAX;AAAA,aAAjB;AAFD,WAAD,CAAR;AAbY;;AAMZ,YAAI+H,MAAM,GAAG8jB,gBAAb;AACA,YAAI9E,KAAK,GAAG,EAAZ;;AAPY;AAAA,cASR+E,eAAe,CAAC1jB,EATR;AAAA,mCAUI0jB,eAAe,CAACnlB,IAAhB,EAVJ;AAUVogB,cAAAA,KAAK,wBAAL;AAVU;AAAA;AAAA;;AAAA;AAAA;AAoBb,KArBmB;AAAA;AAAA;AAsBrB,GAtBD,EAsBG,EAtBH;;AAwBA,MAAMgF,YAAY,YAAZA,YAAY,CAAU/wB,IAAV;AAAA,QAAmB;AACnCkT,MAAAA,GAAG,CAAC/L,KAAJ,CAAUnH,IAAV;AADmC,6BAEKe,KAAK,CAACf,IAAD,CAFV;AAAA,YAE3BwS,OAF2B,SAE3BA,OAF2B;AAAA,YAElBC,YAFkB,SAElBA,YAFkB;;AAAA,YAG/BD,OAH+B;AAIjCU,UAAAA,GAAG,CAACnE,KAAJ,qBAA4B0D,YAA5B,EAA4C,QAA5C;AAJiC;AAMjCS,UAAAA,GAAG,CAACnE,KAAJ,CAAU,cAAV,EAA0B,SAA1B;AACAmE,UAAAA,GAAG,CAACjE,OAAJ;AAPiC;AAAA;AASpC,KATiB;AAAA;AAAA;AAAA,GAAlB;;AAWA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,aADF,eAME,+BANF,eAOE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,4CACE,gDADF,OAC6BiE,GAAG,CAAC9C,OAAJ,CAAY4f,QADzC,QAEG9c,GAAG,CAAC9C,OAAJ,CAAY2J,KAFf,MADF,eAKE,4CACE,gDADF,OAC6BqG,UAAU,CAAClN,GAAG,CAAC9C,OAAJ,CAAY4Y,aAAb,CADvC,CALF,eAQE,4CACE,gDADF,EAC4B,GAD5B,EAEG5I,UAAU,CAAClN,GAAG,CAAC9C,OAAJ,CAAY6Y,iBAAb,CAFb,CARF,eAYE,oBAAC,MAAD;AACE,IAAA,SAAS,EAAC,mBADZ;AAEE,IAAA,OAAO,EAAE,mBAAM;AACb/V,MAAAA,GAAG,CAACvD,QAAJ,CAAa,gBAAb;AACD;AAJH,uBAZF,CADF,eAsBE,+BAtBF,eAuBE,oBAAC,QAAD;AACE,IAAA,UAAU,EAAC,MADb;AAEE,IAAA,QAAQ,EAAE,kBAACiG,EAAD;AAAA,aAAQmb,YAAY,CAACnb,EAAD,CAApB;AAAA,KAFZ;AAGE,IAAA,MAAM,EAAE,IAHV;AAIE,IAAA,QAAQ,EAAE1C,GAAG,CAAC9C,OAJhB;AAKE,IAAA,OAAO,EAAE,CAAC,UAAD,CALX;AAME,IAAA,OAAO,EAAEgK,OANX;AAOE,IAAA,YAAY,EAAE;AAPhB,kBASE,oBAAC,MAAD;AAAQ,IAAA,OAAO,EAAEvJ,OAAjB;AAA0B,IAAA,QAAQ,EAAC;AAAnC,cATF,CAvBF,CADF,eAsCE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,UAAD;AACE,IAAA,QAAQ,EAAEwf,YAAY,CAAC,aAAD,CADxB;AAEE,IAAA,KAAK,EAAEnd,GAAG,CAAC9C,OAAJ,CAAYugB,WAFrB;AAGE,IAAA,KAAK,EAAC,QAHR;AAIE,IAAA,MAAM,EAAC,kCAJT;AAKE,IAAA,SAAS,EAAE5gB,KAAK,CAAChD;AALnB,IADF,eAQE,+BARF,eASE,oBAAC,UAAD;AACE,IAAA,QAAQ,EAAEsjB,YAAY,CAAC,YAAD,CADxB;AAEE,IAAA,KAAK,EAAEjW,OAAO,CAACwW,UAFjB;AAGE,IAAA,KAAK,EAAC,OAHR;AAIE,IAAA,MAAM,EAAC,gCAJT;AAKE,IAAA,SAAS,EAAE7gB,KAAK,CAACgc;AALnB,IATF,CAtCF,CAPF,CADF;AAkED;;ACtJD,IAAMiF,SAAS,GAAG,SAAZA,SAAY,CAACtlB,GAAD;AAAA,SAASA,GAAG,CAACmC,MAAJ,IAAc,GAAvB;AAAA,CAAlB;;AACO,SAASojB,SAAT,CAAmBppB,KAAnB,EAA0B;AAAA,MAIhBqpB,SAJgB,YAIhBA,SAJgB,CAINnxB,IAJM,EAIA0T,IAJA;AAAA,QAIM;AAAA,6BACX7P,OAAO,CAACqJ,GAAR,CACtB7B,KAAK,CAAClJ,GAAN,CAAU,UAAC8C,IAAD,EAAOlC,CAAP,EAAa;AACrB,YAAMquB,KAAK,GAAG1d,IAAI,CAAC3Q,CAAC,GAAG,CAAL,CAAJ,IAAe,EAA7B;AACA,eAAOoQ,GAAG,CAACxC,MAAJ,CAAWlQ,IAAX,MAAmB0S,GAAG,CAACnT,IAAvB,GAA8BiF,IAAI,CAAC,OAAD,CAAlC,kBAA0D;AAC/DosB,UAAAA,WAAW,EAAErxB,IADkD;AAE/DsxB,UAAAA,MAAM,EAAEF,KAAK,CAACtf,KAAN,IAAeqP,QAAQ,CAAClc,IAAI,CAACmD,EAAN;AAFgC,SAA1D,CAAP;AAID,OAND,CADsB,CADW,iBAC7BmpB,SAD6B;AAWnCpe,QAAAA,GAAG,CAACjE,OAAJ;AACAiE,QAAAA,GAAG,CAACrD,YAAJ;;AAEA,YAAIyhB,SAAS,CAACjK,KAAV,CAAgB2J,SAAhB,CAAJ,EAAgC;AAC9B9d,UAAAA,GAAG,CAACnE,KAAJ,qCAA4ChP,IAA5C,EAAoD,QAApD;AACA;AACD;;AAED,YAAIuxB,SAAS,CAAC1M,IAAV,CAAeoM,SAAf,CAAJ,EAA+B;AAC7B9d,UAAAA,GAAG,CAACnE,KAAJ,yCAAkD,SAAlD;AACA;AACD;;AAEDmE,QAAAA,GAAG,CAACnE,KAAJ,kBAA2B,SAA3B;AAxBmC;AAyBpC,KA7B8B;AAAA;AAAA;AAAA;;AAC/B,MAAMmE,GAAG,GAAG5C,YAAY,EAAxB;AAD+B,qBAERzI,KAFQ,CAEvBuD,KAFuB;AAAA,MAEvBA,KAFuB,6BAEf,EAFe;AA+B/B,sBACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAC,YADR;AAEE,IAAA,WAAW,QAAM8H,GAAG,CAACnT,IAAJ,CAASqE,KAAT,CAAekG,oBAAoB,CAAC4I,GAAG,CAACnT,IAAL,CAAnC,EAA+C,CAA/C,CAFnB;AAGE,IAAA,SAAS,EAAEmxB,SAHb;AAIE,IAAA,QAAQ,EAAE;AAAA,aAAMhe,GAAG,CAACrD,YAAJ,EAAN;AAAA;AAJZ,KAMGzE,KAAK,CAAClJ,GAAN,CAAU,UAAC8C,IAAD;AAAA,wBACT,oBAAC,KAAD,CAAO,QAAP;AAAgB,MAAA,GAAG,EAAEA,IAAI,CAACmD;AAA1B,oBACE;AAAO,MAAA,KAAK,EAAE;AAAEopB,QAAAA,OAAO,EAAE,OAAX;AAAoB9f,QAAAA,SAAS,EAAE;AAA/B;AAAd,yBACkBzM,IAAI,CAACmD,EADvB,aADF,eAIE;AACE,MAAA,IAAI,EAAC,MADP;AAEE,MAAA,SAAS,EAAC,OAFZ;AAGE,MAAA,YAAY,EAAE+Y,QAAQ,CAAClc,IAAI,CAACmD,EAAN;AAHxB,MAJF,CADS;AAAA,GAAV,CANH,SADF;AAsBD;;ACtDM,SAASqpB,QAAT,CAAkB3pB,KAAlB,EAAyB;AAAA,MAKf4pB,QALe,YAKfA,QALe,CAKN1xB,IALM,EAKA0T,IALA;AAAA,QAKM;AAClC,UAAM0d,KAAK,GAAG1d,IAAI,CAAC,CAAD,CAAJ,IAAW,EAAzB;AADkC,6BAEMjT,IAAI,CAC1C;AACE4wB,QAAAA,WAAW,EAAErxB,IADf;AAEEsxB,QAAAA,MAAM,EAAEF,KAAK,CAACtf,KAAN,IAAeqP,QAAQ,CAAClc,IAAI,CAAC,OAAD,CAAL;AAFjC,OAD0C,EAK1C,YAL0C,CAFV;AAAA,YAE1BwN,OAF0B,QAE1BA,OAF0B;AAAA,YAEjBC,YAFiB,QAEjBA,YAFiB;;AAUlC,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,kBAA2B,SAA3B;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AACDS,QAAAA,GAAG,CAACjE,OAAJ;AACAiE,QAAAA,GAAG,CAACrD,YAAJ;AAhBkC;AAiBnC,KAtB6B;AAAA;AAAA;AAAA;;AAC9B,MAAMqD,GAAG,GAAG5C,YAAY,EAAxB;;AAD8B,wBAEbgD,cAAc,EAFD;AAAA,MAEtB9S,IAFsB,mBAEtBA,IAFsB;;AAAA,MAGtBwE,IAHsB,GAGb6C,KAHa,CAGtB7C,IAHsB;AAwB9B,sBACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAC,YADR;AAEE,IAAA,WAAW,QAAMA,IAAI,CAAC,QAAD,CAAJ,CAAe,OAAf,CAFnB;AAGE,IAAA,SAAS,EAAEysB,QAHb;AAIE,IAAA,QAAQ,EAAE;AAAA,aAAMve,GAAG,CAACrD,YAAJ,EAAN;AAAA;AAJZ,kBAME,oBAAC,KAAD,CAAO,QAAP,qBACE;AAAO,IAAA,KAAK,EAAE;AAAE0hB,MAAAA,OAAO,EAAE,OAAX;AAAoB9f,MAAAA,SAAS,EAAE;AAA/B;AAAd,uBACkBzM,IAAI,CAAC,OAAD,CADtB,aADF,eAIE;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,SAAS,EAAC,OAFZ;AAGE,IAAA,YAAY,EAAEkc,QAAQ,CAAClc,IAAI,CAAC,OAAD,CAAL;AAHxB,IAJF,CANF,CADF;AAmBD;;AC7CD,IAAMgsB,WAAS,GAAG,SAAZA,SAAY,CAACtlB,GAAD;AAAA,SAASA,GAAG,CAACmC,MAAJ,IAAc,GAAvB;AAAA,CAAlB;;AAEO,SAAS6jB,SAAT,CAAmB7pB,KAAnB,EAA0B;AAAA,MAIhB8pB,SAJgB,YAIhBA,SAJgB,CAIN5xB,IAJM;AAAA,QAIA;AAAA,6BACL6D,OAAO,CAACqJ,GAAR,CACtB7B,KAAK,CAAClJ,GAAN,CAAU,UAAC8C,IAAD,EAAU;AAClB,eAAOkO,GAAG,CAACxC,MAAJ,CAAWlQ,IAAX,MAAmB0S,GAAG,CAACnT,IAAvB,GAA8BiF,IAAI,CAAC,OAAD,CAAlC,aAAqD;AAC1DosB,UAAAA,WAAW,EAAErxB,IAD6C;AAE1DsxB,UAAAA,MAAM,EAAErsB,IAAI,CAAC,OAAD;AAF8C,SAArD,CAAP;AAID,OALD,CADsB,CADK,iBACvBssB,SADuB;AAU7Bpe,QAAAA,GAAG,CAACjE,OAAJ;AACAiE,QAAAA,GAAG,CAACrD,YAAJ;;AAEA,YAAIyhB,SAAS,CAACjK,KAAV,CAAgB2J,WAAhB,CAAJ,EAAgC;AAC9B9d,UAAAA,GAAG,CAACnE,KAAJ,oCAA2ChP,IAA3C,EAAmD,QAAnD;AACA;AACD;;AAED,YAAIuxB,SAAS,CAAC1M,IAAV,CAAeoM,WAAf,CAAJ,EAA+B;AAC7B9d,UAAAA,GAAG,CAACnE,KAAJ,wCAAiD,SAAjD;AACA;AACD;;AAEDmE,QAAAA,GAAG,CAACnE,KAAJ,iBAA0B,SAA1B;AAvB6B;AAwB9B,KA5B8B;AAAA;AAAA;AAAA;;AAC/B,MAAMmE,GAAG,GAAG5C,YAAY,EAAxB;AAD+B,qBAERzI,KAFQ,CAEvBuD,KAFuB;AAAA,MAEvBA,KAFuB,6BAEf,EAFe;AA8B/B,sBACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAC,YADR;AAEE,IAAA,SAAS,EAAEumB,SAFb;AAGE,IAAA,QAAQ,EAAE;AAAA,aAAMze,GAAG,CAACrD,YAAJ,EAAN;AAAA;AAHZ,IADF;AAOD;;ACrCM,SAAS+hB,QAAT,CAAkB/pB,KAAlB,EAAyB;AAAA,MAOfgqB,QAPe,YAOfA,QAPe,CAON9xB,IAPM;AAAA,QAOA;AAAA,6BACoBS,IAAI,CAClD;AACE4wB,QAAAA,WAAW,EAAErxB,IADf;AAEEsxB,QAAAA,MAAM,EAAErsB,IAAI,CAAC,OAAD;AAFd,OADkD,EAKlD,OALkD,CADxB;AAAA,YACpBwN,OADoB,QACpBA,OADoB;AAAA,YACXC,YADW,QACXA,YADW;AAAA,YACGvL,MADH,QACGA,MADH;;AAS5B,YAAI,CAACsL,OAAL,EAAc;AACZ7L,UAAAA,QAAQ,CAAC;AACP5G,YAAAA,IAAI,QAAM2Q,MAAM,CAACzE,SAAP,CAAiB/E,MAAM,CAAC,MAAD,CAAvB,CAAN,MADG;AAEP6mB,YAAAA,GAAG,EAAE;AAFE,WAAD,CAAR;AAIA7a,UAAAA,GAAG,CAACnE,KAAJ,iBAA0B,SAA1B;AACD,SAND,MAMO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AAEDS,QAAAA,GAAG,CAACjE,OAAJ;AACAiE,QAAAA,GAAG,CAACrD,YAAJ;AApB4B;AAqB7B,KA5B6B;AAAA;AAAA;AAAA;;AAC9B,MAAMqD,GAAG,GAAG5C,YAAY,EAAxB;;AAD8B,wBAEbgD,cAAc,EAFD;AAAA,MAEtB9S,IAFsB,mBAEtBA,IAFsB;;AAAA,qBAGTsF,WAAW,EAHF;AAAA,MAGrBa,QAHqB;;AAI9B,MAAM+J,MAAM,GAAGC,mBAAmB,EAAlC;AAJ8B,MAKtB3L,IALsB,GAKb6C,KALa,CAKtB7C,IALsB;AA8B9B,sBACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAC,YADR;AAEE,IAAA,SAAS,EAAE6sB,QAFb;AAGE,IAAA,QAAQ,EAAE;AAAA,aAAM3e,GAAG,CAACrD,YAAJ,EAAN;AAAA;AAHZ,IADF;AAOD;;ACrCM,SAASiiB,UAAT,CAAoBjqB,KAApB,EAA2B;AAAA,MAOjBkqB,UAPiB,YAOjBA,UAPiB;AAAA,QAOJ;AAAA,6BACc1e,GAAG,EADjB;AAAA,YAClBb,OADkB,QAClBA,OADkB;AAAA,YACTC,YADS,QACTA,YADS;;AAG1B,YAAI,CAACD,OAAL,EAAc;AACZ7L,UAAAA,QAAQ,CAAC;AACP5G,YAAAA,IAAI,QAAM2Q,MAAM,CAACzE,SAAP,CAAiBjH,IAAI,CAAC,QAAD,CAAJ,CAAe,KAAf,CAAjB,CAAN,MADG;AAEP+oB,YAAAA,GAAG,EAAE;AAFE,WAAD,CAAR;AAIA7a,UAAAA,GAAG,CAACnE,KAAJ,mBAA4B,SAA5B;AACD,SAND,MAMO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,8BAAqC0D,YAArC,EAAqD,QAArD;AACD;;AAEDS,QAAAA,GAAG,CAACjE,OAAJ;AACAiE,QAAAA,GAAG,CAACrD,YAAJ;AAd0B;AAe3B,KAtB+B;AAAA;AAAA;AAAA;;AAChC,MAAMqD,GAAG,GAAG5C,YAAY,EAAxB;;AADgC,wBAEPgD,cAAc,EAFP;AAAA,MAExBD,GAFwB,mBAExBA,GAFwB;AAAA,MAEnBxC,OAFmB,mBAEnBA,OAFmB;;AAAA,qBAGX/K,WAAW,EAHA;AAAA,MAGvBa,QAHuB;;AAIhC,MAAM+J,MAAM,GAAGC,mBAAmB,EAAlC;AAJgC,MAKxB3L,IALwB,GAKf6C,KALe,CAKxB7C,IALwB;AAwBhC,sBACE,oBAAC,OAAD;AACE,IAAA,OAAO,EAAE6L,OADX;AAEE,IAAA,QAAQ,EAAE;AAAA,aAAMqC,GAAG,CAACrD,YAAJ,EAAN;AAAA,KAFZ;AAGE,IAAA,SAAS,EAAEkiB,UAHb;AAIE,IAAA,OAAO,+BAA6B/sB,IAAI,CAAC,OAAD,CAAjC;AAJT,IADF;AAQD;;AC9BD,IAAMuN,SAAO,GAAG;AACdyf,EAAAA,KAAK,EAAE,EADO;AAEdC,EAAAA,KAAK,EAAE;AAFO,CAAhB;AAKO,SAASC,cAAT,CAAwBrqB,KAAxB,EAA+B;AAAA,MAarB2L,QAbqB,YAarBA,QAbqB,CAaZxT,IAbY;AAAA,QAaN;AAC5B,UAAI+P,KAAK,CAACiiB,KAAN,KAAgB,EAApB,EAAwB;AACtBG,QAAAA,SAAS,CAAC,oBAAD,CAAT;AACA;AACD;;AAED,UAAIpiB,KAAK,CAACiiB,KAAN,KAAgBjiB,KAAK,CAACkiB,KAA1B,EAAiC;AAC/BE,QAAAA,SAAS,CAAC,yBAAD,CAAT;AACA;AACD;;AAEDA,MAAAA,SAAS,CAAChxB,SAAD,CAAT;AAEA,UAAIsS,IAAI,GAAG;AACToG,QAAAA,QAAQ,EAAE9J,KAAK,CAACiiB;AADP,OAAX;AAb4B,6BAiBYjxB,KAAK,CAAC0S,IAAD,CAjBjB;AAAA,YAiBpBjB,OAjBoB,QAiBpBA,OAjBoB;AAAA,YAiBXC,YAjBW,QAiBXA,YAjBW;;AAkB5B,YAAI,CAACD,OAAL,EAAc;AACZU,UAAAA,GAAG,CAACnE,KAAJ,CAAU,kBAAV,EAA8B,SAA9B;AACD,SAFD,MAEO;AACLmE,UAAAA,GAAG,CAACnE,KAAJ,4BAAmC0D,YAAnC,EAAmD,QAAnD;AACD;;AAEDS,QAAAA,GAAG,CAACrD,YAAJ;AACAqD,QAAAA,GAAG,CAACjE,OAAJ;AAzB4B;AA0B7B,KAvCmC;AAAA;AAAA;AAAA;;AAAA,wBACVsB,KAAK,CAACxK,QAAN,CAAewM,SAAf,CADU;AAAA,MAC7BxC,KAD6B;AAAA,MACtBkC,QADsB;;AAAA,yBAER1B,KAAK,CAACxK,QAAN,CAAe5E,SAAf,CAFQ;AAAA,MAE7BixB,MAF6B;AAAA,MAErBD,SAFqB;;AAIpC,MAAMjf,GAAG,GAAG5C,YAAY,EAAxB;;AAJoC,wBAKlBgD,cAAc,EALI;AAAA,MAK5BvS,KAL4B,mBAK5BA,KAL4B;;;AASpC,MAAMoQ,SAAS,GAAG,SAAZA,SAAY,GAAM;AACtB+B,IAAAA,GAAG,CAACrD,YAAJ;AACD,GAFD;;AAgCA,MAAMwiB,OAAO,GAAG,SAAVA,OAAU,CAAC1X,KAAD;AAAA,WAAW,UAACtR,GAAD,EAAS;AAClC,UAAIipB,CAAC,GAAG,EAAR;AACAA,MAAAA,CAAC,CAAC3X,KAAD,CAAD,GAAWtR,GAAX;AACA4I,MAAAA,QAAQ,CAAC,UAAClC,KAAD;AAAA,4BAAiBA,KAAjB,EAA2BuiB,CAA3B;AAAA,OAAD,CAAR;AACAH,MAAAA,SAAS,CAAChxB,SAAD,CAAT;AACD,KALe;AAAA,GAAhB;;AAOA,sBACE,oBAAC,KAAD;AAAO,IAAA,QAAQ,EAAE,IAAjB;AAAuB,IAAA,SAAS,EAAEgQ;AAAlC,kBACE,oBAAC,IAAD;AACE,IAAA,QAAQ,EAAEqC,QADZ;AAEE,IAAA,OAAO,EAAE,iBAACM,GAAD;AAAA,aAAS5H,OAAO,CAACC,GAAR,CAAY2H,GAAZ,CAAT;AAAA,KAFX;AAGE,IAAA,UAAU,EAAE,QAHd;AAIE,IAAA,KAAK,EAAE;AAJT,KAMGse,MAAM,iBACL;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAQ,IAAA,SAAS,EAAC;AAAlB,IADF,EAEGA,MAFH,CAPJ,eAYE,oBAAC,KAAD;AACE,IAAA,EAAE,EAAC,MADL;AAEE,IAAA,WAAW,EAAC,cAFd;AAGE,IAAA,IAAI,EAAC,UAHP;AAIE,IAAA,KAAK,EAAEriB,KAAK,CAACiiB,KAJf;AAKE,IAAA,QAAQ,EAAEK,OAAO,CAAC,OAAD;AALnB,IAZF,eAoBE,oBAAC,KAAD;AACE,IAAA,EAAE,EAAC,MADL;AAEE,IAAA,WAAW,EAAC,iBAFd;AAGE,IAAA,IAAI,EAAC,UAHP;AAIE,IAAA,KAAK,EAAEtiB,KAAK,CAACkiB,KAJf;AAKE,IAAA,QAAQ,EAAEI,OAAO,CAAC,OAAD;AALnB,IApBF,eA2BE,oBAAC,MAAD,iBA3BF,CADF,CADF;AAiCD;;ACxFM,SAASE,QAAT,OAAsE;AAAA,MAAlDhZ,QAAkD,QAAlDA,QAAkD;AAAA,MAAxCW,UAAwC,QAAxCA,UAAwC;AAAA,MAA5BvI,KAA4B,QAA5BA,KAA4B;AAAA,MAArBZ,QAAqB,QAArBA,QAAqB;AAAA,MAAXF,OAAW,QAAXA,OAAW;;AAAA,kBACnD9K,QAAQ,CAAC,EAAD,CAD2C;AAAA,MACpEvB,IADoE;AAAA,MAC9DguB,OAD8D;;AAAA,mBAEvDzsB,QAAQ,CAAC,EAAD,CAF+C;AAAA,MAEpEoC,EAFoE;AAAA,MAEhEunB,KAFgE;;AAAA,mBAGjD3pB,QAAQ,CAAC5E,SAAD,CAHyC;AAAA,MAGpEiS,KAHoE;AAAA,MAG7D6Q,QAH6D;;AAK3E,MAAMwO,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,QAAIjuB,IAAI,KAAK,EAAb,EAAiB;AACfyf,MAAAA,QAAQ,CAAC,wBAAD,CAAR;AACA;AACD;;AACD1K,IAAAA,QAAQ,CAAC;AAAE5H,MAAAA,KAAK,EAAEnN,IAAT;AAAe2D,MAAAA,EAAE,EAAFA;AAAf,KAAD,CAAR;AACD,GAND;;AAQA,MAAMuqB,QAAQ,GAAG,SAAXA,QAAW,CAAC7gB,KAAD,EAAW;AAC1B6d,IAAAA,KAAK,CAACzsB,YAAY,CAAC4O,KAAD,CAAb,CAAL;AACA2gB,IAAAA,OAAO,CAAC3gB,KAAD,CAAP;AACD,GAHD;;AAKA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEF,KAAb;AAAoB,IAAA,QAAQ,EAAE8gB,MAA9B;AAAsC,IAAA,QAAQ,EAAE1hB;AAAhD,kBACE,oBAAC,KAAD;AACE,IAAA,EAAE,EAAC,OADL;AAEE,IAAA,WAAW,EAAC,OAFd;AAGE,IAAA,QAAQ,MAHV;AAIE,IAAA,KAAK,EAAEvM,IAJT;AAKE,IAAA,QAAQ,EAAEkuB,QALZ;AAME,IAAA,SAAS,MANX;AAOE,IAAA,KAAK,EAAEtf,KAPT;AAQE,IAAA,QAAQ,EAAC;AARX,IADF,eAYE,oBAAC,KAAD;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,WAAW,EAAC,IAFd;AAGE,IAAA,KAAK,EAAEjL,EAHT;AAIE,IAAA,QAAQ,EAAEunB,KAJZ;AAKE,IAAA,QAAQ,EAAC;AALX,IAZF,eAoBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,SAAS,0BAAuB7e,OAAO,GAAG,YAAH,GAAkB,EAAhD,CAFX;AAGE,iBAAU;AAHZ,KAKGqJ,UAAU,IAAI,KALjB,CADF,CApBF,CADF;AAgCD;;AC1CD,IAAMjK,MAAI,GAAG;AACX0iB,EAAAA,MAAM,EAAEnJ;AADG,CAAb;AAIO,SAASoJ,YAAT,GAAwB;AAC7B,MAAM1f,GAAG,GAAG5C,YAAY,EAAxB;AAEA,sBACE;AACE,IAAA,SAAS,EAAC,mBADZ;AAEE,IAAA,OAAO,EAAE;AAAA,aAAM4C,GAAG,CAACvD,QAAJ,CAAa,SAAb,EAAwB;AAAE3I,QAAAA,IAAI,EAAE;AAAR,OAAxB,CAAN;AAAA,KAFX;AAGE,qBAAc,MAHhB;AAIE,qBAAc;AAJhB,kBAME,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IANF,eAOE,gDAPF,CADF;AAWD;AAEM,SAAS6rB,SAAT,CAAmBhrB,KAAnB,EAA0B;AAC/B,sBACE,oBAAC,SAAD;AACE,IAAA,IAAI,EAAEoI,MADR;AAEE,IAAA,UAAU,EAAC,QAFb;AAGE,IAAA,YAAY,eAAE,oBAAC,YAAD;AAHhB,KAIMpI,KAJN,EADF;AAQD;AAED,IAAIirB,UAAU,GAAG/pB,MAAM,gBAAvB;AACA,IAAI2gB,YAAY,GAAG3gB,MAAM,CAAC,gBAAD,CAAzB;AAEO,SAASgqB,QAAT,GAAoB;AAAA,wBACFzf,cAAc,EADZ;AAAA,MACjBJ,GADiB,mBACjBA,GADiB;AAAA,MACZnS,KADY,mBACZA,KADY;;AAAA,kBAECgF,QAAQ,CAAC,EAAD,CAFT;AAAA,MAElBgmB,KAFkB;AAAA,MAEXiH,QAFW;;AAIzB5sB,EAAAA,SAAS,CAAC,YAAM;;AAAA,QACA;AAAA,6BACkB8M,GAAG,CAACxC,MAAJ,CAAWrD,QAAX,CAAoB6F,GAAG,CAACnT,IAAxB,CADlB,iBACN+wB,eADM;AAAA;AAUZkC,UAAAA,QAAQ,CAACjH,KAAD,CAAR;AAVY;;AAEZ,YAAIA,KAAK,GAAG,EAAZ;;AAFY;AAAA,cAIR+E,eAAe,CAAC1jB,EAJR;AAAA,mCAKK0jB,eAAe,CAACnlB,IAAhB,EALL;AAKVogB,cAAAA,KAAK,GAAG,sBAA+B7pB,GAA/B,CAAmC,UAACqmB,IAAD;AAAA,uBAAW;AACpD/M,kBAAAA,IAAI,EAAE+M,IAD8C;AAEpD1W,kBAAAA,KAAK,EAAE0W;AAF6C,iBAAX;AAAA,eAAnC,CAAR;AALU;AAAA;AAAA;;AAAA;AAAA;AAWb,KAZa;AAAA;AAAA;AAaf,GAbQ,EAaN,EAbM,CAAT;;AAeA,MAAM0K,cAAc,YAAdA,cAAc,CAAUzgB,OAAV,EAAmBnD,OAAnB,EAA4BoD,YAA5B;AAAA,QAA6C;AAC/D,UAAI,CAACD,OAAL,EAAc;AACZU,QAAAA,GAAG,CAACnE,KAAJ,CAAUM,OAAV,EAAmB,SAAnB;AACA6D,QAAAA,GAAG,CAACjE,OAAJ;AACD,OAHD,MAGO;AACLiE,QAAAA,GAAG,CAACnE,KAAJ,yBAAgC0D,YAAhC,EAAgD,QAAhD;AACD;;AAN8D;AAOhE,KAPmB;AAAA;AAAA;AAAA,GAApB;;AASA,MAAMygB,OAAO,YAAPA,OAAO,CAAUtd,EAAV;AAAA,QAAiB;AAC5B,UAAM2S,IAAI,GAAG3S,EAAE,CAACtH,MAAH,CAAUuD,KAAvB;AAD4B,6BAEY9Q,KAAK,CAAC;AAC5C6vB,QAAAA,UAAU,EAAE1d,GAAG,CAAC9C,OAAJ,CAAYwgB,UAAZ,CAAuBniB,MAAvB,CAA8B8Z,IAA9B;AADgC,OAAD,CAFjB;AAAA,YAEpB/V,OAFoB,QAEpBA,OAFoB;AAAA,YAEXC,YAFW,QAEXA,YAFW;AAK5BwgB,QAAAA,cAAc,CAACzgB,OAAD,YAAkB+V,IAAlB,sBAAyC9V,YAAzC,CAAd;AAL4B;AAM7B,KANY;AAAA;AAAA;AAAA,GAAb;;AAQA,MAAM0gB,UAAU,YAAVA,UAAU,CAAU5K,IAAV;AAAA,QAAmB;AAAA,6BACOxnB,KAAK,CAAC;AAC5C6vB,QAAAA,UAAU,EAAE1d,GAAG,CAAC9C,OAAJ,CAAYwgB,UAAZ,CAAuBtvB,MAAvB,CAA8B,UAAC+f,CAAD;AAAA,iBAAOA,CAAC,KAAKkH,IAAb;AAAA,SAA9B;AADgC,OAAD,CADZ;AAAA,YACzB/V,OADyB,SACzBA,OADyB;AAAA,YAChBC,YADgB,SAChBA,YADgB;AAIjCwgB,QAAAA,cAAc,CAACzgB,OAAD,YAAkB+V,IAAlB,0BAA6C9V,YAA7C,CAAd;AAJiC;AAKlC,KALe;AAAA;AAAA;AAAA,GAAhB;;AAOA,MAAM2gB,OAAO,YAAPA,OAAO,CAAUC,OAAV;AAAA,QAAsB;AACjC,UAAMrzB,IAAI,GAAG,EAAb;AACAkT,MAAAA,GAAG,CAAC9C,OAAJ,CAAYpD,KAAZ,CAAkBrH,OAAlB,CAA0B,UAACinB,IAAD,EAAU;AAClC5sB,QAAAA,IAAI,CAAC4sB,IAAD,CAAJ,GAAa,IAAb;AACD,OAFD;AAGA5sB,MAAAA,IAAI,CAACqzB,OAAO,CAAClrB,EAAT,CAAJ,GAAmB,IAAnB;AALiC,6BAMOpH,KAAK,CAAC;AAAEiM,QAAAA,KAAK,EAAEhN;AAAT,OAAD,CANZ;AAAA,YAMzBwS,OANyB,SAMzBA,OANyB;AAAA,YAMhBC,YANgB,SAMhBA,YANgB;AAOjCwgB,QAAAA,cAAc,CACZzgB,OADY,YAEJ6gB,OAAO,CAAC1hB,KAFJ,uBAGZc,YAHY,CAAd;AAPiC;AAYlC,KAZY;AAAA;AAAA;AAAA,GAAb;;AAcA,MAAM6gB,UAAU,YAAVA,UAAU,CAAUC,YAAV;AAAA,QAA2B;AACzC,UAAMvzB,IAAI,GAAG,EAAb;AACAkT,MAAAA,GAAG,CAAC9C,OAAJ,CAAYpD,KAAZ,CAAkBrH,OAAlB,CAA0B,UAACinB,IAAD,EAAU;AAClC5sB,QAAAA,IAAI,CAAC4sB,IAAD,CAAJ,GAAa2G,YAAY,KAAK3G,IAA9B;AACD,OAFD;AAFyC,6BAKD7rB,KAAK,CAAC;AAAEiM,QAAAA,KAAK,EAAEhN;AAAT,OAAD,CALJ;AAAA,YAKjCwS,OALiC,SAKjCA,OALiC;AAAA,YAKxBC,YALwB,SAKxBA,YALwB;AAMzCwgB,QAAAA,cAAc,CACZzgB,OADY,YAEJ+gB,YAFI,0BAGZ9gB,YAHY,CAAd;AANyC;AAW1C,KAXe;AAAA;AAAA;AAAA,GAAhB;;AAaA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,eAEE,8CAFF,CADF,eAKE,+BALF,eAME;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,eADF,eAEE,oBAAC,aAAD;AACE,IAAA,KAAK,EAAC,OADR;AAEE,IAAA,aAAa,MAFf;AAGE,IAAA,KAAK,EAAES,GAAG,CAAC9C,OAAJ,CAAYuB;AAHrB,IAFF,CADF,eASE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,aADF,eAEE,4CAFF,eAGE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEoa,KAAK,CAACzqB,MAAN,CACP,UAACinB,IAAD;AAAA,aAAU,CAACrV,GAAG,CAAC9C,OAAJ,CAAYwgB,UAAZ,CAAuBznB,QAAvB,CAAgCof,IAAI,CAAC1W,KAArC,CAAX;AAAA,KADO,CADX;AAIE,IAAA,aAAa,MAJf;AAKE,IAAA,QAAQ,EAAEqhB;AALZ,IAHF,eAUE,+BAVF,EAWGhgB,GAAG,CAAC9C,OAAJ,CAAYwgB,UAAZ,CAAuB1uB,GAAvB,CAA2B,UAACsxB,KAAD;AAAA,wBAC1B;AAAG,MAAA,SAAS,EAAC,SAAb;AAAuB,MAAA,GAAG,aAAWA;AAArC,oBACE,oBAAC,GAAD;AACE,MAAA,IAAI,EAAEA,KADR;AAEE,MAAA,QAAQ,EAAE;AAAA,eAAML,UAAU,CAACK,KAAD,CAAhB;AAAA,OAFZ;AAGE,MAAA,IAAI,EAAC;AAHP,MADF,CAD0B;AAAA,GAA3B,CAXH,CATF,eA8BE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC;AAAd,aADF,eAEE,4CAFF,eAGE,oBAAC,WAAD;AACE,IAAA,IAAI,EAAElpB,oBAAoB,CAAC4I,GAAG,CAACnT,IAAL,CAD5B;AAEE,IAAA,EAAE,YAAM2pB,YAAN,EAAuBoJ,UAAvB,CAFJ;AAGE,IAAA,SAAS,EAAE5f,GAHb;AAIE,IAAA,QAAQ,EAAEkgB,OAJZ;AAKE,IAAA,QAAQ,EAAC;AALX,IAHF,eAUE,+BAVF,EAWGlgB,GAAG,CAAC9C,OAAJ,CAAYpD,KAAZ,CAAkB9K,GAAlB,CAAsB,UAAC0qB,IAAD;AAAA,wBACrB;AAAG,MAAA,SAAS,EAAC,SAAb;AAAuB,MAAA,GAAG,YAAUA;AAApC,oBACE,oBAAC,GAAD;AACE,MAAA,IAAI,EAAEA,IADR;AAEE,MAAA,QAAQ,EAAE;AAAA,eAAM0G,UAAU,CAAC1G,IAAD,CAAhB;AAAA,OAFZ;AAGE,MAAA,IAAI,EAAC;AAHP,MADF,CADqB;AAAA,GAAtB,CAXH,CA9BF,CANF,CADF;AA6DD;;ACjLD,IAAMrR,KAAK,GAAG;AAAE5W,EAAAA,KAAK,EAAE,SAAT;AAAoB8uB,EAAAA,QAAQ,EAAE,EAA9B;AAAkCC,EAAAA,aAAa,EAAE;AAAjD,CAAd;;IAEqBC;;;;;;;;;;;UACnB5jB,QAAQ;;;;;;SAER6jB,oBAAA,2BAAkBxgB,KAAlB,EAAyBygB,SAAzB,EAAoC;AAClC,SAAK5hB,QAAL,CAAc;AACZwE,MAAAA,QAAQ,EAAE,IADE;AAEZqd,MAAAA,QAAQ,EAAE1gB,KAAK,CAAC/D,OAFJ;AAGZ0kB,MAAAA,UAAU,EAAEF,SAAS,CAACG;AAHV,KAAd;AAKD;;SAEDC,SAAA,kBAAS;AAAA,sBACoC,KAAKlkB,KADzC;AAAA,QACC0G,QADD,eACCA,QADD;AAAA,QACWqd,QADX,eACWA,QADX;AAAA,QACqBC,UADrB,eACqBA,UADrB;;AAGP,QAAItd,QAAJ,EAAc;AACZ,0BACE;AAAK,QAAA,SAAS,EAAC;AAAf,sBACE;AAAK,QAAA,KAAK,EAAE8E;AAAZ,iCADF,EAEGuY,QAAQ,iBACP,4CACE,+BAAIA,QAAJ,CADF,CAHJ,EAOGC,UAAU,iBAAI,+BAAIA,UAAJ,CAPjB,CADF;AAWD;;AAED,WAAO,KAAKlsB,KAAL,CAAW/C,QAAlB;AACD;;;EA7BwCyL,KAAK,CAAC2jB;;ACD1C,SAASC,UAAT,GAAsB;AAC3B,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC,uBAAd;AAAsC,IAAA,KAAK,EAAE;AAAEV,MAAAA,QAAQ,EAAE;AAAZ;AAA7C,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,CADF,eAIE;AAAI,IAAA,SAAS,EAAC;AAAd,mBAJF,CADF;AAQD;;ACTM,SAASW,QAAT,GAAoB;AACzB,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAI,IAAA,SAAS,EAAC,qBAAd;AAAoC,IAAA,KAAK,EAAE;AAAEX,MAAAA,QAAQ,EAAE;AAAZ;AAA3C,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC;AAAX,IADF,CADF,eAIE;AAAI,IAAA,SAAS,EAAC;AAAd,sBAJF,CADF;AAQD;;ACRD;;AAEO,SAASY,IAAT,GAAgB;AACrB,MAAMnI,GAAG,GAAG5b,YAAY,EAAxB;;AADqB,qBAEAxK,WAAW,EAFX;AAAA,MAEZa,QAFY;;AAIrB,MAAI2tB,QAAQ,GAAGpI,GAAG,CAACnsB,IAAJ,CAASoD,OAAT,CAAiB,KAAjB,EAAwB,EAAxB,EAA4BiB,KAA5B,CAAkC,GAAlC,CAAf;AACA,MAAImwB,KAAK,GAAGC,UAAU,CAACF,QAAD,CAAtB;;AAEA,MAAIA,QAAQ,CAAC3xB,MAAT,KAAoB,CAAxB,EAA2B;AACzB,WAAO,KAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAC,YAAf;AAA4B,kBAAW;AAAvC,kBACE,gCACG2xB,QAAQ,CAACpyB,GAAT,CAAa,UAAC8C,IAAD,EAAOyvB,IAAP,EAAgB;AAC5B,QAAM10B,IAAI,GAAGw0B,KAAK,CAACE,IAAD,CAAlB;;AACA,QAAM5vB,OAAO,GAAG,SAAVA,OAAU,CAAC2B,CAAD,EAAO;AACrB,UAAIhE,MAAM,CAAC6E,KAAP,CAAae,OAAb,IAAwB5F,MAAM,CAAC6E,KAAP,CAAagB,OAAzC,EAAkD;AAClD7B,MAAAA,CAAC,CAAC0B,cAAF;AACAvB,MAAAA,QAAQ,CAAC;AAAE5G,QAAAA,IAAI,EAAJA;AAAF,OAAD,EAAW,IAAX,CAAR;AACD,KAJD;;AAMA,WAAO00B,IAAI,KAAK,CAAT,gBACL;AAAI,MAAA,GAAG,EAAEA;AAAT,oBACE;AAAG,MAAA,IAAI,EAAE10B,IAAT;AAAe,MAAA,OAAO,EAAE8E;AAAxB,oBACE;AAAM,MAAA,SAAS,EAAC;AAAhB,oBACE;AAAG,MAAA,SAAS,EAAC;AAAb,MADF,CADF,CADF,CADK,gBASL;AAAI,MAAA,GAAG,EAAE4vB;AAAT,oBACE;AACE,MAAA,IAAI,EAAE10B,IADR;AAEE,MAAA,OAAO,EAAE8E,OAFX;AAGE,2CAAiCG,IAAI,CAAC5B,WAAL;AAHnC,OAKG4B,IALH,CADF,CATF;AAmBD,GA3BA,CADH,CADF,CADF;AAkCD;;AAED,IAAMwvB,UAAU,GAAG,SAAbA,UAAa,CAACF,QAAD,EAAc;AAC/B,MAAI3yB,OAAO,GAAG,EAAd;AACA,MAAI+yB,OAAO,GAAG,EAAd;AACAJ,EAAAA,QAAQ,CAACpyB,GAAT,CAAa,UAAC8C,IAAD,EAAOyvB,IAAP,EAAgB;AAC3B,QAAIA,IAAI,KAAK,CAAb,EAAgB;AACd9yB,MAAAA,OAAO,IAAI,GAAX;AACD,KAFD,MAEO;AACLA,MAAAA,OAAO,IAAIqD,IAAI,GAAG,GAAlB;AACD;;AACD0vB,IAAAA,OAAO,CAACzf,IAAR,CAAatT,OAAb;AACA,WAAOqD,IAAP;AACD,GARD;AASA,SAAO0vB,OAAP;AACD,CAbD;;AC5CO,IAAM3R,aAAa,GAAGxS,KAAK,CAACqH,UAAN,CAC3B,gBAA0DlD,GAA1D,EAAkE;AAAA,MAA/DuF,MAA+D,QAA/DA,MAA+D;AAAA,MAAvD5Q,GAAuD,QAAvDA,GAAuD;AAAA,MAAlDyZ,QAAkD,QAAlDA,QAAkD;AAAA,MAAxC/R,QAAwC,QAAxCA,QAAwC;AAAA,MAA9B9M,SAA8B,QAA9BA,SAA8B;AAAA,MAAhBK,IAAgB;;AAChE,MAAI,CAAA2V,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,UAAnB,IAAiC,CAAAiC,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,UAAxD,EAAoE;AAClE,wBACE,oBAAC,QAAD;AACE,MAAA,KAAK,EAAE3O,GAAG,IAAI,EADhB;AAEE,MAAA,SAAS,EAAEpF,SAFb;AAGE,MAAA,QAAQ,EAAE,kBAAC2R,EAAD;AAAA,eAAQkN,QAAQ,CAAClN,EAAD,CAAhB;AAAA,OAHZ;AAIE,MAAA,GAAG,EAAElB,GAJP;AAKE,MAAA,QAAQ,EAAE3D;AALZ,OAMMzM,IANN,EADF;AAUD,GAXD,MAWO,IAAI,CAAA2V,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,SAArB,EAAgC;AACrC,wBACE,oBAAC,QAAD;AACE,MAAA,KAAK,EAAE,CAAC,CAACqC,GADX;AAEE,MAAA,SAAS,EAAEpF,SAFb;AAGE,MAAA,QAAQ,EAAE,kBAAC2R,EAAD;AAAA,eAAQkN,QAAQ,CAAClN,EAAD,CAAhB;AAAA,OAHZ;AAIE,MAAA,GAAG,EAAElB,GAJP;AAKE,MAAA,QAAQ,EAAE3D;AALZ,OAMMzM,IANN,EADF;AAUD,GAXM,MAWA,IAAI,CAAA2V,MAAM,QAAN,YAAAA,MAAM,CAAEjT,IAAR,MAAiB,OAArB,EAA8B;AACnC,wBACE,oBAAC,SAAD;AACE,MAAA,KAAK,EAAEqC,GAAG,IAAI,EADhB;AAEE,MAAA,SAAS,EAAEpF,SAFb;AAGE,MAAA,QAAQ,EAAE,kBAAC2R,EAAD;AAAA,eAAQkN,QAAQ,CAAClN,EAAD,CAAhB;AAAA,OAHZ;AAIE,MAAA,GAAG,EAAElB,GAJP;AAKE,MAAA,QAAQ,EAAE3D;AALZ,OAMMzM,IANN,EADF;AAUD,GAXM,MAWA,IAAI,CAAA2V,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,MAAvB,EAA+B;AACpC,wBACE,oBAAC,UAAD;AACE,MAAA,QAAQ,EAAE,kBAACpC,EAAD;AAAA,eAAQkN,QAAQ,CAAClN,EAAD,CAAhB;AAAA,OADZ;AAEE,MAAA,KAAK,EAAE/U,KAAG,CAACwI,GAAD,EAAM,UAAN,EAAkB,IAAlB,CAFZ;AAGE,MAAA,QAAQ,EAAE0H;AAHZ,OAIMzM,IAJN,EADF;AAQD,GATM,MASA,IAAI,CAAA2V,MAAM,QAAN,YAAAA,MAAM,CAAEjC,MAAR,MAAmB,QAAvB,EAAiC;AACtC,wBACE,oBAAC,MAAD;AACE,MAAA,KAAK,EAAE3O,GAAG,IAAI,EADhB;AAEE,MAAA,SAAS,EAAEpF,SAFb;AAGE,MAAA,aAAa,MAHf;AAIE,MAAA,SAAS,EAAC,cAJZ;AAKE,MAAA,QAAQ,EAAE8M;AALZ,OAMMzM,IANN;AAOE,MAAA,OAAO,EAAE2V,MAAF,oBAAEA,MAAM,CAAE0a,UAAR,CAAmBzyB,GAAnB,CAAuB,UAAC8C,IAAD,EAAU;AACxC,eAAO;AACLwW,UAAAA,IAAI,EAAExW,IADD;AAEL6M,UAAAA,KAAK,EAAE7M;AAFF,SAAP;AAID,OALQ,CAPX;AAaE,MAAA,QAAQ,EAAE,kBAAC4Q,EAAD,EAAQ;AAChB,YAAMgf,WAAW,GAAG/zB,KAAG,CAAC+U,EAAD,EAAK,cAAL,EAAqB,EAArB,CAAvB;AACA,eAAOkN,QAAQ,CAAC8R,WAAD,CAAf;AACD;AAhBH,OADF;AAoBD;;AACD,MAAMC,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB,YAAQ5a,MAAR,oBAAQA,MAAM,CAAEjT,IAAhB;AACE,WAAK,SAAL;AACE,eAAO,QAAP;;AACF,WAAK,MAAL;AACE,eAAO,MAAP;;AACF,WAAK,UAAL;AACE,eAAO,gBAAP;;AACF;AACE,eAAO,MAAP;AARJ;AAUD,GAXD;;AAYA,sBACE,oBAAC,KAAD;AACE,IAAA,KAAK,EAAEqC,GAAG,IAAI,EADhB;AAEE,IAAA,SAAS,EAAEpF,SAFb;AAGE,IAAA,QAAQ,EAAE8M,QAHZ;AAIE,IAAA,QAAQ,EAAE,kBAAC6E,EAAD;AAAA,aAAQkN,QAAQ,CAAClN,EAAD,CAAhB;AAAA,KAJZ;AAKE,IAAA,GAAG,EAAElB,GALP;AAME,IAAA,IAAI,EAAEmgB,YAAY;AANpB,KAOMvwB,IAPN,EADF;AAWD,CAzF0B,CAAtB;AA4FPye,aAAa,CAAClI,WAAd,GAA4B,eAA5B;;ACxEA,IAAIjH,QAAQ,GAAG;AACbkhB,EAAAA,KAAK,EAAE,EADM;AAEbC,EAAAA,KAAK,EAAE;AACLpB,IAAAA,aAAa,EAAEA,aADV;AAELQ,IAAAA,UAAU,EAAEA,UAFP;AAGLC,IAAAA,QAAQ,EAAEA,QAHL;AAILY,IAAAA,WAAW,EAAE/F,cAJR;AAKLgG,IAAAA,QAAQ,EAAE7F,WALL;AAML8F,IAAAA,SAAS,EAAEnF,YANN;AAOLoF,IAAAA,WAAW,EAAE3E,QAPR;AAQL4E,IAAAA,IAAI,EAAE3E,OARD;AASL4E,IAAAA,KAAK,EAAEtC,QATF;AAULuC,IAAAA,YAAY,EAAEzC,SAVT;AAWL0C,IAAAA,MAAM,EAAExG,SAXH;AAYL7F,IAAAA,IAAI,EAAE8F;AAZD,GAFM;AAgBbha,EAAAA,OAAO,EAAE;AACPqY,IAAAA,OAAO,EAAE9Z,OADF;AAEP2d,IAAAA,SAAS,EAAED,SAFJ;AAGPQ,IAAAA,QAAQ,EAAED,QAHH;AAIPG,IAAAA,SAAS,EAAED,SAJJ;AAKPG,IAAAA,QAAQ,EAAED,QALH;AAMP/c,IAAAA,WAAW,EAAED,WANN;AAOP4gB,IAAAA,cAAc,EAAEtD,cAPT;AAQPH,IAAAA,UAAU,EAAED;AARL,GAhBI;AA0Bb2D,EAAAA,KAAK,EAAE;AACLN,IAAAA,WAAW,EAAE5C,QADR;AAEL+C,IAAAA,YAAY,EAAE/C,QAFT;AAGLgD,IAAAA,MAAM,EAAEhD,QAHH;AAILrJ,IAAAA,IAAI,EAAEqJ,QAJD;AAKL6C,IAAAA,IAAI,EAAEnF,QALD;AAMLoF,IAAAA,KAAK,EAAE9C;AANF,GA1BM;AAkCbzI,EAAAA,SAAS,EAAE;AACT,mDAA+CzF,WADtC;AAET,mDAA+CX,WAFtC;AAGT,wDAAoDC;AAH3C,GAlCE;AAuCb+R,EAAAA,WAAW,EAAE,EAvCA;AAwCbC,EAAAA,OAAO,EAAE,EAxCI;AAyCbrb,EAAAA,UAAU,EAAE,EAzCC;AA0Cbsb,EAAAA,UAAU,EAAE;AACVvB,IAAAA,IAAI,EAAEA,IADI;AAEVtR,IAAAA,aAAa,EAAEA;AAFL,GA1CC;AA8Cb8S,EAAAA,+BAA+B,EAAE;AAC/BC,IAAAA,SAAS,EAAE,yBADoB;AAE/BC,IAAAA,aAAa,EAAE;AAFgB;AA9CpB,CAAf;;AAoDA,IAAMl1B,KAAG,GAAG,SAANA,GAAM,CAACsB,GAAD,EAAM2E,KAAN,EAAaynB,QAAb,EAA0B;AACpC,MAAI3a,QAAQ,CAACzR,GAAD,CAAZ,EAAmB,OAAOyR,QAAQ,CAACzR,GAAD,CAAR,CAAc2E,KAAd,KAAwBynB,QAA/B;AACnB,SAAOA,QAAP;AACD,CAHD;;AAKA,IAAMyH,YAAY,GAAG,SAAfA,YAAe,CAAC5lB,OAAD,EAAUrQ,IAAV,EAAgBwuB,QAAhB,EAA6B;AAChD,MAAI,CAACne,OAAL,EAAc,OADkC;AAGhD;;AACA,MAAIwD,QAAQ,CAACkhB,KAAT,CAAe/0B,IAAf,CAAJ,EAA0B;AACxB,WAAO6T,QAAQ,CAACkhB,KAAT,CAAe/0B,IAAf,CAAP;AACD,GAN+C;;;AAQhD,MAAI6T,QAAQ,CAACmhB,KAAT,CAAe3kB,OAAO,CAAC,OAAD,CAAtB,CAAJ,EAAsC;AACpC,WAAOwD,QAAQ,CAACmhB,KAAT,CAAe3kB,OAAO,CAAC,OAAD,CAAtB,CAAP;AACD;;AACD,MAAIme,QAAJ,EAAc;AACZ,WAAOA,QAAP;AACD;;AACD,SAAO0H,gBAAgB,CAAC7lB,OAAD,CAAvB;AACD,CAfD;;AAiBA,IAAM3F,cAAc,GAAG,SAAjBA,cAAiB,CAACzD,IAAD,EAAU;AAC/B,MAAMkvB,QAAQ,GAAGtiB,QAAQ,CAAC8hB,WAAT,CAAqB1uB,IAArB,CAAjB;;AACA,MAAIkvB,QAAJ,EAAc;AACZ,WAAOA,QAAQ,EAAf;AACD;;AACD,SAAO/0B,SAAP;AACD,CAND;;AAQA,IAAMwS,OAAO,GAAG,SAAVA,OAAU,CAAC3M,IAAD,EAAOunB,QAAP,EAA+B;AAAA,MAAxBA,QAAwB;AAAxBA,IAAAA,QAAwB,GAAbgE,QAAa;AAAA;;AAC7C,SAAO3e,QAAQ,CAAC6hB,KAAT,CAAezuB,IAAf,KAAwBunB,QAA/B;AACD,CAFD;;AAIA,IAAM4H,SAAS,GAAG,SAAZA,SAAY,CAACnvB,IAAD,EAAOunB,QAAP,EAAoB;AACpC,SAAO3a,QAAQ,CAACoB,OAAT,CAAiBhO,IAAjB,KAA0BunB,QAAjC;AACD,CAFD;;AAIA,IAAM1E,WAAW,GAAG,SAAdA,WAAc,CAAC7iB,IAAD,EAAOunB,QAAP,EAAoB;AACtC,SAAO3a,QAAQ,CAACkW,SAAT,CAAmB9iB,IAAnB,KAA4BunB,QAAnC;AACD,CAFD;;AAIA,IAAMlE,aAAa,GAAG,SAAhBA,aAAgB,CAACrjB,IAAD,EAAU;AAC9B,SAAO4M,QAAQ,CAAC0G,UAAT,CAAoBtT,IAApB,KAA6B,EAApC;AACD,CAFD;;IAIaivB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC7lB,OAAD,EAAa;AAC3C,SAAOA,OAAO,CAACgmB,YAAR,GAAuBrH,SAAvB,GAAmCC,OAA1C;AACD;AAEM,SAASqH,WAAT,CAAqBr2B,IAArB,EAA2B;AAChC;AACA,MAAM0U,GAAG,GAAGnE,KAAK,CAACpK,MAAN,EAAZ;;AACA,MAAInG,IAAI,IAAI,CAAC0U,GAAG,CAAC/S,OAAjB,EAA0B;AACxBuK,IAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ;AACAuI,IAAAA,GAAG,CAAC/S,OAAJ,GAAc,IAAd;AACAK,IAAAA,MAAM,CAACC,IAAP,CAAYjC,IAAZ,EAAkBkC,GAAlB,CACE,UAACC,GAAD;AAAA,aAAUyR,QAAQ,CAACzR,GAAD,CAAR,gBAAqByR,QAAQ,CAACzR,GAAD,CAA7B,EAAuCnC,IAAI,CAACmC,GAAD,CAA3C,CAAV;AAAA,KADF;AAGD;;AAED,SAAO;AACLyR,IAAAA,QAAQ,EAARA,QADK;AAEL/S,IAAAA,GAAG,EAAHA,KAFK;AAGL8S,IAAAA,OAAO,EAAPA,OAHK;AAILqiB,IAAAA,YAAY,EAAZA,YAJK;AAKLG,IAAAA,SAAS,EAATA,SALK;AAMLtM,IAAAA,WAAW,EAAXA,WANK;AAOLQ,IAAAA,aAAa,EAAbA,aAPK;AAQL5f,IAAAA,cAAc,EAAdA;AARK,GAAP;AAUD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzKO,IAAMuH,cAAY,GAAG;AAC1BjS,EAAAA,IAAI,EAAE,EADoB;AAE1B8Q,EAAAA,OAAO,EAAE,KAFiB;AAG1BT,EAAAA,OAAO,EAAEjP,SAHiB;AAI1B4N,EAAAA,KAAK,EAAE;AACLM,IAAAA,OAAO,EAAElO,SADJ;AAEL6F,IAAAA,IAAI,EAAE7F;AAFD,GAJmB;AAQ1ByO,EAAAA,MAAM,EAAE;AACNA,IAAAA,MAAM,EAAEzO,SADF;AAENY,IAAAA,MAAM,EAAEZ;AAFF,GARkB;AAY1B0K,EAAAA,WAAW,EAAE1K,SAZa;AAa1Bm1B,EAAAA,WAAW,EAAEn1B,SAba;AAc1ByS,EAAAA,QAAQ,EAAE,EAdgB;AAe1B3E,EAAAA,OAAO,EAAE9N;AAfiB,CAArB;AAkBA,SAASo1B,iBAAT,CAA2BxmB,KAA3B,EAAkCH,MAAlC,EAA0C;AAC/C,UAAQA,MAAM,CAAC5I,IAAf;AACE,SAAK,UAAL;AACE,0BAAY+I,KAAZ;AAAmBhQ,QAAAA,IAAI,EAAE6P,MAAM,CAACR,OAAhC;AAAyCyB,QAAAA,OAAO,EAAE;AAAlD;;AAEF,SAAK,aAAL;AACE,0BACKd,KADL,EAEKH,MAAM,CAACR,OAFZ;AAGEknB,QAAAA,WAAW,EAAEn1B,SAHf;AAIE0P,QAAAA,OAAO,EAAE;AAJX;;AAOF,SAAK,WAAL;AACE,0BAAYd,KAAZ;AAAmBumB,QAAAA,WAAW,EAAE1mB,MAAM,CAACR,OAAvC;AAAgDyB,QAAAA,OAAO,EAAE;AAAzD;;AAEF,SAAK,WAAL;AACE,0BAAYd,KAAZ,EAAsBH,MAAM,CAACR,OAA7B;;AAEF,SAAK,aAAL;AACE,0BACKW,KADL;AAEEhB,QAAAA,KAAK,EAAE;AACLM,UAAAA,OAAO,EAAElO,SADJ;AAEL6F,UAAAA,IAAI,EAAE7F;AAFD;AAFT;;AAOF,SAAK,YAAL;AACE,0BAAY4O,KAAZ;AAAmBH,QAAAA,MAAM,EAAEA,MAAM,CAACR;AAAlC;;AACF,SAAK,cAAL;AACE,0BAAYW,KAAZ;AAAmBH,QAAAA,MAAM,EAAE;AAAEA,UAAAA,MAAM,EAAEzO,SAAV;AAAqBY,UAAAA,MAAM,EAAEZ;AAA7B;AAA3B;;AAEF,SAAK,SAAL;AACE,0BACK4O,KADL;AAEEd,QAAAA,OAAO,EAAEqR,IAAI,CAACkW,GAAL,EAFX;AAGE3lB,QAAAA,OAAO,EAAE,CAACjB,MAAM,CAACR,OAAP,CAAeF;AAH3B;;AAMF,SAAK,OAAL;AACE,0BAAYa,KAAZ;AAAmBK,QAAAA,OAAO,eAAOL,KAAK,CAACK,OAAb,EAAyBR,MAAM,CAACR,OAAhC;AAA1B;;AAEF;AACE,aAAOW,KAAP;AA1CJ;AA4CD;;ACnDM,SAAS0mB,UAAT,OAAwC;AAAA,MAAlB52B,IAAkB,QAAlBA,IAAkB;AAAA,MAATgI,KAAS;;AAC7C,MAAMjI,GAAG,GAAGiI,KAAK,CAACjI,GAAN,IAAa,uBAAzB,CAD6C;;AAE7C,MAAM82B,MAAM,GAAG7uB,KAAK,CAAC6uB,MAAN,IAAgB,EAA/B;AACA,MAAMhmB,MAAM,GAAGC,mBAAmB,EAAlC;;AAH6C,mBAKrB6D,SAAS,CAACkiB,MAAD,CALY;AAAA,MAKrC3iB,WALqC,cAKrCA,WALqC;;AAM7C,MAAMH,QAAQ,GAAGyiB,WAAW,CAACxuB,KAAK,CAAC+L,QAAN,IAAkB,EAAnB,CAA5B,CAN6C;;AAAA,qBAQ1B9N,WAAW,EARe;AAAA,MAQtC0B,QARsC;;;AAW7C,MAAMmvB,UAAU,GAAGnvB,QAAQ,CAAC3G,GAAT,CAAa,MAAb,KAAwB,GAA3C;;AACA,MAAI81B,UAAU,IAAIA,UAAU,KAAK,EAAjC,EAAqC;AACnC3kB,IAAAA,cAAY,CAACjS,IAAb,GAAoB42B,UAApB;AACD;;AAd4C,oBAgBnBC,UAAU,CAACL,iBAAD,EAAoBvkB,cAApB,CAhBS;AAAA,MAgBtCjC,KAhBsC;AAAA,MAgB/BZ,QAhB+B;;AAAA,MAkBrCpP,IAlBqC,GAkBnBgQ,KAlBmB,CAkBrChQ,IAlBqC;AAAA,MAkB/BkP,OAlB+B,GAkBnBc,KAlBmB,CAkB/Bd,OAlB+B;AAoB7C7I,EAAAA,SAAS,CAAC,YAAM;AACd+I,IAAAA,QAAQ,CAAC;AAAEnI,MAAAA,IAAI,EAAE,UAAR;AAAoBoI,MAAAA,OAAO,EAAEunB;AAA7B,KAAD,CAAR;AACD,GAFQ,EAEN,CAACA,UAAD,CAFM,CAAT;AAIAvwB,EAAAA,SAAS,CAAC,YAAM;;AACb;AAAA,UAAa;AAAA,+BACKsK,MAAM,CAAC9G,UAAP,CAAkB7J,IAAlB,CADL,iBACRC,IADQ;AAEZ,cAAIA,IAAI,CAAC6N,MAAL,KAAgB,GAApB,EAAyB;AACvBsB,YAAAA,QAAQ,CAAC;AAAEnI,cAAAA,IAAI,EAAE,WAAR;AAAqBoI,cAAAA,OAAO,EAAE;AAA9B,aAAD,CAAR;AACA;AACD,WAHD,MAGO,IAAIpP,IAAI,CAAC6N,MAAL,KAAgB,GAApB,EAAyB;AAC9BsB,YAAAA,QAAQ,CAAC;AAAEnI,cAAAA,IAAI,EAAE,WAAR;AAAqBoI,cAAAA,OAAO,EAAE;AAA9B,aAAD,CAAR;AACA;AACD;;AARW,iCASQpP,IAAI,CAAC2L,IAAL,EATR,iBASRyE,OATQ;AAAA,mCAUKM,MAAM,CAAC9E,MAAP,CAAc7L,IAAd,EAAoBgU,WAApB,CAVL,iBAUN8iB,EAVM;AAAA,qCAWcA,EAAE,CAAClrB,IAAH,EAXd,iBAWNE,WAXM;AAYZsD,gBAAAA,QAAQ,CAAC;AAAEnI,kBAAAA,IAAI,EAAE,aAAR;AAAuBoI,kBAAAA,OAAO,EAAE;AAAEgB,oBAAAA,OAAO,EAAPA,OAAF;AAAWvE,oBAAAA,WAAW,EAAXA;AAAX;AAAhC,iBAAD,CAAR;AAZY;AAAA;AAAA;AAAA;AAab,OAbA;AAAA;AAAA;AAAA;AAcF,GAfQ,EAeN,CAAC9L,IAAD,EAAOkP,OAAP,EAAgByB,MAAhB,CAfM,CAAT;AAiBA,MAAMijB,aAAa,GAAG/f,QAAQ,CAAC/S,GAAT,CAAa,OAAb,EAAsB,eAAtB,CAAtB;AACA,MAAMszB,UAAU,GAAGvgB,QAAQ,CAAC/S,GAAT,CAAa,OAAb,EAAsB,YAAtB,CAAnB;AACA,MAAMuzB,QAAQ,GAAGxgB,QAAQ,CAAC/S,GAAT,CAAa,OAAb,EAAsB,UAAtB,CAAjB;AACA,MAAMwzB,IAAI,GAAGzgB,QAAQ,CAAC/S,GAAT,CAAa,YAAb,EAA2B,MAA3B,CAAb;AAEA,MAAMi2B,WAAW,GAAG;AAClBl3B,IAAAA,GAAG,EAAHA,GADkB;AAElB8Q,IAAAA,MAAM,EAANA,MAFkB;AAGlB7Q,IAAAA,IAAI,EAAJA,IAHkB;AAIlBkQ,IAAAA,KAAK,EAALA,KAJkB;AAKlBZ,IAAAA,QAAQ,EAARA,QALkB;AAMlByE,IAAAA,QAAQ,EAARA,QANkB;AAOlB7E,IAAAA,KAAK,EAAE2nB,MAAM,CAAC3nB;AAPI,GAApB;AA9C6C,MAwDrCa,MAxDqC,GAwDAG,KAxDA,CAwDrCH,MAxDqC;AAAA,MAwD7B0mB,WAxD6B,GAwDAvmB,KAxDA,CAwD7BumB,WAxD6B;AAAA,MAwDhBzqB,WAxDgB,GAwDAkE,KAxDA,CAwDhBlE,WAxDgB;AAyD7C,MAAMkrB,IAAI,GAAGnjB,QAAQ,CAACoiB,YAAT,CAAsBjmB,KAAK,CAACK,OAA5B,EAAqCrQ,IAArC,CAAb;AACA,MAAMi3B,MAAM,GAAGpnB,MAAM,CAACA,MAAP,GAAgBgE,QAAQ,CAACuiB,SAAT,CAAmBvmB,MAAM,CAACA,MAA1B,CAAhB,GAAoD,IAAnE;AAEA,sBACE,oBAAC,aAAD,QACG,CAAC0mB,WAAD,iBACC,oBAAC,iBAAD,EAAuBQ,WAAvB,EACGjrB,WAAW,iBACV,oBAAC,KAAD,CAAO,QAAP,QACG+D,MAAM,CAACA,MAAP,iBAAiB,oBAAC,MAAD,EAAYA,MAAM,CAAC7N,MAAnB,CADpB,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,IAAD,OADF,CADF,CADF,CAFF,eASE,oBAAC,KAAD,OATF,EAUGg1B,IAAI,iBACH,oBAAC,aAAD,qBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhnB,KAAK,CAACc,OAAN,iBAAiB,oBAAC,OAAD,OADpB,EAEG,CAACd,KAAK,CAACc,OAAP,iBAAkB,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEd;AAAb,IAFrB,CADF,CAXJ,CAFJ,CAFJ,EA2BGumB,WAAW,KAAK,YAAhB,iBAAgC,oBAAC,UAAD,OA3BnC,EA4BGA,WAAW,KAAK,UAAhB,iBAA8B,oBAAC,QAAD,OA5BjC,CADF;AAgCD;;ACrGM,SAASW,MAAT,OAA8C;AAAA,MAA5BnyB,QAA4B,QAA5BA,QAA4B;AAAA,MAAlBoyB,QAAkB,QAAlBA,QAAkB;AAAA,MAARr3B,IAAQ,QAARA,IAAQ;;AACnD,MAAMs3B,QAAQ,GAAG,SAAXA,QAAW,CAACvhB,EAAD,EAAQ;AACvB/V,IAAAA,IAAI,CAACu3B,MAAL;AACAF,IAAAA,QAAQ;AACT,GAHD;;AAKA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE,iDACE;AAAK,IAAA,SAAS,EAAC,QAAf;AAAwB,IAAA,IAAI,EAAC,YAA7B;AAA0C,kBAAW;AAArD,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAG,IAAA,SAAS,EAAC,aAAb;AAA2B,IAAA,IAAI,EAAC;AAAhC,kBACE;AACE,IAAA,GAAG,EAAEG,OAAO,CAACC,GAAR,CAAYC,UAAZ,GAAyB,WADhC;AAEE,IAAA,GAAG,EAAC,iBAFN;AAGE,IAAA,MAAM,EAAC;AAHT,IADF,CADF,eAQE;AACE,IAAA,EAAE,EAAC,QADL;AAEE,IAAA,IAAI,EAAC,GAFP;AAGE,IAAA,IAAI,EAAC,QAHP;AAIE,IAAA,SAAS,EAAC,sBAJZ;AAKE,kBAAW,MALb;AAME,qBAAc,OANhB;AAOE,mBAAY;AAPd,kBASE;AAAM,mBAAY;AAAlB,IATF,eAUE;AAAM,mBAAY;AAAlB,IAVF,eAWE;AAAM,mBAAY;AAAlB,IAXF,CARF,CADF,eAuBE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAqB,IAAA,SAAS,EAAC;AAA/B,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG13B,IAAI,CAAC23B,QAAL,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAQ,IAAA,SAAS,EAAC,kBAAlB;AAAqC,IAAA,OAAO,EAAEL;AAA9C,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC,qBAAX;AAAiC,IAAA,IAAI,EAAC;AAAtC,IADF,eAEE,2CAFF,CADF,CAFJ,CADF,CAFF,CAvBF,CADF,CADF,eA0CE;AAAS,IAAA,SAAS,EAAC;AAAnB,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAyBryB,QAAzB,CADF,CADF,CA1CF,CADF;AAkDD;;ACxDD,IAAM2yB,MAAM,GAAG;AACbC,EAAAA,eAAe,EAAE,4CADJ;AAEbC,EAAAA,mBAAmB,EAAE;AAFR,CAAf;IAKaC,KAAb;AAAA;;AASE,iBAAY/vB,KAAZ,EAAmB;AAAA;;AACjB,kCAAMA,KAAN;AADiB,UARnBkI,KAQmB,GARX;AACNigB,MAAAA,QAAQ,EAAE,EADJ;AAENnW,MAAAA,QAAQ,EAAE,EAFJ;AAGNhJ,MAAAA,OAAO,EAAE1P,SAHH;AAIN8Y,MAAAA,MAAM,EAAE,EAJF;AAKNnF,MAAAA,MAAM,EAAE3T;AALF,KAQW;AAAA,UAOnBuT,GAPmB,GAObnE,KAAK,CAACsnB,SAAN,EAPa;;AAAA,UASnBC,OATmB,aASFliB,EATE;AAAA,UASK;AACtBA,QAAAA,EAAE,CAAC1N,cAAH;;AACA,cAAK+J,QAAL,CAAc;AAAEpB,UAAAA,OAAO,EAAE,IAAX;AAAiBiE,UAAAA,MAAM,EAAE3T;AAAzB,SAAd;;AAFsB,0BAGiB,MAAK4O,KAHtB;AAAA,YAGdigB,QAHc,eAGdA,QAHc;AAAA,YAGJnW,QAHI,eAGJA,QAHI;AAAA,YAGMI,MAHN,eAGMA,MAHN;;AAKtB,YAAIA,MAAM,KAAK,EAAf,EAAmB;AACjB,gBAAKpS,KAAL,CAAWhI,IAAX,CAAgBk4B,UAAhB,CAA2B9d,MAA3B;AACD;;AACD,YAAMpa,IAAI,GAAG,MAAKgI,KAAL,CAAWhI,IAAxB;AARsB,+BASJA,IAAI,CAACm4B,KAAL,CAAWhI,QAAX,EAAqBnW,QAArB,CATI,iBAShBnO,GATgB;AAWtB,cAAI,CAACA,GAAL,EAAU;AACR,kBAAKuG,QAAL,CAAc;AAAE6C,cAAAA,MAAM,EAAEjV,IAAI,CAACiV,MAAf;AAAuBjE,cAAAA,OAAO,EAAE;AAAhC,aAAd;;AACA;AACD;;AAdqB,cAgBlB,MAAKhJ,KAAL,CAAWowB,OAhBO;AAiBpB,kBAAKpwB,KAAL,CAAWowB,OAAX;AAjBoB;AAAA;AAmBvB,OA5BkB;AAAA;AAAA;AAAA;;AAEjB,QAAIpwB,KAAK,CAAC8tB,OAAV,EAAmB;AACjB,YAAK5lB,KAAL,CAAWkK,MAAX,GAAoBpS,KAAK,CAAC8tB,OAAN,CAAc,CAAd,CAApB;AACD;;AAJgB;AAKlB;;AAdH;;AAAA,SAuCEuC,iBAvCF,GAuCE,6BAAoB;AAClB,SAAKxjB,GAAL,CAAS/S,OAAT,CAAiB4W,KAAjB;AACD,GAzCH;;AAAA,SA2CE0b,MA3CF,GA2CE,kBAAS;AAAA;;AAAA,uBAC8B,KAAKlkB,KADnC;AAAA,QACD8J,QADC,gBACDA,QADC;AAAA,QACSmW,QADT,gBACSA,QADT;AAAA,QACmBlb,MADnB,gBACmBA,MADnB;AAAA,QAEC6gB,OAFD,GAEa,KAAK9tB,KAFlB,CAEC8tB,OAFD;AAGP,wBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AACE,MAAA,SAAS,EAAC,aADZ;AAEE,MAAA,MAAM,EAAC,EAFT;AAGE,MAAA,QAAQ,EAAE,KAAKmC,OAHjB;AAIE,mBAAU;AAJZ,oBAME;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAO,MAAA,SAAS,EAAC;AAAjB,mBADF,eAEE;AACE,MAAA,IAAI,EAAC,MADP;AAEE,MAAA,SAAS,EAAC,OAFZ;AAGE,MAAA,WAAW,EAAC,UAHd;AAIE,MAAA,QAAQ,EAAE,kBAACtxB,CAAD;AAAA,eAAO,MAAI,CAACyL,QAAL,CAAc;AAAE+d,UAAAA,QAAQ,EAAExpB,CAAC,CAAC8H,MAAF,CAASuD;AAArB,SAAd,CAAP;AAAA,OAJZ;AAKE,MAAA,KAAK,EAAEme,QALT;AAME,MAAA,GAAG,EAAE,KAAKtb,GANZ;AAOE,mBAAU;AAPZ,MAFF,CANF,eAkBE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAO,MAAA,SAAS,EAAC;AAAjB,mBADF,eAEE;AACE,MAAA,IAAI,EAAC,UADP;AAEE,MAAA,SAAS,EAAC,OAFZ;AAGE,MAAA,QAAQ,EAAE,kBAAClO,CAAD;AAAA,eAAO,MAAI,CAACyL,QAAL,CAAc;AAAE4H,UAAAA,QAAQ,EAAErT,CAAC,CAAC8H,MAAF,CAASuD;AAArB,SAAd,CAAP;AAAA,OAHZ;AAIE,MAAA,KAAK,EAAEgI,QAJT;AAKE,mBAAU;AALZ,MAFF,CAlBF,EA4BG8b,OAAO,iBACN;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAO,MAAA,SAAS,EAAC;AAAjB,iBADF,eAEE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AACE,MAAA,QAAQ,EAAE,kBAACnvB,CAAD;AAAA,eAAO,MAAI,CAACyL,QAAL,CAAc;AAAEgI,UAAAA,MAAM,EAAEzT,CAAC,CAAC8H,MAAF,CAASuD;AAAnB,SAAd,CAAP;AAAA;AADZ,OAGG8jB,OAAO,CAACzzB,GAAR,CAAY,UAACi2B,CAAD;AAAA,0BACX;AAAQ,QAAA,KAAK,EAAEA,CAAf;AAAkB,QAAA,GAAG,EAAEA;AAAvB,SACGA,CADH,CADW;AAAA,KAAZ,CAHH,CADF,CAFF,CA7BJ,eA4CE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AACE,MAAA,SAAS,EAAC,mBADZ;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,mBAAU;AAHZ,eADF,CA5CF,eAqDE;AAAK,MAAA,SAAS,EAAC;AAAf,OACGrjB,MAAM,iBACL;AAAG,MAAA,SAAS,EAAC;AAAb,OACG2iB,MAAM,CAAC3iB,MAAD,CAAN,IAAkB,eADrB,CAFJ,CArDF,CADF,CADF;AAiED,GA/GH;;AAAA;AAAA,EAA2Bof,SAA3B;;AC0iBO,SAAS9hB,QAAT,CAAgB1R,IAAhB,EAAsB2R,OAAtB,EAA+B;AACrC,MAAI;AACH,QAAInL,MAAM,GAAGxG,IAAI,EAAjB;AACA,GAFD,CAEE,OAAM8F,CAAN,EAAS;AACV,WAAO6L,OAAO,CAAC7L,CAAD,CAAd;AACA;;AACD,MAAIU,MAAM,IAAIA,MAAM,CAACoL,IAArB,EAA2B;AAC1B,WAAOpL,MAAM,CAACoL,IAAP,CAAY,KAAK,CAAjB,EAAoBD,OAApB,CAAP;AACA;;AACD,SAAOnL,MAAP;AACA;;AArjBD,IAAMkxB,WAAW,GAAG,EAApB;AACA,IAAMC,WAAW,GAAG,CAAC,OAAD,CAApB;AAEO,SAASC,kBAAT,OAOJ;AAAA,MANDznB,OAMC,QANDA,OAMC;AAAA,MALD0I,QAKC,QALDA,QAKC;AAAA,MAJDW,UAIC,QAJDA,UAIC;AAAA,MAHDvI,KAGC,QAHDA,KAGC;AAAA,MAFDZ,QAEC,QAFDA,QAEC;AAAA,MADD/J,IACC,QADDA,IACC;AACD,MAAMkM,GAAG,GAAG5C,YAAY,EAAxB;AAEA,MAAMyS,aAAa,GAAG7P,GAAG,CAACU,QAAJ,CAAa/S,GAAb,CAAiB,YAAjB,EAA+B,eAA/B,CAAtB;;AAHC,kBAK+BkF,QAAQ,CAAC,EAAD,CALvC;AAAA,MAKM2N,QALN;AAAA,MAKgB6kB,WALhB;;AAAA,mBAM2BxyB,QAAQ,CAAC,EAAD,CANnC;AAAA,MAMM+O,MANN;AAAA,MAMc0jB,SANd;;AAAA,qBAQ2BzmB,WAAW,CAAC;AACtC/R,IAAAA,IAAI,EAAEmB,SADgC;AAEtC0P,IAAAA,OAAO,EAAE,KAF6B;AAGtCuC,IAAAA,KAAK,EAAEjS,SAH+B;AAItCs3B,IAAAA,UAAU,EAAE;AAJ0B,GAAD,CARtC;AAAA,MAQMxe,MARN;AAAA,MAQc6Q,SARd;;AAeD1kB,EAAAA,SAAS,CAAC,YAAM;;AACb;AAAA,UAAa;AAAA;AAAA,cACR,CAAC6T,MAAM,CAACpJ,OAAR,IAAmB,CAACoJ,MAAM,CAACja,IAA3B,IAAmC,CAACia,MAAM,CAAC7G,KADnC;AAAA,8CAEN;AACF0X,cAAAA,SAAS,CAAC;AAAEja,gBAAAA,OAAO,EAAE;AAAX,eAAD,CAAT;AADE,qCAEqBqC,GAAG,CAACxC,MAAJ,CAAWnE,aAAX,CAAyB2G,GAAG,CAACnT,IAA7B,EAAmCiH,IAAnC,CAFrB,iBAEImkB,QAFJ;AAGFL,gBAAAA,SAAS,CAAC;AACRja,kBAAAA,OAAO,EAAE,KADD;AAER7Q,kBAAAA,IAAI,EAAEmrB,QAFE;AAGRsN,kBAAAA,UAAU,YAAMtN,QAAQ,CAAClT,QAAf,EAA4BogB,WAA5B;AAHF,iBAAD,CAAT;AAHE;AAQH,aAVS,YAUDvkB,GAVC,EAUI;AACZgX,cAAAA,SAAS,CAAC;AAAEja,gBAAAA,OAAO,EAAE,KAAX;AAAkBuC,gBAAAA,KAAK,EAAEU;AAAzB,eAAD,CAAT;AACD,aAZS;;AAAA;AAAA;AAAA;;AAAA;AAcb,OAdA;AAAA;AAAA;AAAA;AAeF,GAhBQ,EAgBN,CAACmG,MAAD,CAhBM,CAAT;;AAkBA,MAAMwY,MAAM,GAAG,SAATA,MAAS,GAAM;AACnB,QAAMiG,aAAa,GAAG,EAAtB;AAEAze,IAAAA,MAAM,CAACwe,UAAP,CAAkB9yB,OAAlB,CAA0B,UAACxD,GAAD,EAAS;AACjC,UAAI,CAACuR,QAAQ,CAACvR,GAAD,CAAb,EAAoB;AAClBu2B,QAAAA,aAAa,CAACv2B,GAAD,CAAb,GAAqB,wBAArB;AACD;AACF,KAJD;;AAMA,QAAIH,MAAM,CAACC,IAAP,CAAYy2B,aAAZ,EAA2B/1B,MAA3B,GAAoC,CAAxC,EAA2C;AACzC61B,MAAAA,SAAS,CAACE,aAAD,CAAT;AACA;AACD;;AAEDnf,IAAAA,QAAQ;AAAGpR,MAAAA,EAAE,EAAEuL,QAAQ,CAACilB;AAAhB,OAAyBjlB,QAAzB,EAAR;AACD,GAfD;;AAiBA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE/B,KAAb;AAAoB,IAAA,QAAQ,EAAE8gB,MAA9B;AAAsC,IAAA,QAAQ,EAAE1hB;AAAhD,KACGkJ,MAAM,IACLA,MAAM,CAACja,IADR,IAEC,CAACia,MAAM,CAACpJ,OAFT,IAGCoJ,MAAM,CAACwe,UAAP,CAAkBv2B,GAAlB,CAAsB,UAACC,GAAD,EAAS;AAC7B,QAAI,CAACi2B,WAAW,CAACjvB,QAAZ,CAAqBhH,GAArB,CAAL,EAAgC;AAAA;;AAC9B,UAAM0P,KAAK,GAAGoI,MAAM,CAACja,IAAP,CAAYsa,UAAZ,CAAuBnY,GAAvB,CAAd;AACA,0BACE,oBAAC,aAAD;AACE,QAAA,GAAG,EAAEA,GADP;AAEE,QAAA,EAAE,EAAEA,GAFN;AAGE,QAAA,WAAW,kBAAE0P,KAAF,oBAAEA,KAAK,CAAEF,KAAT,2BAAkB,EAH/B;AAIE,QAAA,SAAS,EAAC,EAJZ;AAKE,QAAA,QAAQ,MALV;AAME,QAAA,MAAM,EAAEsI,MAAM,CAACja,IAAP,CAAYsa,UAAZ,CAAuBnY,GAAvB,CANV;AAOE,QAAA,QAAQ,EAAE,kBAACyT,EAAD,EAAQ;AAChB,cAAIzT,GAAG,KAAK,OAAZ,EAAqB;AAAA;;AACnBo2B,YAAAA,WAAW,cACN7kB,QADM;AAETilB,cAAAA,IAAI,EAAE11B,YAAY,CAAC2S,EAAD;AAFT,yBAGRzT,GAHQ,IAGFyT,EAHE,cAAX;AAKD,WAND,MAMO,IAAIzT,GAAG,KAAK,MAAZ,EAAoB;AACzBo2B,YAAAA,WAAW,cACN7kB,QADM;AAETilB,cAAAA,IAAI,EAAE11B,YAAY,CAAC2S,EAAD;AAFT,eAAX;AAID,WALM,MAKA;AAAA;;AACL2iB,YAAAA,WAAW,cAAM7kB,QAAN,6BAAiBvR,GAAjB,IAAuByT,EAAvB,cAAX;AACD;AACF,SAtBH;AAuBE,QAAA,KAAK,EAAEd,MAAM,CAAC3S,GAAD,CAvBf;AAwBE,QAAA,QAAQ,EAAKA,GAAL,cAxBV;AAyBE,QAAA,GAAG,EAAEA,GAAG,IAAIuR,QAAP,GAAkBA,QAAQ,CAACvR,GAAD,CAA1B,GAAkC;AAzBzC,QADF;AA6BD;;AACD,WAAO,IAAP;AACD,GAlCD,CAJJ,eAwCE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,SAAS,0BAAuB0O,OAAO,GAAG,YAAH,GAAkB,EAAhD,CAFX;AAGE,iBAAU;AAHZ,KAKGqJ,UAAU,IAAI,KALjB,CADF,CAxCF,CADF;AAoDD;;AC2bM,kBAAgBxZ,IAAhB,EAAsB2R,OAAtB,EAA+B;AACrC,MAAI;AACH,QAAInL,MAAM,GAAGxG,IAAI,EAAjB;AACA,GAFD,CAEE,OAAM8F,CAAN,EAAS;AACV,WAAO6L,OAAO,CAAC7L,CAAD,CAAd;AACA;;AACD,MAAIU,MAAM,IAAIA,MAAM,CAACoL,IAArB,EAA2B;AAC1B,WAAOpL,MAAM,CAACoL,IAAP,CAAY,KAAK,CAAjB,EAAoBD,OAApB,CAAP;AACA;;AACD,SAAOnL,MAAP;AACA;;IA1jBY0xB,IAAb;AAKE,gBAAYh5B,GAAZ,EAAiB;AAAA,SAJjBi5B,QAIiB,GAJN,CAIM;AAAA,SAHjBC,YAGiB,GAHF,CAGE;AAAA,SAFjBvyB,MAEiB,GAFR,EAEQ;AACf,SAAK3G,GAAL,GAAWA,GAAX;AACA,SAAKm5B,QAAL,GAAgBn5B,GAAhB;AACA,SAAKkV,MAAL,GAAc3T,SAAd;AACD;;AATH;;AAAA,SAWE63B,MAXF,GAWE,gBAAOpsB,QAAP,EAAiB;AACf,gBAAU,KAAKhN,GAAf,GAAqBgN,QAArB;AACD,GAbH;;AAAA,SAeEmrB,UAfF,GAeE,oBAAWkB,OAAX,EAAoB;AAClB,SAAKr5B,GAAL,GAAW,KAAKm5B,QAAL,GAAgBE,OAA3B;AACD,GAjBH;;AAAA,SAmBQjB,KAnBR,kBAmBchI,QAnBd,EAmBwBnW,QAnBxB;AAAA,QAmBkC;AAAA;;AAAA,mBAClB,IADkB;;AAAA;AAAA;AAqB9Bqf,QAAAA,YAAY,CAACnH,UAAb,CAAwB,MAAxB;AACAmH,QAAAA,YAAY,CAACnH,UAAb,CAAwB,cAAxB;AACA,eAAO,KAAP;AAvB8B;;AAC9B,UAAMnyB,GAAG,GAAG,OAAKo5B,MAAL,CAAY,QAAZ,CAAZ;;AAD8B,wCAE1B;AAAA,+BACiB74B,KAAK,CAACP,GAAD,EAAM;AAC5Ba,UAAAA,MAAM,EAAE,MADoB;AAE5BC,UAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAe;AACnBovB,YAAAA,QAAQ,EAAEA,QADS;AAEnBnW,YAAAA,QAAQ,EAAEA;AAFS,WAAf;AAFsB,SAAN,CADtB,iBACI7Z,IADJ;AAAA;AAAA,gBAQEA,IAAI,CAAC6N,MAAL,KAAgB,GARlB;AAAA,qCAS0B7N,IAAI,CAAC2L,IAAL,EAT1B,iBASMwtB,WATN;AAUA,uBAAKC,SAAL,CAAeD,WAAf,EAA4BnJ,QAA5B;;AAVA,gCAWO,IAXP;AAAA;AAAA;AAaA,qBAAKlb,MAAL,GAAc,qBAAd;AAbA;AAAA;AAAA;AAeH,OAjB6B,cAiBlB;AACV,eAAKA,MAAL,GAAc,iBAAd;AADU;AAAA,eAEH,KAFG;AAGX,OApB6B;;AAAA;AAwB/B,KA3CH;AAAA;AAAA;AAAA;;AAAA,SAqEEskB,SArEF,GAqEE,mBAAUp5B,IAAV,EAAgB;AACdk5B,IAAAA,YAAY,CAACG,OAAb,CAAqB,MAArB,EAA6Br5B,IAAI,CAACs5B,KAAlC;AACAJ,IAAAA,YAAY,CAACG,OAAb,CAAqB,cAArB,EAAqCr5B,IAAI,CAACu5B,GAA1C;AACD,GAxEH;;AAAA,SA0EEC,SA1EF,GA0EE,qBAAY;AACVN,IAAAA,YAAY,CAACnH,UAAb,CAAwB,MAAxB;AACAmH,IAAAA,YAAY,CAACnH,UAAb,CAAwB,cAAxB;AACD,GA7EH;;AAAA,SA+EEqF,MA/EF,GA+EE,kBAAS;AACP,SAAKoC,SAAL;AACD,GAjFH;;AAAA,SAmFQC,YAnFR;AAAA,QAmFuB;AAAA,mBAEnB,IAFmB;;AACnBvtB,MAAAA,OAAO,CAACC,GAAR,CAAY,YAAZ;AACA,aAAK2sB,YAAL;AAFmB,6BAGF34B,KAAK,CAAC,OAAK64B,MAAL,CAAY,cAAZ,CAAD,EAA8B;AAClD/4B,QAAAA,OAAO,EAAE,OAAKC,UAAL,EADyC;AAElDO,QAAAA,MAAM,EAAE;AAF0C,OAA9B,CAHH,iBAGfT,IAHe;AAOnB,YAAIA,IAAI,CAAC6N,MAAL,KAAgB,GAApB,EAAyB;AACvB;AACA,iBAAK2rB,SAAL;;AACA,iBAAKtC,QAAL;;AACA;AACD;;AAZkB,+BAaDl3B,IAAI,CAAC2L,IAAL,EAbC,iBAabD,GAba;AAcnBQ,UAAAA,OAAO,CAACC,GAAR,CAAY,cAAZ,EAA4BT,GAA5B;;AACA,iBAAK0tB,SAAL,CAAe1tB,GAAf;;AACAQ,UAAAA,OAAO,CAACC,GAAR,CAAY,iBAAZ;AACA,iBAAK2sB,YAAL,GAAoB,CAApB;AACA,iBAAO94B,IAAI,CAACs5B,KAAZ;AAlBmB;AAAA;AAmBpB,KAtGH;AAAA;AAAA;AAAA;;AAAA,SAwGEI,UAxGF,GAwGE,oBAAWC,UAAX,EAAuB;AACrB,QAAInD,GAAG,GAAG,IAAIlW,IAAJ,GAAWsZ,OAAX,EAAV;;AACA,QAAIrY,QAAQ,CAACoY,UAAD,CAAR,GAAuB,IAAvB,GAA8BnD,GAAG,GAAG,KAAK,IAA7C,EAAmD;AACjD,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD,GA9GH;;AAAA,SAgHEqD,SAhHF,GAgHE,mBAAUF,UAAV,EAAsB;AACpB,QAAInD,GAAG,GAAG,IAAIlW,IAAJ,GAAWsZ,OAAX,EAAV;;AACA,QAAIrY,QAAQ,CAACoY,UAAD,CAAR,GAAuB,IAAvB,GAA8BnD,GAAlC,EAAuC;AACrC,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD,GAtHH;;AAAA,SAwHEsD,SAxHF,GAwHE,qBAAY;AACV,WAAO,CAACZ,YAAY,CAACa,OAAb,CAAqB,MAArB,CAAD,EAA+Bb,YAAY,CAACa,OAAb,CAAqB,cAArB,CAA/B,CAAP;AACD,GA1HH;;AAAA,SA4HE15B,QA5HF,GA4HE,oBAAW;AAAA,0BACO,KAAKy5B,SAAL,EADP;AAAA,QACFR,KADE;;AAET,WAAOA,KAAP;AACD,GA/HH;;AAAA,SAiIEp5B,UAjIF,GAiIE,sBAAa;AAAA,iBAKW,IALX;;AAAA,2BACkB,KAAK45B,SAAL,EADlB;AAAA,QACJ15B,SADI;AAAA,QACO45B,OADP;;AAEX,QAAI,CAAC55B,SAAL,EAAgB,OAAO,EAAP;;AAEhB,QAAI,KAAKs5B,UAAL,CAAgBM,OAAhB,KAA4B,KAAKlB,YAAL,GAAoB,KAAKD,QAAzD,EAAmE;;AAChE;AAAA;AAAA,iBAAmB,OAAKY,YAAL,EAAnB;AAAA;AAAA;AAAA;AAAA;AACF;;AAED,WAAO;AACLn5B,MAAAA,MAAM,EAAE,kBADH;AAEL,sBAAgB,kBAFX;AAGLC,MAAAA,aAAa,EAAE,YAAYH;AAHtB,KAAP;AAKD,GA9IH;;AAAA;AAAA;AAAA,wBA6CiB;AACb,UAAI,OAAO84B,YAAP,KAAwB,WAA5B,EAAyC;AACvC,eAAO,KAAP;AACD;;AAHY,6BAIY,KAAKY,SAAL,EAJZ;AAAA,UAINR,KAJM;AAAA,UAICU,OAJD;;AAKb,UAAI,CAACV,KAAD,IAAU,CAACU,OAAf,EAAwB;AACtB,eAAO,KAAP;AACD;;AACD,UAAI,KAAKH,SAAL,CAAeG,OAAf,CAAJ,EAA6B;AAC3B,eAAO,KAAP;AACD;;AACD,aAAO,IAAP;AACD;AAzDH;AAAA;AAAA,wBA2DiB;AACb,UAAI,OAAOd,YAAP,KAAwB,WAA5B,EAAyC;AACvC,eAAO,KAAP;AACD;;AAHY,6BAIG,KAAKY,SAAL,EAJH;AAAA,UAINR,KAJM;;AAKb,UAAMt5B,IAAI,GAAGi6B,UAAU,CAACX,KAAD,CAAvB;AACAptB,MAAAA,OAAO,CAACC,GAAR,CAAYmtB,KAAZ;AACA,aAAOt5B,IAAI,CAACmI,EAAZ;AACD;AAnEH;;AAAA;AAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"react-gmi.esm.js","sources":["../src/guillo-gmi/contexts/index.js","../src/guillo-gmi/lib/helpers.js","../src/guillo-gmi/components/input/button.js","../src/guillo-gmi/components/modal.js","../src/guillo-gmi/hooks/useSetState.js","../src/guillo-gmi/hooks/useCrudContext.js","../src/guillo-gmi/actions/add_item.js","../src/guillo-gmi/hooks/useConfig.js","../src/guillo-gmi/actions/remove_items.js","../src/guillo-gmi/components/input/checkbox.js","../src/guillo-gmi/components/error_zone.js","../src/guillo-gmi/hooks/useInput.js","../src/guillo-gmi/lib/validators.js","../src/guillo-gmi/components/input/input.js","../src/guillo-gmi/components/ui/icon.js","../src/guillo-gmi/components/input/email.js","../src/guillo-gmi/components/input/form.js","../src/guillo-gmi/components/input/password.js","../src/guillo-gmi/components/input/form_builder.js","../src/guillo-gmi/components/input/select.js","../src/guillo-gmi/lib/rest.js","../src/guillo-gmi/components/ui/loading.js","../src/guillo-gmi/components/ui/tag.js","../src/guillo-gmi/components/ui/delete.js","../src/guillo-gmi/components/ui/table.js","../src/guillo-gmi/components/ui/notification.js","../src/guillo-gmi/hooks/useLocation.js","../src/guillo-gmi/components/Link.js","../src/guillo-gmi/components/TdLink.js","../src/guillo-gmi/lib/search.js","../src/guillo-gmi/lib/client.js","../src/guillo-gmi/components/input/upload.js","../src/guillo-gmi/components/input/textarea.js","../src/guillo-gmi/components/input/search_input.js","../src/guillo-gmi/components/input/input_list.js","../src/guillo-gmi/hooks/useClickAway.js","../src/guillo-gmi/components/input/dropdown.js","../src/guillo-gmi/lib/utils.js","../src/guillo-gmi/components/fields/editableField.js","../src/guillo-gmi/components/fields/downloadField.js","../src/guillo-gmi/components/fields/renderField.js","../src/guillo-gmi/components/behaviors/iattachment.js","../src/guillo-gmi/components/behaviors/imultiattachment.js","../src/guillo-gmi/components/behaviors/idublincore.js","../src/guillo-gmi/components/panel/actions.js","../src/guillo-gmi/hooks/useMountedState.js","../src/guillo-gmi/hooks/useAsyncFn.js","../src/guillo-gmi/hooks/useAsync.js","../src/guillo-gmi/components/panel/addons.js","../src/guillo-gmi/components/panel/behaviors.js","../src/guillo-gmi/components/selected_items_actions.js","../src/guillo-gmi/components/pagination.js","../src/guillo-gmi/models/sharing.js","../src/guillo-gmi/models/index.js","../src/guillo-gmi/components/item.js","../src/guillo-gmi/components/searchLabels.js","../src/guillo-gmi/components/panel/items.js","../src/guillo-gmi/components/behavior_view.js","../src/guillo-gmi/components/properties_view.js","../src/guillo-gmi/components/panel/properties.js","../src/guillo-gmi/components/panel/permissions_prinperm.js","../src/guillo-gmi/components/panel/permissions_prinrole.js","../src/guillo-gmi/components/panel/permissions_roleperm.js","../src/guillo-gmi/components/panel/permissions.js","../src/guillo-gmi/components/widgets/tags.js","../src/guillo-gmi/components/context_toolbar.js","../src/guillo-gmi/components/flash.js","../src/guillo-gmi/components/tabs.js","../src/guillo-gmi/views/folder.js","../src/guillo-gmi/views/item.js","../src/guillo-gmi/views/application.js","../src/guillo-gmi/views/base.js","../src/guillo-gmi/views/container.js","../src/guillo-gmi/forms/users.js","../src/guillo-gmi/hooks/useRemoteField.js","../src/guillo-gmi/views/users.js","../src/guillo-gmi/actions/copy_items.js","../src/guillo-gmi/actions/copy_item.js","../src/guillo-gmi/actions/move_items.js","../src/guillo-gmi/actions/move_item.js","../src/guillo-gmi/actions/remove_item.js","../src/guillo-gmi/actions/change_pass.js","../src/guillo-gmi/forms/base.js","../src/guillo-gmi/views/groups.js","../src/guillo-gmi/components/error_boundary.js","../src/guillo-gmi/components/notallowed.js","../src/guillo-gmi/components/notfound.js","../src/guillo-gmi/components/path.js","../src/guillo-gmi/components/fields/editComponent.js","../src/guillo-gmi/hooks/useRegistry.js","../src/guillo-gmi/reducers/guillotina.js","../src/guillo-gmi/components/guillotina.js","../src/guillo-gmi/components/layout.js","../src/guillo-gmi/components/login.js","../src/guillo-gmi/forms/required_fields.js","../src/guillo-gmi/lib/auth.js"],"sourcesContent":["import React from 'react'\nimport { createContext } from 'react'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext({})\n\nexport const TraversalContext = createContext({})\n\nclass Traversal {\n constructor({ flash, ...props }) {\n Object.assign(this, props)\n if (typeof flash === 'function') this.flash = flash\n }\n\n refresh({ transparent = false } = {}) {\n this.dispatch({ type: 'REFRESH', payload: { transparent } })\n }\n\n get path() {\n return this.state.path\n }\n\n get pathPrefix() {\n return this.state.path.slice(1)\n }\n\n get context() {\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data) {\n // apply a optimistic update to context\n this.dispatch({ type: 'APPLY', payload: data })\n }\n\n flash(message, type) {\n this.dispatch({ type: 'SET_FLASH', payload: { flash: { message, type } } })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({ type: 'CLEAR_FLASH' })\n }\n\n doAction(action, params) {\n this.dispatch({ type: 'SET_ACTION', payload: { action, params } })\n }\n\n cancelAction() {\n this.dispatch({ type: 'CLEAR_ACTION' })\n }\n\n hasPerm(permission) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs, tabsPermissions) {\n const result = {}\n Object.keys(tabs).forEach((item) => {\n const perm = tabsPermissions[item]\n if (perm && this.hasPerm(perm)) {\n result[item] = tabs[item]\n } else if (!perm) {\n result[item] = tabs[item]\n }\n })\n return result\n }\n}\n\nexport function TraversalProvider({ children, ...props }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return React.useContext(TraversalContext)\n}\n\nexport function ClientProvider({ children, client }) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return React.useContext(ClientContext)\n}\n","export const classnames = (classNames) => {\n return classNames.filter(Boolean).join(' ').trim()\n}\n\nexport const noop = () => {}\n\nlet current = 0\n\nexport const generateUID = (prefix) => `${prefix || 'id'}-${current++}`\n\nexport const toQueryString = (params) => {\n return Object.keys(params)\n .map((key) => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])\n })\n .join('&')\n}\n\nexport function base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64)\n const binaryLen = binaryString.length\n const bytes = new Uint8Array(binaryLen)\n for (var i = 0; i < binaryLen; i++) {\n var ascii = binaryString.charCodeAt(i)\n bytes[i] = ascii\n }\n return bytes\n}\n\nexport function stringToSlug(str) {\n str = str.replace(/^\\s+|\\s+$/g, '') // trim\n str = str.toLowerCase()\n\n // remove accents, swap ñ for n, etc\n var from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n var to = 'aaaaeeeeiiiioooouuuunc------'\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-') // collapse dashes\n\n return str\n}\n\nexport function sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve()\n }, ms)\n })\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nconst noop = () => {}\n\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n ...rest\n}) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n if (disabled) onClick = noop\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import React from 'react'\nimport usePortal from 'react-useportal'\nimport { Button } from './input/button'\n\nexport function Modal(props) {\n const { isActive, setActive, children } = props\n const { Portal } = usePortal()\n\n const css = 'modal ' + (isActive ? 'is-active ' : '') + props.className\n return (\n <Portal>\n <div className={css}>\n <div className=\"modal-background\" onClick={() => setActive(false)} />\n <div className=\"modal-content\">\n <div className=\"box\">{children}</div>\n </div>\n <button\n className=\"modal-close is-large\"\n aria-label=\"close\"\n onClick={() => setActive(false)}\n />\n </div>\n </Portal>\n )\n}\n\nexport function Confirm({ message, onCancel, onConfirm, loading }) {\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <React.Fragment>\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button\n className=\"button is-danger\"\n onClick={() => onCancel()}\n data-test=\"btnCancelModalTest\"\n >\n Cancel\n </button>\n \n <Button\n loading={loading}\n className=\"is-success\"\n onClick={() => onConfirm()}\n dataTest=\"btnConfirmModalTest\"\n >\n Confirm\n </Button>\n </div>\n </div>\n </React.Fragment>\n </Modal>\n )\n}\n\n// @todo Improve it... Replacing the inputText to a tree\nexport function PathTree({\n title,\n defaultPath,\n children,\n onConfirm,\n onCancel,\n}) {\n return (\n <Modal isActive setActive={onCancel}>\n <h1>{title}</h1>\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onConfirm(e.target[0].value, e.target)\n }}\n >\n <small style={{ display: 'block', marginTop: 20 }}>\n {`Example: /folder (without /db/container on front)`}\n </small>\n <input\n className=\"input mb-3\"\n defaultValue={defaultPath}\n type=\"text\"\n data-test=\"inputPathTreeTest\"\n />\n {children}\n <div className=\"level-right mt-3\">\n <button\n type=\"button\"\n className=\"button is-danger\"\n onClick={onCancel}\n data-test=\"btnCancelModalTest\"\n >\n Cancel\n </button>\n \n <button\n type=\"submit\"\n className=\"button is-success\"\n data-test=\"btnConfirmModalTest\"\n >\n Confirm\n </button>\n </div>\n </form>\n </Modal>\n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useSetState(initialState) {\n const [state, set] = useState(initialState)\n const setState = useCallback(\n (patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n )\n },\n [set]\n )\n\n return [state, setState]\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\n\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nconst getErrorMessage = (dataError, defaultValue) => {\n if (dataError && dataError.details) {\n return dataError.details\n } else if (dataError && dataError.reason) {\n return dataError.reason\n }\n return defaultValue\n}\n\nconst processResponse = async (res, ready_body = true) => {\n if (res.status < 400)\n return {\n isError: false,\n loading: false,\n result: ready_body ? await res.json() : res.status,\n response: res,\n }\n else\n return {\n isError: true,\n loading: false,\n errorMessage: getErrorMessage(await res.json(), res.status),\n response: res,\n }\n}\n\nconst patch = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst del = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.delete(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst post = (setState, Ctx) => async (data, endpoint, body = true) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.post(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst get = (setState, Ctx) => async (endpoint) => {\n setState({ loading: true })\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const req = await Ctx.client.get(path)\n const data = await req.json()\n setState({ loading: false, result: data, response: req })\n return data\n}\n\nexport function useCrudContext() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n return {\n ...state,\n Ctx,\n patch: patch(setState, Ctx),\n del: del(setState, Ctx),\n post: post(setState, Ctx),\n get: get(setState, Ctx),\n }\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\nexport function AddItem(props) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const { type } = props\n const { getForm } = Ctx.registry\n\n const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n const form = Object.assign(\n {},\n { '@type': type },\n data.formData ? data.formData : data\n )\n\n const { isError, errorMessage } = await post(form)\n if (!isError) {\n Ctx.flash('Content created!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n loading={loading}\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Add ' + type}\n title={'Add ' + type}\n type={type}\n dataTest={`formAdd${type}Test`}\n />\n </Modal>\n )\n}\n","import React from 'react'\n\nexport const Permissions = [\n 'guillotina.AddContent',\n 'guillotina.ModifyContent',\n 'guillotina.ViewContent',\n 'guillotina.DeleteContent',\n 'guillotina.AccessContent',\n 'guillotina.SeePermissions',\n 'guillotina.ChangePermissions',\n 'guillotina.MoveContent',\n 'guillotina.DuplicateContent',\n 'guillotina.ReadConfiguration',\n 'guillotina.RegisterConfigurations',\n 'guillotina.WriteConfiguration',\n 'guillotina.ManageAddons',\n 'guillotina.swagger.View',\n]\n\nexport const Config = {\n DisabledTypes: ['UserManager', 'GroupManager'],\n PageSize: 10,\n DelayActions: 200,\n Permissions: Permissions,\n SearchEngine: 'PostreSQL', // Elasticsearch\n fieldHaveDeleteButton: (schema) => {\n return (\n schema?.widget === 'file' ||\n schema?.widget === 'select' ||\n schema?.type === 'array'\n )\n },\n}\n\nlet calculated = Object.assign({}, Config)\n\nconst addConfig = (additional, original) => {\n const rest = Object.assign({}, original)\n Object.keys(additional).forEach((item) => {\n if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {\n rest[item] = [].concat(Config[item], additional[item])\n } else if (typeof Config[item] === 'object') {\n rest[item] = Object.assign({}, Config[item], additional[item])\n } else {\n rest[item] = additional[item]\n }\n })\n return rest\n}\n\nexport function useConfig(cfg) {\n const ref = React.useRef()\n if (cfg && !ref.current) {\n console.log('cfg', cfg)\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n\n // if (cfg && !ref.current) {\n // ref.current = addConfig(cfg, ref.current);\n // calculated = ref.current\n // console.log(\"Current config\", cfg)\n // }\n return calculated\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\n\n// BBB guillotina 5\nconst getId = (item) => {\n if (item['@id']) {\n return item['@id']\n }\n return item['@absolute_url']\n}\n\nexport function RemoveItems(props) {\n const Ctx = useTraversal()\n const cfg = useConfig()\n const [loading, setLoading] = React.useState(false)\n const { items = [] } = props\n const last = items[items.length - 1]['@name']\n const itemsNames = items\n .map((item) => item['@name'])\n .join(', ')\n .replace(`, ${last}`, ` and ${last}`)\n\n async function removeItems() {\n let errors = []\n setLoading(true)\n\n const actions = items.map(async (item) => {\n console.log(item)\n const res = await Ctx.client.delete(getId(item))\n if (!res.ok) {\n const err = await res.json()\n errors.push(err)\n }\n })\n // this sleep is here, to let elasticsearch, wait for\n // index our operations... (will work 99% of use cases)\n actions.push(sleep(cfg.DelayActions))\n\n await Promise.all(actions)\n\n if (errors.length === 0) {\n Ctx.flash(`Items removed!`, 'success')\n Ctx.refresh()\n } else {\n const errorstr = errors.map((err) => JSON.stringify(err)).join('\\n')\n Ctx.flash(`Something went wrong!! ${errorstr}`, 'danger')\n }\n setLoading(false)\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItems}\n message={`Are you sure to remove: ${itemsNames}?`}\n />\n )\n}\n","import React, { useEffect, useRef } from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n value = false,\n color,\n backgroundColor,\n borderColor,\n children,\n placeholder,\n onChange,\n dataTest,\n ...rest\n}) => {\n const inputRef = useRef(null)\n const [state, setState] = React.useState(value)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev) => {\n setState(ev.target.checked)\n onChange(ev.target.checked)\n }\n\n return (\n <div className=\"field\">\n <label htmlFor={id} className={classnames(['checkbox', className])}>\n <input\n ref={inputRef}\n disabled={disabled || loading}\n id={id}\n type=\"checkbox\"\n className={classnames(['checkbox', classNameInput])}\n checked={state}\n onChange={updateState}\n data-test={dataTest}\n {...rest}\n />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\nconst ErrorZone = ({ children, id, className }) => {\n return (\n <p className={classnames(['help is-danger', className])} id={id}>\n {children}\n </p>\n )\n}\n\nErrorZone.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n}\n\nexport default ErrorZone\n","import React from 'react'\n\nconst applyValidators = (value, validators) => {\n let validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n let [state, setState] = React.useState({ hasError: false, value: value })\n\n const onUpdate = (ev) => {\n const value = ev && ev.target ? ev.target.value : ev ? ev : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validator) === false\n if (hasError) setState({ value: state.value, hasError })\n }\n\n const onFocus = () => {\n if (state.hasError) {\n setState({ value: state.value, hasError: false })\n }\n }\n\n React.useEffect(() => {\n setState({ value, hasError: false })\n }, [value])\n\n return {\n onChange: onUpdate,\n onFocus,\n onBlur,\n state,\n }\n}\n\nexport default useInput\n","// From github.com/protonmail/proton-shared\n\n/* eslint-disable no-useless-escape */\nexport const REGEX_EMAIL = /(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/i\nexport const REGEX_URL = /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)/\nexport const REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/i\nexport const REGEX_NUMBER = /^\\d+$/\n\nexport const isEmpty = (value = '') => !value.length\nexport const maxLength = (value = '', limit = 0) => value.length <= limit\nexport const minLength = (value = '', limit = 0) => value.length >= limit\nexport const isEmail = (value = '') => REGEX_EMAIL.test(value)\nexport const isURL = (value = '') => REGEX_URL.test(value)\nexport const isHexColor = (value = '') => REGEX_HEX_COLOR.test(value)\nexport const isNumber = (value = '') => REGEX_NUMBER.test(value)\nexport const notEmpty = (value) => !!value.length\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport ErrorZone from '../error_zone'\nimport useInput from '../../hooks/useInput'\nimport { notEmpty } from '../../lib/validators'\nimport { useEffect } from 'react'\n\nconst noop = () => true\n\n/** @type any */\nexport const Input = React.forwardRef(\n (\n {\n icon,\n iconPosition = 'has-icons-right',\n error,\n errorZoneClassName,\n autoComplete = 'off',\n className = '',\n widget = 'input',\n type = 'text',\n onPressEnter,\n isSubmitted,\n loading = false,\n required = false,\n id,\n placeholder,\n value,\n autofocus = false,\n onChange,\n validator = noop,\n errorMessage,\n dataTest = 'testInput',\n ...rest\n },\n ref\n ) => {\n if (required) {\n validator = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validator)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || React.useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error) {\n ref.current.focus()\n }\n }, [mounted, autofocus, ref, error])\n\n const theError = state.hasError ? errorMessage || 'invalid field' : ''\n const statusClasses = state.hasError ? 'is-danger' : ''\n\n const cssControl = () => (icon ? ['control', iconPosition] : ['control'])\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssControl())}>\n <input\n className={classnames([widget, className, statusClasses])}\n aria-invalid={theError}\n aria-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || rest.disabled}\n required={required}\n data-test={dataTest}\n {...handlers}\n {...rest}\n />\n {icon && icon}\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {state.hasError ? theError : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nInput.propTypes = {\n icon: PropTypes.node,\n iconPosition: PropTypes.arrayOf(\n PropTypes.oneOf(['has-icons-left', 'has-icons-right', ''])\n ),\n error: PropTypes.string,\n errorZoneClassName: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onPressEnter: PropTypes.func,\n placeholder: PropTypes.string,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Icon = ({ icon, className, align }) => {\n const addClass = className ? className.split(' ') : [className]\n\n align = align || 'is-right'\n\n return (\n <span className={classnames(['icon', align, ...addClass])}>\n <i className={icon}></i>\n </span>\n )\n}\n","import React from 'react'\nimport { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\n\nexport const EmailInput = ({ value = '', dataTest, ...rest }) => {\n return (\n <Input\n type=\"email\"\n validator={isEmail}\n errorMessage=\"Email address invalid\"\n value={value}\n data-test={dataTest}\n icon={<Icon icon=\"fas fa-envelope\" />}\n {...rest}\n />\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { noop } from '../../lib/helpers'\nimport { classnames } from '../../lib/helpers'\n\nexport const Form = ({\n children,\n className = '',\n onSubmit = noop,\n onReset = noop,\n autoComplete = 'off',\n title,\n error,\n dataTest,\n ...rest\n}) => {\n const handleSubmit = (event) => {\n event.preventDefault()\n onSubmit(event)\n }\n return (\n <div data-test={dataTest}>\n {title && (\n <div className=\"level\">\n <h1 className=\"title is-size-4\">{title}</h1>\n </div>\n )}\n {error && <div className=\"notification is-danger\">{error}</div>}\n <form\n onSubmit={handleSubmit}\n onReset={onReset}\n autoComplete={autoComplete}\n className={classnames(['form', className])}\n {...rest}\n >\n {children}\n </form>\n </div>\n )\n}\n\nForm.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func,\n autoComplete: PropTypes.string,\n}\n","import React from 'react'\nimport { Input } from './input'\n\nexport const PasswordInput = ({ value = '', ...rest }) => {\n return <Input value={value} type=\"password\" {...rest} />\n}\n","import React from 'react'\nimport { Form } from './form'\nimport { Input } from './input'\nimport { EmailInput } from './email'\nimport { PasswordInput } from './password'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport { generateUID } from '../../lib/helpers'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\nexport function FormBuilder({\n schema,\n formData,\n title,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = [],\n submitButton = true,\n ...rest\n}) {\n const ref = React.useRef()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n let initialState = {}\n const fields = Object.keys(properties).filter((x) => !exclude.includes(x))\n\n fields.forEach((element) => {\n initialState[element] = values[element] || undefined\n })\n\n // Register remotes\n if (!ref.current) {\n ref.current = {}\n Object.keys(remotes).forEach((item) => (ref.current[item] = remotes[item]))\n } else {\n // apply remote changes\n Object.keys(remotes).forEach((key) => {\n if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {\n ref.current[key] = remotes[key]\n }\n })\n }\n\n ref.current = ref.current || {}\n const onUpdate = (field) => (ev) => {\n ref.current[field] = ev.target ? ev.target.value : ev.value || ev\n }\n\n const GetTag = ({ field }) => {\n const Tag =\n formComponents[properties[field].widget || properties[field].type]\n\n const props = {\n label: properties[field].title,\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: properties[field].title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n }\n\n if (required.includes(field)) {\n props.required = true\n props.placeholder += ' *'\n }\n Tag.displayName = `${field}Field`\n return <Tag {...props} />\n }\n\n const children_ = React.Children.map(children, (child) =>\n React.cloneElement(child, { onChange: onUpdate })\n )\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} {...rest}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\n// @ TODO implement hasErrors\n\n/** @type any */\nexport const Select = React.forwardRef(\n (\n {\n options,\n error,\n errorZoneClassName,\n size = 1,\n placeholder,\n id,\n className = '',\n classWrap = '',\n multiple = false,\n loading = false,\n isSubmitted,\n onChange,\n appendDefault = false,\n style = {},\n dataTest,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (ev.target.value === '') {\n onChange({ target: { value: undefined } })\n } else {\n onChange(ev)\n }\n }\n\n if (appendDefault) {\n options = [{ text: 'Choose..', value: '' }].concat(options)\n }\n const statusClasses = error ? 'is-danger' : ''\n\n const cssWrap = [\n 'select',\n statusClasses,\n multiple ? 'is-multiple' : '',\n classWrap,\n ]\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssWrap)}>\n <select\n className={classnames(['', className])}\n size={size}\n multiple={multiple}\n disabled={loading || rest.disabled}\n onChange={onUpdate}\n {...rest}\n ref={ref}\n style={style}\n data-test={dataTest}\n >\n {options.map(({ text, ...rest }, index) => (\n <option key={index.toString()} {...rest}>\n {text}\n </option>\n ))}\n </select>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </div>\n )\n }\n)\n\nSelect.propTypes = {\n error: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n size: PropTypes.number,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.object),\n multiple: PropTypes.bool,\n className: PropTypes.string,\n}\n","export class RestClient {\n constructor(url, container, auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data, headers) {\n if (path.indexOf(this.url) !== -1) {\n path = path.replace(this.url, '')\n }\n\n if (this.container !== '/' && path.indexOf(this.container) === -1) {\n path = `${this.container}${path}`\n }\n\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n data = data || {}\n data.headers = headers || this.getHeaders()\n return await fetch(`${this.url}${path}`, data)\n }\n\n getHeaders() {\n const authToken = this.auth.getToken()\n if (!authToken) return {}\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n\n async post(path, data) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path) {\n return await this.request(path, {})\n }\n\n async put(path, data) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path, data) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path, data) {\n const headers = this.getHeaders()\n delete headers['Content-Type']\n headers['Content-Type'] = data['content-type']\n headers['X-UPLOAD-FILENAME'] = data.filename\n headers['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n headers\n )\n }\n\n async delete(path, data = undefined) {\n return await this.request(path, {\n method: 'delete',\n body: JSON.stringify(data),\n })\n }\n}\n","import React from 'react'\n\nexport const Loading = ({ ...rest }) => (\n <div className=\"progress-line\" {...rest}></div>\n)\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Tag = ({\n name,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}) => (\n <span className={classnames(['tag', color, size])}>\n {name}\n {onRemove !== undefined && (\n <button className=\"delete is-small\" onClick={() => onRemove()}></button>\n )}\n </span>\n)\n","import React from 'react'\n\nexport function Delete({ onClick, className, children }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`delete ${className}`}\n data-test=\"btnDeleteTest\"\n >\n {children}\n </button>\n )\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport function Table({ headers, children, className }) {\n className = className\n ? className.split(' ')\n : ' is-full is-fullwidth is-narrow'.split(' ')\n return (\n <table className={classnames(['table', ...className])}>\n <thead>\n <tr>\n {headers &&\n headers.map((item, idx) => <th key={item + idx}>{item}</th>)}\n </tr>\n </thead>\n <tbody>{children}</tbody>\n </table>\n )\n}\n","import React from 'react'\n\nexport function Notification({ isColor = '', children }) {\n return (\n <div className={'notification is-' + isColor} data-test=\"notificationTest\">\n {children}\n </div>\n )\n}\n","import { useEffect, useRef, useState, useCallback } from 'react'\n\n// Mostly inspired from\n// https://github.com/molefrog/wouter\n\nconst setURLParams = (p) =>\n window.history['pushState'](\n 0,\n 0,\n (window.history.pathname || '') + '?' + p.toString().replace(/%2F/g, '/')\n )\n\nconst clean = (to) => {\n const current = new URLSearchParams()\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n}\n\nexport const useLocation = () => {\n const [path, update] = useState(currentSearchParams())\n const prevPath = useRef(path)\n\n useEffect(() => {\n patchHistoryEvents()\n\n // this function checks if the location has been changed since the\n // last render and updates the state only when needed.\n // unfortunately, we can't rely on `path` value here, since it can be stale,\n // that's why we store the last pathname in a ref.\n const checkForUpdates = () => {\n const pathname = currentSearchParams()\n prevPath.current !== pathname && update((prevPath.current = pathname))\n }\n\n const events = ['popstate', 'pushState', 'replaceState']\n events.map((e) => window.addEventListener(e, checkForUpdates))\n\n // it's possible that an update has occurred between render and the effect handler,\n // so we run additional check on mount to catch these updates. Based on:\n // https://gist.github.com/bvaughn/e25397f70e8c65b0ae0d7c90b731b189\n checkForUpdates()\n\n return () =>\n events.map((e) => window.removeEventListener(e, checkForUpdates))\n }, [])\n\n // the 2nd argument of the `useLocation` return value is a function\n // that allows to perform a navigation.\n //\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n const navigate = useCallback(\n (to, replace) => {\n if (replace) {\n clean(to)\n return\n }\n let current = new URLSearchParams(path.toString())\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n },\n [path]\n )\n\n const remove = useCallback(\n (param) => {\n let current = new URLSearchParams(path.toString())\n current.delete(param)\n setURLParams(current)\n },\n [path]\n )\n\n return [path, navigate, remove]\n}\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\n\nlet patched = 0\n\nconst patchHistoryEvents = () => {\n if (patched) return\n ;['pushState', 'replaceState'].map((type) => {\n const original = window.history[type]\n\n window.history[type] = function () {\n const result = original.apply(this, arguments)\n const event = new Event(type)\n event.arguments = arguments\n\n dispatchEvent(event)\n return result\n }\n })\n\n return (patched = 1)\n}\n\nconst currentSearchParams = (path = window.location.search) =>\n new URLSearchParams(path)\n","import React from 'react'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function Link({ aRef, model, children, ...props }) {\n const [path, navigate] = useLocation()\n const aStyle = { textDecoration: 'none', color: 'currentColor' }\n\n function onClick(e) {\n e.stopPropagation()\n if (actAsLink(e)) return\n e.preventDefault()\n navigate({ path: model.path }, true)\n if (props.onClick) props.onClick(e)\n }\n\n return (\n <a\n {...props}\n ref={aRef}\n href={`?${path}${model.id}/`}\n style={aStyle}\n onClick={onClick}\n >\n {children}\n </a>\n )\n}\n\nfunction actAsLink(e) {\n return e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0\n}\n","import React, { useRef } from 'react'\nimport { Link } from './Link'\n\nexport function TdLink({ model, children, ...props }) {\n const link = useRef()\n\n function onClick() {\n link.current.click()\n }\n\n return (\n <td {...props} onClick={onClick}>\n <Link model={model} aRef={link}>\n {children}\n </Link>\n </td>\n )\n}\n","const SEP = '='\nconst DEFAULT_FIELD = 'title__in'\nconst CLEANER = '||'\n\nexport function parser(qs, defaultField = DEFAULT_FIELD) {\n let lastKey = undefined\n qs.trim()\n\n if (qs.includes('\"')) {\n qs = qs.replace(/\"(\\w+) (\\w+)\"/, `$1${CLEANER}$2`)\n }\n\n qs = qs.split(' ')\n return qs.map((part) => {\n if (part.includes(CLEANER)) {\n part = part.replace('||', ' ')\n }\n if (!part.includes(SEP)) {\n return !lastKey ? [defaultField, part] : [lastKey, part]\n }\n const [key, val] = part.split(SEP)\n lastKey = key\n return [key, val]\n })\n}\n\nexport function buildQs(parsedQuery) {\n return parsedQuery\n .map(\n ([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`\n )\n .join('&')\n}\n","import React from 'react'\nimport { RestClient } from './rest'\nimport { toQueryString } from './helpers'\nimport { Icon } from '../components/ui'\nimport { TdLink } from '../components/TdLink'\nimport { parser } from './search'\n\nlet cacheTypes = {}\nlet cacheSchemas = {}\n\nexport class GuillotinaClient {\n constructor(rest, pathContainsContainer) {\n this.rest = rest\n this.pathContainsContainer = pathContainsContainer\n }\n\n getContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n let parts = path.split('/')\n return `${parts[0]}/${parts[1]}/`\n }\n return ''\n }\n\n clearContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path) {\n switch (path) {\n case '/':\n return await this.rest.get('')\n default:\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n }\n\n async get(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsPostresql({ start = 0, pageSize = 10, withDepth = true }) {\n let result = []\n\n result = [\n ...parser(start.toString(), 'b_start'),\n ...parser(pageSize.toString(), 'b_size'),\n ]\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n return result\n }\n\n getQueryParamsElasticsearch({\n start = 0,\n pageSize = 10,\n path,\n withDepth = true,\n }) {\n let result = []\n let containerPath = this.getContainerFromPath(path)\n\n if (containerPath.startsWith('/')) {\n containerPath = containerPath.slice(1)\n }\n let objectPath = path.replace(containerPath, '')\n if (objectPath.endsWith('/')) {\n objectPath = objectPath.slice(0, -1)\n }\n\n result = [\n ...parser(start.toString(), '_from'),\n ...parser(pageSize.toString(), 'size'),\n ]\n\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n if (objectPath !== '') {\n result = [...result, ...parser(objectPath, 'path__wildcard')]\n }\n return result\n }\n\n getItemsColumn() {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n label: '',\n child: (m) => <td style={smallcss}>{<Icon icon={m.icon} />}</td>,\n },\n {\n label: 'type',\n child: (m) => (\n <TdLink style={smallcss} model={m}>\n <span className=\"tag\">{m.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n child: (m, navigate, search) => (\n <TdLink model={m}>\n {m.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{m.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n ),\n },\n {\n label: 'modified',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat(data) {\n data.member = data.items\n data.items_count = data.items_total\n return data\n }\n\n async search(path, params, container = false, prepare = true) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n let query = prepare ? toQueryString(params) : params\n const url = `${path}@search?${query}`\n let res = await this.rest.get(url)\n let data = await res.json()\n return this.applyCompat(data)\n }\n\n async canido(path, permissions) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (Array.isArray(permissions)) {\n permissions.join(',')\n }\n const url = `${path}@canido?permissions=${permissions}`\n return await this.rest.get(url)\n }\n\n async createObject(path, data) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path) {\n let url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path, data) {\n return await this.rest.delete(path, data)\n }\n\n async create(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path, data) {\n return await this.create(path, data)\n }\n\n async patch(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path, file) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path, name) {\n if (!cacheSchemas[name]) {\n let url = this.getContainerFromPath(path)\n // todo: handle db case (only addable containers)\n const res = await this.rest.get(`${url}@types/${name}`)\n cacheSchemas[name] = await res.json()\n }\n return cacheSchemas[name]\n }\n\n async getAddons(path) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path, key) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path, key) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(path) {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [gr, usr] = await Promise.all([groups, users])\n\n return {\n groups: gr.ok ? await gr.json() : [],\n users: usr.ok ? await usr.json() : [],\n }\n }\n\n async getRoles(path) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path) {\n // paths used to query the API always has to start without a \"/\"\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n const req = await this.rest.get(path + '@all_permissions')\n const resp = await req.json()\n const permissions = Array.from(new Set(extractPermissions(resp)))\n return permissions\n }\n\n async getTypes(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!cacheTypes[path]) {\n const types = await this.rest.get(path + '@addable-types')\n if (types.status === 401 || types.status === 404) {\n cacheTypes[path] = []\n } else {\n const res = await types.json()\n cacheTypes[path] = res\n }\n }\n return cacheTypes[path]\n }\n}\n\nexport function getClient(url, container, auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = async (file) => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e.target.result\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n }\n })\n}\n\nconst extractPermissions = (data) => {\n let result = []\n if (typeof data !== 'object') {\n } else if (!Array.isArray(data) && data.permission) {\n result = result.concat([data.permission])\n } else if (!Array.isArray(data)) {\n Object.keys(data).map(\n (key) => (result = result.concat(extractPermissions(data[key])))\n )\n } else if (Array.isArray(data)) {\n data.map((item) => (result = result.concat(extractPermissions(item))))\n }\n return result\n}\n","import React from 'react'\nimport { lightFileReader } from '../../lib/client'\n\nexport function FileUpload({ label, onChange, ...props }) {\n const changed = async (event) => {\n const file = await lightFileReader(event.target.files[0])\n onChange(file)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n {...props}\n type=\"file\"\n name=\"file\"\n onChange={changed}\n />\n <span className=\"file-cta\">\n <span className=\"file-icon\">\n <i className=\"fas fa-upload\"></i>\n </span>\n <span className=\"file-label\">{label || 'Choose a file…'}</span>\n </span>\n </label>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\nexport const Textarea = React.forwardRef(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (onChange) {\n onChange(ev.target.value)\n }\n }\n const statusClasses = error ? 'is-danger' : ''\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classWrap}>\n <textarea\n className={classnames(['textarea', className, statusClasses])}\n rows={rows}\n onChange={onUpdate}\n value={value}\n data-test={dataTest}\n {...rest}\n ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n","import React, { useState } from 'react'\n\nimport PropTypes from 'prop-types'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport useSetState from '../../hooks/useSetState'\nimport ErrorZone from '../error_zone'\nimport { Loading } from '../ui'\nimport { generateUID } from '../../lib/helpers'\nimport { useConfig } from '../../hooks/useConfig'\nfunction debounce(func, wait) {\n let timeout\n return function () {\n const context = this\n const args = arguments\n const later = function () {\n timeout = null\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n }\n}\n\nconst initialState = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\nexport const SearchInput = ({\n onChange,\n error,\n errorZoneClassName,\n traversal = null,\n path = null,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = null,\n}) => {\n const [options, setOptions] = useSetState(initialState)\n const [isOpen, setIsOpen] = React.useState(false)\n const [searchTerm, setSearchTerm] = React.useState('')\n const inputRef = React.useRef(null)\n const wrapperRef = React.useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n\n const [uid] = useState(generateUID('search_input'))\n\n const getHeight = () => {\n if (wrapperRef && wrapperRef.current) {\n return {\n maxHeight: `${\n window.innerHeight -\n wrapperRef.current.getBoundingClientRect().top -\n 100\n }px`,\n }\n }\n return { maxHeight: 'auto' }\n }\n\n const delayedQuery = React.useCallback(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n setOptions({ loading: true })\n let searchTermQs = []\n let searchTermParsed = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n let qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n\n if (qs.length > 0 || searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([...qs, ...searchTermParsed, ...qsParsed])\n }\n\n const data = await traversal.client.search(\n path,\n searchTermQs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n const newItems =\n options.items && concat ? [...options.items, ...data.items] : data.items\n\n setOptions({\n items: newItems ?? [],\n loading: false,\n items_total: data.items_total ?? 0,\n page: page,\n })\n }\n\n const renderTextItemOptionFn = (item) => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return item.title || item['@name']\n }\n\n React.useEffect(() => {\n if (path && !options.loading && !options.items) {\n ;(async () => {\n handleSearch(options.page)\n })()\n }\n }, [path, options.loading, options.items])\n\n return (\n <React.Fragment>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(!isOpen)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{value && value.title ? value.title : 'Choose...'}</span>\n <span className=\"icon\">\n <i className=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </div>\n <div\n className=\"dropdown-menu\"\n id=\"dropdown-menu\"\n role=\"menu\"\n style={getHeight()}\n >\n <div className=\"dropdown-content\">\n <div className=\"dropdown-item\">\n <input\n ref={inputRef}\n data-test={dataTestSearchInput}\n className=\"input\"\n type=\"text\"\n placeholder=\"Search...\"\n value={searchTerm}\n onChange={(ev) => {\n delayedQuery(ev.target.value)\n setSearchTerm(ev.target.value)\n }}\n />\n </div>\n <hr className=\"dropdown-divider\" />\n {options.loading && <Loading />}\n {options.items &&\n options.items.map((item) => {\n return (\n <a\n href=\"#\"\n className={`dropdown-item editable ${\n value && value.id === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={() => {\n onChange && onChange(item)\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </a>\n )\n })}\n\n {options.items && options.items.length === 0 && (\n <div className=\"dropdown-item\"> No results </div>\n )}\n\n {options.items && options.items_total > options.items.length && (\n <React.Fragment>\n <hr className=\"dropdown-divider\" />\n <div\n className=\"dropdown-item editable\"\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n handleSearch(options.page + 1, true)\n }}\n >\n Load more...\n </div>\n </React.Fragment>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </React.Fragment>\n )\n}\n\nSearchInput.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.object,\n client: PropTypes.object,\n path: PropTypes.string,\n PageSize: PropTypes.number,\n btnClass: PropTypes.string,\n}\n","import * as React from 'react'\nimport { Input } from './input'\n\nexport const InputList = React.forwardRef(\n ({ value, onChange, dataTest }, ref) => {\n const [inputValue, setInputValue] = React.useState('')\n const addTags = (event) => {\n if (event.key === 'Enter' && event.target.value !== '') {\n onChange([...value, event.target.value])\n setInputValue('')\n }\n }\n\n return (\n <div className=\"control\">\n <div className=\"tags\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {tag}\n <button\n className=\"delete is-small\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n ></button>\n </div>\n ))}\n </div>\n <Input\n type=\"text\"\n placeholder=\"Press enter to add value\"\n onKeyUp={(event) => addTags(event)}\n value={inputValue}\n ref={ref}\n dataTest={dataTest}\n onChange={(value) => {\n if (value !== '') {\n setInputValue(value)\n }\n }}\n />\n </div>\n )\n }\n)\n","import { useEffect, useRef } from 'react'\n\nconst defaultEvents = ['mousedown', 'touchstart']\nconst on = (obj, ...args) => obj.addEventListener(...args)\nconst off = (obj, ...args) => obj.removeEventListener(...args)\n\nexport default function useClickAway(ref, onClickAway, events = defaultEvents) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event) => {\n const { current: el } = ref\n el && !el.contains(event.target) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName, handler)\n }\n }\n }, [events, ref])\n}\n","import React, { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n ...props\n}) {\n const ref = useRef(null)\n const [isActive, setIsActive] = useState(false)\n const position = isRight ? 'is-right' : ''\n const status = isActive\n ? `dropdown ${position} is-active`\n : `dropdown ${position}`\n\n useClickAway(ref, () => {\n setIsActive(false)\n })\n\n return (\n <div ref={ref} className={status} {...props}>\n <div className=\"dropdown-trigger\">\n <button\n className=\"button is-size-7\"\n onClick={() => setIsActive(!isActive)}\n aria-haspopup=\"true\"\n disabled={disabled}\n aria-controls={id}\n >\n {children}\n </button>\n </div>\n <div className=\"dropdown-menu\" id={id} role=\"menu\">\n <div className=\"dropdown-content\">\n {options.map((option) => {\n const disabled =\n typeof optionDisabledWhen === 'function'\n ? optionDisabledWhen(option)\n : false\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n <a\n className={\n disabled ? 'dropdown-item is-active' : 'dropdown-item'\n }\n data-test={`dropdownItemTest-${option.value.toLowerCase()}`}\n key={option.text}\n onClick={disabled ? undefined : () => onChange(option.value)}\n style={\n disabled\n ? {\n cursor: 'not-allowed',\n color: 'black',\n opacity: 0.5,\n backgroundColor: '#eeeeee',\n }\n : {}\n }\n >\n {option.text}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import { stringToSlug } from './helpers'\n\nexport const formatDate = (str) => {\n const d = new Date(str)\n const minutes = d.getMinutes() < 10 ? `0${d.getMinutes()}` : d.getMinutes()\n return `${d.getDate()}/${\n d.getMonth() + 1\n }/${d.getFullYear()} ${d.getHours()}:${minutes}`\n}\n\nexport const get = (obj, path, defValue) => {\n // If path is not defined or it has false value\n if (!path) return undefined\n // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n // Regex explained: https://regexr.com/58j0k\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n // Find value if exist return otherwise return undefined value;\n return (\n pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || defValue\n )\n}\n\nexport function getNewId(id = '') {\n const suffix = '-copy-'\n const rgx = new RegExp(`($|${suffix}\\\\d*)`)\n\n return stringToSlug(id).replace(rgx, (r) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n","import React from 'react'\nimport { Button } from '../input/button'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useState } from 'react'\nimport { useRef } from 'react'\nimport { useEffect } from 'react'\nimport { Icon } from '../ui'\nimport { get } from '../../lib/utils'\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}) {\n const ref = useRef()\n const [isEdit, setEdit] = useState(false)\n const [val, setValue] = useState(value)\n const { patch, loading, Ctx } = useCrudContext()\n const { fieldHaveDeleteButton } = useConfig()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n const RenderFieldComponent = Ctx.registry.get(\n 'components',\n 'RenderFieldComponent'\n )\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified = modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (ev) => {\n if (ev) ev.preventDefault()\n\n if (!field) {\n Ctx.flash(`Provide a key name!`, 'danger')\n return\n }\n\n if (!val && required) {\n Ctx.flash(`${field} is mandatory!`, 'danger')\n return\n }\n\n if (schema?.widget === 'file') {\n const value = val\n if (value) {\n value['filename'] = unescape(encodeURIComponent(value['filename']))\n }\n const endpoint = `${Ctx.path}@upload/${field}`\n const req = await Ctx.client.upload(endpoint, value)\n if (req.status !== 200) {\n Ctx.flash(`Failed to upload file ${field}!`, 'danger')\n } else {\n Ctx.flash(`${field} uploaded!`, 'success')\n }\n } else {\n const data = ns ? { [ns]: { [field]: val } } : { [field]: val }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, updated!`, 'success')\n }\n }\n\n setEdit(false)\n Ctx.refresh()\n }\n\n const deleteField = async (ev) => {\n if (ev) ev.preventDefault()\n if (schema?.widget === 'file') {\n if (!field || (!val && required)) {\n Ctx.flash(`You can't delete ${field}!`, 'danger')\n return\n }\n\n const data = ns ? { [ns]: { [field]: null } } : { [field]: null }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, deleted!`, 'success')\n }\n\n setEdit(false)\n Ctx.refresh()\n } else if (schema?.type === 'string' && schema?.enum) {\n setValue(null)\n } else if (schema?.type === 'array' && schema?.items.type === 'string') {\n setValue([])\n }\n }\n\n return (\n <React.Fragment>\n {!isEdit && (\n <div\n className={canModified ? 'editable' : ''}\n onClick={() => {\n setEdit(!!canModified)\n }}\n data-test={`editableFieldTest-${field}`}\n >\n <RenderFieldComponent\n schema={schema}\n field={field}\n val={val}\n modifyContent={modifyContent}\n />\n {canModified && <Icon icon=\"fas fa-edit\" />}\n </div>\n )}\n\n {isEdit && (\n <div className=\"field\" data-test={`editableFieldTest-${field}`}>\n <div className=\"control\">\n <EditComponent\n ref={ref}\n schema={schema}\n val={val}\n setValue={setValue}\n dataTest={`editableFieldEditTest`}\n />\n </div>\n <div className=\"field is-grouped\">\n <div className=\"control\">\n <Button\n className=\"is-small is-primary\"\n loading={loading}\n onClick={saveField}\n dataTest=\"editableFieldBtnSaveTest\"\n >\n Save\n </Button>\n </div>\n <div className=\"control\">\n <Button\n className=\"is-small\"\n onClick={() => setEdit(false)}\n dataTest=\"editableFieldBtnCancelTest\"\n >\n Cancel\n </Button>\n </div>\n {!required && fieldHaveDeleteButton(schema) && (\n <div className=\"control\">\n <Button\n className=\"is-small is-danger\"\n onClick={deleteField}\n dataTest=\"editableFieldBtnDeleteTest\"\n >\n Delete\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const DownloadField = ({ value }) => {\n const Ctx = useTraversal()\n const { data, field } = value\n\n const getField = async (downloadFile) => {\n const endpoint = `${Ctx.path}@download/${field}`\n const res = await Ctx.client.download(endpoint)\n const text = await res.blob()\n const blob = new Blob([text], {\n type: data.content_type,\n })\n const url = window.URL.createObjectURL(blob)\n\n // Create blob link to download\n const link = document.createElement('a')\n link.href = url\n if (downloadFile) {\n link.setAttribute('download', `${data.filename}`)\n } else {\n link.setAttribute('target', `_blank`)\n }\n\n document.body.appendChild(link)\n link.click()\n setTimeout(function () {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url)\n link.parentNode?.removeChild(link)\n }, 100)\n }\n\n return (\n <div className=\"field\">\n <div className=\"label\">{data.filename}</div>\n <div className=\"columns\">\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-left\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(false)\n }}\n >\n Open\n </button>\n </div>\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-right\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(true)\n }}\n >\n Download\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { DownloadField } from './downloadField'\n\nconst plain = ['string', 'number', 'boolean']\n\nexport function RenderField({ value, Widget }) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} />\n }\n\n const type = typeof value\n if (plain.includes(type)) {\n return value\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => (\n <div key={item}>\n <RenderField value={item} />\n </div>\n ))\n }\n return Object.keys(value).map((key) => (\n <FieldValue field={key} value={value[key]} key={key} />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\nconst FieldValue = ({ field, value }) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderField value={value} />\n </div>\n </div>\n)\n\nexport const DEFAULT_VALUE_EDITABLE_FIELD = 'Click to edit'\nexport const DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\n\nexport function RenderFieldComponent({ schema, field, val, modifyContent }) {\n const getRenderProps = () => {\n const renderProps = {\n value:\n val ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n if (val && schema?.widget === 'file') {\n renderProps['value'] = {\n data: val,\n field: field,\n }\n renderProps['Widget'] = DownloadField\n } else if (schema?.type === 'boolean') {\n renderProps['value'] = val?.toString() ?? renderProps['value']\n } else if (val && schema?.type === 'datetime') {\n renderProps['value'] = new Date(val).toLocaleString()\n }\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nexport function IAttachment({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties[key]}\n modifyContent={modifyContent && ['file'].includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Input } from '../input/input'\nimport { FileUpload } from '../input/upload'\nimport { Button } from '../input/button'\nimport { useState } from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport ErrorZone from '../error_zone'\nimport { EditableField } from '../fields/editableField'\nimport { Delete } from '../ui'\nimport { Confirm } from '../../components/modal'\n\nexport function IMultiAttachment({ properties, values }) {\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState()\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError('Provide a file and a key name')\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/files/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to upload file')\n setLoading(false)\n return\n }\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(`${fileKey} uploaded!`, 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/files/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to delete file')\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(`${fileKeyToDelete} delete!`, 'success')\n Ctx.refresh()\n }\n\n return (\n <React.Fragment>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile(fileKeyToDelete)}\n message={`Are you sure to remove: ${fileKeyToDelete}?`}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`files/${key}`}\n value={values['files'][key]}\n ns=\"guillotina.behaviors.attachment.IMultiAttachment.files\"\n schema={properties['files']['additionalProperties']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n ))}\n {Object.keys(values['files']).length === 0 && (\n <tr>\n <td colSpan={2}>No files uploaded</td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">Upload a file</label>\n <form className=\"columns\">\n <div className=\"column is-4\">\n <Input\n placeholder=\"Key\"\n name=\"field\"\n className=\"is-small\"\n value={fileKey}\n onChange={(ev) => setFileKey(ev)}\n />\n {error && <ErrorZone>{error}</ErrorZone>}\n </div>\n <div className=\"column is-2\">\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div className=\"column is-2\">\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!fileKey && !file}\n >\n Upload\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\nexport function IDublinCore({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.dublincore.IDublinCore\"\n schema={properties[key]}\n modifyContent={modifyContent && editableFields.includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const ACTIONS_OBJECT = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItem',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItem',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItem',\n },\n}\n\nexport function PanelActions() {\n const traversal = useTraversal()\n\n const hasPerm = (perms) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey) => {\n traversal.doAction(ACTIONS_OBJECT[actionKey].action, {\n item: traversal.context,\n })\n }\n\n return (\n <React.Fragment>\n {Object.keys(ACTIONS_OBJECT).map((actionKey) => {\n if (hasPerm(ACTIONS_OBJECT[actionKey].perms)) {\n return (\n <button\n key={`panel_action_${ACTIONS_OBJECT[actionKey].text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKey)\n }}\n >\n {ACTIONS_OBJECT[actionKey].text}\n </button>\n )\n }\n })}\n </React.Fragment>\n )\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nexport default function useMountedState() {\n const mountedRef = useRef(false)\n const get = useCallback(() => mountedRef.current, [])\n\n useEffect(() => {\n mountedRef.current = true\n\n return () => {\n mountedRef.current = false\n }\n })\n\n return get\n}\n","import { useCallback, useState, useRef } from 'react'\nimport useMountedState from './useMountedState'\n\nexport default function useAsyncFn(\n fn,\n deps = [],\n initialState = { loading: false }\n) {\n const lastCallId = useRef(0)\n const isMounted = useMountedState()\n const [state, set] = useState(initialState)\n\n const callback = useCallback((...args) => {\n const callId = ++lastCallId.current\n set((prevState) => ({ ...prevState, loading: true }))\n\n return fn(...args).then(\n (value) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ value, loading: false })\n\n return value\n },\n (error) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ error, loading: false })\n\n return error\n }\n )\n }, deps)\n\n return [state, callback]\n}\n","import { useEffect } from 'react'\nimport useAsyncFn from './useAsyncFn'\n\nexport default function useAsync(fn, deps = []) {\n const [state, callback] = useAsyncFn(fn, deps, {\n loading: true,\n })\n\n useEffect(() => {\n callback()\n }, [callback])\n\n return state\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport useAsync from '../../hooks/useAsync'\n\n// TODO: Refactor without useAsync... just crudContext\nexport function PanelAddons(props) {\n const Ctx = useTraversal()\n let [action, setAction] = React.useState(false)\n\n const installAddon = async (Ctx, key) => {\n await Ctx.client.installAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} installed`, 'success')\n setAction(!action)\n }\n\n const removeAddon = async (Ctx, key) => {\n await Ctx.client.removeAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} removed`, 'success')\n setAction(!action)\n }\n\n const state = useAsync(async () => {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n return prepareData(data)\n }, [action])\n\n return (\n <React.Fragment>\n {state.loading ? (\n <div>loading</div>\n ) : state.error ? (\n <p>Error: {state.error.message}</p>\n ) : (\n <div className=\"columns\">\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Available Addons\n </h2>\n <hr />\n {state.value.available.length === 0 && (\n <p>No Addon available in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.available.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-primary is-small\"\n onClick={() => installAddon(Ctx, addon.id)}\n >\n Install\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Installed Addons\n </h2>\n <hr />\n {state.value.installed.length === 0 && (\n <p>No Addon installed in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.installed.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-danger is-small\"\n onClick={() => removeAddon(Ctx, addon.id)}\n >\n Remove\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n\nconst prepareData = (result) => {\n const addons = arrayToObject(result.available)\n return {\n available: result.available.filter(\n (item) => !result.installed.includes(item.id)\n ),\n installed: result.installed.map((id) => addons[id]),\n }\n}\n\nconst arrayToObject = (array) =>\n array.reduce((obj, item) => {\n obj[item.id] = item\n return obj\n }, {})\n","import React from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { Table } from '../ui/table'\nimport { Button } from '../input/button'\n\nexport function PanelBehaviors() {\n const { Ctx, get, result, loading, isError } = useCrudContext()\n const ops = useCrudContext()\n\n const [state, setState] = React.useState(false)\n\n const enableBehavior = (behavior) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior) => async () => {\n await ops.del({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n React.useEffect(() => {\n get('@behaviors')\n }, [])\n\n return (\n <div className=\"columns behaviors\">\n <div className=\"column is-8 is-size-7\">\n <h2 className=\"title is-size-5 has-text-grey-dark\">Behaviors</h2>\n {!loading && !isError && result && (\n <React.Fragment>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Static</h3>\n </td>\n </tr>\n {result.static.map((behavior) => (\n <tr key={behavior}>\n <td>Static</td>\n <td>{behavior}</td>\n <td className=\"\">\n <Button className=\"is-small is-pulled-right\" disabled>\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Enabled</h3>\n </td>\n </tr>\n {result.dynamic.map((behavior) => (\n <tr key={behavior}>\n <td>Enabled</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-danger is-pulled-right\"\n onClick={disableBehavior(behavior)}\n >\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Available</h3>\n </td>\n </tr>\n {result.available.map((behavior) => (\n <tr key={behavior}>\n <td>Available</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-primary is-pulled-right\"\n onClick={enableBehavior(behavior)}\n >\n Enable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n </React.Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import React, { createContext, useState, useContext } from 'react'\nimport Dropdown from './input/dropdown'\nimport { Checkbox } from './input/checkbox'\nimport { useTraversal } from '../contexts'\n\nconst ItemsActionsCtx = createContext({})\n\nexport const actions = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItems',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItems',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItems',\n },\n}\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\nexport function ItemsActionsProvider({ items, children }) {\n const traversal = useTraversal()\n const [selected, setSelected] = useState({})\n\n function onSelectAllItems(checked) {\n setSelected(\n items.reduce(\n (obj, item) => {\n obj[`${item.path}/${item.id}`] = checked\n return obj\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item) {\n setSelected((state) => ({\n ...state,\n all: false,\n [`${item.path}/${item.id}`]: !state[`${item.path}/${item.id}`],\n }))\n }\n\n function onAction(actionKey) {\n traversal.doAction(actions[actionKey].action, {\n items: items.filter((item) => selected[`${item.path}/${item.id}`]),\n })\n }\n\n return (\n <ItemsActionsCtx.Provider\n value={{\n onAction,\n onSelectAllItems,\n onSelectOneItem,\n selected,\n }}\n >\n {children}\n </ItemsActionsCtx.Provider>\n )\n}\n\n/**\n * Checkbox component without props that consume the ItemsActionsContext\n * and it select/unselect all items of the page.\n */\nexport function AllItemsCheckbox({ dataTest }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n key={selected.all}\n onChange={onSelectAllItems}\n style={{ marginLeft: 2 }}\n value={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\nexport function ItemCheckbox({ item, dataTest }) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n key={value}\n onChange={() => onSelectOneItem(item)}\n value={value}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Dropdown to choose some action to apply to the selected items.\n */\nexport function ItemsActionsDropdown() {\n const traversal = useTraversal()\n const { selected, onAction } = useContext(ItemsActionsCtx)\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(actions).map((action) => ({\n text: actions[action].text,\n value: action,\n }))\n\n return (\n <Dropdown\n disabled={disabled}\n id=\"items-actions\"\n onChange={onAction}\n optionDisabledWhen={(o) =>\n actions[o.value].perms.some((perm) => !traversal.hasPerm(perm))\n }\n options={options}\n >\n <div data-test=\"btnChooseActionTest\">Choose action...</div>\n </Dropdown>\n )\n}\n","import React from 'react'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nexport function Pagination({ current, total, doPaginate, pager }) {\n const maxPages = Math.ceil(total / pager)\n if (maxPages <= 1) {\n return null\n }\n\n return (\n <div>\n <p className=\"level-right has-text-grey is-size-7\">\n <span className=\"has-text-black\">{current + 1}</span>/\n <span className=\"has-text-black\">{maxPages}</span> of {total} items\n </p>\n <nav\n className=\"pagination is-size-7\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <a\n className=\"pagination-previous is-small\"\n disabled={current === 0}\n onClick={() => (current > 0 ? doPaginate(current - 1) : null)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-left\"></i>\n </span>\n </a>\n <a\n className=\"pagination-next is-small\"\n disabled={current >= maxPages - 1}\n onClick={() => doPaginate(current + 1)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-right\"></i>\n </span>\n </a>\n </nav>\n </div>\n )\n}\n","const base = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: {},\n}\n\nexport class Sharing {\n constructor(element) {\n Object.assign(this, element || base)\n }\n\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\n\nexport * from './sharing'\n\nexport class ItemModel {\n constructor(item, url, path) {\n this.item = item\n this.url = url\n this._path = path\n }\n\n get path() {\n // Compat\n let item = this.item['@id'] ? this.item['@id'] : this.item['@absolute_url']\n let path = item.split('//')[1].split('/').splice(1).join('/')\n path = `/${path}/`\n if (this.url.length > 0) {\n if (this.url.startsWith('/')) {\n path = path.replace(this.url.substring(1), '')\n } else {\n path = path.replace(this.url, '')\n }\n }\n\n return path\n }\n\n get name() {\n return this.item.title || this.item['@name']\n }\n\n get icon() {\n // eslint-disable-next-line\n const cfg = useConfig()\n if (cfg.icons && cfg.icons[this.type]) {\n return cfg.icons[this.type]\n }\n\n switch (this.type) {\n case 'GroupManager':\n return 'fas fa-users-cog'\n case 'UserManager':\n return 'fas fa-user-cog'\n case 'User':\n return 'fas fa-user'\n case 'Group':\n return 'fas fa-users'\n case 'Folder':\n return 'fas fa-folder'\n default:\n return 'fas fa-file'\n }\n }\n\n get fullPath() {\n return this._url + this.item.id\n }\n\n get id() {\n if (this.item.id) {\n return this.item.id\n }\n let id = this.item['@id'].split('&')[0].split('/')\n return id[id.length - 1]\n }\n\n get uid() {\n return this.item['@uid']\n }\n\n get type() {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\n\nexport function Item({ item, icon }) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\nexport function RItem({ item, search, columns }) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url, traversal.path)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item} data-test={`itemTest-${item['@name']}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} dataTest=\"itemCheckboxRowTest\" />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\nexport function ItemTitle({ title, actions }) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import React from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function SearchLabels(props) {\n const { query, label } = props\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n return (\n <div className=\"tags\">\n {search && (\n <Tag name={label ?? 'Search:'} color=\"is-light\" size=\"is-size-7\" />\n )}\n {search && (\n <Tag\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport {\n ItemsActionsProvider,\n AllItemsCheckbox,\n ItemsActionsDropdown,\n} from '../selected_items_actions'\nimport { Pagination } from '../pagination'\nimport { RItem } from '../item'\nimport { SearchLabels } from '../../components/searchLabels'\nimport { useTraversal } from '../../contexts'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useEffect } from 'react'\nimport { useLocation } from '../../hooks/useLocation'\n\nconst initialState = {\n page: 0,\n items: [],\n loading: true,\n total: 0,\n}\n\nexport function PanelItems() {\n const [location, setLocation] = useLocation()\n const { PageSize, SearchEngine } = useConfig()\n\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initialState)\n const { items, loading, total } = state\n\n const columns =\n Ctx.registry.getItemsColumn(Ctx.context['@type']) ||\n Ctx.client.getItemsColumn()\n\n let search = location.get('q')\n let type = location.get('type')\n let page\n\n try {\n page = parseInt(location.get('page')) || 0\n } catch {\n page = 0\n }\n\n let searchParsed = undefined\n if (search && search !== '') {\n searchParsed = parser(search)\n }\n\n let typeParsed = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n useEffect(() => {\n if (Ctx.state.loading) return\n ;(async () => {\n let data\n setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n\n let qsParsed = Ctx.client[fnName]({\n path: Ctx.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n let qs = ''\n if (search || type) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ])\n } else {\n qs = buildQs(qsParsed)\n }\n\n data = await Ctx.client.search(\n Ctx.path,\n qs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n setState({\n items: data.member,\n loading: false,\n total: data.items_count,\n })\n })()\n }, [search, type, Ctx.state.refresh, page])\n\n const doPaginate = (page) => {\n setLocation({ page: page })\n }\n\n return (\n <ItemsActionsProvider items={items}>\n <div className=\"columns\">\n <div className=\"column is-2 is-size-7\">\n <ItemsActionsDropdown />\n </div>\n <div className=\"column\">\n <SearchLabels />\n </div>\n <div className=\"column\">\n <SearchLabels label=\"Type\" query=\"type\" />\n </div>\n <div className=\"column\">\n <Pagination\n current={page}\n total={total}\n key=\"pagination-top\"\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </div>\n {loading && <div className=\"progress-line\"></div>}\n {!loading && (\n <table\n className=\"table is-fullwidth is-hoverable\"\n data-test=\"itemPanelTableTest\"\n >\n <thead className=\"is-size-7\">\n <tr>\n <th>\n <AllItemsCheckbox />\n </th>\n {columns.map((i) => (\n <th key={i.label} className=\"has-text-info\">\n {i.label}\n </th>\n ))}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {items &&\n items.map((item) => (\n <RItem\n item={item}\n key={item['@uid']}\n search={search}\n columns={columns}\n />\n ))}\n {items && items.length === 0 && (\n <tr>\n <td colSpan=\"6\" className=\"has-text-centered\">\n Anything here!\n </td>\n </tr>\n )}\n </tbody>\n </table>\n )}\n <div className=\"columns is-centered\">\n <Pagination\n current={page}\n key=\"pagination-bottom\"\n total={total}\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </ItemsActionsProvider>\n )\n}\n","import React from 'react'\nimport { Table } from './ui/table'\nimport { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\n\nexport function BehaviorsView({ context, schema }) {\n const Ctx = useTraversal()\n const { getBehavior } = Ctx.registry\n\n const behaviors = [].concat(\n context.__behaviors__,\n context['@static_behaviors']\n )\n const GetBehavior = (b) => {\n const Cls = getBehavior(b, BehaviorNotImplemented)\n return (\n <Cls\n values={context[b]}\n properties={get(schema, ['definitions', b, 'properties'], {})}\n />\n )\n }\n\n return (\n <React.Fragment>\n {behaviors.map((behavior) => (\n <div className=\"container\" key={behavior}>\n <h3 className=\"title is-size-6 has-text-grey\">{behavior}</h3>\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {GetBehavior(behavior)}\n </Table>\n <hr />\n </div>\n ))}\n </React.Fragment>\n )\n}\n\nexport function BehaviorNotImplemented() {\n return (\n <tr>\n <td colSpan=\"3\">Not Implemented</td>\n </tr>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\n\nexport function PropertiesButtonView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Buttons) {\n const Element = React.cloneElement(Props.Buttons, { Ctx: Ctx })\n return Element\n }\n return null\n}\n\nexport function PropertiesView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Panels) {\n const Element = React.cloneElement(Props.Panels, { Ctx: Ctx })\n return Element\n }\n return null\n}\n","import React, { useEffect } from 'react'\nimport { ItemModel } from '../../models'\nimport { BehaviorsView } from '../behavior_view'\nimport { Icon } from '../ui/icon'\nimport { EditableField } from '../fields/editableField'\nimport { PropertiesButtonView } from '../properties_view'\nimport { PropertiesView } from '../properties_view'\nimport { useConfig } from '../../hooks/useConfig'\nimport useSetState from '../../hooks/useSetState'\nimport { useTraversal } from '../../contexts'\nimport { get } from '../../lib/utils'\n\nconst _showProperties = ['@id', '@name', '@uid']\nconst _ignoreFields = [\n 'guillotina.behaviors.attachment.IAttachment',\n 'guillotina.behaviors.dublincore.IDublinCore',\n 'guillotina.behaviors.attachment.IMultiAttachment',\n '__behaviors__',\n 'type_name',\n 'creation_date',\n 'modification_date',\n 'uuid',\n 'title',\n]\n\nexport function PanelProperties() {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const cfg = useConfig()\n\n const [schema, setSchema] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n const model = new ItemModel(Ctx.context)\n\n const showProperties = cfg.properties_default || _showProperties\n const ignoreFields = cfg.properties_ignore_fields || _ignoreFields\n\n const properties = Object.keys(schema?.data?.properties || [])\n .filter((key) => !ignoreFields.includes(key))\n .map((key) => ({ key, value: schema.data.properties[key] }))\n\n useEffect(() => {\n ;(async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, model.type)\n setSchema({ loading: false, data: dataJson })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n })()\n }, [schema])\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <h2 className=\"title is-size-4 is-primary\">\n <Icon icon={model.icon} align=\"is-left\" className=\"has-text-grey\" />{' '}\n \n <span>{Ctx.context.title || Ctx.context['@name']}</span>\n </h2>\n </div>\n <div className=\"level-right\">\n <PropertiesButtonView />\n </div>\n </div>\n\n <hr />\n {schema && schema.data && !schema.loading && (\n <div className=\"columns\">\n <div className=\"column\">\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {showProperties.map((prop) => (\n <tr key={'prop' + prop}>\n <td>{prop}</td>\n <td>\n <EditableField\n field={prop}\n value={Ctx.context[prop]}\n modifyContent={false}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {properties.length > 0 && (\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {properties.map(({ key, value }) => {\n return (\n <tr key={'prop' + key}>\n <td>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={get(schema.data, 'required', []).includes(\n key\n )}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n <PropertiesView />\n <BehaviorsView context={Ctx.context} schema={schema.data} />\n </div>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async (ev) => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinrole({ principals, roles, operations, refresh }) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n roles: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n options={roles}\n onChange={getMultiples('roles', setState)}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n role: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n console.log(state)\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n appendDefault\n options={roles}\n onChange={(ev) => setState({ role: ev.target.value })}\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport { PermissionPrinperm } from './permissions_prinperm'\nimport { PermissionPrinrole } from './permissions_prinrole'\nimport { PermissionRoleperm } from './permissions_roleperm'\nimport { Select } from '../input/select'\nimport { Sharing } from '../../models'\nimport { Table } from '../ui/table'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PanelPermissions() {\n const { get, result, loading } = useCrudContext()\n const ctx = useTraversal()\n\n const [reset, setReset] = React.useState(1)\n\n React.useEffect(() => {\n get('@sharing')\n }, [reset])\n\n const perms = new Sharing(result)\n\n return (\n <div className=\"columns\">\n {!loading && (\n <div\n className=\"column is-8 is-size-7 permissions\"\n data-test=\"containerPermissionsInfoTest\"\n >\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Role Permissions\n </h2>\n <Table headers={['Role', 'Premission', 'Setting']}>\n {perms.roles.map((role, idx) => (\n <React.Fragment key={'ff' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n {/* <td>\n <Icon icon=\"fas fa-ban\" />\n <span>Remove</span>\n </td> */}\n </tr>\n {Object.keys(perms.getRole(role)).map((row, idx) => (\n <tr key={'k' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getRole(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.roles.length === 0 && (\n <tr>\n <td colSpan=\"3\">No roles permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Permissions\n </h2>\n <Table headers={['Principal', 'Premission', 'Setting']}>\n {perms.principals.map((role, idx) => (\n <React.Fragment key={'f2' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrincipals(role)).map((row, idx) => (\n <tr key={'x' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrincipals(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.principals.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Roles\n </h2>\n <Table headers={['Principal', 'Role', 'Setting']}>\n {perms.prinrole.map((role, idx) => (\n <React.Fragment key={role + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrinroles(role)).map((row, idx) => (\n <tr key={'xx' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrinroles(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.prinrole.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals roles defined</td>\n </tr>\n )}\n </Table>\n </div>\n )}\n {ctx.hasPerm('guillotina.ChangePermissions') && (\n <AddPermission refresh={setReset} reset={reset} />\n )}\n </div>\n )\n}\n\nconst initial = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n currentObj: undefined,\n}\n\nconst operations = [\n { text: 'Allow', value: 'Allow' },\n { text: 'Deny', value: 'Deny' },\n { text: 'AllowSingle', value: 'AllowSingle' },\n { text: 'Unset', value: 'Unset' },\n]\n\nconst defaultOptions = [\n { text: 'Choose..', value: '' },\n { text: 'Role Permissions', value: 'roleperm' },\n { text: 'Principal Permissions', value: 'prinperm' },\n { text: 'Principal Roles', value: 'prinrole' },\n]\n\nexport function AddPermission({ refresh, reset }) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n React.useEffect(() => {\n async function init() {\n const permissions = (await Ctx.client.getAllPermissions(Ctx.path)).map(\n (perm) => ({\n text: perm,\n value: perm,\n })\n )\n let principals = []\n let roles = []\n\n let principalsData = await Ctx.client.getPrincipals(Ctx.path)\n const groups = principalsData.groups.map((group) => ({\n text: group.id,\n value: group.id,\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname,\n value: user.id,\n }))\n principals = [...groups, ...users]\n\n const req = await Ctx.client.getRoles(Ctx.path)\n if (req.ok) {\n roles = (await req.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">Add Permissions</h1>\n <p>Select a type:</p>\n <Select\n options={defaultOptions}\n onChange={(v) => setState({ current: v.target.value })}\n dataTest=\"selectPermissionTypeTest\"\n />\n <hr />\n {state.current && state.current === 'roleperm' && (\n <PermissionRoleperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinperm' && (\n <PermissionPrinperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinrole' && (\n <PermissionPrinrole\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\nimport { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\n\nconst prepareAvailable = (items, already, title) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n if (items[0] && typeof items[0] === 'string') {\n return [def]\n .concat(items.map((x) => ({ value: x, text: x })))\n .filter((item) => !already.includes(item.value))\n }\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}) {\n const selectRef = React.useRef()\n\n const [result, setResult] = React.useState(items)\n available = prepareAvailable(available || [], result, title)\n\n const remove = (value) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value) => {\n if (value === '') return\n const items = result.concat([value])\n setResult(items)\n onChange(items)\n }\n\n return (\n <React.Fragment>\n <h3 className=\"title is-size-6\">{title}</h3>\n {loading ? <Loading style={{ marginBottom: '1.5rem' }} /> : <hr />}\n <ul>\n <div className=\"tags\">\n {result.map((item) => (\n <Tag name={item} onRemove={() => remove(item)} key={item} />\n ))}\n </div>\n {result.length === 0 && (\n <li style={{ marginBottom: '20px' }}>{noData}</li>\n )}\n {available.length > 1 && (\n <li className=\"widget-list-add select is-small\">\n <Select\n options={available}\n ref={selectRef}\n onChange={(ev) => {\n addItem(ev.target.value)\n selectRef.current.value = ''\n }}\n />\n </li>\n )}\n </ul>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useEffect } from 'react'\n\nimport Dropdown from './input/dropdown'\nimport useSetState from '../hooks/useSetState'\nimport { Button } from './input/button'\nimport { Icon } from './ui/icon'\nimport { useTraversal } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useLocation } from '../hooks/useLocation'\nimport { Select } from './input/select'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const [state, setState] = useSetState(initialState)\n const Ctx = useTraversal()\n const Config = useConfig()\n useEffect(() => {\n ;(async function anyNameFunction() {\n const types = await Ctx.client.getTypes(Ctx.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n })()\n }, [Ctx.path])\n\n const doAction = (item) => {\n Ctx.doAction('addItem', { type: item })\n setState({ isActive: false })\n }\n\n if (state.types && state.types.length === 1) {\n return (\n <Button\n className={'is-small is-success'}\n onClick={() => doAction(state.types[0])}\n dataTest=\"itemAddTypeTest\"\n >\n Add {state.types[0]}\n </Button>\n )\n }\n\n if (state.types && state.types.length === 0) {\n return null\n }\n\n // Implement some kind of filtering\n return (\n <Dropdown\n id=\"dropdown-menu\"\n isRight\n onChange={doAction}\n options={(state.types || []).map((item) => ({ text: item, value: item }))}\n >\n <span className=\"icon\" data-test=\"itemAddTypeTest\">\n <i className=\"fas fa-plus\"></i>\n </span>\n </Dropdown>\n )\n}\n\nexport function ContextToolbar({ AddButton, ...props }) {\n const [state, setState] = useSetState(initialState)\n const [location, setLocation, del] = useLocation()\n const traversal = useTraversal()\n const ref = React.useRef(null)\n const Config = useConfig()\n\n const searchText = location.get('q')\n\n useEffect(() => {\n loadTypes()\n }, [traversal.path])\n async function loadTypes() {\n const types = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, tab: 'Items', page: 0 })\n ev.preventDefault()\n }\n\n const onSearchByType = (ev) => {\n const typeText = ev.target.value\n if (typeText && typeText !== '') {\n setLocation({ type: typeText, tab: 'Items', page: 0 })\n } else {\n del('type')\n }\n }\n\n // cleanup form on state.search change\n React.useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <React.Fragment>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n ref={ref}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder=\"Search...\"\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <div className=\"level-item\">\n <Select\n appendDefault\n dataTest=\"selectFilterTypeTest\"\n classWrap=\"is-size-7\"\n options={(state.types || []).map((item) => ({\n text: item,\n value: item,\n }))}\n onChange={onSearchByType}\n />\n </div>\n {traversal.hasPerm('guillotina.AddContent') && (\n <div className=\"level-item\">\n {AddButton !== undefined ? (\n <AddButton />\n ) : (\n <CreateButton {...props} />\n )}\n </div>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Notification } from './ui/notification'\nimport { Delete } from './ui/delete'\n\nexport function Flash() {\n const Ctx = useTraversal()\n const { flash } = Ctx.state\n\n if (!flash.message) return null\n\n return (\n <Notification isColor={flash.type}>\n {flash.message}\n <Delete onClick={() => Ctx.clearFlash()} />\n </Notification>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\n\nfunction FallbackTab({ title }) {\n return <div>Tab '{title}' not found</div>\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n ...props\n}) {\n const [location, setLocation] = useLocation()\n\n if (location.get('tab')) {\n currentTab = location.get('tab')\n } else {\n currentTab = currentTab || Object.keys(tabs)[0]\n }\n\n /*if (!Object.keys(tabs).includes(currentTab)) {\n setLocation(defaultTab)\n currentTab = defaultTab\n }*/\n\n const [current, setTab] = useState(currentTab)\n const CurrentComp = tabs[current] || fallback\n\n React.useEffect(() => {\n if (Object.keys(tabs).includes(currentTab)) {\n setTab(currentTab)\n // setLocation({tab: currentTab})\n }\n }, [currentTab, tabs])\n\n const changeTab = (tab) => {\n setLocation({ tab: tab })\n }\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"tabs\">\n <ul>\n {Object.keys(tabs).map((tab) => (\n <li\n className={\n 'is-size-7 ' + (tab === current ? 'is-active' : '')\n }\n key={tab}\n >\n <a\n data-test={`tabTest-${tab.toLowerCase()}`}\n onClick={() => changeTab(tab)}\n >\n {tab}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n {rightToolbar && <div className=\"level-right\">{rightToolbar}</div>}\n </div>\n <div className=\"container\">\n <CurrentComp title={current} {...props} />\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { useTraversal } from '../contexts'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n// import { PanelRequester } from \"../components/panel/requester\";\n\nconst tabs = {\n Items: PanelItems,\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n // Requester: PanelRequester,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n // Requester: \"guillotina.swagger.View\"\n}\n\nexport function FolderCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar {...props} />}\n {...props}\n />\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { useTraversal } from '../contexts'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelActions } from '../components/panel/actions'\n\nconst tabs = {\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n}\n\nexport function ItemCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return <TabsPanel tabs={calculated} currentTab=\"Properties\" {...props} />\n}\n","import React from 'react'\n\nimport { Item } from '../components/item'\nimport { ItemTitle } from '../components/item'\nimport { Button } from '../components/input/button'\nimport { useState } from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { Form } from '../components/input/form'\nimport { Input } from '../components/input/input'\n\nexport function ApplicationCtx(props) {\n const { databases } = props.state.context\n return (\n <React.Fragment>\n <h3>Databases</h3>\n <div className=\"container\">\n <ItemTitle title=\"Objects\" />\n {databases.map((db) => (\n <Item\n item={{ id: db, path: `/${db}/` }}\n key={db}\n icon={'fas fa-database'}\n />\n ))}\n </div>\n </React.Fragment>\n )\n}\n\nexport function DatabaseCtx({ state }) {\n const { containers } = state.context\n const { path } = state\n return (\n <React.Fragment>\n <div className=\"container\">\n <ItemTitle title=\"Containers\" actions={<CreateContainer />} />\n <table className=\"table is-fullwidth is-hoverable\">\n <tbody>\n {containers.map((db) => (\n <Item\n item={{ id: db, path: `${path}${db}/` }}\n key={db}\n icon={'fas fa-archive'}\n />\n ))}\n </tbody>\n </table>\n </div>\n </React.Fragment>\n )\n}\n\nexport function CreateContainer(props) {\n const [isActive, setActive] = useState(false)\n\n return (\n <React.Fragment>\n <ModalAddContainer isActive={isActive} setActive={setActive} {...props} />\n <button\n className=\"button is-warning is-pulled-right\"\n onClick={() => setActive(true)}\n >\n <span className=\"icon is-small\">\n <i className=\"fas fa-plus\"></i>\n </span>\n <span>Create</span>\n </button>\n </React.Fragment>\n )\n}\n\nfunction ModalAddContainer({ isActive, setActive }) {\n const Ctx = useTraversal()\n const [isLoading, setLoading] = useState(false)\n const [idField, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n async function createContainer() {\n setLoading(true)\n const data = {\n '@type': 'Container',\n id: idField,\n }\n try {\n const res = await Ctx.client.createObject(Ctx.path, data)\n const result = await res.json()\n if (res.status === 200) {\n Ctx.refresh()\n setId('')\n setLoading(false)\n setActive(false)\n Ctx.flash('Container created', 'primary')\n } else {\n setId('')\n setLoading(false)\n setError(result.message)\n }\n } catch {\n setError('Error-submitting-form')\n setLoading(false)\n }\n }\n\n return (\n <Modal isActive={isActive} setActive={setActive}>\n <Form onSubmit={createContainer} title=\"Add Container\" error={error}>\n <Input\n required\n placeholder=\"Container Name\"\n onChange={(v) => {\n setId(v)\n }}\n value={idField}\n loading={isLoading}\n />\n <Button loading={isLoading}>Add Container</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\n\nexport function PanelNotImplemented(props) {\n return (\n <div className=\"container\">\n <h2 className=\"title\">{props.title}</h2>\n <p>Not implemented</p>\n </div>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { PanelAddons } from '../components/panel/addons'\nimport { useTraversal } from '../contexts'\nimport { PanelNotImplemented } from './base'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n// import { PanelRequester } from \"../components/panel/requester\";\n\nconst tabs = {\n Items: PanelItems,\n Addons: PanelAddons,\n Registry: PanelNotImplemented,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n // Requester: PanelRequester\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Addons: 'guillotina.ManageAddons',\n Registry: 'guillotina.ReadConfiguration',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n // Requester: \"guillotina.swagger.View\"\n}\n\nexport function ContainerCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar {...props} />}\n {...props}\n />\n )\n}\n","import React from 'react'\nimport { FormBuilder } from '../components/input/form_builder'\n\nconst schema = {\n type: 'object',\n required: ['username', 'password'],\n properties: {\n username: {\n type: 'string',\n title: 'Username',\n },\n email: {\n type: 'string',\n title: 'Email',\n widget: 'email',\n },\n name: {\n type: 'string',\n title: 'Name',\n },\n password: {\n type: 'string',\n title: 'Password',\n widget: 'password',\n },\n disabled: {\n type: 'boolean',\n title: 'Disabled',\n },\n },\n}\n\nexport const UserForm = ({ isEdit = false, children, ...props }) => {\n const attr = isEdit ? {} : { title: 'Add User' }\n\n return (\n <FormBuilder schema={schema} {...props} {...attr}>\n {children}\n </FormBuilder>\n )\n}\n","import React from 'react'\n\n/*\n This hook allows to bind (remote) fields on the DOM\n to a form generated with Formbuilder.\n You can link whatever field you want...\n\n const [remoteFields, updateRemoteField] = useRemoteField({widget_1: ['a', 'b']})\n\n <Form remotes={remoteFields} onSubmit={ev => console.log(ev)}>\n <Input />\n </Form>\n\n <Widget onChange={updateRemoteField('widgte_1')}>\n\n This will add the values from a remote field into the desired widget\n\n*/\n\nexport const useRemoteField = (initial) => {\n const [remotes, setRemote] = React.useState(initial)\n\n const updateRemote = (name) => (value) => {\n setRemote({\n ...remotes,\n [name]: value,\n })\n }\n\n return [remotes, updateRemote]\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { UserForm } from '../forms/users'\nimport { formatDate } from '../lib/utils'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { TagsWidget } from '../components/widgets/tags'\nimport { Icon } from '../components/ui/icon'\nimport { Button } from '../components/input/button'\nimport { useRemoteField } from '../hooks/useRemoteField'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar(props) {\n const Ctx = useTraversal()\n\n return (\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'User' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-user\" />\n <span>Add a User</span>\n </button>\n )\n}\n\nexport function UsersCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Users\"\n rightToolbar={<UsersToolbar />}\n {...props}\n />\n )\n}\n\nexport function UserCtx() {\n const { Ctx, patch, loading } = useCrudContext()\n\n const [state, setState] = React.useState({ roles: [], gorups: [] })\n\n const fields = {\n user_groups: [],\n user_roles: Ctx.context.user_roles,\n }\n\n const [remotes, updateRemote] = useRemoteField(fields)\n\n React.useEffect(() => {\n ;(async () => {\n const [requestGetGroups, requestGetRoles] = await Promise.all([\n Ctx.client.search(Ctx.path, { type_name: 'Group' }, true),\n Ctx.client.getRoles(Ctx.path),\n ])\n\n let groups = requestGetGroups\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = await requestGetRoles.json()\n }\n\n setState({\n roles: roles,\n groups: groups.items.map((item) => ({\n value: item.id,\n text: item['@name'],\n })),\n })\n })()\n }, [])\n\n const updateObject = async (data) => {\n Ctx.apply(data)\n const { isError, errorMessage } = await patch(data)\n if (isError) {\n Ctx.flash(`Update failed: ${errorMessage}`, 'danger')\n } else {\n Ctx.flash('Data updated', 'primary')\n Ctx.refresh()\n }\n }\n\n return (\n <div className=\"container\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-user\"></Icon>\n User\n </h2>\n\n <hr />\n <div className=\"columns\">\n <div className=\"column\">\n <div className=\"container user-props\">\n <p>\n <label>Username: </label> {Ctx.context.username} (\n {Ctx.context.email})\n </p>\n <p>\n <label> Created: </label> {formatDate(Ctx.context.creation_date)}\n </p>\n <p>\n <label> Updated: </label>{' '}\n {formatDate(Ctx.context.modification_date)}\n </p>\n <Button\n className=\"is-size-7 is-info\"\n onClick={() => {\n Ctx.doAction('changePassword')\n }}\n >\n Change Password\n </Button>\n </div>\n <hr />\n <UserForm\n actionName=\"Save\"\n onSubmit={(ev) => updateObject(ev)}\n isEdit={true}\n formData={Ctx.context}\n exclude={['password']}\n remotes={remotes}\n submitButton={false}\n >\n <Button loading={loading} dataTest=\"formUserTestBtnSubmit\">\n Update\n </Button>\n </UserForm>\n </div>\n <div className=\"column\">\n <TagsWidget\n onChange={updateRemote('user_groups')}\n items={Ctx.context.user_groups}\n title=\"Groups\"\n noData=\"There is no groups for this user\"\n available={state.groups}\n />\n <hr />\n <TagsWidget\n onChange={updateRemote('user_roles')}\n items={remotes.user_roles}\n title=\"Roles\"\n noData=\"The user doesn't have any role\"\n available={state.roles}\n />\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\n\nconst withError = (res) => res.status >= 300\nexport function CopyItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function copyItems(path, form) {\n const responses = await Promise.all(\n items.map((item, i) => {\n const input = form[i + 1] || {}\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@duplicate`, {\n destination: path,\n new_id: input.value || getNewId(item.id),\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be copied to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not copied correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items copied!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={Ctx.client.clearContainerFromPath(Ctx.path)}\n onConfirm={copyItems}\n onCancel={() => Ctx.cancelAction()}\n >\n {items.map((item) => (\n <React.Fragment key={item.id}>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item.id}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item.id)}\n />\n </React.Fragment>\n ))}\n \n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\n\nexport function CopyItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const { item } = props\n\n async function copyItem(path, form) {\n const input = form[1] || {}\n const { isError, errorMessage } = await post(\n {\n destination: path,\n new_id: input.value || getNewId(item['@name']),\n },\n '@duplicate'\n )\n\n if (!isError) {\n Ctx.flash(`Field copied!`, 'success')\n } else {\n Ctx.flash(`Failed to copy item!: ${errorMessage}`, 'danger')\n }\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${item['parent']['@name'] ?? '/'}`}\n onConfirm={copyItem}\n onCancel={() => Ctx.cancelAction()}\n >\n <React.Fragment>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item['@name']}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item['@name'])}\n />\n </React.Fragment>\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\n\nconst withError = (res) => res.status >= 300\n\nexport function MoveItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function moveItems(path) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@move`, {\n destination: path,\n new_id: item['@name'],\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be moved to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not moved correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items moved!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItems}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function MoveItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path) {\n const { isError, errorMessage, result } = await post(\n {\n destination: path,\n new_id: item['@name'],\n },\n '@move'\n )\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(result['@url'])}/`,\n tab: '',\n })\n Ctx.flash(`Field moved!`, 'success')\n } else {\n Ctx.flash(`Failed to move item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function RemoveItem(props) {\n const Ctx = useTraversal()\n const { del, loading } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function removeItem() {\n const { isError, errorMessage } = await del()\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(item['parent']['@id'])}/`,\n tab: '',\n })\n Ctx.flash(`Field removed!`, 'success')\n } else {\n Ctx.flash(`Failed to delete item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItem}\n message={`Are you sure to remove: ${item['@name']}?`}\n />\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Input } from '../components/input/input'\nimport { Button } from '../components/input/button'\nimport { Form } from '../components/input/form'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword(props) {\n const [state, setState] = React.useState(initial)\n const [perror, setPerror] = React.useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n // const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n if (state.pass1 === '') {\n setPerror('provide a password')\n return\n }\n\n if (state.pass1 !== state.pass2) {\n setPerror(\"passwords doesn't match\")\n return\n }\n\n setPerror(undefined)\n\n let form = {\n password: state.pass1,\n }\n\n const { isError, errorMessage } = await patch(form)\n if (!isError) {\n Ctx.flash('Password Changed', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n const setPass = (field) => (val) => {\n let n = {}\n n[field] = val\n setState((state) => ({ ...state, ...n }))\n setPerror(undefined)\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Change'}\n title={'Change Password'}\n >\n {perror && (\n <div className=\"notification is-danger is-size-7\">\n <button className=\"delete\"></button>\n {perror}\n </div>\n )}\n <Input\n id=\"pass\"\n placeholder=\"New Password\"\n type=\"password\"\n value={state.pass1}\n onChange={setPass('pass1')}\n />\n\n <Input\n id=\"pass\"\n placeholder=\"Repeat Password\"\n type=\"password\"\n value={state.pass2}\n onChange={setPass('pass2')}\n />\n <Button>Change</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { Input } from '../components/input/input'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\n\nexport function BaseForm({ onSubmit, actionName, title, dataTest, loading }) {\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n const submit = () => {\n if (name === '') {\n setError('This field is required')\n return\n }\n onSubmit({ title: name, id })\n }\n\n const setTitle = (value) => {\n setId(stringToSlug(value))\n setName(value)\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n <Input\n id=\"title\"\n placeholder=\"Title\"\n required\n value={name}\n onChange={setTitle}\n autofocus\n error={error}\n dataTest=\"titleTestInput\"\n />\n\n <Input\n id=\"id\"\n placeholder=\"Id\"\n value={id}\n onChange={setId}\n dataTest=\"idTestInput\"\n />\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Icon } from '../components/ui/icon'\nimport { useEffect } from 'react'\nimport { useState } from 'react'\nimport { Select } from '../components/input/select'\nimport { SearchInput } from '../components/input/search_input'\nimport { Tag } from '../components/ui/tag'\nimport { parser } from '../lib/search'\nimport { EditableField } from '../components/fields/editableField'\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const Ctx = useTraversal()\n\n return (\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'Group' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-users\" />\n <span>Add a Group</span>\n </button>\n )\n}\n\nexport function GroupsCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\n {...props}\n />\n )\n}\n\nlet sortParsed = parser(`_sort_asc=id`)\nlet searchParsed = parser('type_name=User')\n\nexport function GroupCtx() {\n const { Ctx, patch } = useCrudContext()\n const [roles, setRoles] = useState([])\n\n useEffect(() => {\n ;(async () => {\n const requestGetRoles = await Ctx.client.getRoles(Ctx.path)\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = (await requestGetRoles.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n })()\n }, [])\n\n const handleResponse = async (isError, message, errorMessage) => {\n if (!isError) {\n Ctx.flash(message, 'success')\n Ctx.refresh()\n } else {\n Ctx.flash(`Failed to update!: ${errorMessage}`, 'danger')\n }\n }\n\n const addRole = async (ev) => {\n const role = ev.target.value\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.concat(role),\n })\n handleResponse(isError, `Role ${role} added to group`, errorMessage)\n }\n\n const removeRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.filter((r) => r !== role),\n })\n handleResponse(isError, `Role ${role} removed from group`, errorMessage)\n }\n\n const addUser = async (newUser) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUser.id] = true\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${newUser.title} added to group!`,\n errorMessage\n )\n }\n\n const removeUser = async (userToRemove) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = userToRemove !== user\n })\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${userToRemove} removed from group`,\n errorMessage\n )\n }\n\n return (\n <div className=\"container group-view\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-users\"></Icon>\n <span> Group</span>\n </h2>\n <hr />\n <div className=\"columns\">\n <div className=\"column is-4\">\n <label className=\"label\">Title: </label>\n <EditableField\n field=\"title\"\n modifyContent\n value={Ctx.context.title}\n />\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Roles</h3>\n <p>Add a Role</p>\n <Select\n options={roles.filter(\n (role) => !Ctx.context.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={addRole}\n />\n <hr />\n {Ctx.context.user_roles.map((urole) => (\n <p className=\"control\" key={`roles_${urole}`}>\n <Tag\n name={urole}\n onRemove={() => removeRole(urole)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Users</h3>\n <p>Add a User</p>\n <SearchInput\n path={Ctx.containerPath}\n qs={[...searchParsed, ...sortParsed]}\n traversal={Ctx}\n onChange={addUser}\n btnClass=\"is-small\"\n />\n <hr />\n {Ctx.context.users.map((user) => (\n <p className=\"control\" key={`user_${user}`}>\n <Tag\n name={user}\n onRemove={() => removeUser(user)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nexport default class ErrorBoundary extends React.Component {\n state = {}\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n errorMsg: error.message,\n errorStack: errorInfo.componentStack,\n })\n }\n\n render() {\n const { hasError, errorMsg, errorStack } = this.state\n\n if (hasError) {\n return (\n <div className=\"box main-panel\">\n <div style={style}>Something went wrong.</div>\n {errorMsg && (\n <p>\n <b>{errorMsg}</b>\n </p>\n )}\n {errorStack && <p>{errorStack}</p>}\n </div>\n )\n }\n\n return this.props.children\n }\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotAllowed() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-danger\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-ban\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">Not Allowed</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotFound() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-grey\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-dizzy\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">404. Not Found</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n let segments = ctx.path.replace(/\\/$/, '').split('/')\n let links = buildPaths(segments)\n\n if (segments.length === 1) {\n return false\n }\n\n return (\n <nav className=\"breadcrumb\" aria-label=\"breadcrumbs\">\n <ul>\n {segments.map((item, indx) => {\n const path = links[indx]\n const onClick = (e) => {\n if (window.event.ctrlKey || window.event.metaKey) return\n e.preventDefault()\n navigate({ path }, true)\n }\n\n return indx === 0 ? (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-home`}\n >\n <span className=\"icon\">\n <i className=\"fas fa-home\"></i>\n </span>\n </a>\n </li>\n ) : (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-${item.toLowerCase()}`}\n >\n {item}\n </a>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nconst buildPaths = (segments) => {\n let current = ''\n let results = []\n segments.map((item, indx) => {\n if (indx === 0) {\n current += '/'\n } else {\n current += item + '/'\n }\n results.push(current)\n return item\n })\n return results\n}\n","import React from 'react'\nimport { Textarea } from '../input/textarea'\nimport { Checkbox } from '../input/checkbox'\nimport { FileUpload } from '../input/upload'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { InputList } from '../input/input_list'\nimport { get } from '../../lib/utils'\n\nexport const EditComponent = React.forwardRef(\n ({ schema, val, setValue, dataTest, className, ...rest }, ref) => {\n if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={val || ''}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n value={!!val}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'array') {\n return (\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'file') {\n return (\n <FileUpload\n onChange={(ev) => setValue(ev)}\n label={get(val, 'filename', null)}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'select') {\n return (\n <Select\n value={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n {...rest}\n options={schema?.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n onChange={(ev) => {\n const selectValue = get(ev, 'target.value', '')\n return setValue(selectValue)\n }}\n />\n )\n }\n const getInputType = () => {\n switch (schema?.type) {\n case 'integer':\n return 'number'\n case 'date':\n return 'date'\n case 'datetime':\n return 'datetime-local'\n default:\n return 'text'\n }\n }\n return (\n <Input\n value={val || ''}\n className={className}\n dataTest={dataTest}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n type={getInputType()}\n {...rest}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","import { FolderCtx } from '../views/folder'\nimport { ItemCtx } from '../views/item'\nimport { ApplicationCtx } from '../views/application'\nimport { DatabaseCtx } from '../views/application'\nimport { ContainerCtx } from '../views/container'\nimport { UsersCtx } from '../views/users'\nimport { UserCtx } from '../views/users'\nimport { CopyItems } from '../actions/copy_items'\nimport { CopyItem } from '../actions/copy_item'\nimport { MoveItems } from '../actions/move_items'\nimport { MoveItem } from '../actions/move_item'\nimport { RemoveItems } from '../actions/remove_items'\nimport { RemoveItem } from '../actions/remove_item'\nimport { AddItem } from '../actions/add_item'\nimport { ChangePassword } from '../actions/change_pass'\nimport { BaseForm } from '../forms/base'\nimport { UserForm } from '../forms/users'\nimport { IAttachment } from '../components/behaviors/iattachment'\nimport { IDublinCore } from '../components/behaviors/idublincore'\nimport { IMultiAttachment } from '../components/behaviors/imultiattachment'\nimport { GroupsCtx } from '../views/groups'\nimport { GroupCtx } from '../views/groups'\nimport ErrorBoundary from '../components/error_boundary'\nimport React from 'react'\nimport { NotAllowed } from '../components/notallowed'\nimport { NotFound } from '../components/notfound'\nimport { Path } from '../components/path'\nimport { EditComponent } from '../components/fields/editComponent'\nimport { RenderFieldComponent } from '../components/fields/renderField'\n\nlet registry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n RenderFieldComponent: RenderFieldComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n}\n\nconst get = (key, param, fallback) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback) => {\n if (!context) return\n // console.log(\"Component for path\", path)\n // lookup by path\n if (registry.paths[path]) {\n return registry.paths[path]\n }\n // by type\n if (registry.views[context['@type']]) {\n return registry.views[context['@type']]\n }\n if (fallback) {\n return fallback\n }\n return defaultComponent(context)\n}\n\nconst getItemsColumn = (type) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getForm = (type, fallback = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type, fallback) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type, fallback) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type) => {\n return registry.properties[type] || {}\n}\n\nexport const defaultComponent = (context) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data) {\n // if data is provided we need to merge it into actual registry\n const ref = React.useRef()\n if (data && !ref.current) {\n console.log('registry initialized')\n ref.current = true\n Object.keys(data).map(\n (key) => (registry[key] = { ...registry[key], ...data[key] })\n )\n }\n\n return {\n registry,\n get,\n getForm,\n getComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n }\n}\n\n/*\n\nconst registry = {\n paths: {\n \"/db/guillotina/tags/\": TagsContext\n },\n forms: {\n Tag: AddTagForm\n }\n}\n\n\n<guillotina registry={registry} />\n\n\n*/\n","export const initialState = {\n path: '',\n loading: false,\n context: undefined,\n flash: {\n message: undefined,\n type: undefined,\n },\n action: {\n action: undefined,\n params: undefined,\n },\n permissions: undefined,\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport function guillotinaReducer(state, action) {\n switch (action.type) {\n case 'SET_PATH':\n return { ...state, path: action.payload, loading: true }\n\n case 'SET_CONTEXT':\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case 'SET_ERROR':\n return { ...state, errorStatus: action.payload, loading: false }\n\n case 'SET_FLASH':\n return { ...state, ...action.payload }\n\n case 'CLEAR_FLASH':\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case 'SET_ACTION':\n return { ...state, action: action.payload }\n case 'CLEAR_ACTION':\n return { ...state, action: { action: undefined, params: undefined } }\n\n case 'REFRESH':\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case 'APPLY':\n return { ...state, context: { ...state.context, ...action.payload } }\n\n default:\n return state\n }\n}\n","import React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport { guillotinaReducer } from '../reducers/guillotina'\nimport { initialState } from '../reducers/guillotina'\nimport { Loading } from './ui/loading'\n\nexport function Guillotina({ auth, ...props }) {\n const url = props.url || 'http://localhost:8080' // without trailing slash\n const config = props.config || {}\n const client = useGuillotinaClient()\n\n const { Permissions } = useConfig(config)\n const registry = useRegistry(props.registry || {})\n // Location is cooked routing solution (only uses search params)\n const [location] = useLocation()\n\n // if there is no path provided just go to root\n const searchPath = location.get('path') || '/'\n if (searchPath && searchPath !== '') {\n initialState.path = searchPath\n }\n\n const [state, dispatch] = useReducer(guillotinaReducer, initialState)\n\n const { path, refresh } = state\n\n useEffect(() => {\n dispatch({ type: 'SET_PATH', payload: searchPath })\n }, [searchPath])\n\n useEffect(() => {\n ;(async () => {\n let data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({ type: 'SET_ERROR', payload: 'notallowed' })\n return\n } else if (data.status === 404) {\n dispatch({ type: 'SET_ERROR', payload: 'notfound' })\n return\n }\n let context = await data.json()\n const pr = await client.canido(path, Permissions)\n const permissions = await pr.json()\n dispatch({ type: 'SET_CONTEXT', payload: { context, permissions } })\n })()\n }, [path, refresh, client])\n\n const ErrorBoundary = registry.get('views', 'ErrorBoundary')\n const NotAllowed = registry.get('views', 'NotAllowed')\n const NotFound = registry.get('views', 'NotFound')\n const Path = registry.get('components', 'Path')\n\n const contextData = {\n url,\n client,\n auth,\n state,\n dispatch,\n registry,\n flash: config.flash,\n }\n\n const { action, errorStatus, permissions } = state\n const Main = registry.getComponent(state.context, path)\n const Action = action.action ? registry.getAction(action.action) : null\n\n return (\n <ErrorBoundary>\n {!errorStatus && (\n <TraversalProvider {...contextData}>\n {permissions && (\n <React.Fragment>\n {action.action && <Action {...action.params} />}\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <Path />\n </div>\n </div>\n </div>\n <Flash />\n {Main && (\n <ErrorBoundary>\n <div className=\"box main-panel\">\n {state.loading && <Loading />}\n {!state.loading && <Main state={state} />}\n </div>\n </ErrorBoundary>\n )}\n {/* <p>Guillotina {JSON.stringify(state.context)}</p> */}\n </React.Fragment>\n )}\n </TraversalProvider>\n )}\n {errorStatus === 'notallowed' && <NotAllowed />}\n {errorStatus === 'notfound' && <NotFound />}\n </ErrorBoundary>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function Layout({ children, onLogout, auth }) {\n const doLogout = (ev) => {\n auth.logout()\n onLogout()\n }\n\n return (\n <React.Fragment>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\">\n <a className=\"navbar-item\" href=\"/\">\n <img\n src={process.env.PUBLIC_URL + '/logo.svg'}\n alt=\"Guillotina logo\"\n height=\"80\"\n />\n </a>\n <a\n id=\"burger\"\n href=\"/\"\n role=\"button\"\n className=\"navbar-burger burger\"\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </a>\n </div>\n <div id=\"navbarmenu\" className=\"navbar-menu\">\n <div className=\"navbar-start\"></div>\n <div className=\"navbar-end\">\n <div className=\"navbar-item\">\n {auth.isLogged && (\n <div className=\"buttons\">\n <button className=\"button is-size-7\" onClick={doLogout}>\n <Icon icon=\"fas fa-sign-out-alt\" size=\"is-size-7\" />\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </nav>\n </header>\n <section className=\"section main\">\n <div className=\"container\">\n <div className=\"column\">{children}</div>\n </div>\n </section>\n </React.Fragment>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}) => {\n const [state, setState] = useSetState(initialState)\n const inputRef = useRef(null)\n\n useEffect(() => {\n if (inputRef) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev) => {\n ev.preventDefault()\n setState({ loading: true, errors: undefined })\n const { username, password } = state\n\n if (currentSchema !== '') {\n auth.setAccount(currentSchema)\n }\n const res = await auth.login(username, password)\n\n if (!res) {\n setState({ errors: auth.errors, loading: false })\n return\n }\n\n if (onLogin) {\n onLogin()\n }\n }\n\n return (\n <React.Fragment>\n <form\n className=\"login__form\"\n action=\"\"\n onSubmit={doLogin}\n data-test=\"formLoginTest\"\n >\n <div className=\"field\">\n <label className=\"label\">Username:</label>\n <input\n type=\"text\"\n className=\"input\"\n placeholder=\"Username\"\n onChange={(e) => setState({ username: e.target.value })}\n value={state.username}\n ref={inputRef}\n data-test=\"inputUsernameLoginTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Password:</label>\n <input\n type=\"password\"\n className=\"input\"\n placeholder=\"Password\"\n onChange={(e) => setState({ password: e.target.value })}\n value={state.password}\n data-test=\"inputPasswordLoginTest\"\n />\n </div>\n {schemas && schemas.length > 1 && (\n <div className=\"field\">\n <label className=\"label\">Schema:</label>\n <div className=\"select\">\n <select\n data-test=\"selectSchemaTest\"\n onChange={(e) => setCurrentSchema(e.target.value)}\n >\n {schemas.map((s) => (\n <option value={s} key={s}>\n {s}\n </option>\n ))}\n </select>\n </div>\n </div>\n )}\n <div className=\"field\">\n <button\n className=\"button is-warning\"\n type=\"submit\"\n data-test=\"btnLoginTest\"\n >\n Login\n </button>\n </div>\n <div className=\"field\">\n {state.errors && (\n <p className=\"has-text-danger\">\n {ERRORS[state.errors] || 'Generic error'}\n </p>\n )}\n </div>\n </form>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useTraversal } from '../contexts'\nimport useSetState from '../hooks/useSetState'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}) {\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n ;(async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, type)\n setSchema({\n loading: false,\n data: dataJson,\n formFields: [...dataJson.required, ...extraFields],\n })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n })()\n }, [schema])\n\n const submit = () => {\n const currentErrors = {}\n\n schema.formFields.forEach((key) => {\n if (!formData[key]) {\n currentErrors[key] = 'This field is required'\n }\n })\n\n if (Object.keys(currentErrors).length > 0) {\n setErrors(currentErrors)\n return\n }\n\n onSubmit({ id: formData.uuid, ...formData })\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n {schema &&\n schema.data &&\n !schema.loading &&\n schema.formFields.map((key) => {\n if (!ignoreFiels.includes(key)) {\n const value = schema.data.properties[key]\n return (\n <EditComponent\n key={key}\n id={key}\n placeholder={value?.title ?? ''}\n className=\"\"\n required\n schema={schema.data.properties[key]}\n setValue={(ev) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n [key]: ev,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n })\n } else {\n setFormData({ ...formData, [key]: ev })\n }\n }}\n error={errors[key]}\n dataTest={`${key}TestInput`}\n val={key in formData ? formData[key] : ''}\n />\n )\n }\n return null\n })}\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import jwt_decode from 'jwt-decode'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n\n constructor(url) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account) {\n this.url = this.base_url + account\n }\n\n async login(username, password) {\n const url = this.getUrl('@login')\n try {\n const data = await fetch(url, {\n method: 'post',\n body: JSON.stringify({\n username: username,\n password: password,\n }),\n })\n if (data.status === 200) {\n const credentials = await data.json()\n this.storeAuth(credentials, username)\n return true\n } else {\n this.errors = 'invalid_credentials'\n }\n } catch (e) {\n this.errors = 'failed_to_fetch'\n return false\n }\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n return false\n }\n\n get isLogged() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token, expires] = this._getToken()\n if (!token || !expires) {\n return false\n }\n if (this.isExpired(expires)) {\n return false\n }\n return true\n }\n\n get username() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token] = this._getToken()\n const data = jwt_decode(token)\n console.log(token)\n return data.id\n }\n\n storeAuth(data) {\n localStorage.setItem('auth', data.token)\n localStorage.setItem('auth_expires', data.exp)\n }\n\n cleanAuth() {\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n }\n\n logout() {\n this.cleanAuth()\n }\n\n async refreshToken() {\n console.log('refresh!!!')\n this.retryRefresh++\n let data = await fetch(this.getUrl('@login-renew'), {\n headers: this.getHeaders(),\n method: 'post',\n })\n if (data.status === 401) {\n // invalid token\n this.cleanAuth()\n this.onLogout()\n return\n }\n const res = await data.json()\n console.log('refresh data', res)\n this.storeAuth(res)\n console.log('token refreshed')\n this.retryRefresh = 0\n return data.token\n }\n\n willExpire(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 < now + 10 * 1000) {\n return true\n }\n return false\n }\n\n isExpired(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 > now) {\n return false\n }\n return true\n }\n\n _getToken() {\n return [localStorage.getItem('auth'), localStorage.getItem('auth_expires')]\n }\n\n getToken() {\n const [token] = this._getToken()\n return token\n }\n\n getHeaders() {\n const [authToken, expires] = this._getToken()\n if (!authToken) return {}\n\n if (this.willExpire(expires) && this.retryRefresh < this.maxRetry) {\n ;(async () => await this.refreshToken())()\n }\n\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n}\n"],"names":["AuthContext","createContext","ClientContext","TraversalContext","Traversal","flash","props","Object","assign","refresh","transparent","dispatch","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","state","permissions","filterTabs","tabs","tabsPermissions","result","keys","forEach","item","perm","path","slice","context","client","getContainerFromPath","TraversalProvider","children","useTraversal","React","useContext","ClientProvider","useGuillotinaClient","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","Button","className","onClick","loading","disabled","dataTest","rest","css","concat","split","Modal","isActive","setActive","usePortal","Portal","Confirm","onCancel","onConfirm","marginTop","PathTree","title","defaultPath","e","preventDefault","target","value","display","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","Function","_catch","body","recover","then","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","newState","console","error","del","delete","post","get","req","useCrudContext","AddItem","doSubmit","form","formData","getForm","registry","Form","err","log","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","Array","isArray","useConfig","cfg","ref","useRef","getId","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","Checkbox","id","classNameInput","indeterminate","placeholder","onChange","inputRef","useEffect","updateState","ev","checked","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","icon","iconPosition","errorZoneClassName","autoComplete","required","autofocus","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","arrayOf","oneOf","autoFocus","bool","isSubmitted","name","onKeyDown","onKeyUp","onPressEnter","readOnly","oneOfType","number","Icon","align","addClass","EmailInput","onSubmit","onReset","handleSubmit","event","isRequired","PasswordInput","formComponents","password","boolean","email","FormBuilder","actionName","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","label","displayName","children_","Children","child","cloneElement","changes","Select","options","size","classWrap","multiple","appendDefault","style","text","cssWrap","index","toString","object","RestClient","url","container","auth","request","headers","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","put","upload","filename","Loading","onRemove","color","Delete","Table","idx","Notification","isColor","setURLParams","p","history","pathname","clean","URLSearchParams","_key","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","events","addEventListener","removeEventListener","navigate","remove","param","patched","arguments","Event","dispatchEvent","location","search","Link","aRef","model","aStyle","textDecoration","stopPropagation","actAsLink","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","lastKey","part","val","buildQs","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","m","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","create","file","download","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","gr","usr","getRoles","getAllPermissions","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","Textarea","rows","debounce","wait","timeout","args","later","clearTimeout","page","SearchInput","traversal","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","searchTermQs","searchTermParsed","fnName","qsParsed","newItems","renderTextItemOptionFn","currentTarget","contains","relatedTarget","InputList","inputValue","setInputValue","addTags","React.createElement","tag","defaultEvents","on","obj","off","useClickAway","onClickAway","savedCallback","handler","el","eventName","document","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","RenderFieldComponent","canModified","saveField","unescape","dataPatch","deleteField","enum","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","href","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_EDITABLE_FIELD","DEFAULT_VALUE_NO_EDITABLE_FIELD","getRenderProps","renderProps","toLocaleString","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","editableFields","IDublinCore","ACTIONS_OBJECT","DELETE","perms","MOVE","COPY","PanelActions","some","onAction","actionKey","React.Fragment","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callback","callId","useAsync","PanelAddons","setAction","pathPrefix","prepareData","available","addon","installed","addons","arrayToObject","array","PanelBehaviors","ops","enableBehavior","disableBehavior","static","dynamic","ItemsActionsCtx","ItemsActionsProvider","selected","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","marginLeft","ItemCheckbox","absId","ItemsActionsDropdown","every","v","o","Pagination","total","doPaginate","pager","maxPages","Math","ceil","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","role","principal","getPrinroles","ItemModel","_path","splice","icons","_url","type_name","creation_date","modification_date","Item","RItem","columns","ItemTitle","SearchLabels","clearSearch","PanelItems","setLocation","searchParsed","typeParsed","BehaviorsView","getBehavior","behaviors","__behaviors__","GetBehavior","b","Cls","BehaviorNotImplemented","PropertiesButtonView","getProperties","Props","Buttons","Element","PropertiesView","Panels","_showProperties","_ignoreFields","PanelProperties","setSchema","showProperties","properties_default","ignoreFields","properties_ignore_fields","dataJson","prop","PermissionPrinperm","principals","operations","setting","getMultiples","setter","selectedOptions","savePermission","random","PermissionPrinrole","roles","PermissionRoleperm","PanelPermissions","ctx","reset","setReset","row","currentObj","defaultOptions","AddPermission","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","onSearchQuery","q","tab","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","databases","db","DatabaseCtx","containers","CreateContainer","ModalAddContainer","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","username","UserForm","attr","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","gorups","user_groups","user_roles","requestGetGroups","requestGetRoles","updateObject","withError","CopyItems","copyItems","input","destination","new_id","responses","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","setPerror","perror","setPass","n","BaseForm","setName","submit","setTitle","Groups","GroupToolbar","GroupsCtx","sortParsed","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundary","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","Component","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","vocabulary","selectValue","getInputType","paths","views","Application","Database","Container","UserManager","User","Group","GroupManager","Folder","changePassword","forms","itemsColumn","schemas","components","searchEngineQueryParamsFunction","PostreSQL","Elasticsearch","getComponent","defaultComponent","funcCols","getAction","is_folderish","useRegistry","errorStatus","guillotinaReducer","now","Guillotina","config","searchPath","useReducer","pr","contextData","Main","Action","Layout","onLogout","doLogout","logout","process","env","PUBLIC_URL","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","s","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","localStorage","credentials","storeAuth","setItem","token","exp","cleanAuth","refreshToken","willExpire","expiration","getTime","isExpired","_getToken","getItem","expires","jwt_decode"],"mappings":"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"}
|