@guillotinaweb/react-gmi 0.29.0 → 0.29.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"react-gmi.umd.js","sources":["../src/guillo-gmi/contexts/index.tsx","../src/guillo-gmi/locales/generic_messages.js","../src/guillo-gmi/lib/helpers.ts","../src/guillo-gmi/components/input/button.tsx","../src/guillo-gmi/components/modal.tsx","../src/guillo-gmi/hooks/useSetState.tsx","../src/guillo-gmi/hooks/useCrudContext.tsx","../src/guillo-gmi/actions/add_item.tsx","../src/guillo-gmi/hooks/useConfig.tsx","../src/guillo-gmi/actions/remove_items.tsx","../src/guillo-gmi/components/input/checkbox.tsx","../src/guillo-gmi/components/error_zone.tsx","../src/guillo-gmi/hooks/useInput.tsx","../src/guillo-gmi/lib/validators.ts","../src/guillo-gmi/components/input/input.tsx","../src/guillo-gmi/components/ui/icon.tsx","../src/guillo-gmi/components/input/email.tsx","../src/guillo-gmi/components/input/form.tsx","../src/guillo-gmi/components/input/password.tsx","../src/guillo-gmi/components/input/form_builder.tsx","../src/guillo-gmi/components/input/select.tsx","../src/guillo-gmi/lib/utils.ts","../src/guillo-gmi/hooks/useVocabulary.tsx","../src/guillo-gmi/components/input/select_vocabulary.tsx","../src/guillo-gmi/hooks/useLocation.tsx","../src/guillo-gmi/components/Link.tsx","../src/guillo-gmi/components/TdLink.tsx","../src/guillo-gmi/components/ui/loading.tsx","../src/guillo-gmi/components/ui/tag.tsx","../src/guillo-gmi/components/ui/delete.tsx","../src/guillo-gmi/components/ui/table.tsx","../src/guillo-gmi/components/ui/notification.tsx","../src/guillo-gmi/lib/rest.ts","../src/guillo-gmi/lib/search.ts","../src/guillo-gmi/lib/client.tsx","../src/guillo-gmi/components/input/upload.tsx","../src/guillo-gmi/components/input/textarea.tsx","../src/guillo-gmi/hooks/useClickAway.tsx","../src/guillo-gmi/components/input/search_input.tsx","../src/guillo-gmi/components/input/search_input_list.tsx","../src/guillo-gmi/components/input/input_list.tsx","../src/guillo-gmi/components/input/dropdown.tsx","../src/guillo-gmi/components/fields/editableField.tsx","../src/guillo-gmi/components/fields/downloadField.tsx","../src/guillo-gmi/components/fields/renderField.tsx","../src/guillo-gmi/components/fields/editComponent.tsx","../src/guillo-gmi/components/behaviors/iattachment.tsx","../src/guillo-gmi/components/behaviors/imultiattachment.tsx","../src/guillo-gmi/components/behaviors/iimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageorderedattachment.tsx","../src/guillo-gmi/models/sharing.ts","../src/guillo-gmi/models/index.ts","../src/guillo-gmi/components/behaviors/iworkflow.tsx","../src/guillo-gmi/components/panel/actions.tsx","../src/guillo-gmi/components/panel/addons.tsx","../src/guillo-gmi/components/panel/behaviors.tsx","../src/guillo-gmi/components/selected_items_actions.tsx","../src/guillo-gmi/components/pagination.tsx","../src/guillo-gmi/components/item.tsx","../src/guillo-gmi/components/search_labels.tsx","../src/guillo-gmi/components/search_options_labels.tsx","../src/guillo-gmi/components/search_vocabulary_labels.tsx","../src/guillo-gmi/components/panel/items.tsx","../src/guillo-gmi/components/behavior_view.tsx","../src/guillo-gmi/components/properties_view.tsx","../src/guillo-gmi/components/panel/properties.tsx","../src/guillo-gmi/components/panel/permissions_prinperm.tsx","../src/guillo-gmi/components/panel/permissions_prinrole.tsx","../src/guillo-gmi/components/panel/permissions_roleperm.tsx","../src/guillo-gmi/components/panel/permissions.tsx","../src/guillo-gmi/components/widgets/tags.tsx","../src/guillo-gmi/components/context_toolbar.tsx","../src/guillo-gmi/components/flash.tsx","../src/guillo-gmi/components/tabs.tsx","../src/guillo-gmi/views/folder.tsx","../src/guillo-gmi/views/item.tsx","../src/guillo-gmi/views/application.tsx","../src/guillo-gmi/views/base.tsx","../src/guillo-gmi/views/container.tsx","../src/guillo-gmi/forms/users.tsx","../src/guillo-gmi/hooks/useRemoteField.tsx","../src/guillo-gmi/views/users.tsx","../src/guillo-gmi/actions/copy_items.tsx","../src/guillo-gmi/actions/copy_item.tsx","../src/guillo-gmi/actions/move_items.tsx","../src/guillo-gmi/actions/move_item.tsx","../src/guillo-gmi/actions/remove_item.tsx","../src/guillo-gmi/actions/change_pass.tsx","../src/guillo-gmi/forms/base.tsx","../src/guillo-gmi/components/behaviors/idublincore.tsx","../src/guillo-gmi/views/groups.tsx","../src/guillo-gmi/components/error_boundary.tsx","../src/guillo-gmi/components/notallowed.tsx","../src/guillo-gmi/components/notfound.tsx","../src/guillo-gmi/components/path.tsx","../src/guillo-gmi/hooks/useRegistry.tsx","../src/guillo-gmi/reducers/guillotina.ts","../src/guillo-gmi/components/guillotina.tsx","../src/guillo-gmi/components/layout.tsx","../src/guillo-gmi/components/login.tsx","../src/guillo-gmi/forms/required_fields.tsx","../src/guillo-gmi/lib/auth.ts"],"sourcesContent":["import { Dispatch, useContext } from 'react'\nimport { createContext } from 'react'\nimport { GuillotinaClient } from '../lib/client.js'\nimport { Auth } from '../lib/auth.js'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaGlobalState } from '../reducers/guillotina'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext<GuillotinaClient>(null)\n\ninterface PropsTraversal {\n client: GuillotinaClient\n auth: Auth\n state: GuillotinaGlobalState\n dispatch: Dispatch<{ type: string; payload: IndexSignature }>\n registry: IndexSignature\n flash: (action: string, result: string) => void\n url: string\n}\n\nexport class Traversal {\n private dispatch\n public state\n public client\n public registry\n public url\n public auth\n\n constructor({ flash, ...props }: PropsTraversal) {\n this.dispatch = props.dispatch\n this.state = props.state\n this.client = props.client\n this.registry = props.registry\n this.auth = props.auth\n this.url = props.url\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 const TraversalContext = createContext<Traversal>(null)\nexport function TraversalProvider({\n children,\n ...props\n}: PropsTraversal & { children: React.ReactNode }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return useContext(TraversalContext)\n}\n\ninterface PropsClient {\n children: React.ReactNode\n client: GuillotinaClient\n}\nexport function ClientProvider({ children, client }: PropsClient) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return 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: string[][]) => {\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 (let i = 0; i < binaryLen; i++) {\n const 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 const from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n const to = 'aaaaeeeeiiiioooouuuunc------'\n for (let 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): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve(null)\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 { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n type?: 'submit' | 'reset' | 'button'\n loading?: boolean\n disabled?: boolean\n dataTest?: string\n}\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n}: Props) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface ModalProps {\n isActive: boolean\n setActive: (value: boolean) => void\n children: React.ReactNode\n className?: string\n}\n\nexport function Modal(props: ModalProps) {\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\ninterface ConfirmProps {\n message?: string\n onCancel: () => void\n onConfirm: () => void\n loading?: boolean\n}\nexport function Confirm({\n message,\n onCancel,\n onConfirm,\n loading,\n}: ConfirmProps) {\n const intl = useIntl()\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\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 </Modal>\n )\n}\n\ninterface PathTreeProps {\n title: string\n defaultPath?: string\n children?: React.ReactNode\n onConfirm: (path: string, target: EventTarget) => void\n onCancel: () => void\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}: PathTreeProps) {\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<T>(\n initialState\n): [T, (value: Partial<T>) => void] {\n const [state, set] = useState<T>(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\ninterface State<T = unknown> {\n loading?: boolean\n isError?: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\nconst initial: State = {\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 (\n data,\n endpoint = undefined,\n body = false\n): Promise<State> => {\n setState({ loading: true })\n let newState: State = {}\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 (\n data = {},\n endpoint = undefined,\n body = false\n): Promise<State> => {\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 (\n data,\n endpoint = undefined,\n body = true\n): Promise<State> => {\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 = undefined): Promise<State> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.get(path)\n newState = await processResponse(res, true)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n\n setState(newState)\n return newState\n}\n\nexport function useCrudContext<T>() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State<T>>(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 { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\ninterface Props {\n type: string\n}\n\nexport function AddItem(props: 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 { useRef } from 'react'\nimport { GuillotinaSchemaProperty } from '../types/guillotina'\n\nexport const Permissions: string[] = [\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\ninterface IConfig {\n DisabledTypes: string[]\n PageSize: number\n DelayActions: number\n Permissions: string[]\n SearchEngine: string\n SizeImages?: string[]\n icons?: string[]\n properties_default?: string[]\n properties_ignore_fields?: string[]\n fieldHaveDeleteButton: (schema: GuillotinaSchemaProperty) => boolean\n}\nexport const Config: IConfig = {\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: Partial<IConfig>, original: IConfig) => {\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 = useRef<unknown>()\n if (cfg && !ref.current) {\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n return calculated\n}\n","import { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\nimport { ItemModel } from '../models'\nimport { useState } from 'react'\n\ninterface Props {\n items: ItemModel[]\n}\nexport function RemoveItems(props: Props) {\n const Ctx = useTraversal()\n const cfg = useConfig()\n const [loading, setLoading] = 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 const 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 { ChangeEvent, useEffect, useRef, useState } from 'react'\nimport { classnames } from '../../lib/helpers'\n\ninterface Props {\n className?: string\n classNameInput?: string\n loading?: boolean\n indeterminate?: boolean\n backgroundColor?: string\n borderColor?: string\n dataTest?: string\n onChange: (value: boolean) => void\n id?: string\n disabled?: boolean\n checked?: boolean\n children?: React.ReactNode\n placeholder?: string\n}\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n checked,\n children,\n placeholder,\n onChange,\n dataTest,\n}: Props) => {\n const inputRef = useRef(null)\n const [state, setState] = useState<boolean>(checked)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev: ChangeEvent<HTMLInputElement>) => {\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 />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n id?: string\n className?: string\n}\n\nconst ErrorZone = ({ children, id, className = '' }: Props) => {\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 { useEffect, useState } from 'react'\n\nconst applyValidators = (value, validators) => {\n const validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func && func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n const [state, setState] = 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 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 { forwardRef, useRef, useState } from 'react'\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\ninterface Props {\n name?: string\n icon?: JSX.Element\n iconPosition?: 'has-icons-left' | 'has-icons-right'\n error?: string\n errorZoneClassName?: string\n autoComplete?: string\n className?: string\n widget?: string\n loading?: boolean\n validator?: ((value: string) => boolean) | ((value: string) => boolean)[]\n errorMessage?: string\n dataTest?: string\n autofocus?: boolean\n onChange?: (value: string) => void\n type?: string\n value?: string\n required?: boolean\n id?: string\n placeholder?: string\n disabled?: boolean\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void\n}\n\nexport const Input = forwardRef<HTMLInputElement, Props>(\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 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 disabled,\n onKeyUp,\n },\n ref\n ) => {\n let validatorFn = null\n if (required) {\n validatorFn = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validatorFn)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error && ref != null && typeof ref !== 'function') {\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-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || disabled}\n required={required}\n data-test={dataTest}\n onKeyUp={onKeyUp}\n {...handlers}\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.displayName = 'Input'\nexport default Input\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n icon: string\n className?: string\n align?: string\n}\n\nexport const Icon = ({ icon, className, align }: Props) => {\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 { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value?: string\n dataTest?: string\n onChange?: (value: string) => void\n placeholder?: string\n id?: string\n}\nexport const EmailInput = ({\n value = '',\n dataTest,\n placeholder,\n id,\n}: Props) => {\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 dataTest={dataTest}\n icon={<Icon icon=\"fas fa-envelope\" />}\n id={id}\n placeholder={placeholder}\n />\n )\n}\n","import { noop } from '../../lib/helpers'\nimport { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void\n onReset?: (event: React.FormEvent<HTMLFormElement>) => void\n autoComplete?: string\n title?: string\n error?: string\n dataTest?: string\n}\nexport const Form = ({\n children,\n className = '',\n onSubmit = noop,\n onReset = noop,\n autoComplete = 'off',\n title,\n error,\n dataTest,\n}: Props) => {\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 >\n {children}\n </form>\n </div>\n )\n}\n","import { InputHTMLAttributes } from 'react'\nimport { Input } from './input'\n\ninterface Props {\n value: string\n dataTest: string\n onChange: (value: string) => void\n}\n\nexport const PasswordInput = ({\n value,\n dataTest,\n onChange,\n}: Props & InputHTMLAttributes<HTMLInputElement>) => {\n return (\n <Input\n value={value}\n type=\"password\"\n dataTest={dataTest}\n onChange={onChange}\n />\n )\n}\n","import { 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'\nimport { Children, cloneElement, isValidElement, useRef } from 'react'\nimport { IndexSignature } from '../../types/global'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\ninterface Props {\n schema: GuillotinaSchema\n formData?: any\n onSubmit: (formData: any, initialData: any) => void\n actionName: string\n children?: React.ReactNode\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\n\nexport function FormBuilder({\n schema,\n formData,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = {},\n submitButton = true,\n}: Props) {\n const ref = useRef<unknown>()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n const 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 }: { field: string }) => {\n const property = properties[field] as GuillotinaSchemaProperty\n const Tag = formComponents[property.widget || property.type]\n\n const props = {\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: property.title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n required: false,\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_ = Children.map(children, (child) => {\n if (isValidElement(child)) {\n const props = { onChange: onUpdate }\n return cloneElement(child, props)\n }\n return child\n })\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} dataTest={`formAddUserTest`}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { forwardRef, useState } from 'react'\nimport { IndexSignature } from '../../types/global'\n// @ TODO implement hasErrors\n\ninterface Props {\n error?: string\n errorZoneClassName?: string\n size?: number\n placeholder?: string\n id?: string\n className?: string\n classWrap?: string\n disabled?: boolean\n multiple?: boolean\n loading?: boolean\n onChange?: (value: string | string[]) => void\n options: { text: string; value: string }[]\n appendDefault?: boolean\n style?: IndexSignature\n dataTest?: string\n value?: string | string[]\n}\n\nexport const Select = forwardRef<HTMLSelectElement, Props>(\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 onChange,\n appendDefault = false,\n style = {},\n dataTest,\n value,\n disabled,\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 onChange(ev.target.value)\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 || disabled}\n onChange={onUpdate}\n ref={ref}\n style={style}\n data-test={dataTest}\n value={value}\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.displayName = 'Select'\nexport default Select\n","import { IndexSignature } from '../types/global'\nimport { stringToSlug } from './helpers'\n\nexport const formatDate = (str: string): string => {\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 = <T>(\n obj: IndexSignature,\n path: string | string[],\n defValue\n): T => {\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 { useTraversal } from '../contexts'\nimport { GuillotinaVocabulary } from '../types/guillotina'\nimport useSetState from './useSetState'\nimport { useEffect } from 'react'\n\ninterface State {\n data: GuillotinaVocabulary\n loading: boolean\n error: any\n}\nexport function useVocabulary(vocabularyName: string, path: string = null) {\n const traversal = useTraversal()\n\n const [vocabulary, setVocabulary] = useSetState<State>({\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 const getVocabulary = 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: undefined })\n }\n }\n }\n getVocabulary()\n }, [vocabularyName, vocabulary, path])\n\n return vocabulary\n}\n","import { Select } from './select'\nimport { get } from '../../lib/utils'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { forwardRef } from 'react'\nimport { GuillotinaVocabularyItem } from '../../types/guillotina'\n\ninterface Props {\n vocabularyName: string\n className?: string\n classWrap?: string\n val?: string\n dataTest?: string\n multiple?: boolean\n onChange?: (value: string) => void\n appendDefault?: boolean\n id?: string\n placeholder?: string\n}\nexport const SelectVocabulary = forwardRef<HTMLSelectElement, Props>(\n (\n {\n vocabularyName,\n className,\n classWrap,\n val,\n dataTest,\n multiple,\n onChange,\n id,\n placeholder,\n },\n ref\n ) => {\n const vocabulary = useVocabulary(vocabularyName)\n\n const getOptions = () => {\n if (get<GuillotinaVocabularyItem>(vocabulary, 'data.items', null)) {\n const vocData = vocabulary.data.items.map((item) => {\n return {\n text: 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 onChange={onChange}\n id={id}\n placeholder={placeholder}\n />\n )\n }\n)\n\nSelectVocabulary.displayName = 'SelectVocabulary'\n","import { useEffect, useRef, useState, useCallback } from 'react'\nimport { IndexSignature } from '../types/global'\n\n// Mostly inspired from\n// https://github.com/molefrog/wouter\n\nconst setURLParams = (p) => {\n return window.history.pushState(\n 0,\n '0',\n '' + '?' + p.toString().replace(/%2F/g, '/')\n )\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 URLSearchParams,\n (to: IndexSignature, replace?: boolean) => void,\n (param: string) => void\n] => {\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\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 const 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 const 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 (...args) {\n const result = original.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event(type)\n event.arguments = args\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 { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n aRef?: React.Ref<HTMLAnchorElement>\n model: ItemModel\n children: React.ReactNode\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void\n}\n\nexport function Link({ aRef, model, children, ...props }: 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 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 { useRef } from 'react'\nimport { Link } from './Link'\nimport { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n model: ItemModel\n children: React.ReactNode\n style?: IndexSignature\n}\nexport function TdLink({ model, children, style = {} }: Props) {\n const link = useRef<HTMLAnchorElement>()\n\n function onClick() {\n if (link && link.current) {\n link.current.click()\n }\n }\n\n return (\n <td onClick={onClick} style={style}>\n <Link model={model} aRef={link}>\n {children}\n </Link>\n </td>\n )\n}\n","import { IndexSignature } from '../../types/global'\n\ninterface Props {\n style?: IndexSignature\n}\nexport const Loading = ({ style = {} }: Props) => (\n <div className=\"progress-line\" style={style}></div>\n)\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n name: string\n id: string\n onRemove?: () => void\n size?: string\n color?: string\n}\nexport const Tag = ({\n name,\n id,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}: Props) => (\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 { MouseEvent } from 'react'\n\ninterface Props {\n onClick: (event: MouseEvent<HTMLButtonElement>) => void\n className?: string\n children?: React.ReactNode\n}\nexport function Delete({ onClick, className = '', children = null }: Props) {\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 { classnames } from '../../lib/helpers'\n\ninterface Props {\n headers?: string[]\n className?: string\n children: React.ReactNode\n}\nexport function Table({ headers, children, className }: Props) {\n const parsedClassName = className\n ? className.split(' ')\n : ' is-full is-fullwidth is-narrow'.split(' ')\n return (\n <table className={classnames(['table', ...parsedClassName])}>\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","interface Props {\n isColor?: string\n children: React.ReactNode\n}\nexport function Notification({ isColor = '', children }: Props) {\n return (\n <div className={'notification is-' + isColor} data-test=\"notificationTest\">\n {children}\n </div>\n )\n}\n","import { Auth } from './auth'\n\nexport class RestClient {\n url: string\n container: string\n auth: Auth\n\n constructor(url: string, container: string, auth: Auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data = undefined, headers = undefined) {\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: string, defaultField = DEFAULT_FIELD): string[][] {\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 const qsSplit = qs.split(' ')\n return qsSplit.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: string[][]): string {\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 { LightFile } from '../types/global'\n\nconst cacheTypes = {}\nconst cacheSchemas = {}\n\nexport class GuillotinaClient {\n rest: RestClient\n pathContainsContainer: boolean\n constructor(rest: RestClient, pathContainsContainer: boolean) {\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 const 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 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: string,\n params: string | string[][],\n container = false,\n prepare = true\n ) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n const query = prepare ? toQueryString(params as string[][]) : params\n const url = `${path}@search?${query}`\n const res = await this.rest.get(url)\n const 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 const 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 const 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 = (file) => {\n return new Promise<LightFile>((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 // do nothing\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 { ChangeEvent, InputHTMLAttributes } from 'react'\nimport { lightFileReader } from '../../lib/client.js'\nimport { useIntl } from 'react-intl'\nimport { LightFile } from '../../types/global'\n\ninterface Props {\n label?: string\n dataTest?: string\n onChange: (file: LightFile) => void\n}\nexport function FileUpload({\n label,\n onChange,\n dataTest,\n}: Props & InputHTMLAttributes<HTMLInputElement>) {\n const intl = useIntl()\n const changed = async (event: ChangeEvent<HTMLInputElement>) => {\n const fileToUpload = await lightFileReader(event.target.files[0])\n onChange(fileToUpload)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n type=\"file\"\n name=\"file\"\n onChange={changed}\n data-test={dataTest}\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 ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { forwardRef, useState } from 'react'\n\ninterface Props {\n value: string\n classWrap?: string\n rows?: number\n className?: string\n onChange?: (value: string) => void\n dataTest?: string\n error?: string\n errorZoneClassName?: string\n placeholder?: string\n id?: string\n}\nexport const Textarea = forwardRef<HTMLTextAreaElement, Props>(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\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 ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nTextarea.displayName = 'Textarea'\nexport default Textarea\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 { useState, useEffect, useCallback, useRef } from 'react'\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'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\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\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange?: (value: string) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[][]\n queryCondition?: string\n value?: string\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\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 typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [valueLabel, setValueLabel] = useState<Partial<SearchItem>>(undefined)\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\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 = useCallback<(value: string) => void>(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const inicializeLabels = async () => {\n if (labelProperty !== 'id' && value) {\n let searchTermQs = ''\n const searchTermParsed = [`id`, value]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: PageSize,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValueLabel(newValuesLabel)\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 const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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 get(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (value) {\n inicializeLabels()\n } else {\n setValueLabel({})\n }\n }, [path, value])\n\n if (valueLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n if (ev.target instanceof HTMLElement) {\n ev.target.blur()\n }\n\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>\n {value\n ? get(valueLabel, value, value)\n : intl.formatMessage(genericMessages.choose)}\n </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 <div\n className={`dropdown-item editable ${\n value === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange) {\n onChange(item.id)\n }\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\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 <>\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 </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { useState, useCallback, useRef, useEffect } from 'react'\n\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'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\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\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange: (value: string[]) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[]\n queryCondition?: string\n value: string[]\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\n}\n\nexport const SearchInputList = ({\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 typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [valuesLabel, setValuesLabels] = useState(undefined)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [isLoadingData, setIsLoadingData] = useState(false)\n\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\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 = useCallback<(value: string) => void>(\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 const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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 inicializeLabels = async () => {\n if (labelProperty !== 'id' && value.length > 0) {\n setIsLoadingData(true)\n let searchTermQs = ''\n const searchTermParsed = ['__or', `id=${value.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n }\n\n const renderTextItemOptionFn = (\n item: SearchItem\n ): string | React.ReactNode => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return get<string>(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (!options.loading && !options.items && value.length > 0) {\n inicializeLabels()\n } else if (value.length === 0) {\n setValuesLabels({})\n }\n }, [path, options.loading, options.items])\n\n if (isLoadingData || valuesLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div className=\"tags mb-2\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {get(valuesLabel, tag, tag)}\n <button\n className=\"delete is-small\"\n onClick={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }}\n ></button>\n </div>\n ))}\n </div>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{intl.formatMessage(genericMessages.choose)}</span>\n\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 <div\n className={`dropdown-item editable ${\n value.includes(item.id) ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange && !value.includes(item.id)) {\n setValuesLabels({\n ...valuesLabel,\n [item.id]: get(item, labelProperty, item.id),\n })\n onChange([...value, item.id])\n }\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\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 <>\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 </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { InputHTMLAttributes, forwardRef, useState } from 'react'\nimport { Input } from './input'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value: string[]\n onChange: (value: string[]) => void\n dataTest?: string\n id?: string\n}\nexport const InputList = forwardRef<\n HTMLInputElement,\n InputHTMLAttributes<HTMLInputElement> & Props\n>(({ value, onChange, dataTest, id }, ref) => {\n const intl = useIntl()\n const [inputValue, setInputValue] = 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 {(value ?? []).length > 0 && (\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 type=\"button\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n />\n </div>\n ))}\n </div>\n )}\n\n <Input\n type=\"text\"\n id={id}\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 setInputValue(value)\n }}\n />\n </div>\n )\n})\n\nInputList.displayName = 'InputList'\nexport default InputList\n","import { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\ninterface Props {\n children: React.ReactNode\n disabled?: boolean\n id?: string\n isRight?: boolean\n onChange: (value: string) => void\n optionDisabledWhen?: (option: any) => boolean\n options: { text: string; value: string }[]\n}\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n}: Props) {\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}>\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 <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 { 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\ninterface Props {\n field: string\n value: any\n ns?: string\n schema?: any\n modifyContent?: boolean\n required?: boolean\n}\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}: Props) {\n const intl = useIntl()\n const ref = useRef<HTMLElement>()\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 <>\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 </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface DownloadFieldProps {\n value: {\n data: {\n filename: string\n content_type: string\n }\n field: string\n }\n}\nexport const DownloadField = ({ value }: DownloadFieldProps) => {\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 { useEffect, useState } from 'react'\nimport { DownloadField } from './downloadField'\nimport { useIntl } from 'react-intl'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { buildQs } from '../../lib/search'\nimport { useTraversal } from '../../contexts'\nimport { useConfig } from '../../hooks/useConfig'\nimport {\n GuillotinaSchemaProperty,\n GuillotinaVocabularyItem,\n} from '../../types/guillotina'\n\nconst plain = ['string', 'number', 'boolean']\n\ninterface RenderFieldProps {\n value: any\n Widget?: React.ComponentType<{ value: any; schema: GuillotinaSchemaProperty }>\n schema?: GuillotinaSchemaProperty\n}\n\nexport function RenderField({ value, Widget, schema }: RenderFieldProps) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} schema={schema} />\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\n field={get(schema, `properties.${key}.title`, key)}\n schema={get(schema, `properties.${key}`, {})}\n value={value[key]}\n key={key}\n />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\ninterface FieldValueProps {\n field: string\n value: unknown\n schema: GuillotinaSchemaProperty\n}\nconst FieldValue = ({ field, value, schema }: FieldValueProps) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderFieldComponent val={value} schema={schema} field={field} />\n </div>\n </div>\n)\n\nconst DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\nconst getDefaultValueEditableField = (intl) => {\n return intl.formatMessage({\n id: 'default_value_editable_field',\n defaultMessage: 'Click to edit',\n })\n}\n\ninterface SearchRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const SearchRenderField = ({\n schema,\n value,\n modifyContent,\n}: SearchRenderFieldProps) => {\n const intl = useIntl()\n const [valuesLabels, setValuesLabels] = useState([])\n const [isLoadingData, setIsLoadingData] = useState(false)\n const traversal = useTraversal()\n const { SearchEngine } = useConfig()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n useEffect(() => {\n const fetchData = async (valuesToSearch) => {\n setIsLoadingData(true)\n let searchTermQs = ''\n\n const searchTermParsed = ['__or', `id=${valuesToSearch.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n\n if (searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([searchTermParsed, ...qsParsed])\n }\n const data = await traversal.client.search(\n traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n\n const newValuesLabel = data.items.map((item) => {\n return get(item, schema?.labelProperty ?? 'title', item.id)\n })\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n\n let valuesToSearch = value\n if (typeof valuesToSearch === 'string') {\n valuesToSearch = [valuesToSearch]\n }\n\n if (valuesToSearch !== undefined && valuesToSearch.length > 0) {\n fetchData(valuesToSearch)\n } else {\n setValuesLabels([])\n }\n }, [value])\n\n const getRenderValue = () => {\n if (value === undefined) {\n if (modifyContent) {\n return DEFAULT_VALUE_EDITABLE_FIELD\n }\n return DEFAULT_VALUE_NO_EDITABLE_FIELD\n }\n if (isLoadingData) {\n return 'Loading...'\n }\n\n return valuesLabels\n }\n\n return <RenderField value={getRenderValue()} />\n}\n\ninterface VocabularyRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const VocabularyRenderField = ({\n schema,\n value,\n modifyContent,\n}: VocabularyRenderFieldProps) => {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n const vocabularyName = schema?.items?.vocabularyName || schema?.vocabularyName\n const vocabulary = useVocabulary(vocabularyName)\n\n const getRenderProps = () => {\n const renderProps = {\n value:\n value ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n\n if (schema?.vocabularyName) {\n const vocabularyValue = get<GuillotinaVocabularyItem[]>(\n vocabulary,\n 'data.items',\n []\n ).find((item) => item.token === value)\n renderProps['value'] = vocabularyValue?.title ?? ''\n } else {\n renderProps['value'] = (renderProps['value'] ?? []).map((value) => {\n return (\n get<GuillotinaVocabularyItem[]>(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n })\n }\n\n return renderProps\n }\n return <RenderField {...getRenderProps()} />\n}\n\ninterface RenderFieldComponentProps {\n schema: GuillotinaSchemaProperty\n field: string\n val: any\n modifyContent?: boolean\n}\nexport function RenderFieldComponent({\n schema,\n field,\n val,\n modifyContent,\n}: RenderFieldComponentProps) {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\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 schema: schema,\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 renderProps['Widget'] = VocabularyRenderField\n } else if (\n schema?.widget === 'search' ||\n schema?.widget === 'search_list'\n ) {\n renderProps['Widget'] = SearchRenderField\n renderProps['value'] = val\n }\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import { 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'\nimport { SearchInputList } from '../input/search_input_list'\nimport { SearchInput } from '../input/search_input'\nimport { useTraversal } from '../../contexts'\nimport { Ref, forwardRef } from 'react'\nimport { GuillotinaItemsProperty } from '../../types/guillotina'\nimport { IndexSignature } from '../../types/global'\n\ninterface Props {\n schema: GuillotinaItemsProperty\n val: any\n setValue: (value: any) => void\n dataTest?: string\n className?: string\n placeholder?: string\n id?: string\n required?: boolean\n}\n\nexport const EditComponent = forwardRef(\n (\n {\n schema,\n val,\n setValue,\n dataTest,\n className,\n placeholder,\n id,\n required,\n }: Props,\n ref\n ) => {\n const traversal = useTraversal()\n\n if (schema?.widget === 'search_list') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInputList\n value={val || []}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else if (schema?.widget === 'search') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInput\n value={val}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else 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 as Ref<HTMLTextAreaElement>}\n dataTest={dataTest}\n placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n checked={Boolean(val)}\n className={className}\n onChange={(ev) => setValue(ev)}\n dataTest={dataTest}\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 onChange={setValue}\n multiple\n placeholder={placeholder}\n id={id}\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 placeholder={placeholder}\n id={id}\n />\n )\n }\n }\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref as Ref<HTMLInputElement>}\n dataTest={dataTest}\n />\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 />\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 placeholder={placeholder}\n id={id}\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 placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'object' && schema.widget !== 'file') {\n const value = val as IndexSignature\n return (\n <>\n {schema.title && <h4 className=\"subtitle mt-2\">{schema.title}</h4>}\n {Object.keys(get(schema, 'properties', {})).map((key) => {\n const subSchema = get(schema, 'properties', {})[key]\n const requiredFields: string[] = get(schema, 'required', [])\n return (\n <EditComponent\n key={`${id}[${key}]`}\n id={`${id}[${key}]`}\n schema={subSchema}\n val={value && key in value ? value[key] : ''}\n placeholder={subSchema?.title ?? ''}\n required={requiredFields.includes(key)}\n setValue={(ev) => {\n setValue({ ...value, [key]: ev })\n }}\n dataTest={`${key}TestInput`}\n />\n )\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 case 'time':\n return 'time'\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 as Ref<HTMLInputElement>}\n type={getInputType()}\n required={required}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n file: GuillotinaFile\n }\n}\n\nexport function IAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </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 { 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 '../modal'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport { LightFile } from '../../types/global'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n files: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState<LightFile | undefined>(undefined)\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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </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 { 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 '../modal'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n image: GuillotinaFile\n }\n}\nexport function IImageAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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} style={{ width: '150px' }}>\n {intl.formatMessage(genericMessages.image)}\n </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 { useState } from 'react'\n\nimport { Button } from '../input/button'\nimport { Confirm } from '../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'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiImageAttachment({ properties, values }: Props) {\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.SizeImages || _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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['images']).map((key) => (\n <tr key={`multiimageattachment_${key}`}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </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 '../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 { useEffect, useState } from 'react'\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n DroppableProvided,\n DroppableStateSnapshot,\n} 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'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface StrictModeDroppableProps {\n children(\n provided: DroppableProvided,\n snapshot: DroppableStateSnapshot\n ): React.ReactElement<HTMLElement>\n droppableId: string\n}\nconst StrictModeDroppable = ({\n children,\n droppableId,\n}: StrictModeDroppableProps) => {\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 droppableId={droppableId}>{children}</Droppable>\n}\n\nconst reorder = (list, startIndex, endIndex) => {\n const result: string[] = 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})\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: GuillotinaFile[]\n }\n}\nexport function IMultiImageOrderedAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const [sortedList, setSortedList] = useState<string[]>(\n Object.keys(values['images'])\n )\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.SizeImages || _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 <>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\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 </>\n )\n}\n","import {\n GuillotinaSharing,\n GuillotinaSharingInheritItem,\n GuillotinaSharingMap,\n} from '../types/guillotina'\n\nconst base: GuillotinaSharing = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: [],\n}\n\nexport class Sharing {\n local: GuillotinaSharingMap\n inherit: GuillotinaSharingInheritItem[]\n\n constructor(element) {\n Object.assign(this, element || base)\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'\nimport { SearchItem } from '../types/guillotina'\n\nexport * from './sharing'\n\nexport class ItemModel {\n item: SearchItem\n url: string\n constructor(item, url = '') {\n this.item = item\n this.url = url\n }\n\n get path() {\n // Compat\n const item = this.item['@id']\n ? this.item['@id']\n : 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 const 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 { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { ItemModel } from '../../models'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { useEffect, useState } from 'react'\n\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\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] = useState(undefined)\n const [workflowAction, setWorkflowAction] = useState(null)\n const model = new ItemModel(Ctx.context)\n const vocabulary = useVocabulary('workflow_states')\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 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 const getStateTitle = () => {\n if (vocabulary.data?.items?.length > 0) {\n const vocabularyValue = vocabulary.data.items.find(\n (item) => item.token === currentState\n )\n if (vocabularyValue) {\n const translatedValue = get(\n vocabularyValue,\n `title.translated_title.${intl.locale}`,\n null\n )\n if (translatedValue !== null) {\n return translatedValue\n }\n const titleValue = get(\n vocabularyValue,\n `title.title.${intl.locale}`,\n null\n )\n if (titleValue !== null) {\n return titleValue\n }\n }\n }\n return currentState\n }\n\n if (definition === undefined) return null\n\n return (\n <>\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, {\n state: getStateTitle(),\n })}\n </div>\n </div>\n {modifyContent && definition.transitions.length > 0 && (\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 {get(\n transition,\n `metadata.translated_title.${intl.locale}`,\n transition.title\n )}\n </button>\n )\n })}\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../../lib/helpers'\nimport { Fragment } from 'react'\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 <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 </Fragment>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\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() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const [action, setAction] = useState(false)\n const [state, setState] = useState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n useEffect(() => {\n const getAddons = async () => {\n if (!state.loading && !state.data && !state.error) {\n try {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n setState({ ...state, loading: false, data: prepareData(data) })\n } catch (err) {\n setState({ ...state, loading: false, error: err })\n }\n }\n }\n getAddons()\n }, [action])\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 return (\n <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.data?.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.data?.available ?? []).map((addon) => (\n <tr key={addon.id}>\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.data?.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.data?.installed ?? []).map((addon) => (\n <tr key={addon.id}>\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 </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 { 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'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaBehaviors } from '../../types/guillotina'\n\nexport function PanelBehaviors() {\n const intl = useIntl()\n const {\n Ctx,\n get,\n result,\n loading,\n isError,\n } = useCrudContext<GuillotinaBehaviors>()\n const ops = useCrudContext()\n\n const [state, setState] = 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 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 <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 </Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import { 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'\nimport { SearchItem } from '../types/guillotina'\n\nconst ItemsActionsCtx = createContext<{\n selected?: {\n all: boolean\n [key: string]: boolean\n }\n onSelectOneItem?: (item: SearchItem) => void\n onSelectAllItems?: (chedked: boolean) => void\n onAction?: (action: string) => void\n}>({\n selected: {\n all: false,\n },\n})\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\ninterface PropsItemsActionsProvider {\n items: SearchItem[]\n children: React.ReactNode\n}\nexport function ItemsActionsProvider({\n items,\n children,\n}: PropsItemsActionsProvider) {\n const intl = useIntl()\n const actions = getActionsObject(intl, true)\n const traversal = useTraversal()\n const [selected, setSelected] = useState({\n all: false,\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 }: { dataTest?: string }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n onChange={onSelectAllItems}\n checked={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\ninterface PropsItemCheckbox {\n item: SearchItem\n dataTest?: string\n}\nexport function ItemCheckbox({ item, dataTest }: PropsItemCheckbox) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n onChange={() => onSelectOneItem(item)}\n checked={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 isRight={false}\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 { useIntl } from 'react-intl'\n\ninterface Props {\n current: number\n total: number\n doPaginate: (page: number) => void\n pager: number\n}\nexport function Pagination({ current, total, doPaginate, pager }: Props) {\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'\nimport { IColumn } from '../reducers/guillotina'\nimport { SearchItem } from '../types/guillotina'\n\ninterface ItemProps {\n item: { id: string; path: string }\n icon?: string\n}\nexport function Item({ item, icon }: ItemProps) {\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\ninterface RItemProps {\n item: SearchItem\n search: string\n columns: IColumn[]\n}\nexport function RItem({ item, search, columns }: RItemProps) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item.id} data-test={`itemTest-${item.id}`}>\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\ninterface ItemTitleProps {\n title: string\n actions?: React.ReactNode\n}\nexport function ItemTitle({ title, actions }: ItemTitleProps) {\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 { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n}\nexport function SearchLabels({ 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 { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n options?: { value: string; text: string }[]\n}\nexport function SearchOptionsLabels({ 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 { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\nimport { useVocabulary } from '../hooks/useVocabulary'\n\ninterface Props {\n query?: string\n vocabularyName?: string\n}\n\nexport function SearchVocabularyLabels({ query = 'q', vocabularyName }: Props) {\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const vocabulary = useVocabulary(vocabularyName)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value: string = defaultRenderValue\n\n if ((vocabulary?.data?.items ?? []).length > 0) {\n const vocabularyValue = 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 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'\n\nimport { SearchItem } from '../../types/guillotina'\n\ninterface InitialState {\n page: number\n items: SearchItem[]\n loading: boolean\n total: number\n}\nconst initialState: 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>(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 const search = location.get('q')\n const type = location.get('type')\n const 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 const 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 setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type'],\n {\n key: 'id',\n direction: 'des',\n }\n )\n sortParsed = parser(\n `_sort_${defaultSortValue.direction}=${defaultSortValue.key}}`\n )\n }\n const 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 const data = await Ctx.client.search(Ctx.path, qs, false, false, {\n signal,\n })\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 val={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 vocabularyName={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 { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { GuillotinaCommonObject, GuillotinaSchema } from '../types/guillotina'\n\ninterface Props {\n context: GuillotinaCommonObject\n schema: GuillotinaSchema\n}\nexport function BehaviorsView({ context, schema }: Props) {\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 <>\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 </>\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 { 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 { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\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\ninterface State {\n data: GuillotinaSchema\n loading: boolean\n error: string\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<State>({\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) => ({\n key,\n value: schema.data.properties[key] as GuillotinaSchemaProperty,\n }))\n\n useEffect(() => {\n async function getSchema() {\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 getSchema()\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 style={{ width: '150px' }} 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 style={{ width: '150px' }}>{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 style={{ width: '150px' }} 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 style={{ width: '150px' }}>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={(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 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\ninterface State {\n principal: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}: Props) {\n const Ctx = useTraversal()\n const intl = useIntl()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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\ninterface State {\n principal: string\n roles: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinrole({\n principals,\n roles,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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\ninterface State {\n role: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n roles: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaSharing } from '../../types/guillotina'\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<GuillotinaSharing>()\n const ctx = useTraversal()\n\n const [reset, setReset] = useState(1)\n\n 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 <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 </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 <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 </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 <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 </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\ninterface State {\n permissions: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n principals: { text: string; value: string }[]\n current: string\n}\nconst initial: State = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n}\n\ninterface AddPermissionProps {\n refresh: (state: number) => void\n reset: number\n}\nexport function AddPermission({ refresh, reset }: AddPermissionProps) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State>(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 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 const 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: string) => 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 { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\nimport { useRef, useState } from 'react'\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\ninterface Props {\n items: string[]\n available?: string[]\n title: string\n noData: string\n onChange: (items: string[]) => void\n loading?: boolean\n}\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}: Props) {\n const selectRef = useRef<HTMLSelectElement>()\n\n const [result, setResult] = useState(items)\n const availableData = 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 <>\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\n id={item}\n name={item}\n onRemove={() => remove(item)}\n key={item}\n />\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={availableData}\n ref={selectRef}\n onChange={(value) => {\n addItem(value)\n if (selectRef.current) {\n selectRef.current.value = ''\n }\n }}\n />\n </li>\n )}\n </ul>\n </>\n )\n}\n","import { useEffect, useState } 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\ninterface State {\n types?: string[]\n isActive?: boolean\n}\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(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 anyNameFunction()\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\ninterface Props {\n AddButton?: React.FC\n}\nexport function ContextToolbar({ AddButton }: Props) {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(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] = 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 <>\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 ? <AddButton /> : <CreateButton />}\n </div>\n )}\n </>\n )\n}\n","import { 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, { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\nimport { IndexSignature } from '../types/global'\n\nfunction FallbackTab({ title }: { title: string }) {\n return <div>Tab &apos;{title}&apos; not found</div>\n}\n\ninterface Props {\n tabs: IndexSignature\n currentTab?: string\n rightToolbar?: React.ReactNode\n fallback?: React.ComponentType\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n}: Props) {\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} />\n </div>\n </div>\n )\n}\n","import { 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 { 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 { 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() {\n const intl = useIntl()\n const context = useTraversal()\n const { databases } = context.state.context\n return (\n <>\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 </>\n )\n}\n\nexport function DatabaseCtx() {\n const context = useTraversal()\n const { containers } = context.state.context\n const { path } = context.state\n return (\n <>\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 </>\n )\n}\n\nexport function CreateContainer() {\n const intl = useIntl()\n const [isActive, setActive] = useState(false)\n\n return (\n <>\n <ModalAddContainer isActive={isActive} setActive={setActive} />\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 </>\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\ninterface ModalAddContainerProps {\n isActive: boolean\n setActive: (value: boolean) => void\n}\nfunction ModalAddContainer({ isActive, setActive }: ModalAddContainerProps) {\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 { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface Props {\n title: string\n}\nexport function PanelNotImplemented(props: 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 { 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() {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar />}\n />\n )\n}\n","import { FormBuilder } from '../components/input/form_builder'\nimport { useIntl } from 'react-intl'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n children: React.ReactNode\n onSubmit: (data: IndexSignature) => void\n actionName?: string\n formData?: IndexSignature\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\nexport const UserForm = ({\n children,\n actionName,\n onSubmit,\n formData,\n exclude,\n remotes,\n submitButton,\n}: Props) => {\n const intl = useIntl()\n\n const schema = {\n $schema: '',\n title: '',\n type: 'object',\n definitions: {},\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\n return (\n <FormBuilder\n schema={schema}\n actionName={actionName}\n onSubmit={onSubmit}\n formData={formData}\n exclude={exclude}\n remotes={remotes}\n submitButton={submitButton}\n >\n {children}\n </FormBuilder>\n )\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\nimport { useState } from 'react'\nimport { IndexSignature } from '../types/global'\n\nexport const useRemoteField = (\n initial: IndexSignature<string[]>\n): [IndexSignature<string[]>, (name: string) => (value: string[]) => void] => {\n const [remotes, setRemote] = useState(initial)\n\n const updateRemote = (name: string) => (value: string[]) => {\n setRemote({\n ...remotes,\n [name]: value,\n })\n }\n\n return [remotes, updateRemote]\n}\n","import { 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'\nimport { useEffect, useRef, useState } from 'react'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = 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 useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\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 </>\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\ninterface State {\n roles: string[]\n groups: string[]\n}\nexport function UserCtx() {\n const intl = useIntl()\n const { Ctx, patch, loading } = useCrudContext()\n\n const [state, setState] = useState<State>({ roles: [], groups: [] })\n\n const fields = {\n user_groups: [],\n user_roles: Ctx.context.user_roles,\n }\n\n const [remotes, updateRemote] = useRemoteField(fields)\n\n useEffect(() => {\n async function getRolesAndGroups() {\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 const 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 getRolesAndGroups()\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 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 { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: Array<ItemModel>\n}\nexport function CopyItems(props: 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 <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 </Fragment>\n ))}\n &nbsp;\n </PathTree>\n )\n}\n","import { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function CopyItem(props: 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 <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 </Fragment>\n </PathTree>\n )\n}\n","import { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: ItemModel[]\n}\nexport function MoveItems(props: 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 { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function MoveItem(props: 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.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function RemoveItem(props: 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.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 { 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'\nimport { useState } from 'react'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword() {\n const [state, setState] = useState(initial)\n const [perror, setPerror] = useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit() {\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 const 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 const 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 onSubmit={doSubmit} title=\"Change Password\">\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 { 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\ninterface Props {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: Props) {\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\ninterface Props {\n properties: { [key: string]: any }\n values: { [key: string]: any }\n}\n\nexport function IDublinCore({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </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 { 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, useRef } 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 = 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 useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\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 </>\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\nconst sortParsed = parser(`_sort_asc=id`)\nconst 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 function getRoles() {\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 getRoles()\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 (newUserId) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUserId] = 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: newUserId }\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 id={`roles_${urole}`}\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 id={`user_${user}`}\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import { Component } from 'react'\nimport { IntlShape, injectIntl } from 'react-intl'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nclass ErrorBoundaryComponent extends Component<\n { intl: IntlShape; children: React.ReactNode },\n { hasError: boolean; errorMsg: string; errorStack: string }\n> {\n state = {\n hasError: false,\n errorMsg: '',\n errorStack: '',\n }\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 const ErrorBoundary: React.ComponentType<{\n intl: IntlShape\n children: React.ReactNode\n}> = injectIntl(ErrorBoundaryComponent)\n","import { 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 { 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 { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n const segments = ctx.path.replace(/\\/$/, '').split('/')\n const 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 (e.ctrlKey || e.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 const 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 { 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'\nimport { GuillotinaSchema } from '../types/guillotina'\n\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.FC | React.ComponentType\n }\n actions: {\n [key: string]: React.FC\n }\n forms: {\n [key: string]: React.FC\n }\n behaviors: {\n [key: string]: React.FC\n }\n itemsColumn: {\n [key: string]: () => {\n label: string\n key: string\n isSortable?: boolean\n child: React.ReactNode\n }[]\n }\n schemas: {\n [key: string]: GuillotinaSchema\n }\n properties: {\n [key: string]: React.FC\n }\n components: {\n [key: string]: React.FC\n }\n searchEngineQueryParamsFunction: {\n [key: string]: string\n }\n fieldsToFilter: {\n [key: string]: string[]\n }\n defaultSortValue: {\n [key: string]: {\n direction: 'asc' | 'des'\n field: string\n }\n }\n}\nconst registry: IRegistry = {\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 defaultSortValue: {},\n}\n\nconst get = (key, param, fallback = undefined) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback = undefined) => {\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: string, fallback: React.FC = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type: string, fallback: React.FC = undefined) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type: string, fallback: React.FC) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type: string) => {\n return registry.properties[type] || {}\n}\n\nconst getSchemas = (type: string) => {\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: string, fallback) => {\n return registry.fieldsToFilter[type] || fallback\n}\n\nconst getDefaultSortValue = (type: string, fallback) => {\n return registry.defaultSortValue[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<unknown>()\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 getDefaultSortValue,\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","import { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\nexport interface GuillotinaGlobalState {\n path: string\n loading: boolean\n context: GuillotinaCommonObject\n flash: {\n message: string\n type: string\n }\n action: {\n action: string\n params: IndexSignature\n }\n permissions: IndexSignature\n errorStatus: number\n registry: IndexSignature\n refresh: number\n}\nexport const initialState: GuillotinaGlobalState = {\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\nexport interface IColumn {\n key: string\n label: string\n isSortable: string\n child: (\n model: ItemModel,\n link: () => void,\n search: string\n ) => React.ReactElement\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 { IRegistry, 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'\nimport { Auth } from '../lib/auth'\nimport { IndexSignature } from '../types/global'\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\ninterface GuillotinaProps {\n auth: Auth\n locale: string\n url: string\n config: IndexSignature\n registry: IRegistry\n}\nexport function Guillotina({ auth, locale, ...props }: GuillotinaProps) {\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 const initContext = async () => {\n const 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 const 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 initContext()\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 { useState } from 'react'\nimport { Auth } from '../lib/auth'\nimport { Icon } from './ui/icon'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n onLogout: () => void\n auth: Auth\n}\nexport function Layout({ children, onLogout, auth }: Props) {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const doLogout = () => {\n auth.logout()\n onLogout()\n }\n\n return (\n <>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\" style={{ alignItems: 'center' }}>\n <a className=\"navbar-item\" href=\"/\">\n <img src=\"/logo.svg\" alt=\"Guillotina logo\" height=\"80\" />\n </a>\n <div\n id=\"burger\"\n role=\"button\"\n className={classnames([\n 'navbar-burger',\n 'burger',\n isMenuOpen && 'is-active',\n ])}\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </div>\n </div>\n <div\n id=\"navbarmenu\"\n className={classnames(['navbar-menu', isMenuOpen && 'is-active'])}\n >\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\" />\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 </>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\nimport { Auth } from '../lib/auth'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\ninterface State {\n username: string\n password: string\n loading: boolean\n errors: string\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\n\ninterface Props {\n currentSchema: string\n setCurrentSchema: (schema: string) => void\n schemas: string[]\n auth: Auth\n onLogin?: () => void\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}: Props) => {\n const [state, setState] = useSetState<State>(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 { 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'\nimport { IndexSignature } from '../types/global'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\ninterface Props {\n onSubmit: (data: { [key: string]: any }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\ninterface State {\n data: any\n loading: boolean\n error: any\n formFields: string[]\n}\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState<IndexSignature>({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState<State>({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n const getSchema = 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 getSchema()\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'\nimport { IndexSignature } from '../types/global'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n url: string\n base_url: string\n errors: string\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)\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: IndexSignature = 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(\n 'auth_expires',\n new Date(data.exp).getTime().toString()\n )\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 const 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.logout()\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 res.token\n }\n\n willExpire(expiration) {\n const 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 const 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 // eslint-disable-next-line no-extra-semi\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","Traversal","flash","props","dispatch","state","client","registry","url","auth","refresh","transparent","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","permissions","filterTabs","tabs","tabsPermissions","result","Object","keys","forEach","item","perm","path","slice","context","getContainerFromPath","TraversalContext","TraversalProvider","children","_jsx","Provider","value","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","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","css","concat","split","Modal","isActive","setActive","usePortal","Portal","_jsxs","Confirm","onCancel","onConfirm","useIntl","style","marginTop","PathTree","defaultPath","onSubmit","e","preventDefault","target","display","defaultValue","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","assign","Function","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","body","newState","console","error","del","post","get","useCrudContext","AddItem","doSubmit","form","formData","getForm","Form","onError","err","log","actionName","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","rest","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","Checkbox","classNameInput","indeterminate","checked","placeholder","onChange","inputRef","useEffect","updateState","ev","htmlFor","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","onKeyUp","validatorFn","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","displayName","Icon","align","addClass","EmailInput","onReset","handleSubmit","event","PasswordInput","formComponents","password","boolean","email","FormBuilder","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","children_","Children","child","isValidElement","cloneElement","changes","Select","options","size","classWrap","appendDefault","selectValue","selectedOptions","cssWrap","index","toString","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","obj","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","useVocabulary","vocabularyName","traversal","vocabulary","setVocabulary","getPath","getVocabulary","dataJson","SelectVocabulary","val","getOptions","vocData","token","getProps","currentValue","setURLParams","p","history","pushState","clean","URLSearchParams","_key","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","pathname","events","addEventListener","removeEventListener","navigate","param","patched","args","Event","arguments","dispatchEvent","location","Link","aRef","model","aStyle","textDecoration","color","stopPropagation","actAsLink","href","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","Loading","name","onRemove","Delete","Table","headers","parsedClassName","idx","Notification","isColor","RestClient","container","request","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","put","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","Error","orParser","parsed","buildQs","lastKey","qsSplit","part","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","isSortable","m","React","Fragment","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","req","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","fileToUpload","Textarea","rows","defaultEvents","on","off","useClickAway","onClickAway","savedCallback","handler","el","contains","eventName","document","debounce","wait","timeout","later","clearTimeout","page","SearchInput","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","typeNameQuery","labelProperty","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","valueLabel","setValueLabel","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","inicializeLabels","searchTermQs","searchTermParsed","getSearch","fnName","qsParsed","typeNameParsed","newValuesLabel","sortParsed","newItems","renderTextItemOptionFn","currentTarget","relatedTarget","HTMLElement","blur","onMouseDown","SearchInputList","valuesLabel","setValuesLabels","isLoadingData","setIsLoadingData","tag","InputList","inputValue","setInputValue","addTags","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","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_NO_EDITABLE_FIELD","getDefaultValueEditableField","SearchRenderField","valuesLabels","DEFAULT_VALUE_EDITABLE_FIELD","fetchData","valuesToSearch","getRenderValue","VocabularyRenderField","getRenderProps","renderProps","vocabularyValue","find","toLocaleString","queryPath","subSchema","requiredFields","getInputType","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","colSpan","_sizesImages","pact","prototype","callback","_this","onRejected","IImageAttachment","sizesImages","SizeImages","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","bind","observer","s","v","onFulfilled","thenable","IMultiImageAttachment","StrictModeDroppable","droppableId","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","o","reorder","list","startIndex","endIndex","splice","removed","then","_cycle","array","_settle","messages","failed_to_sort_images","images_sorted","IMultiImageOrderedAttachment","onDragEnd","destination","source","resultSorted","sortedList","setSortedList","uuidv4","DragDropContext","provided","innerRef","droppableProps","Draggable","draggableId","providedChild","borderTop","draggableProps","dragHandleProps","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","icons","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","getStateTitle","translatedValue","locale","titleValue","transitions","transition","PanelActions","ACTIONS_OBJECT","some","onAction","actionKey","available_addons","no_available_addons_container","installed_addons","PanelAddons","setAction","pathPrefix","prepareData","addon","installed","addons","arrayToObject","PanelBehaviors","ops","enableBehavior","disableBehavior","dynamic","ItemsActionsCtx","selected","ItemsActionsProvider","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","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","PanelItems","setLocation","filterSchema","getSchemas","filters","sort","sortDirection","searchParsed","fieldsToFilter","getFieldsToFilter","typeParsed","onSort","sort_direction","resultQueryParams","resultDynamicLocation","itemParam","attribute_key","filterParsed","controller","AbortController","defaultSortValue","getDefaultSortValue","direction","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","default","properties_default","ignoreFields","ignoreField","properties_ignore_fields","getSchema","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","AddPermission","defaultOptions","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","availableData","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","ModalAddContainer","add_container","container_created","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","UserForm","$schema","definitions","username","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","user_groups","user_roles","getRolesAndGroups","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","newUserId","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundaryComponent","errorMsg","errorStack","componentDidCatch","errorInfo","componentStack","render","Component","ErrorBoundary","injectIntl","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","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","loadLocaleData","langCA","langES","langEN","Guillotina","config","searchPath","useReducer","initContext","pr","contextData","Main","Action","IntlProvider","defaultLocale","Layout","onLogout","isMenuOpen","setIsMenuOpen","doLogout","logout","alignItems","src","alt","height","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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"}
1
+ {"version":3,"file":"react-gmi.umd.js","sources":["../src/guillo-gmi/contexts/index.tsx","../src/guillo-gmi/locales/generic_messages.js","../src/guillo-gmi/lib/helpers.ts","../src/guillo-gmi/components/input/button.tsx","../src/guillo-gmi/components/modal.tsx","../src/guillo-gmi/hooks/useSetState.tsx","../src/guillo-gmi/hooks/useCrudContext.tsx","../src/guillo-gmi/actions/add_item.tsx","../src/guillo-gmi/hooks/useConfig.tsx","../src/guillo-gmi/actions/remove_items.tsx","../src/guillo-gmi/components/input/checkbox.tsx","../src/guillo-gmi/components/error_zone.tsx","../src/guillo-gmi/hooks/useInput.tsx","../src/guillo-gmi/lib/validators.ts","../src/guillo-gmi/components/input/input.tsx","../src/guillo-gmi/components/ui/icon.tsx","../src/guillo-gmi/components/input/email.tsx","../src/guillo-gmi/components/input/form.tsx","../src/guillo-gmi/components/input/password.tsx","../src/guillo-gmi/components/input/form_builder.tsx","../src/guillo-gmi/components/input/select.tsx","../src/guillo-gmi/lib/utils.ts","../src/guillo-gmi/hooks/useVocabulary.tsx","../src/guillo-gmi/components/input/select_vocabulary.tsx","../src/guillo-gmi/hooks/useLocation.tsx","../src/guillo-gmi/components/Link.tsx","../src/guillo-gmi/components/TdLink.tsx","../src/guillo-gmi/components/ui/loading.tsx","../src/guillo-gmi/components/ui/tag.tsx","../src/guillo-gmi/components/ui/delete.tsx","../src/guillo-gmi/components/ui/table.tsx","../src/guillo-gmi/components/ui/notification.tsx","../src/guillo-gmi/lib/rest.ts","../src/guillo-gmi/lib/search.ts","../src/guillo-gmi/lib/client.tsx","../src/guillo-gmi/components/input/upload.tsx","../src/guillo-gmi/components/input/textarea.tsx","../src/guillo-gmi/hooks/useClickAway.tsx","../src/guillo-gmi/components/input/search_input.tsx","../src/guillo-gmi/components/input/search_input_list.tsx","../src/guillo-gmi/components/input/input_list.tsx","../src/guillo-gmi/components/input/dropdown.tsx","../src/guillo-gmi/components/fields/editableField.tsx","../src/guillo-gmi/components/fields/downloadField.tsx","../src/guillo-gmi/components/fields/renderField.tsx","../src/guillo-gmi/components/fields/editComponent.tsx","../src/guillo-gmi/components/behaviors/iattachment.tsx","../src/guillo-gmi/components/behaviors/imultiattachment.tsx","../src/guillo-gmi/components/behaviors/iimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageorderedattachment.tsx","../src/guillo-gmi/models/sharing.ts","../src/guillo-gmi/models/index.ts","../src/guillo-gmi/components/behaviors/iworkflow.tsx","../src/guillo-gmi/components/panel/actions.tsx","../src/guillo-gmi/components/panel/addons.tsx","../src/guillo-gmi/components/panel/behaviors.tsx","../src/guillo-gmi/components/selected_items_actions.tsx","../src/guillo-gmi/components/pagination.tsx","../src/guillo-gmi/components/item.tsx","../src/guillo-gmi/components/search_labels.tsx","../src/guillo-gmi/components/search_options_labels.tsx","../src/guillo-gmi/components/search_vocabulary_labels.tsx","../src/guillo-gmi/components/panel/items.tsx","../src/guillo-gmi/components/behavior_view.tsx","../src/guillo-gmi/components/properties_view.tsx","../src/guillo-gmi/components/panel/properties.tsx","../src/guillo-gmi/components/panel/permissions_prinperm.tsx","../src/guillo-gmi/components/panel/permissions_prinrole.tsx","../src/guillo-gmi/components/panel/permissions_roleperm.tsx","../src/guillo-gmi/components/panel/permissions.tsx","../src/guillo-gmi/components/widgets/tags.tsx","../src/guillo-gmi/components/context_toolbar.tsx","../src/guillo-gmi/components/flash.tsx","../src/guillo-gmi/components/tabs.tsx","../src/guillo-gmi/views/folder.tsx","../src/guillo-gmi/views/item.tsx","../src/guillo-gmi/views/application.tsx","../src/guillo-gmi/views/base.tsx","../src/guillo-gmi/views/container.tsx","../src/guillo-gmi/forms/users.tsx","../src/guillo-gmi/hooks/useRemoteField.tsx","../src/guillo-gmi/views/users.tsx","../src/guillo-gmi/actions/copy_items.tsx","../src/guillo-gmi/actions/copy_item.tsx","../src/guillo-gmi/actions/move_items.tsx","../src/guillo-gmi/actions/move_item.tsx","../src/guillo-gmi/actions/remove_item.tsx","../src/guillo-gmi/actions/change_pass.tsx","../src/guillo-gmi/forms/base.tsx","../src/guillo-gmi/components/behaviors/idublincore.tsx","../src/guillo-gmi/views/groups.tsx","../src/guillo-gmi/components/error_boundary.tsx","../src/guillo-gmi/components/notallowed.tsx","../src/guillo-gmi/components/notfound.tsx","../src/guillo-gmi/components/path.tsx","../src/guillo-gmi/hooks/useRegistry.tsx","../src/guillo-gmi/reducers/guillotina.ts","../src/guillo-gmi/components/guillotina.tsx","../src/guillo-gmi/components/layout.tsx","../src/guillo-gmi/components/login.tsx","../src/guillo-gmi/forms/required_fields.tsx","../src/guillo-gmi/lib/auth.ts"],"sourcesContent":["import { Dispatch, useContext } from 'react'\nimport { createContext } from 'react'\nimport { GuillotinaClient } from '../lib/client.js'\nimport { Auth } from '../lib/auth.js'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaGlobalState } from '../reducers/guillotina'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext<GuillotinaClient>(null)\n\ninterface PropsTraversal {\n client: GuillotinaClient\n auth: Auth\n state: GuillotinaGlobalState\n dispatch: Dispatch<{ type: string; payload: IndexSignature }>\n registry: IndexSignature\n flash: (action: string, result: string) => void\n url: string\n}\n\nexport class Traversal {\n private dispatch\n public state\n public client\n public registry\n public url\n public auth\n\n constructor({ flash, ...props }: PropsTraversal) {\n this.dispatch = props.dispatch\n this.state = props.state\n this.client = props.client\n this.registry = props.registry\n this.auth = props.auth\n this.url = props.url\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 const TraversalContext = createContext<Traversal>(null)\nexport function TraversalProvider({\n children,\n ...props\n}: PropsTraversal & { children: React.ReactNode }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return useContext(TraversalContext)\n}\n\ninterface PropsClient {\n children: React.ReactNode\n client: GuillotinaClient\n}\nexport function ClientProvider({ children, client }: PropsClient) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return 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: string[][]) => {\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 (let i = 0; i < binaryLen; i++) {\n const 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 const from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n const to = 'aaaaeeeeiiiioooouuuunc------'\n for (let 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): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve(null)\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 { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n type?: 'submit' | 'reset' | 'button'\n loading?: boolean\n disabled?: boolean\n dataTest?: string\n}\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n}: Props) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface ModalProps {\n isActive: boolean\n setActive: (value: boolean) => void\n children: React.ReactNode\n className?: string\n}\n\nexport function Modal(props: ModalProps) {\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\ninterface ConfirmProps {\n message?: string\n onCancel: () => void\n onConfirm: () => void\n loading?: boolean\n}\nexport function Confirm({\n message,\n onCancel,\n onConfirm,\n loading,\n}: ConfirmProps) {\n const intl = useIntl()\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\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 </Modal>\n )\n}\n\ninterface PathTreeProps {\n title: string\n defaultPath?: string\n children?: React.ReactNode\n onConfirm: (path: string, target: EventTarget) => void\n onCancel: () => void\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}: PathTreeProps) {\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<T>(\n initialState\n): [T, (value: Partial<T>) => void] {\n const [state, set] = useState<T>(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\ninterface State<T = unknown> {\n loading?: boolean\n isError?: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\nconst initial: State = {\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 (\n data,\n endpoint = undefined,\n body = false\n): Promise<State> => {\n setState({ loading: true })\n let newState: State = {}\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 (\n data = {},\n endpoint = undefined,\n body = false\n): Promise<State> => {\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 (\n data,\n endpoint = undefined,\n body = true\n): Promise<State> => {\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 = undefined): Promise<State> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.get(path)\n newState = await processResponse(res, true)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n\n setState(newState)\n return newState\n}\n\nexport function useCrudContext<T>() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State<T>>(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 { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\ninterface Props {\n type: string\n}\n\nexport function AddItem(props: 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 { useRef } from 'react'\nimport { GuillotinaSchemaProperty } from '../types/guillotina'\n\nexport const Permissions: string[] = [\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\ninterface IConfig {\n DisabledTypes: string[]\n PageSize: number\n DelayActions: number\n Permissions: string[]\n SearchEngine: string\n SizeImages?: string[]\n icons?: string[]\n properties_default?: string[]\n properties_ignore_fields?: string[]\n fieldHaveDeleteButton: (schema: GuillotinaSchemaProperty) => boolean\n}\nexport const Config: IConfig = {\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: Partial<IConfig>, original: IConfig) => {\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 = useRef<unknown>()\n if (cfg && !ref.current) {\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n return calculated\n}\n","import { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\nimport { ItemModel } from '../models'\nimport { useState } from 'react'\n\ninterface Props {\n items: ItemModel[]\n}\nexport function RemoveItems(props: Props) {\n const Ctx = useTraversal()\n const cfg = useConfig()\n const [loading, setLoading] = 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 const 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 { ChangeEvent, useEffect, useRef, useState } from 'react'\nimport { classnames } from '../../lib/helpers'\n\ninterface Props {\n className?: string\n classNameInput?: string\n loading?: boolean\n indeterminate?: boolean\n backgroundColor?: string\n borderColor?: string\n dataTest?: string\n onChange: (value: boolean) => void\n id?: string\n disabled?: boolean\n checked?: boolean\n children?: React.ReactNode\n placeholder?: string\n}\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n checked,\n children,\n placeholder,\n onChange,\n dataTest,\n}: Props) => {\n const inputRef = useRef(null)\n const [state, setState] = useState<boolean>(checked)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev: ChangeEvent<HTMLInputElement>) => {\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 />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n id?: string\n className?: string\n}\n\nconst ErrorZone = ({ children, id, className = '' }: Props) => {\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 { useEffect, useState } from 'react'\n\nconst applyValidators = (value, validators) => {\n const validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func && func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n const [state, setState] = 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 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 { forwardRef, useRef, useState } from 'react'\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\ninterface Props {\n name?: string\n icon?: JSX.Element\n iconPosition?: 'has-icons-left' | 'has-icons-right'\n error?: string\n errorZoneClassName?: string\n autoComplete?: string\n className?: string\n widget?: string\n loading?: boolean\n validator?: ((value: string) => boolean) | ((value: string) => boolean)[]\n errorMessage?: string\n dataTest?: string\n autofocus?: boolean\n onChange?: (value: string) => void\n type?: string\n value?: string\n required?: boolean\n id?: string\n placeholder?: string\n disabled?: boolean\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void\n}\n\nexport const Input = forwardRef<HTMLInputElement, Props>(\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 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 disabled,\n onKeyUp,\n },\n ref\n ) => {\n let validatorFn = null\n if (required) {\n validatorFn = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validatorFn)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error && ref != null && typeof ref !== 'function') {\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-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || disabled}\n required={required}\n data-test={dataTest}\n onKeyUp={onKeyUp}\n {...handlers}\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.displayName = 'Input'\nexport default Input\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n icon: string\n className?: string\n align?: string\n}\n\nexport const Icon = ({ icon, className, align }: Props) => {\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 { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value?: string\n dataTest?: string\n onChange?: (value: string) => void\n placeholder?: string\n id?: string\n}\nexport const EmailInput = ({\n value = '',\n dataTest,\n placeholder,\n id,\n}: Props) => {\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 dataTest={dataTest}\n icon={<Icon icon=\"fas fa-envelope\" />}\n id={id}\n placeholder={placeholder}\n />\n )\n}\n","import { noop } from '../../lib/helpers'\nimport { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void\n onReset?: (event: React.FormEvent<HTMLFormElement>) => void\n autoComplete?: string\n title?: string\n error?: string\n dataTest?: string\n}\nexport const Form = ({\n children,\n className = '',\n onSubmit = noop,\n onReset = noop,\n autoComplete = 'off',\n title,\n error,\n dataTest,\n}: Props) => {\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 >\n {children}\n </form>\n </div>\n )\n}\n","import { InputHTMLAttributes } from 'react'\nimport { Input } from './input'\n\ninterface Props {\n value: string\n dataTest: string\n onChange: (value: string) => void\n}\n\nexport const PasswordInput = ({\n value,\n dataTest,\n onChange,\n}: Props & InputHTMLAttributes<HTMLInputElement>) => {\n return (\n <Input\n value={value}\n type=\"password\"\n dataTest={dataTest}\n onChange={onChange}\n />\n )\n}\n","import { 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'\nimport { Children, cloneElement, isValidElement, useRef } from 'react'\nimport { IndexSignature } from '../../types/global'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\ninterface Props {\n schema: GuillotinaSchema\n formData?: any\n onSubmit: (formData: any, initialData: any) => void\n actionName: string\n children?: React.ReactNode\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\n\nexport function FormBuilder({\n schema,\n formData,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = {},\n submitButton = true,\n}: Props) {\n const ref = useRef<unknown>()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n const 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 }: { field: string }) => {\n const property = properties[field] as GuillotinaSchemaProperty\n const Tag = formComponents[property.widget || property.type]\n\n const props = {\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: property.title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n required: false,\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_ = Children.map(children, (child) => {\n if (isValidElement(child)) {\n const props = { onChange: onUpdate }\n return cloneElement(child, props)\n }\n return child\n })\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} dataTest={`formAddUserTest`}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { forwardRef, useState } from 'react'\nimport { IndexSignature } from '../../types/global'\n// @ TODO implement hasErrors\n\ninterface Props {\n error?: string\n errorZoneClassName?: string\n size?: number\n placeholder?: string\n id?: string\n className?: string\n classWrap?: string\n disabled?: boolean\n multiple?: boolean\n loading?: boolean\n onChange?: (value: string | string[]) => void\n options: { text: string; value: string }[]\n appendDefault?: boolean\n style?: IndexSignature\n dataTest?: string\n value?: string | string[]\n}\n\nexport const Select = forwardRef<HTMLSelectElement, Props>(\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 onChange,\n appendDefault = false,\n style = {},\n dataTest,\n value,\n disabled,\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 onChange(ev.target.value)\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 || disabled}\n onChange={onUpdate}\n ref={ref}\n style={style}\n data-test={dataTest}\n value={value}\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.displayName = 'Select'\nexport default Select\n","import { IndexSignature } from '../types/global'\nimport { stringToSlug } from './helpers'\n\nexport const formatDate = (str: string): string => {\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 = <T>(\n obj: IndexSignature,\n path: string | string[],\n defValue\n): T => {\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 { useTraversal } from '../contexts'\nimport { GuillotinaVocabulary } from '../types/guillotina'\nimport useSetState from './useSetState'\nimport { useEffect } from 'react'\n\ninterface State {\n data: GuillotinaVocabulary\n loading: boolean\n error: any\n}\nexport function useVocabulary(vocabularyName: string, path: string = null) {\n const traversal = useTraversal()\n\n const [vocabulary, setVocabulary] = useSetState<State>({\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 const getVocabulary = 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: undefined })\n }\n }\n }\n getVocabulary()\n }, [vocabularyName, vocabulary, path])\n\n return vocabulary\n}\n","import { Select } from './select'\nimport { get } from '../../lib/utils'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { forwardRef } from 'react'\nimport { GuillotinaVocabularyItem } from '../../types/guillotina'\n\ninterface Props {\n vocabularyName: string\n className?: string\n classWrap?: string\n val?: string\n dataTest?: string\n multiple?: boolean\n onChange?: (value: string) => void\n appendDefault?: boolean\n id?: string\n placeholder?: string\n}\nexport const SelectVocabulary = forwardRef<HTMLSelectElement, Props>(\n (\n {\n vocabularyName,\n className,\n classWrap,\n val,\n dataTest,\n multiple,\n onChange,\n id,\n placeholder,\n },\n ref\n ) => {\n const vocabulary = useVocabulary(vocabularyName)\n\n const getOptions = () => {\n if (get<GuillotinaVocabularyItem>(vocabulary, 'data.items', null)) {\n const vocData = vocabulary.data.items.map((item) => {\n return {\n text: 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 onChange={onChange}\n id={id}\n placeholder={placeholder}\n />\n )\n }\n)\n\nSelectVocabulary.displayName = 'SelectVocabulary'\n","import { useEffect, useRef, useState, useCallback } from 'react'\nimport { IndexSignature } from '../types/global'\n\n// Mostly inspired from\n// https://github.com/molefrog/wouter\n\nconst setURLParams = (p) => {\n return window.history.pushState(\n 0,\n '0',\n '' + '?' + p.toString().replace(/%2F/g, '/')\n )\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 URLSearchParams,\n (to: IndexSignature, replace?: boolean) => void,\n (param: string) => void\n] => {\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\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 const 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 const 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 (...args) {\n const result = original.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event(type)\n event.arguments = args\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 { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n aRef?: React.Ref<HTMLAnchorElement>\n model: ItemModel\n children: React.ReactNode\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void\n}\n\nexport function Link({ aRef, model, children, ...props }: 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 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 { useRef } from 'react'\nimport { Link } from './Link'\nimport { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n model: ItemModel\n children: React.ReactNode\n style?: IndexSignature\n}\nexport function TdLink({ model, children, style = {} }: Props) {\n const link = useRef<HTMLAnchorElement>()\n\n function onClick() {\n if (link && link.current) {\n link.current.click()\n }\n }\n\n return (\n <td onClick={onClick} style={style}>\n <Link model={model} aRef={link}>\n {children}\n </Link>\n </td>\n )\n}\n","import { IndexSignature } from '../../types/global'\n\ninterface Props {\n style?: IndexSignature\n}\nexport const Loading = ({ style = {} }: Props) => (\n <div className=\"progress-line\" style={style}></div>\n)\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n name: string\n id: string\n onRemove?: () => void\n size?: string\n color?: string\n}\nexport const Tag = ({\n name,\n id,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}: Props) => (\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 { MouseEvent } from 'react'\n\ninterface Props {\n onClick: (event: MouseEvent<HTMLButtonElement>) => void\n className?: string\n children?: React.ReactNode\n}\nexport function Delete({ onClick, className = '', children = null }: Props) {\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 { classnames } from '../../lib/helpers'\n\ninterface Props {\n headers?: string[]\n className?: string\n children: React.ReactNode\n}\nexport function Table({ headers, children, className }: Props) {\n const parsedClassName = className\n ? className.split(' ')\n : ' is-full is-fullwidth is-narrow'.split(' ')\n return (\n <table className={classnames(['table', ...parsedClassName])}>\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","interface Props {\n isColor?: string\n children: React.ReactNode\n}\nexport function Notification({ isColor = '', children }: Props) {\n return (\n <div className={'notification is-' + isColor} data-test=\"notificationTest\">\n {children}\n </div>\n )\n}\n","import { Auth } from './auth'\n\nexport class RestClient {\n url: string\n container: string\n auth: Auth\n\n constructor(url: string, container: string, auth: Auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data = undefined, headers = undefined) {\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: string, defaultField = DEFAULT_FIELD): string[][] {\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 const qsSplit = qs.split(' ')\n return qsSplit.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: string[][]): string {\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 { LightFile } from '../types/global'\n\nconst cacheTypes = {}\nconst cacheSchemas = {}\n\nexport class GuillotinaClient {\n rest: RestClient\n pathContainsContainer: boolean\n constructor(rest: RestClient, pathContainsContainer: boolean) {\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 const 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 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: string,\n params: string | string[][],\n container = false,\n prepare = true\n ) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n const query = prepare ? toQueryString(params as string[][]) : params\n const url = `${path}@search?${query}`\n const res = await this.rest.get(url)\n const 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 const 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 const 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 = (file) => {\n return new Promise<LightFile>((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 // do nothing\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 { ChangeEvent, InputHTMLAttributes } from 'react'\nimport { lightFileReader } from '../../lib/client.js'\nimport { useIntl } from 'react-intl'\nimport { LightFile } from '../../types/global'\n\ninterface Props {\n label?: string\n dataTest?: string\n onChange: (file: LightFile) => void\n}\nexport function FileUpload({\n label,\n onChange,\n dataTest,\n}: Props & InputHTMLAttributes<HTMLInputElement>) {\n const intl = useIntl()\n const changed = async (event: ChangeEvent<HTMLInputElement>) => {\n const fileToUpload = await lightFileReader(event.target.files[0])\n onChange(fileToUpload)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n type=\"file\"\n name=\"file\"\n onChange={changed}\n data-test={dataTest}\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 ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { forwardRef, useState } from 'react'\n\ninterface Props {\n value: string\n classWrap?: string\n rows?: number\n className?: string\n onChange?: (value: string) => void\n dataTest?: string\n error?: string\n errorZoneClassName?: string\n placeholder?: string\n id?: string\n}\nexport const Textarea = forwardRef<HTMLTextAreaElement, Props>(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\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 ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nTextarea.displayName = 'Textarea'\nexport default Textarea\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 { useState, useEffect, useCallback, useRef } from 'react'\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'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\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\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange?: (value: string) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[][]\n queryCondition?: string\n value?: string\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\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 typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [valueLabel, setValueLabel] = useState<Partial<SearchItem>>(undefined)\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\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 = useCallback<(value: string) => void>(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const inicializeLabels = async () => {\n if (labelProperty !== 'id' && value) {\n let searchTermQs = ''\n const searchTermParsed = [`id`, value]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: PageSize,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValueLabel(newValuesLabel)\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 const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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 get(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (value) {\n inicializeLabels()\n } else {\n setValueLabel({})\n }\n }, [path, value])\n\n if (valueLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n if (ev.target instanceof HTMLElement) {\n ev.target.blur()\n }\n\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>\n {value\n ? get(valueLabel, value, value)\n : intl.formatMessage(genericMessages.choose)}\n </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 <div\n className={`dropdown-item editable ${\n value === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange) {\n onChange(item.id)\n }\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\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 <>\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 </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { useState, useCallback, useRef, useEffect } from 'react'\n\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'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\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\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange: (value: string[]) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[]\n queryCondition?: string\n value: string[]\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\n}\n\nexport const SearchInputList = ({\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 typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [valuesLabel, setValuesLabels] = useState(undefined)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [isLoadingData, setIsLoadingData] = useState(false)\n\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\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 = useCallback<(value: string) => void>(\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 const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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 inicializeLabels = async () => {\n if (labelProperty !== 'id' && value.length > 0) {\n setIsLoadingData(true)\n let searchTermQs = ''\n const searchTermParsed = ['__or', `id=${value.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n }\n\n const renderTextItemOptionFn = (\n item: SearchItem\n ): string | React.ReactNode => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return get<string>(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (!options.loading && !options.items && value.length > 0) {\n inicializeLabels()\n } else if (value.length === 0) {\n setValuesLabels({})\n }\n }, [path, options.loading, options.items])\n\n if (isLoadingData || valuesLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div className=\"tags mb-2\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {get(valuesLabel, tag, tag)}\n <button\n className=\"delete is-small\"\n onClick={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }}\n ></button>\n </div>\n ))}\n </div>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{intl.formatMessage(genericMessages.choose)}</span>\n\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 <div\n className={`dropdown-item editable ${\n value.includes(item.id) ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange && !value.includes(item.id)) {\n setValuesLabels({\n ...valuesLabel,\n [item.id]: get(item, labelProperty, item.id),\n })\n onChange([...value, item.id])\n }\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\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 <>\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 </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { InputHTMLAttributes, forwardRef, useState } from 'react'\nimport { Input } from './input'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value: string[]\n onChange: (value: string[]) => void\n dataTest?: string\n id?: string\n}\nexport const InputList = forwardRef<\n HTMLInputElement,\n InputHTMLAttributes<HTMLInputElement> & Props\n>(({ value, onChange, dataTest, id }, ref) => {\n const intl = useIntl()\n const [inputValue, setInputValue] = 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 {(value ?? []).length > 0 && (\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 type=\"button\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n />\n </div>\n ))}\n </div>\n )}\n\n <Input\n type=\"text\"\n id={id}\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 setInputValue(value)\n }}\n />\n </div>\n )\n})\n\nInputList.displayName = 'InputList'\nexport default InputList\n","import { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\ninterface Props {\n children: React.ReactNode\n disabled?: boolean\n id?: string\n isRight?: boolean\n onChange: (value: string) => void\n optionDisabledWhen?: (option: any) => boolean\n options: { text: string; value: string }[]\n}\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n}: Props) {\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}>\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 <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 { 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\ninterface Props {\n field: string\n value: any\n ns?: string\n schema?: any\n modifyContent?: boolean\n required?: boolean\n}\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}: Props) {\n const intl = useIntl()\n const ref = useRef<HTMLElement>()\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 <>\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 </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface DownloadFieldProps {\n value: {\n data: {\n filename: string\n content_type: string\n }\n field: string\n }\n}\nexport const DownloadField = ({ value }: DownloadFieldProps) => {\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 { useEffect, useState } from 'react'\nimport { DownloadField } from './downloadField'\nimport { useIntl } from 'react-intl'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { buildQs } from '../../lib/search'\nimport { useTraversal } from '../../contexts'\nimport { useConfig } from '../../hooks/useConfig'\nimport {\n GuillotinaSchemaProperty,\n GuillotinaVocabularyItem,\n} from '../../types/guillotina'\n\nconst plain = ['string', 'number', 'boolean']\n\ninterface RenderFieldProps {\n value: any\n Widget?: React.ComponentType<{ value: any; schema: GuillotinaSchemaProperty }>\n schema?: GuillotinaSchemaProperty\n}\n\nexport function RenderField({ value, Widget, schema }: RenderFieldProps) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} schema={schema} />\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\n field={get(schema, `properties.${key}.title`, key)}\n schema={get(schema, `properties.${key}`, {})}\n value={value[key]}\n key={key}\n />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\ninterface FieldValueProps {\n field: string\n value: unknown\n schema: GuillotinaSchemaProperty\n}\nconst FieldValue = ({ field, value, schema }: FieldValueProps) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderFieldComponent val={value} schema={schema} field={field} />\n </div>\n </div>\n)\n\nconst DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\nconst getDefaultValueEditableField = (intl) => {\n return intl.formatMessage({\n id: 'default_value_editable_field',\n defaultMessage: 'Click to edit',\n })\n}\n\ninterface SearchRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const SearchRenderField = ({\n schema,\n value,\n modifyContent,\n}: SearchRenderFieldProps) => {\n const intl = useIntl()\n const [valuesLabels, setValuesLabels] = useState([])\n const [isLoadingData, setIsLoadingData] = useState(false)\n const traversal = useTraversal()\n const { SearchEngine } = useConfig()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n useEffect(() => {\n const fetchData = async (valuesToSearch) => {\n setIsLoadingData(true)\n let searchTermQs = ''\n\n const searchTermParsed = ['__or', `id=${valuesToSearch.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n\n if (searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([searchTermParsed, ...qsParsed])\n }\n const data = await traversal.client.search(\n traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n\n const newValuesLabel = data.items.map((item) => {\n return get(item, schema?.labelProperty ?? 'title', item.id)\n })\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n\n let valuesToSearch = value\n if (typeof valuesToSearch === 'string') {\n valuesToSearch = [valuesToSearch]\n }\n\n if (valuesToSearch !== undefined && valuesToSearch.length > 0) {\n fetchData(valuesToSearch)\n } else {\n setValuesLabels([])\n }\n }, [value])\n\n const getRenderValue = () => {\n if (value === undefined) {\n if (modifyContent) {\n return DEFAULT_VALUE_EDITABLE_FIELD\n }\n return DEFAULT_VALUE_NO_EDITABLE_FIELD\n }\n if (isLoadingData) {\n return 'Loading...'\n }\n\n return valuesLabels\n }\n\n return <RenderField value={getRenderValue()} />\n}\n\ninterface VocabularyRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const VocabularyRenderField = ({\n schema,\n value,\n modifyContent,\n}: VocabularyRenderFieldProps) => {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n const vocabularyName = schema?.items?.vocabularyName || schema?.vocabularyName\n const vocabulary = useVocabulary(vocabularyName)\n\n const getRenderProps = () => {\n const renderProps = {\n value:\n value ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n\n if (schema?.vocabularyName) {\n const vocabularyValue = get<GuillotinaVocabularyItem[]>(\n vocabulary,\n 'data.items',\n []\n ).find((item) => item.token === value)\n renderProps['value'] = vocabularyValue?.title ?? ''\n } else {\n renderProps['value'] = (renderProps['value'] ?? []).map((value) => {\n return (\n get<GuillotinaVocabularyItem[]>(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n })\n }\n\n return renderProps\n }\n return <RenderField {...getRenderProps()} />\n}\n\ninterface RenderFieldComponentProps {\n schema: GuillotinaSchemaProperty\n field: string\n val: any\n modifyContent?: boolean\n}\nexport function RenderFieldComponent({\n schema,\n field,\n val,\n modifyContent,\n}: RenderFieldComponentProps) {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\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 schema: schema,\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 renderProps['Widget'] = VocabularyRenderField\n } else if (\n schema?.widget === 'search' ||\n schema?.widget === 'search_list'\n ) {\n renderProps['Widget'] = SearchRenderField\n renderProps['value'] = val\n }\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import { 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'\nimport { SearchInputList } from '../input/search_input_list'\nimport { SearchInput } from '../input/search_input'\nimport { useTraversal } from '../../contexts'\nimport { Ref, forwardRef } from 'react'\nimport { GuillotinaItemsProperty } from '../../types/guillotina'\nimport { IndexSignature } from '../../types/global'\n\ninterface Props {\n schema: GuillotinaItemsProperty\n val: any\n setValue: (value: any) => void\n dataTest?: string\n className?: string\n placeholder?: string\n id?: string\n required?: boolean\n}\n\nexport const EditComponent = forwardRef(\n (\n {\n schema,\n val,\n setValue,\n dataTest,\n className,\n placeholder,\n id,\n required,\n }: Props,\n ref\n ) => {\n const traversal = useTraversal()\n\n if (schema?.widget === 'search_list') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInputList\n value={val || []}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else if (schema?.widget === 'search') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInput\n value={val}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else 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 as Ref<HTMLTextAreaElement>}\n dataTest={dataTest}\n placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n checked={Boolean(val)}\n className={className}\n onChange={(ev) => setValue(ev)}\n dataTest={dataTest}\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 onChange={setValue}\n multiple\n placeholder={placeholder}\n id={id}\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 placeholder={placeholder}\n id={id}\n />\n )\n }\n }\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref as Ref<HTMLInputElement>}\n dataTest={dataTest}\n />\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 />\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 placeholder={placeholder}\n id={id}\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 placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'object' && schema.widget !== 'file') {\n const value = val as IndexSignature\n return (\n <>\n {schema.title && <h4 className=\"subtitle mt-2\">{schema.title}</h4>}\n {Object.keys(get(schema, 'properties', {})).map((key) => {\n const subSchema = get(schema, 'properties', {})[key]\n const requiredFields: string[] = get(schema, 'required', [])\n return (\n <EditComponent\n key={`${id}[${key}]`}\n id={`${id}[${key}]`}\n schema={subSchema}\n val={value && key in value ? value[key] : ''}\n placeholder={subSchema?.title ?? ''}\n required={requiredFields.includes(key)}\n setValue={(ev) => {\n setValue({ ...value, [key]: ev })\n }}\n dataTest={`${key}TestInput`}\n />\n )\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 case 'time':\n return 'time'\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 as Ref<HTMLInputElement>}\n type={getInputType()}\n required={required}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n file: GuillotinaFile\n }\n}\n\nexport function IAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </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 { 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 '../modal'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport { LightFile } from '../../types/global'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n files: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState<LightFile | undefined>(undefined)\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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </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 { 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 '../modal'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n image: GuillotinaFile\n }\n}\nexport function IImageAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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} style={{ width: '150px' }}>\n {intl.formatMessage(genericMessages.image)}\n </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 { useState } from 'react'\n\nimport { Button } from '../input/button'\nimport { Confirm } from '../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'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiImageAttachment({ properties, values }: Props) {\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.SizeImages || _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={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\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={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['images']).map((key) => (\n <tr key={`multiimageattachment_${key}`}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </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 '../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 { useEffect, useState } from 'react'\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n DroppableProvided,\n DroppableStateSnapshot,\n} 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'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface StrictModeDroppableProps {\n children(\n provided: DroppableProvided,\n snapshot: DroppableStateSnapshot\n ): React.ReactElement<HTMLElement>\n droppableId: string\n}\nconst StrictModeDroppable = ({\n children,\n droppableId,\n}: StrictModeDroppableProps) => {\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 droppableId={droppableId}>{children}</Droppable>\n}\n\nconst reorder = (list, startIndex, endIndex) => {\n const result: string[] = 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})\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: GuillotinaFile[]\n }\n}\nexport function IMultiImageOrderedAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const [sortedList, setSortedList] = useState<string[]>(\n Object.keys(values['images'])\n )\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.SizeImages || _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 <>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\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 </>\n )\n}\n","import {\n GuillotinaSharing,\n GuillotinaSharingInheritItem,\n GuillotinaSharingMap,\n} from '../types/guillotina'\n\nconst base: GuillotinaSharing = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: [],\n}\n\nexport class Sharing {\n local: GuillotinaSharingMap\n inherit: GuillotinaSharingInheritItem[]\n\n constructor(element) {\n Object.assign(this, element || base)\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'\nimport { SearchItem } from '../types/guillotina'\n\nexport * from './sharing'\n\nexport class ItemModel {\n item: SearchItem\n url: string\n constructor(item, url = '') {\n this.item = item\n this.url = url\n }\n\n get path() {\n // Compat\n const item = this.item['@id']\n ? this.item['@id']\n : 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 const 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 { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { ItemModel } from '../../models'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { useEffect, useState } from 'react'\n\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\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] = useState(undefined)\n const [workflowAction, setWorkflowAction] = useState(null)\n const model = new ItemModel(Ctx.context)\n const vocabulary = useVocabulary('workflow_states')\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 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 const getStateTitle = () => {\n if (vocabulary.data?.items?.length > 0) {\n const vocabularyValue = vocabulary.data.items.find(\n (item) => item.token === currentState\n )\n if (vocabularyValue) {\n const translatedValue = get(\n vocabularyValue,\n `title.translated_title.${intl.locale}`,\n null\n )\n if (translatedValue !== null) {\n return translatedValue\n }\n const titleValue = get(\n vocabularyValue,\n `title.title.${intl.locale}`,\n null\n )\n if (titleValue !== null) {\n return titleValue\n }\n }\n }\n return currentState\n }\n\n if (definition === undefined) return null\n\n return (\n <>\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, {\n state: getStateTitle(),\n })}\n </div>\n </div>\n {modifyContent && definition.transitions.length > 0 && (\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 {get(\n transition,\n `metadata.translated_title.${intl.locale}`,\n transition.title\n )}\n </button>\n )\n })}\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../../lib/helpers'\nimport { Fragment } from 'react'\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 <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 </Fragment>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\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() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const [action, setAction] = useState(false)\n const [state, setState] = useState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n useEffect(() => {\n const getAddons = async () => {\n if (!state.loading && !state.data && !state.error) {\n try {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n setState({ ...state, loading: false, data: prepareData(data) })\n } catch (err) {\n setState({ ...state, loading: false, error: err })\n }\n }\n }\n getAddons()\n }, [action])\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 return (\n <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.data?.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.data?.available ?? []).map((addon) => (\n <tr key={addon.id}>\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.data?.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.data?.installed ?? []).map((addon) => (\n <tr key={addon.id}>\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 </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 { 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'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaBehaviors } from '../../types/guillotina'\n\nexport function PanelBehaviors() {\n const intl = useIntl()\n const {\n Ctx,\n get,\n result,\n loading,\n isError,\n } = useCrudContext<GuillotinaBehaviors>()\n const ops = useCrudContext()\n\n const [state, setState] = 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 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 <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 </Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import { 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'\nimport { SearchItem } from '../types/guillotina'\n\nconst ItemsActionsCtx = createContext<{\n selected?: {\n all: boolean\n [key: string]: boolean\n }\n onSelectOneItem?: (item: SearchItem) => void\n onSelectAllItems?: (chedked: boolean) => void\n onAction?: (action: string) => void\n}>({\n selected: {\n all: false,\n },\n})\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\ninterface PropsItemsActionsProvider {\n items: SearchItem[]\n children: React.ReactNode\n}\nexport function ItemsActionsProvider({\n items,\n children,\n}: PropsItemsActionsProvider) {\n const intl = useIntl()\n const actions = getActionsObject(intl, true)\n const traversal = useTraversal()\n const [selected, setSelected] = useState({\n all: false,\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 }: { dataTest?: string }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n onChange={onSelectAllItems}\n checked={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\ninterface PropsItemCheckbox {\n item: SearchItem\n dataTest?: string\n}\nexport function ItemCheckbox({ item, dataTest }: PropsItemCheckbox) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n onChange={() => onSelectOneItem(item)}\n checked={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 isRight={false}\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 { useIntl } from 'react-intl'\n\ninterface Props {\n current: number\n total: number\n doPaginate: (page: number) => void\n pager: number\n}\nexport function Pagination({ current, total, doPaginate, pager }: Props) {\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'\nimport { IColumn } from '../reducers/guillotina'\nimport { SearchItem } from '../types/guillotina'\n\ninterface ItemProps {\n item: { id: string; path: string }\n icon?: string\n}\nexport function Item({ item, icon }: ItemProps) {\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\ninterface RItemProps {\n item: SearchItem\n search: string\n columns: IColumn[]\n}\nexport function RItem({ item, search, columns }: RItemProps) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item.id} data-test={`itemTest-${item.id}`}>\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\ninterface ItemTitleProps {\n title: string\n actions?: React.ReactNode\n}\nexport function ItemTitle({ title, actions }: ItemTitleProps) {\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 { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n}\nexport function SearchLabels({ 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 { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n options?: { value: string; text: string }[]\n}\nexport function SearchOptionsLabels({ 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 { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\nimport { useVocabulary } from '../hooks/useVocabulary'\n\ninterface Props {\n query?: string\n vocabularyName?: string\n}\n\nexport function SearchVocabularyLabels({ query = 'q', vocabularyName }: Props) {\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const vocabulary = useVocabulary(vocabularyName)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value: string = defaultRenderValue\n\n if ((vocabulary?.data?.items ?? []).length > 0) {\n const vocabularyValue = 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 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'\n\nimport { SearchItem } from '../../types/guillotina'\n\ninterface InitialState {\n page: number\n items: SearchItem[]\n loading: boolean\n total: number\n}\nconst initialState: 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>(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 const search = location.get('q')\n const type = location.get('type')\n const 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 const 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 setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type'],\n {\n key: 'id',\n direction: 'des',\n }\n )\n sortParsed = parser(\n `_sort_${defaultSortValue.direction}=${defaultSortValue.key}`\n )\n }\n const qsParsed = Ctx.client[fnName]({\n path: Ctx.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n let qs = ''\n if (search || type || resultQueryParams.length > 0) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ...(sortParsed ?? []),\n ...resultQueryParams,\n ])\n } else {\n qs = buildQs([...qsParsed, ...(sortParsed ?? [])])\n }\n\n const { signal } = controller\n const data = await Ctx.client.search(Ctx.path, qs, false, false, {\n signal,\n })\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 val={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 vocabularyName={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 { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { GuillotinaCommonObject, GuillotinaSchema } from '../types/guillotina'\n\ninterface Props {\n context: GuillotinaCommonObject\n schema: GuillotinaSchema\n}\nexport function BehaviorsView({ context, schema }: Props) {\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 <>\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 </>\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 { 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 { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\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\ninterface State {\n data: GuillotinaSchema\n loading: boolean\n error: string\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<State>({\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) => ({\n key,\n value: schema.data.properties[key] as GuillotinaSchemaProperty,\n }))\n\n useEffect(() => {\n async function getSchema() {\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 getSchema()\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 style={{ width: '150px' }} 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 style={{ width: '150px' }}>{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 style={{ width: '150px' }} 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 style={{ width: '150px' }}>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={(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 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\ninterface State {\n principal: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}: Props) {\n const Ctx = useTraversal()\n const intl = useIntl()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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\ninterface State {\n principal: string\n roles: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinrole({\n principals,\n roles,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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\ninterface State {\n role: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n roles: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\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: string) => 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: string) => 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 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'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaSharing } from '../../types/guillotina'\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<GuillotinaSharing>()\n const ctx = useTraversal()\n\n const [reset, setReset] = useState(1)\n\n 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 <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 </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 <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 </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 <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 </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\ninterface State {\n permissions: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n principals: { text: string; value: string }[]\n current: string\n}\nconst initial: State = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n}\n\ninterface AddPermissionProps {\n refresh: (state: number) => void\n reset: number\n}\nexport function AddPermission({ refresh, reset }: AddPermissionProps) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State>(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 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 const 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: string) => 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 { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\nimport { useRef, useState } from 'react'\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\ninterface Props {\n items: string[]\n available?: string[]\n title: string\n noData: string\n onChange: (items: string[]) => void\n loading?: boolean\n}\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}: Props) {\n const selectRef = useRef<HTMLSelectElement>()\n\n const [result, setResult] = useState(items)\n const availableData = 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 <>\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\n id={item}\n name={item}\n onRemove={() => remove(item)}\n key={item}\n />\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={availableData}\n ref={selectRef}\n onChange={(value) => {\n addItem(value)\n if (selectRef.current) {\n selectRef.current.value = ''\n }\n }}\n />\n </li>\n )}\n </ul>\n </>\n )\n}\n","import { useEffect, useState } 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\ninterface State {\n types?: string[]\n isActive?: boolean\n}\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(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 anyNameFunction()\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\ninterface Props {\n AddButton?: React.FC\n}\nexport function ContextToolbar({ AddButton }: Props) {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(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] = 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 <>\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 ? <AddButton /> : <CreateButton />}\n </div>\n )}\n </>\n )\n}\n","import { 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, { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\nimport { IndexSignature } from '../types/global'\n\nfunction FallbackTab({ title }: { title: string }) {\n return <div>Tab &apos;{title}&apos; not found</div>\n}\n\ninterface Props {\n tabs: IndexSignature\n currentTab?: string\n rightToolbar?: React.ReactNode\n fallback?: React.ComponentType\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n}: Props) {\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} />\n </div>\n </div>\n )\n}\n","import { 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 { 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 { 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() {\n const intl = useIntl()\n const context = useTraversal()\n const { databases } = context.state.context\n return (\n <>\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 </>\n )\n}\n\nexport function DatabaseCtx() {\n const context = useTraversal()\n const { containers } = context.state.context\n const { path } = context.state\n return (\n <>\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 </>\n )\n}\n\nexport function CreateContainer() {\n const intl = useIntl()\n const [isActive, setActive] = useState(false)\n\n return (\n <>\n <ModalAddContainer isActive={isActive} setActive={setActive} />\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 </>\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\ninterface ModalAddContainerProps {\n isActive: boolean\n setActive: (value: boolean) => void\n}\nfunction ModalAddContainer({ isActive, setActive }: ModalAddContainerProps) {\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 { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface Props {\n title: string\n}\nexport function PanelNotImplemented(props: 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 { 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() {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar />}\n />\n )\n}\n","import { FormBuilder } from '../components/input/form_builder'\nimport { useIntl } from 'react-intl'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n children: React.ReactNode\n onSubmit: (data: IndexSignature) => void\n actionName?: string\n formData?: IndexSignature\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\nexport const UserForm = ({\n children,\n actionName,\n onSubmit,\n formData,\n exclude,\n remotes,\n submitButton,\n}: Props) => {\n const intl = useIntl()\n\n const schema = {\n $schema: '',\n title: '',\n type: 'object',\n definitions: {},\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\n return (\n <FormBuilder\n schema={schema}\n actionName={actionName}\n onSubmit={onSubmit}\n formData={formData}\n exclude={exclude}\n remotes={remotes}\n submitButton={submitButton}\n >\n {children}\n </FormBuilder>\n )\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\nimport { useState } from 'react'\nimport { IndexSignature } from '../types/global'\n\nexport const useRemoteField = (\n initial: IndexSignature<string[]>\n): [IndexSignature<string[]>, (name: string) => (value: string[]) => void] => {\n const [remotes, setRemote] = useState(initial)\n\n const updateRemote = (name: string) => (value: string[]) => {\n setRemote({\n ...remotes,\n [name]: value,\n })\n }\n\n return [remotes, updateRemote]\n}\n","import { 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'\nimport { useEffect, useRef, useState } from 'react'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = 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 useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\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 </>\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\ninterface State {\n roles: string[]\n groups: string[]\n}\nexport function UserCtx() {\n const intl = useIntl()\n const { Ctx, patch, loading } = useCrudContext()\n\n const [state, setState] = useState<State>({ roles: [], groups: [] })\n\n const fields = {\n user_groups: [],\n user_roles: Ctx.context.user_roles,\n }\n\n const [remotes, updateRemote] = useRemoteField(fields)\n\n useEffect(() => {\n async function getRolesAndGroups() {\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 const 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 getRolesAndGroups()\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 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 { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: Array<ItemModel>\n}\nexport function CopyItems(props: 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 <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 </Fragment>\n ))}\n &nbsp;\n </PathTree>\n )\n}\n","import { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function CopyItem(props: 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 <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 </Fragment>\n </PathTree>\n )\n}\n","import { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: ItemModel[]\n}\nexport function MoveItems(props: 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 { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function MoveItem(props: 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.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function RemoveItem(props: 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.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 { 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'\nimport { useState } from 'react'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword() {\n const [state, setState] = useState(initial)\n const [perror, setPerror] = useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit() {\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 const 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 const 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 onSubmit={doSubmit} title=\"Change Password\">\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 { 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\ninterface Props {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: Props) {\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","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\ninterface Props {\n properties: { [key: string]: any }\n values: { [key: string]: any }\n}\n\nexport function IDublinCore({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </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 { 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, useRef } 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 = 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 useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\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 </>\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\nconst sortParsed = parser(`_sort_asc=id`)\nconst 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 function getRoles() {\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 getRoles()\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 (newUserId) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUserId] = 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: newUserId }\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 id={`roles_${urole}`}\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 id={`user_${user}`}\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import { Component } from 'react'\nimport { IntlShape, injectIntl } from 'react-intl'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nclass ErrorBoundaryComponent extends Component<\n { intl: IntlShape; children: React.ReactNode },\n { hasError: boolean; errorMsg: string; errorStack: string }\n> {\n state = {\n hasError: false,\n errorMsg: '',\n errorStack: '',\n }\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 const ErrorBoundary: React.ComponentType<{\n intl: IntlShape\n children: React.ReactNode\n}> = injectIntl(ErrorBoundaryComponent)\n","import { 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 { 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 { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n const segments = ctx.path.replace(/\\/$/, '').split('/')\n const 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 (e.ctrlKey || e.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 const 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 { 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'\nimport { GuillotinaSchema } from '../types/guillotina'\n\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.FC | React.ComponentType\n }\n actions: {\n [key: string]: React.FC\n }\n forms: {\n [key: string]: React.FC\n }\n behaviors: {\n [key: string]: React.FC\n }\n itemsColumn: {\n [key: string]: () => {\n label: string\n key: string\n isSortable?: boolean\n child: React.ReactNode\n }[]\n }\n schemas: {\n [key: string]: GuillotinaSchema\n }\n properties: {\n [key: string]: React.FC\n }\n components: {\n [key: string]: React.FC\n }\n searchEngineQueryParamsFunction: {\n [key: string]: string\n }\n fieldsToFilter: {\n [key: string]: string[]\n }\n defaultSortValue: {\n [key: string]: {\n direction: 'asc' | 'des'\n field: string\n }\n }\n}\nconst registry: IRegistry = {\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 defaultSortValue: {},\n}\n\nconst get = (key, param, fallback = undefined) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback = undefined) => {\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: string, fallback: React.FC = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type: string, fallback: React.FC = undefined) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type: string, fallback: React.FC) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type: string) => {\n return registry.properties[type] || {}\n}\n\nconst getSchemas = (type: string) => {\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: string, fallback) => {\n return registry.fieldsToFilter[type] || fallback\n}\n\nconst getDefaultSortValue = (type: string, fallback) => {\n return registry.defaultSortValue[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<unknown>()\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 getDefaultSortValue,\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","import { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\nexport interface GuillotinaGlobalState {\n path: string\n loading: boolean\n context: GuillotinaCommonObject\n flash: {\n message: string\n type: string\n }\n action: {\n action: string\n params: IndexSignature\n }\n permissions: IndexSignature\n errorStatus: number\n registry: IndexSignature\n refresh: number\n}\nexport const initialState: GuillotinaGlobalState = {\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\nexport interface IColumn {\n key: string\n label: string\n isSortable: string\n child: (\n model: ItemModel,\n link: () => void,\n search: string\n ) => React.ReactElement\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 { IRegistry, 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'\nimport { Auth } from '../lib/auth'\nimport { IndexSignature } from '../types/global'\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\ninterface GuillotinaProps {\n auth: Auth\n locale: string\n url: string\n config: IndexSignature\n registry: IRegistry\n}\nexport function Guillotina({ auth, locale, ...props }: GuillotinaProps) {\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 const initContext = async () => {\n const 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 const 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 initContext()\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 { useState } from 'react'\nimport { Auth } from '../lib/auth'\nimport { Icon } from './ui/icon'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n onLogout: () => void\n auth: Auth\n}\nexport function Layout({ children, onLogout, auth }: Props) {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const doLogout = () => {\n auth.logout()\n onLogout()\n }\n\n return (\n <>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\" style={{ alignItems: 'center' }}>\n <a className=\"navbar-item\" href=\"/\">\n <img src=\"/logo.svg\" alt=\"Guillotina logo\" height=\"80\" />\n </a>\n <div\n id=\"burger\"\n role=\"button\"\n className={classnames([\n 'navbar-burger',\n 'burger',\n isMenuOpen && 'is-active',\n ])}\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </div>\n </div>\n <div\n id=\"navbarmenu\"\n className={classnames(['navbar-menu', isMenuOpen && 'is-active'])}\n >\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\" />\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 </>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\nimport { Auth } from '../lib/auth'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\ninterface State {\n username: string\n password: string\n loading: boolean\n errors: string\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\n\ninterface Props {\n currentSchema: string\n setCurrentSchema: (schema: string) => void\n schemas: string[]\n auth: Auth\n onLogin?: () => void\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}: Props) => {\n const [state, setState] = useSetState<State>(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 { 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'\nimport { IndexSignature } from '../types/global'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\ninterface Props {\n onSubmit: (data: { [key: string]: any }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\ninterface State {\n data: any\n loading: boolean\n error: any\n formFields: string[]\n}\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState<IndexSignature>({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState<State>({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n const getSchema = 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 getSchema()\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'\nimport { IndexSignature } from '../types/global'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n url: string\n base_url: string\n errors: string\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)\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: IndexSignature = 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(\n 'auth_expires',\n new Date(data.exp).getTime().toString()\n )\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 const 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.logout()\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 res.token\n }\n\n willExpire(expiration) {\n const 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 const 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 // eslint-disable-next-line no-extra-semi\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","Traversal","flash","props","dispatch","state","client","registry","url","auth","refresh","transparent","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","permissions","filterTabs","tabs","tabsPermissions","result","Object","keys","forEach","item","perm","path","slice","context","getContainerFromPath","TraversalContext","TraversalProvider","children","_jsx","Provider","value","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","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","css","concat","split","Modal","isActive","setActive","usePortal","Portal","_jsxs","Confirm","onCancel","onConfirm","useIntl","style","marginTop","PathTree","defaultPath","onSubmit","e","preventDefault","target","display","defaultValue","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","assign","Function","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","body","newState","console","error","del","post","get","useCrudContext","AddItem","doSubmit","form","formData","getForm","Form","onError","err","log","actionName","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","rest","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","Checkbox","classNameInput","indeterminate","checked","placeholder","onChange","inputRef","useEffect","updateState","ev","htmlFor","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","onKeyUp","validatorFn","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","displayName","Icon","align","addClass","EmailInput","onReset","handleSubmit","event","PasswordInput","formComponents","password","boolean","email","FormBuilder","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","children_","Children","child","isValidElement","cloneElement","changes","Select","options","size","classWrap","appendDefault","selectValue","selectedOptions","cssWrap","index","toString","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","obj","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","useVocabulary","vocabularyName","traversal","vocabulary","setVocabulary","getPath","getVocabulary","dataJson","SelectVocabulary","val","getOptions","vocData","token","getProps","currentValue","setURLParams","p","history","pushState","clean","URLSearchParams","_key","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","pathname","events","addEventListener","removeEventListener","navigate","param","patched","args","Event","arguments","dispatchEvent","location","Link","aRef","model","aStyle","textDecoration","color","stopPropagation","actAsLink","href","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","Loading","name","onRemove","Delete","Table","headers","parsedClassName","idx","Notification","isColor","RestClient","container","request","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","put","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","Error","orParser","parsed","buildQs","lastKey","qsSplit","part","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","isSortable","m","React","Fragment","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","req","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","fileToUpload","Textarea","rows","defaultEvents","on","off","useClickAway","onClickAway","savedCallback","handler","el","contains","eventName","document","debounce","wait","timeout","later","clearTimeout","page","SearchInput","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","typeNameQuery","labelProperty","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","valueLabel","setValueLabel","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","inicializeLabels","searchTermQs","searchTermParsed","getSearch","fnName","qsParsed","typeNameParsed","newValuesLabel","sortParsed","newItems","renderTextItemOptionFn","currentTarget","relatedTarget","HTMLElement","blur","onMouseDown","SearchInputList","valuesLabel","setValuesLabels","isLoadingData","setIsLoadingData","tag","InputList","inputValue","setInputValue","addTags","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","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_NO_EDITABLE_FIELD","getDefaultValueEditableField","SearchRenderField","valuesLabels","DEFAULT_VALUE_EDITABLE_FIELD","fetchData","valuesToSearch","getRenderValue","VocabularyRenderField","getRenderProps","renderProps","vocabularyValue","find","toLocaleString","queryPath","subSchema","requiredFields","getInputType","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","colSpan","_sizesImages","pact","prototype","callback","_this","onRejected","IImageAttachment","sizesImages","SizeImages","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","bind","observer","s","v","onFulfilled","thenable","IMultiImageAttachment","StrictModeDroppable","droppableId","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","o","reorder","list","startIndex","endIndex","splice","removed","then","_cycle","array","_settle","messages","failed_to_sort_images","images_sorted","IMultiImageOrderedAttachment","onDragEnd","destination","source","resultSorted","sortedList","setSortedList","uuidv4","DragDropContext","provided","innerRef","droppableProps","Draggable","draggableId","providedChild","borderTop","draggableProps","dragHandleProps","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","icons","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","getStateTitle","translatedValue","locale","titleValue","transitions","transition","PanelActions","ACTIONS_OBJECT","some","onAction","actionKey","available_addons","no_available_addons_container","installed_addons","PanelAddons","setAction","pathPrefix","prepareData","addon","installed","addons","arrayToObject","PanelBehaviors","ops","enableBehavior","disableBehavior","dynamic","ItemsActionsCtx","selected","ItemsActionsProvider","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","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","PanelItems","setLocation","filterSchema","getSchemas","filters","sort","sortDirection","searchParsed","fieldsToFilter","getFieldsToFilter","typeParsed","onSort","sort_direction","resultQueryParams","resultDynamicLocation","itemParam","attribute_key","filterParsed","controller","AbortController","defaultSortValue","getDefaultSortValue","direction","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","default","properties_default","ignoreFields","ignoreField","properties_ignore_fields","getSchema","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","AddPermission","defaultOptions","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","availableData","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","ModalAddContainer","add_container","container_created","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","UserForm","$schema","definitions","username","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","user_groups","user_roles","getRolesAndGroups","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","newUserId","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundaryComponent","errorMsg","errorStack","componentDidCatch","errorInfo","componentStack","render","Component","ErrorBoundary","injectIntl","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","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","loadLocaleData","langCA","langES","langEN","Guillotina","config","searchPath","useReducer","initContext","pr","contextData","Main","Action","IntlProvider","defaultLocale","Layout","onLogout","isMenuOpen","setIsMenuOpen","doLogout","logout","alignItems","src","alt","height","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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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EClED,SAAS0jC,cAAT,CAAwBjT,MAAxB;EACE,UAAQA,MAAR;EACE,SAAK,IAAL;EACE,aAAOkT,MAAP;;EACF,SAAK,IAAL;EACE,aAAOC,MAAP;;EACF;EACE,aAAOC,MAAP;EANJ;EAQD;;WASeC;QAAa1jC,YAAAA;QAAMqwB,cAAAA;QAAW3wB;;EAC5C,MAAMwtB,QAAQ,GAAGoW,cAAc,CAACjT,MAAD,CAA/B;EACA,MAAMtwB,GAAG,GAAGL,KAAK,CAACK,GAAN,IAAa,uBAAzB;EACA,MAAM4jC,MAAM,GAAGjkC,KAAK,CAACikC,MAAN,IAAgB,EAA/B;EACA,MAAM9jC,MAAM,GAAG8C,mBAAmB,EAAlC;;qBAEwByM,SAAS,CAACu0B,MAAD;QAAzBv1B,yBAAAA;;EACR,MAAMtO,QAAQ,GAAGojC,WAAW,CAACxjC,KAAK,CAACI,QAAN,IAAkB,EAAnB,CAA5B;;uBAEmBuZ,WAAW;QAAvBiB;;EAGP,MAAMspB,UAAU,GAAGtpB,QAAQ,CAAC9M,GAAT,CAAa,MAAb,KAAwB,GAA3C;;EACA,MAAIo2B,UAAU,IAAIA,UAAU,KAAK,EAAjC,EAAqC;EACnCn4B,IAAAA,cAAY,CAAC3J,IAAb,GAAoB8hC,UAApB;EACD;;sBAEyBC,gBAAU,CAACT,iBAAD,EAAoB33B,cAApB;QAA7B7L;QAAOD;;QAENmC,OAAkBlC,MAAlBkC;QAAM7B,UAAYL,MAAZK;EAEd4Q,EAAAA,eAAS,CAAC;EACRlR,IAAAA,QAAQ,CAAC;EAAEQ,MAAAA,IAAI,EAAE,UAAR;EAAoBC,MAAAA,OAAO,EAAEwjC;EAA7B,KAAD,CAAR;EACD,GAFQ,EAEN,CAACA,UAAD,CAFM,CAAT;EAIA/yB,EAAAA,eAAS,CAAC;EACR,QAAMizB,WAAW,YAAXA,WAAW;EAAA;iCACIjkC,MAAM,CAACye,UAAP,CAAkBxc,IAAlB,kBAAbxB;EACN,cAAIA,IAAI,CAACwM,MAAL,KAAgB,GAApB,EAAyB;EACvBnN,YAAAA,QAAQ,CAAC;EAAEQ,cAAAA,IAAI,EAAE,WAAR;EAAqBC,cAAAA,OAAO,EAAE;EAA9B,aAAD,CAAR;EACA;EACD,WAHD,MAGO,IAAIE,IAAI,CAACwM,MAAL,KAAgB,GAApB,EAAyB;EAC9BnN,YAAAA,QAAQ,CAAC;EAAEQ,cAAAA,IAAI,EAAE,WAAR;EAAqBC,cAAAA,OAAO,EAAE;EAA9B,aAAD,CAAR;EACA;EACD;;mCACqBE,IAAI,CAACyM,IAAL,mBAAhB/K;qCACWnC,MAAM,CAACmgB,MAAP,CAAcle,IAAd,EAAoBsM,WAApB,kBAAX21B;uCACoBA,EAAE,CAACh3B,IAAH,mBAApB3L;EACNzB,gBAAAA,QAAQ,CAAC;EAAEQ,kBAAAA,IAAI,EAAE,aAAR;EAAuBC,kBAAAA,OAAO,EAAE;EAAE4B,oBAAAA,OAAO,EAAPA,OAAF;EAAWZ,oBAAAA,WAAW,EAAXA;EAAX;EAAhC,iBAAD,CAAR;;;;;EACD,OAbgB;EAAA;EAAA;EAAA,KAAjB;;EAcA0iC,IAAAA,WAAW;EACZ,GAhBQ,EAgBN,CAAChiC,IAAD,EAAO7B,OAAP,EAAgBJ,MAAhB,CAhBM,CAAT;EAkBA,MAAMohC,aAAa,GAAGnhC,QAAQ,CAAC0N,GAAT,CAAa,OAAb,EAAsB,eAAtB,CAAtB;EACA,MAAM2zB,UAAU,GAAGrhC,QAAQ,CAAC0N,GAAT,CAAa,OAAb,EAAsB,YAAtB,CAAnB;EACA,MAAM4zB,QAAQ,GAAGthC,QAAQ,CAAC0N,GAAT,CAAa,OAAb,EAAsB,UAAtB,CAAjB;EACA,MAAM6zB,IAAI,GAAGvhC,QAAQ,CAAC0N,GAAT,CAAa,YAAb,EAA2B,MAA3B,CAAb;EAEA,MAAMw2B,WAAW,GAAG;EAClBjkC,IAAAA,GAAG,EAAHA,GADkB;EAElBF,IAAAA,MAAM,EAANA,MAFkB;EAGlBG,IAAAA,IAAI,EAAJA,IAHkB;EAIlBJ,IAAAA,KAAK,EAALA,KAJkB;EAKlBD,IAAAA,QAAQ,EAARA,QALkB;EAMlBG,IAAAA,QAAQ,EAARA,QANkB;EAOlBL,IAAAA,KAAK,EAAEkkC,MAAM,CAAClkC;EAPI,GAApB;QAUQsB,SAAqCnB,MAArCmB;QAAQoiC,cAA6BvjC,MAA7BujC;QAAa/hC,cAAgBxB,MAAhBwB;EAC7B,MAAM6iC,IAAI,GAAGnkC,QAAQ,CAAC+iC,YAAT,CAAsBjjC,KAAK,CAACoC,OAA5B,EAAqCF,IAArC,CAAb;EACA,MAAMoiC,MAAM,GAAGnjC,MAAM,CAACA,MAAP,GAAgBjB,QAAQ,CAACkjC,SAAT,CAAmBjiC,MAAM,CAACA,MAA1B,CAAhB,GAAoD,IAAnE;EAEA,SACEsB,eAAC8hC;EAAa9T,IAAAA,MAAM,EAAEA;EAAQ+T,IAAAA,aAAa,EAAC;EAAKlX,IAAAA,QAAQ,EAAEA;gBACzDziB,gBAACw2B;mBACE,CAACkC,WAAD,IACC9gC,eAACF,gCAAsB6hC;oBACpB5iC,WAAW,IACVqJ,gBAAC6U,yBAAK,CAACC;uBACJxe,MAAM,CAACA,MAAP,IAAiBsB,eAAC6hC,qBAAWnjC,MAAM,CAACC,UACrCqB;EAAKwH,YAAAA,SAAS,EAAC;wBACbxH;EAAKwH,cAAAA,SAAS,EAAC;0BACbxH;EAAKwH,gBAAAA,SAAS,EAAC;4BACbxH,eAACg/B;;;gBAIPh/B,eAACy4B,YACAmJ,IAAI,IACH5hC,eAAC4+B;wBACCx2B;EAAKZ,cAAAA,SAAS,EAAC;2BACZjK,KAAK,CAACkD,OAAN,IAAiBT,eAACmZ,cAClB,CAAC5b,KAAK,CAACkD,OAAP,IAAkBT,eAAC4hC;EAAKrkC,gBAAAA,KAAK,EAAEA;;;;;aAS7CujC,WAAW,KAAK,YAAhB,IAAgC9gC,eAAC8+B,iBACjCgC,WAAW,KAAK,UAAhB,IAA8B9gC,eAAC++B;;MA9BtC;EAkCD;;WC1HeiD;QAASjiC,gBAAAA;QAAUkiC,gBAAAA;QAAUtkC,YAAAA;;oBACP0L,cAAQ,CAAC,KAAD;QAArC64B;QAAYC;;EACnB,MAAMC,QAAQ,GAAG,SAAXA,QAAW;EACfzkC,IAAAA,IAAI,CAAC0kC,MAAL;EACAJ,IAAAA,QAAQ;EACT,GAHD;;EAKA,SACE75B;iBACEpI;kBACEoI;EAAKZ,QAAAA,SAAS,EAAC;EAASjE,QAAAA,IAAI,EAAC;wBAAwB;qBACnD6E;EAAKZ,UAAAA,SAAS,EAAC;EAAeiB,UAAAA,KAAK,EAAE;EAAE65B,YAAAA,UAAU,EAAE;EAAd;uBACnCtiC;EAAGwH,YAAAA,SAAS,EAAC;EAAckR,YAAAA,IAAI,EAAC;wBAC9B1Y;EAAKuiC,cAAAA,GAAG,EAAC;EAAYC,cAAAA,GAAG,EAAC;EAAkBC,cAAAA,MAAM,EAAC;;gBAEpDr6B;EACE1H,YAAAA,EAAE,EAAC;EACH6C,YAAAA,IAAI,EAAC;EACLiE,YAAAA,SAAS,EAAEjD,UAAU,CAAC,CACpB,eADoB,EAEpB,QAFoB,EAGpB29B,UAAU,IAAI,WAHM,CAAD;4BAKV;+BACG;6BACF;EACZz6B,YAAAA,OAAO,EAAE;EAAA,qBAAM06B,aAAa,CAAC,CAACD,UAAF,CAAnB;EAAA;yBAETliC;+BAAkB;kBAClBA;+BAAkB;kBAClBA;+BAAkB;;;cAGtBoI;EACE1H,UAAAA,EAAE,EAAC;EACH8G,UAAAA,SAAS,EAAEjD,UAAU,CAAC,CAAC,aAAD,EAAgB29B,UAAU,IAAI,WAA9B,CAAD;uBAErBliC;EAAKwH,YAAAA,SAAS,EAAC;gBACfxH;EAAKwH,YAAAA,SAAS,EAAC;wBACbxH;EAAKwH,cAAAA,SAAS,EAAC;0BACZ7J,IAAI,CAAC+kC,QAAL,IACC1iC;EAAKwH,gBAAAA,SAAS,EAAC;4BACbY;EAAQZ,kBAAAA,SAAS,EAAC;EAAmBC,kBAAAA,OAAO,EAAE26B;+BAC5CpiC,eAAC4R;EAAKjB,oBAAAA,IAAI,EAAC;wBACX3Q;;;;;;;;;UAShBA;EAASwH,MAAAA,SAAS,EAAC;kBACjBxH;EAAKwH,QAAAA,SAAS,EAAC;oBACbxH;EAAKwH,UAAAA,SAAS,EAAC;sBAAUzH;;;;MAhDjC;EAqDD;;EClED,IAAM4iC,MAAM,GAAG;EACbC,EAAAA,eAAe,EAAE,4CADJ;EAEbC,EAAAA,mBAAmB,EAAE;EAFR,CAAf;EAUA,IAAMz5B,cAAY,GAAG;EACnBwxB,EAAAA,QAAQ,EAAE,EADS;EAEnBvoB,EAAAA,QAAQ,EAAE,EAFS;EAGnB5R,EAAAA,OAAO,EAAEqJ,SAHU;EAInBuD,EAAAA,MAAM,EAAEvD;EAJW,CAArB;MAcag5B,KAAK,GAAG,SAARA,KAAQ;QACnBC,qBAAAA;QACAC,wBAAAA;QACA7C,eAAAA;QACAxiC,YAAAA;QACAslC,eAAAA;;uBAE0B95B,WAAW,CAAQC,cAAR;QAA9B7L;QAAOgM;;EACd,MAAMgF,QAAQ,GAAGrB,YAAM,CAAC,IAAD,CAAvB;EAEAsB,EAAAA,eAAS,CAAC;EACR,QAAID,QAAJ,EAAc;EACZA,MAAAA,QAAQ,CAACzJ,OAAT,CAAiByM,KAAjB;EACD;EACF,GAJQ,EAIN,CAAChD,QAAD,CAJM,CAAT;;EAMA,MAAM20B,OAAO,YAAPA,OAAO,CAAUx0B,EAAV;EAAA;EACXA,MAAAA,EAAE,CAAC3F,cAAH;EACAQ,MAAAA,QAAQ,CAAC;EAAE9I,QAAAA,OAAO,EAAE,IAAX;EAAiB4M,QAAAA,MAAM,EAAEvD;EAAzB,OAAD,CAAR;YACQ8wB,WAAuBr9B,MAAvBq9B;YAAUvoB,WAAa9U,MAAb8U;;EAElB,UAAI0wB,aAAa,KAAK,EAAtB,EAA0B;EACxBplC,QAAAA,IAAI,CAACwlC,UAAL,CAAgBJ,aAAhB;EACD;;+BACiBplC,IAAI,CAACylC,KAAL,CAAWxI,QAAX,EAAqBvoB,QAArB,kBAAZ9H;EAEN,YAAI,CAACA,GAAL,EAAU;EACRhB,UAAAA,QAAQ,CAAC;EAAE8D,YAAAA,MAAM,EAAE1P,IAAI,CAAC0P,MAAf;EAAuB5M,YAAAA,OAAO,EAAE;EAAhC,WAAD,CAAR;EACA;EACD;;cAEGwiC;EACFA,UAAAA,OAAO;;;EAEV,KAlBY;EAAA;EAAA;EAAA,GAAb;;EAoBA,SACEjjC,eAACid,yBAAK,CAACC;gBACL9U;EACEZ,MAAAA,SAAS,EAAC;EACV9I,MAAAA,MAAM,EAAC;EACPmK,MAAAA,QAAQ,EAAEq6B;qBACA;mBAEV96B;EAAKZ,QAAAA,SAAS,EAAC;qBACbxH;EAAOwH,UAAAA,SAAS,EAAC;;cACjBxH;EACElC,UAAAA,IAAI,EAAC;EACL0J,UAAAA,SAAS,EAAC;EACV6G,UAAAA,WAAW,EAAC;EACZC,UAAAA,QAAQ,EAAE,kBAACxF,CAAD;EAAA,mBAAOS,QAAQ,CAAC;EAAEqxB,cAAAA,QAAQ,EAAE9xB,CAAC,CAACE,MAAF,CAAS9I;EAArB,aAAD,CAAf;EAAA;EACVA,UAAAA,KAAK,EAAE3C,KAAK,CAACq9B;EACb3tB,UAAAA,GAAG,EAAEsB;yBACK;;YAGdnG;EAAKZ,QAAAA,SAAS,EAAC;qBACbxH;EAAOwH,UAAAA,SAAS,EAAC;;cACjBxH;EACElC,UAAAA,IAAI,EAAC;EACL0J,UAAAA,SAAS,EAAC;EACV6G,UAAAA,WAAW,EAAC;EACZC,UAAAA,QAAQ,EAAE,kBAACxF,CAAD;EAAA,mBAAOS,QAAQ,CAAC;EAAE8I,cAAAA,QAAQ,EAAEvJ,CAAC,CAACE,MAAF,CAAS9I;EAArB,aAAD,CAAf;EAAA;EACVA,UAAAA,KAAK,EAAE3C,KAAK,CAAC8U;yBACH;;YAGb8tB,OAAO,IAAIA,OAAO,CAACz6B,MAAR,GAAiB,CAA5B,IACC0C;EAAKZ,QAAAA,SAAS,EAAC;qBACbxH;EAAOwH,UAAAA,SAAS,EAAC;;cACjBxH;EAAKwH,UAAAA,SAAS,EAAC;sBACbxH;2BACY;EACVsO,YAAAA,QAAQ,EAAE,kBAACxF,CAAD;EAAA,qBAAOk6B,gBAAgB,CAACl6B,CAAC,CAACE,MAAF,CAAS9I,KAAV,CAAvB;EAAA;wBAETigC,OAAO,CAACj7B,GAAR,CAAY,UAACokB,CAAD;EAAA,qBACXtpB;EAAQE,gBAAAA,KAAK,EAAEopB;4BACZA;mBADoBA,EADZ;EAAA,aAAZ;;;YASTtpB;EAAKwH,QAAAA,SAAS,EAAC;oBACbxH;EACEwH,UAAAA,SAAS,EAAC;EACV1J,UAAAA,IAAI,EAAC;yBACK;;;YAKdkC;EAAKwH,QAAAA,SAAS,EAAC;oBACZjK,KAAK,CAAC8P,MAAN,IACCrN;EAAGwH,UAAAA,SAAS,EAAC;sBACVm7B,MAAM,CAACplC,KAAK,CAAC8P,MAAP,CAAN,IAAwB;;;;MA5DrC;EAmED;;;;;;;;;;;;;;;;EC1HD,IAAMg2B,WAAW,GAAG,EAApB;EACA,IAAMC,WAAW,GAAG,CAAC,OAAD,CAApB;WAgBgBC;QACd9iC,eAAAA;QACAoI,gBAAAA;QACAiD,kBAAAA;QACA5I,aAAAA;QACAyE,gBAAAA;QACA7J,YAAAA;EAEA,MAAMiJ,IAAI,GAAGyB,iBAAO,EAApB;EACA,MAAMmC,GAAG,GAAGxK,YAAY,EAAxB;EAEA,MAAM6kB,aAAa,GAAGra,GAAG,CAAClN,QAAJ,CAAa0N,GAAb,CAAiB,YAAjB,EAA+B,eAA/B,CAAtB;;oBAEgC9B,cAAQ,CAAiB,EAAjB;QAAjCmC;QAAUg4B;;qBACWn6B,cAAQ,CAAC,EAAD;QAA7BgE;QAAQo2B;;uBAEat6B,WAAW,CAAQ;EAC7ClL,IAAAA,IAAI,EAAE6L,SADuC;EAE7CrJ,IAAAA,OAAO,EAAE,KAFoC;EAG7CuK,IAAAA,KAAK,EAAElB,SAHsC;EAI7C45B,IAAAA,UAAU,EAAE;EAJiC,GAAR;QAAhCp3B;QAAQkoB;;EAOfhmB,EAAAA,eAAS,CAAC;EACR,QAAMumB,SAAS,YAATA,SAAS;EAAA;;gBACT,CAACzoB,MAAM,CAAC7L,OAAR,IAAmB,CAAC6L,MAAM,CAACrO,IAA3B,IAAmC,CAACqO,MAAM,CAACtB;gDACzC;EACFwpB,cAAAA,SAAS,CAAC;EAAE/zB,gBAAAA,OAAO,EAAE;EAAX,eAAD,CAAT;EADE,qCAEqBkK,GAAG,CAACnN,MAAJ,CAAWsgB,aAAX,CAAyBnT,GAAG,CAAClL,IAA7B,EAAmC3B,IAAnC,CAFrB,iBAEImY,QAFJ;EAGFue,gBAAAA,SAAS,CAAC;EACR/zB,kBAAAA,OAAO,EAAE,KADD;EAERxC,kBAAAA,IAAI,EAAEgY,QAFE;EAGRytB,kBAAAA,UAAU,YAAMztB,QAAQ,CAAClF,QAAf,EAA4BuyB,WAA5B;EAHF,iBAAD,CAAT;EAHE;EAQH,yBAAQ13B,KAAK;EACZ4oB,cAAAA,SAAS,CAAC;EAAE/zB,gBAAAA,OAAO,EAAE,KAAX;EAAkBuK,gBAAAA,KAAK,EAAEY;EAAzB,eAAD,CAAT;EACD;;;;;;;EAEJ,OAdc;EAAA;EAAA;EAAA,KAAf;;EAeAmpB,IAAAA,SAAS;EACV,GAjBQ,EAiBN,CAACzoB,MAAD,CAjBM,CAAT;;EAmBA,MAAM2wB,MAAM,GAAG,SAATA,MAAS;EACb,QAAM0G,aAAa,GAAG,EAAtB;EAEAr3B,IAAAA,MAAM,CAACo3B,UAAP,CAAkBpkC,OAAlB,CAA0B,UAAC6F,GAAD;EACxB,UAAI,CAACqG,QAAQ,CAACrG,GAAD,CAAb,EAAoB;EAClBw+B,QAAAA,aAAa,CAACx+B,GAAD,CAAb,GAAqB4B,IAAI,CAACI,aAAL,CACnB5G,eAAe,CAAC0C,iBADG,CAArB;EAGD;EACF,KAND;;EAQA,QAAI7D,MAAM,CAACC,IAAP,CAAYskC,aAAZ,EAA2Bj+B,MAA3B,GAAoC,CAAxC,EAA2C;EACzC+9B,MAAAA,SAAS,CAACE,aAAD,CAAT;EACA;EACD;;EAED96B,IAAAA,QAAQ;EAAGnI,MAAAA,EAAE,EAAE8K,QAAQ,CAACo4B;EAAhB,OAAyBp4B,QAAzB,EAAR;EACD,GAjBD;;EAmBA,SACEpD,gBAACsD;EAAKxI,IAAAA,KAAK,EAAEA;EAAO2F,IAAAA,QAAQ,EAAEo0B;EAAQt1B,IAAAA,QAAQ,EAAEA;iBAC7C2E,MAAM,IACLA,MAAM,CAACrO,IADR,IAEC,CAACqO,MAAM,CAAC7L,OAFT,IAGC6L,MAAM,CAACo3B,UAAP,CAAkBx+B,GAAlB,CAAsB,UAACC,GAAD;EACpB,UAAI,CAACk+B,WAAW,CAACrwB,QAAZ,CAAqB7N,GAArB,CAAL,EAAgC;EAAA;;EAC9B,YAAMjF,KAAK,GAAGoM,MAAM,CAACrO,IAAP,CAAY2U,UAAZ,CAAuBzN,GAAvB,CAAd;EACA,eACEnF,eAACglB;EAECtkB,UAAAA,EAAE,EAAEyE;EACJkJ,UAAAA,WAAW,kBAAEnO,KAAF,oBAAEA,KAAK,CAAEgD,KAAT,2BAAkB;EAC7BsE,UAAAA,SAAS,EAAC;EACVuJ,UAAAA,QAAQ;EACRzE,UAAAA,MAAM,EAAEA,MAAM,CAACrO,IAAP,CAAY2U,UAAZ,CAAuBzN,GAAvB;EACR4f,UAAAA,QAAQ,EAAE,kBAACrW,EAAD;EACR,gBAAIvJ,GAAG,KAAK,OAAZ,EAAqB;EAAA;;EACnBq+B,cAAAA,WAAW,cACNh4B,QADM;EAETo4B,gBAAAA,IAAI,EAAE59B,YAAY,CAAC0I,EAAD;EAFT,2BAGRvJ,GAHQ,IAGFuJ,EAHE,cAAX;EAKD,aAND,MAMO,IAAIvJ,GAAG,KAAK,MAAZ,EAAoB;EACzBq+B,cAAAA,WAAW,cACNh4B,QADM;EAETo4B,gBAAAA,IAAI,EAAE59B,YAAY,CAAC0I,EAAD;EAFT,iBAAX;EAID,aALM,MAKA;EAAA;;EACL80B,cAAAA,WAAW,cAAMh4B,QAAN,6BAAiBrG,GAAjB,IAAuBuJ,EAAvB,cAAX;EACD;EACF;EACD1D,UAAAA,KAAK,EAAEqC,MAAM,CAAClI,GAAD;EACbwC,UAAAA,QAAQ,EAAKxC,GAAL;EACRgR,UAAAA,GAAG,EAAEhR,GAAG,IAAIqG,QAAP,GAAkBA,QAAQ,CAACrG,GAAD,CAA1B,GAAkC;aAxBlCA,IAFT;EA6BD;;EACD,aAAO,IAAP;EACD,KAlCD,GAoCFnF;EAAKwH,MAAAA,SAAS,EAAC;kBACbxH;EACElC,QAAAA,IAAI,EAAC;EACL0J,QAAAA,SAAS,0BAAuB/G,OAAO,GAAG,YAAH,GAAkB,EAAhD;uBACC;oBAETqL,UAAU,IAAI/E,IAAI,CAACI,aAAL,CAAmB5G,eAAe,CAAC4C,GAAnC;;;MA/CvB;EAoDD;;;;;;;;;;;;;;;;MCxIY0gC,IAAb;EAQE,gBAAYnmC,GAAZ;WAPAomC,WAAW;WACXC,eAAe;WACfxsB,SAAS;WACT7Z;WACAsmC;WACA32B;EAGE,SAAK3P,GAAL,GAAWA,GAAX;EACA,SAAKsmC,QAAL,GAAgBtmC,GAAhB;EACA,SAAK2P,MAAL,GAAcvD,SAAd;EACD;;EAZH;;EAAA,SAcEm6B,MAdF,GAcE,gBAAOr5B,QAAP;EACE,gBAAU,KAAKlN,GAAf,GAAqBkN,QAArB;EACD,GAhBH;;EAAA,SAkBEu4B,UAlBF,GAkBE,oBAAWe,OAAX;EACE,SAAKxmC,GAAL,GAAW,KAAKsmC,QAAL,GAAgBE,OAA3B;EACD,GApBH;;EAAA,SAsBQd,KAtBR,kBAsBcxI,QAtBd,EAsBwBvoB,QAtBxB;EAAA;;;qBAuBgB;;;;EAoBZ8xB,QAAAA,YAAY,CAAC5H,UAAb,CAAwB,MAAxB;EACA4H,QAAAA,YAAY,CAAC5H,UAAb,CAAwB,cAAxB;EACA,eAAO,KAAP;;;EAtBA,UAAM7+B,GAAG,GAAG,OAAKumC,MAAL,CAAY,QAAZ,CAAZ;;0CACI;EAAA,+BACiB9pB,KAAK,CAACzc,GAAD,EAAM;EAC5B8c,UAAAA,MAAM,EAAE,MADoB;EAE5B3P,UAAAA,IAAI,EAAEgD,IAAI,CAACC,SAAL,CAAe;EACnB8sB,YAAAA,QAAQ,EAAEA,QADS;EAEnBvoB,YAAAA,QAAQ,EAAEA;EAFS,WAAf;EAFsB,SAAN,CADtB,iBACIpU,IADJ;EAAA;EAAA,gBAQEA,IAAI,CAACwM,MAAL,KAAgB,GARlB;EAAA,qCAS0BxM,IAAI,CAACyM,IAAL,EAT1B,iBASM05B,WATN;EAUA,uBAAKC,SAAL,CAAeD,WAAf;;EAVA,gCAWO,IAXP;EAAA;EAAA;EAaA,qBAAK/2B,MAAL,GAAc,qBAAd;EAbA;EAAA;EAAA;EAeH,qBAAW;EACV,eAAKA,MAAL,GAAc,iBAAd;EADU;EAAA,eAEH,KAFG;EAGX;;;EAIF,KA9CH;EAAA;EAAA;EAAA;;EAAA,SAwEEg3B,SAxEF,GAwEE,mBAAUpmC,IAAV;EACEkmC,IAAAA,YAAY,CAACG,OAAb,CAAqB,MAArB,EAA6BrmC,IAAI,CAACqY,KAAlC;EACA6tB,IAAAA,YAAY,CAACG,OAAb,CACE,cADF,EAEE,IAAI/vB,IAAJ,CAAStW,IAAI,CAACsmC,GAAd,EAAmBC,OAAnB,GAA6BpwB,QAA7B,EAFF;EAID,GA9EH;;EAAA,SAgFEqwB,SAhFF,GAgFE;EACEN,IAAAA,YAAY,CAAC5H,UAAb,CAAwB,MAAxB;EACA4H,IAAAA,YAAY,CAAC5H,UAAb,CAAwB,cAAxB;EACD,GAnFH;;EAAA,SAqFE8F,MArFF,GAqFE;EACE,SAAKoC,SAAL;EACD,GAvFH;;EAAA,SAyFQC,YAzFR;EAAA;qBA2FI;;EADA35B,MAAAA,OAAO,CAACc,GAAR,CAAY,YAAZ;EACA,aAAKk4B,YAAL;+BACmB5pB,KAAK,CAAC,OAAK8pB,MAAL,CAAY,cAAZ,CAAD,EAA8B;EACpDzqB,QAAAA,OAAO,EAAE,OAAKU,UAAL,EAD2C;EAEpDM,QAAAA,MAAM,EAAE;EAF4C,OAA9B,kBAAlBvc;EAIN,YAAIA,IAAI,CAACwM,MAAL,KAAgB,GAApB,EAAyB;EAEvB,iBAAKg6B,SAAL;;EACA,iBAAKpC,MAAL;;EACA;EACD;;iCACiBpkC,IAAI,CAACyM,IAAL,mBAAZH;EACNQ,UAAAA,OAAO,CAACc,GAAR,CAAY,cAAZ,EAA4BtB,GAA5B;;EACA,iBAAK85B,SAAL,CAAe95B,GAAf;;EACAQ,UAAAA,OAAO,CAACc,GAAR,CAAY,iBAAZ;EACA,iBAAKk4B,YAAL,GAAoB,CAApB;EACA,iBAAOx5B,GAAG,CAAC+L,KAAX;;;EACD,KA5GH;EAAA;EAAA;EAAA;;EAAA,SA8GEquB,UA9GF,GA8GE,oBAAWC,UAAX;EACE,QAAM5D,GAAG,GAAG,IAAIzsB,IAAJ,GAAWiwB,OAAX,EAAZ;;EACA,QAAI/uB,QAAQ,CAACmvB,UAAD,CAAR,GAAuB,IAAvB,GAA8B5D,GAAG,GAAG,KAAK,IAA7C,EAAmD;EACjD,aAAO,IAAP;EACD;;EACD,WAAO,KAAP;EACD,GApHH;;EAAA,SAsHE6D,SAtHF,GAsHE,mBAAUD,UAAV;EACE,QAAM5D,GAAG,GAAG,IAAIzsB,IAAJ,GAAWiwB,OAAX,EAAZ;;EACA,QAAI/uB,QAAQ,CAACmvB,UAAD,CAAR,GAAuB,IAAvB,GAA8B5D,GAAlC,EAAuC;EACrC,aAAO,KAAP;EACD;;EACD,WAAO,IAAP;EACD,GA5HH;;EAAA,SA8HE8D,SA9HF,GA8HE;EACE,WAAO,CAACX,YAAY,CAACY,OAAb,CAAqB,MAArB,CAAD,EAA+BZ,YAAY,CAACY,OAAb,CAAqB,cAArB,CAA/B,CAAP;EACD,GAhIH;;EAAA,SAkIE1qB,QAlIF,GAkIE;4BACkB,KAAKyqB,SAAL;UAATxuB;;EACP,WAAOA,KAAP;EACD,GArIH;;EAAA,SAuIE4D,UAvIF,GAuIE;mBAMwB;;6BALO,KAAK4qB,SAAL;UAAtB1qB;UAAW4qB;;EAClB,QAAI,CAAC5qB,SAAL,EAAgB,OAAO,EAAP;;EAEhB,QAAI,KAAKuqB,UAAL,CAAgBK,OAAhB,KAA4B,KAAKjB,YAAL,GAAoB,KAAKD,QAAzD,EAAmE;;EAEhE;EAAA;EAAA,iBAAmB,OAAKY,YAAL,EAAnB;EAAA;EAAA;EAAA;EAAA;EACF;;EAED,WAAO;EACLpqB,MAAAA,MAAM,EAAE,kBADH;EAEL,sBAAgB,kBAFX;EAGLC,MAAAA,aAAa,EAAE,YAAYH;EAHtB,KAAP;EAKD,GArJH;;EAAA;EAAA;EAAA;EAiDI,UAAI,OAAO+pB,YAAP,KAAwB,WAA5B,EAAyC;EACvC,eAAO,KAAP;EACD;;+BACwB,KAAKW,SAAL;YAAlBxuB;YAAO0uB;;EACd,UAAI,CAAC1uB,KAAD,IAAU,CAAC0uB,OAAf,EAAwB;EACtB,eAAO,KAAP;EACD;;EACD,UAAI,KAAKH,SAAL,CAAeG,OAAf,CAAJ,EAA6B;EAC3B,eAAO,KAAP;EACD;;EACD,aAAO,IAAP;EACD;EA5DH;EAAA;EAAA;EA+DI,UAAI,OAAOb,YAAP,KAAwB,WAA5B,EAAyC;EACvC,eAAO,KAAP;EACD;;+BACe,KAAKW,SAAL;YAATxuB;;EACP,UAAMrY,IAAI,GAAmBgnC,8BAAU,CAAC3uB,KAAD,CAAvC;EACAvL,MAAAA,OAAO,CAACc,GAAR,CAAYyK,KAAZ;EACA,aAAOrY,IAAI,CAACyC,EAAZ;EACD;EAtEH;;EAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}