@guillotinaweb/react-gmi 0.18.0
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 +210 -0
- package/LICENSE +23 -0
- package/README.md +126 -0
- package/dist/actions/add_item.d.ts +1 -0
- package/dist/actions/change_pass.d.ts +1 -0
- package/dist/actions/copy_item.d.ts +1 -0
- package/dist/actions/copy_items.d.ts +1 -0
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/move_item.d.ts +1 -0
- package/dist/actions/move_items.d.ts +1 -0
- package/dist/actions/remove_item.d.ts +1 -0
- package/dist/actions/remove_items.d.ts +1 -0
- package/dist/components/Link.d.ts +6 -0
- package/dist/components/TdLink.d.ts +5 -0
- package/dist/components/behavior_view.d.ts +5 -0
- package/dist/components/behaviors/iattachment.d.ts +4 -0
- package/dist/components/behaviors/idublincore.d.ts +4 -0
- package/dist/components/behaviors/imultiattachment.d.ts +4 -0
- package/dist/components/context_toolbar.d.ts +5 -0
- package/dist/components/error_boundary.d.ts +5 -0
- package/dist/components/error_zone.d.ts +13 -0
- package/dist/components/fields/downloadField.d.ts +3 -0
- package/dist/components/fields/editComponent.d.ts +2 -0
- package/dist/components/fields/editableField.d.ts +10 -0
- package/dist/components/fields/renderField.d.ts +4 -0
- package/dist/components/flash.d.ts +1 -0
- package/dist/components/guillotina.d.ts +4 -0
- package/dist/components/index.d.ts +48 -0
- package/dist/components/input/button.d.ts +10 -0
- package/dist/components/input/checkbox.d.ts +17 -0
- package/dist/components/input/dropdown.d.ts +10 -0
- package/dist/components/input/email.d.ts +5 -0
- package/dist/components/input/form.d.ts +20 -0
- package/dist/components/input/form_builder.d.ts +12 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/input.d.ts +1 -0
- package/dist/components/input/input_list.d.ts +1 -0
- package/dist/components/input/password.d.ts +4 -0
- package/dist/components/input/search_input.d.ts +25 -0
- package/dist/components/input/select.d.ts +1 -0
- package/dist/components/input/textarea.d.ts +1 -0
- package/dist/components/input/upload.d.ts +5 -0
- package/dist/components/item.d.ts +13 -0
- package/dist/components/layout.d.ts +5 -0
- package/dist/components/login.d.ts +14 -0
- package/dist/components/modal.d.ts +14 -0
- package/dist/components/notallowed.d.ts +1 -0
- package/dist/components/notfound.d.ts +1 -0
- package/dist/components/pagination.d.ts +6 -0
- package/dist/components/panel/actions.d.ts +24 -0
- package/dist/components/panel/addons.d.ts +1 -0
- package/dist/components/panel/behaviors.d.ts +1 -0
- package/dist/components/panel/index.d.ts +1 -0
- package/dist/components/panel/items.d.ts +1 -0
- package/dist/components/panel/permissions.d.ts +5 -0
- package/dist/components/panel/permissions_prinperm.d.ts +6 -0
- package/dist/components/panel/permissions_prinrole.d.ts +6 -0
- package/dist/components/panel/permissions_roleperm.d.ts +6 -0
- package/dist/components/panel/properties.d.ts +1 -0
- package/dist/components/panel/requester.d.ts +1 -0
- package/dist/components/path.d.ts +1 -0
- package/dist/components/properties_view.d.ts +2 -0
- package/dist/components/searchLabels.d.ts +1 -0
- package/dist/components/selected_items_actions.d.ts +32 -0
- package/dist/components/tabs.d.ts +11 -0
- package/dist/components/ui/delete.d.ts +5 -0
- package/dist/components/ui/icon.d.ts +5 -0
- package/dist/components/ui/index.d.ts +6 -0
- package/dist/components/ui/loading.d.ts +3 -0
- package/dist/components/ui/notification.d.ts +4 -0
- package/dist/components/ui/table.d.ts +5 -0
- package/dist/components/ui/tag.d.ts +6 -0
- package/dist/components/widgets/index.d.ts +1 -0
- package/dist/components/widgets/tags.d.ts +8 -0
- package/dist/contexts/index.d.ts +13 -0
- package/dist/css/style.css +7792 -0
- package/dist/forms/base.d.ts +7 -0
- package/dist/forms/required_fields.d.ts +8 -0
- package/dist/forms/users.d.ts +5 -0
- package/dist/hooks/useAsync.d.ts +1 -0
- package/dist/hooks/useAsyncFn.d.ts +3 -0
- package/dist/hooks/useClickAway.d.ts +1 -0
- package/dist/hooks/useConfig.d.ts +15 -0
- package/dist/hooks/useCrudContext.d.ts +1 -0
- package/dist/hooks/useInput.d.ts +7 -0
- package/dist/hooks/useLocation.d.ts +1 -0
- package/dist/hooks/useMountedState.d.ts +1 -0
- package/dist/hooks/useRegistry.d.ts +90 -0
- package/dist/hooks/useRemoteField.d.ts +1 -0
- package/dist/hooks/useSetState.d.ts +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/lib/auth.d.ts +31 -0
- package/dist/lib/client.d.ts +49 -0
- package/dist/lib/helpers.d.ts +7 -0
- package/dist/lib/rest.d.ts +21 -0
- package/dist/lib/search.d.ts +2 -0
- package/dist/lib/search.test.d.ts +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/validators.d.ts +12 -0
- package/dist/models/index.d.ts +17 -0
- package/dist/models/sharing.d.ts +9 -0
- package/dist/react-gmi.esm.js +7521 -0
- package/dist/react-gmi.esm.js.map +1 -0
- package/dist/react-gmi.js +7658 -0
- package/dist/react-gmi.js.map +1 -0
- package/dist/react-gmi.modern.js +6163 -0
- package/dist/react-gmi.modern.js.map +1 -0
- package/dist/react-gmi.umd.js +7660 -0
- package/dist/react-gmi.umd.js.map +1 -0
- package/dist/reducers/guillotina.d.ts +19 -0
- package/dist/setupTests.d.ts +1 -0
- package/dist/views/application.d.ts +5 -0
- package/dist/views/base.d.ts +1 -0
- package/dist/views/container.d.ts +1 -0
- package/dist/views/folder.d.ts +1 -0
- package/dist/views/groups.d.ts +3 -0
- package/dist/views/item.d.ts +1 -0
- package/dist/views/users.d.ts +3 -0
- package/package.json +78 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-gmi.modern.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 return {\n groups: await gr.json(),\n users: 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'\n\nexport function PermissionPrinperm({\n groups,\n permissions,\n operations,\n refresh,\n}) {\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 const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n await post(data, '@sharing', false)\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={groups}\n onChange={(ev) => setState({ principal: ev.target.value })}\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 />\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 />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\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'\n\nexport function PermissionPrinrole({ groups, roles, operations, refresh }) {\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 const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n await post(data, '@sharing', false)\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={groups}\n onChange={(ev) => setState({ principal: ev.target.value })}\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 />\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 />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\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'\n\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}) {\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 const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n await post(data, '@sharing', false)\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 />\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 />\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 />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\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 className=\"column is-8 is-size-7 permissions\">\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 groups: undefined,\n roles: [],\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 req = await Ctx.client.getGroups(Ctx.path)\n let groups = []\n let roles = []\n if (req.ok) {\n groups = (await req.json()).map((group) => ({\n text: group.id,\n value: group.id,\n }))\n }\n\n 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, groups, roles })\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 />\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 '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","constructor","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","update","useState","currentSearchParams","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","gr","usr","all","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","state","pathPrefix","context","message","scrollTo","top","left","behavior","clearFlash","doAction","action","cancelAction","hasPerm","filterTabs","tabs","tabsPermissions","perm","TraversalProvider","useTraversal","React","useContext","ClientProvider","client","useGuillotinaClient","Button","loading","disabled","dataTest","css","Modal","isActive","setActive","Portal","usePortal","Confirm","onCancel","onConfirm","marginTop","PathTree","title","defaultPath","value","margin","useSetState","initialState","setState","prevState","Function","initial","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","ready_body","Ctx","newState","error","del","useCrudContext","AddItem","getForm","registry","Form","doSubmit","form","formData","err","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","calculated","addConfig","additional","useConfig","cfg","ref","getId","RemoveItems","setLoading","last","itemsNames","removeItems","errors","actions","ok","push","errorstr","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","then","useAsync","PanelAddons","setAction","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","roles","getRole","role","principals","principal","getPrinroles","ItemModel","_path","splice","icons","fullPath","_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","operations","setting","getMultiples","setter","selectedOptions","savePermission","random","PermissionPrinrole","PermissionRoleperm","PanelPermissions","ctx","reset","setReset","row","currentObj","defaultOptions","AddPermission","init","group","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","AddButton","searchText","loadTypes","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","isLoading","idField","setId","createContainer","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","responses","input","destination","new_id","display","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","perror","setPerror","setPass","n","BaseForm","setName","submit","setTitle","Groups","GroupToolbar","GroupsCtx","sortParsed","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","user","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundary","Component","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","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","credentials","storeAuth","localStorage","token","expires","_getToken","isExpired","jwt_decode","setItem","exp","cleanAuth","refreshToken","willExpire","expiration","getTime","getItem"],"mappings":"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"}
|