@guillotinaweb/react-gmi 0.32.1 → 0.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"react-gmi.umd.js","sources":["../src/guillo-gmi/reducers/guillotina.ts","../src/guillo-gmi/contexts/index.tsx","../src/guillo-gmi/locales/generic_messages.ts","../src/guillo-gmi/lib/helpers.ts","../src/guillo-gmi/components/input/button.tsx","../src/guillo-gmi/lib/utils.ts","../src/guillo-gmi/components/modal.tsx","../src/guillo-gmi/lib/processResponse.ts","../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/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/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/models/sharing.ts","../src/guillo-gmi/models/index.ts","../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/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","../src/guillo-gmi/types/guillotina.ts"],"sourcesContent":["import { 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?: string\n registry: IndexSignature\n refresh?: number\n}\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: [],\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport enum GuillotinaReducerActionTypes {\n SET_PATH = 'SET_PATH',\n SET_CONTEXT = 'SET_CONTEXT',\n SET_ERROR = 'SET_ERROR',\n SET_FLASH = 'SET_FLASH',\n CLEAR_FLASH = 'CLEAR_FLASH',\n SET_ACTION = 'SET_ACTION',\n CLEAR_ACTION = 'CLEAR_ACTION',\n REFRESH = 'REFRESH',\n APPLY = 'APPLY',\n}\nexport function guillotinaReducer(\n state: GuillotinaGlobalState,\n action: { type: GuillotinaReducerActionTypes; payload: IndexSignature }\n): GuillotinaGlobalState {\n switch (action.type) {\n case GuillotinaReducerActionTypes.SET_PATH:\n return { ...state, path: action.payload.path, loading: true }\n\n case GuillotinaReducerActionTypes.SET_CONTEXT:\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case GuillotinaReducerActionTypes.SET_ERROR:\n return {\n ...state,\n errorStatus: action.payload.errorStatus,\n loading: false,\n }\n\n case GuillotinaReducerActionTypes.SET_FLASH:\n return { ...state, ...action.payload }\n\n case GuillotinaReducerActionTypes.CLEAR_FLASH:\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case GuillotinaReducerActionTypes.SET_ACTION:\n return { ...state, action: action.payload }\n case GuillotinaReducerActionTypes.CLEAR_ACTION:\n return { ...state, action: { action: undefined, params: undefined } }\n\n case GuillotinaReducerActionTypes.REFRESH:\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case GuillotinaReducerActionTypes.APPLY:\n return {\n ...state,\n context: { ...state.context, ...action.payload.context },\n }\n\n default:\n return state\n }\n}\n","import { Dispatch, useContext, createContext } from 'react'\nimport { GuillotinaClient } from '../lib/client.js'\nimport { Auth } from '../lib/auth.js'\nimport { IndexSignature } from '../types/global'\nimport {\n GuillotinaGlobalState,\n GuillotinaReducerActionTypes,\n} from '../reducers/guillotina'\nimport { GuillotinaCommonObject } from '../types/guillotina.js'\nimport { IManageRegistry } from '../hooks/useRegistry.js'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext<GuillotinaClient | null>(null)\n\ninterface PropsTraversal {\n client: GuillotinaClient\n auth: Auth\n state: GuillotinaGlobalState\n dispatch: Dispatch<{\n type: GuillotinaReducerActionTypes\n payload: IndexSignature\n }>\n registry: IManageRegistry\n flash?: (action: string, result: string) => void\n url: string\n children?: React.ReactNode\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({\n type: GuillotinaReducerActionTypes.REFRESH,\n payload: { transparent },\n })\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(): GuillotinaCommonObject {\n if (this.state.context === undefined) {\n throw new Error('Context is not loaded')\n }\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data: IndexSignature) {\n // apply a optimistic update to context\n this.dispatch({\n type: GuillotinaReducerActionTypes.APPLY,\n payload: { context: data },\n })\n }\n\n flash(message: string, type: string) {\n this.dispatch({\n type: GuillotinaReducerActionTypes.SET_FLASH,\n payload: { flash: { message, type } },\n })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({\n type: GuillotinaReducerActionTypes.CLEAR_FLASH,\n payload: {},\n })\n }\n\n doAction(action: string, params = {}) {\n this.dispatch({\n type: GuillotinaReducerActionTypes.SET_ACTION,\n payload: { action, params },\n })\n }\n\n cancelAction() {\n this.dispatch({\n type: GuillotinaReducerActionTypes.CLEAR_ACTION,\n payload: {},\n })\n }\n\n hasPerm(permission: string) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs: IndexSignature, tabsPermissions: IndexSignature) {\n const result: IndexSignature = {}\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>(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 const traversal = useContext(TraversalContext)\n if (!traversal) {\n throw new Error('useTraversal must be used within a TraversalProvider')\n }\n return traversal\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 const client = useContext(ClientContext)\n if (!client) {\n throw new Error('useGuillotinaClient must be used within a ClientProvider')\n }\n return client\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 { MessageDescriptor } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { IndexSignature } from '../types/global'\n\nexport const classnames = (classNames: (string | boolean)[]) => {\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: IndexSignature<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: string) {\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: string) {\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: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve()\n }, ms)\n })\n}\n\nexport const getActionsObject = (\n multiple: boolean\n): {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n} => ({\n DELETE: {\n text: genericMessages.delete,\n perms: ['guillotina.DeleteContent'],\n action: multiple ? 'removeItems' : 'removeItem',\n },\n MOVE: {\n text: genericMessages.move_to,\n perms: ['guillotina.MoveContent'],\n action: multiple ? 'moveItems' : 'moveItem',\n },\n COPY: {\n text: 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 = [...className.split(' '), 'button']\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 { 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: T\n): T => {\n // If path is not defined or it has false value\n if (!path) return defValue\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 if (pathArray === null) return defValue\n\n return (pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) ??\n defValue) as T\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: string) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n\nexport function debounce<T extends unknown[], U>(\n callback: (...args: T) => PromiseLike<U> | U,\n wait: number\n) {\n let timer: ReturnType<typeof setTimeout>\n\n return (...args: T): Promise<U> => {\n clearTimeout(timer)\n return new Promise((resolve) => {\n timer = setTimeout(() => resolve(callback(...args)), wait)\n })\n }\n}\n","import usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { get } from '../lib/utils'\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?: React.ReactNode\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(get(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","interface DataError {\n details: string\n reason: string\n}\nconst getErrorMessage = (\n dataError: DataError,\n defaultValue: string | number\n) => {\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\ninterface IResponse<T = unknown> {\n loading?: boolean\n isError: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\n\nexport async function processResponse<T>(\n res: Response,\n ready_body = true\n): Promise<IResponse<T>> {\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).toString(),\n response: res,\n }\n}\n","import { useState, useCallback } from 'react'\n\n// **** Types **** //\n\nexport type TSetState<T> = (newPartialState: Partial<T>) => void\n\n// **** Functions **** //\n\n/**\n * Do setState like react class component.\n */\nfunction useSetState<T extends object>(initialState: T): [T, TSetState<T>] {\n const [state, setState] = useState<T>(initialState)\n // Function which accepts a partial state to merge\n const setCustomState = useCallback((newPartialState: Partial<T>) => {\n try {\n setState(\n (prevState): T => {\n return { ...prevState, ...newPartialState }\n }\n )\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n }, [])\n // Return\n return [state, setCustomState]\n}\n\n// **** Export Default **** //\n\nexport default useSetState\n","import { Traversal, useTraversal } from '../contexts'\nimport { processResponse } from '../lib/processResponse'\nimport useSetState from './useSetState'\n\ninterface State<T> {\n loading?: boolean\n isError?: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nfunction patch<T>(\n setState: (value: Partial<State<T>>) => void,\n Ctx: Traversal\n) {\n return async (\n data = {},\n endpoint?: string,\n body = false\n ): Promise<State<T>> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse<T>(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}\n\nfunction del<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (\n data = {},\n endpoint?: string,\n body = false\n ): Promise<State<T>> => {\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}\n\nfunction post<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (\n data = {},\n endpoint?: string,\n body = true\n ): Promise<State<T>> => {\n setState({ loading: true })\n let newState: State<T> = {}\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}\n\nfunction get<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (endpoint?: string): Promise<State<T>> => {\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}\n// const get = (\n// setState: (value: Partial<State>) => void,\n// Ctx: Traversal\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'\nimport { IndexSignature } from '../types/global'\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, undefined)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data: IndexSignature) {\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 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\nexport interface IConfig {\n DisabledTypes: string[]\n PageSize: number\n DelayActions: number\n Permissions: string[]\n SearchEngine: string\n SizeImages?: string[]\n icons?: { [key: string]: string }\n properties_default?: string[]\n properties_ignore_fields?: string[]\n fieldHaveDeleteButton: (schema: GuillotinaSchemaProperty) => boolean\n flash?: (message: string, type: string) => void\n}\n\nexport const defaultConfig: 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({}, defaultConfig)\n\nfunction addConfig(updates: Partial<IConfig>, currentConfig: IConfig): IConfig {\n let updatedConfig: IConfig = { ...currentConfig }\n\n Object.entries(updates).forEach(([key, value]) => {\n const currentKey = key as keyof IConfig\n const currentValue = currentConfig[currentKey]\n\n if (Array.isArray(value) && Array.isArray(currentValue)) {\n // Correctly type the array concatenation\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: [...currentValue, ...value],\n }\n } else if (isPlainObject(value) && isPlainObject(currentValue)) {\n // Correctly type the object merging\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: { ...currentValue, ...value },\n }\n } else {\n // Directly assign all other types\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: value,\n }\n }\n })\n\n return updatedConfig as IConfig\n}\n\n// Helper function to check if a value is a plain object (and not a React node, etc.)\nfunction isPlainObject(value: any): value is object {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport function useConfig(cfg = {}) {\n const ref = useRef<IConfig>()\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].id\n const itemsNames = items\n .map((item) => item.id)\n .join(', ')\n .replace(`, ${last}`, ` and ${last}`)\n\n async function removeItems() {\n const errors: unknown[] = []\n setLoading(true)\n\n const actions = items.map(async (item) => {\n const res = await Ctx.client.delete(`${Ctx.path}${item.id}`, {})\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<HTMLInputElement>(null)\n const [state, setState] = useState<boolean>(!!checked)\n\n useEffect(() => {\n if (state !== checked) {\n setState(!!checked)\n }\n }, [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 { ChangeEvent, useEffect, useState } from 'react'\n\nconst applyValidators = (\n value: string,\n validators: ((value: string) => boolean)[]\n) => {\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 = (\n onChange: (value: string) => void | undefined,\n value: string,\n validators: ((value: string) => boolean)[]\n) => {\n const [state, setState] = useState({ hasError: false, value: value })\n\n const onUpdate = (ev: ChangeEvent<HTMLInputElement>) => {\n const value: string = ev && ev.target ? ev.target.value : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validators) === 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: string) => !!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 | undefined\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: ((value: string) => boolean)[] = []\n if (required) {\n validatorFn = Array.isArray(validator)\n ? [...validator, 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 const newRef = ref || useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (\n autofocus &&\n !error &&\n newRef != null &&\n typeof newRef !== 'function' &&\n newRef.current\n ) {\n newRef.current.focus()\n }\n }, [mounted, autofocus, newRef, 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 onChange,\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 onChange={onChange}\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: React.SyntheticEvent<HTMLFormElement>) => {\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?: IndexSignature\n onSubmit: (formData: IndexSignature, initialData: IndexSignature) => 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<IndexSignature | null>(null)\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n const initialState: IndexSignature = {}\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 === null) {\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: string) => (value: boolean | string) => {\n ref.current![field] = value\n }\n\n const GetTag = ({ field }: { field: string }) => {\n const property = properties[field] as GuillotinaSchemaProperty\n const key = (property.widget ||\n property.type) as keyof typeof formComponents\n\n const Tag: React.ComponentType<any> = formComponents[key]\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 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: React.ChangeEvent<HTMLSelectElement>) => {\n if (multiple) {\n let selectValue: string[] = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n selectValue = selectValue.concat([ev.target.selectedOptions[i].value])\n }\n if (onChange) {\n onChange(selectValue)\n }\n } else {\n if (onChange) {\n onChange(ev.target.value)\n }\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 { 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) {\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 | string[]\n dataTest?: string\n multiple?: boolean\n onChange?: (value: string | 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 (\n get<GuillotinaVocabularyItem | null>(vocabulary, 'data.items', null)\n ) {\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: URLSearchParams) => {\n return window.history.pushState(\n 0,\n '0',\n '' + '?' + p.toString().replace(/%2F/g, '/')\n )\n}\n\nconst clean = (to: IndexSignature) => {\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: IndexSignature, replace?: boolean) => {\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: string) => {\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\n const originalPushState = window.history.pushState\n window.history.pushState = function (...args) {\n const result = originalPushState.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event('pushState')\n event.arguments = args\n\n dispatchEvent(event)\n return result\n }\n\n const originalReplaceState = window.history.replaceState\n window.history.replaceState = function (...args) {\n const result = originalReplaceState.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event('replaceState')\n event.arguments = args\n\n dispatchEvent(event)\n return result\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: React.MouseEvent<HTMLAnchorElement>) {\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: React.MouseEvent<HTMLAnchorElement>) {\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>(null)\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 { LightFile } from '../types/global'\nimport { 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(\n path: string,\n data?: RequestInit,\n headers?: HeadersInit,\n signal?: AbortSignal\n ) {\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 const dataRequest = data || {}\n dataRequest.headers = this.getHeaders()\n if (headers) {\n dataRequest.headers = { ...dataRequest.headers, ...headers }\n }\n if (signal) {\n dataRequest.signal = signal\n }\n return await fetch(`${this.url}${path}`, dataRequest)\n }\n\n getHeaders(): HeadersInit {\n const authToken = this.auth.getToken()\n const headersInit: HeadersInit = {}\n\n if (!authToken) return headersInit\n\n headersInit.Accept = 'application/json'\n headersInit['Content-Type'] = 'application/json'\n headersInit.Authorization = 'Bearer ' + authToken\n return headersInit\n }\n\n async post(path: string, data: unknown) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path: string, signal?: AbortSignal) {\n return await this.request(path, undefined, undefined, signal)\n }\n\n async put(path: string, data: unknown) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path: string, data: unknown) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path: string, data: LightFile) {\n const headers = this.getHeaders()\n const newHeaders: HeadersInit = {}\n newHeaders['Content-Type'] = data['content-type']\n newHeaders['X-UPLOAD-FILENAME'] = data.filename\n newHeaders['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n {\n ...headers,\n ...newHeaders,\n }\n )\n }\n\n async delete(path: string, data: unknown) {\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(\n qs: string,\n defaultField: string | string[] | undefined = DEFAULT_FIELD\n): 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: string[] = []\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: string | undefined = 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 { IndexSignature, LightFile } from '../types/global'\n\nimport { Auth } from './auth'\nimport {\n GuillotinaGroup,\n GuillotinaUser,\n ItemColumn,\n ItemColumnChild,\n ReturnSearchCompatible,\n} from '../types/guillotina'\n\nconst cacheTypes: IndexSignature = {}\nconst cacheSchemas: IndexSignature = {}\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: string) {\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: string) {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path: string) {\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: string) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsSearchFunction(name: string) {\n if (name === 'getQueryParamsElasticsearch') {\n return this.getQueryParamsElasticsearch\n }\n return this.getQueryParamsPostresql\n }\n getQueryParamsPostresql({\n start = 0,\n pageSize = 10,\n withDepth = true,\n }: {\n start?: number\n pageSize?: number\n path?: string\n withDepth?: boolean\n }) {\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 start?: number\n pageSize?: number\n path: string\n withDepth?: boolean\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(): ItemColumn[] {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n key: 'icon',\n label: '',\n isSortable: false,\n child: ({ model }: ItemColumnChild) => (\n <td style={smallcss}>{<Icon icon={model.icon} />}</td>\n ),\n },\n {\n label: 'type',\n key: 'type_name',\n isSortable: false,\n child: ({ model }: ItemColumnChild) => (\n <TdLink style={smallcss} model={model}>\n <span className=\"tag\">{model.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n key: 'title',\n isSortable: true,\n child: ({ model, search }: ItemColumnChild) => (\n <TdLink model={model}>\n {model.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{model.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n key: 'creation_date',\n isSortable: true,\n child: ({ model }: ItemColumnChild) => {\n return (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {model.created}\n </td>\n )\n },\n },\n {\n label: 'modified',\n key: 'modification_date',\n isSortable: true,\n child: ({ model }: ItemColumnChild) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {model.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat<T>(data: { items: T[]; items_total: number }) {\n const result: ReturnSearchCompatible<T> = {\n ...data,\n member: data.items,\n items_count: data.items_total,\n }\n return result\n }\n\n async search<T>(\n path: string,\n params: string | IndexSignature<string>,\n container = false,\n prepare = true,\n signal?: AbortSignal\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\n ? toQueryString(params as IndexSignature<string>)\n : params\n const url = `${path}@search?${query}`\n const res = await this.rest.get(url, signal)\n const data = await res.json()\n return this.applyCompat<T>(data)\n }\n\n async canido(path: string, permissions: string | string[]) {\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: string, data: unknown) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path: string) {\n const url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path: string, data: unknown) {\n return await this.rest.delete(path, data)\n }\n\n async create(path: string, data: unknown) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path: string, data: unknown) {\n return await this.create(path, data)\n }\n\n async patch(path: string, data: unknown) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path: string, file: LightFile) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path: string) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path: string, name: string) {\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: string) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path: string, key: string) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path: string, key: string) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(\n path: string\n ): Promise<{\n groups: GuillotinaGroup[]\n users: GuillotinaUser[]\n }> {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [responseGroups, responseUsers] = await Promise.all([groups, users])\n let groupsData: GuillotinaGroup[] = []\n let usersData: GuillotinaUser[] = []\n\n if (responseGroups.ok) {\n const groupsDataResponse = await responseGroups.json()\n groupsData = groupsDataResponse.map(\n (group: {\n '@name': string\n id: string\n title: string\n users: string[]\n roles: string[]\n }) => {\n return {\n '@name': group.id,\n user_roles: group.roles,\n users: group.users,\n }\n }\n )\n }\n if (responseUsers) {\n const usersDataResponse = await responseUsers.json()\n usersData = usersDataResponse.map(\n (user: {\n '@name': string\n id: string\n fullname: string\n email: string\n roles: string[]\n }) => {\n return {\n '@name': user.id,\n user_roles: user.roles,\n fullname: user.fullname,\n email: user.email,\n }\n }\n )\n }\n return {\n groups: groupsData,\n users: usersData,\n }\n }\n\n async getRoles(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path: string) {\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: string) {\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: string, container: string, auth: Auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = (file: File) => {\n return new Promise<LightFile>((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e?.target?.result\n if (fileData) {\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n } else {\n reject('Error reading file')\n }\n }\n })\n}\n\nconst extractPermissions = (data: IndexSignature) => {\n let result: string[] = []\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 } 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({ label, onChange, dataTest }: Props) {\n const intl = useIntl()\n const changed = async (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const fileToUpload = await lightFileReader(event.target.files[0])\n onChange(fileToUpload)\n }\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 { ChangeEvent, 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: ChangeEvent<HTMLTextAreaElement>) => {\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 = (\n obj: Document,\n type: keyof DocumentEventMap,\n handler: (ev: Event) => void\n) => obj.addEventListener(type, handler)\nconst off = (\n obj: Document,\n type: keyof DocumentEventMap,\n handler: (ev: Event) => void\n) => obj.removeEventListener(type, handler)\n\nexport default function useClickAway(\n ref: React.RefObject<HTMLElement>,\n onClickAway: (event: Event) => void,\n events = defaultEvents\n) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event: Event) => {\n const { current: el } = ref\n el && !el.contains(event.target as Node) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName as keyof DocumentEventMap, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName as keyof DocumentEventMap, 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 { debounce, get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\nimport { IndexSignature } from '../../types/global'\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,\n path = undefined,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = undefined,\n typeNameQuery = undefined,\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<HTMLInputElement>(null)\n const { PageSize, SearchEngine } = useConfig()\n const [valueLabel, setValueLabel] = useState<Partial<SearchItem> | undefined>(\n undefined\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 inicializeLabels = async () => {\n if (labelProperty !== 'id' && value) {\n let searchTermQs = ''\n const searchTermParsed = [`id`, value]\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(fnName)({\n path: traversal.path,\n start: 0,\n pageSize: PageSize,\n withDepth: false,\n })\n let typeNameParsed: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce<IndexSignature<string>>(\n (result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n },\n {}\n )\n setValueLabel(newValuesLabel)\n }\n }\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n console.log('handle search input')\n setOptions({ loading: true })\n let searchTermQs = ''\n let searchTermParsed: string[][] = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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: string[][] = []\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 sortParsed.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<SearchItem>(\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: SearchItem) => {\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 console.log('on clic btn', options)\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 { debounce, get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\nimport { IndexSignature } from '../../types/global'\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,\n path = undefined,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = undefined,\n typeNameQuery = undefined,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [valuesLabel, setValuesLabels] = useState<IndexSignature | undefined>(\n undefined\n )\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef<HTMLInputElement>(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: string[][] = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newItems: SearchItem[] =\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 { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(fnName)({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n let typeNameParsed: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce<IndexSignature<string>>(\n (result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n },\n {}\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: React.KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Enter' &&\n (event.target as HTMLInputElement).value !== ''\n ) {\n onChange([...value, (event.target as HTMLInputElement).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<HTMLDivElement>(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'\nimport { EditableFieldValue, LightFile } from '../../types/global'\nimport { GuillotinaSchemaProperty } from '../../types/guillotina'\n\ninterface Props {\n field: string\n value: EditableFieldValue\n ns?: string\n schema?: GuillotinaSchemaProperty\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.getComponent('EditComponent')\n const RenderFieldComponent = Ctx.registry.getComponent('RenderFieldComponent')\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified =\n schema !== undefined && modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (\n ev: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\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 as LightFile\n\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 (\n ev: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\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 && schema && 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: boolean) => {\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 { IntlShape, 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 SearchItem,\n} from '../../types/guillotina'\nimport { EditableFieldValue, IndexSignature } from '../../types/global'\n\nconst plain = ['string', 'number', 'boolean']\ntype PlainType = string | boolean | number\n\ninterface RenderFieldProps {\n value: EditableFieldValue\n Widget?: React.ComponentType<{\n value: EditableFieldValue\n schema?: GuillotinaSchemaProperty\n modifyContent?: boolean\n }>\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 as PlainType\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item: EditableFieldValue, index) => (\n <div key={`renderField_${index}_${schema?.title}`}>\n <RenderField value={item} />\n </div>\n ))\n }\n if (schema?.properties?.key !== undefined) {\n return Object.keys(value).map((key) => (\n <FieldValue\n field={get(schema, `properties.${key}.title`, key)}\n schema={schema.properties!.key as GuillotinaSchemaProperty}\n value={get(value as IndexSignature, key, {})}\n key={key}\n />\n ))\n }\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\ninterface FieldValueProps {\n field: string\n value: EditableFieldValue\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: IntlShape) => {\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<string[]>([])\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: string[]) => {\n setIsLoadingData(true)\n let searchTermQs = ''\n\n const searchTermParsed = ['__or', `id=${valuesToSearch.join('%26id=')}`]\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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<SearchItem>(\n traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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: string[] = []\n if (typeof value === 'string' && value) {\n valuesToSearch = [value]\n } else if (Array.isArray(value)) {\n valuesToSearch = value\n }\n if (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 =\n 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'] as string[]) ?? []).map(\n (value: string) => {\n return (\n get<GuillotinaVocabularyItem[]>(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n }\n )\n }\n\n return renderProps\n }\n return <RenderField {...getRenderProps()} />\n}\n\ninterface RenderFieldComponentProps {\n schema: GuillotinaSchemaProperty\n field: string\n val: EditableFieldValue\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: EditableFieldValue\n schema: GuillotinaSchemaProperty\n Widget?: React.ComponentType<any>\n } = {\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 as string).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 as string | string[]\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 {\n GuillotinaFile,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport {\n EditableFieldValue,\n IndexSignature,\n LightFile,\n} from '../../types/global'\n\ninterface Props {\n schema: GuillotinaSchemaProperty\n val: EditableFieldValue\n setValue: (value: EditableFieldValue) => 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 || []) as string[]}\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}\n />\n </>\n )\n } else if (schema?.widget === 'search') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInput\n value={val as string}\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}\n />\n </>\n )\n } else if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={(val || '') as string}\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', '')}\n val={(val || []) as string[]}\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 || []) as string[]}\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 || []) as string[]}\n className={className}\n onChange={(val) => setValue(val as string[])}\n ref={ref as Ref<HTMLInputElement>}\n dataTest={dataTest}\n />\n </>\n )\n } else if (schema?.widget === 'file') {\n const value = val as GuillotinaFile\n return (\n <FileUpload\n onChange={(ev) => setValue(ev as LightFile)}\n label={get(value, 'filename', undefined)}\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 || '') as string}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n onChange={setValue}\n vocabularyName={get(schema, 'vocabularyName', '')}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n\n return (\n <Select\n value={(val || '') as string}\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<GuillotinaSchemaProperty | null>(\n schema,\n `properties.${key}`,\n null\n )\n const requiredFields: string[] = get(schema, 'required', [])\n if (!subSchema) return null\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 } as IndexSignature)\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 || '') as string}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: {\n file: GuillotinaSchemaProperty\n }\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.file}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties.file}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { get } from '../../lib/utils'\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<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\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 if (!file) {\n return\n }\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={\n get(\n properties,\n 'files.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { LightFile } from '../../types/global'\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<LightFile | null>(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const [showConfirmToDelete, setShowConfirmToDelete] = useState(false)\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\n ev.preventDefault()\n setLoading(true)\n setError(undefined)\n if (!file) {\n return\n }\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(null)\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'] as GuillotinaSchemaProperty}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { LightFile } from '../../types/global'\nimport { get } from '../../lib/utils'\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<LightFile | undefined>(undefined)\n const [fileKeyToDelete, setFileKeyToDelete] = useState<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _sizesImages\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\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 if (!file) {\n return\n }\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={\n get(\n properties,\n 'images.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 DropResult,\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { get } from '../../lib/utils'\nimport { LightFile } from '../../types/global'\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: string[], startIndex: number, endIndex: number) => {\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: {\n [key: string]: GuillotinaFile\n }\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<LightFile | undefined>(undefined)\n const [fileKeyToDelete, setFileKeyToDelete] = useState<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(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: DropResult) {\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: React.MouseEvent<HTMLButtonElement>) => {\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={\n get(\n properties,\n 'images.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { useEffect, useState } from 'react'\n\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { Workflow } from '../../types/guillotina'\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<Workflow>()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const [definition, setDefinition] = useState<Workflow | undefined>(undefined)\n const [workflowAction, setWorkflowAction] = useState<string | undefined>(\n undefined\n )\n const vocabulary = useVocabulary('workflow_states')\n const currentState = Ctx.context[\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior'\n ]!['review_state']\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(undefined)\n }\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(undefined)}\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 { Fragment } from 'react'\n\nexport function PanelActions() {\n const traversal = useTraversal()\n const intl = useIntl()\n const ACTIONS_OBJECT = traversal.registry.getActionsList(\n traversal.context['@type'],\n false\n )\n\n const hasPerm = (perms: string[]) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey: keyof typeof ACTIONS_OBJECT) => {\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 const actionKeyTyped = actionKey as keyof typeof ACTIONS_OBJECT\n const actionObject = ACTIONS_OBJECT[actionKeyTyped]\n if (hasPerm(actionObject.perms)) {\n return (\n <button\n key={`panel_action_${actionObject.text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKeyTyped)\n }}\n >\n {intl.formatMessage(actionObject.text)}\n </button>\n )\n }\n })}\n </Fragment>\n )\n}\n","import { Traversal, useTraversal } from '../../contexts'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\nimport { AddonAvailable, Addons } from '../../types/guillotina'\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?: {\n available: AddonAvailable[]\n installed: AddonAvailable[]\n }\n loading: boolean\n error?: Error\n }>({\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: Addons = await response.json()\n setState({ ...state, loading: false, data: prepareData(data) })\n } catch (err) {\n setState({ ...state, loading: false, error: err as Error })\n }\n }\n }\n getAddons()\n }, [action])\n\n const installAddon = async (Ctx: Traversal, key: string) => {\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: Traversal, key: string) => {\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: Addons) => {\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 = (\n array: AddonAvailable[]\n): {\n [key: string]: AddonAvailable\n} =>\n array.reduce((obj, item) => {\n return {\n ...obj,\n [item.id]: item,\n }\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: string) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior: string) => 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 { 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 traversal = useTraversal()\n const actions = traversal.registry.getActionsList(\n traversal.context['@type'],\n true\n )\n const [selected, setSelected] = useState<{\n all: boolean\n [key: string]: boolean\n }>({\n all: false,\n })\n function onSelectAllItems(checked: boolean) {\n setSelected(\n items.reduce(\n (obj, item) => {\n return {\n ...obj,\n [`${item.path}/${item.id}`]: checked,\n }\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item: SearchItem) {\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: string) {\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\nconst useItemsActions = () => {\n const { onAction, onSelectOneItem, onSelectAllItems, selected } = useContext(\n ItemsActionsCtx\n )\n if (!onAction || !onSelectOneItem || !onSelectAllItems || !selected) {\n throw new Error('useItemsActions must be used inside ItemsActionsProvider')\n }\n return { onAction, onSelectOneItem, onSelectAllItems, selected }\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 } = useItemsActions()\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 } = useItemsActions()\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 traversal = useTraversal()\n const ACTIONS_OBJECT = traversal.registry.getActionsList(\n traversal.context['@type'],\n true\n )\n const { selected, onAction } = useItemsActions()\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(ACTIONS_OBJECT).map((action) => ({\n text: intl.formatMessage(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 {\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: GuillotinaSharing | undefined) {\n if (element === undefined) {\n throw new Error('Sharing element is undefined')\n }\n this.local = element.local || base.local\n this.inherit = element.inherit || base.inherit\n }\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role: string) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal: string) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role: string) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\nimport { GuillotinaCommonObject, SearchItem } from '../types/guillotina'\n\nexport * from './sharing'\n\nexport class ItemModel {\n item: SearchItem | GuillotinaCommonObject\n url: string\n constructor(item: SearchItem | GuillotinaCommonObject, 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 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.id\n }\n\n get id() {\n if ('id' in this.item) {\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(): string {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\nimport { ItemColumn, 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: ItemColumn[]\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<string | undefined>(undefined)\n const defaultRenderValue = location.get(query) || ''\n\n useEffect(() => {\n let value = defaultRenderValue\n if (options && (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<string | undefined>(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'\nimport { RegistrySchemaFilter, 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: RegistrySchemaFilter[] =\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: number\n\n try {\n page = parseInt(location.get('page') || '0')\n } catch {\n page = 0\n }\n\n let searchParsed: string[][] | undefined = undefined\n if (search && search !== '') {\n const fieldsToFilter = Ctx.registry.getFieldsToFilter(Ctx.context['@type'])\n searchParsed = parser(search, fieldsToFilter)\n }\n\n let typeParsed: string[][] | undefined = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n let sortParsed: string[][] | undefined = 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: string) => {\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: string[][] = []\n const resultDynamicLocation: string[] = []\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 const getData = async () => {\n setState({ loading: true, total: Ctx.context.length })\n const { getSearchEngineQueryParamsFunction } = Ctx.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type'],\n undefined\n )\n sortParsed = parser(\n `_sort_${defaultSortValue.direction}=${defaultSortValue.key}`\n )\n }\n const qsParsed = Ctx.client.getQueryParamsSearchFunction(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<SearchItem>(\n Ctx.path,\n qs,\n false,\n false,\n signal\n )\n setState({\n items: data.items,\n loading: false,\n total: data.items_count,\n })\n }\n getData()\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: number) => {\n setLocation({ page: page })\n }\n\n const getIcon = (key: string, isSortable: boolean) => {\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: string[] = [\n ...(context.__behaviors__ ?? []),\n ...Object(context['@static_behaviors']),\n ]\n\n const GetBehavior = (behaviorName: string) => {\n const Cls = getBehavior(behaviorName, BehaviorNotImplemented)\n return (\n <Cls\n values={context[behaviorName as keyof GuillotinaCommonObject]}\n properties={get(\n schema,\n ['definitions', behaviorName, 'properties'],\n {}\n )}\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'\nimport { get } from '../../lib/utils'\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 | unknown\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: string[] =\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(\n Ctx.path,\n Ctx.context.type_name\n )\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={get(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={get(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 savePermission = async () => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals ?? []}\n onChange={(value) => setState({ principal: value as string })}\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={(values) => {\n setState({ permission: values as string[] })\n }}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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 savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form_data) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals ?? []}\n onChange={(value) => setState({ principal: value as string })}\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={(values) => {\n setState({ roles: values as string[] })\n }}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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 savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n appendDefault\n options={roles}\n onChange={(value) => setState({ role: value as string })}\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={(values) => {\n setState({ permission: values as string[] })\n }}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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, useMemo, 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 = useMemo(() => {\n if (result) {\n return new Sharing(result)\n }\n return null\n }, [result])\n if (perms === null) {\n return null\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['@name'],\n value: group['@name'],\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname || user['@name'],\n value: user['@name'],\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: string) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">\n {intl.formatMessage(messages.add_permissions)}\n </h1>\n <p>{intl.formatMessage(messages.select_type)}</p>\n <Select\n options={defaultOptions}\n onChange={(value) => setState({ current: value as string })}\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 = (\n items: {\n value: string\n text: string\n }[],\n already: string[],\n title: string\n) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\ninterface Props {\n items: string[]\n available?: {\n value: string\n text: string\n }[]\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>(null)\n\n const [result, setResult] = useState(items)\n const availableData = prepareAvailable(available || [], result, title)\n\n const remove = (value: string) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value: string) => {\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 as string)\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'\nimport { FilterFormElement } from '../types/global'\n\ninterface State {\n types: string[]\n isActive?: boolean\n}\nconst initialState = { types: [] }\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: string[] = 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: string) => {\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: string[] = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({\n q: event.currentTarget.elements.filterInput.value,\n tab: 'Items',\n page: 0,\n })\n }\n\n const onSearchByType = (typeText: string) => {\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 id=\"filterInput\"\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={(value) => onSearchByType(value as string)}\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<{ title: string }>\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n}: Props) {\n const [location, setLocation] = useLocation()\n\n currentTab = location.get('tab') || Object.keys(tabs)[0]\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: string) => {\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() {\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 />}\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() {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return <TabsPanel tabs={calculated} currentTab=\"Properties\" />\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'\nimport { GuillotinaApplication, GuillotinaDatabase } from '../types/guillotina'\n\nexport function ApplicationCtx() {\n const intl = useIntl()\n const traversal = useTraversal()\n const appContext = traversal.state.context as GuillotinaApplication\n const { databases } = appContext\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 <table>\n <tbody>\n {databases.map((db) => (\n <Item\n item={{ id: db, path: `/${db}/` }}\n key={db}\n icon={'fas fa-database'}\n />\n ))}\n </tbody>\n </table>\n </div>\n </>\n )\n}\n\nexport function DatabaseCtx() {\n const traversal = useTraversal()\n const { containers } = traversal.state.context as GuillotinaDatabase\n const { path } = traversal.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<string | undefined>(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'\nimport { GuillotinaUser, SearchItem } from '../types/guillotina'\nimport { FilterFormElement, IndexSignature } from '../types/global'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef<HTMLInputElement>(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({ q: event.currentTarget.elements.filterInput.value, page: 0 })\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (ref.current && (!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 id=\"filterInput\"\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() {\n return (\n <TabsPanel tabs={tabs} currentTab=\"Users\" rightToolbar={<UsersToolbar />} />\n )\n}\n\ninterface State {\n roles: string[]\n groups: {\n value: string\n text: string\n }[]\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 userDataContext = Ctx.context as GuillotinaUser\n const fields = {\n user_groups: [],\n user_roles: userDataContext.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<SearchItem>(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: IndexSignature) => {\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 {userDataContext.username} ({userDataContext.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(userDataContext.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(userDataContext.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={userDataContext}\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={userDataContext.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.map((x) => ({ value: x, text: x }))}\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'\nimport { IndexSignature } from '../types/global'\n\nconst withError = (res: Response) => 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: string, form: IndexSignature) {\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.id}/@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.id}`}\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 { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\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: string, form: IndexSignature) {\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: Response) => 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: string) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item.id}/@move`, {\n destination: path,\n new_id: 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 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 { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\n}\n\nexport function MoveItem(props: Props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext<{ '@url': string }>()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path: string) {\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 { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\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'\nimport { IndexSignature } from '../types/global'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword() {\n const [state, setState] = useState(initial)\n const [perror, setPerror] = useState<string | undefined>(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: string) => (val: string) => {\n const n: IndexSignature = {}\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\nexport interface BaseFormProps {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: BaseFormProps) {\n const intl = useIntl()\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState<string | undefined>(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: string) => {\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'\nimport { FilterFormElement } from '../types/global'\nimport { GuillotinaGroup } from '../types/guillotina'\nimport { processResponse } from '../lib/processResponse'\n\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef<HTMLInputElement>(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({ q: event.currentTarget.elements.filterInput.value, page: 0 })\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (ref.current && (!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 id=\"filterInput\"\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() {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\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<{ text: string; value: string }[]>([])\n const groupDataContext = Ctx.context as GuillotinaGroup\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: string) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n }\n getRoles()\n }, [])\n\n const handleResponse = async (\n isError: boolean,\n message: string,\n errorMessage: string\n ) => {\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: string) => {\n const { isError, errorMessage } = await patch({\n user_roles: groupDataContext.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: string) => {\n const { isError, errorMessage } = await patch({\n user_roles: groupDataContext.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: string) => {\n const data: { [key: string]: boolean } = {}\n groupDataContext.users.forEach((user) => {\n data[user] = true\n })\n data[newUserId] = true\n const response = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n const { isError, errorMessage } = await processResponse(response)\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: string) => {\n const data: { [key: string]: boolean } = {}\n groupDataContext.users.forEach((user: string) => {\n data[user] = userToRemove !== user\n })\n const response = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n const { isError, errorMessage } = await processResponse(response)\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) => !groupDataContext.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={(value) => addRole(value as string)}\n />\n <hr />\n {groupDataContext.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 {groupDataContext.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, ErrorInfo } 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 | null | undefined }\n> {\n state = {\n hasError: false,\n errorMsg: '',\n errorStack: '',\n }\n\n componentDidCatch(error: Error, errorInfo: 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 null\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: React.MouseEvent<HTMLAnchorElement>) => {\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: string[]) => {\n let current = ''\n const results: string[] = []\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, BaseFormProps } 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 { GroupCtx, GroupsCtx } 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 {\n GuillotinaCommonObject,\n ItemColumn,\n RegistrySchema,\n} from '../types/guillotina'\nimport { buildQs, parser } from '../lib/search'\nimport { MessageDescriptor } from 'react-intl'\nimport { getActionsObject } from '../lib/helpers'\n\nexport interface RegistrySortValue {\n direction: 'asc' | 'des'\n key: string\n}\nexport interface RegistryProperties {\n Buttons: React.ReactElement\n Panels: React.ReactElement\n default: string[]\n ignoreField: string[]\n}\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.ComponentType<any>\n }\n actions: {\n [key: string]: (props: any) => JSX.Element\n }\n forms: {\n [key: string]: (props: any) => JSX.Element\n }\n behaviors: {\n [key: string]: (props: any | undefined) => JSX.Element | null\n }\n itemsColumn: {\n [key: string]: () => ItemColumn[]\n }\n schemas: {\n [key: string]: RegistrySchema\n }\n properties: {\n [key: string]: RegistryProperties\n }\n components: {\n [key: string]: (props: any) => React.ReactNode | null | undefined\n }\n searchEngineQueryParamsFunction: {\n [key: string]: string\n }\n fieldsToFilter: {\n [key: string]: string[]\n }\n parseSearchQueryParamFunction: {\n [key: string]: (query: string, type: string) => string\n }\n defaultSortValue: {\n [key: string]: RegistrySortValue\n }\n actionsList: {\n [key: string]: (\n multiple: boolean\n ) => {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n }\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 parseSearchQueryParamFunction: {},\n defaultSortValue: {},\n actionsList: {},\n}\n\nexport interface IManageRegistry {\n registry: IRegistry\n getPathComponent: (\n context: GuillotinaCommonObject | undefined,\n path: string,\n fallback?: React.FC\n ) => React.ComponentType<any>\n getComponent: (name: string) => React.ComponentType<any>\n getView: (name: string) => React.ComponentType<any>\n getForm: (type: string, fallback?: React.FC) => React.FC<BaseFormProps>\n getAction: (type: string, fallback?: React.FC) => React.FC\n getBehavior: (type: string, fallback?: React.FC) => React.FC<any>\n getProperties: (type: string) => RegistryProperties\n getItemsColumn: (type: string) => ItemColumn[] | undefined\n getSchemas: (type: string) => RegistrySchema\n getFieldsToFilter: (type: string, fallback?: string[]) => string[]\n getParsedSearchQueryParam: (query: string, type: string) => string\n getDefaultSortValue: (\n type: string,\n fallback?: RegistrySortValue\n ) => RegistrySortValue\n getSearchEngineQueryParamsFunction: (type: string) => string\n getActionsList: (\n type: string,\n multiple: boolean\n ) => {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n }\n}\n\nconst getPathComponent = (\n context: GuillotinaCommonObject | undefined,\n path: string,\n fallback: React.FC | undefined = undefined\n) => {\n if (!context) return () => null\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: string) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getComponent = (name: string) => {\n return registry.components[name]\n}\n\nconst getView = (name: string) => {\n return registry.views[name]\n}\n\nconst getForm = (type: string, fallback?: React.FC<BaseFormProps>) => {\n return registry.forms[type] || fallback || BaseForm\n}\n\nconst getAction = (type: string, fallback?: React.FC) => {\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): RegistrySchema => {\n return registry.schemas[type] || {}\n}\n\nconst getFieldsToFilter = (type: string, fallback: string[] = ['title']) => {\n return registry.fieldsToFilter[type] || fallback\n}\n\nconst getDefaultSortValue = (\n type: string,\n fallback: RegistrySortValue | undefined = {\n key: 'id',\n direction: 'des',\n }\n) => {\n return registry.defaultSortValue[type] || fallback\n}\n\nconst getSearchEngineQueryParamsFunction = (type: string) => {\n return registry.searchEngineQueryParamsFunction[type]\n}\n\nconst getParsedSearchQueryParam = (query: string, type: string) => {\n const parsedFunction = registry.parseSearchQueryParamFunction[type]\n if (!parsedFunction) {\n const fieldsToFilter = getFieldsToFilter(type)\n return buildQs(parser(query, fieldsToFilter))\n }\n return parsedFunction(query, type)\n}\n\nconst getActionsList = (\n type: string,\n multiple: boolean\n): {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n} => {\n const funcActionsList = registry.actionsList[type]\n if (funcActionsList) {\n return funcActionsList(multiple)\n }\n return getActionsObject(multiple)\n}\n\nexport const defaultComponent = (context: GuillotinaCommonObject) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data: Partial<IRegistry>): IManageRegistry {\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((key) => {\n const registryKey = key as keyof IRegistry\n registry[registryKey] = {\n ...registry[registryKey],\n ...data[registryKey],\n } as any\n })\n }\n\n return {\n registry,\n getForm,\n getComponent,\n getPathComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n getFieldsToFilter,\n getParsedSearchQueryParam,\n getDefaultSortValue,\n getSchemas,\n getView,\n getSearchEngineQueryParamsFunction,\n getActionsList,\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 React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { IConfig, useConfig } from '../hooks/useConfig'\nimport { IRegistry, useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport {\n GuillotinaGlobalState,\n GuillotinaReducerActionTypes,\n guillotinaReducer,\n} 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'\n\nfunction loadLocaleData(locale: string) {\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?: Partial<IConfig>\n registry: Partial<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({\n type: GuillotinaReducerActionTypes.SET_PATH,\n payload: {\n path: searchPath,\n },\n })\n }, [searchPath])\n\n useEffect(() => {\n const initContext = async () => {\n const data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({\n type: GuillotinaReducerActionTypes.SET_ERROR,\n payload: {\n errorStatus: 'notallowed',\n },\n })\n return\n } else if (data.status === 404) {\n dispatch({\n type: GuillotinaReducerActionTypes.SET_ERROR,\n payload: {\n errorStatus: 'notallowed',\n },\n })\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({\n type: GuillotinaReducerActionTypes.SET_CONTEXT,\n payload: { context, permissions },\n })\n }\n initContext()\n }, [path, refresh, client])\n\n const ErrorBoundary: React.ComponentType<{\n children: React.ReactNode\n }> = registry.getView('ErrorBoundary')\n const NotAllowed = registry.getView('NotAllowed')\n const NotFound = registry.getView('NotFound')\n const Path = registry.getComponent('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.getPathComponent(state.context, path) as React.FC<{\n state: GuillotinaGlobalState\n }>\n const Action = action.action\n ? (registry.getAction(action.action) as React.FC<any>)\n : 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 !== null && (\n <Action {...action.params} />\n )}\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 !== undefined && (\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: { [key: string]: string } = {\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: false,\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<HTMLInputElement | null>(null)\n\n useEffect(() => {\n if (inputRef && inputRef.current) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev: React.FormEvent) => {\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: string[] = []\nconst extraFields = ['title']\n\ninterface Props {\n onSubmit: (data: IndexSignature) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\ninterface State {\n data?: IndexSignature\n loading: boolean\n error?: unknown\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.getComponent('EditComponent')\n\n const [formData, setFormData] = useState<IndexSignature>({})\n const [errors, setErrors] = useState<IndexSignature<string>>({})\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: IndexSignature<string> = {}\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={(value: string) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(value),\n [key]: value,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(value),\n })\n } else {\n setFormData({ ...formData, [key]: value })\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: string) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint: string) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account: string) {\n this.url = this.base_url + account\n }\n\n async login(username: string, password: string) {\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 as string)\n console.log(token)\n return data.id\n }\n\n storeAuth(data: { token: string; exp: number }) {\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: string) {\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: string) {\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(): HeadersInit {\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","import { ItemModel } from '../models'\nimport { IndexSignature } from './global'\n\ntype ItemsPropertyObject = {\n '@id': string\n '@name': string\n '@type': string\n '@uid': string\n '@absolute_url': string\n title: string\n creation_date: string\n modification_date: string\n uuid: string\n type_name: string\n}\n\nexport type GuillotinaCommonObject = {\n type_name: string\n uuid: string\n is_folderish: boolean\n parent: GuillotinaParentObject\n length: number\n __behaviors__?: string[]\n '@static_behaviors': string[]\n 'guillotina.behaviors.dublincore.IDublinCore'?: IBehaviorDublinCore\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior'?: IWorkflowBehavior\n 'guillotina.behaviors.attachment.IAttachment'?: {\n file: GuillotinaFile\n }\n 'guillotina.behaviors.attachment.IMultiAttachment'?: {\n files: {\n [key: string]: GuillotinaFile\n }\n }\n 'guillotina.contrib.image.behaviors.IImageAttachment'?: {\n image: GuillotinaFile\n }\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment'?: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment'?: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n} & ItemsPropertyObject\n\nexport type SearchItem = {\n id: string\n parent_uuid: string\n path: string\n tid: string\n depth: number\n description: string\n access_roles: string[]\n access_users: string[]\n} & ItemsPropertyObject\n\nexport interface IBehaviorDublinCore {\n title: string\n description: string | null\n creation_date: string\n modification_date: string\n effective_date: string | null\n expiration_date: string | null\n creators: string[]\n tags: string[] | null\n publisher: string | null\n contributors: string[]\n}\n\nexport interface IWorkflowBehavior {\n review_state: string\n history: WorkflowHistory[]\n}\n\ninterface GuillotinaParentObject {\n '@id': string\n '@name': string\n '@type': string\n '@uid': string\n}\n\nexport interface GuillotinaSchema {\n title: string\n $schema: string\n type: string\n required: string[]\n definitions: Definitions\n properties: GuillotinaSchemaProperties\n}\n\nexport interface GuillotinaSchemaProperties {\n [key: string]: GuillotinaSchemaProperty | { $ref: string }[]\n}\n\nexport interface Definitions {\n [key: string]: {\n type: string\n properties: GuillotinaSchemaProperties\n required: string[]\n title: string\n description: string\n }\n}\n\nexport interface GuillotinaSchemaProperty {\n type: string\n title: string\n widget?: string\n readonly?: boolean\n description?: string\n vocabularyName?: string\n vocabulary?: string[]\n items?: GuillotinaSchemaProperty\n properties?: GuillotinaSchemaProperties\n additionalProperties?: GuillotinaSchemaProperties\n typeNameQuery?: string\n labelProperty?: string\n enum?: string[]\n queryCondition?: string\n queryPath?: string\n}\n\nexport type GuillotinaFile = {\n filename: string\n content_type: string\n extension: string\n size: number\n md5: string\n}\n\nexport interface GuillotinaVocabulary {\n '@id': string\n items: GuillotinaVocabularyItem[]\n items_total: number\n}\n\nexport interface GuillotinaVocabularyItem {\n title: string\n token: string\n}\nexport interface GuillotinaSharing {\n local: GuillotinaSharingMap\n inherit: GuillotinaSharingInheritItem[]\n}\n\nexport interface GuillotinaSharingInheritItem extends GuillotinaSharingMap {\n '@id': string\n}\nexport interface GuillotinaSharingMap {\n roleperm: {\n [key: string]: IndexSignature<string>\n }\n prinperm: {\n [key: string]: IndexSignature<string>\n }\n prinrole: {\n [key: string]: IndexSignature<string>\n }\n}\n\nexport interface GuillotinaBehaviors {\n static: string[]\n dynamic: string[]\n available: string[]\n}\n\nexport interface AllPermissions {\n [key: string]: AllPermissionsItem\n}\n\nexport interface AllPermissionsItem {\n prinperm?: PrimPerm[]\n prinrole?: Prinrole[]\n roleperm?: Roleperm[]\n perminhe?: Perminhe[]\n}\n\nexport interface Prinrole {\n principal: string\n role: string\n setting: Setting\n}\n\nexport interface Roleperm {\n permission: string\n role: string\n setting: Setting\n}\nexport interface PrimPerm {\n principal: string\n permission: string\n setting: Setting\n}\nexport interface Perminhe {\n permission: string\n setting: Setting\n}\n\nexport enum Setting {\n Allow = 'Allow',\n AllowSingle = 'AllowSingle',\n Deny = 'Deny',\n Unset = 'Unset',\n}\n\nexport interface Workflow {\n '@id': string\n history: WorkflowHistory[]\n transitions: Transition[]\n}\n\nexport interface WorkflowHistory {\n actor: string\n comments: string\n time: string\n title: string\n type: string\n data: WorkflowHistoryData\n}\n\nexport interface WorkflowHistoryData {\n action: null\n review_state: string\n}\n\nexport interface Transition {\n '@id': string\n title: string\n metadata: IndexSignature\n}\n\nexport interface Addons {\n available: AddonAvailable[]\n installed: string[]\n}\n\nexport interface AddonAvailable {\n id: string\n title: string\n dependencies: any[]\n}\n\nexport interface RegistrySchema {\n filters: RegistrySchemaFilter[]\n}\n\nexport interface RegistrySchemaFilter {\n attribute_key: string\n label: string\n type: string\n values?: { value: string; text: string }[]\n vocabulary?: string\n input_type?: string\n}\n\nexport type ReturnSearch<T> = {\n items: T[]\n items_total: number\n}\n\nexport type ReturnSearchCompatible<T> = {\n member: T[]\n items_count: number\n items: T[]\n items_total: number\n}\n\nexport interface ItemColumn {\n key: string\n label: string\n isSortable?: boolean\n child: ({ model, link, search }: ItemColumnChild) => React.ReactNode\n}\nexport interface ItemColumnChild {\n model: ItemModel\n link?: () => void\n search?: string\n}\n\nexport type GuillotinaUser = {\n user_roles: string[]\n user_groups: string[]\n user_permissions: string[]\n fullname: string\n email: string\n username: string\n} & GuillotinaCommonObject\n\nexport type GuillotinaGroup = {\n user_roles: string[]\n users: string[]\n} & GuillotinaCommonObject\n\nexport type GuillotinaApplication = {\n databases: string[]\n} & GuillotinaCommonObject\n\nexport type GuillotinaDatabase = {\n containers: string[]\n} & GuillotinaCommonObject\n"],"names":["initialState","path","loading","context","undefined","flash","message","type","action","params","permissions","errorStatus","registry","refresh","GuillotinaReducerActionTypes","guillotinaReducer","state","SET_PATH","payload","SET_CONTEXT","SET_ERROR","SET_FLASH","CLEAR_FLASH","SET_ACTION","CLEAR_ACTION","REFRESH","Date","now","transparent","APPLY","AuthContext","createContext","ClientContext","Traversal","props","dispatch","client","url","auth","apply","data","window","scrollTo","top","left","behavior","clearFlash","doAction","cancelAction","hasPerm","permission","filterTabs","tabs","tabsPermissions","result","Object","keys","forEach","item","perm","slice","Error","getContainerFromPath","TraversalContext","TraversalProvider","children","_jsx","Provider","value","useTraversal","traversal","useContext","ClientProvider","useGuillotinaClient","genericMessages","defineMessages","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","multiple","DELETE","text","perms","MOVE","COPY","Button","className","onClick","disabled","dataTest","css","split","concat","formatDate","d","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","get","obj","defValue","pathArray","Array","isArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","debounce","callback","wait","timer","clearTimeout","Modal","isActive","setActive","usePortal","Portal","_jsxs","Confirm","onCancel","onConfirm","intl","useIntl","style","marginTop","formatMessage","PathTree","defaultPath","onSubmit","e","preventDefault","target","display","defaultValue","processResponse","res","ready_body","isError","response","status","json","errorMessage","getErrorMessage","toString","dataError","details","reason","useSetState","useState","setState","setCustomState","useCallback","newPartialState","prevState","error","console","initial","patch","Ctx","endpoint","body","newState","del","post","useCrudContext","AddItem","doSubmit","form","assign","formData","getForm","Form","actionName","Permissions","defaultConfig","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","updates","currentConfig","updatedConfig","entries","currentKey","currentValue","isPlainObject","prototype","call","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","err","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","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","validator","onKeyUp","validatorFn","handlers","uid","mounted","setMounted","newRef","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","rest","useVocabulary","vocabularyName","vocabulary","setVocabulary","getPath","getVocabulary","dataJson","SelectVocabulary","val","getOptions","vocData","token","getProps","setURLParams","p","history","pushState","clean","URLSearchParams","_key","set","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","pathname","events","addEventListener","removeEventListener","navigate","param","patched","originalPushState","args","Event","arguments","dispatchEvent","originalReplaceState","replaceState","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","signal","indexOf","startsWith","dataRequest","getHeaders","fetch","authToken","getToken","headersInit","Accept","Authorization","method","put","newHeaders","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","orParser","parsed","buildQs","lastKey","qsSplit","part","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsSearchFunction","getQueryParamsElasticsearch","getQueryParamsPostresql","start","pageSize","withDepth","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","isSortable","React","Fragment","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","file","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","responseGroups","responseUsers","groupsData","usersData","usersDataResponse","user","user_roles","roles","fullname","groupsDataResponse","group","getRoles","getAllPermissions","req","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reject","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","fileToUpload","Textarea","rows","defaultEvents","on","handler","off","useClickAway","onClickAway","savedCallback","el","contains","eventName","document","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","getSearchEngineQueryParamsFunction","fnName","qsParsed","typeNameParsed","newValuesLabel","log","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","getComponent","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","observer","_this","onRejected","thenable","IImageAttachment","sizesImages","SizeImages","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","bind","s","v","IMultiImageAttachment","StrictModeDroppable","droppableId","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","o","reorder","list","startIndex","endIndex","splice","removed","then","_Pact","array","check","_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","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","getActionsList","some","onAction","actionKey","actionKeyTyped","actionObject","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","useItemsActions","AllItemsCheckbox","ItemCheckbox","absId","ItemsActionsDropdown","every","Pagination","total","doPaginate","pager","maxPages","Math","ceil","currentPage","totalPages","totalItems","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","icons","type_name","creation_date","modification_date","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","getData","defaultSortValue","getDefaultSortValue","direction","abort","getIcon","tab","input_type","filterData","column","BehaviorsView","getBehavior","__behaviors__","GetBehavior","behaviorName","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","savePermission","random","PermissionPrinrole","PermissionRoleperm","role_permissions","no_role_permissions","no_principal_permissions","no_principal_roles","principal_permissions","principal_roles","allow","deny","allow_single","unset","add_permissions","select_type","PanelPermissions","ctx","reset","setReset","useMemo","row","AddPermission","defaultOptions","init","principalsData","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","availableData","addItem","marginBottom","CreateButton","Config","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","searchValue","setSearchValue","onSearchQuery","q","elements","filterInput","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","appContext","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","userDataContext","user_groups","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","groupDataContext","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","parseSearchQueryParamFunction","actionsList","getPathComponent","defaultComponent","funcCols","getView","getAction","getParsedSearchQueryParam","parsedFunction","funcActionsList","is_folderish","useRegistry","registryKey","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","Setting"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"react-gmi.umd.js","sources":["../src/guillo-gmi/reducers/guillotina.ts","../src/guillo-gmi/contexts/index.tsx","../src/guillo-gmi/locales/generic_messages.ts","../src/guillo-gmi/lib/helpers.ts","../src/guillo-gmi/components/input/button.tsx","../src/guillo-gmi/lib/utils.ts","../src/guillo-gmi/components/modal.tsx","../src/guillo-gmi/lib/processResponse.ts","../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/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/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/models/sharing.ts","../src/guillo-gmi/models/index.ts","../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/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","../src/guillo-gmi/types/guillotina.ts"],"sourcesContent":["import { 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?: string\n registry: IndexSignature\n refresh?: number\n}\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: [],\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport enum GuillotinaReducerActionTypes {\n SET_PATH = 'SET_PATH',\n SET_CONTEXT = 'SET_CONTEXT',\n SET_ERROR = 'SET_ERROR',\n SET_FLASH = 'SET_FLASH',\n CLEAR_FLASH = 'CLEAR_FLASH',\n SET_ACTION = 'SET_ACTION',\n CLEAR_ACTION = 'CLEAR_ACTION',\n REFRESH = 'REFRESH',\n APPLY = 'APPLY',\n}\nexport function guillotinaReducer(\n state: GuillotinaGlobalState,\n action: { type: GuillotinaReducerActionTypes; payload: IndexSignature }\n): GuillotinaGlobalState {\n switch (action.type) {\n case GuillotinaReducerActionTypes.SET_PATH:\n return { ...state, path: action.payload.path, loading: true }\n\n case GuillotinaReducerActionTypes.SET_CONTEXT:\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case GuillotinaReducerActionTypes.SET_ERROR:\n return {\n ...state,\n errorStatus: action.payload.errorStatus,\n loading: false,\n }\n\n case GuillotinaReducerActionTypes.SET_FLASH:\n return { ...state, ...action.payload }\n\n case GuillotinaReducerActionTypes.CLEAR_FLASH:\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case GuillotinaReducerActionTypes.SET_ACTION:\n return { ...state, action: action.payload }\n case GuillotinaReducerActionTypes.CLEAR_ACTION:\n return { ...state, action: { action: undefined, params: undefined } }\n\n case GuillotinaReducerActionTypes.REFRESH:\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case GuillotinaReducerActionTypes.APPLY:\n return {\n ...state,\n context: { ...state.context, ...action.payload.context },\n }\n\n default:\n return state\n }\n}\n","import { Dispatch, useContext, createContext } from 'react'\nimport { GuillotinaClient } from '../lib/client.js'\nimport { Auth } from '../lib/auth.js'\nimport { IndexSignature } from '../types/global'\nimport {\n GuillotinaGlobalState,\n GuillotinaReducerActionTypes,\n} from '../reducers/guillotina'\nimport { GuillotinaCommonObject } from '../types/guillotina.js'\nimport { IManageRegistry } from '../hooks/useRegistry.js'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext<GuillotinaClient | null>(null)\n\ninterface PropsTraversal {\n client: GuillotinaClient\n auth: Auth\n state: GuillotinaGlobalState\n dispatch: Dispatch<{\n type: GuillotinaReducerActionTypes\n payload: IndexSignature\n }>\n registry: IManageRegistry\n flash?: (action: string, result: string) => void\n url: string\n children?: React.ReactNode\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({\n type: GuillotinaReducerActionTypes.REFRESH,\n payload: { transparent },\n })\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(): GuillotinaCommonObject {\n if (this.state.context === undefined) {\n throw new Error('Context is not loaded')\n }\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data: IndexSignature) {\n // apply a optimistic update to context\n this.dispatch({\n type: GuillotinaReducerActionTypes.APPLY,\n payload: { context: data },\n })\n }\n\n flash(message: string, type: string) {\n this.dispatch({\n type: GuillotinaReducerActionTypes.SET_FLASH,\n payload: { flash: { message, type } },\n })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({\n type: GuillotinaReducerActionTypes.CLEAR_FLASH,\n payload: {},\n })\n }\n\n doAction(action: string, params = {}) {\n this.dispatch({\n type: GuillotinaReducerActionTypes.SET_ACTION,\n payload: { action, params },\n })\n }\n\n cancelAction() {\n this.dispatch({\n type: GuillotinaReducerActionTypes.CLEAR_ACTION,\n payload: {},\n })\n }\n\n hasPerm(permission: string) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs: IndexSignature, tabsPermissions: IndexSignature) {\n const result: IndexSignature = {}\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>(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 const traversal = useContext(TraversalContext)\n if (!traversal) {\n throw new Error('useTraversal must be used within a TraversalProvider')\n }\n return traversal\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 const client = useContext(ClientContext)\n if (!client) {\n throw new Error('useGuillotinaClient must be used within a ClientProvider')\n }\n return client\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 { MessageDescriptor } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { IndexSignature } from '../types/global'\n\nexport const classnames = (classNames: (string | boolean)[]) => {\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: IndexSignature<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: string) {\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: string) {\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: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve()\n }, ms)\n })\n}\n\nexport const getActionsObject = (\n multiple: boolean\n): {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n} => ({\n DELETE: {\n text: genericMessages.delete,\n perms: ['guillotina.DeleteContent'],\n action: multiple ? 'removeItems' : 'removeItem',\n },\n MOVE: {\n text: genericMessages.move_to,\n perms: ['guillotina.MoveContent'],\n action: multiple ? 'moveItems' : 'moveItem',\n },\n COPY: {\n text: 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 = [...className.split(' '), 'button']\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 { 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: T\n): T => {\n // If path is not defined or it has false value\n if (!path) return defValue\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 if (pathArray === null) return defValue\n\n return (pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) ??\n defValue) as T\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: string) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n\nexport function debounce<T extends unknown[], U>(\n callback: (...args: T) => PromiseLike<U> | U,\n wait: number\n) {\n let timer: ReturnType<typeof setTimeout>\n\n return (...args: T): Promise<U> => {\n clearTimeout(timer)\n return new Promise((resolve) => {\n timer = setTimeout(() => resolve(callback(...args)), wait)\n })\n }\n}\n","import usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { get } from '../lib/utils'\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?: React.ReactNode\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(get(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","interface DataError {\n details: string\n reason: string\n}\nconst getErrorMessage = (\n dataError: DataError,\n defaultValue: string | number\n) => {\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\ninterface IResponse<T = unknown> {\n loading?: boolean\n isError: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\n\nexport async function processResponse<T>(\n res: Response,\n ready_body = true\n): Promise<IResponse<T>> {\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).toString(),\n response: res,\n }\n}\n","import { useState, useCallback } from 'react'\n\n// **** Types **** //\n\nexport type TSetState<T> = (newPartialState: Partial<T>) => void\n\n// **** Functions **** //\n\n/**\n * Do setState like react class component.\n */\nfunction useSetState<T extends object>(initialState: T): [T, TSetState<T>] {\n const [state, setState] = useState<T>(initialState)\n // Function which accepts a partial state to merge\n const setCustomState = useCallback((newPartialState: Partial<T>) => {\n try {\n setState(\n (prevState): T => {\n return { ...prevState, ...newPartialState }\n }\n )\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n }, [])\n // Return\n return [state, setCustomState]\n}\n\n// **** Export Default **** //\n\nexport default useSetState\n","import { Traversal, useTraversal } from '../contexts'\nimport { processResponse } from '../lib/processResponse'\nimport useSetState from './useSetState'\n\ninterface State<T> {\n loading?: boolean\n isError?: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\nconst initial = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nfunction patch<T>(\n setState: (value: Partial<State<T>>) => void,\n Ctx: Traversal\n) {\n return async (\n data = {},\n endpoint?: string,\n body = false\n ): Promise<State<T>> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse<T>(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}\n\nfunction del<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (\n data = {},\n endpoint?: string,\n body = false\n ): Promise<State<T>> => {\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}\n\nfunction post<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (\n data = {},\n endpoint?: string,\n body = true\n ): Promise<State<T>> => {\n setState({ loading: true })\n let newState: State<T> = {}\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}\n\nfunction get<T>(setState: (value: Partial<State<T>>) => void, Ctx: Traversal) {\n return async (endpoint?: string): Promise<State<T>> => {\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}\n// const get = (\n// setState: (value: Partial<State>) => void,\n// Ctx: Traversal\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'\nimport { IndexSignature } from '../types/global'\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, undefined)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data: IndexSignature) {\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 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\nexport interface IConfig {\n DisabledTypes: string[]\n PageSize: number\n DelayActions: number\n Permissions: string[]\n SearchEngine: string\n SizeImages?: string[]\n icons?: { [key: string]: string }\n properties_default?: string[]\n properties_ignore_fields?: string[]\n fieldHaveDeleteButton: (schema: GuillotinaSchemaProperty) => boolean\n flash?: (message: string, type: string) => void\n}\n\nexport const defaultConfig: 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({}, defaultConfig)\n\nfunction addConfig(updates: Partial<IConfig>, currentConfig: IConfig): IConfig {\n let updatedConfig: IConfig = { ...currentConfig }\n\n Object.entries(updates).forEach(([key, value]) => {\n const currentKey = key as keyof IConfig\n const currentValue = currentConfig[currentKey]\n\n if (Array.isArray(value) && Array.isArray(currentValue)) {\n // Correctly type the array concatenation\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: [...currentValue, ...value],\n }\n } else if (isPlainObject(value) && isPlainObject(currentValue)) {\n // Correctly type the object merging\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: { ...currentValue, ...value },\n }\n } else {\n // Directly assign all other types\n updatedConfig = {\n ...updatedConfig,\n [currentKey]: value,\n }\n }\n })\n\n return updatedConfig as IConfig\n}\n\n// Helper function to check if a value is a plain object (and not a React node, etc.)\nfunction isPlainObject(value: any): value is object {\n return Object.prototype.toString.call(value) === '[object Object]'\n}\n\nexport function useConfig(cfg = {}) {\n const ref = useRef<IConfig>()\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].id\n const itemsNames = items\n .map((item) => item.id)\n .join(', ')\n .replace(`, ${last}`, ` and ${last}`)\n\n async function removeItems() {\n const errors: unknown[] = []\n setLoading(true)\n\n const actions = items.map(async (item) => {\n const res = await Ctx.client.delete(`${Ctx.path}${item.id}`, {})\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<HTMLInputElement>(null)\n const [state, setState] = useState<boolean>(!!checked)\n\n useEffect(() => {\n if (state !== checked) {\n setState(!!checked)\n }\n }, [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 { ChangeEvent, useEffect, useState } from 'react'\n\nconst applyValidators = (\n value: string,\n validators: ((value: string) => boolean)[]\n) => {\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 = (\n onChange: (value: string) => void | undefined,\n value: string,\n validators: ((value: string) => boolean)[]\n) => {\n const [state, setState] = useState({ hasError: false, value: value })\n\n const onUpdate = (ev: ChangeEvent<HTMLInputElement>) => {\n const value: string = ev && ev.target ? ev.target.value : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validators) === 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: string) => !!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 | undefined\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: ((value: string) => boolean)[] = []\n if (required) {\n validatorFn = Array.isArray(validator)\n ? [...validator, 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 const newRef = ref || useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (\n autofocus &&\n !error &&\n newRef != null &&\n typeof newRef !== 'function' &&\n newRef.current\n ) {\n newRef.current.focus()\n }\n }, [mounted, autofocus, newRef, 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 onChange,\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 onChange={onChange}\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: React.SyntheticEvent<HTMLFormElement>) => {\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?: IndexSignature\n onSubmit: (formData: IndexSignature, initialData: IndexSignature) => 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<IndexSignature | null>(null)\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n const initialState: IndexSignature = {}\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 === null) {\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: string) => (value: boolean | string) => {\n ref.current![field] = value\n }\n\n const GetTag = ({ field }: { field: string }) => {\n const property = properties[field] as GuillotinaSchemaProperty\n const key = (property.widget ||\n property.type) as keyof typeof formComponents\n\n const Tag: React.ComponentType<any> = formComponents[key]\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 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: React.ChangeEvent<HTMLSelectElement>) => {\n if (multiple) {\n let selectValue: string[] = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n selectValue = selectValue.concat([ev.target.selectedOptions[i].value])\n }\n if (onChange) {\n onChange(selectValue)\n }\n } else {\n if (onChange) {\n onChange(ev.target.value)\n }\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 { 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) {\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 | string[]\n dataTest?: string\n multiple?: boolean\n onChange?: (value: string | 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 (\n get<GuillotinaVocabularyItem | null>(vocabulary, 'data.items', null)\n ) {\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: URLSearchParams) => {\n return window.history.pushState(\n 0,\n '0',\n '' + '?' + p.toString().replace(/%2F/g, '/')\n )\n}\n\nconst clean = (to: IndexSignature) => {\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: IndexSignature, replace?: boolean) => {\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: string) => {\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\n const originalPushState = window.history.pushState\n window.history.pushState = function (...args) {\n const result = originalPushState.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event('pushState')\n event.arguments = args\n\n dispatchEvent(event)\n return result\n }\n\n const originalReplaceState = window.history.replaceState\n window.history.replaceState = function (...args) {\n const result = originalReplaceState.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event('replaceState')\n event.arguments = args\n\n dispatchEvent(event)\n return result\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: React.MouseEvent<HTMLAnchorElement>) {\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: React.MouseEvent<HTMLAnchorElement>) {\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>(null)\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 { LightFile } from '../types/global'\nimport { 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(\n path: string,\n data?: RequestInit,\n headers?: HeadersInit,\n signal?: AbortSignal\n ) {\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 const dataRequest = data || {}\n dataRequest.headers = this.getHeaders()\n if (headers) {\n dataRequest.headers = { ...dataRequest.headers, ...headers }\n }\n if (signal) {\n dataRequest.signal = signal\n }\n return await fetch(`${this.url}${path}`, dataRequest)\n }\n\n getHeaders(): HeadersInit {\n const authToken = this.auth.getToken()\n const headersInit: HeadersInit = {}\n\n if (!authToken) return headersInit\n\n headersInit.Accept = 'application/json'\n headersInit['Content-Type'] = 'application/json'\n headersInit.Authorization = 'Bearer ' + authToken\n return headersInit\n }\n\n async post(path: string, data: unknown) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path: string, signal?: AbortSignal) {\n return await this.request(path, undefined, undefined, signal)\n }\n\n async put(path: string, data: unknown) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path: string, data: unknown) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path: string, data: LightFile) {\n const headers = this.getHeaders()\n const newHeaders: HeadersInit = {}\n newHeaders['Content-Type'] = data['content-type']\n newHeaders['X-UPLOAD-FILENAME'] = data.filename\n newHeaders['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n {\n ...headers,\n ...newHeaders,\n }\n )\n }\n\n async delete(path: string, data: unknown) {\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(\n qs: string,\n defaultField: string | string[] | undefined = DEFAULT_FIELD\n): 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: string[] = []\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: string | undefined = 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 { IndexSignature, LightFile } from '../types/global'\n\nimport { Auth } from './auth'\nimport {\n GuillotinaGroup,\n GuillotinaUser,\n ItemColumn,\n ItemColumnChild,\n ReturnSearchCompatible,\n} from '../types/guillotina'\n\nconst cacheTypes: IndexSignature = {}\nconst cacheSchemas: IndexSignature = {}\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: string) {\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: string) {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path: string) {\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: string) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsSearchFunction(name: string) {\n if (name === 'getQueryParamsElasticsearch') {\n return this.getQueryParamsElasticsearch\n }\n return this.getQueryParamsPostresql\n }\n getQueryParamsPostresql({\n start = 0,\n pageSize = 10,\n withDepth = true,\n }: {\n start?: number\n pageSize?: number\n path?: string\n withDepth?: boolean\n }) {\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 start?: number\n pageSize?: number\n path: string\n withDepth?: boolean\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(): ItemColumn[] {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n key: 'icon',\n label: '',\n isSortable: false,\n child: ({ model }: ItemColumnChild) => (\n <td style={smallcss}>{<Icon icon={model.icon} />}</td>\n ),\n },\n {\n label: 'type',\n key: 'type_name',\n isSortable: false,\n child: ({ model }: ItemColumnChild) => (\n <TdLink style={smallcss} model={model}>\n <span className=\"tag\">{model.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n key: 'title',\n isSortable: true,\n child: ({ model, search }: ItemColumnChild) => (\n <TdLink model={model}>\n {model.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{model.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n key: 'creation_date',\n isSortable: true,\n child: ({ model }: ItemColumnChild) => {\n return (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {model.created}\n </td>\n )\n },\n },\n {\n label: 'modified',\n key: 'modification_date',\n isSortable: true,\n child: ({ model }: ItemColumnChild) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {model.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat<T>(data: { items: T[]; items_total: number }) {\n const result: ReturnSearchCompatible<T> = {\n ...data,\n member: data.items,\n items_count: data.items_total,\n }\n return result\n }\n\n async search<T>(\n path: string,\n params: string | IndexSignature<string>,\n container = false,\n prepare = true,\n signal?: AbortSignal\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\n ? toQueryString(params as IndexSignature<string>)\n : params\n const url = `${path}@search?${query}`\n const res = await this.rest.get(url, signal)\n const data = await res.json()\n return this.applyCompat<T>(data)\n }\n\n async canido(path: string, permissions: string | string[]) {\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: string, data: unknown) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path: string) {\n const url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path: string, data: unknown) {\n return await this.rest.delete(path, data)\n }\n\n async create(path: string, data: unknown) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path: string, data: unknown) {\n return await this.create(path, data)\n }\n\n async patch(path: string, data: unknown) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path: string, file: LightFile) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path: string) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path: string, name: string) {\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: string) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path: string, key: string) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path: string, key: string) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(\n path: string\n ): Promise<{\n groups: GuillotinaGroup[]\n users: GuillotinaUser[]\n }> {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [responseGroups, responseUsers] = await Promise.all([groups, users])\n let groupsData: GuillotinaGroup[] = []\n let usersData: GuillotinaUser[] = []\n\n if (responseGroups.ok) {\n const groupsDataResponse = await responseGroups.json()\n groupsData = groupsDataResponse.map(\n (group: {\n '@name': string\n id: string\n title: string\n users: string[]\n roles: string[]\n }) => {\n return {\n '@name': group.id,\n user_roles: group.roles,\n users: group.users,\n }\n }\n )\n }\n if (responseUsers) {\n const usersDataResponse = await responseUsers.json()\n usersData = usersDataResponse.map(\n (user: {\n '@name': string\n id: string\n fullname: string\n email: string\n roles: string[]\n }) => {\n return {\n '@name': user.id,\n user_roles: user.roles,\n fullname: user.fullname,\n email: user.email,\n }\n }\n )\n }\n return {\n groups: groupsData,\n users: usersData,\n }\n }\n\n async getRoles(path: string) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path: string) {\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: string) {\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: string, container: string, auth: Auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = (file: File) => {\n return new Promise<LightFile>((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e?.target?.result\n if (fileData) {\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n } else {\n reject('Error reading file')\n }\n }\n })\n}\n\nconst extractPermissions = (data: IndexSignature) => {\n let result: string[] = []\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 } 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({ label, onChange, dataTest }: Props) {\n const intl = useIntl()\n const changed = async (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.files) {\n const fileToUpload = await lightFileReader(event.target.files[0])\n onChange(fileToUpload)\n }\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 { ChangeEvent, 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: ChangeEvent<HTMLTextAreaElement>) => {\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 = (\n obj: Document,\n type: keyof DocumentEventMap,\n handler: (ev: Event) => void\n) => obj.addEventListener(type, handler)\nconst off = (\n obj: Document,\n type: keyof DocumentEventMap,\n handler: (ev: Event) => void\n) => obj.removeEventListener(type, handler)\n\nexport default function useClickAway(\n ref: React.RefObject<HTMLElement>,\n onClickAway: (event: Event) => void,\n events = defaultEvents\n) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event: Event) => {\n const { current: el } = ref\n el && !el.contains(event.target as Node) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName as keyof DocumentEventMap, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName as keyof DocumentEventMap, 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 { debounce, get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\nimport { IndexSignature } from '../../types/global'\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,\n path = undefined,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = undefined,\n typeNameQuery = undefined,\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<HTMLInputElement>(null)\n const { PageSize, SearchEngine } = useConfig()\n const [valueLabel, setValueLabel] = useState<Partial<SearchItem> | undefined>(\n undefined\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 inicializeLabels = async () => {\n if (labelProperty !== 'id' && value) {\n let searchTermQs = ''\n const searchTermParsed = [`id`, value]\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(fnName)({\n path: traversal.path,\n start: 0,\n pageSize: PageSize,\n withDepth: false,\n })\n let typeNameParsed: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce<IndexSignature<string>>(\n (result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n },\n {}\n )\n setValueLabel(newValuesLabel)\n }\n }\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n console.log('handle search input')\n setOptions({ loading: true })\n let searchTermQs = ''\n let searchTermParsed: string[][] = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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: string[][] = []\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 sortParsed.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<SearchItem>(\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: SearchItem) => {\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 console.log('on clic btn', options)\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 { debounce, get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\nimport { IndexSignature } from '../../types/global'\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,\n path = undefined,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = undefined,\n typeNameQuery = undefined,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [valuesLabel, setValuesLabels] = useState<IndexSignature | undefined>(\n undefined\n )\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef<HTMLInputElement>(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: string[][] = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newItems: SearchItem[] =\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 { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(fnName)({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n let typeNameParsed: string[][] = []\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<SearchItem>(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce<IndexSignature<string>>(\n (result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n },\n {}\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: React.KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Enter' &&\n (event.target as HTMLInputElement).value !== ''\n ) {\n onChange([...value, (event.target as HTMLInputElement).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<HTMLDivElement>(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'\nimport { EditableFieldValue, LightFile } from '../../types/global'\nimport { GuillotinaSchemaProperty } from '../../types/guillotina'\n\ninterface Props {\n field: string\n value: EditableFieldValue\n ns?: string\n schema?: GuillotinaSchemaProperty\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.getComponent('EditComponent')\n const RenderFieldComponent = Ctx.registry.getComponent('RenderFieldComponent')\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified =\n schema !== undefined && modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (\n ev: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\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 as LightFile\n\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 (\n ev: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\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 && schema && 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: boolean) => {\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 { IntlShape, 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 SearchItem,\n} from '../../types/guillotina'\nimport { EditableFieldValue, IndexSignature } from '../../types/global'\n\nconst plain = ['string', 'number', 'boolean']\ntype PlainType = string | boolean | number\n\ninterface RenderFieldProps {\n value: EditableFieldValue\n Widget?: React.ComponentType<{\n value: EditableFieldValue\n schema?: GuillotinaSchemaProperty\n modifyContent?: boolean\n }>\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 as PlainType\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item: EditableFieldValue, index) => (\n <div key={`renderField_${index}_${schema?.title}`}>\n <RenderField value={item} />\n </div>\n ))\n }\n if (schema?.properties?.key !== undefined) {\n return Object.keys(value).map((key) => (\n <FieldValue\n field={get(schema, `properties.${key}.title`, key)}\n schema={schema.properties!.key as GuillotinaSchemaProperty}\n value={get(value as IndexSignature, key, {})}\n key={key}\n />\n ))\n }\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\ninterface FieldValueProps {\n field: string\n value: EditableFieldValue\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: IntlShape) => {\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<string[]>([])\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: string[]) => {\n setIsLoadingData(true)\n let searchTermQs = ''\n\n const searchTermParsed = ['__or', `id=${valuesToSearch.join('%26id=')}`]\n const { getSearchEngineQueryParamsFunction } = traversal.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n const qsParsed = traversal.client.getQueryParamsSearchFunction(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<SearchItem>(\n traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\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: string[] = []\n if (typeof value === 'string' && value) {\n valuesToSearch = [value]\n } else if (Array.isArray(value)) {\n valuesToSearch = value\n }\n if (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 =\n 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'] as string[]) ?? []).map(\n (value: string) => {\n return (\n get<GuillotinaVocabularyItem[]>(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n }\n )\n }\n\n return renderProps\n }\n return <RenderField {...getRenderProps()} />\n}\n\ninterface RenderFieldComponentProps {\n schema: GuillotinaSchemaProperty\n field: string\n val: EditableFieldValue\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: EditableFieldValue\n schema: GuillotinaSchemaProperty\n Widget?: React.ComponentType<any>\n } = {\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 as string).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 as string | string[]\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 {\n GuillotinaFile,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport {\n EditableFieldValue,\n IndexSignature,\n LightFile,\n} from '../../types/global'\n\ninterface Props {\n schema: GuillotinaSchemaProperty\n val: EditableFieldValue\n setValue: (value: EditableFieldValue) => 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 || []) as string[]}\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}\n />\n </>\n )\n } else if (schema?.widget === 'search') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInput\n value={val as string}\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}\n />\n </>\n )\n } else if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={(val || '') as string}\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', '')}\n val={(val || []) as string[]}\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 || []) as string[]}\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 || []) as string[]}\n className={className}\n onChange={(val) => setValue(val as string[])}\n ref={ref as Ref<HTMLInputElement>}\n dataTest={dataTest}\n />\n </>\n )\n } else if (schema?.widget === 'file') {\n const value = val as GuillotinaFile\n return (\n <FileUpload\n onChange={(ev) => setValue(ev as LightFile)}\n label={get(value, 'filename', undefined)}\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 || '') as string}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n onChange={setValue}\n vocabularyName={get(schema, 'vocabularyName', '')}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n\n return (\n <Select\n value={(val || '') as string}\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<GuillotinaSchemaProperty | null>(\n schema,\n `properties.${key}`,\n null\n )\n const requiredFields: string[] = get(schema, 'required', [])\n if (!subSchema) return null\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 } as IndexSignature)\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 || '') as string}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: {\n file: GuillotinaSchemaProperty\n }\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.file}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties.file}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { get } from '../../lib/utils'\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<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\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 if (!file) {\n return\n }\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={\n get(\n properties,\n 'files.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { LightFile } from '../../types/global'\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<LightFile | null>(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const [showConfirmToDelete, setShowConfirmToDelete] = useState(false)\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\n ev.preventDefault()\n setLoading(true)\n setError(undefined)\n if (!file) {\n return\n }\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(null)\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'] as GuillotinaSchemaProperty}\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { LightFile } from '../../types/global'\nimport { get } from '../../lib/utils'\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<LightFile | undefined>(undefined)\n const [fileKeyToDelete, setFileKeyToDelete] = useState<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _sizesImages\n\n const uploadFile = async (ev: React.MouseEvent<HTMLButtonElement>) => {\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 if (!file) {\n return\n }\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={\n get(\n properties,\n 'images.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 DropResult,\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 GuillotinaSchemaProperty,\n} from '../../types/guillotina'\nimport { get } from '../../lib/utils'\nimport { LightFile } from '../../types/global'\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: string[], startIndex: number, endIndex: number) => {\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: {\n [key: string]: GuillotinaFile\n }\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<LightFile | undefined>(undefined)\n const [fileKeyToDelete, setFileKeyToDelete] = useState<string | undefined>(\n undefined\n )\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<string | undefined>(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: DropResult) {\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: React.MouseEvent<HTMLButtonElement>) => {\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={\n get(\n properties,\n 'images.additionalProperties',\n {}\n ) as GuillotinaSchemaProperty\n }\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 { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { useEffect, useState } from 'react'\n\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { Workflow } from '../../types/guillotina'\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<Workflow>()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const [definition, setDefinition] = useState<Workflow | undefined>(undefined)\n const [workflowAction, setWorkflowAction] = useState<string | undefined>(\n undefined\n )\n const vocabulary = useVocabulary('workflow_states')\n const currentState = Ctx.context[\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior'\n ]!['review_state']\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(undefined)\n }\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(undefined)}\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 { Fragment } from 'react'\n\nexport function PanelActions() {\n const traversal = useTraversal()\n const intl = useIntl()\n const ACTIONS_OBJECT = traversal.registry.getActionsList(\n traversal.context['@type'],\n false\n )\n\n const hasPerm = (perms: string[]) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey: keyof typeof ACTIONS_OBJECT) => {\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 const actionKeyTyped = actionKey as keyof typeof ACTIONS_OBJECT\n const actionObject = ACTIONS_OBJECT[actionKeyTyped]\n if (hasPerm(actionObject.perms)) {\n return (\n <button\n key={`panel_action_${actionObject.text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKeyTyped)\n }}\n >\n {intl.formatMessage(actionObject.text)}\n </button>\n )\n }\n })}\n </Fragment>\n )\n}\n","import { Traversal, useTraversal } from '../../contexts'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\nimport { AddonAvailable, Addons } from '../../types/guillotina'\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?: {\n available: AddonAvailable[]\n installed: AddonAvailable[]\n }\n loading: boolean\n error?: Error\n }>({\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: Addons = await response.json()\n setState({ ...state, loading: false, data: prepareData(data) })\n } catch (err) {\n setState({ ...state, loading: false, error: err as Error })\n }\n }\n }\n getAddons()\n }, [action])\n\n const installAddon = async (Ctx: Traversal, key: string) => {\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: Traversal, key: string) => {\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: Addons) => {\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 = (\n array: AddonAvailable[]\n): {\n [key: string]: AddonAvailable\n} =>\n array.reduce((obj, item) => {\n return {\n ...obj,\n [item.id]: item,\n }\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: string) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior: string) => 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 { SearchItem } from '../types/guillotina'\n\nexport const 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 traversal = useTraversal()\n const actions = traversal.registry.getActionsList(\n traversal.context['@type'],\n true\n )\n const [selected, setSelected] = useState<{\n all: boolean\n [key: string]: boolean\n }>({\n all: false,\n })\n function onSelectAllItems(checked: boolean) {\n setSelected(\n items.reduce(\n (obj, item) => {\n return {\n ...obj,\n [`${item.path}/${item.id}`]: checked,\n }\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item: SearchItem) {\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: string) {\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\nexport const useItemsActions = () => {\n const { onAction, onSelectOneItem, onSelectAllItems, selected } = useContext(\n ItemsActionsCtx\n )\n if (!onAction || !onSelectOneItem || !onSelectAllItems || !selected) {\n throw new Error('useItemsActions must be used inside ItemsActionsProvider')\n }\n return { onAction, onSelectOneItem, onSelectAllItems, selected }\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 } = useItemsActions()\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 } = useItemsActions()\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 traversal = useTraversal()\n const ACTIONS_OBJECT = traversal.registry.getActionsList(\n traversal.context['@type'],\n true\n )\n const { selected, onAction } = useItemsActions()\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(ACTIONS_OBJECT).map((action) => ({\n text: intl.formatMessage(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 {\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: GuillotinaSharing | undefined) {\n if (element === undefined) {\n throw new Error('Sharing element is undefined')\n }\n this.local = element.local || base.local\n this.inherit = element.inherit || base.inherit\n }\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role: string) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal: string) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role: string) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\nimport { GuillotinaCommonObject, SearchItem } from '../types/guillotina'\n\nexport * from './sharing'\n\nexport class ItemModel {\n item: SearchItem | GuillotinaCommonObject\n url: string\n constructor(item: SearchItem | GuillotinaCommonObject, 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 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.id\n }\n\n get id() {\n if ('id' in this.item) {\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(): string {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\nimport { ItemColumn, 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: ItemColumn[]\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<string | undefined>(undefined)\n const defaultRenderValue = location.get(query) || ''\n\n useEffect(() => {\n let value = defaultRenderValue\n if (options && (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<string | undefined>(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'\nimport { RegistrySchemaFilter, 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: RegistrySchemaFilter[] =\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: number\n\n try {\n page = parseInt(location.get('page') || '0')\n } catch {\n page = 0\n }\n\n let searchParsed: string[][] | undefined = undefined\n if (search && search !== '') {\n const fieldsToFilter = Ctx.registry.getFieldsToFilter(Ctx.context['@type'])\n searchParsed = parser(search, fieldsToFilter)\n }\n\n let typeParsed: string[][] | undefined = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n let sortParsed: string[][] | undefined = 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: string) => {\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: string[][] = []\n const resultDynamicLocation: string[] = []\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 const getData = async () => {\n setState({ loading: true, total: Ctx.context.length })\n const { getSearchEngineQueryParamsFunction } = Ctx.registry\n const fnName = getSearchEngineQueryParamsFunction(SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type'],\n undefined\n )\n sortParsed = parser(\n `_sort_${defaultSortValue.direction}=${defaultSortValue.key}`\n )\n }\n const qsParsed = Ctx.client.getQueryParamsSearchFunction(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<SearchItem>(\n Ctx.path,\n qs,\n false,\n false,\n signal\n )\n setState({\n items: data.items,\n loading: false,\n total: data.items_count,\n })\n }\n getData()\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: number) => {\n setLocation({ page: page })\n }\n\n const getIcon = (key: string, isSortable: boolean) => {\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: string[] = [\n ...(context.__behaviors__ ?? []),\n ...Object(context['@static_behaviors']),\n ]\n\n const GetBehavior = (behaviorName: string) => {\n const Cls = getBehavior(behaviorName, BehaviorNotImplemented)\n return (\n <Cls\n values={context[behaviorName as keyof GuillotinaCommonObject]}\n properties={get(\n schema,\n ['definitions', behaviorName, 'properties'],\n {}\n )}\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'\nimport { get } from '../../lib/utils'\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 | unknown\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: string[] =\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(\n Ctx.path,\n Ctx.context.type_name\n )\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={get(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={get(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 savePermission = async () => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals ?? []}\n onChange={(value) => setState({ principal: value as string })}\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={(values) => {\n setState({ permission: values as string[] })\n }}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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 savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form_data) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals ?? []}\n onChange={(value) => setState({ principal: value as string })}\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={(values) => {\n setState({ roles: values as string[] })\n }}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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 savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n appendDefault\n options={roles}\n onChange={(value) => setState({ role: value as string })}\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={(values) => {\n setState({ permission: values as string[] })\n }}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value) => setState({ setting: value as string })}\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, useMemo, 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 = useMemo(() => {\n if (result) {\n return new Sharing(result)\n }\n return null\n }, [result])\n if (perms === null) {\n return null\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['@name'],\n value: group['@name'],\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname || user['@name'],\n value: user['@name'],\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: string) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">\n {intl.formatMessage(messages.add_permissions)}\n </h1>\n <p>{intl.formatMessage(messages.select_type)}</p>\n <Select\n options={defaultOptions}\n onChange={(value) => setState({ current: value as string })}\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 = (\n items: {\n value: string\n text: string\n }[],\n already: string[],\n title: string\n) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\ninterface Props {\n items: string[]\n available?: {\n value: string\n text: string\n }[]\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>(null)\n\n const [result, setResult] = useState(items)\n const availableData = prepareAvailable(available || [], result, title)\n\n const remove = (value: string) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value: string) => {\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 as string)\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'\nimport { FilterFormElement } from '../types/global'\n\ninterface State {\n types: string[]\n isActive?: boolean\n}\nconst initialState = { types: [] }\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: string[] = 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: string) => {\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: string[] = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({\n q: event.currentTarget.elements.filterInput.value,\n tab: 'Items',\n page: 0,\n })\n }\n\n const onSearchByType = (typeText: string) => {\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 id=\"filterInput\"\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={(value) => onSearchByType(value as string)}\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<{ title: string }>\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n}: Props) {\n const [location, setLocation] = useLocation()\n\n currentTab = location.get('tab') || Object.keys(tabs)[0]\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: string) => {\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() {\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 />}\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() {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return <TabsPanel tabs={calculated} currentTab=\"Properties\" />\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'\nimport { GuillotinaApplication, GuillotinaDatabase } from '../types/guillotina'\n\nexport function ApplicationCtx() {\n const intl = useIntl()\n const traversal = useTraversal()\n const appContext = traversal.state.context as GuillotinaApplication\n const { databases } = appContext\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 <table>\n <tbody>\n {databases.map((db) => (\n <Item\n item={{ id: db, path: `/${db}/` }}\n key={db}\n icon={'fas fa-database'}\n />\n ))}\n </tbody>\n </table>\n </div>\n </>\n )\n}\n\nexport function DatabaseCtx() {\n const traversal = useTraversal()\n const { containers } = traversal.state.context as GuillotinaDatabase\n const { path } = traversal.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<string | undefined>(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'\nimport { GuillotinaUser, SearchItem } from '../types/guillotina'\nimport { FilterFormElement, IndexSignature } from '../types/global'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef<HTMLInputElement>(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({ q: event.currentTarget.elements.filterInput.value, page: 0 })\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (ref.current && (!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 id=\"filterInput\"\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() {\n return (\n <TabsPanel tabs={tabs} currentTab=\"Users\" rightToolbar={<UsersToolbar />} />\n )\n}\n\ninterface State {\n roles: string[]\n groups: {\n value: string\n text: string\n }[]\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 userDataContext = Ctx.context as GuillotinaUser\n const fields = {\n user_groups: [],\n user_roles: userDataContext.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<SearchItem>(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: IndexSignature) => {\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 {userDataContext.username} ({userDataContext.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(userDataContext.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(userDataContext.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={userDataContext}\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={userDataContext.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.map((x) => ({ value: x, text: x }))}\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'\nimport { IndexSignature } from '../types/global'\n\nconst withError = (res: Response) => 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: string, form: IndexSignature) {\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.id}/@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.id}`}\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 { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\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: string, form: IndexSignature) {\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: Response) => 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: string) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item.id}/@move`, {\n destination: path,\n new_id: 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 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 { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\n}\n\nexport function MoveItem(props: Props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext<{ '@url': string }>()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path: string) {\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 { GuillotinaCommonObject } from '../types/guillotina'\n\ninterface Props {\n item: GuillotinaCommonObject\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'\nimport { IndexSignature } from '../types/global'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword() {\n const [state, setState] = useState(initial)\n const [perror, setPerror] = useState<string | undefined>(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: string) => (val: string) => {\n const n: IndexSignature = {}\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\nexport interface BaseFormProps {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: BaseFormProps) {\n const intl = useIntl()\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState<string | undefined>(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: string) => {\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'\nimport { FilterFormElement } from '../types/global'\nimport { GuillotinaGroup } from '../types/guillotina'\nimport { processResponse } from '../lib/processResponse'\n\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef<HTMLInputElement>(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (event: React.FormEvent<FilterFormElement>) => {\n event.preventDefault()\n setLocation({ q: event.currentTarget.elements.filterInput.value, page: 0 })\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (ref.current && (!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 id=\"filterInput\"\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() {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\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<{ text: string; value: string }[]>([])\n const groupDataContext = Ctx.context as GuillotinaGroup\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: string) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n }\n getRoles()\n }, [])\n\n const handleResponse = async (\n isError: boolean,\n message: string,\n errorMessage: string\n ) => {\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: string) => {\n const { isError, errorMessage } = await patch({\n user_roles: groupDataContext.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: string) => {\n const { isError, errorMessage } = await patch({\n user_roles: groupDataContext.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: string) => {\n const data: { [key: string]: boolean } = {}\n groupDataContext.users.forEach((user) => {\n data[user] = true\n })\n data[newUserId] = true\n const response = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n const { isError, errorMessage } = await processResponse(response)\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: string) => {\n const data: { [key: string]: boolean } = {}\n groupDataContext.users.forEach((user: string) => {\n data[user] = userToRemove !== user\n })\n const response = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n const { isError, errorMessage } = await processResponse(response)\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) => !groupDataContext.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={(value) => addRole(value as string)}\n />\n <hr />\n {groupDataContext.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 {groupDataContext.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, ErrorInfo } 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 | null | undefined }\n> {\n state = {\n hasError: false,\n errorMsg: '',\n errorStack: '',\n }\n\n componentDidCatch(error: Error, errorInfo: 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 null\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: React.MouseEvent<HTMLAnchorElement>) => {\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: string[]) => {\n let current = ''\n const results: string[] = []\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, BaseFormProps } 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 { GroupCtx, GroupsCtx } 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 {\n GuillotinaCommonObject,\n ItemColumn,\n RegistrySchema,\n} from '../types/guillotina'\nimport { buildQs, parser } from '../lib/search'\nimport { MessageDescriptor } from 'react-intl'\nimport { getActionsObject } from '../lib/helpers'\n\nexport interface RegistrySortValue {\n direction: 'asc' | 'des'\n key: string\n}\nexport interface RegistryProperties {\n Buttons: React.ReactElement\n Panels: React.ReactElement\n default: string[]\n ignoreField: string[]\n}\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.ComponentType<any>\n }\n actions: {\n [key: string]: (props: any) => JSX.Element\n }\n forms: {\n [key: string]: (props: any) => JSX.Element\n }\n behaviors: {\n [key: string]: (props: any | undefined) => JSX.Element | null\n }\n itemsColumn: {\n [key: string]: () => ItemColumn[]\n }\n schemas: {\n [key: string]: RegistrySchema\n }\n properties: {\n [key: string]: RegistryProperties\n }\n components: {\n [key: string]: (props: any) => React.ReactNode | null | undefined\n }\n searchEngineQueryParamsFunction: {\n [key: string]: string\n }\n fieldsToFilter: {\n [key: string]: string[]\n }\n parseSearchQueryParamFunction: {\n [key: string]: (query: string, type: string) => string\n }\n defaultSortValue: {\n [key: string]: RegistrySortValue\n }\n actionsList: {\n [key: string]: (\n multiple: boolean\n ) => {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n }\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 parseSearchQueryParamFunction: {},\n defaultSortValue: {},\n actionsList: {},\n}\n\nexport interface IManageRegistry {\n registry: IRegistry\n getPathComponent: (\n context: GuillotinaCommonObject | undefined,\n path: string,\n fallback?: React.FC\n ) => React.ComponentType<any>\n getComponent: (name: string) => React.ComponentType<any>\n getView: (name: string) => React.ComponentType<any>\n getForm: (type: string, fallback?: React.FC) => React.FC<BaseFormProps>\n getAction: (type: string, fallback?: React.FC) => React.FC\n getBehavior: (type: string, fallback?: React.FC) => React.FC<any>\n getProperties: (type: string) => RegistryProperties\n getItemsColumn: (type: string) => ItemColumn[] | undefined\n getSchemas: (type: string) => RegistrySchema\n getFieldsToFilter: (type: string, fallback?: string[]) => string[]\n getParsedSearchQueryParam: (query: string, type: string) => string\n getDefaultSortValue: (\n type: string,\n fallback?: RegistrySortValue\n ) => RegistrySortValue\n getSearchEngineQueryParamsFunction: (type: string) => string\n getActionsList: (\n type: string,\n multiple: boolean\n ) => {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n }\n}\n\nconst getPathComponent = (\n context: GuillotinaCommonObject | undefined,\n path: string,\n fallback: React.FC | undefined = undefined\n) => {\n if (!context) return () => null\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: string) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getComponent = (name: string) => {\n return registry.components[name]\n}\n\nconst getView = (name: string) => {\n return registry.views[name]\n}\n\nconst getForm = (type: string, fallback?: React.FC<BaseFormProps>) => {\n return registry.forms[type] || fallback || BaseForm\n}\n\nconst getAction = (type: string, fallback?: React.FC) => {\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): RegistrySchema => {\n return registry.schemas[type] || {}\n}\n\nconst getFieldsToFilter = (type: string, fallback: string[] = ['title']) => {\n return registry.fieldsToFilter[type] || fallback\n}\n\nconst getDefaultSortValue = (\n type: string,\n fallback: RegistrySortValue | undefined = {\n key: 'id',\n direction: 'des',\n }\n) => {\n return registry.defaultSortValue[type] || fallback\n}\n\nconst getSearchEngineQueryParamsFunction = (type: string) => {\n return registry.searchEngineQueryParamsFunction[type]\n}\n\nconst getParsedSearchQueryParam = (query: string, type: string) => {\n const parsedFunction = registry.parseSearchQueryParamFunction[type]\n if (!parsedFunction) {\n const fieldsToFilter = getFieldsToFilter(type)\n return buildQs(parser(query, fieldsToFilter))\n }\n return parsedFunction(query, type)\n}\n\nconst getActionsList = (\n type: string,\n multiple: boolean\n): {\n [key: string]: {\n text: MessageDescriptor\n perms: string[]\n action: string\n }\n} => {\n const funcActionsList = registry.actionsList[type]\n if (funcActionsList) {\n return funcActionsList(multiple)\n }\n return getActionsObject(multiple)\n}\n\nexport const defaultComponent = (context: GuillotinaCommonObject) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data: Partial<IRegistry>): IManageRegistry {\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((key) => {\n const registryKey = key as keyof IRegistry\n registry[registryKey] = {\n ...registry[registryKey],\n ...data[registryKey],\n } as any\n })\n }\n\n return {\n registry,\n getForm,\n getComponent,\n getPathComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n getFieldsToFilter,\n getParsedSearchQueryParam,\n getDefaultSortValue,\n getSchemas,\n getView,\n getSearchEngineQueryParamsFunction,\n getActionsList,\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 React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { IConfig, useConfig } from '../hooks/useConfig'\nimport { IRegistry, useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport {\n GuillotinaGlobalState,\n GuillotinaReducerActionTypes,\n guillotinaReducer,\n} 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'\n\nfunction loadLocaleData(locale: string) {\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?: Partial<IConfig>\n registry: Partial<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({\n type: GuillotinaReducerActionTypes.SET_PATH,\n payload: {\n path: searchPath,\n },\n })\n }, [searchPath])\n\n useEffect(() => {\n const initContext = async () => {\n const data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({\n type: GuillotinaReducerActionTypes.SET_ERROR,\n payload: {\n errorStatus: 'notallowed',\n },\n })\n return\n } else if (data.status === 404) {\n dispatch({\n type: GuillotinaReducerActionTypes.SET_ERROR,\n payload: {\n errorStatus: 'notallowed',\n },\n })\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({\n type: GuillotinaReducerActionTypes.SET_CONTEXT,\n payload: { context, permissions },\n })\n }\n initContext()\n }, [path, refresh, client])\n\n const ErrorBoundary: React.ComponentType<{\n children: React.ReactNode\n }> = registry.getView('ErrorBoundary')\n const NotAllowed = registry.getView('NotAllowed')\n const NotFound = registry.getView('NotFound')\n const Path = registry.getComponent('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.getPathComponent(state.context, path) as React.FC<{\n state: GuillotinaGlobalState\n }>\n const Action = action.action\n ? (registry.getAction(action.action) as React.FC<any>)\n : 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 !== null && (\n <Action {...action.params} />\n )}\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 !== undefined && (\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: { [key: string]: string } = {\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: false,\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<HTMLInputElement | null>(null)\n\n useEffect(() => {\n if (inputRef && inputRef.current) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev: React.FormEvent) => {\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: string[] = []\nconst extraFields = ['title']\n\ninterface Props {\n onSubmit: (data: IndexSignature) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\ninterface State {\n data?: IndexSignature\n loading: boolean\n error?: unknown\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.getComponent('EditComponent')\n\n const [formData, setFormData] = useState<IndexSignature>({})\n const [errors, setErrors] = useState<IndexSignature<string>>({})\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: IndexSignature<string> = {}\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={(value: string) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(value),\n [key]: value,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(value),\n })\n } else {\n setFormData({ ...formData, [key]: value })\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: string) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint: string) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account: string) {\n this.url = this.base_url + account\n }\n\n async login(username: string, password: string) {\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 as string)\n console.log(token)\n return data.id\n }\n\n storeAuth(data: { token: string; exp: number }) {\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: string) {\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: string) {\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(): HeadersInit {\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","import { ItemModel } from '../models'\nimport { IndexSignature } from './global'\n\ntype ItemsPropertyObject = {\n '@id': string\n '@name': string\n '@type': string\n '@uid': string\n '@absolute_url': string\n title: string\n creation_date: string\n modification_date: string\n uuid: string\n type_name: string\n}\n\nexport type GuillotinaCommonObject = {\n type_name: string\n uuid: string\n is_folderish: boolean\n parent: GuillotinaParentObject\n length: number\n __behaviors__?: string[]\n '@static_behaviors': string[]\n 'guillotina.behaviors.dublincore.IDublinCore'?: IBehaviorDublinCore\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior'?: IWorkflowBehavior\n 'guillotina.behaviors.attachment.IAttachment'?: {\n file: GuillotinaFile\n }\n 'guillotina.behaviors.attachment.IMultiAttachment'?: {\n files: {\n [key: string]: GuillotinaFile\n }\n }\n 'guillotina.contrib.image.behaviors.IImageAttachment'?: {\n image: GuillotinaFile\n }\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment'?: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment'?: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n} & ItemsPropertyObject\n\nexport type SearchItem = {\n id: string\n parent_uuid: string\n path: string\n tid: string\n depth: number\n description: string\n access_roles: string[]\n access_users: string[]\n} & ItemsPropertyObject\n\nexport interface IBehaviorDublinCore {\n title: string\n description: string | null\n creation_date: string\n modification_date: string\n effective_date: string | null\n expiration_date: string | null\n creators: string[]\n tags: string[] | null\n publisher: string | null\n contributors: string[]\n}\n\nexport interface IWorkflowBehavior {\n review_state: string\n history: WorkflowHistory[]\n}\n\ninterface GuillotinaParentObject {\n '@id': string\n '@name': string\n '@type': string\n '@uid': string\n}\n\nexport interface GuillotinaSchema {\n title: string\n $schema: string\n type: string\n required: string[]\n definitions: Definitions\n properties: GuillotinaSchemaProperties\n}\n\nexport interface GuillotinaSchemaProperties {\n [key: string]: GuillotinaSchemaProperty | { $ref: string }[]\n}\n\nexport interface Definitions {\n [key: string]: {\n type: string\n properties: GuillotinaSchemaProperties\n required: string[]\n title: string\n description: string\n }\n}\n\nexport interface GuillotinaSchemaProperty {\n type: string\n title: string\n widget?: string\n readonly?: boolean\n description?: string\n vocabularyName?: string\n vocabulary?: string[]\n items?: GuillotinaSchemaProperty\n properties?: GuillotinaSchemaProperties\n additionalProperties?: GuillotinaSchemaProperties\n typeNameQuery?: string\n labelProperty?: string\n enum?: string[]\n queryCondition?: string\n queryPath?: string\n}\n\nexport type GuillotinaFile = {\n filename: string\n content_type: string\n extension: string\n size: number\n md5: string\n}\n\nexport interface GuillotinaVocabulary {\n '@id': string\n items: GuillotinaVocabularyItem[]\n items_total: number\n}\n\nexport interface GuillotinaVocabularyItem {\n title: string\n token: string\n}\nexport interface GuillotinaSharing {\n local: GuillotinaSharingMap\n inherit: GuillotinaSharingInheritItem[]\n}\n\nexport interface GuillotinaSharingInheritItem extends GuillotinaSharingMap {\n '@id': string\n}\nexport interface GuillotinaSharingMap {\n roleperm: {\n [key: string]: IndexSignature<string>\n }\n prinperm: {\n [key: string]: IndexSignature<string>\n }\n prinrole: {\n [key: string]: IndexSignature<string>\n }\n}\n\nexport interface GuillotinaBehaviors {\n static: string[]\n dynamic: string[]\n available: string[]\n}\n\nexport interface AllPermissions {\n [key: string]: AllPermissionsItem\n}\n\nexport interface AllPermissionsItem {\n prinperm?: PrimPerm[]\n prinrole?: Prinrole[]\n roleperm?: Roleperm[]\n perminhe?: Perminhe[]\n}\n\nexport interface Prinrole {\n principal: string\n role: string\n setting: Setting\n}\n\nexport interface Roleperm {\n permission: string\n role: string\n setting: Setting\n}\nexport interface PrimPerm {\n principal: string\n permission: string\n setting: Setting\n}\nexport interface Perminhe {\n permission: string\n setting: Setting\n}\n\nexport enum Setting {\n Allow = 'Allow',\n AllowSingle = 'AllowSingle',\n Deny = 'Deny',\n Unset = 'Unset',\n}\n\nexport interface Workflow {\n '@id': string\n history: WorkflowHistory[]\n transitions: Transition[]\n}\n\nexport interface WorkflowHistory {\n actor: string\n comments: string\n time: string\n title: string\n type: string\n data: WorkflowHistoryData\n}\n\nexport interface WorkflowHistoryData {\n action: null\n review_state: string\n}\n\nexport interface Transition {\n '@id': string\n title: string\n metadata: IndexSignature\n}\n\nexport interface Addons {\n available: AddonAvailable[]\n installed: string[]\n}\n\nexport interface AddonAvailable {\n id: string\n title: string\n dependencies: any[]\n}\n\nexport interface RegistrySchema {\n filters: RegistrySchemaFilter[]\n}\n\nexport interface RegistrySchemaFilter {\n attribute_key: string\n label: string\n type: string\n values?: { value: string; text: string }[]\n vocabulary?: string\n input_type?: string\n}\n\nexport type ReturnSearch<T> = {\n items: T[]\n items_total: number\n}\n\nexport type ReturnSearchCompatible<T> = {\n member: T[]\n items_count: number\n items: T[]\n items_total: number\n}\n\nexport interface ItemColumn {\n key: string\n label: string\n isSortable?: boolean\n child: ({ model, link, search }: ItemColumnChild) => React.ReactNode\n}\nexport interface ItemColumnChild {\n model: ItemModel\n link?: () => void\n search?: string\n}\n\nexport type GuillotinaUser = {\n user_roles: string[]\n user_groups: string[]\n user_permissions: string[]\n fullname: string\n email: string\n username: string\n} & GuillotinaCommonObject\n\nexport type GuillotinaGroup = {\n user_roles: string[]\n users: string[]\n} & GuillotinaCommonObject\n\nexport type GuillotinaApplication = {\n databases: string[]\n} & GuillotinaCommonObject\n\nexport type GuillotinaDatabase = {\n containers: string[]\n} & GuillotinaCommonObject\n"],"names":["initialState","path","loading","context","undefined","flash","message","type","action","params","permissions","errorStatus","registry","refresh","GuillotinaReducerActionTypes","guillotinaReducer","state","SET_PATH","payload","SET_CONTEXT","SET_ERROR","SET_FLASH","CLEAR_FLASH","SET_ACTION","CLEAR_ACTION","REFRESH","Date","now","transparent","APPLY","AuthContext","createContext","ClientContext","Traversal","props","dispatch","client","url","auth","apply","data","window","scrollTo","top","left","behavior","clearFlash","doAction","cancelAction","hasPerm","permission","filterTabs","tabs","tabsPermissions","result","Object","keys","forEach","item","perm","slice","Error","getContainerFromPath","TraversalContext","TraversalProvider","children","_jsx","Provider","value","useTraversal","traversal","useContext","ClientProvider","useGuillotinaClient","genericMessages","defineMessages","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","multiple","DELETE","text","perms","MOVE","COPY","Button","className","onClick","disabled","dataTest","css","split","concat","formatDate","d","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","get","obj","defValue","pathArray","Array","isArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","debounce","callback","wait","timer","clearTimeout","Modal","isActive","setActive","usePortal","Portal","_jsxs","Confirm","onCancel","onConfirm","intl","useIntl","style","marginTop","formatMessage","PathTree","defaultPath","onSubmit","e","preventDefault","target","display","defaultValue","processResponse","res","ready_body","isError","response","status","json","errorMessage","getErrorMessage","toString","dataError","details","reason","useSetState","useState","setState","setCustomState","useCallback","newPartialState","prevState","error","console","initial","patch","Ctx","endpoint","body","newState","del","post","useCrudContext","AddItem","doSubmit","form","assign","formData","getForm","Form","actionName","Permissions","defaultConfig","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","updates","currentConfig","updatedConfig","entries","currentKey","currentValue","isPlainObject","prototype","call","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","err","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","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","validator","onKeyUp","validatorFn","handlers","uid","mounted","setMounted","newRef","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","rest","useVocabulary","vocabularyName","vocabulary","setVocabulary","getPath","getVocabulary","dataJson","SelectVocabulary","val","getOptions","vocData","token","getProps","setURLParams","p","history","pushState","clean","URLSearchParams","_key","set","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","pathname","events","addEventListener","removeEventListener","navigate","param","patched","originalPushState","args","Event","arguments","dispatchEvent","originalReplaceState","replaceState","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","signal","indexOf","startsWith","dataRequest","getHeaders","fetch","authToken","getToken","headersInit","Accept","Authorization","method","put","newHeaders","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","orParser","parsed","buildQs","lastKey","qsSplit","part","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsSearchFunction","getQueryParamsElasticsearch","getQueryParamsPostresql","start","pageSize","withDepth","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","isSortable","React","Fragment","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","file","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","responseGroups","responseUsers","groupsData","usersData","usersDataResponse","user","user_roles","roles","fullname","groupsDataResponse","group","getRoles","getAllPermissions","req","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reject","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","fileToUpload","Textarea","rows","defaultEvents","on","handler","off","useClickAway","onClickAway","savedCallback","el","contains","eventName","document","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","getSearchEngineQueryParamsFunction","fnName","qsParsed","typeNameParsed","newValuesLabel","log","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","getComponent","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","observer","_this","onRejected","thenable","IImageAttachment","sizesImages","SizeImages","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","bind","s","v","IMultiImageAttachment","StrictModeDroppable","droppableId","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","o","reorder","list","startIndex","endIndex","splice","removed","then","_Pact","array","check","_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","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","getActionsList","some","onAction","actionKey","actionKeyTyped","actionObject","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","useItemsActions","AllItemsCheckbox","ItemCheckbox","absId","ItemsActionsDropdown","every","Pagination","total","doPaginate","pager","maxPages","Math","ceil","currentPage","totalPages","totalItems","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","icons","type_name","creation_date","modification_date","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","getData","defaultSortValue","getDefaultSortValue","direction","abort","getIcon","tab","input_type","filterData","column","BehaviorsView","getBehavior","__behaviors__","GetBehavior","behaviorName","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","savePermission","random","PermissionPrinrole","PermissionRoleperm","role_permissions","no_role_permissions","no_principal_permissions","no_principal_roles","principal_permissions","principal_roles","allow","deny","allow_single","unset","add_permissions","select_type","PanelPermissions","ctx","reset","setReset","useMemo","row","AddPermission","defaultOptions","init","principalsData","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","availableData","addItem","marginBottom","CreateButton","Config","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","searchValue","setSearchValue","onSearchQuery","q","elements","filterInput","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","appContext","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","userDataContext","user_groups","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","groupDataContext","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","parseSearchQueryParamFunction","actionsList","getPathComponent","defaultComponent","funcCols","getView","getAction","getParsedSearchQueryParam","parsedFunction","funcActionsList","is_folderish","useRegistry","registryKey","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","Setting"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}