@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.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","flash","props","Object","assign","refresh","transparent","dispatch","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","state","permissions","filterTabs","tabs","tabsPermissions","result","keys","forEach","item","perm","path","slice","context","client","getContainerFromPath","TraversalProvider","children","React","useTraversal","useContext","ClientProvider","useGuillotinaClient","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","Button","className","onClick","loading","disabled","dataTest","rest","css","concat","split","Modal","isActive","setActive","usePortal","Portal","Confirm","onCancel","onConfirm","marginTop","PathTree","title","defaultPath","e","preventDefault","target","value","display","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","Function","_catch","body","recover","then","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","newState","console","error","del","delete","post","get","req","useCrudContext","AddItem","doSubmit","form","formData","getForm","registry","Form","err","log","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","Checkbox","id","classNameInput","indeterminate","placeholder","onChange","inputRef","useEffect","updateState","ev","checked","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","icon","iconPosition","errorZoneClassName","autoComplete","required","autofocus","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","arrayOf","oneOf","autoFocus","bool","isSubmitted","name","onKeyDown","onKeyUp","onPressEnter","readOnly","oneOfType","number","Icon","align","addClass","EmailInput","onSubmit","onReset","handleSubmit","event","isRequired","PasswordInput","formComponents","password","boolean","email","FormBuilder","actionName","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","label","displayName","children_","Children","child","cloneElement","changes","Select","options","size","classWrap","multiple","appendDefault","style","text","cssWrap","index","toString","object","setURLParams","p","history","pathname","clean","URLSearchParams","_key","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","events","addEventListener","removeEventListener","navigate","remove","param","patched","arguments","Event","dispatchEvent","location","search","Link","aRef","model","aStyle","textDecoration","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","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","m","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","create","file","download","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","gr","usr","getRoles","getAllPermissions","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","Textarea","rows","debounce","wait","timeout","args","later","clearTimeout","page","SearchInput","traversal","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","searchTermQs","searchTermParsed","fnName","qsParsed","newItems","renderTextItemOptionFn","currentTarget","contains","relatedTarget","InputList","inputValue","setInputValue","addTags","React.createElement","tag","defaultEvents","on","obj","off","useClickAway","onClickAway","savedCallback","handler","el","eventName","document","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","RenderFieldComponent","canModified","saveField","unescape","dataPatch","deleteField","enum","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","href","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_EDITABLE_FIELD","DEFAULT_VALUE_NO_EDITABLE_FIELD","getRenderProps","renderProps","toLocaleString","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","editableFields","IDublinCore","ACTIONS_OBJECT","DELETE","perms","MOVE","COPY","PanelActions","some","onAction","actionKey","React.Fragment","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callback","callId","useAsync","PanelAddons","setAction","pathPrefix","prepareData","available","addon","installed","addons","arrayToObject","array","PanelBehaviors","ops","enableBehavior","disableBehavior","static","dynamic","ItemsActionsCtx","ItemsActionsProvider","selected","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","marginLeft","ItemCheckbox","absId","ItemsActionsDropdown","every","v","o","Pagination","total","doPaginate","pager","maxPages","Math","ceil","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","role","principal","getPrinroles","ItemModel","_path","splice","icons","_url","type_name","creation_date","modification_date","Item","RItem","columns","ItemTitle","SearchLabels","clearSearch","PanelItems","setLocation","searchParsed","typeParsed","BehaviorsView","getBehavior","behaviors","__behaviors__","GetBehavior","b","Cls","BehaviorNotImplemented","PropertiesButtonView","getProperties","Props","Buttons","Element","PropertiesView","Panels","_showProperties","_ignoreFields","PanelProperties","setSchema","showProperties","properties_default","ignoreFields","properties_ignore_fields","dataJson","prop","PermissionPrinperm","principals","operations","setting","getMultiples","setter","selectedOptions","savePermission","random","PermissionPrinrole","roles","PermissionRoleperm","PanelPermissions","ctx","reset","setReset","row","currentObj","defaultOptions","AddPermission","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","onSearchQuery","q","tab","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","databases","db","DatabaseCtx","containers","CreateContainer","ModalAddContainer","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","username","UserForm","attr","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","gorups","user_groups","user_roles","requestGetGroups","requestGetRoles","updateObject","withError","CopyItems","copyItems","input","destination","new_id","responses","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","setPerror","perror","setPass","n","BaseForm","setName","submit","setTitle","Groups","GroupToolbar","GroupsCtx","sortParsed","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundary","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","Component","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","vocabulary","selectValue","getInputType","paths","views","Application","Database","Container","UserManager","User","Group","GroupManager","Folder","changePassword","forms","itemsColumn","schemas","components","searchEngineQueryParamsFunction","PostreSQL","Elasticsearch","getComponent","defaultComponent","funcCols","getAction","is_folderish","useRegistry","errorStatus","guillotinaReducer","now","Guillotina","config","searchPath","useReducer","pr","contextData","Main","Action","Layout","onLogout","doLogout","logout","process","env","PUBLIC_URL","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","s","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","localStorage","credentials","storeAuth","setItem","token","exp","cleanAuth","refreshToken","willExpire","expiration","getTime","isExpired","_getToken","getItem","expires","jwt_decode"],"mappings":"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"}
1
+ {"version":3,"file":"react-gmi.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","flash","props","Object","assign","refresh","transparent","dispatch","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","state","permissions","filterTabs","tabs","tabsPermissions","result","keys","forEach","item","perm","path","slice","context","client","getContainerFromPath","TraversalProvider","children","React","useTraversal","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","usePortal","Portal","Confirm","onCancel","onConfirm","useIntl","marginTop","PathTree","defaultPath","e","preventDefault","target","display","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","Function","_catch","body","recover","then","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","defaultValue","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","newState","console","error","del","post","get","req","useCrudContext","AddItem","doSubmit","form","formData","getForm","registry","Form","err","log","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","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","currentSearchParams","update","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","containerPath","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","pact","s","v","o","bind","observer","prototype","onFulfilled","onRejected","callback","_this","thenable","array","check","reject","_cycle","IImageAttachment","sizesImages","size_images","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","_settle","_Pact","_isSettledPact","IMultiImageAttachment","StrictModeDroppable","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","reorder","list","startIndex","endIndex","splice","removed","_forTo","messages","failed_to_sort_images","images_sorted","IMultiImageOrderedAttachment","onDragEnd","destination","source","resultSorted","sortedList","setSortedList","uuidv4","DragDropContext","provided","innerRef","droppableProps","Draggable","providedChild","borderTop","draggableProps","dragHandleProps","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","_path","icons","_url","type_name","creation_date","modification_date","status_changed_ok","status_changed_error","confirm_message","current_state","IWorkflow","loadDefinition","workflow","setDefinition","definition","workflowAction","setWorkflowAction","currentState","doWorkflowAction","transitions","transition","PanelActions","ACTIONS_OBJECT","some","onAction","actionKey","useMountedState","mountedRef","useAsyncFn","fn","deps","lastCallId","isMounted","callId","useAsync","available_addons","no_available_addons_container","installed_addons","PanelAddons","setAction","pathPrefix","prepareData","addon","installed","addons","arrayToObject","PanelBehaviors","ops","enableBehavior","disableBehavior","dynamic","ItemsActionsCtx","ItemsActionsProvider","selected","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","marginLeft","ItemCheckbox","absId","ItemsActionsDropdown","every","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","principals","operations","getMultiples","setter","savePermission","random","PermissionPrinrole","roles","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","loadTypes","AddButton","searchText","searchValue","setSearchValue","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","createContainer","idField","setId","isLoading","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","input","new_id","responses","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","setPerror","perror","setPass","n","BaseForm","setName","submit","setTitle","editableFields","IDublinCore","Groups","GroupToolbar","GroupsCtx","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUser","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundaryComponent","componentDidCatch","errorInfo","errorMsg","errorStack","componentStack","render","Component","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","IntlProvider","Layout","onLogout","doLogout","logout","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","localStorage","credentials","storeAuth","setItem","exp","getTime","cleanAuth","refreshToken","willExpire","expiration","isExpired","_getToken","getItem","expires","jwt_decode"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}