@guillotinaweb/react-gmi 0.23.1 → 0.24.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.
Files changed (102) hide show
  1. package/README.md +9 -0
  2. package/dist/actions/add_item.d.ts +1 -1
  3. package/dist/actions/change_pass.d.ts +1 -1
  4. package/dist/actions/copy_item.d.ts +1 -1
  5. package/dist/actions/copy_items.d.ts +1 -1
  6. package/dist/actions/move_item.d.ts +1 -1
  7. package/dist/actions/move_items.d.ts +1 -1
  8. package/dist/actions/remove_item.d.ts +1 -1
  9. package/dist/actions/remove_items.d.ts +1 -1
  10. package/dist/components/Link.d.ts +1 -1
  11. package/dist/components/TdLink.d.ts +1 -1
  12. package/dist/components/behavior_view.d.ts +2 -2
  13. package/dist/components/behaviors/iattachment.d.ts +1 -1
  14. package/dist/components/behaviors/idublincore.d.ts +1 -1
  15. package/dist/components/behaviors/iimageattachment.d.ts +4 -0
  16. package/dist/components/behaviors/imultiattachment.d.ts +1 -1
  17. package/dist/components/behaviors/imultiimageattachment.d.ts +4 -0
  18. package/dist/components/behaviors/imultiimageorderedattachment.d.ts +4 -0
  19. package/dist/components/behaviors/iworkflow.d.ts +1 -0
  20. package/dist/components/context_toolbar.d.ts +2 -2
  21. package/dist/components/error_boundary.d.ts +4 -5
  22. package/dist/components/error_zone.d.ts +1 -1
  23. package/dist/components/fields/downloadField.d.ts +2 -1
  24. package/dist/components/fields/editableField.d.ts +1 -1
  25. package/dist/components/fields/renderField.d.ts +1 -3
  26. package/dist/components/flash.d.ts +1 -1
  27. package/dist/components/guillotina.d.ts +3 -2
  28. package/dist/components/index.d.ts +7 -2
  29. package/dist/components/input/button.d.ts +1 -1
  30. package/dist/components/input/checkbox.d.ts +1 -1
  31. package/dist/components/input/dropdown.d.ts +1 -1
  32. package/dist/components/input/email.d.ts +1 -1
  33. package/dist/components/input/form.d.ts +1 -1
  34. package/dist/components/input/form_builder.d.ts +1 -1
  35. package/dist/components/input/input_list.d.ts +2 -1
  36. package/dist/components/input/password.d.ts +1 -1
  37. package/dist/components/input/search_input.d.ts +1 -1
  38. package/dist/components/input/select_vocabulary.d.ts +1 -0
  39. package/dist/components/input/upload.d.ts +1 -1
  40. package/dist/components/item.d.ts +3 -3
  41. package/dist/components/layout.d.ts +1 -1
  42. package/dist/components/login.d.ts +1 -1
  43. package/dist/components/modal.d.ts +3 -3
  44. package/dist/components/notallowed.d.ts +1 -1
  45. package/dist/components/notfound.d.ts +1 -1
  46. package/dist/components/pagination.d.ts +1 -1
  47. package/dist/components/panel/actions.d.ts +1 -24
  48. package/dist/components/panel/addons.d.ts +1 -1
  49. package/dist/components/panel/behaviors.d.ts +1 -1
  50. package/dist/components/panel/items.d.ts +1 -1
  51. package/dist/components/panel/permissions.d.ts +2 -2
  52. package/dist/components/panel/permissions_prinperm.d.ts +1 -1
  53. package/dist/components/panel/permissions_prinrole.d.ts +1 -1
  54. package/dist/components/panel/permissions_roleperm.d.ts +1 -1
  55. package/dist/components/panel/properties.d.ts +1 -1
  56. package/dist/components/path.d.ts +1 -1
  57. package/dist/components/search_labels.d.ts +1 -0
  58. package/dist/components/search_options_labels.d.ts +1 -0
  59. package/dist/components/search_vocabulary_labels.d.ts +1 -0
  60. package/dist/components/selected_items_actions.d.ts +4 -27
  61. package/dist/components/tabs.d.ts +2 -2
  62. package/dist/components/ui/delete.d.ts +1 -1
  63. package/dist/components/ui/icon.d.ts +1 -1
  64. package/dist/components/ui/loading.d.ts +1 -1
  65. package/dist/components/ui/notification.d.ts +1 -1
  66. package/dist/components/ui/table.d.ts +1 -1
  67. package/dist/components/ui/tag.d.ts +3 -2
  68. package/dist/components/widgets/tags.d.ts +1 -1
  69. package/dist/contexts/index.d.ts +5 -5
  70. package/dist/css/style.css +31 -0
  71. package/dist/css/style.css.map +1 -1
  72. package/dist/forms/base.d.ts +1 -1
  73. package/dist/forms/required_fields.d.ts +1 -1
  74. package/dist/forms/users.d.ts +1 -1
  75. package/dist/hooks/useAsync.d.ts +3 -1
  76. package/dist/hooks/useAsyncFn.d.ts +3 -1
  77. package/dist/hooks/useLocation.d.ts +1 -1
  78. package/dist/hooks/useMountedState.d.ts +1 -1
  79. package/dist/hooks/useRegistry.d.ts +17 -3
  80. package/dist/hooks/useVocabulary.d.ts +1 -0
  81. package/dist/index.d.ts +1 -0
  82. package/dist/lib/client.d.ts +12 -5
  83. package/dist/lib/helpers.d.ts +17 -0
  84. package/dist/lib/rest.d.ts +1 -1
  85. package/dist/locales/generic_messages.d.ts +370 -0
  86. package/dist/react-gmi.esm.js +6178 -701
  87. package/dist/react-gmi.esm.js.map +1 -1
  88. package/dist/react-gmi.js +6185 -704
  89. package/dist/react-gmi.js.map +1 -1
  90. package/dist/react-gmi.modern.js +5514 -660
  91. package/dist/react-gmi.modern.js.map +1 -1
  92. package/dist/react-gmi.umd.js +6186 -708
  93. package/dist/react-gmi.umd.js.map +1 -1
  94. package/dist/views/application.d.ts +15 -3
  95. package/dist/views/base.d.ts +1 -1
  96. package/dist/views/container.d.ts +1 -1
  97. package/dist/views/folder.d.ts +1 -1
  98. package/dist/views/groups.d.ts +3 -3
  99. package/dist/views/item.d.ts +1 -1
  100. package/dist/views/users.d.ts +3 -3
  101. package/package.json +17 -5
  102. package/dist/components/searchLabels.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"react-gmi.modern.js","sources":["../src/guillo-gmi/contexts/index.js","../src/guillo-gmi/lib/helpers.js","../src/guillo-gmi/components/input/button.js","../src/guillo-gmi/components/modal.js","../src/guillo-gmi/hooks/useSetState.js","../src/guillo-gmi/hooks/useCrudContext.js","../src/guillo-gmi/actions/add_item.js","../src/guillo-gmi/hooks/useConfig.js","../src/guillo-gmi/actions/remove_items.js","../src/guillo-gmi/components/input/checkbox.js","../src/guillo-gmi/components/error_zone.js","../src/guillo-gmi/hooks/useInput.js","../src/guillo-gmi/lib/validators.js","../src/guillo-gmi/components/input/input.js","../src/guillo-gmi/components/ui/icon.js","../src/guillo-gmi/components/input/email.js","../src/guillo-gmi/components/input/form.js","../src/guillo-gmi/components/input/password.js","../src/guillo-gmi/components/input/form_builder.js","../src/guillo-gmi/components/input/select.js","../src/guillo-gmi/hooks/useLocation.js","../src/guillo-gmi/components/Link.js","../src/guillo-gmi/components/TdLink.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/lib/rest.js","../src/guillo-gmi/lib/search.js","../src/guillo-gmi/lib/client.js","../src/guillo-gmi/components/input/upload.js","../src/guillo-gmi/components/input/textarea.js","../src/guillo-gmi/components/input/search_input.js","../src/guillo-gmi/components/input/input_list.js","../src/guillo-gmi/hooks/useClickAway.js","../src/guillo-gmi/components/input/dropdown.js","../src/guillo-gmi/lib/utils.js","../src/guillo-gmi/components/fields/editableField.js","../src/guillo-gmi/components/fields/downloadField.js","../src/guillo-gmi/components/fields/renderField.js","../src/guillo-gmi/components/behaviors/iattachment.js","../src/guillo-gmi/components/behaviors/imultiattachment.js","../src/guillo-gmi/components/behaviors/idublincore.js","../src/guillo-gmi/components/panel/actions.js","../src/guillo-gmi/hooks/useMountedState.js","../src/guillo-gmi/hooks/useAsyncFn.js","../src/guillo-gmi/hooks/useAsync.js","../src/guillo-gmi/components/panel/addons.js","../src/guillo-gmi/components/panel/behaviors.js","../src/guillo-gmi/components/selected_items_actions.js","../src/guillo-gmi/components/pagination.js","../src/guillo-gmi/models/sharing.js","../src/guillo-gmi/models/index.js","../src/guillo-gmi/components/item.js","../src/guillo-gmi/components/searchLabels.js","../src/guillo-gmi/components/panel/items.js","../src/guillo-gmi/components/behavior_view.js","../src/guillo-gmi/components/properties_view.js","../src/guillo-gmi/components/panel/properties.js","../src/guillo-gmi/components/panel/permissions_prinperm.js","../src/guillo-gmi/components/panel/permissions_prinrole.js","../src/guillo-gmi/components/panel/permissions_roleperm.js","../src/guillo-gmi/components/panel/permissions.js","../src/guillo-gmi/components/widgets/tags.js","../src/guillo-gmi/components/context_toolbar.js","../src/guillo-gmi/components/flash.js","../src/guillo-gmi/components/tabs.js","../src/guillo-gmi/views/folder.js","../src/guillo-gmi/views/item.js","../src/guillo-gmi/views/application.js","../src/guillo-gmi/views/base.js","../src/guillo-gmi/views/container.js","../src/guillo-gmi/forms/users.js","../src/guillo-gmi/hooks/useRemoteField.js","../src/guillo-gmi/views/users.js","../src/guillo-gmi/actions/copy_items.js","../src/guillo-gmi/actions/copy_item.js","../src/guillo-gmi/actions/move_items.js","../src/guillo-gmi/actions/move_item.js","../src/guillo-gmi/actions/remove_item.js","../src/guillo-gmi/actions/change_pass.js","../src/guillo-gmi/forms/base.js","../src/guillo-gmi/views/groups.js","../src/guillo-gmi/components/error_boundary.js","../src/guillo-gmi/components/notallowed.js","../src/guillo-gmi/components/notfound.js","../src/guillo-gmi/components/path.js","../src/guillo-gmi/components/fields/editComponent.js","../src/guillo-gmi/hooks/useRegistry.js","../src/guillo-gmi/reducers/guillotina.js","../src/guillo-gmi/components/guillotina.js","../src/guillo-gmi/components/layout.js","../src/guillo-gmi/components/login.js","../src/guillo-gmi/forms/required_fields.js","../src/guillo-gmi/lib/auth.js"],"sourcesContent":["import React from 'react'\nimport { createContext } from 'react'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext({})\n\nexport const TraversalContext = createContext({})\n\nclass Traversal {\n constructor({ flash, ...props }) {\n Object.assign(this, props)\n if (typeof flash === 'function') this.flash = flash\n }\n\n refresh({ transparent = false } = {}) {\n this.dispatch({ type: 'REFRESH', payload: { transparent } })\n }\n\n get path() {\n return this.state.path\n }\n\n get pathPrefix() {\n return this.state.path.slice(1)\n }\n\n get context() {\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data) {\n // apply a optimistic update to context\n this.dispatch({ type: 'APPLY', payload: data })\n }\n\n flash(message, type) {\n this.dispatch({ type: 'SET_FLASH', payload: { flash: { message, type } } })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({ type: 'CLEAR_FLASH' })\n }\n\n doAction(action, params) {\n this.dispatch({ type: 'SET_ACTION', payload: { action, params } })\n }\n\n cancelAction() {\n this.dispatch({ type: 'CLEAR_ACTION' })\n }\n\n hasPerm(permission) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs, tabsPermissions) {\n const result = {}\n Object.keys(tabs).forEach((item) => {\n const perm = tabsPermissions[item]\n if (perm && this.hasPerm(perm)) {\n result[item] = tabs[item]\n } else if (!perm) {\n result[item] = tabs[item]\n }\n })\n return result\n }\n}\n\nexport function TraversalProvider({ children, ...props }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return React.useContext(TraversalContext)\n}\n\nexport function ClientProvider({ children, client }) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return React.useContext(ClientContext)\n}\n","export const classnames = (classNames) => {\n return classNames.filter(Boolean).join(' ').trim()\n}\n\nexport const noop = () => {}\n\nlet current = 0\n\nexport const generateUID = (prefix) => `${prefix || 'id'}-${current++}`\n\nexport const toQueryString = (params) => {\n return Object.keys(params)\n .map((key) => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])\n })\n .join('&')\n}\n\nexport function base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64)\n const binaryLen = binaryString.length\n const bytes = new Uint8Array(binaryLen)\n for (var i = 0; i < binaryLen; i++) {\n var ascii = binaryString.charCodeAt(i)\n bytes[i] = ascii\n }\n return bytes\n}\n\nexport function stringToSlug(str) {\n str = str.replace(/^\\s+|\\s+$/g, '') // trim\n str = str.toLowerCase()\n\n // remove accents, swap ñ for n, etc\n var from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n var to = 'aaaaeeeeiiiioooouuuunc------'\n for (var i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-') // collapse dashes\n\n return str\n}\n\nexport function sleep(ms) {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve()\n }, ms)\n })\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nconst noop = () => {}\n\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n ...rest\n}) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n if (disabled) onClick = noop\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import React from 'react'\nimport usePortal from 'react-useportal'\nimport { Button } from './input/button'\n\nexport function Modal(props) {\n const { isActive, setActive, children } = props\n const { Portal } = usePortal()\n\n const css = 'modal ' + (isActive ? 'is-active ' : '') + props.className\n return (\n <Portal>\n <div className={css}>\n <div className=\"modal-background\" onClick={() => setActive(false)} />\n <div className=\"modal-content\">\n <div className=\"box\">{children}</div>\n </div>\n <button\n className=\"modal-close is-large\"\n aria-label=\"close\"\n onClick={() => setActive(false)}\n />\n </div>\n </Portal>\n )\n}\n\nexport function Confirm({ message, onCancel, onConfirm, loading }) {\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <React.Fragment>\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button\n className=\"button is-danger\"\n onClick={() => onCancel()}\n data-test=\"btnCancelModalTest\"\n >\n Cancel\n </button>\n &nbsp;&nbsp;\n <Button\n loading={loading}\n className=\"is-success\"\n onClick={() => onConfirm()}\n dataTest=\"btnConfirmModalTest\"\n >\n Confirm\n </Button>\n </div>\n </div>\n </React.Fragment>\n </Modal>\n )\n}\n\n// @todo Improve it... Replacing the inputText to a tree\nexport function PathTree({\n title,\n defaultPath,\n children,\n onConfirm,\n onCancel,\n}) {\n return (\n <Modal isActive setActive={onCancel}>\n <h1>{title}</h1>\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onConfirm(e.target[0].value, e.target)\n }}\n >\n <small style={{ display: 'block', marginTop: 20 }}>\n {`Example: /folder (without /db/container on front)`}\n </small>\n <input\n className=\"input mb-3\"\n defaultValue={defaultPath}\n type=\"text\"\n data-test=\"inputPathTreeTest\"\n />\n {children}\n <div className=\"level-right mt-3\">\n <button\n type=\"button\"\n className=\"button is-danger\"\n onClick={onCancel}\n data-test=\"btnCancelModalTest\"\n >\n Cancel\n </button>\n &nbsp;&nbsp;\n <button\n type=\"submit\"\n className=\"button is-success\"\n data-test=\"btnConfirmModalTest\"\n >\n Confirm\n </button>\n </div>\n </form>\n </Modal>\n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useSetState(initialState) {\n const [state, set] = useState(initialState)\n const setState = useCallback(\n (patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n )\n },\n [set]\n )\n\n return [state, setState]\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\n\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nconst getErrorMessage = (dataError, defaultValue) => {\n if (dataError && dataError.details) {\n return dataError.details\n } else if (dataError && dataError.reason) {\n return dataError.reason\n }\n return defaultValue\n}\n\nconst processResponse = async (res, ready_body = true) => {\n if (res.status < 400)\n return {\n isError: false,\n loading: false,\n result: ready_body ? await res.json() : res.status,\n response: res,\n }\n else\n return {\n isError: true,\n loading: false,\n errorMessage: getErrorMessage(await res.json(), res.status),\n response: res,\n }\n}\n\nconst patch = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst del = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.delete(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst post = (setState, Ctx) => async (data, endpoint, body = true) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.post(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst get = (setState, Ctx) => async (endpoint) => {\n setState({ loading: true })\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const req = await Ctx.client.get(path)\n const data = await req.json()\n setState({ loading: false, result: data, response: req })\n return data\n}\n\nexport function useCrudContext() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n return {\n ...state,\n Ctx,\n patch: patch(setState, Ctx),\n del: del(setState, Ctx),\n post: post(setState, Ctx),\n get: get(setState, Ctx),\n }\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\nexport function AddItem(props) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const { type } = props\n const { getForm } = Ctx.registry\n\n const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n const form = Object.assign(\n {},\n { '@type': type },\n data.formData ? data.formData : data\n )\n\n const { isError, errorMessage } = await post(form)\n if (!isError) {\n Ctx.flash('Content created!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n loading={loading}\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Add ' + type}\n title={'Add ' + type}\n type={type}\n dataTest={`formAdd${type}Test`}\n />\n </Modal>\n )\n}\n","import React from 'react'\n\nexport const Permissions = [\n 'guillotina.AddContent',\n 'guillotina.ModifyContent',\n 'guillotina.ViewContent',\n 'guillotina.DeleteContent',\n 'guillotina.AccessContent',\n 'guillotina.SeePermissions',\n 'guillotina.ChangePermissions',\n 'guillotina.MoveContent',\n 'guillotina.DuplicateContent',\n 'guillotina.ReadConfiguration',\n 'guillotina.RegisterConfigurations',\n 'guillotina.WriteConfiguration',\n 'guillotina.ManageAddons',\n 'guillotina.swagger.View',\n]\n\nexport const Config = {\n DisabledTypes: ['UserManager', 'GroupManager'],\n PageSize: 10,\n DelayActions: 200,\n Permissions: Permissions,\n SearchEngine: 'PostreSQL', // Elasticsearch\n fieldHaveDeleteButton: (schema) => {\n return (\n schema?.widget === 'file' ||\n schema?.widget === 'select' ||\n schema?.type === 'array'\n )\n },\n}\n\nlet calculated = Object.assign({}, Config)\n\nconst addConfig = (additional, original) => {\n const rest = Object.assign({}, original)\n Object.keys(additional).forEach((item) => {\n if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {\n rest[item] = [].concat(Config[item], additional[item])\n } else if (typeof Config[item] === 'object') {\n rest[item] = Object.assign({}, Config[item], additional[item])\n } else {\n rest[item] = additional[item]\n }\n })\n return rest\n}\n\nexport function useConfig(cfg) {\n const ref = React.useRef()\n if (cfg && !ref.current) {\n console.log('cfg', cfg)\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n\n // if (cfg && !ref.current) {\n // ref.current = addConfig(cfg, ref.current);\n // calculated = ref.current\n // console.log(\"Current config\", cfg)\n // }\n return calculated\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\n\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 const res = await Ctx.client.delete(`${Ctx.path}${item['@name']}`)\n if (!res.ok) {\n const err = await res.json()\n errors.push(err)\n }\n })\n // this sleep is here, to let elasticsearch, wait for\n // index our operations... (will work 99% of use cases)\n actions.push(sleep(cfg.DelayActions))\n\n await Promise.all(actions)\n\n if (errors.length === 0) {\n Ctx.flash(`Items removed!`, 'success')\n Ctx.refresh()\n } else {\n const errorstr = errors.map((err) => JSON.stringify(err)).join('\\n')\n Ctx.flash(`Something went wrong!! ${errorstr}`, 'danger')\n }\n setLoading(false)\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItems}\n message={`Are you sure to remove: ${itemsNames}?`}\n />\n )\n}\n","import React, { useEffect, useRef } from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n value = false,\n color,\n backgroundColor,\n borderColor,\n children,\n placeholder,\n onChange,\n dataTest,\n ...rest\n}) => {\n const inputRef = useRef(null)\n const [state, setState] = React.useState(value)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev) => {\n setState(ev.target.checked)\n onChange(ev.target.checked)\n }\n\n return (\n <div className=\"field\">\n <label htmlFor={id} className={classnames(['checkbox', className])}>\n <input\n ref={inputRef}\n disabled={disabled || loading}\n id={id}\n type=\"checkbox\"\n className={classnames(['checkbox', classNameInput])}\n checked={state}\n onChange={updateState}\n data-test={dataTest}\n {...rest}\n />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\nconst ErrorZone = ({ children, id, className }) => {\n return (\n <p className={classnames(['help is-danger', className])} id={id}>\n {children}\n </p>\n )\n}\n\nErrorZone.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n}\n\nexport default ErrorZone\n","import React from 'react'\n\nconst applyValidators = (value, validators) => {\n let validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n let [state, setState] = React.useState({ hasError: false, value: value })\n\n const onUpdate = (ev) => {\n const value = ev && ev.target ? ev.target.value : ev ? ev : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validator) === false\n if (hasError) setState({ value: state.value, hasError })\n }\n\n const onFocus = () => {\n if (state.hasError) {\n setState({ value: state.value, hasError: false })\n }\n }\n\n React.useEffect(() => {\n setState({ value, hasError: false })\n }, [value])\n\n return {\n onChange: onUpdate,\n onFocus,\n onBlur,\n state,\n }\n}\n\nexport default useInput\n","// From github.com/protonmail/proton-shared\n\n/* eslint-disable no-useless-escape */\nexport const REGEX_EMAIL = /(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/i\nexport const REGEX_URL = /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)/\nexport const REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/i\nexport const REGEX_NUMBER = /^\\d+$/\n\nexport const isEmpty = (value = '') => !value.length\nexport const maxLength = (value = '', limit = 0) => value.length <= limit\nexport const minLength = (value = '', limit = 0) => value.length >= limit\nexport const isEmail = (value = '') => REGEX_EMAIL.test(value)\nexport const isURL = (value = '') => REGEX_URL.test(value)\nexport const isHexColor = (value = '') => REGEX_HEX_COLOR.test(value)\nexport const isNumber = (value = '') => REGEX_NUMBER.test(value)\nexport const notEmpty = (value) => !!value.length\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport ErrorZone from '../error_zone'\nimport useInput from '../../hooks/useInput'\nimport { notEmpty } from '../../lib/validators'\nimport { useEffect } from 'react'\n\nconst noop = () => true\n\n/** @type any */\nexport const Input = React.forwardRef(\n (\n {\n icon,\n iconPosition = 'has-icons-right',\n error,\n errorZoneClassName,\n autoComplete = 'off',\n className = '',\n widget = 'input',\n type = 'text',\n onPressEnter,\n isSubmitted,\n loading = false,\n required = false,\n id,\n placeholder,\n value,\n autofocus = false,\n onChange,\n validator = noop,\n errorMessage,\n dataTest = 'testInput',\n ...rest\n },\n ref\n ) => {\n if (required) {\n validator = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validator)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || React.useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error) {\n ref.current.focus()\n }\n }, [mounted, autofocus, ref, error])\n\n const theError = state.hasError ? errorMessage || 'invalid field' : ''\n const statusClasses = state.hasError ? 'is-danger' : ''\n\n const cssControl = () => (icon ? ['control', iconPosition] : ['control'])\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssControl())}>\n <input\n className={classnames([widget, className, statusClasses])}\n aria-invalid={theError}\n aria-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || rest.disabled}\n required={required}\n data-test={dataTest}\n {...handlers}\n {...rest}\n />\n {icon && icon}\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {state.hasError ? theError : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nInput.propTypes = {\n icon: PropTypes.node,\n iconPosition: PropTypes.arrayOf(\n PropTypes.oneOf(['has-icons-left', 'has-icons-right', ''])\n ),\n error: PropTypes.string,\n errorZoneClassName: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onPressEnter: PropTypes.func,\n placeholder: PropTypes.string,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Icon = ({ icon, className, align }) => {\n const addClass = className ? className.split(' ') : [className]\n\n align = align || 'is-right'\n\n return (\n <span className={classnames(['icon', align, ...addClass])}>\n <i className={icon}></i>\n </span>\n )\n}\n","import React from 'react'\nimport { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\n\nexport const EmailInput = ({ value = '', dataTest, ...rest }) => {\n return (\n <Input\n type=\"email\"\n validator={isEmail}\n errorMessage=\"Email address invalid\"\n value={value}\n data-test={dataTest}\n icon={<Icon icon=\"fas fa-envelope\" />}\n {...rest}\n />\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { noop } from '../../lib/helpers'\nimport { classnames } from '../../lib/helpers'\n\nexport const Form = ({\n children,\n className = '',\n onSubmit = noop,\n onReset = noop,\n autoComplete = 'off',\n title,\n error,\n dataTest,\n ...rest\n}) => {\n const handleSubmit = (event) => {\n event.preventDefault()\n onSubmit(event)\n }\n return (\n <div data-test={dataTest}>\n {title && (\n <div className=\"level\">\n <h1 className=\"title is-size-4\">{title}</h1>\n </div>\n )}\n {error && <div className=\"notification is-danger\">{error}</div>}\n <form\n onSubmit={handleSubmit}\n onReset={onReset}\n autoComplete={autoComplete}\n className={classnames(['form', className])}\n {...rest}\n >\n {children}\n </form>\n </div>\n )\n}\n\nForm.propTypes = {\n children: PropTypes.node.isRequired,\n className: PropTypes.string,\n onSubmit: PropTypes.func,\n onReset: PropTypes.func,\n autoComplete: PropTypes.string,\n}\n","import React from 'react'\nimport { Input } from './input'\n\nexport const PasswordInput = ({ value = '', ...rest }) => {\n return <Input value={value} type=\"password\" {...rest} />\n}\n","import React from 'react'\nimport { Form } from './form'\nimport { Input } from './input'\nimport { EmailInput } from './email'\nimport { PasswordInput } from './password'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport { generateUID } from '../../lib/helpers'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\nexport function FormBuilder({\n schema,\n formData,\n title,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = [],\n submitButton = true,\n ...rest\n}) {\n const ref = React.useRef()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n let initialState = {}\n const fields = Object.keys(properties).filter((x) => !exclude.includes(x))\n\n fields.forEach((element) => {\n initialState[element] = values[element] || undefined\n })\n\n // Register remotes\n if (!ref.current) {\n ref.current = {}\n Object.keys(remotes).forEach((item) => (ref.current[item] = remotes[item]))\n } else {\n // apply remote changes\n Object.keys(remotes).forEach((key) => {\n if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {\n ref.current[key] = remotes[key]\n }\n })\n }\n\n ref.current = ref.current || {}\n const onUpdate = (field) => (ev) => {\n ref.current[field] = ev.target ? ev.target.value : ev.value || ev\n }\n\n const GetTag = ({ field }) => {\n const Tag =\n formComponents[properties[field].widget || properties[field].type]\n\n const props = {\n label: properties[field].title,\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: properties[field].title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n }\n\n if (required.includes(field)) {\n props.required = true\n props.placeholder += ' *'\n }\n Tag.displayName = `${field}Field`\n return <Tag {...props} />\n }\n\n const children_ = React.Children.map(children, (child) =>\n React.cloneElement(child, { onChange: onUpdate })\n )\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} {...rest}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\n// @ TODO implement hasErrors\n\n/** @type any */\nexport const Select = React.forwardRef(\n (\n {\n options,\n error,\n errorZoneClassName,\n size = 1,\n placeholder,\n id,\n className = '',\n classWrap = '',\n multiple = false,\n loading = false,\n isSubmitted,\n onChange,\n appendDefault = false,\n style = {},\n dataTest,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (ev.target.value === '') {\n onChange({ target: { value: undefined } })\n } else {\n onChange(ev)\n }\n }\n\n if (appendDefault) {\n options = [{ text: 'Choose..', value: '' }].concat(options)\n }\n const statusClasses = error ? 'is-danger' : ''\n\n const cssWrap = [\n 'select',\n statusClasses,\n multiple ? 'is-multiple' : '',\n classWrap,\n ]\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssWrap)}>\n <select\n className={classnames(['', className])}\n size={size}\n multiple={multiple}\n disabled={loading || rest.disabled}\n onChange={onUpdate}\n {...rest}\n ref={ref}\n style={style}\n data-test={dataTest}\n >\n {options.map(({ text, ...rest }, index) => (\n <option key={index.toString()} {...rest}>\n {text}\n </option>\n ))}\n </select>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </div>\n )\n }\n)\n\nSelect.propTypes = {\n error: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n size: PropTypes.number,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.object),\n multiple: PropTypes.bool,\n className: PropTypes.string,\n}\n","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","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","export class RestClient {\n constructor(url, container, auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data, headers) {\n if (path.indexOf(this.url) !== -1) {\n path = path.replace(this.url, '')\n }\n\n if (this.container !== '/' && path.indexOf(this.container) === -1) {\n path = `${this.container}${path}`\n }\n\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n data = data || {}\n data.headers = headers || this.getHeaders()\n return await fetch(`${this.url}${path}`, data)\n }\n\n getHeaders() {\n const authToken = this.auth.getToken()\n if (!authToken) return {}\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n\n async post(path, data) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path) {\n return await this.request(path, {})\n }\n\n async put(path, data) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path, data) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path, data) {\n const headers = this.getHeaders()\n delete headers['Content-Type']\n headers['Content-Type'] = data['content-type']\n headers['X-UPLOAD-FILENAME'] = data.filename\n headers['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n headers\n )\n }\n\n async delete(path, data = undefined) {\n return await this.request(path, {\n method: 'delete',\n body: JSON.stringify(data),\n })\n }\n}\n","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 { TdLink } from '../components/TdLink'\nimport { Icon } from '../components/ui'\nimport { toQueryString } from './helpers'\nimport { RestClient } from './rest'\nimport { parser } from './search'\n\nlet cacheTypes = {}\nlet cacheSchemas = {}\n\nexport class GuillotinaClient {\n constructor(rest, pathContainsContainer) {\n this.rest = rest\n this.pathContainsContainer = pathContainsContainer\n }\n\n getContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n let parts = path.split('/')\n return `${parts[0]}/${parts[1]}/`\n }\n return ''\n }\n\n clearContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path) {\n switch (path) {\n case '/':\n return await this.rest.get('')\n default:\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n }\n\n async get(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsPostresql({ start = 0, pageSize = 10, withDepth = true }) {\n let result = []\n\n result = [\n ...parser(start.toString(), 'b_start'),\n ...parser(pageSize.toString(), 'b_size'),\n ]\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n return result\n }\n\n getQueryParamsElasticsearch({\n start = 0,\n pageSize = 10,\n path,\n withDepth = true,\n }) {\n let result = []\n let containerPath = this.getContainerFromPath(path)\n\n if (containerPath.startsWith('/')) {\n containerPath = containerPath.slice(1)\n }\n let objectPath = path.replace(containerPath, '')\n if (objectPath.endsWith('/')) {\n objectPath = objectPath.slice(0, -1)\n }\n\n result = [\n ...parser(start.toString(), '_from'),\n ...parser(pageSize.toString(), 'size'),\n ...parser('*', '_metadata=*'),\n ]\n\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n if (objectPath !== '') {\n result = [...result, ...parser(objectPath, 'path__wildcard')]\n }\n return result\n }\n\n getItemsColumn() {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n label: '',\n child: (m) => <td style={smallcss}>{<Icon icon={m.icon} />}</td>,\n },\n {\n label: 'type',\n child: (m) => (\n <TdLink style={smallcss} model={m}>\n <span className=\"tag\">{m.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n child: (m, navigate, search) => (\n <TdLink model={m}>\n {m.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{m.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n ),\n },\n {\n label: 'modified',\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat(data) {\n data.member = data.items\n data.items_count = data.items_total\n return data\n }\n\n async search(path, params, container = false, prepare = true) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n let query = prepare ? toQueryString(params) : params\n const url = `${path}@search?${query}`\n let res = await this.rest.get(url)\n let data = await res.json()\n return this.applyCompat(data)\n }\n\n async canido(path, permissions) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (Array.isArray(permissions)) {\n permissions.join(',')\n }\n const url = `${path}@canido?permissions=${permissions}`\n return await this.rest.get(url)\n }\n\n async createObject(path, data) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path) {\n let url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path, data) {\n return await this.rest.delete(path, data)\n }\n\n async create(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path, data) {\n return await this.create(path, data)\n }\n\n async patch(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path, file) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path, name) {\n if (!cacheSchemas[name]) {\n let url = this.getContainerFromPath(path)\n // todo: handle db case (only addable containers)\n const res = await this.rest.get(`${url}@types/${name}`)\n cacheSchemas[name] = await res.json()\n }\n return cacheSchemas[name]\n }\n\n async getAddons(path) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path, key) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path, key) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(path) {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [gr, usr] = await Promise.all([groups, users])\n\n return {\n groups: gr.ok ? await gr.json() : [],\n users: usr.ok ? await usr.json() : [],\n }\n }\n\n async getRoles(path) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path) {\n // paths used to query the API always has to start without a \"/\"\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n const req = await this.rest.get(path + '@all_permissions')\n const resp = await req.json()\n const permissions = Array.from(new Set(extractPermissions(resp)))\n return permissions\n }\n\n async getTypes(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!cacheTypes[path]) {\n const types = await this.rest.get(path + '@addable-types')\n if (types.status === 401 || types.status === 404) {\n cacheTypes[path] = []\n } else {\n const res = await types.json()\n cacheTypes[path] = res\n }\n }\n return cacheTypes[path]\n }\n}\n\nexport function getClient(url, container, auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = async (file) => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e.target.result\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n }\n })\n}\n\nconst extractPermissions = (data) => {\n let result = []\n if (typeof data !== 'object') {\n } else if (!Array.isArray(data) && data.permission) {\n result = result.concat([data.permission])\n } else if (!Array.isArray(data)) {\n Object.keys(data).map(\n (key) => (result = result.concat(extractPermissions(data[key])))\n )\n } else if (Array.isArray(data)) {\n data.map((item) => (result = result.concat(extractPermissions(item))))\n }\n return result\n}\n","import React from 'react'\nimport { lightFileReader } from '../../lib/client'\n\nexport function FileUpload({ label, onChange, ...props }) {\n const changed = async (event) => {\n const file = await lightFileReader(event.target.files[0])\n onChange(file)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n {...props}\n type=\"file\"\n name=\"file\"\n onChange={changed}\n />\n <span className=\"file-cta\">\n <span className=\"file-icon\">\n <i className=\"fas fa-upload\"></i>\n </span>\n <span className=\"file-label\">{label || 'Choose a file…'}</span>\n </span>\n </label>\n </div>\n )\n}\n","import React, { useState } from 'react'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\n\nexport const Textarea = React.forwardRef(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\n ...rest\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (onChange) {\n onChange(ev.target.value)\n }\n }\n const statusClasses = error ? 'is-danger' : ''\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classWrap}>\n <textarea\n className={classnames(['textarea', className, statusClasses])}\n rows={rows}\n onChange={onUpdate}\n value={value}\n data-test={dataTest}\n {...rest}\n ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n","import React, { useState } from 'react'\n\nimport PropTypes from 'prop-types'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport useSetState from '../../hooks/useSetState'\nimport ErrorZone from '../error_zone'\nimport { Loading } from '../ui'\nimport { generateUID } from '../../lib/helpers'\nimport { useConfig } from '../../hooks/useConfig'\nfunction debounce(func, wait) {\n let timeout\n return function () {\n const context = this\n const args = arguments\n const later = function () {\n timeout = null\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n }\n}\n\nconst initialState = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\nexport const SearchInput = ({\n onChange,\n error,\n errorZoneClassName,\n traversal = null,\n path = null,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = null,\n}) => {\n const [options, setOptions] = useSetState(initialState)\n const [isOpen, setIsOpen] = React.useState(false)\n const [searchTerm, setSearchTerm] = React.useState('')\n const inputRef = React.useRef(null)\n const wrapperRef = React.useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n\n const [uid] = useState(generateUID('search_input'))\n\n const getHeight = () => {\n if (wrapperRef && wrapperRef.current) {\n return {\n maxHeight: `${\n window.innerHeight -\n wrapperRef.current.getBoundingClientRect().top -\n 100\n }px`,\n }\n }\n return { maxHeight: 'auto' }\n }\n\n const delayedQuery = React.useCallback(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n setOptions({ loading: true })\n let searchTermQs = []\n let searchTermParsed = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n let qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n\n if (qs.length > 0 || searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([...qs, ...searchTermParsed, ...qsParsed])\n }\n\n const data = await traversal.client.search(\n path,\n searchTermQs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n const newItems =\n options.items && concat ? [...options.items, ...data.items] : data.items\n\n setOptions({\n items: newItems ?? [],\n loading: false,\n items_total: data.items_total ?? 0,\n page: page,\n })\n }\n\n const renderTextItemOptionFn = (item) => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return item.title || item['@name']\n }\n\n React.useEffect(() => {\n if (path && !options.loading && !options.items) {\n ;(async () => {\n handleSearch(options.page)\n })()\n }\n }, [path, options.loading, options.items])\n\n return (\n <React.Fragment>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(!isOpen)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{value && value.title ? value.title : 'Choose...'}</span>\n <span className=\"icon\">\n <i className=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </div>\n <div\n className=\"dropdown-menu\"\n id=\"dropdown-menu\"\n role=\"menu\"\n style={getHeight()}\n >\n <div className=\"dropdown-content\">\n <div className=\"dropdown-item\">\n <input\n ref={inputRef}\n data-test={dataTestSearchInput}\n className=\"input\"\n type=\"text\"\n placeholder=\"Search...\"\n value={searchTerm}\n onChange={(ev) => {\n delayedQuery(ev.target.value)\n setSearchTerm(ev.target.value)\n }}\n />\n </div>\n <hr className=\"dropdown-divider\" />\n {options.loading && <Loading />}\n {options.items &&\n options.items.map((item) => {\n return (\n <a\n href=\"#\"\n className={`dropdown-item editable ${\n value && value.id === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={() => {\n onChange && onChange(item)\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </a>\n )\n })}\n\n {options.items && options.items.length === 0 && (\n <div className=\"dropdown-item\"> No results </div>\n )}\n\n {options.items && options.items_total > options.items.length && (\n <React.Fragment>\n <hr className=\"dropdown-divider\" />\n <div\n className=\"dropdown-item editable\"\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n handleSearch(options.page + 1, true)\n }}\n >\n Load more...\n </div>\n </React.Fragment>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </React.Fragment>\n )\n}\n\nSearchInput.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.object,\n client: PropTypes.object,\n path: PropTypes.string,\n PageSize: PropTypes.number,\n btnClass: PropTypes.string,\n}\n","import * as React from 'react'\nimport { Input } from './input'\n\nexport const InputList = React.forwardRef(\n ({ value, onChange, dataTest }, ref) => {\n const [inputValue, setInputValue] = React.useState('')\n const addTags = (event) => {\n if (event.key === 'Enter' && event.target.value !== '') {\n onChange([...value, event.target.value])\n setInputValue('')\n }\n }\n\n return (\n <div className=\"control\">\n <div className=\"tags\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {tag}\n <button\n className=\"delete is-small\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n ></button>\n </div>\n ))}\n </div>\n <Input\n type=\"text\"\n placeholder=\"Press enter to add value\"\n onKeyUp={(event) => addTags(event)}\n value={inputValue}\n ref={ref}\n dataTest={dataTest}\n onChange={(value) => {\n if (value !== '') {\n setInputValue(value)\n }\n }}\n />\n </div>\n )\n }\n)\n","import { useEffect, useRef } from 'react'\n\nconst defaultEvents = ['mousedown', 'touchstart']\nconst on = (obj, ...args) => obj.addEventListener(...args)\nconst off = (obj, ...args) => obj.removeEventListener(...args)\n\nexport default function useClickAway(ref, onClickAway, events = defaultEvents) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event) => {\n const { current: el } = ref\n el && !el.contains(event.target) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName, handler)\n }\n }\n }, [events, ref])\n}\n","import React, { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n ...props\n}) {\n const ref = useRef(null)\n const [isActive, setIsActive] = useState(false)\n const position = isRight ? 'is-right' : ''\n const status = isActive\n ? `dropdown ${position} is-active`\n : `dropdown ${position}`\n\n useClickAway(ref, () => {\n setIsActive(false)\n })\n\n return (\n <div ref={ref} className={status} {...props}>\n <div className=\"dropdown-trigger\">\n <button\n className=\"button is-size-7\"\n onClick={() => setIsActive(!isActive)}\n aria-haspopup=\"true\"\n disabled={disabled}\n aria-controls={id}\n >\n {children}\n </button>\n </div>\n <div className=\"dropdown-menu\" id={id} role=\"menu\">\n <div className=\"dropdown-content\">\n {options.map((option) => {\n const disabled =\n typeof optionDisabledWhen === 'function'\n ? optionDisabledWhen(option)\n : false\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n <a\n className={\n disabled ? 'dropdown-item is-active' : 'dropdown-item'\n }\n data-test={`dropdownItemTest-${option.value.toLowerCase()}`}\n key={option.text}\n onClick={disabled ? undefined : () => onChange(option.value)}\n style={\n disabled\n ? {\n cursor: 'not-allowed',\n color: 'black',\n opacity: 0.5,\n backgroundColor: '#eeeeee',\n }\n : {}\n }\n >\n {option.text}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import { stringToSlug } from './helpers'\n\nexport const formatDate = (str) => {\n const d = new Date(str)\n const minutes = d.getMinutes() < 10 ? `0${d.getMinutes()}` : d.getMinutes()\n return `${d.getDate()}/${\n d.getMonth() + 1\n }/${d.getFullYear()} ${d.getHours()}:${minutes}`\n}\n\nexport const get = (obj, path, defValue) => {\n // If path is not defined or it has false value\n if (!path) return undefined\n // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n // Regex explained: https://regexr.com/58j0k\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n // Find value if exist return otherwise return undefined value;\n return (\n pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || defValue\n )\n}\n\nexport function getNewId(id = '') {\n const suffix = '-copy-'\n const rgx = new RegExp(`($|${suffix}\\\\d*)`)\n\n return stringToSlug(id).replace(rgx, (r) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n","import React from 'react'\nimport { Button } from '../input/button'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useState } from 'react'\nimport { useRef } from 'react'\nimport { useEffect } from 'react'\nimport { Icon } from '../ui'\nimport { get } from '../../lib/utils'\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}) {\n const ref = useRef()\n const [isEdit, setEdit] = useState(false)\n const [val, setValue] = useState(value)\n const { patch, loading, Ctx } = useCrudContext()\n const { fieldHaveDeleteButton } = useConfig()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n const RenderFieldComponent = Ctx.registry.get(\n 'components',\n 'RenderFieldComponent'\n )\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified = modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (ev) => {\n if (ev) ev.preventDefault()\n\n if (!field) {\n Ctx.flash(`Provide a key name!`, 'danger')\n return\n }\n\n if (!val && required) {\n Ctx.flash(`${field} is mandatory!`, 'danger')\n return\n }\n\n if (schema?.widget === 'file') {\n const value = val\n if (value) {\n value['filename'] = unescape(encodeURIComponent(value['filename']))\n }\n const endpoint = `${Ctx.path}@upload/${field}`\n const req = await Ctx.client.upload(endpoint, value)\n if (req.status !== 200) {\n Ctx.flash(`Failed to upload file ${field}!`, 'danger')\n } else {\n Ctx.flash(`${field} uploaded!`, 'success')\n }\n } else {\n const data = ns ? { [ns]: { [field]: val } } : { [field]: val }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, updated!`, 'success')\n }\n }\n\n setEdit(false)\n Ctx.refresh()\n }\n\n const deleteField = async (ev) => {\n if (ev) ev.preventDefault()\n if (schema?.widget === 'file') {\n if (!field || (!val && required)) {\n Ctx.flash(`You can't delete ${field}!`, 'danger')\n return\n }\n\n const data = ns ? { [ns]: { [field]: null } } : { [field]: null }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(`Error in field ${field}!`, 'danger')\n } else {\n Ctx.flash(`Field ${field}, deleted!`, 'success')\n }\n\n setEdit(false)\n Ctx.refresh()\n } else if (schema?.type === 'string' && schema?.enum) {\n setValue(null)\n } else if (schema?.type === 'array' && schema?.items.type === 'string') {\n setValue([])\n }\n }\n\n return (\n <React.Fragment>\n {!isEdit && (\n <div\n className={canModified ? 'editable' : ''}\n onClick={() => {\n setEdit(!!canModified)\n }}\n data-test={`editableFieldTest-${field}`}\n >\n <RenderFieldComponent\n schema={schema}\n field={field}\n val={val}\n modifyContent={modifyContent}\n />\n {canModified && <Icon icon=\"fas fa-edit\" />}\n </div>\n )}\n\n {isEdit && (\n <div className=\"field\" data-test={`editableFieldTest-${field}`}>\n <div className=\"control\">\n <EditComponent\n ref={ref}\n schema={schema}\n val={val}\n setValue={setValue}\n dataTest={`editableFieldEditTest`}\n />\n </div>\n <div className=\"field is-grouped\">\n <div className=\"control\">\n <Button\n className=\"is-small is-primary\"\n loading={loading}\n onClick={saveField}\n dataTest=\"editableFieldBtnSaveTest\"\n >\n Save\n </Button>\n </div>\n <div className=\"control\">\n <Button\n className=\"is-small\"\n onClick={() => setEdit(false)}\n dataTest=\"editableFieldBtnCancelTest\"\n >\n Cancel\n </Button>\n </div>\n {!required && fieldHaveDeleteButton(schema) && (\n <div className=\"control\">\n <Button\n className=\"is-small is-danger\"\n onClick={deleteField}\n dataTest=\"editableFieldBtnDeleteTest\"\n >\n Delete\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const DownloadField = ({ value }) => {\n const Ctx = useTraversal()\n const { data, field } = value\n\n const getField = async (downloadFile) => {\n const endpoint = `${Ctx.path}@download/${field}`\n const res = await Ctx.client.download(endpoint)\n const text = await res.blob()\n const blob = new Blob([text], {\n type: data.content_type,\n })\n const url = window.URL.createObjectURL(blob)\n\n // Create blob link to download\n const link = document.createElement('a')\n link.href = url\n if (downloadFile) {\n link.setAttribute('download', `${data.filename}`)\n } else {\n link.setAttribute('target', `_blank`)\n }\n\n document.body.appendChild(link)\n link.click()\n setTimeout(function () {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url)\n link.parentNode?.removeChild(link)\n }, 100)\n }\n\n return (\n <div className=\"field\">\n <div className=\"label\">{data.filename}</div>\n <div className=\"columns\">\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-left\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(false)\n }}\n >\n Open\n </button>\n </div>\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-right\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(true)\n }}\n >\n Download\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { DownloadField } from './downloadField'\n\nconst plain = ['string', 'number', 'boolean']\n\nexport function RenderField({ value, Widget }) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} />\n }\n\n const type = typeof value\n if (plain.includes(type)) {\n return value\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => (\n <div key={item}>\n <RenderField value={item} />\n </div>\n ))\n }\n return Object.keys(value).map((key) => (\n <FieldValue field={key} value={value[key]} key={key} />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\nconst FieldValue = ({ field, value }) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderField value={value} />\n </div>\n </div>\n)\n\nexport const DEFAULT_VALUE_EDITABLE_FIELD = 'Click to edit'\nexport const DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\n\nexport function RenderFieldComponent({ schema, field, val, modifyContent }) {\n const getRenderProps = () => {\n const renderProps = {\n value:\n val ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n if (val && schema?.widget === 'file') {\n renderProps['value'] = {\n data: val,\n field: field,\n }\n renderProps['Widget'] = DownloadField\n } else if (schema?.type === 'boolean') {\n renderProps['value'] = val?.toString() ?? renderProps['value']\n } else if (val && schema?.type === 'datetime') {\n renderProps['value'] = new Date(val).toLocaleString()\n }\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nexport function IAttachment({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties[key]}\n modifyContent={modifyContent && ['file'].includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { Input } from '../input/input'\nimport { FileUpload } from '../input/upload'\nimport { Button } from '../input/button'\nimport { useState } from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport ErrorZone from '../error_zone'\nimport { EditableField } from '../fields/editableField'\nimport { Delete } from '../ui'\nimport { Confirm } from '../../components/modal'\n\nexport function IMultiAttachment({ properties, values }) {\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState()\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError('Provide a file and a key name')\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/files/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to upload file')\n setLoading(false)\n return\n }\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(`${fileKey} uploaded!`, 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/files/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError('Failed to delete file')\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(`${fileKeyToDelete} delete!`, 'success')\n Ctx.refresh()\n }\n\n return (\n <React.Fragment>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile(fileKeyToDelete)}\n message={`Are you sure to remove: ${fileKeyToDelete}?`}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`files/${key}`}\n value={values['files'][key]}\n ns=\"guillotina.behaviors.attachment.IMultiAttachment.files\"\n schema={properties['files']['additionalProperties']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n ))}\n {Object.keys(values['files']).length === 0 && (\n <tr>\n <td colSpan={2}>No files uploaded</td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">Upload a file</label>\n <form className=\"columns\">\n <div className=\"column is-4\">\n <Input\n placeholder=\"Key\"\n name=\"field\"\n className=\"is-small\"\n value={fileKey}\n onChange={(ev) => setFileKey(ev)}\n />\n {error && <ErrorZone>{error}</ErrorZone>}\n </div>\n <div className=\"column is-2\">\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div className=\"column is-2\">\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!fileKey && !file}\n >\n Upload\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\nexport function IDublinCore({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <React.Fragment>\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td key={1}>{key}</td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.dublincore.IDublinCore\"\n schema={properties[key]}\n modifyContent={modifyContent && editableFields.includes(key)}\n />\n </td>\n </tr>\n ))}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\n\nexport const ACTIONS_OBJECT = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItem',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItem',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItem',\n },\n}\n\nexport function PanelActions() {\n const traversal = useTraversal()\n\n const hasPerm = (perms) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey) => {\n traversal.doAction(ACTIONS_OBJECT[actionKey].action, {\n item: traversal.context,\n })\n }\n\n return (\n <React.Fragment>\n {Object.keys(ACTIONS_OBJECT).map((actionKey) => {\n if (hasPerm(ACTIONS_OBJECT[actionKey].perms)) {\n return (\n <button\n key={`panel_action_${ACTIONS_OBJECT[actionKey].text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKey)\n }}\n >\n {ACTIONS_OBJECT[actionKey].text}\n </button>\n )\n }\n })}\n </React.Fragment>\n )\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nexport default function useMountedState() {\n const mountedRef = useRef(false)\n const get = useCallback(() => mountedRef.current, [])\n\n useEffect(() => {\n mountedRef.current = true\n\n return () => {\n mountedRef.current = false\n }\n })\n\n return get\n}\n","import { useCallback, useState, useRef } from 'react'\nimport useMountedState from './useMountedState'\n\nexport default function useAsyncFn(\n fn,\n deps = [],\n initialState = { loading: false }\n) {\n const lastCallId = useRef(0)\n const isMounted = useMountedState()\n const [state, set] = useState(initialState)\n\n const callback = useCallback((...args) => {\n const callId = ++lastCallId.current\n set((prevState) => ({ ...prevState, loading: true }))\n\n return fn(...args).then(\n (value) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ value, loading: false })\n\n return value\n },\n (error) => {\n isMounted() &&\n callId === lastCallId.current &&\n set({ error, loading: false })\n\n return error\n }\n )\n }, deps)\n\n return [state, callback]\n}\n","import { useEffect } from 'react'\nimport useAsyncFn from './useAsyncFn'\n\nexport default function useAsync(fn, deps = []) {\n const [state, callback] = useAsyncFn(fn, deps, {\n loading: true,\n })\n\n useEffect(() => {\n callback()\n }, [callback])\n\n return state\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport useAsync from '../../hooks/useAsync'\n\n// TODO: Refactor without useAsync... just crudContext\nexport function PanelAddons(props) {\n const Ctx = useTraversal()\n let [action, setAction] = React.useState(false)\n\n const installAddon = async (Ctx, key) => {\n await Ctx.client.installAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} installed`, 'success')\n setAction(!action)\n }\n\n const removeAddon = async (Ctx, key) => {\n await Ctx.client.removeAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} removed`, 'success')\n setAction(!action)\n }\n\n const state = useAsync(async () => {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n return prepareData(data)\n }, [action])\n\n return (\n <React.Fragment>\n {state.loading ? (\n <div>loading</div>\n ) : state.error ? (\n <p>Error: {state.error.message}</p>\n ) : (\n <div className=\"columns\">\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Available Addons\n </h2>\n <hr />\n {state.value.available.length === 0 && (\n <p>No Addon available in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.available.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-primary is-small\"\n onClick={() => installAddon(Ctx, addon.id)}\n >\n Install\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n Installed Addons\n </h2>\n <hr />\n {state.value.installed.length === 0 && (\n <p>No Addon installed in this container</p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {state.value.installed.map((addon) => (\n <tr>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-danger is-small\"\n onClick={() => removeAddon(Ctx, addon.id)}\n >\n Remove\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n\nconst prepareData = (result) => {\n const addons = arrayToObject(result.available)\n return {\n available: result.available.filter(\n (item) => !result.installed.includes(item.id)\n ),\n installed: result.installed.map((id) => addons[id]),\n }\n}\n\nconst arrayToObject = (array) =>\n array.reduce((obj, item) => {\n obj[item.id] = item\n return obj\n }, {})\n","import React from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { Table } from '../ui/table'\nimport { Button } from '../input/button'\n\nexport function PanelBehaviors() {\n const { Ctx, get, result, loading, isError } = useCrudContext()\n const ops = useCrudContext()\n\n const [state, setState] = React.useState(false)\n\n const enableBehavior = (behavior) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior) => async () => {\n await ops.del({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n React.useEffect(() => {\n get('@behaviors')\n }, [])\n\n return (\n <div className=\"columns behaviors\">\n <div className=\"column is-8 is-size-7\">\n <h2 className=\"title is-size-5 has-text-grey-dark\">Behaviors</h2>\n {!loading && !isError && result && (\n <React.Fragment>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Static</h3>\n </td>\n </tr>\n {result.static.map((behavior) => (\n <tr key={behavior}>\n <td>Static</td>\n <td>{behavior}</td>\n <td className=\"\">\n <Button className=\"is-small is-pulled-right\" disabled>\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Enabled</h3>\n </td>\n </tr>\n {result.dynamic.map((behavior) => (\n <tr key={behavior}>\n <td>Enabled</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-danger is-pulled-right\"\n onClick={disableBehavior(behavior)}\n >\n Disable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">Available</h3>\n </td>\n </tr>\n {result.available.map((behavior) => (\n <tr key={behavior}>\n <td>Available</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-primary is-pulled-right\"\n onClick={enableBehavior(behavior)}\n >\n Enable\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n </React.Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import React, { createContext, useState, useContext } from 'react'\nimport Dropdown from './input/dropdown'\nimport { Checkbox } from './input/checkbox'\nimport { useTraversal } from '../contexts'\n\nconst ItemsActionsCtx = createContext({})\n\nexport const actions = {\n DELETE: {\n text: 'Delete',\n perms: ['guillotina.DeleteContent'],\n action: 'removeItems',\n },\n MOVE: {\n text: 'Move to...',\n perms: ['guillotina.MoveContent'],\n action: 'moveItems',\n },\n COPY: {\n text: 'Copy to...',\n perms: ['guillotina.DuplicateContent'],\n action: 'copyItems',\n },\n}\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\nexport function ItemsActionsProvider({ items, children }) {\n const traversal = useTraversal()\n const [selected, setSelected] = useState({})\n\n function onSelectAllItems(checked) {\n setSelected(\n items.reduce(\n (obj, item) => {\n obj[`${item.path}/${item.id}`] = checked\n return obj\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item) {\n setSelected((state) => ({\n ...state,\n all: false,\n [`${item.path}/${item.id}`]: !state[`${item.path}/${item.id}`],\n }))\n }\n\n function onAction(actionKey) {\n traversal.doAction(actions[actionKey].action, {\n items: items.filter((item) => selected[`${item.path}/${item.id}`]),\n })\n }\n\n return (\n <ItemsActionsCtx.Provider\n value={{\n onAction,\n onSelectAllItems,\n onSelectOneItem,\n selected,\n }}\n >\n {children}\n </ItemsActionsCtx.Provider>\n )\n}\n\n/**\n * Checkbox component without props that consume the ItemsActionsContext\n * and it select/unselect all items of the page.\n */\nexport function AllItemsCheckbox({ dataTest }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n key={selected.all}\n onChange={onSelectAllItems}\n style={{ marginLeft: 2 }}\n value={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\nexport function ItemCheckbox({ item, dataTest }) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n key={value}\n onChange={() => onSelectOneItem(item)}\n value={value}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Dropdown to choose some action to apply to the selected items.\n */\nexport function ItemsActionsDropdown() {\n const traversal = useTraversal()\n const { selected, onAction } = useContext(ItemsActionsCtx)\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(actions).map((action) => ({\n text: actions[action].text,\n value: action,\n }))\n\n return (\n <Dropdown\n disabled={disabled}\n id=\"items-actions\"\n onChange={onAction}\n optionDisabledWhen={(o) =>\n actions[o.value].perms.some((perm) => !traversal.hasPerm(perm))\n }\n options={options}\n >\n <div data-test=\"btnChooseActionTest\">Choose action...</div>\n </Dropdown>\n )\n}\n","import React from 'react'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nexport function Pagination({ current, total, doPaginate, pager }) {\n const maxPages = Math.ceil(total / pager)\n if (maxPages <= 1) {\n return null\n }\n\n return (\n <div>\n <p className=\"level-right has-text-grey is-size-7\">\n <span className=\"has-text-black\">{current + 1}</span>/\n <span className=\"has-text-black\">{maxPages}</span>&nbsp;of {total} items\n </p>\n <nav\n className=\"pagination is-size-7\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <a\n className=\"pagination-previous is-small\"\n disabled={current === 0}\n onClick={() => (current > 0 ? doPaginate(current - 1) : null)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-left\"></i>\n </span>\n </a>\n <a\n className=\"pagination-next is-small\"\n disabled={current >= maxPages - 1}\n onClick={() => doPaginate(current + 1)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-right\"></i>\n </span>\n </a>\n </nav>\n </div>\n )\n}\n","const base = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: {},\n}\n\nexport class Sharing {\n constructor(element) {\n Object.assign(this, element || base)\n }\n\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\n\nexport * from './sharing'\n\nexport class ItemModel {\n constructor(item, url, path) {\n this.item = item\n this.url = url\n this._path = path\n }\n\n get path() {\n // Compat\n let item = this.item['@id'] ? this.item['@id'] : this.item['@absolute_url']\n let path = item.split('//')[1].split('/').splice(1).join('/')\n path = `/${path}/`\n if (this.url.length > 0) {\n if (this.url.startsWith('/')) {\n path = path.replace(this.url.substring(1), '')\n } else {\n path = path.replace(this.url, '')\n }\n }\n\n return path\n }\n\n get name() {\n return this.item.title || this.item['@name']\n }\n\n get icon() {\n // eslint-disable-next-line\n const cfg = useConfig()\n if (cfg.icons && cfg.icons[this.type]) {\n return cfg.icons[this.type]\n }\n\n switch (this.type) {\n case 'GroupManager':\n return 'fas fa-users-cog'\n case 'UserManager':\n return 'fas fa-user-cog'\n case 'User':\n return 'fas fa-user'\n case 'Group':\n return 'fas fa-users'\n case 'Folder':\n return 'fas fa-folder'\n default:\n return 'fas fa-file'\n }\n }\n\n get fullPath() {\n return this._url + this.item.id\n }\n\n get id() {\n if (this.item.id) {\n return this.item.id\n }\n let id = this.item['@id'].split('&')[0].split('/')\n return id[id.length - 1]\n }\n\n get uid() {\n return this.item['@uid']\n }\n\n get type() {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\n\nexport function Item({ item, icon }) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\nexport function RItem({ item, search, columns }) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url, traversal.path)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item} data-test={`itemTest-${item['@name']}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} dataTest=\"itemCheckboxRowTest\" />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\nexport function ItemTitle({ title, actions }) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import React from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function SearchLabels(props) {\n const { query, label } = props\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n return (\n <div className=\"tags\">\n {search && (\n <Tag name={label ?? 'Search:'} color=\"is-light\" size=\"is-size-7\" />\n )}\n {search && (\n <Tag\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport {\n ItemsActionsProvider,\n AllItemsCheckbox,\n ItemsActionsDropdown,\n} from '../selected_items_actions'\nimport { Pagination } from '../pagination'\nimport { RItem } from '../item'\nimport { SearchLabels } from '../../components/searchLabels'\nimport { useTraversal } from '../../contexts'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useEffect } from 'react'\nimport { useLocation } from '../../hooks/useLocation'\n\nconst initialState = {\n page: 0,\n items: [],\n loading: true,\n total: 0,\n}\n\nexport function PanelItems() {\n const [location, setLocation] = useLocation()\n const { PageSize, SearchEngine } = useConfig()\n\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initialState)\n const { items, loading, total } = state\n\n const columns =\n Ctx.registry.getItemsColumn(Ctx.context['@type']) ||\n Ctx.client.getItemsColumn()\n\n let search = location.get('q')\n let type = location.get('type')\n let page\n\n try {\n page = parseInt(location.get('page')) || 0\n } catch {\n page = 0\n }\n\n let searchParsed = undefined\n if (search && search !== '') {\n searchParsed = parser(search)\n }\n\n let typeParsed = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n useEffect(() => {\n if (Ctx.state.loading) return\n ;(async () => {\n let data\n setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n\n let qsParsed = Ctx.client[fnName]({\n path: Ctx.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n let qs = ''\n if (search || type) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ])\n } else {\n qs = buildQs(qsParsed)\n }\n\n data = await Ctx.client.search(\n Ctx.path,\n qs,\n false,\n false,\n page * PageSize,\n PageSize\n )\n setState({\n items: data.member,\n loading: false,\n total: data.items_count,\n })\n })()\n }, [search, type, Ctx.state.refresh, page])\n\n const doPaginate = (page) => {\n setLocation({ page: page })\n }\n\n return (\n <ItemsActionsProvider items={items}>\n <div className=\"columns\">\n <div className=\"column is-2 is-size-7\">\n <ItemsActionsDropdown />\n </div>\n <div className=\"column\">\n <SearchLabels />\n </div>\n <div className=\"column\">\n <SearchLabels label=\"Type\" query=\"type\" />\n </div>\n <div className=\"column\">\n <Pagination\n current={page}\n total={total}\n key=\"pagination-top\"\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </div>\n {loading && <div className=\"progress-line\"></div>}\n {!loading && (\n <table\n className=\"table is-fullwidth is-hoverable\"\n data-test=\"itemPanelTableTest\"\n >\n <thead className=\"is-size-7\">\n <tr>\n <th>\n <AllItemsCheckbox />\n </th>\n {columns.map((i) => (\n <th key={i.label} className=\"has-text-info\">\n {i.label}\n </th>\n ))}\n <th>&nbsp;</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 &nbsp;\n <span>{Ctx.context.title || Ctx.context['@name']}</span>\n </h2>\n </div>\n <div className=\"level-right\">\n <PropertiesButtonView />\n </div>\n </div>\n\n <hr />\n {schema && schema.data && !schema.loading && (\n <div className=\"columns\">\n <div className=\"column\">\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {showProperties.map((prop) => (\n <tr key={'prop' + prop}>\n <td>{prop}</td>\n <td>\n <EditableField\n field={prop}\n value={Ctx.context[prop]}\n modifyContent={false}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {properties.length > 0 && (\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th className=\"is-2\">Prop</th>\n <th className=\"is-8\">Value</th>\n </tr>\n </thead>\n <tbody>\n {properties.map(({ key, value }) => {\n return (\n <tr key={'prop' + key}>\n <td>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={get(schema.data, 'required', []).includes(\n key\n )}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n <PropertiesView />\n <BehaviorsView context={Ctx.context} schema={schema.data} />\n </div>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async (ev) => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionPrinrole({ principals, roles, operations, refresh }) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n roles: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Principal</label>\n <Select\n appendDefault\n options={principals}\n onChange={(ev) => setState({ principal: ev.target.value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n options={roles}\n onChange={getMultiples('roles', setState)}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n role: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (ev) => {\n let values = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n values = values.concat([ev.target.selectedOptions[i].value])\n }\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n console.log(state)\n setState({ error: 'Invalid form' })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && <ErrorZone>Invalid form data</ErrorZone>}\n <div className=\"field\">\n <label className=\"label\">Select a Role</label>\n <Select\n appendDefault\n options={roles}\n onChange={(ev) => setState({ role: ev.target.value })}\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Select permissions</label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Operation</label>\n <Select\n appendDefault\n options={operations}\n onChange={(ev) => setState({ setting: ev.target.value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n Save\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport useSetState from '../../hooks/useSetState'\nimport { PermissionPrinperm } from './permissions_prinperm'\nimport { PermissionPrinrole } from './permissions_prinrole'\nimport { PermissionRoleperm } from './permissions_roleperm'\nimport { Select } from '../input/select'\nimport { Sharing } from '../../models'\nimport { Table } from '../ui/table'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\n\nexport function PanelPermissions() {\n const { get, result, loading } = useCrudContext()\n const ctx = useTraversal()\n\n const [reset, setReset] = React.useState(1)\n\n React.useEffect(() => {\n get('@sharing')\n }, [reset])\n\n const perms = new Sharing(result)\n\n return (\n <div className=\"columns\">\n {!loading && (\n <div\n className=\"column is-8 is-size-7 permissions\"\n data-test=\"containerPermissionsInfoTest\"\n >\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Role Permissions\n </h2>\n <Table headers={['Role', 'Premission', 'Setting']}>\n {perms.roles.map((role, idx) => (\n <React.Fragment key={'ff' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n {/* <td>\n <Icon icon=\"fas fa-ban\" />\n <span>Remove</span>\n </td> */}\n </tr>\n {Object.keys(perms.getRole(role)).map((row, idx) => (\n <tr key={'k' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getRole(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.roles.length === 0 && (\n <tr>\n <td colSpan=\"3\">No roles permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Permissions\n </h2>\n <Table headers={['Principal', 'Premission', 'Setting']}>\n {perms.principals.map((role, idx) => (\n <React.Fragment key={'f2' + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrincipals(role)).map((row, idx) => (\n <tr key={'x' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrincipals(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.principals.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals permissions defined</td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n Principal Roles\n </h2>\n <Table headers={['Principal', 'Role', 'Setting']}>\n {perms.prinrole.map((role, idx) => (\n <React.Fragment key={role + idx}>\n <tr>\n <td colSpan=\"3\" className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrinroles(role)).map((row, idx) => (\n <tr key={'xx' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrinroles(role)[row]}</td>\n </tr>\n ))}\n </React.Fragment>\n ))}\n {perms.prinrole.length === 0 && (\n <tr>\n <td colSpan=\"3\">No principals roles defined</td>\n </tr>\n )}\n </Table>\n </div>\n )}\n {ctx.hasPerm('guillotina.ChangePermissions') && (\n <AddPermission refresh={setReset} reset={reset} />\n )}\n </div>\n )\n}\n\nconst initial = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n currentObj: undefined,\n}\n\nconst operations = [\n { text: 'Allow', value: 'Allow' },\n { text: 'Deny', value: 'Deny' },\n { text: 'AllowSingle', value: 'AllowSingle' },\n { text: 'Unset', value: 'Unset' },\n]\n\nconst defaultOptions = [\n { text: 'Choose..', value: '' },\n { text: 'Role Permissions', value: 'roleperm' },\n { text: 'Principal Permissions', value: 'prinperm' },\n { text: 'Principal Roles', value: 'prinrole' },\n]\n\nexport function AddPermission({ refresh, reset }) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n React.useEffect(() => {\n async function init() {\n const permissions = (await Ctx.client.getAllPermissions(Ctx.path)).map(\n (perm) => ({\n text: perm,\n value: perm,\n })\n )\n let principals = []\n let roles = []\n\n let principalsData = await Ctx.client.getPrincipals(Ctx.path)\n const groups = principalsData.groups.map((group) => ({\n text: group.id,\n value: group.id,\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname || user.id,\n value: user.id,\n }))\n principals = [...groups, ...users]\n\n const req = await Ctx.client.getRoles(Ctx.path)\n if (req.ok) {\n roles = (await req.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">Add Permissions</h1>\n <p>Select a type:</p>\n <Select\n options={defaultOptions}\n onChange={(v) => setState({ current: v.target.value })}\n dataTest=\"selectPermissionTypeTest\"\n />\n <hr />\n {state.current && state.current === 'roleperm' && (\n <PermissionRoleperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinperm' && (\n <PermissionPrinperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinrole' && (\n <PermissionPrinrole\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\nimport { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\n\nconst prepareAvailable = (items, already, title) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n if (items[0] && typeof items[0] === 'string') {\n return [def]\n .concat(items.map((x) => ({ value: x, text: x })))\n .filter((item) => !already.includes(item.value))\n }\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}) {\n const selectRef = React.useRef()\n\n const [result, setResult] = React.useState(items)\n available = prepareAvailable(available || [], result, title)\n\n const remove = (value) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value) => {\n if (value === '') return\n const items = result.concat([value])\n setResult(items)\n onChange(items)\n }\n\n return (\n <React.Fragment>\n <h3 className=\"title is-size-6\">{title}</h3>\n {loading ? <Loading style={{ marginBottom: '1.5rem' }} /> : <hr />}\n <ul>\n <div className=\"tags\">\n {result.map((item) => (\n <Tag name={item} onRemove={() => remove(item)} key={item} />\n ))}\n </div>\n {result.length === 0 && (\n <li style={{ marginBottom: '20px' }}>{noData}</li>\n )}\n {available.length > 1 && (\n <li className=\"widget-list-add select is-small\">\n <Select\n options={available}\n ref={selectRef}\n onChange={(ev) => {\n addItem(ev.target.value)\n selectRef.current.value = ''\n }}\n />\n </li>\n )}\n </ul>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useEffect } from 'react'\n\nimport Dropdown from './input/dropdown'\nimport useSetState from '../hooks/useSetState'\nimport { Button } from './input/button'\nimport { Icon } from './ui/icon'\nimport { useTraversal } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useLocation } from '../hooks/useLocation'\nimport { Select } from './input/select'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const [state, setState] = useSetState(initialState)\n const Ctx = useTraversal()\n const Config = useConfig()\n useEffect(() => {\n ;(async function anyNameFunction() {\n const types = await Ctx.client.getTypes(Ctx.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n })()\n }, [Ctx.path])\n\n const doAction = (item) => {\n Ctx.doAction('addItem', { type: item })\n setState({ isActive: false })\n }\n\n if (state.types && state.types.length === 1) {\n return (\n <Button\n className={'is-small is-success'}\n onClick={() => doAction(state.types[0])}\n dataTest=\"itemAddTypeTest\"\n >\n Add {state.types[0]}\n </Button>\n )\n }\n\n if (state.types && state.types.length === 0) {\n return null\n }\n\n // Implement some kind of filtering\n return (\n <Dropdown\n id=\"dropdown-menu\"\n isRight\n onChange={doAction}\n options={(state.types || []).map((item) => ({ text: item, value: item }))}\n >\n <span className=\"icon\" data-test=\"itemAddTypeTest\">\n <i className=\"fas fa-plus\"></i>\n </span>\n </Dropdown>\n )\n}\n\nexport function ContextToolbar({ AddButton, ...props }) {\n const [state, setState] = useSetState(initialState)\n const [location, setLocation, del] = useLocation()\n const traversal = useTraversal()\n const ref = React.useRef(null)\n const Config = useConfig()\n\n const searchText = location.get('q')\n\n useEffect(() => {\n loadTypes()\n }, [traversal.path])\n async function loadTypes() {\n const types = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, tab: 'Items', page: 0 })\n ev.preventDefault()\n }\n\n const onSearchByType = (ev) => {\n const typeText = ev.target.value\n if (typeText && typeText !== '') {\n setLocation({ type: typeText, tab: 'Items', page: 0 })\n } else {\n del('type')\n }\n }\n\n // cleanup form on state.search change\n React.useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <React.Fragment>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n ref={ref}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder=\"Search...\"\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <div className=\"level-item\">\n <Select\n appendDefault\n dataTest=\"selectFilterTypeTest\"\n classWrap=\"is-size-7\"\n options={(state.types || []).map((item) => ({\n text: item,\n value: item,\n }))}\n onChange={onSearchByType}\n />\n </div>\n {traversal.hasPerm('guillotina.AddContent') && (\n <div className=\"level-item\">\n {AddButton !== undefined ? (\n <AddButton />\n ) : (\n <CreateButton {...props} />\n )}\n </div>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Notification } from './ui/notification'\nimport { Delete } from './ui/delete'\n\nexport function Flash() {\n const Ctx = useTraversal()\n const { flash } = Ctx.state\n\n if (!flash.message) return null\n\n return (\n <Notification isColor={flash.type}>\n {flash.message}\n <Delete onClick={() => Ctx.clearFlash()} />\n </Notification>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\n\nfunction FallbackTab({ title }) {\n return <div>Tab '{title}' not found</div>\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n ...props\n}) {\n const [location, setLocation] = useLocation()\n\n if (location.get('tab')) {\n currentTab = location.get('tab')\n } else {\n currentTab = currentTab || Object.keys(tabs)[0]\n }\n\n /*if (!Object.keys(tabs).includes(currentTab)) {\n setLocation(defaultTab)\n currentTab = defaultTab\n }*/\n\n const [current, setTab] = useState(currentTab)\n const CurrentComp = tabs[current] || fallback\n\n React.useEffect(() => {\n if (Object.keys(tabs).includes(currentTab)) {\n setTab(currentTab)\n // setLocation({tab: currentTab})\n }\n }, [currentTab, tabs])\n\n const changeTab = (tab) => {\n setLocation({ tab: tab })\n }\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"tabs\">\n <ul>\n {Object.keys(tabs).map((tab) => (\n <li\n className={\n 'is-size-7 ' + (tab === current ? 'is-active' : '')\n }\n key={tab}\n >\n <a\n data-test={`tabTest-${tab.toLowerCase()}`}\n onClick={() => changeTab(tab)}\n >\n {tab}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n {rightToolbar && <div className=\"level-right\">{rightToolbar}</div>}\n </div>\n <div className=\"container\">\n <CurrentComp title={current} {...props} />\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { useTraversal } from '../contexts'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n\nconst tabs = {\n Items: PanelItems,\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\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\nconst tabs = {\n Items: PanelItems,\n Addons: PanelAddons,\n Registry: PanelNotImplemented,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\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}\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 &nbsp;User\n </h2>\n\n <hr />\n <div className=\"columns\">\n <div className=\"column\">\n <div className=\"container user-props\">\n <p>\n <label>Username: </label> {Ctx.context.username} (\n {Ctx.context.email})\n </p>\n <p>\n <label> Created: </label> {formatDate(Ctx.context.creation_date)}\n </p>\n <p>\n <label> Updated: </label>{' '}\n {formatDate(Ctx.context.modification_date)}\n </p>\n <Button\n className=\"is-size-7 is-info\"\n onClick={() => {\n Ctx.doAction('changePassword')\n }}\n >\n Change Password\n </Button>\n </div>\n <hr />\n <UserForm\n actionName=\"Save\"\n onSubmit={(ev) => updateObject(ev)}\n isEdit={true}\n formData={Ctx.context}\n exclude={['password']}\n remotes={remotes}\n submitButton={false}\n >\n <Button loading={loading} dataTest=\"formUserTestBtnSubmit\">\n Update\n </Button>\n </UserForm>\n </div>\n <div className=\"column\">\n <TagsWidget\n onChange={updateRemote('user_groups')}\n items={Ctx.context.user_groups}\n title=\"Groups\"\n noData=\"There is no groups for this user\"\n available={state.groups}\n />\n <hr />\n <TagsWidget\n onChange={updateRemote('user_roles')}\n items={remotes.user_roles}\n title=\"Roles\"\n noData=\"The user doesn't have any role\"\n available={state.roles}\n />\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\n\nconst withError = (res) => res.status >= 300\nexport function CopyItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function copyItems(path, form) {\n const responses = await Promise.all(\n items.map((item, i) => {\n const input = form[i + 1] || {}\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@duplicate`, {\n destination: path,\n new_id: input.value || getNewId(item.id),\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be copied to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not copied correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items copied!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={Ctx.client.clearContainerFromPath(Ctx.path)}\n onConfirm={copyItems}\n onCancel={() => Ctx.cancelAction()}\n >\n {items.map((item) => (\n <React.Fragment key={item.id}>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item.id}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item.id)}\n />\n </React.Fragment>\n ))}\n &nbsp;\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\n\nexport function CopyItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const { item } = props\n\n async function copyItem(path, form) {\n const input = form[1] || {}\n const { isError, errorMessage } = await post(\n {\n destination: path,\n new_id: input.value || getNewId(item['@name']),\n },\n '@duplicate'\n )\n\n if (!isError) {\n Ctx.flash(`Field copied!`, 'success')\n } else {\n Ctx.flash(`Failed to copy item!: ${errorMessage}`, 'danger')\n }\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${item['parent']['@name'] ?? '/'}`}\n onConfirm={copyItem}\n onCancel={() => Ctx.cancelAction()}\n >\n <React.Fragment>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item['@name']}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item['@name'])}\n />\n </React.Fragment>\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\n\nconst withError = (res) => res.status >= 300\n\nexport function MoveItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function moveItems(path) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@move`, {\n destination: path,\n new_id: item['@name'],\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be moved to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not moved correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items moved!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItems}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function MoveItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path) {\n const { isError, errorMessage, result } = await post(\n {\n destination: path,\n new_id: item['@name'],\n },\n '@move'\n )\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(result['@url'])}/`,\n tab: '',\n })\n Ctx.flash(`Field moved!`, 'success')\n } else {\n Ctx.flash(`Failed to move item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function RemoveItem(props) {\n const Ctx = useTraversal()\n const { del, loading } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function removeItem() {\n const { isError, errorMessage } = await del()\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(item['parent']['@id'])}/`,\n tab: '',\n })\n Ctx.flash(`Field removed!`, 'success')\n } else {\n Ctx.flash(`Failed to delete item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItem}\n message={`Are you sure to remove: ${item['@name']}?`}\n />\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Input } from '../components/input/input'\nimport { Button } from '../components/input/button'\nimport { Form } from '../components/input/form'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword(props) {\n const [state, setState] = React.useState(initial)\n const [perror, setPerror] = React.useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n // const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n if (state.pass1 === '') {\n setPerror('provide a password')\n return\n }\n\n if (state.pass1 !== state.pass2) {\n setPerror(\"passwords doesn't match\")\n return\n }\n\n setPerror(undefined)\n\n let form = {\n password: state.pass1,\n }\n\n const { isError, errorMessage } = await patch(form)\n if (!isError) {\n Ctx.flash('Password Changed', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n const setPass = (field) => (val) => {\n let n = {}\n n[field] = val\n setState((state) => ({ ...state, ...n }))\n setPerror(undefined)\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Change'}\n title={'Change Password'}\n >\n {perror && (\n <div className=\"notification is-danger is-size-7\">\n <button className=\"delete\"></button>\n {perror}\n </div>\n )}\n <Input\n id=\"pass\"\n placeholder=\"New Password\"\n type=\"password\"\n value={state.pass1}\n onChange={setPass('pass1')}\n />\n\n <Input\n id=\"pass\"\n placeholder=\"Repeat Password\"\n type=\"password\"\n value={state.pass2}\n onChange={setPass('pass2')}\n />\n <Button>Change</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { Input } from '../components/input/input'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\n\nexport function BaseForm({ onSubmit, actionName, title, dataTest, loading }) {\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n const submit = () => {\n if (name === '') {\n setError('This field is required')\n return\n }\n onSubmit({ title: name, id })\n }\n\n const setTitle = (value) => {\n setId(stringToSlug(value))\n setName(value)\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n <Input\n id=\"title\"\n placeholder=\"Title\"\n required\n value={name}\n onChange={setTitle}\n autofocus\n error={error}\n dataTest=\"titleTestInput\"\n />\n\n <Input\n id=\"id\"\n placeholder=\"Id\"\n value={id}\n onChange={setId}\n dataTest=\"idTestInput\"\n />\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import React from 'react'\nimport { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Icon } from '../components/ui/icon'\nimport { useEffect } from 'react'\nimport { useState } from 'react'\nimport { Select } from '../components/input/select'\nimport { SearchInput } from '../components/input/search_input'\nimport { Tag } from '../components/ui/tag'\nimport { parser } from '../lib/search'\nimport { EditableField } from '../components/fields/editableField'\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const Ctx = useTraversal()\n\n return (\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'Group' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-users\" />\n <span>Add a Group</span>\n </button>\n )\n}\n\nexport function GroupsCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\n {...props}\n />\n )\n}\n\nlet sortParsed = parser(`_sort_asc=id`)\nlet searchParsed = parser('type_name=User')\n\nexport function GroupCtx() {\n const { Ctx, patch } = useCrudContext()\n const [roles, setRoles] = useState([])\n\n useEffect(() => {\n ;(async () => {\n const requestGetRoles = await Ctx.client.getRoles(Ctx.path)\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = (await requestGetRoles.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n })()\n }, [])\n\n const handleResponse = async (isError, message, errorMessage) => {\n if (!isError) {\n Ctx.flash(message, 'success')\n Ctx.refresh()\n } else {\n Ctx.flash(`Failed to update!: ${errorMessage}`, 'danger')\n }\n }\n\n const addRole = async (ev) => {\n const role = ev.target.value\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.concat(role),\n })\n handleResponse(isError, `Role ${role} added to group`, errorMessage)\n }\n\n const removeRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.filter((r) => r !== role),\n })\n handleResponse(isError, `Role ${role} removed from group`, errorMessage)\n }\n\n const addUser = async (newUser) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUser.id] = true\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${newUser.title} added to group!`,\n errorMessage\n )\n }\n\n const removeUser = async (userToRemove) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = userToRemove !== user\n })\n const { isError, errorMessage } = await patch({ users: data })\n handleResponse(\n isError,\n `User ${userToRemove} removed from group`,\n errorMessage\n )\n }\n\n return (\n <div className=\"container group-view\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-users\"></Icon>\n <span>&nbsp;Group</span>\n </h2>\n <hr />\n <div className=\"columns\">\n <div className=\"column is-4\">\n <label className=\"label\">Title: </label>\n <EditableField\n field=\"title\"\n modifyContent\n value={Ctx.context.title}\n />\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Roles</h3>\n <p>Add a Role</p>\n <Select\n options={roles.filter(\n (role) => !Ctx.context.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={addRole}\n />\n <hr />\n {Ctx.context.user_roles.map((urole) => (\n <p className=\"control\" key={`roles_${urole}`}>\n <Tag\n name={urole}\n onRemove={() => removeRole(urole)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">Users</h3>\n <p>Add a User</p>\n <SearchInput\n path={Ctx.containerPath}\n qs={[...searchParsed, ...sortParsed]}\n traversal={Ctx}\n onChange={addUser}\n btnClass=\"is-small\"\n />\n <hr />\n {Ctx.context.users.map((user) => (\n <p className=\"control\" key={`user_${user}`}>\n <Tag\n name={user}\n onRemove={() => removeUser(user)}\n size=\"is-small\"\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nexport default class ErrorBoundary extends React.Component {\n state = {}\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n errorMsg: error.message,\n errorStack: errorInfo.componentStack,\n })\n }\n\n render() {\n const { hasError, errorMsg, errorStack } = this.state\n\n if (hasError) {\n return (\n <div className=\"box main-panel\">\n <div style={style}>Something went wrong.</div>\n {errorMsg && (\n <p>\n <b>{errorMsg}</b>\n </p>\n )}\n {errorStack && <p>{errorStack}</p>}\n </div>\n )\n }\n\n return this.props.children\n }\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotAllowed() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-danger\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-ban\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">Not Allowed</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function NotFound() {\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-grey\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-dizzy\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">404. Not Found</h1>\n </div>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n let segments = ctx.path.replace(/\\/$/, '').split('/')\n let links = buildPaths(segments)\n\n if (segments.length === 1) {\n return false\n }\n\n return (\n <nav className=\"breadcrumb\" aria-label=\"breadcrumbs\">\n <ul>\n {segments.map((item, indx) => {\n const path = links[indx]\n const onClick = (e) => {\n if (window.event.ctrlKey || window.event.metaKey) return\n e.preventDefault()\n navigate({ path }, true)\n }\n\n return indx === 0 ? (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-home`}\n >\n <span className=\"icon\">\n <i className=\"fas fa-home\"></i>\n </span>\n </a>\n </li>\n ) : (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-${item.toLowerCase()}`}\n >\n {item}\n </a>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nconst buildPaths = (segments) => {\n let current = ''\n let results = []\n segments.map((item, indx) => {\n if (indx === 0) {\n current += '/'\n } else {\n current += item + '/'\n }\n results.push(current)\n return item\n })\n return results\n}\n","import React from 'react'\nimport { Textarea } from '../input/textarea'\nimport { Checkbox } from '../input/checkbox'\nimport { FileUpload } from '../input/upload'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { InputList } from '../input/input_list'\nimport { get } from '../../lib/utils'\n\nexport const EditComponent = React.forwardRef(\n ({ schema, val, setValue, dataTest, className, ...rest }, ref) => {\n if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={val || ''}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n value={!!val}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.type === 'array') {\n return (\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'file') {\n return (\n <FileUpload\n onChange={(ev) => setValue(ev)}\n label={get(val, 'filename', null)}\n dataTest={dataTest}\n {...rest}\n />\n )\n } else if (schema?.widget === 'select') {\n return (\n <Select\n value={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n {...rest}\n options={schema?.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n onChange={(ev) => {\n const selectValue = get(ev, 'target.value', '')\n return setValue(selectValue)\n }}\n />\n )\n }\n const getInputType = () => {\n switch (schema?.type) {\n case 'integer':\n return 'number'\n case 'date':\n return 'date'\n case 'datetime':\n return 'datetime-local'\n default:\n return 'text'\n }\n }\n return (\n <Input\n value={val || ''}\n className={className}\n dataTest={dataTest}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n type={getInputType()}\n {...rest}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","import { FolderCtx } from '../views/folder'\nimport { ItemCtx } from '../views/item'\nimport { ApplicationCtx } from '../views/application'\nimport { DatabaseCtx } from '../views/application'\nimport { ContainerCtx } from '../views/container'\nimport { UsersCtx } from '../views/users'\nimport { UserCtx } from '../views/users'\nimport { CopyItems } from '../actions/copy_items'\nimport { CopyItem } from '../actions/copy_item'\nimport { MoveItems } from '../actions/move_items'\nimport { MoveItem } from '../actions/move_item'\nimport { RemoveItems } from '../actions/remove_items'\nimport { RemoveItem } from '../actions/remove_item'\nimport { AddItem } from '../actions/add_item'\nimport { ChangePassword } from '../actions/change_pass'\nimport { BaseForm } from '../forms/base'\nimport { UserForm } from '../forms/users'\nimport { IAttachment } from '../components/behaviors/iattachment'\nimport { IDublinCore } from '../components/behaviors/idublincore'\nimport { IMultiAttachment } from '../components/behaviors/imultiattachment'\nimport { GroupsCtx } from '../views/groups'\nimport { GroupCtx } from '../views/groups'\nimport ErrorBoundary from '../components/error_boundary'\nimport React from 'react'\nimport { NotAllowed } from '../components/notallowed'\nimport { NotFound } from '../components/notfound'\nimport { Path } from '../components/path'\nimport { EditComponent } from '../components/fields/editComponent'\nimport { RenderFieldComponent } from '../components/fields/renderField'\n\nlet registry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n RenderFieldComponent: RenderFieldComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n}\n\nconst get = (key, param, fallback) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback) => {\n if (!context) return\n // console.log(\"Component for path\", path)\n // lookup by path\n if (registry.paths[path]) {\n return registry.paths[path]\n }\n // by type\n if (registry.views[context['@type']]) {\n return registry.views[context['@type']]\n }\n if (fallback) {\n return fallback\n }\n return defaultComponent(context)\n}\n\nconst getItemsColumn = (type) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getForm = (type, fallback = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type, fallback) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type, fallback) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type) => {\n return registry.properties[type] || {}\n}\n\nexport const defaultComponent = (context) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data) {\n // if data is provided we need to merge it into actual registry\n const ref = React.useRef()\n if (data && !ref.current) {\n console.log('registry initialized')\n ref.current = true\n Object.keys(data).map(\n (key) => (registry[key] = { ...registry[key], ...data[key] })\n )\n }\n\n return {\n registry,\n get,\n getForm,\n getComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n }\n}\n\n/*\n\nconst registry = {\n paths: {\n \"/db/guillotina/tags/\": TagsContext\n },\n forms: {\n Tag: AddTagForm\n }\n}\n\n\n<guillotina registry={registry} />\n\n\n*/\n","export const initialState = {\n path: '',\n loading: false,\n context: undefined,\n flash: {\n message: undefined,\n type: undefined,\n },\n action: {\n action: undefined,\n params: undefined,\n },\n permissions: undefined,\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport function guillotinaReducer(state, action) {\n switch (action.type) {\n case 'SET_PATH':\n return { ...state, path: action.payload, loading: true }\n\n case 'SET_CONTEXT':\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case 'SET_ERROR':\n return { ...state, errorStatus: action.payload, loading: false }\n\n case 'SET_FLASH':\n return { ...state, ...action.payload }\n\n case 'CLEAR_FLASH':\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case 'SET_ACTION':\n return { ...state, action: action.payload }\n case 'CLEAR_ACTION':\n return { ...state, action: { action: undefined, params: undefined } }\n\n case 'REFRESH':\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case 'APPLY':\n return { ...state, context: { ...state.context, ...action.payload } }\n\n default:\n return state\n }\n}\n","import React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport { guillotinaReducer } from '../reducers/guillotina'\nimport { initialState } from '../reducers/guillotina'\nimport { Loading } from './ui/loading'\n\nexport function Guillotina({ auth, ...props }) {\n const url = props.url || 'http://localhost:8080' // without trailing slash\n const config = props.config || {}\n const client = useGuillotinaClient()\n\n const { Permissions } = useConfig(config)\n const registry = useRegistry(props.registry || {})\n // Location is cooked routing solution (only uses search params)\n const [location] = useLocation()\n\n // if there is no path provided just go to root\n const searchPath = location.get('path') || '/'\n if (searchPath && searchPath !== '') {\n initialState.path = searchPath\n }\n\n const [state, dispatch] = useReducer(guillotinaReducer, initialState)\n\n const { path, refresh } = state\n\n useEffect(() => {\n dispatch({ type: 'SET_PATH', payload: searchPath })\n }, [searchPath])\n\n useEffect(() => {\n ;(async () => {\n let data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({ type: 'SET_ERROR', payload: 'notallowed' })\n return\n } else if (data.status === 404) {\n dispatch({ type: 'SET_ERROR', payload: 'notfound' })\n return\n }\n let context = await data.json()\n const pr = await client.canido(path, Permissions)\n const permissions = await pr.json()\n dispatch({ type: 'SET_CONTEXT', payload: { context, permissions } })\n })()\n }, [path, refresh, client])\n\n const ErrorBoundary = registry.get('views', 'ErrorBoundary')\n const NotAllowed = registry.get('views', 'NotAllowed')\n const NotFound = registry.get('views', 'NotFound')\n const Path = registry.get('components', 'Path')\n\n const contextData = {\n url,\n client,\n auth,\n state,\n dispatch,\n registry,\n flash: config.flash,\n }\n\n const { action, errorStatus, permissions } = state\n const Main = registry.getComponent(state.context, path)\n const Action = action.action ? registry.getAction(action.action) : null\n\n return (\n <ErrorBoundary>\n {!errorStatus && (\n <TraversalProvider {...contextData}>\n {permissions && (\n <React.Fragment>\n {action.action && <Action {...action.params} />}\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <Path />\n </div>\n </div>\n </div>\n <Flash />\n {Main && (\n <ErrorBoundary>\n <div className=\"box main-panel\">\n {state.loading && <Loading />}\n {!state.loading && <Main state={state} />}\n </div>\n </ErrorBoundary>\n )}\n {/* <p>Guillotina {JSON.stringify(state.context)}</p> */}\n </React.Fragment>\n )}\n </TraversalProvider>\n )}\n {errorStatus === 'notallowed' && <NotAllowed />}\n {errorStatus === 'notfound' && <NotFound />}\n </ErrorBoundary>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\n\nexport function Layout({ children, onLogout, auth }) {\n const doLogout = (ev) => {\n auth.logout()\n onLogout()\n }\n\n return (\n <React.Fragment>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\">\n <a className=\"navbar-item\" href=\"/\">\n <img\n src={process.env.PUBLIC_URL + '/logo.svg'}\n alt=\"Guillotina logo\"\n height=\"80\"\n />\n </a>\n <a\n id=\"burger\"\n href=\"/\"\n role=\"button\"\n className=\"navbar-burger burger\"\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </a>\n </div>\n <div id=\"navbarmenu\" className=\"navbar-menu\">\n <div className=\"navbar-start\"></div>\n <div className=\"navbar-end\">\n <div className=\"navbar-item\">\n {auth.isLogged && (\n <div className=\"buttons\">\n <button className=\"button is-size-7\" onClick={doLogout}>\n <Icon icon=\"fas fa-sign-out-alt\" size=\"is-size-7\" />\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </nav>\n </header>\n <section className=\"section main\">\n <div className=\"container\">\n <div className=\"column\">{children}</div>\n </div>\n </section>\n </React.Fragment>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}) => {\n const [state, setState] = useSetState(initialState)\n const inputRef = useRef(null)\n\n useEffect(() => {\n if (inputRef) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev) => {\n ev.preventDefault()\n setState({ loading: true, errors: undefined })\n const { username, password } = state\n\n if (currentSchema !== '') {\n auth.setAccount(currentSchema)\n }\n const res = await auth.login(username, password)\n\n if (!res) {\n setState({ errors: auth.errors, loading: false })\n return\n }\n\n if (onLogin) {\n onLogin()\n }\n }\n\n return (\n <React.Fragment>\n <form\n className=\"login__form\"\n action=\"\"\n onSubmit={doLogin}\n data-test=\"formLoginTest\"\n >\n <div className=\"field\">\n <label className=\"label\">Username:</label>\n <input\n type=\"text\"\n className=\"input\"\n placeholder=\"Username\"\n onChange={(e) => setState({ username: e.target.value })}\n value={state.username}\n ref={inputRef}\n data-test=\"inputUsernameLoginTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Password:</label>\n <input\n type=\"password\"\n className=\"input\"\n placeholder=\"Password\"\n onChange={(e) => setState({ password: e.target.value })}\n value={state.password}\n data-test=\"inputPasswordLoginTest\"\n />\n </div>\n {schemas && schemas.length > 1 && (\n <div className=\"field\">\n <label className=\"label\">Schema:</label>\n <div className=\"select\">\n <select\n data-test=\"selectSchemaTest\"\n onChange={(e) => setCurrentSchema(e.target.value)}\n >\n {schemas.map((s) => (\n <option value={s} key={s}>\n {s}\n </option>\n ))}\n </select>\n </div>\n </div>\n )}\n <div className=\"field\">\n <button\n className=\"button is-warning\"\n type=\"submit\"\n data-test=\"btnLoginTest\"\n >\n Login\n </button>\n </div>\n <div className=\"field\">\n {state.errors && (\n <p className=\"has-text-danger\">\n {ERRORS[state.errors] || 'Generic error'}\n </p>\n )}\n </div>\n </form>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useTraversal } from '../contexts'\nimport useSetState from '../hooks/useSetState'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}) {\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n ;(async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, type)\n setSchema({\n loading: false,\n data: dataJson,\n formFields: [...dataJson.required, ...extraFields],\n })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n })()\n }, [schema])\n\n const submit = () => {\n const currentErrors = {}\n\n schema.formFields.forEach((key) => {\n if (!formData[key]) {\n currentErrors[key] = 'This field is required'\n }\n })\n\n if (Object.keys(currentErrors).length > 0) {\n setErrors(currentErrors)\n return\n }\n\n onSubmit({ id: formData.uuid, ...formData })\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n {schema &&\n schema.data &&\n !schema.loading &&\n schema.formFields.map((key) => {\n if (!ignoreFiels.includes(key)) {\n const value = schema.data.properties[key]\n return (\n <EditComponent\n key={key}\n id={key}\n placeholder={value?.title ?? ''}\n className=\"\"\n required\n schema={schema.data.properties[key]}\n setValue={(ev) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n [key]: ev,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n })\n } else {\n setFormData({ ...formData, [key]: ev })\n }\n }}\n error={errors[key]}\n dataTest={`${key}TestInput`}\n val={key in formData ? formData[key] : ''}\n />\n )\n }\n return null\n })}\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || 'Add'}\n </button>\n </div>\n </Form>\n )\n}\n","import jwt_decode from 'jwt-decode'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n\n constructor(url) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account) {\n this.url = this.base_url + account\n }\n\n async login(username, password) {\n const url = this.getUrl('@login')\n try {\n const data = await fetch(url, {\n method: 'post',\n body: JSON.stringify({\n username: username,\n password: password,\n }),\n })\n if (data.status === 200) {\n const credentials = await data.json()\n this.storeAuth(credentials, username)\n return true\n } else {\n this.errors = 'invalid_credentials'\n }\n } catch (e) {\n this.errors = 'failed_to_fetch'\n return false\n }\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n return false\n }\n\n get isLogged() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token, expires] = this._getToken()\n if (!token || !expires) {\n return false\n }\n if (this.isExpired(expires)) {\n return false\n }\n return true\n }\n\n get username() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token] = this._getToken()\n const data = jwt_decode(token)\n console.log(token)\n return data.id\n }\n\n storeAuth(data) {\n localStorage.setItem('auth', data.token)\n localStorage.setItem('auth_expires', data.exp)\n }\n\n cleanAuth() {\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n }\n\n logout() {\n this.cleanAuth()\n }\n\n async refreshToken() {\n console.log('refresh!!!')\n this.retryRefresh++\n let data = await fetch(this.getUrl('@login-renew'), {\n headers: this.getHeaders(),\n method: 'post',\n })\n if (data.status === 401) {\n // invalid token\n this.cleanAuth()\n this.onLogout()\n return\n }\n const res = await data.json()\n console.log('refresh data', res)\n this.storeAuth(res)\n console.log('token refreshed')\n this.retryRefresh = 0\n return data.token\n }\n\n willExpire(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 < now + 10 * 1000) {\n return true\n }\n return false\n }\n\n isExpired(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 > now) {\n return false\n }\n return true\n }\n\n _getToken() {\n return [localStorage.getItem('auth'), localStorage.getItem('auth_expires')]\n }\n\n getToken() {\n const [token] = this._getToken()\n return token\n }\n\n getHeaders() {\n const [authToken, expires] = this._getToken()\n if (!authToken) return {}\n\n if (this.willExpire(expires) && this.retryRefresh < this.maxRetry) {\n ;(async () => await this.refreshToken())()\n }\n\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n}\n"],"names":["AuthContext","createContext","ClientContext","TraversalContext","Traversal","constructor","flash","props","Object","assign","refresh","transparent","dispatch","type","payload","path","state","pathPrefix","slice","context","containerPath","client","getContainerFromPath","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","permissions","filterTabs","tabs","tabsPermissions","result","keys","forEach","item","perm","TraversalProvider","children","useTraversal","React","useContext","ClientProvider","useGuillotinaClient","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","Button","className","onClick","loading","disabled","dataTest","rest","css","concat","split","Modal","isActive","setActive","Portal","usePortal","Confirm","onCancel","onConfirm","marginTop","PathTree","title","defaultPath","e","preventDefault","target","value","display","useSetState","initialState","set","useState","setState","useCallback","patch","prevState","Function","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","body","newState","console","error","del","delete","post","get","req","useCrudContext","AddItem","getForm","registry","Form","doSubmit","form","formData","err","log","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","setLoading","items","last","itemsNames","removeItems","errors","actions","ok","push","all","errorstr","JSON","stringify","Checkbox","id","classNameInput","indeterminate","placeholder","onChange","inputRef","useEffect","updateState","ev","checked","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","icon","iconPosition","errorZoneClassName","autoComplete","required","autofocus","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","arrayOf","oneOf","autoFocus","bool","isSubmitted","name","onKeyDown","onKeyUp","onPressEnter","readOnly","oneOfType","number","Icon","align","addClass","EmailInput","onSubmit","onReset","handleSubmit","event","isRequired","PasswordInput","formComponents","password","boolean","email","FormBuilder","actionName","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","label","displayName","children_","Children","child","cloneElement","changes","Select","options","size","classWrap","multiple","appendDefault","style","text","cssWrap","index","toString","object","setURLParams","p","history","pathname","clean","URLSearchParams","_key","useLocation","update","currentSearchParams","prevPath","patchHistoryEvents","checkForUpdates","events","addEventListener","removeEventListener","navigate","remove","param","patched","arguments","Event","dispatchEvent","location","search","Link","aRef","model","aStyle","textDecoration","color","stopPropagation","actAsLink","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","Loading","onRemove","Delete","Table","headers","idx","Notification","isColor","RestClient","url","container","auth","request","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","put","upload","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","lastKey","part","val","buildQs","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","m","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","create","file","download","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","gr","usr","getRoles","getAllPermissions","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","Textarea","rows","debounce","wait","timeout","args","later","clearTimeout","page","SearchInput","traversal","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","searchTermQs","searchTermParsed","fnName","qsParsed","newItems","renderTextItemOptionFn","currentTarget","contains","relatedTarget","InputList","inputValue","setInputValue","addTags","React.createElement","tag","defaultEvents","on","obj","off","useClickAway","onClickAway","savedCallback","handler","el","eventName","document","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","RenderFieldComponent","canModified","saveField","unescape","dataPatch","deleteField","enum","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","href","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_EDITABLE_FIELD","DEFAULT_VALUE_NO_EDITABLE_FIELD","getRenderProps","renderProps","toLocaleString","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","editableFields","IDublinCore","ACTIONS_OBJECT","DELETE","perms","MOVE","COPY","PanelActions","some","onAction","actionKey","React.Fragment","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callback","callId","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","principalsData","group","user","fullname","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","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","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","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","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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"}
1
+ {"version":3,"file":"react-gmi.modern.js","sources":["../src/guillo-gmi/contexts/index.js","../src/guillo-gmi/locales/generic_messages.js","../src/guillo-gmi/lib/helpers.js","../src/guillo-gmi/components/input/button.js","../src/guillo-gmi/components/modal.js","../src/guillo-gmi/hooks/useSetState.js","../src/guillo-gmi/hooks/useCrudContext.js","../src/guillo-gmi/actions/add_item.js","../src/guillo-gmi/hooks/useConfig.js","../src/guillo-gmi/actions/remove_items.js","../src/guillo-gmi/components/input/checkbox.js","../src/guillo-gmi/components/error_zone.js","../src/guillo-gmi/hooks/useInput.js","../src/guillo-gmi/lib/validators.js","../src/guillo-gmi/components/input/input.js","../src/guillo-gmi/components/ui/icon.js","../src/guillo-gmi/components/input/email.js","../src/guillo-gmi/components/input/form.js","../src/guillo-gmi/components/input/password.js","../src/guillo-gmi/components/input/form_builder.js","../src/guillo-gmi/lib/utils.js","../src/guillo-gmi/components/input/select.js","../src/guillo-gmi/hooks/useLocation.js","../src/guillo-gmi/components/Link.js","../src/guillo-gmi/components/TdLink.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/lib/rest.js","../src/guillo-gmi/lib/search.js","../src/guillo-gmi/lib/client.js","../src/guillo-gmi/components/input/upload.js","../src/guillo-gmi/components/input/textarea.js","../src/guillo-gmi/components/input/search_input.js","../src/guillo-gmi/components/input/input_list.js","../src/guillo-gmi/hooks/useClickAway.js","../src/guillo-gmi/components/input/dropdown.js","../src/guillo-gmi/components/fields/editableField.js","../src/guillo-gmi/components/fields/downloadField.js","../src/guillo-gmi/hooks/useVocabulary.js","../src/guillo-gmi/components/fields/renderField.js","../src/guillo-gmi/components/behaviors/iattachment.js","../src/guillo-gmi/components/behaviors/imultiattachment.js","../src/guillo-gmi/components/behaviors/iimageattachment.js","../src/guillo-gmi/components/behaviors/imultiimageattachment.js","../src/guillo-gmi/components/behaviors/imultiimageorderedattachment.js","../src/guillo-gmi/models/sharing.js","../src/guillo-gmi/models/index.js","../src/guillo-gmi/components/behaviors/iworkflow.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/components/item.js","../src/guillo-gmi/components/search_labels.js","../src/guillo-gmi/components/search_options_labels.js","../src/guillo-gmi/components/search_vocabulary_labels.js","../src/guillo-gmi/components/input/select_vocabulary.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/components/behaviors/idublincore.js","../src/guillo-gmi/views/groups.js","../src/guillo-gmi/components/error_boundary.js","../src/guillo-gmi/components/notallowed.js","../src/guillo-gmi/components/notfound.js","../src/guillo-gmi/components/path.js","../src/guillo-gmi/components/fields/editComponent.js","../src/guillo-gmi/hooks/useRegistry.js","../src/guillo-gmi/reducers/guillotina.js","../src/guillo-gmi/components/guillotina.js","../src/guillo-gmi/components/layout.js","../src/guillo-gmi/components/login.js","../src/guillo-gmi/forms/required_fields.js","../src/guillo-gmi/lib/auth.js"],"sourcesContent":["import React from 'react'\nimport { createContext } from 'react'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext({})\n\nexport const TraversalContext = createContext({})\n\nclass Traversal {\n constructor({ flash, ...props }) {\n Object.assign(this, props)\n if (typeof flash === 'function') this.flash = flash\n }\n\n refresh({ transparent = false } = {}) {\n this.dispatch({ type: 'REFRESH', payload: { transparent } })\n }\n\n get path() {\n return this.state.path\n }\n\n get pathPrefix() {\n return this.state.path.slice(1)\n }\n\n get context() {\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data) {\n // apply a optimistic update to context\n this.dispatch({ type: 'APPLY', payload: data })\n }\n\n flash(message, type) {\n this.dispatch({ type: 'SET_FLASH', payload: { flash: { message, type } } })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({ type: 'CLEAR_FLASH' })\n }\n\n doAction(action, params) {\n this.dispatch({ type: 'SET_ACTION', payload: { action, params } })\n }\n\n cancelAction() {\n this.dispatch({ type: 'CLEAR_ACTION' })\n }\n\n hasPerm(permission) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs, tabsPermissions) {\n const result = {}\n Object.keys(tabs).forEach((item) => {\n const perm = tabsPermissions[item]\n if (perm && this.hasPerm(perm)) {\n result[item] = tabs[item]\n } else if (!perm) {\n result[item] = tabs[item]\n }\n })\n return result\n }\n}\n\nexport function TraversalProvider({ children, ...props }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return React.useContext(TraversalContext)\n}\n\nexport function ClientProvider({ children, client }) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return React.useContext(ClientContext)\n}\n","import { defineMessages } from 'react-intl'\n\nexport const genericMessages = defineMessages({\n loading: {\n id: 'loading',\n defaultMessage: 'Loading',\n },\n remove: {\n id: 'remove',\n defaultMessage: 'Remove',\n },\n install: {\n id: 'install',\n defaultMessage: 'Install',\n },\n delete: {\n id: 'delete',\n defaultMessage: 'Delete',\n },\n move_to: {\n id: 'move_to',\n defaultMessage: 'Move to...',\n },\n copy_to: {\n id: 'copy_to',\n defaultMessage: 'Copy to...',\n },\n behaviors: {\n id: 'behaviors',\n defaultMessage: 'Behaviors',\n },\n static: {\n id: 'static',\n defaultMessage: 'Static',\n },\n disable: {\n id: 'disable',\n defaultMessage: 'Disable',\n },\n enable: {\n id: 'enable',\n defaultMessage: 'Enable',\n },\n enabled: {\n id: 'enabled',\n defaultMessage: 'Enabled',\n },\n available: {\n id: 'available',\n defaultMessage: 'Available',\n },\n invalid_form_data: {\n id: 'invalid_form_data',\n defaultMessage: 'Invalid form data',\n },\n invalid_form: {\n id: 'invalid_form',\n defaultMessage: 'Invalid form',\n },\n select_principal: {\n id: 'select_principal',\n defaultMessage: 'Select a Principal',\n },\n select_role: {\n id: 'select_role',\n defaultMessage: 'Select a Role',\n },\n select_permissions: {\n id: 'select_permissions',\n defaultMessage: 'Select permissions',\n },\n operation: {\n id: 'operation',\n defaultMessage: 'Operation',\n },\n save: {\n id: 'save',\n defaultMessage: 'Save',\n },\n choose: {\n id: 'choose',\n defaultMessage: 'Choose...',\n },\n property: {\n id: 'property',\n defaultMessage: 'Property',\n },\n value: {\n id: 'value',\n defaultMessage: 'Value',\n },\n create: {\n id: 'create',\n defaultMessage: 'Create',\n },\n upload: {\n id: 'upload',\n defaultMessage: 'Upload',\n },\n image: {\n id: 'image',\n defaultMessage: 'Image',\n },\n error_provide_key_name: {\n id: 'error_provide_key_name',\n defaultMessage: 'Provide a key name',\n },\n mandatory_field: {\n id: 'mandatory_field',\n defaultMessage: '{field} is mandatory!',\n },\n error_in_field: {\n id: 'error_in_field',\n defaultMessage: 'Error in field {field}!',\n },\n field_updated: {\n id: 'field_updated',\n defaultMessage: 'Field {field}, updated!',\n },\n field_deleted: {\n id: 'field_deleted',\n defaultMessage: 'Field {field}, deleted!',\n },\n can_not_delete_field: {\n id: 'can_not_delete_field',\n defaultMessage: 'You can not delete {field}!',\n },\n cancel: {\n id: 'cancel',\n defaultMessage: 'Cancel',\n },\n open: {\n id: 'open',\n defaultMessage: 'Open',\n },\n download: {\n id: 'download',\n defaultMessage: 'Download',\n },\n search: {\n id: 'search',\n defaultMessage: 'Search',\n },\n no_results: {\n id: 'no_results',\n defaultMessage: 'No results',\n },\n load_more: {\n id: 'load_more',\n defaultMessage: 'Load more',\n },\n add_type: {\n id: 'add_type',\n defaultMessage: 'Add {type}',\n },\n confirm: {\n id: 'confirm',\n defaultMessage: 'Confirm',\n },\n field_is_required: {\n id: 'field_is_required',\n defaultMessage: 'This field is required',\n },\n title: {\n id: 'title',\n defaultMessage: 'Title',\n },\n add: {\n id: 'add',\n defaultMessage: 'Add',\n },\n not_implemented: {\n id: 'not_implemented',\n defaultMessage: 'Not implemented',\n },\n failed_to_update: {\n id: 'failed_to_update',\n defaultMessage: 'Failed to update: {error}',\n },\n add_user: {\n id: 'add_user',\n defaultMessage: 'Add a User',\n },\n role: {\n id: 'role',\n defaultMessage: 'Role',\n },\n setting: {\n id: 'setting',\n defaultMessage: 'Setting',\n },\n permission: {\n id: 'permission',\n defaultMessage: 'Permission',\n },\n})\n\nexport const genericFileMessages = defineMessages({\n error_file_key_name: {\n id: 'error_file_key_name',\n defaultMessage: 'Provide a file and a key name',\n },\n error_upload_file: {\n id: 'error_upload_file',\n defaultMessage: 'Failed to upload file',\n },\n error_upload_file_size: {\n id: 'error_upload_file_size',\n defaultMessage: 'Failed to upload file {size}',\n },\n image_uploaded: {\n id: 'image_uploaded',\n defaultMessage: 'Image uploaded!',\n },\n file_uploaded: {\n id: 'file_uploaded',\n defaultMessage: 'File uploaded!',\n },\n failed_delete_file: {\n id: 'failed_delete_file',\n defaultMessage: 'Failed to delete file',\n },\n image_deleted: {\n id: 'image_deleted',\n defaultMessage: 'Image deleted!',\n },\n confirm_message_delete_file: {\n id: 'confirm_message_delete_file',\n defaultMessage: 'Are you sure to remove: {fileKeyToDelete}?',\n },\n confirm_message_delete_image: {\n id: 'confirm_message_delete_image',\n defaultMessage: 'Are you sure to remove the image?',\n },\n no_images_uploaded: {\n id: 'no_images_uploaded',\n defaultMessage: 'No images uploaded',\n },\n no_files_uploaded: {\n id: 'no_files_uploaded',\n defaultMessage: 'No files uploaded',\n },\n upload_an_image: {\n id: 'upload_an_image',\n defaultMessage: 'Upload an image',\n },\n upload_a_file: {\n id: 'upload_a_file',\n defaultMessage: 'Upload a file',\n },\n})\n","import { genericMessages } from '../locales/generic_messages'\n\nexport 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\nexport const getActionsObject = (intl, multiple = false) => ({\n DELETE: {\n text: intl.formatMessage(genericMessages.delete),\n perms: ['guillotina.DeleteContent'],\n action: multiple ? 'removeItems' : 'removeItem',\n },\n MOVE: {\n text: intl.formatMessage(genericMessages.move_to),\n perms: ['guillotina.MoveContent'],\n action: multiple ? 'moveItems' : 'moveItem',\n },\n COPY: {\n text: intl.formatMessage(genericMessages.copy_to),\n perms: ['guillotina.DuplicateContent'],\n action: multiple ? 'copyItems' : 'copyItem',\n },\n})\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nconst noop = () => {}\n\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n ...rest\n}) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n if (disabled) onClick = noop\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n {...rest}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import React from 'react'\nimport usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\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 intl = useIntl()\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <React.Fragment>\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button\n className=\"button is-danger\"\n onClick={() => onCancel()}\n data-test=\"btnCancelModalTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </button>\n &nbsp;&nbsp;\n <Button\n loading={loading}\n className=\"is-success\"\n onClick={() => onConfirm()}\n dataTest=\"btnConfirmModalTest\"\n >\n {intl.formatMessage(genericMessages.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 const intl = useIntl()\n return (\n <Modal isActive setActive={onCancel}>\n <h1>{title}</h1>\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onConfirm(e.target[0].value, e.target)\n }}\n >\n <small style={{ display: 'block', marginTop: 20 }}>\n {`Example: /folder (without /db/container on front)`}\n </small>\n <input\n className=\"input mb-3\"\n defaultValue={defaultPath}\n type=\"text\"\n data-test=\"inputPathTreeTest\"\n />\n {children}\n <div className=\"level-right mt-3\">\n <button\n type=\"button\"\n className=\"button is-danger\"\n onClick={onCancel}\n data-test=\"btnCancelModalTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </button>\n &nbsp;&nbsp;\n <button\n type=\"submit\"\n className=\"button is-success\"\n data-test=\"btnConfirmModalTest\"\n >\n {intl.formatMessage(genericMessages.confirm)}\n </button>\n </div>\n </form>\n </Modal>\n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useSetState(initialState) {\n const [state, set] = useState(initialState)\n const setState = useCallback(\n (patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n )\n },\n [set]\n )\n\n return [state, setState]\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\n\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nconst getErrorMessage = (dataError, defaultValue) => {\n if (dataError && dataError.details) {\n return dataError.details\n } else if (dataError && dataError.reason) {\n return dataError.reason\n }\n return defaultValue\n}\n\nconst processResponse = async (res, ready_body = true) => {\n if (res.status < 400)\n return {\n isError: false,\n loading: false,\n result: ready_body ? await res.json() : res.status,\n response: res,\n }\n else\n return {\n isError: true,\n loading: false,\n errorMessage: getErrorMessage(await res.json(), res.status),\n response: res,\n }\n}\n\nconst patch = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst del = (setState, Ctx) => async (data, endpoint, body = false) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.delete(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst post = (setState, Ctx) => async (data, endpoint, body = true) => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.post(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst get = (setState, Ctx) => async (endpoint) => {\n setState({ loading: true })\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const req = await Ctx.client.get(path)\n const data = await req.json()\n setState({ loading: false, result: data, response: req })\n return data\n}\n\nexport function useCrudContext() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n\n return {\n ...state,\n Ctx,\n patch: patch(setState, Ctx),\n del: del(setState, Ctx),\n post: post(setState, Ctx),\n get: get(setState, Ctx),\n }\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\nexport function AddItem(props) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const { type } = props\n const { getForm } = Ctx.registry\n\n const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n const form = Object.assign(\n {},\n { '@type': type },\n data.formData ? data.formData : data\n )\n\n const { isError, errorMessage } = await post(form)\n if (!isError) {\n Ctx.flash('Content created!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n loading={loading}\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Add ' + type}\n title={'Add ' + type}\n type={type}\n dataTest={`formAdd${type}Test`}\n />\n </Modal>\n )\n}\n","import React from 'react'\n\nexport const Permissions = [\n 'guillotina.AddContent',\n 'guillotina.ModifyContent',\n 'guillotina.ViewContent',\n 'guillotina.DeleteContent',\n 'guillotina.AccessContent',\n 'guillotina.SeePermissions',\n 'guillotina.ChangePermissions',\n 'guillotina.MoveContent',\n 'guillotina.DuplicateContent',\n 'guillotina.ReadConfiguration',\n 'guillotina.RegisterConfigurations',\n 'guillotina.WriteConfiguration',\n 'guillotina.ManageAddons',\n 'guillotina.swagger.View',\n]\n\nexport const Config = {\n DisabledTypes: ['UserManager', 'GroupManager'],\n PageSize: 10,\n DelayActions: 200,\n Permissions: Permissions,\n SearchEngine: 'PostreSQL', // Elasticsearch\n fieldHaveDeleteButton: (schema) => {\n return (\n schema?.widget === 'file' ||\n schema?.widget === 'select' ||\n schema?.type === 'array'\n )\n },\n}\n\nlet calculated = Object.assign({}, Config)\n\nconst addConfig = (additional, original) => {\n const rest = Object.assign({}, original)\n Object.keys(additional).forEach((item) => {\n if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {\n rest[item] = [].concat(Config[item], additional[item])\n } else if (typeof Config[item] === 'object') {\n rest[item] = Object.assign({}, Config[item], additional[item])\n } else {\n rest[item] = additional[item]\n }\n })\n return rest\n}\n\nexport function useConfig(cfg) {\n const ref = React.useRef()\n if (cfg && !ref.current) {\n console.log('cfg', cfg)\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n\n // if (cfg && !ref.current) {\n // ref.current = addConfig(cfg, ref.current);\n // calculated = ref.current\n // console.log(\"Current config\", cfg)\n // }\n return calculated\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\n\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 const res = await Ctx.client.delete(`${Ctx.path}${item['@name']}`)\n if (!res.ok) {\n const err = await res.json()\n errors.push(err)\n }\n })\n // this sleep is here, to let elasticsearch, wait for\n // index our operations... (will work 99% of use cases)\n actions.push(sleep(cfg.DelayActions))\n\n await Promise.all(actions)\n\n if (errors.length === 0) {\n Ctx.flash(`Items removed!`, 'success')\n Ctx.refresh()\n } else {\n const errorstr = errors.map((err) => JSON.stringify(err)).join('\\n')\n Ctx.flash(`Something went wrong!! ${errorstr}`, 'danger')\n }\n setLoading(false)\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItems}\n message={`Are you sure to remove: ${itemsNames}?`}\n />\n )\n}\n","import React, { useEffect, useRef } from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n value = false,\n color,\n backgroundColor,\n borderColor,\n children,\n placeholder,\n onChange,\n dataTest,\n ...rest\n}) => {\n const inputRef = useRef(null)\n const [state, setState] = React.useState(value)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev) => {\n setState(ev.target.checked)\n onChange(ev.target.checked)\n }\n\n return (\n <div className=\"field\">\n <label htmlFor={id} className={classnames(['checkbox', className])}>\n <input\n ref={inputRef}\n disabled={disabled || loading}\n id={id}\n type=\"checkbox\"\n className={classnames(['checkbox', classNameInput])}\n checked={state}\n onChange={updateState}\n data-test={dataTest}\n {...rest}\n />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\nconst ErrorZone = ({ children, id, className }) => {\n return (\n <p className={classnames(['help is-danger', className])} id={id}>\n {children}\n </p>\n )\n}\n\nErrorZone.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n}\n\nexport default ErrorZone\n","import React from 'react'\n\nconst applyValidators = (value, validators) => {\n let validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n let [state, setState] = React.useState({ hasError: false, value: value })\n\n const onUpdate = (ev) => {\n const value = ev && ev.target ? ev.target.value : ev ? ev : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validator) === false\n if (hasError) setState({ value: state.value, hasError })\n }\n\n const onFocus = () => {\n if (state.hasError) {\n setState({ value: state.value, hasError: false })\n }\n }\n\n React.useEffect(() => {\n setState({ value, hasError: false })\n }, [value])\n\n return {\n onChange: onUpdate,\n onFocus,\n onBlur,\n state,\n }\n}\n\nexport default useInput\n","// From github.com/protonmail/proton-shared\n\n/* eslint-disable no-useless-escape */\nexport const REGEX_EMAIL = /(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/i\nexport const REGEX_URL = /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)/\nexport const REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/i\nexport const REGEX_NUMBER = /^\\d+$/\n\nexport const isEmpty = (value = '') => !value.length\nexport const maxLength = (value = '', limit = 0) => value.length <= limit\nexport const minLength = (value = '', limit = 0) => value.length >= limit\nexport const isEmail = (value = '') => REGEX_EMAIL.test(value)\nexport const isURL = (value = '') => REGEX_URL.test(value)\nexport const isHexColor = (value = '') => REGEX_HEX_COLOR.test(value)\nexport const isNumber = (value = '') => REGEX_NUMBER.test(value)\nexport const notEmpty = (value) => !!value.length\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport ErrorZone from '../error_zone'\nimport useInput from '../../hooks/useInput'\nimport { notEmpty } from '../../lib/validators'\nimport { useEffect } from 'react'\n\nconst noop = () => true\n\n/** @type any */\nexport const Input = React.forwardRef(\n (\n {\n icon,\n iconPosition = 'has-icons-right',\n error,\n errorZoneClassName,\n autoComplete = 'off',\n className = '',\n widget = 'input',\n type = 'text',\n onPressEnter,\n isSubmitted,\n loading = false,\n required = false,\n id,\n placeholder,\n value,\n autofocus = false,\n onChange,\n validator = noop,\n errorMessage,\n dataTest = 'testInput',\n ...rest\n },\n ref\n ) => {\n if (required) {\n validator = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validator)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || React.useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error) {\n ref.current.focus()\n }\n }, [mounted, autofocus, ref, error])\n\n const theError = state.hasError ? errorMessage || 'invalid field' : ''\n const statusClasses = state.hasError ? 'is-danger' : ''\n\n const cssControl = () => (icon ? ['control', iconPosition] : ['control'])\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssControl())}>\n <input\n className={classnames([widget, className, statusClasses])}\n aria-invalid={theError}\n aria-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || rest.disabled}\n required={required}\n data-test={dataTest}\n {...handlers}\n {...rest}\n />\n {icon && icon}\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {state.hasError ? theError : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nInput.propTypes = {\n icon: PropTypes.node,\n iconPosition: PropTypes.arrayOf(\n PropTypes.oneOf(['has-icons-left', 'has-icons-right', ''])\n ),\n error: PropTypes.string,\n errorZoneClassName: PropTypes.string,\n autoComplete: PropTypes.string,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n isSubmitted: PropTypes.bool,\n id: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onPressEnter: PropTypes.func,\n placeholder: PropTypes.string,\n readOnly: PropTypes.bool,\n required: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n","import React from 'react'\nimport { classnames } from '../../lib/helpers'\n\nexport const Icon = ({ icon, className, align }) => {\n const addClass = className ? className.split(' ') : [className]\n\n align = align || 'is-right'\n\n return (\n <span className={classnames(['icon', align, ...addClass])}>\n <i className={icon}></i>\n </span>\n )\n}\n","import React from 'react'\nimport { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\nimport { useIntl } from 'react-intl'\n\nexport const EmailInput = ({ value = '', dataTest, ...rest }) => {\n const intl = useIntl()\n return (\n <Input\n type=\"email\"\n validator={isEmail}\n errorMessage={intl.formatMessage({\n id: 'invalid_email',\n defaultMessage: 'Invalid email',\n })}\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 { stringToSlug } from './helpers'\n\nexport const formatDate = (str) => {\n const d = new Date(str)\n const minutes = d.getMinutes() < 10 ? `0${d.getMinutes()}` : d.getMinutes()\n return `${d.getDate()}/${\n d.getMonth() + 1\n }/${d.getFullYear()} ${d.getHours()}:${minutes}`\n}\n\nexport const get = (obj, path, defValue) => {\n // If path is not defined or it has false value\n if (!path) return undefined\n // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n // Regex explained: https://regexr.com/58j0k\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n // Find value if exist return otherwise return undefined value;\n return (\n pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) || defValue\n )\n}\n\nexport function getNewId(id = '') {\n const suffix = '-copy-'\n const rgx = new RegExp(`($|${suffix}\\\\d*)`)\n\n return stringToSlug(id).replace(rgx, (r) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { get } from '../../lib/utils'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\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 value,\n ...rest\n },\n ref\n ) => {\n const intl = useIntl()\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (multiple) {\n let selectValue = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n selectValue = selectValue.concat([ev.target.selectedOptions[i].value])\n }\n onChange(selectValue)\n } else {\n const selectValue = get(ev, 'target.value', undefined)\n onChange(selectValue)\n }\n }\n\n if (appendDefault) {\n options = [\n { text: intl.formatMessage(genericMessages.choose), value: '' },\n ].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={multiple ? 5 : size}\n multiple={multiple}\n disabled={loading || rest.disabled}\n onChange={onUpdate}\n ref={ref}\n style={style}\n data-test={dataTest}\n value={value}\n {...rest}\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 { 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","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 id,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}) => (\n <span className={classnames(['tag', color, size])} data-test={`tag-${id}`}>\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","export class RestClient {\n constructor(url, container, auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data, headers) {\n if (path.indexOf(this.url) !== -1) {\n path = path.replace(this.url, '')\n }\n\n if (this.container !== '/' && path.indexOf(this.container) === -1) {\n path = `${this.container}${path}`\n }\n\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n data = data || {}\n data.headers = headers || this.getHeaders()\n return await fetch(`${this.url}${path}`, data)\n }\n\n getHeaders() {\n const authToken = this.auth.getToken()\n if (!authToken) return {}\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n\n async post(path, data) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path, fetchData) {\n return await this.request(path, fetchData)\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","const SEP = '='\nconst DEFAULT_FIELD = 'title__in'\nconst CLEANER = '||'\n\nexport function parser(qs, defaultField = DEFAULT_FIELD) {\n if (qs.includes(SEP) && Array.isArray(defaultField)) {\n throw new Error('This option is not supported')\n }\n\n if (Array.isArray(defaultField)) {\n const orParser = []\n defaultField.forEach((field) => {\n const parsed = parser(qs, field)\n orParser.push(buildQs(parsed))\n })\n const result = [['__or', orParser.join('&')]]\n return result\n }\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 { TdLink } from '../components/TdLink'\nimport { Icon } from '../components/ui'\nimport { toQueryString } from './helpers'\nimport { RestClient } from './rest'\nimport { parser } from './search'\nimport { useLocation } from '../hooks/useLocation'\n\nlet cacheTypes = {}\nlet cacheSchemas = {}\n\nexport class GuillotinaClient {\n constructor(rest, pathContainsContainer) {\n this.rest = rest\n this.pathContainsContainer = pathContainsContainer\n }\n\n getContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n let parts = path.split('/')\n return `${parts[0]}/${parts[1]}/`\n }\n return ''\n }\n\n clearContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path) {\n switch (path) {\n case '/':\n return await this.rest.get('')\n default:\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n }\n\n async get(path, fetchData) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path, fetchData)\n }\n\n getQueryParamsPostresql({ start = 0, pageSize = 10, withDepth = true }) {\n let result = []\n\n result = [\n ...parser(start.toString(), 'b_start'),\n ...parser(pageSize.toString(), 'b_size'),\n ]\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n return result\n }\n\n getQueryParamsElasticsearch({\n start = 0,\n pageSize = 10,\n path,\n withDepth = true,\n }) {\n let result = []\n let containerPath = this.getContainerFromPath(path)\n\n if (containerPath.startsWith('/')) {\n containerPath = containerPath.slice(1)\n }\n let objectPath = path.replace(containerPath, '')\n if (objectPath.endsWith('/')) {\n objectPath = objectPath.slice(0, -1)\n }\n\n result = [\n ...parser(start.toString(), '_from'),\n ...parser(pageSize.toString(), 'size'),\n ...parser('*', '_metadata=*'),\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 isSortable: false,\n child: (m) => <td style={smallcss}>{<Icon icon={m.icon} />}</td>,\n },\n {\n label: 'type',\n key: 'type_name',\n isSortable: false,\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 key: 'title',\n isSortable: true,\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 key: 'creation_date',\n isSortable: true,\n child: (m) => {\n return (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n )\n },\n },\n {\n label: 'modified',\n key: 'modification_date',\n isSortable: true,\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(\n path,\n params,\n container = false,\n prepare = true,\n fetchData = {}\n ) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n let query = prepare ? toQueryString(params) : params\n const url = `${path}@search?${query}`\n let res = await this.rest.get(url, fetchData)\n let data = await res.json()\n return this.applyCompat(data)\n }\n\n async canido(path, permissions) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (Array.isArray(permissions)) {\n permissions.join(',')\n }\n const url = `${path}@canido?permissions=${permissions}`\n return await this.rest.get(url)\n }\n\n async createObject(path, data) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path) {\n let url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path, data) {\n return await this.rest.delete(path, data)\n }\n\n async create(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path, data) {\n return await this.create(path, data)\n }\n\n async patch(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path, file) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path, name) {\n if (!cacheSchemas[name]) {\n let url = this.getContainerFromPath(path)\n // todo: handle db case (only addable containers)\n const res = await this.rest.get(`${url}@types/${name}`)\n cacheSchemas[name] = await res.json()\n }\n return cacheSchemas[name]\n }\n\n async getAddons(path) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path, key) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path, key) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(path) {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [gr, usr] = await Promise.all([groups, users])\n\n return {\n groups: gr.ok ? await gr.json() : [],\n users: usr.ok ? await usr.json() : [],\n }\n }\n\n async getRoles(path) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path) {\n // paths used to query the API always has to start without a \"/\"\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n const req = await this.rest.get(path + '@all_permissions')\n const resp = await req.json()\n const permissions = Array.from(new Set(extractPermissions(resp)))\n return permissions\n }\n\n async getTypes(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!cacheTypes[path]) {\n const types = await this.rest.get(path + '@addable-types')\n if (types.status === 401 || types.status === 404) {\n cacheTypes[path] = []\n } else {\n const res = await types.json()\n cacheTypes[path] = res\n }\n }\n return cacheTypes[path]\n }\n}\n\nexport function getClient(url, container, auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = async (file) => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e.target.result\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n }\n })\n}\n\nconst extractPermissions = (data) => {\n let result = []\n if (typeof data !== 'object') {\n } else if (!Array.isArray(data) && data.permission) {\n result = result.concat([data.permission])\n } else if (!Array.isArray(data)) {\n Object.keys(data).map(\n (key) => (result = result.concat(extractPermissions(data[key])))\n )\n } else if (Array.isArray(data)) {\n data.map((item) => (result = result.concat(extractPermissions(item))))\n }\n return result\n}\n","import React from 'react'\nimport { lightFileReader } from '../../lib/client'\nimport { useIntl } from 'react-intl'\n\nexport function FileUpload({ label, onChange, ...props }) {\n const intl = useIntl()\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\">\n {label ||\n intl.formatMessage({\n id: 'choose_file',\n defaultMessage: 'Choose a file',\n })}\n </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'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\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 intl = useIntl()\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={intl.formatMessage(genericMessages.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\">\n {intl.formatMessage(genericMessages.no_results)}\n </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 {intl.formatMessage(genericMessages.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'\nimport { useIntl } from 'react-intl'\n\nexport const InputList = React.forwardRef(\n ({ value, onChange, dataTest }, ref) => {\n const intl = useIntl()\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={intl.formatMessage({\n id: 'press_enter_to_add_value',\n defaultMessage: 'Press enter to add value',\n })}\n onKeyUp={(event) => addTags(event)}\n value={inputValue}\n ref={ref}\n dataTest={dataTest}\n onChange={(value) => {\n if (value !== '') {\n setInputValue(value)\n }\n }}\n />\n </div>\n )\n }\n)\n","import { useEffect, useRef } from 'react'\n\nconst defaultEvents = ['mousedown', 'touchstart']\nconst on = (obj, ...args) => obj.addEventListener(...args)\nconst off = (obj, ...args) => obj.removeEventListener(...args)\n\nexport default function useClickAway(ref, onClickAway, events = defaultEvents) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event) => {\n const { current: el } = ref\n el && !el.contains(event.target) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName, handler)\n }\n }\n }, [events, ref])\n}\n","import React, { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n ...props\n}) {\n const ref = useRef(null)\n const [isActive, setIsActive] = useState(false)\n const position = isRight ? 'is-right' : ''\n const status = isActive\n ? `dropdown ${position} is-active`\n : `dropdown ${position}`\n\n useClickAway(ref, () => {\n setIsActive(false)\n })\n\n return (\n <div ref={ref} className={status} {...props}>\n <div className=\"dropdown-trigger\">\n <button\n className=\"button is-size-7\"\n onClick={() => setIsActive(!isActive)}\n aria-haspopup=\"true\"\n disabled={disabled}\n aria-controls={id}\n >\n {children}\n </button>\n </div>\n <div className=\"dropdown-menu\" id={id} role=\"menu\">\n <div className=\"dropdown-content\">\n {options.map((option) => {\n const disabled =\n typeof optionDisabledWhen === 'function'\n ? optionDisabledWhen(option)\n : false\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n <a\n className={\n disabled ? 'dropdown-item is-active' : 'dropdown-item'\n }\n data-test={`dropdownItemTest-${option.value.toLowerCase()}`}\n key={option.text}\n onClick={disabled ? undefined : () => onChange(option.value)}\n style={\n disabled\n ? {\n cursor: 'not-allowed',\n color: 'black',\n opacity: 0.5,\n backgroundColor: '#eeeeee',\n }\n : {}\n }\n >\n {option.text}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../input/button'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useState } from 'react'\nimport { useRef } from 'react'\nimport { useEffect } from 'react'\nimport { Icon } from '../ui'\nimport { get } from '../../lib/utils'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}) {\n const intl = useIntl()\n const ref = useRef()\n const [isEdit, setEdit] = useState(false)\n const [val, setValue] = useState(value)\n const { patch, loading, Ctx } = useCrudContext()\n const { fieldHaveDeleteButton } = useConfig()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n const RenderFieldComponent = Ctx.registry.get(\n 'components',\n 'RenderFieldComponent'\n )\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified = modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (ev) => {\n if (ev) ev.preventDefault()\n\n if (!field) {\n Ctx.flash(\n intl.formatMessage(genericMessages.error_provide_key_name),\n 'danger'\n )\n return\n }\n\n if (!val && required) {\n Ctx.flash(\n intl.formatMessage(genericMessages.mandatory_field, { field }),\n 'danger'\n )\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(\n intl.formatMessage(genericFileMessages.error_upload_file),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericFileMessages.file_uploaded),\n 'success'\n )\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(\n intl.formatMessage(genericMessages.error_in_field, { field }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericMessages.field_updated, { field }),\n 'success'\n )\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(\n intl.formatMessage(genericMessages.can_not_delete_field, { field }),\n 'danger'\n )\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(\n intl.formatMessage(genericMessages.error_in_field, { field }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericMessages.field_deleted, { field }),\n 'success'\n )\n }\n\n setEdit(false)\n Ctx.refresh()\n } else if (schema?.type === 'string' && schema?.enum) {\n setValue(null)\n } else if (schema?.type === 'array' && schema?.items.type === 'string') {\n setValue([])\n }\n }\n\n return (\n <React.Fragment>\n {!isEdit && (\n <div\n className={canModified ? 'editable' : ''}\n onClick={() => {\n setEdit(!!canModified)\n }}\n data-test={`editableFieldTest-${field}`}\n >\n <RenderFieldComponent\n schema={schema}\n field={field}\n val={val}\n modifyContent={modifyContent}\n />\n {canModified && <Icon icon=\"fas fa-edit\" />}\n </div>\n )}\n\n {isEdit && (\n <div className=\"field\" data-test={`editableFieldTest-${field}`}>\n <div className=\"control\">\n <EditComponent\n ref={ref}\n schema={schema}\n val={val}\n setValue={setValue}\n dataTest={`editableFieldEditTest`}\n />\n </div>\n <div className=\"field is-grouped\">\n <div className=\"control\">\n <Button\n className=\"is-small is-primary\"\n loading={loading}\n onClick={saveField}\n dataTest=\"editableFieldBtnSaveTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n <div className=\"control\">\n <Button\n className=\"is-small\"\n onClick={() => setEdit(false)}\n dataTest=\"editableFieldBtnCancelTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </Button>\n </div>\n {!required && fieldHaveDeleteButton(schema) && (\n <div className=\"control\">\n <Button\n className=\"is-small is-danger\"\n onClick={deleteField}\n dataTest=\"editableFieldBtnDeleteTest\"\n >\n {intl.formatMessage(genericMessages.delete)}\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </React.Fragment>\n )\n}\n","import * as React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nexport const DownloadField = ({ value }) => {\n const intl = useIntl()\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 {intl.formatMessage(genericMessages.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 {intl.formatMessage(genericMessages.download)}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\nimport { useEffect } from 'react'\n\nexport function useVocabulary(vocabularyName, path) {\n const traversal = useTraversal()\n\n const [vocabulary, setVocabulary] = useSetState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n const getPath = () => {\n if (path) return path\n return `${traversal.path}@vocabularies/${vocabularyName}`\n }\n\n useEffect(() => {\n ;(async () => {\n if (\n vocabularyName &&\n vocabulary.data === undefined &&\n !vocabulary.loading\n ) {\n try {\n setVocabulary({ loading: true })\n const data = await traversal.client.get(getPath())\n const dataJson = await data.json()\n setVocabulary({ loading: false, data: dataJson })\n } catch (err) {\n setVocabulary({ loading: false, error: err, data: {} })\n }\n }\n })()\n }, [vocabularyName, vocabulary, path])\n\n return vocabulary\n}\n","import React from 'react'\nimport { DownloadField } from './downloadField'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { useIntl } from 'react-intl'\nconst plain = ['string', 'number', 'boolean']\n\nexport function RenderField({ value, Widget }) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} />\n }\n\n const type = typeof value\n if (plain.includes(type)) {\n return value\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => (\n <div key={item}>\n <RenderField value={item} />\n </div>\n ))\n }\n return Object.keys(value).map((key) => (\n <FieldValue field={key} value={value[key]} key={key} />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\nconst FieldValue = ({ field, value }) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderField value={value} />\n </div>\n </div>\n)\n\nexport function RenderFieldComponent({ schema, field, val, modifyContent }) {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = intl.formatMessage({\n id: 'default_value_editable_field',\n defaultMessage: 'Click to edit',\n })\n const DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\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 } else if (schema?.items?.vocabularyName || schema?.vocabularyName) {\n const vocabularyName =\n schema?.items?.vocabularyName || schema?.vocabularyName\n const vocabulary = useVocabulary(vocabularyName)\n if (schema?.vocabularyName) {\n const vocabularyValue = get(vocabulary, 'data.items', []).find(\n (item) => item.token === val\n )\n renderProps['value'] = vocabularyValue?.title ?? ''\n } else {\n renderProps['value'] = (renderProps['value'] ?? []).map((value) => {\n return (\n get(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n })\n }\n }\n\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\n\nexport function IAttachment({ properties, values }) {\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\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 </Table>\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'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\nexport function IMultiAttachment({ properties, values }) {\n const intl = useIntl()\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(intl.formatMessage(genericFileMessages.error_file_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(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.file_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(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile(fileKeyToDelete)}\n message={\n (intl.formatMessage(\n genericFileMessages.confirm_message_delete_file\n ),\n { fileKeyToDelete })\n }\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}>\n {intl.formatMessage(genericFileMessages.no_files_uploaded)}\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_a_file)}\n </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 required\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 {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import React, { useState } from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useConfig } from '../../hooks/useConfig'\nimport { Delete } from '../ui'\nimport { Button } from '../input/button'\nimport { FileUpload } from '../input/upload'\nimport { Confirm } from '../../components/modal'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\nexport function IImageAttachment({ properties, values }) {\n const intl = useIntl()\n const cfg = useConfig()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.size_images || _sizesImages\n const [file, setFile] = useState(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [showConfirmToDelete, setShowConfirmToDelete] = useState(false)\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/image`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/image/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/image`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), 'success')\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {showConfirmToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setShowConfirmToDelete(false)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_image\n )}\n />\n )}\n {values['image'] && (\n <tr>\n <td key={1}>{intl.formatMessage(genericMessages.image)}</td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={'image'}\n value={values['image']}\n ns=\"guillotina.behaviors.behaviors.IImageAttachment\"\n schema={properties['image']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setShowConfirmToDelete(true)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n <form\n className=\"is-flex is-align-items-center\"\n style={{ gap: '15px' }}\n data-test=\"formImageAttachmentTest\"\n >\n <div>\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n {error && <p className=\"help is-danger\">{error}</p>}\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import React, { useState } from 'react'\n\nimport { Button } from '../input/button'\nimport { Confirm } from '../../components/modal'\nimport { Delete } from '../ui'\nimport { FileUpload } from '../input/upload'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { EditableField } from '../fields/editableField'\nimport { useConfig } from '../../hooks/useConfig'\nimport { Table } from '../ui'\nimport { Input } from '../input/input'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\nexport function IMultiImageAttachment({ properties, values }) {\n const intl = useIntl()\n const cfg = useConfig()\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState(null)\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 const sizesImages = cfg.size_images || _sizesImages\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError(intl.formatMessage(genericFileMessages.error_file_key_name))\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/images/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/images/${fileKey}/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/images/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), 'success')\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={\n (intl.formatMessage(\n genericFileMessages.confirm_message_delete_file\n ),\n { fileKeyToDelete })\n }\n />\n )}\n\n {Object.keys(values['images']).map((key) => (\n <tr key={`multiimageattachment_${key}`}>\n <td key={1}>{key}</td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`images/${key}`}\n value={values['images'][key]}\n ns=\"guillotina.contrib.image.behaviors.IMultiImageAttachment.images\"\n schema={properties['images']['additionalProperties']}\n modifyContent={false}\n required={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['images']).length === 0 && (\n <tr>\n <td colSpan={2}>\n {intl.formatMessage(genericFileMessages.no_images_uploaded)}\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {' '}\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n <form className=\"columns\" data-test=\"formMultiimageAttachmentTest\">\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 required\n />\n {error && <p className=\"help is-danger\">{error}</p>}\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 {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import { Button } from '../input/button'\nimport { Confirm } from '../../components/modal'\nimport { Delete } from '../ui'\nimport { FileUpload } from '../input/upload'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { EditableField } from '../fields/editableField'\nimport { useConfig } from '../../hooks/useConfig'\nimport React, { useEffect, useState } from 'react'\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd'\nimport { v4 as uuidv4 } from 'uuid'\nimport { defineMessages, useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\nconst StrictModeDroppable = ({ children, ...props }) => {\n const [enabled, setEnabled] = useState(false)\n useEffect(() => {\n const animation = requestAnimationFrame(() => setEnabled(true))\n return () => {\n cancelAnimationFrame(animation)\n setEnabled(false)\n }\n }, [])\n if (!enabled) {\n return null\n }\n return <Droppable {...props}>{children}</Droppable>\n}\n\nconst reorder = (list, startIndex, endIndex) => {\n const result = Array.from(list)\n const [removed] = result.splice(startIndex, 1)\n result.splice(endIndex, 0, removed)\n\n return result\n}\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\nconst messages = defineMessages({\n failed_to_sort_images: {\n id: 'failed_to_sort_images',\n defaultMessage: 'Failed to sort images',\n },\n images_sorted: {\n id: 'images_sorted',\n defaultMessage: 'Images sorted',\n },\n})\nexport function IMultiImageOrderedAttachment({ properties, values }) {\n const intl = useIntl()\n const cfg = useConfig()\n const [sortedList, setSortedList] = useState(Object.keys(values['images']))\n const [file, setFile] = useState(null)\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 sizesImages = cfg.size_images || _sizesImages\n\n async function onDragEnd(result) {\n if (!result.destination) {\n return\n }\n\n if (result.destination.index === result.source.index) {\n return\n }\n\n const resultSorted = reorder(\n sortedList,\n result.source.index,\n result.destination.index\n )\n\n setSortedList(resultSorted)\n setLoading(true)\n const endpoint = `${Ctx.path}@sort/images/`\n const req = await Ctx.client.patch(endpoint, resultSorted)\n if (req.status !== 200) {\n setError(intl.formatMessage(messages.failed_to_sort_images))\n setLoading(false)\n return\n }\n\n setLoading(false)\n Ctx.flash(intl.formatMessage(messages.images_sorted), 'success')\n Ctx.refresh()\n }\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!file) {\n setError(intl.formatMessage(genericFileMessages.error_file_key_name))\n return\n }\n setLoading(true)\n setError(undefined)\n const fileKey = uuidv4()\n const endpoint = `${Ctx.path}@upload/images/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/images/${fileKey}/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/images/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), '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()}\n message={\n (intl.formatMessage(\n genericFileMessages.confirm_message_delete_file\n ),\n { fileKeyToDelete })\n }\n />\n )}\n <section>\n <DragDropContext onDragEnd={onDragEnd}>\n <StrictModeDroppable droppableId=\"list\">\n {(provided) => (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {sortedList.map((key, index) => (\n <Draggable\n key={`multiimageattachment_${key}`}\n draggableId={`multiimageattachment_${key}`}\n index={index}\n >\n {(providedChild) => (\n <div\n className=\"is-flex is-align-items-center pt-2 pb-2\"\n style={{ borderTop: '1px solid #dbdbdb' }}\n ref={providedChild.innerRef}\n {...providedChild.draggableProps}\n {...providedChild.dragHandleProps}\n >\n <EditableField\n field={`images/${key}`}\n value={values['images'][key]}\n ns=\"guillotina.contrib.image.behaviors.IMultiImageAttachment.images\"\n schema={properties['images']['additionalProperties']}\n modifyContent={false}\n required={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 )}\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </StrictModeDroppable>\n </DragDropContext>\n </section>\n\n {Object.keys(values['images']).length === 0 && (\n <section>\n {intl.formatMessage(genericFileMessages.no_images_uploaded)}\n </section>\n )}\n {modifyContent && (\n <section>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n\n <form\n className=\"is-flex is-align-items-center\"\n style={{ gap: '15px' }}\n data-test=\"formMultiimageOrderedAttachmentTest\"\n >\n <div>\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n {error && <p className=\"help is-danger\">{error}</p>}\n </section>\n )}\n </React.Fragment>\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'\nimport { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { ItemModel } from '../../models'\nimport { defineMessages, useIntl } from 'react-intl'\n\nconst messages = defineMessages({\n status_changed_ok: {\n id: 'status_changed_ok',\n defaultMessage: 'Great status changed!',\n },\n status_changed_error: {\n id: 'status_changed_error',\n defaultMessage: 'Failed to status changed!: {error}',\n },\n confirm_message: {\n id: 'confirm_message',\n defaultMessage: 'Are you sure to change state: {title}?',\n },\n current_state: {\n id: 'current_state',\n defaultMessage: 'Current state: {state}',\n },\n actions: {\n id: 'actions',\n defaultMessage: 'Actions:',\n },\n})\n\nexport function IWorkflow() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const [definition, setDefinition] = React.useState(undefined)\n const [workflowAction, setWorkflowAction] = React.useState(null)\n const model = new ItemModel(Ctx.context)\n const currentState =\n model.item['guillotina.contrib.workflows.interfaces.IWorkflowBehavior'][\n 'review_state'\n ]\n\n async function loadDefinition() {\n const response = await Ctx.client.get(`${Ctx.path}/@workflow`)\n const workflow = await response.json()\n setDefinition(workflow)\n }\n\n React.useEffect(() => {\n loadDefinition()\n }, [Ctx.path])\n\n const doWorkflowAction = async () => {\n const { isError, errorMessage } = await post(\n {},\n `@workflow/${workflowAction}`,\n false\n )\n await loadDefinition()\n if (!isError) {\n Ctx.flash(intl.formatMessage(messages.status_changed_ok), 'success')\n } else {\n Ctx.flash(\n intl.formatMessage(messages.status_changed_error, {\n error: errorMessage,\n }),\n 'danger'\n )\n }\n\n Ctx.refresh()\n setWorkflowAction(null)\n }\n if (definition === undefined) return null\n\n return (\n <React.Fragment>\n {workflowAction && (\n <Confirm\n loading={loading}\n onCancel={() => setWorkflowAction(null)}\n onConfirm={doWorkflowAction}\n message={intl.formatMessage(messages.confirm_message, {\n title: Ctx.context.title || Ctx.context['@name'],\n })}\n />\n )}\n\n <div className=\"is-flex is-align-items-center mb-3\">\n <div\n className=\"has-text-weight-bold\"\n data-test={`textInfoStatus-${currentState}`}\n >\n {intl.formatMessage(messages.current_state, { state: currentState })}\n </div>\n </div>\n {modifyContent && (\n <div\n className=\" is-flex is-align-items-center has-text-weight-bold\"\n data-test={`textInfoStatus-${currentState}`}\n >\n <label>{intl.formatMessage(messages.actions)}</label>&nbsp;&nbsp;\n {definition.transitions.map((transition) => {\n return (\n <button\n key={transition['@id']}\n className=\"button mr-4\"\n onClick={() =>\n setWorkflowAction(\n transition['@id'].split('@workflow')[1].slice(1)\n )\n }\n >\n {transition.title}\n </button>\n )\n })}\n </div>\n )}\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../../lib/helpers'\n\nexport function PanelActions() {\n const traversal = useTraversal()\n const intl = useIntl()\n const ACTIONS_OBJECT = getActionsObject(intl)\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'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst messages = defineMessages({\n available_addons: {\n id: 'available_addons',\n defaultMessage: 'Available Addons',\n },\n no_available_addons_container: {\n id: 'no_available_addons_container',\n defaultMessage: 'No Addon available in this container',\n },\n installed_addons: {\n id: 'installed_addons',\n defaultMessage: 'Installed Addons',\n },\n})\n\n// TODO: Refactor without useAsync... just crudContext\nexport function PanelAddons(props) {\n const intl = useIntl()\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>{intl.formatMessage(genericMessages.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 {intl.formatMessage(messages.available_addons)}\n </h2>\n <hr />\n {state.value.available.length === 0 && (\n <p>\n {intl.formatMessage(messages.no_available_addons_container)}\n </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 {intl.formatMessage(genericMessages.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 {intl.formatMessage(messages.installed_addons)}\n </h2>\n <hr />\n {state.value.installed.length === 0 && (\n <p>\n {intl.formatMessage(messages.no_available_addons_container)}\n </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 {intl.formatMessage(genericMessages.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'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nexport function PanelBehaviors() {\n const intl = useIntl()\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\">\n {intl.formatMessage(genericMessages.behaviors)}\n </h2>\n {!loading && !isError && result && (\n <React.Fragment>\n <Table>\n <tr>\n <td colSpan=\"3\">\n <h3 className=\"title is-size-6\">\n {intl.formatMessage(genericMessages.static)}\n </h3>\n </td>\n </tr>\n {result.static.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.static)}</td>\n <td>{behavior}</td>\n <td className=\"\">\n <Button className=\"is-small is-pulled-right\" disabled>\n {intl.formatMessage(genericMessages.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\">\n {intl.formatMessage(genericMessages.enabled)}\n </h3>\n </td>\n </tr>\n {result.dynamic.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.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 {intl.formatMessage(genericMessages.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\">\n {intl.formatMessage(genericMessages.available)}\n </h3>\n </td>\n </tr>\n {result.available.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.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 {intl.formatMessage(genericMessages.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'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../lib/helpers'\n\nconst ItemsActionsCtx = createContext({})\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\nexport function ItemsActionsProvider({ items, children }) {\n const intl = useIntl()\n const actions = getActionsObject(intl, true)\n const traversal = useTraversal()\n const [selected, setSelected] = useState({})\n function onSelectAllItems(checked) {\n setSelected(\n items.reduce(\n (obj, item) => {\n obj[`${item.path}/${item.id}`] = checked\n return obj\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item) {\n setSelected((state) => ({\n ...state,\n all: false,\n [`${item.path}/${item.id}`]: !state[`${item.path}/${item.id}`],\n }))\n }\n\n function onAction(actionKey) {\n traversal.doAction(actions[actionKey].action, {\n items: items.filter((item) => selected[`${item.path}/${item.id}`]),\n })\n }\n\n return (\n <ItemsActionsCtx.Provider\n value={{\n onAction,\n onSelectAllItems,\n onSelectOneItem,\n selected,\n }}\n >\n {children}\n </ItemsActionsCtx.Provider>\n )\n}\n\n/**\n * Checkbox component without props that consume the ItemsActionsContext\n * and it select/unselect all items of the page.\n */\nexport function AllItemsCheckbox({ dataTest }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n key={selected.all}\n onChange={onSelectAllItems}\n style={{ marginLeft: 2 }}\n value={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\nexport function ItemCheckbox({ item, dataTest }) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n key={value}\n onChange={() => onSelectOneItem(item)}\n value={value}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Dropdown to choose some action to apply to the selected items.\n */\nexport function ItemsActionsDropdown() {\n const intl = useIntl()\n const ACTIONS_OBJECT = getActionsObject(intl, true)\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_OBJECT).map((action) => ({\n text: ACTIONS_OBJECT[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_OBJECT[o.value].perms.some((perm) => !traversal.hasPerm(perm))\n }\n options={options}\n >\n <div data-test=\"btnChooseActionTest\">\n {intl.formatMessage({\n id: 'choose_action',\n defaultMessage: 'Choose action...',\n })}\n </div>\n </Dropdown>\n )\n}\n","import React from 'react'\nimport { useIntl } from 'react-intl'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nexport function Pagination({ current, total, doPaginate, pager }) {\n const intl = useIntl()\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>\n {intl.formatMessage(\n {\n id: 'pagination',\n defaultMessage:\n '{currentPage} / {totalPages} of {totalItems} items',\n },\n {\n currentPage: current + 1,\n totalPages: maxPages,\n totalItems: total,\n }\n )}\n </span>\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","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\n\nexport function Item({ item, icon }) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\nexport function RItem({ item, search, columns }) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url, traversal.path)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item} data-test={`itemTest-${item['@name']}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} dataTest=\"itemCheckboxRowTest\" />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\nexport function ItemTitle({ title, actions }) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import React from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function SearchLabels(props) {\n const { query } = props\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n if (search) {\n return (\n <div className=\"tags\">\n <Tag\n id={search}\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import React, { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function SearchOptionsLabels(props) {\n const { query = 'q', options } = props\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value = defaultRenderValue\n if ((options ?? []).length > 0) {\n const option = options.find((item) => item.value === value)\n if (option) {\n value = option.text\n }\n }\n setRenderValue(value)\n }, [defaultRenderValue])\n\n const clearSearch = () => {\n del(query)\n }\n\n if (renderValue) {\n return (\n <div className=\"tags\">\n <Tag\n id={defaultRenderValue}\n name={renderValue}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import React, { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\nimport { useVocabulary } from '../hooks/useVocabulary'\nimport { get } from '../lib/utils'\n\nexport function SearchVocabularyLabels(props) {\n const { query = 'q' } = props\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const vocabulary = useVocabulary(props?.vocabulary)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value = defaultRenderValue\n if (get(vocabulary, 'data.items', []).length > 0) {\n const vocabularyValue = get(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )\n if (vocabularyValue) {\n value = vocabularyValue.title\n }\n }\n setRenderValue(value)\n }, [vocabulary, defaultRenderValue])\n\n const clearSearch = () => {\n del(query)\n }\n\n if (renderValue) {\n return (\n <div className=\"tags\">\n <Tag\n id={defaultRenderValue}\n name={renderValue}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Select } from './select'\nimport { get } from '../../lib/utils'\nimport { useVocabulary } from '../../hooks/useVocabulary'\n\nexport const SelectVocabulary = React.forwardRef(\n (\n { vocabularyName, className, classWrap, val, dataTest, multiple, ...rest },\n ref\n ) => {\n const vocabulary = useVocabulary(vocabularyName)\n\n const getOptions = () => {\n if (get(vocabulary, 'data.items', null)) {\n const vocData = vocabulary.data.items.map((item) => {\n return {\n text: item.title.default ?? item.title,\n value: item.token,\n }\n })\n return vocData\n }\n\n return []\n }\n\n const getProps = () => {\n if (multiple) {\n const currentValue = val || []\n return {\n multiple: true,\n size: 5,\n value: currentValue,\n options: getOptions(),\n }\n }\n\n return {\n value: val ?? '',\n appendDefault: true,\n options: getOptions(),\n }\n }\n\n if (vocabulary.data === undefined || vocabulary.loading) {\n return <div />\n }\n\n return (\n <Select\n {...getProps()}\n className={className}\n classWrap={classWrap || 'is-fullwidth'}\n dataTest={dataTest}\n ref={ref}\n {...rest}\n />\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 multiple: PropTypes.bool,\n className: PropTypes.string,\n vocabularyName: PropTypes.string,\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 '../search_labels'\nimport { SearchOptionsLabels } from '../search_options_labels'\nimport { SearchVocabularyLabels } from '../search_vocabulary_labels'\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'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { SelectVocabulary } from '../input/select_vocabulary'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nconst initialState = {\n page: 0,\n items: [],\n loading: true,\n total: 0,\n}\n\nexport function PanelItems() {\n const [location, setLocation, del] = useLocation()\n const { PageSize, SearchEngine } = useConfig()\n const intl = useIntl()\n\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initialState)\n const { items, loading, total } = state\n\n const filterSchema =\n Ctx.registry.getSchemas(Ctx.context['@type']).filters || []\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 sort = location.get('sort')\n const sortDirection = location.get('sort_direction')\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 const fieldsToFilter = Ctx.registry.getFieldsToFilter(Ctx.context['@type'])\n searchParsed = parser(search, fieldsToFilter)\n }\n\n let typeParsed = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n let sortParsed = undefined\n if (sort && sort !== '') {\n if (sortDirection === 'asc') {\n sortParsed = parser(`_sort_asc=${sort}`)\n } else if (sortDirection === 'des') {\n sortParsed = parser(`_sort_des=${sort}`)\n }\n }\n\n const onSort = (key) => {\n if (sort === key && sortDirection === 'des') {\n setLocation({\n sort: key,\n sort_direction: 'asc',\n page: 0,\n })\n } else {\n setLocation({\n sort: key,\n sort_direction: 'des',\n page: 0,\n })\n }\n }\n\n let resultQueryParams = []\n let resultDynamicLocation = []\n filterSchema.forEach((filter) => {\n const itemParam = location.get(filter.attribute_key)\n resultDynamicLocation.push(itemParam)\n if (itemParam) {\n const filterParsed = parser(itemParam, filter.attribute_key)\n resultQueryParams = [...resultQueryParams, ...filterParsed]\n }\n })\n\n useEffect(() => {\n const controller = new AbortController()\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 || sort || resultQueryParams.length > 0) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ...(sortParsed ?? []),\n ...resultQueryParams,\n ])\n } else {\n qs = buildQs(qsParsed)\n }\n\n const { signal } = controller\n data = await Ctx.client.search(Ctx.path, qs, false, false, { signal })\n setState({\n items: data.member,\n loading: false,\n total: data.items_count,\n })\n })()\n return () => {\n controller.abort()\n }\n }, [\n search,\n type,\n Ctx.state.refresh,\n page,\n sort,\n sortDirection,\n ...resultDynamicLocation,\n ])\n\n const doPaginate = (page) => {\n setLocation({ page: page })\n }\n\n const getIcon = (key, isSortable) => {\n let icon = null\n if (isSortable) {\n if (sort !== key) {\n icon = <i className=\"fas fa-sort\" />\n } else if (sortDirection === 'des') {\n icon = <i className=\"fas fa-sort-down\" />\n } else {\n icon = <i className=\"fas fa-sort-up\"></i>\n }\n }\n return <span className=\"icon is-small\">{icon}</span>\n }\n\n return (\n <ItemsActionsProvider items={items}>\n {filterSchema.length > 0 && (\n <div className=\"filters-items-view\">\n {filterSchema.map((filter) => {\n if (filter.type === 'select' && (filter.values ?? []).length > 0) {\n return (\n <Select\n key={`filter-${filter.attribute_key}`}\n id={filter.attribute_key}\n placeholder={filter.label}\n appendDefault\n classWrap=\"is-size-7 is-fullwidth\"\n options={filter.values}\n value={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n } else if (filter.type === 'select' && filter.vocabulary) {\n return (\n <SelectVocabulary\n key={`filter-${filter.attribute_key}`}\n id={filter.attribute_key}\n placeholder={filter.label}\n appendDefault\n vocabularyName={filter.vocabulary}\n classWrap=\"is-size-7 is-fullwidth\"\n value={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n } else if (filter.type === 'input') {\n return (\n <Input\n id={filter.attribute_key}\n key={`filter-${filter.attribute_key}`}\n placeholder={filter.label}\n className=\"is-size-7 is-fullwidth\"\n type={filter.input_type || 'text'}\n value={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n }\n return null\n })}\n </div>\n )}\n <div className=\"wrapper-filters-info\">\n <div className=\"is-size-7\">\n <ItemsActionsDropdown />\n </div>\n <div className=\"wrapper-filters-tags\">\n {location.get('q') && <SearchLabels />}\n {location.get('type') && <SearchLabels query=\"type\" />}\n\n {(filterSchema ?? []).map((filter) => {\n const filterData = location.get(filter.attribute_key)\n if (filterData) {\n if (filter.type === 'select' && filter.vocabulary) {\n return (\n <div key={filter.attribute_key}>\n <SearchVocabularyLabels\n query={filter.attribute_key}\n vocabulary={filter?.vocabulary}\n />\n </div>\n )\n } else if (\n filter.type === 'select' &&\n (filter.values ?? []).length > 0\n ) {\n return (\n <div key={filter.attribute_key}>\n <SearchOptionsLabels\n query={filter.attribute_key}\n options={filter?.values}\n />\n </div>\n )\n }\n return (\n <div key={filter.attribute_key}>\n <SearchLabels query={filter.attribute_key} />\n </div>\n )\n }\n return null\n })}\n </div>\n <div>\n <Pagination\n current={page}\n total={total}\n key=\"pagination-top\"\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </div>\n\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((column) => (\n <th\n key={`table-col-${column.label}`}\n onClick={() => column.isSortable && onSort(column.key)}\n data-test={`sortableColumn${column.key}`}\n >\n <div className=\"has-text-info is-flex is-align-items-center\">\n <span>{column.label}</span>\n {getIcon(column.key, column.isSortable)}\n </div>\n </th>\n ))}\n <th>&nbsp;</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 {intl.formatMessage(genericMessages.no_results)}\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 { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\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 {GetBehavior(behavior)}\n <hr />\n </div>\n ))}\n </React.Fragment>\n )\n}\n\nexport function BehaviorNotImplemented() {\n const intl = useIntl()\n return (\n <tr>\n <td colSpan=\"3\">{intl.formatMessage(genericMessages.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'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst _showProperties = ['@id', '@name', '@uid']\nconst _ignoreFields = [\n 'guillotina.behaviors.dublincore.IDublinCore',\n 'guillotina.behaviors.attachment.IAttachment',\n 'guillotina.behaviors.attachment.IMultiAttachment',\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior',\n 'guillotina.contrib.image.behaviors.IImageAttachment',\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment',\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment',\n '__behaviors__',\n 'type_name',\n 'creation_date',\n 'modification_date',\n 'uuid',\n 'title',\n]\n\nexport function PanelProperties() {\n const intl = useIntl()\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 =\n Ctx.registry.getProperties(Ctx.context['@type']).default ||\n cfg.properties_default ||\n _showProperties\n\n const ignoreFields =\n Ctx.registry.getProperties(Ctx.context['@type']).ignoreField ||\n cfg.properties_ignore_fields ||\n _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 &nbsp;\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\">\n {intl.formatMessage(genericMessages.property)}\n </th>\n <th className=\"is-8\">\n {intl.formatMessage(genericMessages.value)}\n </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\">\n {intl.formatMessage(genericMessages.property)}\n </th>\n <th className=\"is-8\">\n {intl.formatMessage(genericMessages.value)}\n </th>\n </tr>\n </thead>\n <tbody>\n {properties.map(({ key, value }) => {\n return (\n <tr key={'prop' + key}>\n <td>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={get(schema.data, 'required', []).includes(\n key\n )}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n <PropertiesView />\n <BehaviorsView context={Ctx.context} schema={schema.data} />\n </div>\n </div>\n )}\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}) {\n const Ctx = useTraversal()\n const intl = useIntl()\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) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals}\n onChange={(value) => setState({ principal: value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_permissions)}\n </label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nexport function PermissionPrinrole({ principals, roles, operations, refresh }) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n principal: undefined,\n roles: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form_data) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals}\n onChange={(value) => setState({ principal: value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n options={roles}\n onChange={getMultiples('roles', setState)}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n )\n}\n","import React from 'react'\n\nimport ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState({\n role: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n appendDefault\n options={roles}\n onChange={(value) => setState({ role: value })}\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_permissions)}\n </label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.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'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst messages = defineMessages({\n role_permissions: {\n id: 'role_permissions',\n defaultMessage: 'Role Permissions',\n },\n no_role_permissions: {\n id: 'no_role_permissions',\n defaultMessage: 'No roles permissions defined',\n },\n no_principal_permissions: {\n id: 'no_principal_permissions',\n defaultMessage: 'No principal permissions defined',\n },\n no_principal_roles: {\n id: 'no_principal_roles',\n defaultMessage: 'No principal roles defined',\n },\n principal_permissions: {\n id: 'principal_permissions',\n defaultMessage: 'Principal Permissions',\n },\n principal_roles: {\n id: 'principal_roles',\n defaultMessage: 'Principal Roles',\n },\n allow: {\n id: 'allow',\n defaultMessage: 'Allow',\n },\n deny: {\n id: 'deny',\n defaultMessage: 'Deny',\n },\n allow_single: {\n id: 'allow_single',\n defaultMessage: 'AllowSingle',\n },\n unset: {\n id: 'unset',\n defaultMessage: 'Unset',\n },\n add_permissions: {\n id: 'add_permissions',\n defaultMessage: 'Add Permissions',\n },\n select_type: {\n id: 'select_type',\n defaultMessage: 'Select a type:',\n },\n})\n\nexport function PanelPermissions() {\n const intl = useIntl()\n const { get, result, loading } = useCrudContext()\n const ctx = useTraversal()\n\n const [reset, setReset] = React.useState(1)\n\n React.useEffect(() => {\n get('@sharing')\n }, [reset])\n\n const perms = new Sharing(result)\n\n return (\n <div className=\"columns\">\n {!loading && (\n <div\n className=\"column is-8 is-size-7 permissions\"\n data-test=\"containerPermissionsInfoTest\"\n >\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.role_permissions)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\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\">\n {intl.formatMessage(messages.no_role_permissions)}\n </td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.principal_permissions)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\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\">\n {intl.formatMessage(messages.no_principal_permissions)}\n </td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.principal_roles)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\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\">\n {intl.formatMessage(messages.no_role_permissions)}\n </td>\n </tr>\n )}\n </Table>\n </div>\n )}\n {ctx.hasPerm('guillotina.ChangePermissions') && (\n <AddPermission refresh={setReset} reset={reset} />\n )}\n </div>\n )\n}\n\nconst initial = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n currentObj: undefined,\n}\n\nexport function AddPermission({ refresh, reset }) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState(initial)\n const intl = useIntl()\n\n const operations = [\n { text: intl.formatMessage(messages.allow), value: 'Allow' },\n { text: intl.formatMessage(messages.deny), value: 'Deny' },\n { text: intl.formatMessage(messages.allow_single), value: 'AllowSingle' },\n { text: intl.formatMessage(messages.unset), value: 'Unset' },\n ]\n\n const defaultOptions = [\n { text: intl.formatMessage(genericMessages.choose), value: '' },\n { text: intl.formatMessage(messages.role_permissions), value: 'roleperm' },\n {\n text: intl.formatMessage(messages.principal_permissions),\n value: 'prinperm',\n },\n { text: intl.formatMessage(messages.principal_roles), value: 'prinrole' },\n ]\n\n React.useEffect(() => {\n async function init() {\n const permissions = (await Ctx.client.getAllPermissions(Ctx.path)).map(\n (perm) => ({\n text: perm,\n value: perm,\n })\n )\n let principals = []\n let roles = []\n\n let principalsData = await Ctx.client.getPrincipals(Ctx.path)\n const groups = principalsData.groups.map((group) => ({\n text: group.id,\n value: group.id,\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname || user.id,\n value: user.id,\n }))\n principals = [...groups, ...users]\n\n const req = await Ctx.client.getRoles(Ctx.path)\n if (req.ok) {\n roles = (await req.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">\n {intl.formatMessage(messages.add_permissions)}\n </h1>\n <p>{intl.formatMessage(messages.select_type)}</p>\n <Select\n options={defaultOptions}\n onChange={(value) => setState({ current: value })}\n dataTest=\"selectPermissionTypeTest\"\n />\n <hr />\n {state.current && state.current === 'roleperm' && (\n <PermissionRoleperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinperm' && (\n <PermissionPrinperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinrole' && (\n <PermissionPrinrole\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n </div>\n )\n}\n","import React from 'react'\nimport { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\n\nconst prepareAvailable = (items, already, title) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n if (items[0] && typeof items[0] === 'string') {\n return [def]\n .concat(items.map((x) => ({ value: x, text: x })))\n .filter((item) => !already.includes(item.value))\n }\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}) {\n const selectRef = React.useRef()\n\n const [result, setResult] = React.useState(items)\n available = prepareAvailable(available || [], result, title)\n\n const remove = (value) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value) => {\n if (value === '') return\n const items = result.concat([value])\n setResult(items)\n onChange(items)\n }\n\n return (\n <React.Fragment>\n <h3 className=\"title is-size-6\">{title}</h3>\n {loading ? <Loading style={{ marginBottom: '1.5rem' }} /> : <hr />}\n <ul>\n <div className=\"tags\">\n {result.map((item) => (\n <Tag name={item} onRemove={() => remove(item)} key={item} />\n ))}\n </div>\n {result.length === 0 && (\n <li style={{ marginBottom: '20px' }}>{noData}</li>\n )}\n {available.length > 1 && (\n <li className=\"widget-list-add select is-small\">\n <Select\n options={available}\n ref={selectRef}\n onChange={(value) => {\n addItem(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'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const intl = useIntl()\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 {intl.formatMessage(genericMessages.add_type, { type: 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 intl = useIntl()\n const [state, setState] = useSetState(initialState)\n const [location, setLocation, del] = useLocation()\n const traversal = useTraversal()\n const Config = useConfig()\n const searchText = location.get('q')\n const [searchValue, setSearchValue] = React.useState(searchText || '')\n\n useEffect(() => {\n loadTypes()\n }, [traversal.path])\n\n useEffect(() => {\n setSearchValue(searchText)\n }, [searchText])\n\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 = (typeText) => {\n if (typeText && typeText !== '') {\n setLocation({ type: typeText, tab: 'Items', page: 0 })\n } else {\n del('type')\n }\n }\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 value={searchValue || ''}\n onChange={(ev) => setSearchValue(ev.target.value)}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder={intl.formatMessage(genericMessages.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 is-flex-wrap-wrap\">\n <div className=\"level-left mb-4\">\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\nconst tabs = {\n Items: PanelItems,\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\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'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nexport function ApplicationCtx(props) {\n const intl = useIntl()\n const { databases } = props.state.context\n return (\n <React.Fragment>\n <h3>\n {intl.formatMessage({\n id: 'databases',\n defaultMessage: 'Databases',\n })}\n </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 intl = useIntl()\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>{intl.formatMessage(genericMessages.create)}</span>\n </button>\n </React.Fragment>\n )\n}\n\nexport const messages = defineMessages({\n add_container: {\n id: 'add_container',\n defaultMessage: 'Add Container',\n },\n container_created: {\n id: 'container_created',\n defaultMessage: 'Container Created',\n },\n})\n\nfunction ModalAddContainer({ isActive, setActive }) {\n const intl = useIntl()\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(intl.formatMessage(messages.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\n onSubmit={createContainer}\n title={intl.formatMessage(messages.add_container)}\n error={error}\n >\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}>\n {intl.formatMessage(messages.add_container)}\n </Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nexport function PanelNotImplemented(props) {\n const intl = useIntl()\n return (\n <div className=\"container\">\n <h2 className=\"title\">{props.title}</h2>\n <p>{intl.formatMessage(genericMessages.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\nconst tabs = {\n Items: PanelItems,\n Addons: PanelAddons,\n Registry: PanelNotImplemented,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\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}\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'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nexport const UserForm = ({ isEdit = false, children, ...props }) => {\n const intl = useIntl()\n const attr = isEdit\n ? {}\n : {\n title: intl.formatMessage(genericMessages.add_user),\n }\n const schema = {\n type: 'object',\n required: ['username', 'password'],\n properties: {\n username: {\n type: 'string',\n title: intl.formatMessage({\n id: 'username',\n defaultMessage: 'Username',\n }),\n },\n email: {\n type: 'string',\n title: intl.formatMessage({\n id: 'email',\n defaultMessage: 'Email',\n }),\n widget: 'email',\n },\n name: {\n type: 'string',\n title: intl.formatMessage({\n id: 'name',\n defaultMessage: 'Name',\n }),\n },\n password: {\n type: 'string',\n title: intl.formatMessage({\n id: 'password',\n defaultMessage: 'Password',\n }),\n widget: 'password',\n },\n disabled: {\n type: 'boolean',\n title: 'Disabled',\n },\n },\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'\nimport { useLocation } from '../hooks/useLocation'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = React.useRef(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, page: 0 })\n ev.preventDefault()\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={intl.formatMessage(genericMessages.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 <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>{intl.formatMessage(genericMessages.add_user)}</span>\n </button>\n </React.Fragment>\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 intl = useIntl()\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(\n intl.formatMessage(genericMessages.failed_to_update, {\n error: errorMessage,\n }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage({\n id: 'user_updated',\n defaultMessage: 'User updated',\n }),\n 'primary'\n )\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 &nbsp;\n {intl.formatMessage({\n id: 'user',\n defaultMessage: 'User',\n })}\n </h2>\n\n <hr />\n <div className=\"columns\">\n <div className=\"column\">\n <div className=\"container user-props\">\n <p>\n <label>\n {intl.formatMessage({\n id: 'username',\n defaultMessage: 'Username',\n })}\n :{' '}\n </label>{' '}\n {Ctx.context.username} ({Ctx.context.email})\n </p>\n <p>\n <label>\n {' '}\n {intl.formatMessage({\n id: 'creation_date',\n defaultMessage: 'Creation Date',\n })}\n :{' '}\n </label>{' '}\n {formatDate(Ctx.context.creation_date)}\n </p>\n <p>\n <label>\n {' '}\n {intl.formatMessage({\n id: 'modification_date',\n defaultMessage: 'Modification Date',\n })}\n :{' '}\n </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 {intl.formatMessage({\n id: 'change_password',\n defaultMessage: 'Change Password',\n })}\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 {intl.formatMessage(genericMessages.save)}\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={intl.formatMessage({\n id: 'there_is_no_groups_for_this_user',\n defaultMessage: 'There is no groups for this user',\n })}\n available={state.groups}\n />\n <hr />\n <TagsWidget\n onChange={updateRemote('user_roles')}\n items={remotes.user_roles}\n title=\"Roles\"\n noData={intl.formatMessage({\n id: 'the_user_doesnt_have_any_role',\n defaultMessage: \"The user doesn't have any role\",\n })}\n available={state.roles}\n />\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\n\nconst withError = (res) => res.status >= 300\nexport function CopyItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function copyItems(path, form) {\n const responses = await Promise.all(\n items.map((item, i) => {\n const input = form[i + 1] || {}\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@duplicate`, {\n destination: path,\n new_id: input.value || getNewId(item.id),\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be copied to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not copied correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items copied!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={Ctx.client.clearContainerFromPath(Ctx.path)}\n onConfirm={copyItems}\n onCancel={() => Ctx.cancelAction()}\n >\n {items.map((item) => (\n <React.Fragment key={item.id}>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item.id}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item.id)}\n />\n </React.Fragment>\n ))}\n &nbsp;\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\n\nexport function CopyItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const { item } = props\n\n async function copyItem(path, form) {\n const input = form[1] || {}\n const { isError, errorMessage } = await post(\n {\n destination: path,\n new_id: input.value || getNewId(item['@name']),\n },\n '@duplicate'\n )\n\n if (!isError) {\n Ctx.flash(`Field copied!`, 'success')\n } else {\n Ctx.flash(`Failed to copy item!: ${errorMessage}`, 'danger')\n }\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${item['parent']['@name'] ?? '/'}`}\n onConfirm={copyItem}\n onCancel={() => Ctx.cancelAction()}\n >\n <React.Fragment>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item['@name']}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item['@name'])}\n />\n </React.Fragment>\n </PathTree>\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\n\nconst withError = (res) => res.status >= 300\n\nexport function MoveItems(props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function moveItems(path) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@move`, {\n destination: path,\n new_id: item['@name'],\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be moved to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not moved correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items moved!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItems}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function MoveItem(props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path) {\n const { isError, errorMessage, result } = await post(\n {\n destination: path,\n new_id: item['@name'],\n },\n '@move'\n )\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(result['@url'])}/`,\n tab: '',\n })\n Ctx.flash(`Field moved!`, 'success')\n } else {\n Ctx.flash(`Failed to move item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import React from 'react'\nimport { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function RemoveItem(props) {\n const Ctx = useTraversal()\n const { del, loading } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function removeItem() {\n const { isError, errorMessage } = await del()\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(item['parent']['@id'])}/`,\n tab: '',\n })\n Ctx.flash(`Field removed!`, 'success')\n } else {\n Ctx.flash(`Failed to delete item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItem}\n message={`Are you sure to remove: ${item['@name']}?`}\n />\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Input } from '../components/input/input'\nimport { Button } from '../components/input/button'\nimport { Form } from '../components/input/form'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword(props) {\n const [state, setState] = React.useState(initial)\n const [perror, setPerror] = React.useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n // const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n if (state.pass1 === '') {\n setPerror('provide a password')\n return\n }\n\n if (state.pass1 !== state.pass2) {\n setPerror(\"passwords doesn't match\")\n return\n }\n\n setPerror(undefined)\n\n let form = {\n password: state.pass1,\n }\n\n const { isError, errorMessage } = await patch(form)\n if (!isError) {\n Ctx.flash('Password Changed', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n const setPass = (field) => (val) => {\n let n = {}\n n[field] = val\n setState((state) => ({ ...state, ...n }))\n setPerror(undefined)\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Change'}\n title={'Change Password'}\n >\n {perror && (\n <div className=\"notification is-danger is-size-7\">\n <button className=\"delete\"></button>\n {perror}\n </div>\n )}\n <Input\n id=\"pass\"\n placeholder=\"New Password\"\n type=\"password\"\n value={state.pass1}\n onChange={setPass('pass1')}\n />\n\n <Input\n id=\"pass\"\n placeholder=\"Repeat Password\"\n type=\"password\"\n value={state.pass2}\n onChange={setPass('pass2')}\n />\n <Button>Change</Button>\n </Form>\n </Modal>\n )\n}\n","import React from 'react'\nimport { useState } from 'react'\nimport { Input } from '../components/input/input'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nexport function BaseForm({ onSubmit, actionName, title, dataTest, loading }) {\n const intl = useIntl()\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(intl.formatMessage(genericMessages.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={intl.formatMessage(genericMessages.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 || intl.formatMessage(genericMessages.add)}\n </button>\n </div>\n </Form>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\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 <Table\n headers={['Field', 'Value']}\n className=\"is-striped is-fullwidth is-size-7\"\n >\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 </Table>\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 { useLocation } from '../hooks/useLocation'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = React.useRef(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, page: 0 })\n ev.preventDefault()\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={intl.formatMessage(genericMessages.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 <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>\n {intl.formatMessage({\n id: 'add_group',\n defaultMessage: 'Add Group',\n })}\n </span>\n </button>\n </React.Fragment>\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 intl = useIntl()\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(\n intl.formatMessage(genericMessages.failed_to_update, {\n error: errorMessage,\n }),\n 'danger'\n )\n }\n }\n\n const addRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.concat(role),\n })\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'role_added_to_group',\n defaultMessage: 'Role {role} added to group',\n },\n { role }\n ),\n errorMessage\n )\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(\n isError,\n intl.formatMessage(\n {\n id: 'role_removed_from_group',\n defaultMessage: 'Role {role} removed from group',\n },\n { role }\n ),\n errorMessage\n )\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 {\n isError,\n errorMessage,\n } = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'user_added_to_group',\n defaultMessage: 'User {user} added to group',\n },\n { user: newUser.id }\n ),\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 {\n isError,\n errorMessage,\n } = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'user_removed_from_group',\n defaultMessage: 'User {user} removed from group',\n },\n { user: userToRemove }\n ),\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>\n &nbsp;\n {intl.formatMessage({\n id: 'group',\n defaultMessage: 'Group',\n })}\n </span>\n </h2>\n <hr />\n <div className=\"columns\">\n <div className=\"column is-4\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.title)}{' '}\n </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\">\n {intl.formatMessage({\n id: 'roles',\n defaultMessage: 'Roles',\n })}\n </h3>\n <p>\n {intl.formatMessage({\n id: 'add_role',\n defaultMessage: 'Add a Role',\n })}\n </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\">\n {intl.formatMessage({\n id: 'users',\n defaultMessage: 'Users',\n })}\n </h3>\n <p>{intl.formatMessage(genericMessages.add_user)}</p>\n <SearchInput\n path={`${Ctx.containerPath}/users/`}\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'\nimport { injectIntl } from 'react-intl'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nclass ErrorBoundaryComponent 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}>\n {this.props.intl.formatMessage({\n id: 'something_went_wrong',\n defaultMessage: 'Something went wrong.',\n })}\n </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\nexport default injectIntl(ErrorBoundaryComponent)\n","import React from 'react'\nimport { Icon } from './ui/icon'\nimport { useIntl } from 'react-intl'\n\nexport function NotAllowed() {\n const intl = useIntl()\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\">\n {intl.formatMessage({\n id: 'not_allowed',\n defaultMessage: 'Not Allowed',\n })}\n </h1>\n </div>\n )\n}\n","import React from 'react'\nimport { Icon } from './ui/icon'\nimport { useIntl } from 'react-intl'\n\nexport function NotFound() {\n const intl = useIntl()\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\">\n {intl.formatMessage({\n id: 'not_found',\n defaultMessage: '404. Not Found',\n })}\n </h1>\n </div>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\n/* eslint jsx-a11y/anchor-is-valid: \"off\" */\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n let segments = ctx.path.replace(/\\/$/, '').split('/')\n let links = buildPaths(segments)\n\n if (segments.length === 1) {\n return false\n }\n\n return (\n <nav className=\"breadcrumb\" aria-label=\"breadcrumbs\">\n <ul>\n {segments.map((item, indx) => {\n const path = links[indx]\n const onClick = (e) => {\n if (window.event.ctrlKey || window.event.metaKey) return\n e.preventDefault()\n navigate({ path }, true)\n }\n\n return indx === 0 ? (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-home`}\n >\n <span className=\"icon\">\n <i className=\"fas fa-home\"></i>\n </span>\n </a>\n </li>\n ) : (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-${item.toLowerCase()}`}\n >\n {item}\n </a>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nconst buildPaths = (segments) => {\n let current = ''\n let results = []\n segments.map((item, indx) => {\n if (indx === 0) {\n current += '/'\n } else {\n current += item + '/'\n }\n results.push(current)\n return item\n })\n return results\n}\n","import React from 'react'\nimport { Textarea } from '../input/textarea'\nimport { Checkbox } from '../input/checkbox'\nimport { FileUpload } from '../input/upload'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { InputList } from '../input/input_list'\nimport { get } from '../../lib/utils'\nimport { SelectVocabulary } from '../input/select_vocabulary'\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 if (schema.items && schema.items.type === 'string') {\n if (schema.items.vocabularyName) {\n return (\n <SelectVocabulary\n vocabularyName={get(schema, 'items.vocabularyName', null)}\n val={val || []}\n className={className}\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n {...rest}\n onChange={setValue}\n multiple\n />\n )\n } else if (schema?.items?.vocabulary) {\n return (\n <Select\n value={val || []}\n className={className}\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n options={schema?.items.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n multiple\n onChange={setValue}\n {...rest}\n />\n )\n }\n }\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' && schema.type === 'string') {\n if (schema?.vocabularyName) {\n return (\n <SelectVocabulary\n val={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n onChange={setValue}\n vocabularyName={get(schema, 'vocabularyName', null)}\n {...rest}\n />\n )\n }\n\n return (\n <Select\n value={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n options={schema?.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n onChange={setValue}\n {...rest}\n />\n )\n }\n const getInputType = () => {\n switch (schema?.type) {\n case 'integer':\n return 'number'\n case 'date':\n return 'date'\n case 'datetime':\n return 'datetime-local'\n default:\n return 'text'\n }\n }\n return (\n <Input\n value={val || ''}\n className={className}\n dataTest={dataTest}\n onChange={(ev) => setValue(ev)}\n ref={ref}\n type={getInputType()}\n {...rest}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","import { FolderCtx } from '../views/folder'\nimport { ItemCtx } from '../views/item'\nimport { ApplicationCtx } from '../views/application'\nimport { DatabaseCtx } from '../views/application'\nimport { ContainerCtx } from '../views/container'\nimport { UsersCtx } from '../views/users'\nimport { UserCtx } from '../views/users'\nimport { CopyItems } from '../actions/copy_items'\nimport { CopyItem } from '../actions/copy_item'\nimport { MoveItems } from '../actions/move_items'\nimport { MoveItem } from '../actions/move_item'\nimport { RemoveItems } from '../actions/remove_items'\nimport { RemoveItem } from '../actions/remove_item'\nimport { AddItem } from '../actions/add_item'\nimport { ChangePassword } from '../actions/change_pass'\nimport { BaseForm } from '../forms/base'\nimport { UserForm } from '../forms/users'\nimport { IAttachment } from '../components/behaviors/iattachment'\nimport { IDublinCore } from '../components/behaviors/idublincore'\nimport { IMultiAttachment } from '../components/behaviors/imultiattachment'\nimport { IImageAttachment } from '../components/behaviors/iimageattachment'\nimport { IMultiImageAttachment } from '../components/behaviors/imultiimageattachment'\nimport { IMultiImageOrderedAttachment } from '../components/behaviors/imultiimageorderedattachment'\nimport { IWorkflow } from '../components/behaviors/iworkflow'\nimport { GroupsCtx } from '../views/groups'\nimport { GroupCtx } from '../views/groups'\nimport ErrorBoundary from '../components/error_boundary'\nimport React from 'react'\nimport { NotAllowed } from '../components/notallowed'\nimport { NotFound } from '../components/notfound'\nimport { Path } from '../components/path'\nimport { EditComponent } from '../components/fields/editComponent'\nimport { RenderFieldComponent } from '../components/fields/renderField'\n\nlet registry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n 'guillotina.contrib.image.behaviors.IImageAttachment': IImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment': IMultiImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment': IMultiImageOrderedAttachment,\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior': IWorkflow,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n RenderFieldComponent: RenderFieldComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n fieldsToFilter: {\n UserManager: ['id', 'email', 'user_name'],\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\nconst getSchemas = (type) => {\n return registry.schemas[type] || {}\n /*\n filters: [\n {\n attribute_key: string,\n label: string,\n type: 'select' | 'input'\n vocabulary: string | undefined\n values: {[key:string]:any}[]\n }\n ]\n */\n}\n\nconst getFieldsToFilter = (type, fallback) => {\n return registry.fieldsToFilter[type] || fallback\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 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 getFieldsToFilter,\n getSchemas,\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'\nimport { IntlProvider } from 'react-intl'\nimport langCA from '../locales/compiled/ca.json'\nimport langES from '../locales/compiled/es.json'\nimport langEN from '../locales/compiled/en.json'\n\nfunction loadLocaleData(locale) {\n switch (locale) {\n case 'ca':\n return langCA\n case 'es':\n return langES\n default:\n return langEN\n }\n}\n\nexport function Guillotina({ auth, locale, ...props }) {\n const messages = loadLocaleData(locale)\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 <IntlProvider locale={locale} defaultLocale=\"en\" messages={messages}>\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 </IntlProvider>\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 src=\"/logo.svg\" alt=\"Guillotina logo\" height=\"80\" />\n </a>\n <a\n id=\"burger\"\n href=\"/\"\n role=\"button\"\n className=\"navbar-burger burger\"\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </a>\n </div>\n <div id=\"navbarmenu\" className=\"navbar-menu\">\n <div className=\"navbar-start\"></div>\n <div className=\"navbar-end\">\n <div className=\"navbar-item\">\n {auth.isLogged && (\n <div className=\"buttons\">\n <button className=\"button is-size-7\" onClick={doLogout}>\n <Icon icon=\"fas fa-sign-out-alt\" size=\"is-size-7\" />\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </nav>\n </header>\n <section className=\"section main\">\n <div className=\"container\">\n <div className=\"column\">{children}</div>\n </div>\n </section>\n </React.Fragment>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}) => {\n const [state, setState] = useSetState(initialState)\n const inputRef = useRef(null)\n\n useEffect(() => {\n if (inputRef) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev) => {\n ev.preventDefault()\n setState({ loading: true, errors: undefined })\n const { username, password } = state\n\n if (currentSchema !== '') {\n auth.setAccount(currentSchema)\n }\n const res = await auth.login(username, password)\n\n if (!res) {\n setState({ errors: auth.errors, loading: false })\n return\n }\n\n if (onLogin) {\n onLogin()\n }\n }\n\n return (\n <React.Fragment>\n <form\n className=\"login__form\"\n action=\"\"\n onSubmit={doLogin}\n data-test=\"formLoginTest\"\n >\n <div className=\"field\">\n <label className=\"label\">Username:</label>\n <input\n type=\"text\"\n className=\"input\"\n placeholder=\"Username\"\n onChange={(e) => setState({ username: e.target.value })}\n value={state.username}\n ref={inputRef}\n data-test=\"inputUsernameLoginTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Password:</label>\n <input\n type=\"password\"\n className=\"input\"\n placeholder=\"Password\"\n onChange={(e) => setState({ password: e.target.value })}\n value={state.password}\n data-test=\"inputPasswordLoginTest\"\n />\n </div>\n {schemas && schemas.length > 1 && (\n <div className=\"field\">\n <label className=\"label\">Schema:</label>\n <div className=\"select\">\n <select\n data-test=\"selectSchemaTest\"\n onChange={(e) => setCurrentSchema(e.target.value)}\n >\n {schemas.map((s) => (\n <option value={s} key={s}>\n {s}\n </option>\n ))}\n </select>\n </div>\n </div>\n )}\n <div className=\"field\">\n <button\n className=\"button is-warning\"\n type=\"submit\"\n data-test=\"btnLoginTest\"\n >\n Login\n </button>\n </div>\n <div className=\"field\">\n {state.errors && (\n <p className=\"has-text-danger\">\n {ERRORS[state.errors] || 'Generic error'}\n </p>\n )}\n </div>\n </form>\n </React.Fragment>\n )\n}\n","import React from 'react'\nimport { useState, useEffect } from 'react'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useTraversal } from '../contexts'\nimport useSetState from '../hooks/useSetState'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\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 intl = useIntl()\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] = intl.formatMessage(\n genericMessages.field_is_required\n )\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 || intl.formatMessage(genericMessages.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', new Date(data.exp).getTime())\n }\n\n cleanAuth() {\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n }\n\n logout() {\n this.cleanAuth()\n }\n\n async refreshToken() {\n console.log('refresh!!!')\n this.retryRefresh++\n let data = await fetch(this.getUrl('@login-renew'), {\n headers: this.getHeaders(),\n method: 'post',\n })\n if (data.status === 401) {\n // invalid token\n this.cleanAuth()\n this.onLogout()\n return\n }\n const res = await data.json()\n console.log('refresh data', res)\n this.storeAuth(res)\n console.log('token refreshed')\n this.retryRefresh = 0\n return data.token\n }\n\n willExpire(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 < now + 10 * 1000) {\n return true\n }\n return false\n }\n\n isExpired(expiration) {\n let now = new Date().getTime()\n if (parseInt(expiration) * 1000 > now) {\n return false\n }\n return true\n }\n\n _getToken() {\n return [localStorage.getItem('auth'), localStorage.getItem('auth_expires')]\n }\n\n getToken() {\n const [token] = this._getToken()\n return token\n }\n\n getHeaders() {\n const [authToken, expires] = this._getToken()\n if (!authToken) return {}\n\n if (this.willExpire(expires) && this.retryRefresh < this.maxRetry) {\n ;(async () => await this.refreshToken())()\n }\n\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n}\n"],"names":["AuthContext","createContext","ClientContext","TraversalContext","Traversal","constructor","flash","props","Object","assign","refresh","transparent","dispatch","type","payload","path","state","pathPrefix","slice","context","containerPath","client","getContainerFromPath","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","permissions","filterTabs","tabs","tabsPermissions","result","keys","forEach","item","perm","TraversalProvider","children","useTraversal","React","useContext","ClientProvider","useGuillotinaClient","genericMessages","defineMessages","loading","id","defaultMessage","remove","install","delete","move_to","copy_to","behaviors","static","disable","enable","enabled","available","invalid_form_data","invalid_form","select_principal","select_role","select_permissions","operation","save","choose","property","value","create","upload","image","error_provide_key_name","mandatory_field","error_in_field","field_updated","field_deleted","can_not_delete_field","cancel","open","download","search","no_results","load_more","add_type","confirm","field_is_required","title","add","not_implemented","failed_to_update","add_user","role","setting","genericFileMessages","error_file_key_name","error_upload_file","error_upload_file_size","image_uploaded","file_uploaded","failed_delete_file","image_deleted","confirm_message_delete_file","confirm_message_delete_image","no_images_uploaded","no_files_uploaded","upload_an_image","upload_a_file","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","getActionsObject","intl","multiple","DELETE","text","formatMessage","perms","MOVE","COPY","Button","className","onClick","disabled","dataTest","rest","css","concat","split","Modal","isActive","setActive","Portal","usePortal","Confirm","onCancel","onConfirm","useIntl","marginTop","PathTree","defaultPath","e","preventDefault","target","display","useSetState","initialState","set","useState","setState","useCallback","patch","prevState","Function","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","body","newState","console","error","del","post","get","req","useCrudContext","AddItem","getForm","registry","Form","doSubmit","form","formData","err","log","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","setLoading","items","last","itemsNames","removeItems","errors","actions","ok","push","all","errorstr","JSON","stringify","Checkbox","classNameInput","indeterminate","placeholder","onChange","inputRef","useEffect","updateState","ev","checked","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","icon","iconPosition","errorZoneClassName","autoComplete","required","autofocus","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","arrayOf","oneOf","autoFocus","bool","isSubmitted","name","onKeyDown","onKeyUp","onPressEnter","readOnly","oneOfType","number","Icon","align","addClass","EmailInput","onSubmit","onReset","handleSubmit","event","isRequired","PasswordInput","formComponents","password","boolean","email","FormBuilder","actionName","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","label","displayName","children_","Children","child","cloneElement","changes","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","obj","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","Select","options","size","classWrap","appendDefault","style","selectValue","selectedOptions","cssWrap","index","toString","object","setURLParams","p","history","pathname","clean","URLSearchParams","_key","useLocation","update","currentSearchParams","prevPath","patchHistoryEvents","checkForUpdates","events","addEventListener","removeEventListener","navigate","param","patched","arguments","Event","dispatchEvent","location","Link","aRef","model","aStyle","textDecoration","color","stopPropagation","actAsLink","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","Loading","onRemove","Delete","Table","headers","idx","Notification","isColor","RestClient","url","container","auth","request","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","fetchData","put","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","Error","orParser","parsed","buildQs","lastKey","part","val","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","isSortable","m","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","file","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","gr","usr","getRoles","getAllPermissions","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","Textarea","rows","debounce","wait","timeout","args","later","clearTimeout","page","SearchInput","traversal","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","searchTermQs","searchTermParsed","fnName","qsParsed","newItems","renderTextItemOptionFn","currentTarget","contains","relatedTarget","InputList","inputValue","setInputValue","addTags","React.createElement","tag","defaultEvents","on","off","useClickAway","onClickAway","savedCallback","handler","el","eventName","document","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","RenderFieldComponent","canModified","saveField","unescape","dataPatch","deleteField","enum","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","href","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","useVocabulary","vocabularyName","vocabulary","setVocabulary","getPath","dataJson","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_EDITABLE_FIELD","DEFAULT_VALUE_NO_EDITABLE_FIELD","getRenderProps","renderProps","toLocaleString","vocabularyValue","find","token","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","_sizesImages","IImageAttachment","sizesImages","size_images","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","IMultiImageAttachment","StrictModeDroppable","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","reorder","list","startIndex","endIndex","removed","splice","messages","failed_to_sort_images","images_sorted","IMultiImageOrderedAttachment","sortedList","setSortedList","onDragEnd","destination","source","resultSorted","uuidv4","provided","innerRef","droppableProps","providedChild","borderTop","draggableProps","dragHandleProps","base","local","roleperm","prinperm","prinrole","inherit","Sharing","roles","getRole","principals","principal","getPrinroles","ItemModel","_path","icons","fullPath","_url","type_name","creation_date","modification_date","status_changed_ok","status_changed_error","confirm_message","current_state","IWorkflow","definition","setDefinition","workflowAction","setWorkflowAction","currentState","loadDefinition","workflow","doWorkflowAction","transitions","transition","PanelActions","ACTIONS_OBJECT","some","onAction","actionKey","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callback","callId","then","useAsync","available_addons","no_available_addons_container","installed_addons","PanelAddons","setAction","prepareData","addon","installed","addons","arrayToObject","array","PanelBehaviors","ops","enableBehavior","disableBehavior","dynamic","ItemsActionsCtx","ItemsActionsProvider","selected","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","marginLeft","ItemCheckbox","absId","ItemsActionsDropdown","every","v","o","Pagination","total","doPaginate","pager","maxPages","Math","ceil","currentPage","totalPages","totalItems","Item","RItem","columns","ItemTitle","SearchLabels","clearSearch","SearchOptionsLabels","renderValue","setRenderValue","defaultRenderValue","SearchVocabularyLabels","SelectVocabulary","getOptions","vocData","default","getProps","currentValue","PanelItems","setLocation","filterSchema","getSchemas","filters","sort","sortDirection","searchParsed","fieldsToFilter","getFieldsToFilter","typeParsed","sortParsed","onSort","sort_direction","resultQueryParams","resultDynamicLocation","itemParam","attribute_key","filterParsed","controller","AbortController","signal","abort","getIcon","tab","input_type","filterData","column","BehaviorsView","getBehavior","__behaviors__","GetBehavior","b","Cls","BehaviorNotImplemented","PropertiesButtonView","getProperties","Props","Buttons","Element","PropertiesView","Panels","_showProperties","_ignoreFields","PanelProperties","setSchema","showProperties","properties_default","ignoreFields","ignoreField","properties_ignore_fields","prop","PermissionPrinperm","operations","getMultiples","setter","savePermission","random","PermissionPrinrole","PermissionRoleperm","role_permissions","no_role_permissions","no_principal_permissions","no_principal_roles","principal_permissions","principal_roles","allow","deny","allow_single","unset","add_permissions","select_type","PanelPermissions","ctx","reset","setReset","row","currentObj","AddPermission","defaultOptions","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","AddButton","searchText","searchValue","setSearchValue","loadTypes","onSearchQuery","q","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","databases","db","DatabaseCtx","containers","CreateContainer","add_container","container_created","ModalAddContainer","isLoading","idField","setId","createContainer","PanelNotImplemented","Addons","Registry","ContainerCtx","UserForm","attr","username","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","gorups","user_groups","user_roles","requestGetGroups","requestGetRoles","updateObject","withError","CopyItems","copyItems","responses","input","new_id","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","perror","setPerror","setPass","n","BaseForm","setName","submit","setTitle","editableFields","IDublinCore","Groups","GroupToolbar","GroupsCtx","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundaryComponent","Component","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","injectIntl","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","getInputType","paths","views","ErrorBoundary","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","loadLocaleData","locale","langCA","langES","langEN","Guillotina","config","searchPath","useReducer","pr","contextData","Main","Action","Layout","onLogout","doLogout","logout","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","s","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","credentials","storeAuth","localStorage","expires","_getToken","isExpired","jwt_decode","setItem","exp","getTime","cleanAuth","refreshToken","willExpire","expiration","getItem"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CD,SAAS4gC,cAAT,CAAwBC,MAAxB,EAAgC;AAC9B,UAAQA,MAAR;AACE,SAAK,IAAL;AACE,aAAOC,MAAP;;AACF,SAAK,IAAL;AACE,aAAOC,MAAP;;AACF;AACE,aAAOC,MAAP;AANJ;AAQD;;AAEM,SAASC,UAAT,OAAgD;AAAA,MAA5B;AAAE3lB,IAAAA,IAAF;AAAQulB,IAAAA;AAAR,GAA4B;AAAA,MAATthC,KAAS;;AACrD,QAAMqqB,QAAQ,GAAGgX,cAAc,CAACC,MAAD,CAA/B;AACA,QAAMzlB,GAAG,GAAG7b,KAAK,CAAC6b,GAAN,IAAa,uBAAzB,CAFqD;;AAGrD,QAAM8lB,MAAM,GAAG3hC,KAAK,CAAC2hC,MAAN,IAAgB,EAA/B;AACA,QAAM7gC,MAAM,GAAGgC,mBAAmB,EAAlC;AAEA,QAAM;AAAEuL,IAAAA;AAAF,MAAkBe,SAAS,CAACuyB,MAAD,CAAjC;AACA,QAAM7zB,QAAQ,GAAGmzB,WAAW,CAACjhC,KAAK,CAAC8N,QAAN,IAAkB,EAAnB,CAA5B,CAPqD;;AASrD,QAAM,CAACqM,QAAD,IAAaf,WAAW,EAA9B,CATqD;;AAYrD,QAAMwoB,UAAU,GAAGznB,QAAQ,CAAC1M,GAAT,CAAa,MAAb,KAAwB,GAA3C;;AACA,MAAIm0B,UAAU,IAAIA,UAAU,KAAK,EAAjC,EAAqC;AACnCl2B,IAAAA,cAAY,CAAClL,IAAb,GAAoBohC,UAApB;AACD;;AAED,QAAM,CAACnhC,KAAD,EAAQJ,QAAR,IAAoBwhC,UAAU,CAACV,iBAAD,EAAoBz1B,cAApB,CAApC;AAEA,QAAM;AAAElL,IAAAA,IAAF;AAAQL,IAAAA;AAAR,MAAoBM,KAA1B;AAEAmQ,EAAAA,SAAS,CAAC,MAAM;AACdvQ,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,IAAI,EAAE,UAAR;AAAoBC,MAAAA,OAAO,EAAEqhC;AAA7B,KAAD,CAAR;AACD,GAFQ,EAEN,CAACA,UAAD,CAFM,CAAT;AAIAhxB,EAAAA,SAAS,CAAC,MAAM;;AACb,KAAC,YAAY;AACZ,UAAI3P,IAAI,GAAG,MAAMH,MAAM,CAACqd,UAAP,CAAkB3d,IAAlB,CAAjB;;AACA,UAAIS,IAAI,CAAC8L,MAAL,KAAgB,GAApB,EAAyB;AACvB1M,QAAAA,QAAQ,CAAC;AAAEC,UAAAA,IAAI,EAAE,WAAR;AAAqBC,UAAAA,OAAO,EAAE;AAA9B,SAAD,CAAR;AACA;AACD,OAHD,MAGO,IAAIU,IAAI,CAAC8L,MAAL,KAAgB,GAApB,EAAyB;AAC9B1M,QAAAA,QAAQ,CAAC;AAAEC,UAAAA,IAAI,EAAE,WAAR;AAAqBC,UAAAA,OAAO,EAAE;AAA9B,SAAD,CAAR;AACA;AACD;;AACD,UAAIK,OAAO,GAAG,MAAMK,IAAI,CAAC+L,IAAL,EAApB;AACA,YAAM80B,EAAE,GAAG,MAAMhhC,MAAM,CAAC2e,MAAP,CAAcjf,IAAd,EAAoB6N,WAApB,CAAjB;AACA,YAAMtM,WAAW,GAAG,MAAM+/B,EAAE,CAAC90B,IAAH,EAA1B;AACA3M,MAAAA,QAAQ,CAAC;AAAEC,QAAAA,IAAI,EAAE,aAAR;AAAuBC,QAAAA,OAAO,EAAE;AAAEK,UAAAA,OAAF;AAAWmB,UAAAA;AAAX;AAAhC,OAAD,CAAR;AACD,KAbA;AAcF,GAfQ,EAeN,CAACvB,IAAD,EAAOL,OAAP,EAAgBW,MAAhB,CAfM,CAAT;AAiBA,QAAM6+B,aAAa,GAAG7xB,QAAQ,CAACL,GAAT,CAAa,OAAb,EAAsB,eAAtB,CAAtB;AACA,QAAMuxB,UAAU,GAAGlxB,QAAQ,CAACL,GAAT,CAAa,OAAb,EAAsB,YAAtB,CAAnB;AACA,QAAMwxB,QAAQ,GAAGnxB,QAAQ,CAACL,GAAT,CAAa,OAAb,EAAsB,UAAtB,CAAjB;AACA,QAAMyxB,IAAI,GAAGpxB,QAAQ,CAACL,GAAT,CAAa,YAAb,EAA2B,MAA3B,CAAb;AAEA,QAAMs0B,WAAW,GAAG;AAClBlmB,IAAAA,GADkB;AAElB/a,IAAAA,MAFkB;AAGlBib,IAAAA,IAHkB;AAIlBtb,IAAAA,KAJkB;AAKlBJ,IAAAA,QALkB;AAMlByN,IAAAA,QANkB;AAOlB/N,IAAAA,KAAK,EAAE4hC,MAAM,CAAC5hC;AAPI,GAApB;AAUA,QAAM;AAAE2B,IAAAA,MAAF;AAAUw/B,IAAAA,WAAV;AAAuBn/B,IAAAA;AAAvB,MAAuCtB,KAA7C;AACA,QAAMuhC,IAAI,GAAGl0B,QAAQ,CAAC8yB,YAAT,CAAsBngC,KAAK,CAACG,OAA5B,EAAqCJ,IAArC,CAAb;AACA,QAAMyhC,MAAM,GAAGvgC,MAAM,CAACA,MAAP,GAAgBoM,QAAQ,CAACizB,SAAT,CAAmBr/B,MAAM,CAACA,MAA1B,CAAhB,GAAoD,IAAnE;AAEA,sBACE,oBAAC,YAAD;AAAc,IAAA,MAAM,EAAE4/B,MAAtB;AAA8B,IAAA,aAAa,EAAC,IAA5C;AAAiD,IAAA,QAAQ,EAAEjX;AAA3D,kBACE,oBAAC,aAAD,QACG,CAAC6W,WAAD,iBACC,oBAAC,iBAAD,EAAuBa,WAAvB,EACGhgC,WAAW,iBACV,oBAAC,KAAD,CAAO,QAAP,QACGL,MAAM,CAACA,MAAP,iBAAiB,oBAAC,MAAD,EAAYA,MAAM,CAACC,MAAnB,CADpB,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,IAAD,OADF,CADF,CADF,CAFF,eASE,oBAAC,KAAD,OATF,EAUGqgC,IAAI,iBACH,oBAAC,aAAD,qBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGvhC,KAAK,CAACwC,OAAN,iBAAiB,oBAAC,OAAD,OADpB,EAEG,CAACxC,KAAK,CAACwC,OAAP,iBAAkB,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAExC;AAAb,IAFrB,CADF,CAXJ,CAFJ,CAFJ,EA2BGygC,WAAW,KAAK,YAAhB,iBAAgC,oBAAC,UAAD,OA3BnC,EA4BGA,WAAW,KAAK,UAAhB,iBAA8B,oBAAC,QAAD,OA5BjC,CADF,CADF;AAkCD;;ACvHM,SAASgB,MAAT,CAAgB;AAAEz/B,EAAAA,QAAF;AAAY0/B,EAAAA,QAAZ;AAAsBpmB,EAAAA;AAAtB,CAAhB,EAA8C;AACnD,QAAMqmB,QAAQ,GAAItxB,EAAD,IAAQ;AACvBiL,IAAAA,IAAI,CAACsmB,MAAL;AACAF,IAAAA,QAAQ;AACT,GAHD;;AAKA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE,iDACE;AAAK,IAAA,SAAS,EAAC,QAAf;AAAwB,IAAA,IAAI,EAAC,YAA7B;AAA0C,kBAAW;AAArD,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAG,IAAA,SAAS,EAAC,aAAb;AAA2B,IAAA,IAAI,EAAC;AAAhC,kBACE;AAAK,IAAA,GAAG,EAAC,WAAT;AAAqB,IAAA,GAAG,EAAC,iBAAzB;AAA2C,IAAA,MAAM,EAAC;AAAlD,IADF,CADF,eAIE;AACE,IAAA,EAAE,EAAC,QADL;AAEE,IAAA,IAAI,EAAC,GAFP;AAGE,IAAA,IAAI,EAAC,QAHP;AAIE,IAAA,SAAS,EAAC,sBAJZ;AAKE,kBAAW,MALb;AAME,qBAAc,OANhB;AAOE,mBAAY;AAPd,kBASE;AAAM,mBAAY;AAAlB,IATF,eAUE;AAAM,mBAAY;AAAlB,IAVF,eAWE;AAAM,mBAAY;AAAlB,IAXF,CAJF,CADF,eAmBE;AAAK,IAAA,EAAE,EAAC,YAAR;AAAqB,IAAA,SAAS,EAAC;AAA/B,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGpmB,IAAI,CAACumB,QAAL,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAQ,IAAA,SAAS,EAAC,kBAAlB;AAAqC,IAAA,OAAO,EAAEF;AAA9C,kBACE,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC,qBAAX;AAAiC,IAAA,IAAI,EAAC;AAAtC,IADF,eAEE,2CAFF,CADF,CAFJ,CADF,CAFF,CAnBF,CADF,CADF,eAsCE;AAAS,IAAA,SAAS,EAAC;AAAnB,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAAyB3/B,QAAzB,CADF,CADF,CAtCF,CADF;AA8CD;;ACpDD,MAAM8/B,MAAM,GAAG;AACbC,EAAAA,eAAe,EAAE,4CADJ;AAEbC,EAAAA,mBAAmB,EAAE;AAFR,CAAf;AAIA,MAAM/2B,cAAY,GAAG;AACnBqvB,EAAAA,QAAQ,EAAE,EADS;AAEnB3lB,EAAAA,QAAQ,EAAE,EAFS;AAGnBnS,EAAAA,OAAO,EAAEkJ,SAHU;AAInB2D,EAAAA,MAAM,EAAE3D;AAJW,CAArB;MAMau2B,KAAK,GAAG,CAAC;AACpBC,EAAAA,aADoB;AAEpBC,EAAAA,gBAFoB;AAGpBrC,EAAAA,OAHoB;AAIpBxkB,EAAAA,IAJoB;AAKpB8mB,EAAAA;AALoB,CAAD,KAMf;AACJ,QAAM,CAACpiC,KAAD,EAAQoL,QAAR,IAAoBJ,WAAW,CAACC,cAAD,CAArC;AACA,QAAMiF,QAAQ,GAAGpB,MAAM,CAAC,IAAD,CAAvB;AAEAqB,EAAAA,SAAS,CAAC,MAAM;AACd,QAAID,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACpJ,OAAT,CAAiBkM,KAAjB;AACD;AACF,GAJQ,EAIN,CAAC9C,QAAD,CAJM,CAAT;;AAMA,QAAMmyB,OAAO,GAAG,MAAOhyB,EAAP,IAAc;AAC5BA,IAAAA,EAAE,CAACxF,cAAH;AACAO,IAAAA,QAAQ,CAAC;AAAE5I,MAAAA,OAAO,EAAE,IAAX;AAAiB6M,MAAAA,MAAM,EAAE3D;AAAzB,KAAD,CAAR;AACA,UAAM;AAAE4uB,MAAAA,QAAF;AAAY3lB,MAAAA;AAAZ,QAAyB3U,KAA/B;;AAEA,QAAIkiC,aAAa,KAAK,EAAtB,EAA0B;AACxB5mB,MAAAA,IAAI,CAACgnB,UAAL,CAAgBJ,aAAhB;AACD;;AACD,UAAM91B,GAAG,GAAG,MAAMkP,IAAI,CAACinB,KAAL,CAAWjI,QAAX,EAAqB3lB,QAArB,CAAlB;;AAEA,QAAI,CAACvI,GAAL,EAAU;AACRhB,MAAAA,QAAQ,CAAC;AAAEiE,QAAAA,MAAM,EAAEiM,IAAI,CAACjM,MAAf;AAAuB7M,QAAAA,OAAO,EAAE;AAAhC,OAAD,CAAR;AACA;AACD;;AAED,QAAI4/B,OAAJ,EAAa;AACXA,MAAAA,OAAO;AACR;AACF,GAlBD;;AAoBA,sBACE,oBAAC,KAAD,CAAO,QAAP,qBACE;AACE,IAAA,SAAS,EAAC,aADZ;AAEE,IAAA,MAAM,EAAC,EAFT;AAGE,IAAA,QAAQ,EAAEC,OAHZ;AAIE,iBAAU;AAJZ,kBAME;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,iBADF,eAEE;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,SAAS,EAAC,OAFZ;AAGE,IAAA,WAAW,EAAC,UAHd;AAIE,IAAA,QAAQ,EAAGz3B,CAAD,IAAOQ,QAAQ,CAAC;AAAEkvB,MAAAA,QAAQ,EAAE1vB,CAAC,CAACE,MAAF,CAAS/G;AAArB,KAAD,CAJ3B;AAKE,IAAA,KAAK,EAAE/D,KAAK,CAACs6B,QALf;AAME,IAAA,GAAG,EAAEpqB,QANP;AAOE,iBAAU;AAPZ,IAFF,CANF,eAkBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,iBADF,eAEE;AACE,IAAA,IAAI,EAAC,UADP;AAEE,IAAA,SAAS,EAAC,OAFZ;AAGE,IAAA,WAAW,EAAC,UAHd;AAIE,IAAA,QAAQ,EAAGtF,CAAD,IAAOQ,QAAQ,CAAC;AAAEuJ,MAAAA,QAAQ,EAAE/J,CAAC,CAACE,MAAF,CAAS/G;AAArB,KAAD,CAJ3B;AAKE,IAAA,KAAK,EAAE/D,KAAK,CAAC2U,QALf;AAME,iBAAU;AANZ,IAFF,CAlBF,EA6BGmrB,OAAO,IAAIA,OAAO,CAACp4B,MAAR,GAAiB,CAA5B,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,eADF,eAEE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,iBAAU,kBADZ;AAEE,IAAA,QAAQ,EAAGkD,CAAD,IAAOu3B,gBAAgB,CAACv3B,CAAC,CAACE,MAAF,CAAS/G,KAAV;AAFnC,KAIG+7B,OAAO,CAAC54B,GAAR,CAAas7B,CAAD,iBACX;AAAQ,IAAA,KAAK,EAAEA,CAAf;AAAkB,IAAA,GAAG,EAAEA;AAAvB,KACGA,CADH,CADD,CAJH,CADF,CAFF,CA9BJ,eA8CE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,SAAS,EAAC,mBADZ;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,iBAAU;AAHZ,aADF,CA9CF,eAuDE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGxiC,KAAK,CAACqP,MAAN,iBACC;AAAG,IAAA,SAAS,EAAC;AAAb,KACGyyB,MAAM,CAAC9hC,KAAK,CAACqP,MAAP,CAAN,IAAwB,eAD3B,CAFJ,CAvDF,CADF,CADF;AAmED;;AC3GD,MAAMozB,WAAW,GAAG,EAApB;AACA,MAAMC,WAAW,GAAG,CAAC,OAAD,CAApB;AAEO,SAASC,kBAAT,CAA4B;AACjCngC,EAAAA,OADiC;AAEjC4R,EAAAA,QAFiC;AAGjCW,EAAAA,UAHiC;AAIjC7P,EAAAA,KAJiC;AAKjCyE,EAAAA,QALiC;AAMjC9J,EAAAA;AANiC,CAA5B,EAOJ;AACD,QAAMkJ,IAAI,GAAGyB,OAAO,EAApB;AACA,QAAMgC,GAAG,GAAGvK,YAAY,EAAxB;AAEA,QAAMojB,aAAa,GAAG7Y,GAAG,CAACa,QAAJ,CAAaL,GAAb,CAAiB,YAAjB,EAA+B,eAA/B,CAAtB;AAEA,QAAM,CAACS,QAAD,EAAWm1B,WAAX,IAA0Bz3B,QAAQ,CAAC,EAAD,CAAxC;AACA,QAAM,CAACkE,MAAD,EAASwzB,SAAT,IAAsB13B,QAAQ,CAAC,EAAD,CAApC;AAEA,QAAM,CAACgD,MAAD,EAASomB,SAAT,IAAsBvpB,WAAW,CAAC;AACtCxK,IAAAA,IAAI,EAAEkL,SADgC;AAEtClJ,IAAAA,OAAO,EAAE,KAF6B;AAGtCqK,IAAAA,KAAK,EAAEnB,SAH+B;AAItCo3B,IAAAA,UAAU,EAAE;AAJ0B,GAAD,CAAvC;AAOA3yB,EAAAA,SAAS,CAAC,MAAM;;AACb,KAAC,YAAY;AACZ,UAAI,CAAChC,MAAM,CAAC3L,OAAR,IAAmB,CAAC2L,MAAM,CAAC3N,IAA3B,IAAmC,CAAC2N,MAAM,CAACtB,KAA/C,EAAsD;AACpD,YAAI;AACF0nB,UAAAA,SAAS,CAAC;AAAE/xB,YAAAA,OAAO,EAAE;AAAX,WAAD,CAAT;AACA,gBAAMykB,QAAQ,GAAG,MAAMza,GAAG,CAACnM,MAAJ,CAAW8e,aAAX,CAAyB3S,GAAG,CAACzM,IAA7B,EAAmCF,IAAnC,CAAvB;AACA00B,UAAAA,SAAS,CAAC;AACR/xB,YAAAA,OAAO,EAAE,KADD;AAERhC,YAAAA,IAAI,EAAEymB,QAFE;AAGR6b,YAAAA,UAAU,EAAE,CAAC,GAAG7b,QAAQ,CAACvU,QAAb,EAAuB,GAAGgwB,WAA1B;AAHJ,WAAD,CAAT;AAKD,SARD,CAQE,OAAOh1B,GAAP,EAAY;AACZ6mB,UAAAA,SAAS,CAAC;AAAE/xB,YAAAA,OAAO,EAAE,KAAX;AAAkBqK,YAAAA,KAAK,EAAEa;AAAzB,WAAD,CAAT;AACD;AACF;AACF,KAdA;AAeF,GAhBQ,EAgBN,CAACS,MAAD,CAhBM,CAAT;;AAkBA,QAAMwuB,MAAM,GAAG,MAAM;AACnB,UAAMoG,aAAa,GAAG,EAAtB;AAEA50B,IAAAA,MAAM,CAAC20B,UAAP,CAAkBlhC,OAAlB,CAA2BuF,GAAD,IAAS;AACjC,UAAI,CAACsG,QAAQ,CAACtG,GAAD,CAAb,EAAoB;AAClB47B,QAAAA,aAAa,CAAC57B,GAAD,CAAb,GAAqB4B,IAAI,CAACI,aAAL,CACnB7G,eAAe,CAAC2C,iBADG,CAArB;AAGD;AACF,KAND;;AAQA,QAAIzF,MAAM,CAACmC,IAAP,CAAYohC,aAAZ,EAA2Br7B,MAA3B,GAAoC,CAAxC,EAA2C;AACzCm7B,MAAAA,SAAS,CAACE,aAAD,CAAT;AACA;AACD;;AAED3uB,IAAAA,QAAQ;AAAG3R,MAAAA,EAAE,EAAEgL,QAAQ,CAACu1B;AAAhB,OAAyBv1B,QAAzB,EAAR;AACD,GAjBD;;AAmBA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEvI,KAAb;AAAoB,IAAA,QAAQ,EAAEy3B,MAA9B;AAAsC,IAAA,QAAQ,EAAEhzB;AAAhD,KACGwE,MAAM,IACLA,MAAM,CAAC3N,IADR,IAEC,CAAC2N,MAAM,CAAC3L,OAFT,IAGC2L,MAAM,CAAC20B,UAAP,CAAkB57B,GAAlB,CAAuBC,GAAD,IAAS;AAC7B,QAAI,CAACs7B,WAAW,CAACltB,QAAZ,CAAqBpO,GAArB,CAAL,EAAgC;AAAA;;AAC9B,YAAMpD,KAAK,GAAGoK,MAAM,CAAC3N,IAAP,CAAY2U,UAAZ,CAAuBhO,GAAvB,CAAd;AACA,0BACE,oBAAC,aAAD;AACE,QAAA,GAAG,EAAEA,GADP;AAEE,QAAA,EAAE,EAAEA,GAFN;AAGE,QAAA,WAAW,kBAAEpD,KAAF,oBAAEA,KAAK,CAAEmB,KAAT,2BAAkB,EAH/B;AAIE,QAAA,SAAS,EAAC,EAJZ;AAKE,QAAA,QAAQ,MALV;AAME,QAAA,MAAM,EAAEiJ,MAAM,CAAC3N,IAAP,CAAY2U,UAAZ,CAAuBhO,GAAvB,CANV;AAOE,QAAA,QAAQ,EAAGkJ,EAAD,IAAQ;AAChB,cAAIlJ,GAAG,KAAK,OAAZ,EAAqB;AACnBy7B,YAAAA,WAAW,cACNn1B,QADM;AAETu1B,cAAAA,IAAI,EAAEh7B,YAAY,CAACqI,EAAD,CAFT;AAGT,eAAClJ,GAAD,GAAOkJ;AAHE,eAAX;AAKD,WAND,MAMO,IAAIlJ,GAAG,KAAK,MAAZ,EAAoB;AACzBy7B,YAAAA,WAAW,cACNn1B,QADM;AAETu1B,cAAAA,IAAI,EAAEh7B,YAAY,CAACqI,EAAD;AAFT,eAAX;AAID,WALM,MAKA;AACLuyB,YAAAA,WAAW,cAAMn1B,QAAN;AAAgB,eAACtG,GAAD,GAAOkJ;AAAvB,eAAX;AACD;AACF,SAtBH;AAuBE,QAAA,KAAK,EAAEhB,MAAM,CAAClI,GAAD,CAvBf;AAwBE,QAAA,QAAQ,EAAG,GAAEA,GAAI,WAxBnB;AAyBE,QAAA,GAAG,EAAEA,GAAG,IAAIsG,QAAP,GAAkBA,QAAQ,CAACtG,GAAD,CAA1B,GAAkC;AAzBzC,QADF;AA6BD;;AACD,WAAO,IAAP;AACD,GAlCD,CAJJ,eAwCE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,SAAS,EAAG,qBAAoB3E,OAAO,GAAG,YAAH,GAAkB,EAAG,EAF9D;AAGE,iBAAU;AAHZ,KAKGuS,UAAU,IAAIhM,IAAI,CAACI,aAAL,CAAmB7G,eAAe,CAAC6C,GAAnC,CALjB,CADF,CAxCF,CADF;AAoDD;;AC1HM,MAAM89B,IAAN,CAAW;AAKhB5jC,EAAAA,WAAW,CAAC+b,GAAD,EAAM;AAAA,SAJjB8nB,QAIiB,GAJN,CAIM;AAAA,SAHjBC,YAGiB,GAHF,CAGE;AAAA,SAFjBlqB,MAEiB,GAFR,EAEQ;AACf,SAAKmC,GAAL,GAAWA,GAAX;AACA,SAAKgoB,QAAL,GAAgBhoB,GAAhB;AACA,SAAK/L,MAAL,GAAc3D,SAAd;AACD;;AAED23B,EAAAA,MAAM,CAAC52B,QAAD,EAAW;AACf,WAAQ,GAAE,KAAK2O,GAAI,GAAE3O,QAAS,EAA9B;AACD;;AAED61B,EAAAA,UAAU,CAACgB,OAAD,EAAU;AAClB,SAAKloB,GAAL,GAAW,KAAKgoB,QAAL,GAAgBE,OAA3B;AACD;;AAED,QAAMf,KAAN,CAAYjI,QAAZ,EAAsB3lB,QAAtB,EAAgC;AAC9B,UAAMyG,GAAG,GAAG,KAAKioB,MAAL,CAAY,QAAZ,CAAZ;;AACA,QAAI;AACF,YAAM7iC,IAAI,GAAG,MAAMmb,KAAK,CAACP,GAAD,EAAM;AAC5BY,QAAAA,MAAM,EAAE,MADoB;AAE5BtP,QAAAA,IAAI,EAAEiD,IAAI,CAACC,SAAL,CAAe;AACnB0qB,UAAAA,QAAQ,EAAEA,QADS;AAEnB3lB,UAAAA,QAAQ,EAAEA;AAFS,SAAf;AAFsB,OAAN,CAAxB;;AAOA,UAAInU,IAAI,CAAC8L,MAAL,KAAgB,GAApB,EAAyB;AACvB,cAAMi3B,WAAW,GAAG,MAAM/iC,IAAI,CAAC+L,IAAL,EAA1B;AACA,aAAKi3B,SAAL,CAAeD,WAAf,EAA4BjJ,QAA5B;AACA,eAAO,IAAP;AACD,OAJD,MAIO;AACL,aAAKjrB,MAAL,GAAc,qBAAd;AACD;AACF,KAfD,CAeE,OAAOzE,CAAP,EAAU;AACV,WAAKyE,MAAL,GAAc,iBAAd;AACA,aAAO,KAAP;AACD;;AACDo0B,IAAAA,YAAY,CAACxH,UAAb,CAAwB,MAAxB;AACAwH,IAAAA,YAAY,CAACxH,UAAb,CAAwB,cAAxB;AACA,WAAO,KAAP;AACD;;AAED,MAAI4F,QAAJ,GAAe;AACb,QAAI,OAAO4B,YAAP,KAAwB,WAA5B,EAAyC;AACvC,aAAO,KAAP;AACD;;AACD,UAAM,CAAC5b,KAAD,EAAQ6b,OAAR,IAAmB,KAAKC,SAAL,EAAzB;;AACA,QAAI,CAAC9b,KAAD,IAAU,CAAC6b,OAAf,EAAwB;AACtB,aAAO,KAAP;AACD;;AACD,QAAI,KAAKE,SAAL,CAAeF,OAAf,CAAJ,EAA6B;AAC3B,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAED,MAAIpJ,QAAJ,GAAe;AACb,QAAI,OAAOmJ,YAAP,KAAwB,WAA5B,EAAyC;AACvC,aAAO,KAAP;AACD;;AACD,UAAM,CAAC5b,KAAD,IAAU,KAAK8b,SAAL,EAAhB;;AACA,UAAMnjC,IAAI,GAAGqjC,UAAU,CAAChc,KAAD,CAAvB;AACAjb,IAAAA,OAAO,CAACe,GAAR,CAAYka,KAAZ;AACA,WAAOrnB,IAAI,CAACiC,EAAZ;AACD;;AAED+gC,EAAAA,SAAS,CAAChjC,IAAD,EAAO;AACdijC,IAAAA,YAAY,CAACK,OAAb,CAAqB,MAArB,EAA6BtjC,IAAI,CAACqnB,KAAlC;AACA4b,IAAAA,YAAY,CAACK,OAAb,CAAqB,cAArB,EAAqC,IAAIztB,IAAJ,CAAS7V,IAAI,CAACujC,GAAd,EAAmBC,OAAnB,EAArC;AACD;;AAEDC,EAAAA,SAAS,GAAG;AACVR,IAAAA,YAAY,CAACxH,UAAb,CAAwB,MAAxB;AACAwH,IAAAA,YAAY,CAACxH,UAAb,CAAwB,cAAxB;AACD;;AAED2F,EAAAA,MAAM,GAAG;AACP,SAAKqC,SAAL;AACD;;AAED,QAAMC,YAAN,GAAqB;AACnBt3B,IAAAA,OAAO,CAACe,GAAR,CAAY,YAAZ;AACA,SAAKw1B,YAAL;AACA,QAAI3iC,IAAI,GAAG,MAAMmb,KAAK,CAAC,KAAK0nB,MAAL,CAAY,cAAZ,CAAD,EAA8B;AAClDtoB,MAAAA,OAAO,EAAE,KAAKW,UAAL,EADyC;AAElDM,MAAAA,MAAM,EAAE;AAF0C,KAA9B,CAAtB;;AAIA,QAAIxb,IAAI,CAAC8L,MAAL,KAAgB,GAApB,EAAyB;AACvB;AACA,WAAK23B,SAAL;AACA,WAAKvC,QAAL;AACA;AACD;;AACD,UAAMt1B,GAAG,GAAG,MAAM5L,IAAI,CAAC+L,IAAL,EAAlB;AACAK,IAAAA,OAAO,CAACe,GAAR,CAAY,cAAZ,EAA4BvB,GAA5B;AACA,SAAKo3B,SAAL,CAAep3B,GAAf;AACAQ,IAAAA,OAAO,CAACe,GAAR,CAAY,iBAAZ;AACA,SAAKw1B,YAAL,GAAoB,CAApB;AACA,WAAO3iC,IAAI,CAACqnB,KAAZ;AACD;;AAEDsc,EAAAA,UAAU,CAACC,UAAD,EAAa;AACrB,QAAIzD,GAAG,GAAG,IAAItqB,IAAJ,GAAW2tB,OAAX,EAAV;;AACA,QAAIzsB,QAAQ,CAAC6sB,UAAD,CAAR,GAAuB,IAAvB,GAA8BzD,GAAG,GAAG,KAAK,IAA7C,EAAmD;AACjD,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAEDiD,EAAAA,SAAS,CAACQ,UAAD,EAAa;AACpB,QAAIzD,GAAG,GAAG,IAAItqB,IAAJ,GAAW2tB,OAAX,EAAV;;AACA,QAAIzsB,QAAQ,CAAC6sB,UAAD,CAAR,GAAuB,IAAvB,GAA8BzD,GAAlC,EAAuC;AACrC,aAAO,KAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAEDgD,EAAAA,SAAS,GAAG;AACV,WAAO,CAACF,YAAY,CAACY,OAAb,CAAqB,MAArB,CAAD,EAA+BZ,YAAY,CAACY,OAAb,CAAqB,cAArB,CAA/B,CAAP;AACD;;AAEDxoB,EAAAA,QAAQ,GAAG;AACT,UAAM,CAACgM,KAAD,IAAU,KAAK8b,SAAL,EAAhB;;AACA,WAAO9b,KAAP;AACD;;AAEDnM,EAAAA,UAAU,GAAG;AAAA;;AACX,UAAM,CAACE,SAAD,EAAY8nB,OAAZ,IAAuB,KAAKC,SAAL,EAA7B;;AACA,QAAI,CAAC/nB,SAAL,EAAgB,OAAO,EAAP;;AAEhB,QAAI,KAAKuoB,UAAL,CAAgBT,OAAhB,KAA4B,KAAKP,YAAL,GAAoB,KAAKD,QAAzD,EAAmE;;AAChE,OAAC;AAAA,eAAY,MAAM,KAAI,CAACgB,YAAL,EAAlB;AAAA,OAAD;AACF;;AAED,WAAO;AACLpoB,MAAAA,MAAM,EAAE,kBADH;AAEL,sBAAgB,kBAFX;AAGLC,MAAAA,aAAa,EAAE,YAAYH;AAHtB,KAAP;AAKD;;AA9Ie;;;;"}