@guillotinaweb/react-gmi 0.29.2 → 0.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/actions/copy_item.d.ts +2 -2
- package/dist/actions/move_item.d.ts +2 -2
- package/dist/actions/remove_item.d.ts +2 -2
- package/dist/components/behaviors/iattachment.d.ts +4 -2
- package/dist/components/behaviors/imultiimageorderedattachment.d.ts +3 -1
- package/dist/components/behaviors/iworkflow.d.ts +1 -1
- package/dist/components/context_toolbar.d.ts +1 -1
- package/dist/components/fields/editComponent.d.ts +5 -4
- package/dist/components/fields/editableField.d.ts +4 -2
- package/dist/components/fields/renderField.d.ts +8 -5
- package/dist/components/flash.d.ts +1 -1
- package/dist/components/input/email.d.ts +1 -1
- package/dist/components/input/form_builder.d.ts +2 -2
- package/dist/components/input/input.d.ts +1 -1
- package/dist/components/input/search_input.d.ts +1 -1
- package/dist/components/input/search_input_list.d.ts +2 -2
- package/dist/components/input/select_vocabulary.d.ts +2 -2
- package/dist/components/input/upload.d.ts +1 -2
- package/dist/components/pagination.d.ts +1 -1
- package/dist/components/panel/permissions.d.ts +1 -1
- package/dist/components/panel/permissions_prinperm.d.ts +2 -2
- package/dist/components/panel/permissions_prinrole.d.ts +1 -1
- package/dist/components/panel/permissions_roleperm.d.ts +1 -1
- package/dist/components/path.d.ts +1 -1
- package/dist/components/properties_view.d.ts +2 -2
- package/dist/components/search_labels.d.ts +1 -1
- package/dist/components/search_options_labels.d.ts +1 -1
- package/dist/components/search_vocabulary_labels.d.ts +2 -2
- package/dist/components/selected_items_actions.d.ts +14 -0
- package/dist/components/tabs.d.ts +4 -2
- package/dist/components/widgets/tags.d.ts +4 -1
- package/dist/contexts/index.d.ts +21 -19
- package/dist/forms/required_fields.d.ts +2 -3
- package/dist/forms/users.d.ts +1 -1
- package/dist/hooks/useClickAway.d.ts +2 -1
- package/dist/hooks/useConfig.d.ts +4 -2
- package/dist/hooks/useCrudContext.d.ts +11 -10
- package/dist/hooks/useInput.d.ts +4 -3
- package/dist/hooks/useRegistry.d.ts +29 -29
- package/dist/hooks/useSetState.d.ts +6 -1
- package/dist/hooks/useVocabulary.d.ts +1 -1
- package/dist/lib/auth.d.ts +14 -19
- package/dist/lib/client.d.ts +49 -36
- package/dist/lib/helpers.d.ts +10 -18
- package/dist/lib/processResponse.d.ts +9 -0
- package/dist/lib/rest.d.ts +9 -16
- package/dist/lib/utils.d.ts +3 -2
- package/dist/lib/validators.d.ts +1 -1
- package/dist/locales/generic_messages.d.ts +248 -370
- package/dist/models/index.d.ts +5 -5
- package/dist/models/sharing.d.ts +5 -5
- package/dist/react-gmi.esm.js +1182 -905
- package/dist/react-gmi.esm.js.map +1 -1
- package/dist/react-gmi.js +1181 -905
- package/dist/react-gmi.js.map +1 -1
- package/dist/react-gmi.modern.js +1155 -852
- package/dist/react-gmi.modern.js.map +1 -1
- package/dist/react-gmi.umd.js +1181 -905
- package/dist/react-gmi.umd.js.map +1 -1
- package/dist/reducers/guillotina.d.ts +22 -8
- package/dist/types/global.d.ts +9 -0
- package/dist/types/guillotina.d.ts +192 -44
- package/dist/views/folder.d.ts +1 -1
- package/dist/views/groups.d.ts +1 -1
- package/dist/views/item.d.ts +1 -1
- package/dist/views/users.d.ts +1 -1
- package/package.json +3 -2
- package/dist/lib/search.test.d.ts +0 -1
- package/dist/setupTests.d.ts +0 -1
package/dist/react-gmi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-gmi.js","sources":["../src/guillo-gmi/contexts/index.tsx","../src/guillo-gmi/locales/generic_messages.js","../src/guillo-gmi/lib/helpers.ts","../src/guillo-gmi/components/input/button.tsx","../src/guillo-gmi/components/modal.tsx","../src/guillo-gmi/hooks/useSetState.tsx","../src/guillo-gmi/hooks/useCrudContext.tsx","../src/guillo-gmi/actions/add_item.tsx","../src/guillo-gmi/hooks/useConfig.tsx","../src/guillo-gmi/actions/remove_items.tsx","../src/guillo-gmi/components/input/checkbox.tsx","../src/guillo-gmi/components/error_zone.tsx","../src/guillo-gmi/hooks/useInput.tsx","../src/guillo-gmi/lib/validators.ts","../src/guillo-gmi/components/input/input.tsx","../src/guillo-gmi/components/ui/icon.tsx","../src/guillo-gmi/components/input/email.tsx","../src/guillo-gmi/components/input/form.tsx","../src/guillo-gmi/components/input/password.tsx","../src/guillo-gmi/components/input/form_builder.tsx","../src/guillo-gmi/components/input/select.tsx","../src/guillo-gmi/lib/utils.ts","../src/guillo-gmi/hooks/useVocabulary.tsx","../src/guillo-gmi/components/input/select_vocabulary.tsx","../src/guillo-gmi/hooks/useLocation.tsx","../src/guillo-gmi/components/Link.tsx","../src/guillo-gmi/components/TdLink.tsx","../src/guillo-gmi/components/ui/loading.tsx","../src/guillo-gmi/components/ui/tag.tsx","../src/guillo-gmi/components/ui/delete.tsx","../src/guillo-gmi/components/ui/table.tsx","../src/guillo-gmi/components/ui/notification.tsx","../src/guillo-gmi/lib/rest.ts","../src/guillo-gmi/lib/search.ts","../src/guillo-gmi/lib/client.tsx","../src/guillo-gmi/components/input/upload.tsx","../src/guillo-gmi/components/input/textarea.tsx","../src/guillo-gmi/hooks/useClickAway.tsx","../src/guillo-gmi/components/input/search_input.tsx","../src/guillo-gmi/components/input/search_input_list.tsx","../src/guillo-gmi/components/input/input_list.tsx","../src/guillo-gmi/components/input/dropdown.tsx","../src/guillo-gmi/components/fields/editableField.tsx","../src/guillo-gmi/components/fields/downloadField.tsx","../src/guillo-gmi/components/fields/renderField.tsx","../src/guillo-gmi/components/fields/editComponent.tsx","../src/guillo-gmi/components/behaviors/iattachment.tsx","../src/guillo-gmi/components/behaviors/imultiattachment.tsx","../src/guillo-gmi/components/behaviors/iimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageattachment.tsx","../src/guillo-gmi/components/behaviors/imultiimageorderedattachment.tsx","../src/guillo-gmi/models/sharing.ts","../src/guillo-gmi/models/index.ts","../src/guillo-gmi/components/behaviors/iworkflow.tsx","../src/guillo-gmi/components/panel/actions.tsx","../src/guillo-gmi/components/panel/addons.tsx","../src/guillo-gmi/components/panel/behaviors.tsx","../src/guillo-gmi/components/selected_items_actions.tsx","../src/guillo-gmi/components/pagination.tsx","../src/guillo-gmi/components/item.tsx","../src/guillo-gmi/components/search_labels.tsx","../src/guillo-gmi/components/search_options_labels.tsx","../src/guillo-gmi/components/search_vocabulary_labels.tsx","../src/guillo-gmi/components/panel/items.tsx","../src/guillo-gmi/components/behavior_view.tsx","../src/guillo-gmi/components/properties_view.tsx","../src/guillo-gmi/components/panel/properties.tsx","../src/guillo-gmi/components/panel/permissions_prinperm.tsx","../src/guillo-gmi/components/panel/permissions_prinrole.tsx","../src/guillo-gmi/components/panel/permissions_roleperm.tsx","../src/guillo-gmi/components/panel/permissions.tsx","../src/guillo-gmi/components/widgets/tags.tsx","../src/guillo-gmi/components/context_toolbar.tsx","../src/guillo-gmi/components/flash.tsx","../src/guillo-gmi/components/tabs.tsx","../src/guillo-gmi/views/folder.tsx","../src/guillo-gmi/views/item.tsx","../src/guillo-gmi/views/application.tsx","../src/guillo-gmi/views/base.tsx","../src/guillo-gmi/views/container.tsx","../src/guillo-gmi/forms/users.tsx","../src/guillo-gmi/hooks/useRemoteField.tsx","../src/guillo-gmi/views/users.tsx","../src/guillo-gmi/actions/copy_items.tsx","../src/guillo-gmi/actions/copy_item.tsx","../src/guillo-gmi/actions/move_items.tsx","../src/guillo-gmi/actions/move_item.tsx","../src/guillo-gmi/actions/remove_item.tsx","../src/guillo-gmi/actions/change_pass.tsx","../src/guillo-gmi/forms/base.tsx","../src/guillo-gmi/components/behaviors/idublincore.tsx","../src/guillo-gmi/views/groups.tsx","../src/guillo-gmi/components/error_boundary.tsx","../src/guillo-gmi/components/notallowed.tsx","../src/guillo-gmi/components/notfound.tsx","../src/guillo-gmi/components/path.tsx","../src/guillo-gmi/hooks/useRegistry.tsx","../src/guillo-gmi/reducers/guillotina.ts","../src/guillo-gmi/components/guillotina.tsx","../src/guillo-gmi/components/layout.tsx","../src/guillo-gmi/components/login.tsx","../src/guillo-gmi/forms/required_fields.tsx","../src/guillo-gmi/lib/auth.ts"],"sourcesContent":["import { Dispatch, useContext } from 'react'\nimport { createContext } from 'react'\nimport { GuillotinaClient } from '../lib/client.js'\nimport { Auth } from '../lib/auth.js'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaGlobalState } from '../reducers/guillotina'\n\nexport const AuthContext = createContext({})\n\nexport const ClientContext = createContext<GuillotinaClient>(null)\n\ninterface PropsTraversal {\n client: GuillotinaClient\n auth: Auth\n state: GuillotinaGlobalState\n dispatch: Dispatch<{ type: string; payload: IndexSignature }>\n registry: IndexSignature\n flash: (action: string, result: string) => void\n url: string\n}\n\nexport class Traversal {\n private dispatch\n public state\n public client\n public registry\n public url\n public auth\n\n constructor({ flash, ...props }: PropsTraversal) {\n this.dispatch = props.dispatch\n this.state = props.state\n this.client = props.client\n this.registry = props.registry\n this.auth = props.auth\n this.url = props.url\n if (typeof flash === 'function') this.flash = flash\n }\n\n refresh({ transparent = false } = {}) {\n this.dispatch({ type: 'REFRESH', payload: { transparent } })\n }\n\n get path() {\n return this.state.path\n }\n\n get pathPrefix() {\n return this.state.path.slice(1)\n }\n\n get context() {\n return this.state.context\n }\n\n get containerPath() {\n return this.client.getContainerFromPath(this.path)\n }\n\n apply(data) {\n // apply a optimistic update to context\n this.dispatch({ type: 'APPLY', payload: data })\n }\n\n flash(message, type) {\n this.dispatch({ type: 'SET_FLASH', payload: { flash: { message, type } } })\n window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })\n }\n\n clearFlash() {\n this.dispatch({ type: 'CLEAR_FLASH' })\n }\n\n doAction(action, params = {}) {\n this.dispatch({ type: 'SET_ACTION', payload: { action, params } })\n }\n\n cancelAction() {\n this.dispatch({ type: 'CLEAR_ACTION' })\n }\n\n hasPerm(permission) {\n return this.state.permissions[permission] === true\n }\n\n filterTabs(tabs, tabsPermissions) {\n const result = {}\n Object.keys(tabs).forEach((item) => {\n const perm = tabsPermissions[item]\n if (perm && this.hasPerm(perm)) {\n result[item] = tabs[item]\n } else if (!perm) {\n result[item] = tabs[item]\n }\n })\n return result\n }\n}\n\nexport const TraversalContext = createContext<Traversal>(null)\nexport function TraversalProvider({\n children,\n ...props\n}: PropsTraversal & { children: React.ReactNode }) {\n return (\n <TraversalContext.Provider value={new Traversal(props)}>\n {children}\n </TraversalContext.Provider>\n )\n}\n\nexport function useTraversal() {\n return useContext(TraversalContext)\n}\n\ninterface PropsClient {\n children: React.ReactNode\n client: GuillotinaClient\n}\nexport function ClientProvider({ children, client }: PropsClient) {\n return (\n <ClientContext.Provider value={client}>{children}</ClientContext.Provider>\n )\n}\n\nexport function useGuillotinaClient() {\n return useContext(ClientContext)\n}\n","import { defineMessages } from 'react-intl'\n\nexport const genericMessages = defineMessages({\n loading: {\n id: 'loading',\n defaultMessage: 'Loading',\n },\n remove: {\n id: 'remove',\n defaultMessage: 'Remove',\n },\n install: {\n id: 'install',\n defaultMessage: 'Install',\n },\n delete: {\n id: 'delete',\n defaultMessage: 'Delete',\n },\n move_to: {\n id: 'move_to',\n defaultMessage: 'Move to...',\n },\n copy_to: {\n id: 'copy_to',\n defaultMessage: 'Copy to...',\n },\n behaviors: {\n id: 'behaviors',\n defaultMessage: 'Behaviors',\n },\n static: {\n id: 'static',\n defaultMessage: 'Static',\n },\n disable: {\n id: 'disable',\n defaultMessage: 'Disable',\n },\n enable: {\n id: 'enable',\n defaultMessage: 'Enable',\n },\n enabled: {\n id: 'enabled',\n defaultMessage: 'Enabled',\n },\n available: {\n id: 'available',\n defaultMessage: 'Available',\n },\n invalid_form_data: {\n id: 'invalid_form_data',\n defaultMessage: 'Invalid form data',\n },\n invalid_form: {\n id: 'invalid_form',\n defaultMessage: 'Invalid form',\n },\n select_principal: {\n id: 'select_principal',\n defaultMessage: 'Select a Principal',\n },\n select_role: {\n id: 'select_role',\n defaultMessage: 'Select a Role',\n },\n select_permissions: {\n id: 'select_permissions',\n defaultMessage: 'Select permissions',\n },\n operation: {\n id: 'operation',\n defaultMessage: 'Operation',\n },\n save: {\n id: 'save',\n defaultMessage: 'Save',\n },\n choose: {\n id: 'choose',\n defaultMessage: 'Choose...',\n },\n property: {\n id: 'property',\n defaultMessage: 'Property',\n },\n value: {\n id: 'value',\n defaultMessage: 'Value',\n },\n create: {\n id: 'create',\n defaultMessage: 'Create',\n },\n upload: {\n id: 'upload',\n defaultMessage: 'Upload',\n },\n image: {\n id: 'image',\n defaultMessage: 'Image',\n },\n error_provide_key_name: {\n id: 'error_provide_key_name',\n defaultMessage: 'Provide a key name',\n },\n mandatory_field: {\n id: 'mandatory_field',\n defaultMessage: '{field} is mandatory!',\n },\n error_in_field: {\n id: 'error_in_field',\n defaultMessage: 'Error in field {field}!',\n },\n field_updated: {\n id: 'field_updated',\n defaultMessage: 'Field {field}, updated!',\n },\n field_deleted: {\n id: 'field_deleted',\n defaultMessage: 'Field {field}, deleted!',\n },\n can_not_delete_field: {\n id: 'can_not_delete_field',\n defaultMessage: 'You can not delete {field}!',\n },\n cancel: {\n id: 'cancel',\n defaultMessage: 'Cancel',\n },\n open: {\n id: 'open',\n defaultMessage: 'Open',\n },\n download: {\n id: 'download',\n defaultMessage: 'Download',\n },\n search: {\n id: 'search',\n defaultMessage: 'Search',\n },\n no_results: {\n id: 'no_results',\n defaultMessage: 'No results',\n },\n load_more: {\n id: 'load_more',\n defaultMessage: 'Load more',\n },\n add_type: {\n id: 'add_type',\n defaultMessage: 'Add {type}',\n },\n confirm: {\n id: 'confirm',\n defaultMessage: 'Confirm',\n },\n field_is_required: {\n id: 'field_is_required',\n defaultMessage: 'This field is required',\n },\n title: {\n id: 'title',\n defaultMessage: 'Title',\n },\n add: {\n id: 'add',\n defaultMessage: 'Add',\n },\n not_implemented: {\n id: 'not_implemented',\n defaultMessage: 'Not implemented',\n },\n failed_to_update: {\n id: 'failed_to_update',\n defaultMessage: 'Failed to update: {error}',\n },\n add_user: {\n id: 'add_user',\n defaultMessage: 'Add a User',\n },\n role: {\n id: 'role',\n defaultMessage: 'Role',\n },\n setting: {\n id: 'setting',\n defaultMessage: 'Setting',\n },\n permission: {\n id: 'permission',\n defaultMessage: 'Permission',\n },\n})\n\nexport const genericFileMessages = defineMessages({\n error_file_key_name: {\n id: 'error_file_key_name',\n defaultMessage: 'Provide a file and a key name',\n },\n error_upload_file: {\n id: 'error_upload_file',\n defaultMessage: 'Failed to upload file',\n },\n error_upload_file_size: {\n id: 'error_upload_file_size',\n defaultMessage: 'Failed to upload file {size}',\n },\n image_uploaded: {\n id: 'image_uploaded',\n defaultMessage: 'Image uploaded!',\n },\n file_uploaded: {\n id: 'file_uploaded',\n defaultMessage: 'File uploaded!',\n },\n failed_delete_file: {\n id: 'failed_delete_file',\n defaultMessage: 'Failed to delete file',\n },\n image_deleted: {\n id: 'image_deleted',\n defaultMessage: 'Image deleted!',\n },\n confirm_message_delete_file: {\n id: 'confirm_message_delete_file',\n defaultMessage: 'Are you sure to remove: {fileKeyToDelete}?',\n },\n confirm_message_delete_image: {\n id: 'confirm_message_delete_image',\n defaultMessage: 'Are you sure to remove the image?',\n },\n no_images_uploaded: {\n id: 'no_images_uploaded',\n defaultMessage: 'No images uploaded',\n },\n no_files_uploaded: {\n id: 'no_files_uploaded',\n defaultMessage: 'No files uploaded',\n },\n upload_an_image: {\n id: 'upload_an_image',\n defaultMessage: 'Upload an image',\n },\n upload_a_file: {\n id: 'upload_a_file',\n defaultMessage: 'Upload a file',\n },\n})\n","import { genericMessages } from '../locales/generic_messages'\n\nexport const classnames = (classNames) => {\n return classNames.filter(Boolean).join(' ').trim()\n}\n\nexport const noop = () => {}\n\nlet current = 0\n\nexport const generateUID = (prefix = '') => `${prefix || 'id'}-${current++}`\n\nexport const toQueryString = (params: string[][]) => {\n return Object.keys(params)\n .map((key) => {\n return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])\n })\n .join('&')\n}\n\nexport function base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64)\n const binaryLen = binaryString.length\n const bytes = new Uint8Array(binaryLen)\n for (let i = 0; i < binaryLen; i++) {\n const ascii = binaryString.charCodeAt(i)\n bytes[i] = ascii\n }\n return bytes\n}\n\nexport function stringToSlug(str) {\n str = str.replace(/^\\s+|\\s+$/g, '') // trim\n str = str.toLowerCase()\n\n // remove accents, swap ñ for n, etc\n const from = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;'\n const to = 'aaaaeeeeiiiioooouuuunc------'\n for (let i = 0, l = from.length; i < l; i++) {\n str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i))\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-') // collapse dashes\n\n return str\n}\n\nexport function sleep(ms): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(function () {\n resolve(null)\n }, ms)\n })\n}\n\nexport const getActionsObject = (intl, multiple = false) => ({\n DELETE: {\n text: intl.formatMessage(genericMessages.delete),\n perms: ['guillotina.DeleteContent'],\n action: multiple ? 'removeItems' : 'removeItem',\n },\n MOVE: {\n text: intl.formatMessage(genericMessages.move_to),\n perms: ['guillotina.MoveContent'],\n action: multiple ? 'moveItems' : 'moveItem',\n },\n COPY: {\n text: intl.formatMessage(genericMessages.copy_to),\n perms: ['guillotina.DuplicateContent'],\n action: multiple ? 'copyItems' : 'copyItem',\n },\n})\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n type?: 'submit' | 'reset' | 'button'\n loading?: boolean\n disabled?: boolean\n dataTest?: string\n}\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n}: Props) => {\n let css = [].concat('button', ...className.split(' '))\n if (loading) css = css.concat('is-loading')\n\n return (\n <p className=\"control\">\n <button\n type={type}\n className={classnames(css)}\n onClick={onClick}\n disabled={disabled}\n data-test={dataTest}\n >\n {children}\n </button>\n </p>\n )\n}\n","import usePortal from 'react-useportal'\nimport { Button } from './input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface ModalProps {\n isActive: boolean\n setActive: (value: boolean) => void\n children: React.ReactNode\n className?: string\n}\n\nexport function Modal(props: ModalProps) {\n const { isActive, setActive, children } = props\n const { Portal } = usePortal()\n\n const css = 'modal ' + (isActive ? 'is-active ' : '') + props.className\n return (\n <Portal>\n <div className={css}>\n <div className=\"modal-background\" onClick={() => setActive(false)} />\n <div className=\"modal-content\">\n <div className=\"box\">{children}</div>\n </div>\n <button\n className=\"modal-close is-large\"\n aria-label=\"close\"\n onClick={() => setActive(false)}\n />\n </div>\n </Portal>\n )\n}\n\ninterface ConfirmProps {\n message?: string\n onCancel: () => void\n onConfirm: () => void\n loading?: boolean\n}\nexport function Confirm({\n message,\n onCancel,\n onConfirm,\n loading,\n}: ConfirmProps) {\n const intl = useIntl()\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button\n className=\"button is-danger\"\n onClick={() => onCancel()}\n data-test=\"btnCancelModalTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </button>\n \n <Button\n loading={loading}\n className=\"is-success\"\n onClick={() => onConfirm()}\n dataTest=\"btnConfirmModalTest\"\n >\n {intl.formatMessage(genericMessages.confirm)}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n\ninterface PathTreeProps {\n title: string\n defaultPath?: string\n children?: React.ReactNode\n onConfirm: (path: string, target: EventTarget) => void\n onCancel: () => void\n}\n// @todo Improve it... Replacing the inputText to a tree\nexport function PathTree({\n title,\n defaultPath,\n children,\n onConfirm,\n onCancel,\n}: PathTreeProps) {\n const intl = useIntl()\n return (\n <Modal isActive setActive={onCancel}>\n <h1>{title}</h1>\n <form\n onSubmit={(e) => {\n e.preventDefault()\n onConfirm(e.target[0].value, e.target)\n }}\n >\n <small style={{ display: 'block', marginTop: 20 }}>\n {`Example: /folder (without /db/container on front)`}\n </small>\n <input\n className=\"input mb-3\"\n defaultValue={defaultPath}\n type=\"text\"\n data-test=\"inputPathTreeTest\"\n />\n {children}\n <div className=\"level-right mt-3\">\n <button\n type=\"button\"\n className=\"button is-danger\"\n onClick={onCancel}\n data-test=\"btnCancelModalTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </button>\n \n <button\n type=\"submit\"\n className=\"button is-success\"\n data-test=\"btnConfirmModalTest\"\n >\n {intl.formatMessage(genericMessages.confirm)}\n </button>\n </div>\n </form>\n </Modal>\n )\n}\n","import { useCallback, useState } from 'react'\n\nexport default function useSetState<T>(\n initialState\n): [T, (value: Partial<T>) => void] {\n const [state, set] = useState<T>(initialState)\n const setState = useCallback(\n (patch) => {\n set((prevState) =>\n Object.assign(\n {},\n prevState,\n patch instanceof Function ? patch(prevState) : patch\n )\n )\n },\n [set]\n )\n\n return [state, setState]\n}\n","import { useTraversal } from '../contexts'\nimport useSetState from './useSetState'\n\ninterface State<T = unknown> {\n loading?: boolean\n isError?: boolean\n errorMessage?: string\n result?: T\n response?: unknown\n}\nconst initial: State = {\n loading: undefined,\n isError: false,\n errorMessage: undefined,\n result: undefined,\n response: undefined,\n}\n\nconst getErrorMessage = (dataError, defaultValue) => {\n if (dataError && dataError.details) {\n return dataError.details\n } else if (dataError && dataError.reason) {\n return dataError.reason\n }\n return defaultValue\n}\n\nconst processResponse = async (res, ready_body = true) => {\n if (res.status < 400)\n return {\n isError: false,\n loading: false,\n result: ready_body ? await res.json() : res.status,\n response: res,\n }\n else\n return {\n isError: true,\n loading: false,\n errorMessage: getErrorMessage(await res.json(), res.status),\n response: res,\n }\n}\n\nconst patch = (setState, Ctx) => async (\n data,\n endpoint = undefined,\n body = false\n): Promise<State> => {\n setState({ loading: true })\n let newState: State = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.patch(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst del = (setState, Ctx) => async (\n data = {},\n endpoint = undefined,\n body = false\n): Promise<State> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.delete(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst post = (setState, Ctx) => async (\n data,\n endpoint = undefined,\n body = true\n): Promise<State> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.post(path, data)\n newState = await processResponse(res, body)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n setState(newState)\n return newState\n}\n\nconst get = (setState, Ctx) => async (endpoint = undefined): Promise<State> => {\n setState({ loading: true })\n let newState = {}\n try {\n const path = endpoint ? `${Ctx.path}${endpoint}` : Ctx.path\n const res = await Ctx.client.get(path)\n newState = await processResponse(res, true)\n } catch (e) {\n console.error('Error', e)\n newState = { isError: true, errorMessage: 'unhandled exception' }\n }\n\n setState(newState)\n return newState\n}\n\nexport function useCrudContext<T>() {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State<T>>(initial)\n\n return {\n ...state,\n Ctx,\n patch: patch(setState, Ctx),\n del: del(setState, Ctx),\n post: post(setState, Ctx),\n get: get(setState, Ctx),\n }\n}\n","import { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\n\ninterface Props {\n type: string\n}\n\nexport function AddItem(props: Props) {\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const { type } = props\n const { getForm } = Ctx.registry\n\n const Form = getForm(type)\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit(data) {\n const form = Object.assign(\n {},\n { '@type': type },\n data.formData ? data.formData : data\n )\n\n const { isError, errorMessage } = await post(form)\n if (!isError) {\n Ctx.flash('Content created!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form\n loading={loading}\n onSubmit={doSubmit}\n onError={(err) => console.log(err)}\n actionName={'Add ' + type}\n title={'Add ' + type}\n type={type}\n dataTest={`formAdd${type}Test`}\n />\n </Modal>\n )\n}\n","import { useRef } from 'react'\nimport { GuillotinaSchemaProperty } from '../types/guillotina'\n\nexport const Permissions: string[] = [\n 'guillotina.AddContent',\n 'guillotina.ModifyContent',\n 'guillotina.ViewContent',\n 'guillotina.DeleteContent',\n 'guillotina.AccessContent',\n 'guillotina.SeePermissions',\n 'guillotina.ChangePermissions',\n 'guillotina.MoveContent',\n 'guillotina.DuplicateContent',\n 'guillotina.ReadConfiguration',\n 'guillotina.RegisterConfigurations',\n 'guillotina.WriteConfiguration',\n 'guillotina.ManageAddons',\n 'guillotina.swagger.View',\n]\n\ninterface IConfig {\n DisabledTypes: string[]\n PageSize: number\n DelayActions: number\n Permissions: string[]\n SearchEngine: string\n SizeImages?: string[]\n icons?: string[]\n properties_default?: string[]\n properties_ignore_fields?: string[]\n fieldHaveDeleteButton: (schema: GuillotinaSchemaProperty) => boolean\n}\nexport const Config: IConfig = {\n DisabledTypes: ['UserManager', 'GroupManager'],\n PageSize: 10,\n DelayActions: 200,\n Permissions: Permissions,\n SearchEngine: 'PostreSQL', // Elasticsearch\n fieldHaveDeleteButton: (schema) => {\n return (\n schema?.widget === 'file' ||\n schema?.widget === 'select' ||\n schema?.type === 'array'\n )\n },\n}\n\nlet calculated = Object.assign({}, Config)\n\nconst addConfig = (additional: Partial<IConfig>, original: IConfig) => {\n const rest = Object.assign({}, original)\n Object.keys(additional).forEach((item) => {\n if (typeof Config[item] === 'object' && Array.isArray(Config[item])) {\n rest[item] = [].concat(Config[item], additional[item])\n } else if (typeof Config[item] === 'object') {\n rest[item] = Object.assign({}, Config[item], additional[item])\n } else {\n rest[item] = additional[item]\n }\n })\n return rest\n}\n\nexport function useConfig(cfg = {}) {\n const ref = useRef<unknown>()\n if (cfg && !ref.current) {\n calculated = addConfig(cfg, calculated)\n ref.current = calculated\n }\n return calculated\n}\n","import { Confirm } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { sleep } from '../lib/helpers'\nimport { useConfig } from '../hooks/useConfig'\nimport { ItemModel } from '../models'\nimport { useState } from 'react'\n\ninterface Props {\n items: ItemModel[]\n}\nexport function RemoveItems(props: Props) {\n const Ctx = useTraversal()\n const cfg = useConfig()\n const [loading, setLoading] = useState(false)\n const { items = [] } = props\n const last = items[items.length - 1]['@name']\n const itemsNames = items\n .map((item) => item['@name'])\n .join(', ')\n .replace(`, ${last}`, ` and ${last}`)\n\n async function removeItems() {\n const errors = []\n setLoading(true)\n\n const actions = items.map(async (item) => {\n const res = await Ctx.client.delete(`${Ctx.path}${item['@name']}`)\n if (!res.ok) {\n const err = await res.json()\n errors.push(err)\n }\n })\n // this sleep is here, to let elasticsearch, wait for\n // index our operations... (will work 99% of use cases)\n actions.push(sleep(cfg.DelayActions))\n\n await Promise.all(actions)\n\n if (errors.length === 0) {\n Ctx.flash(`Items removed!`, 'success')\n Ctx.refresh()\n } else {\n const errorstr = errors.map((err) => JSON.stringify(err)).join('\\n')\n Ctx.flash(`Something went wrong!! ${errorstr}`, 'danger')\n }\n setLoading(false)\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItems}\n message={`Are you sure to remove: ${itemsNames}?`}\n />\n )\n}\n","import { ChangeEvent, useEffect, useRef, useState } from 'react'\nimport { classnames } from '../../lib/helpers'\n\ninterface Props {\n className?: string\n classNameInput?: string\n loading?: boolean\n indeterminate?: boolean\n backgroundColor?: string\n borderColor?: string\n dataTest?: string\n onChange: (value: boolean) => void\n id?: string\n disabled?: boolean\n checked?: boolean\n children?: React.ReactNode\n placeholder?: string\n}\n\nexport const Checkbox = ({\n id,\n className,\n classNameInput,\n loading,\n disabled,\n indeterminate = false,\n checked,\n children,\n placeholder,\n onChange,\n dataTest,\n}: Props) => {\n const inputRef = useRef(null)\n const [state, setState] = useState<boolean>(checked)\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n const updateState = (ev: ChangeEvent<HTMLInputElement>) => {\n setState(ev.target.checked)\n onChange(ev.target.checked)\n }\n\n return (\n <div className=\"field\">\n <label htmlFor={id} className={classnames(['checkbox', className])}>\n <input\n ref={inputRef}\n disabled={disabled || loading}\n id={id}\n type=\"checkbox\"\n className={classnames(['checkbox', classNameInput])}\n checked={state}\n onChange={updateState}\n data-test={dataTest}\n />\n {children || placeholder}\n </label>\n </div>\n )\n}\n","import PropTypes from 'prop-types'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n id?: string\n className?: string\n}\n\nconst ErrorZone = ({ children, id, className = '' }: Props) => {\n return (\n <p className={classnames(['help is-danger', className])} id={id}>\n {children}\n </p>\n )\n}\n\nErrorZone.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n className: PropTypes.string,\n}\n\nexport default ErrorZone\n","import { useEffect, useState } from 'react'\n\nconst applyValidators = (value, validators) => {\n const validation = Array.isArray(validators) ? validators : [validators]\n let result = true\n validation.forEach((func) => {\n if (func && func(value) === false) {\n result = false\n }\n })\n return result\n}\n\nconst useInput = (onChange, value, validator) => {\n const [state, setState] = useState({ hasError: false, value: value })\n\n const onUpdate = (ev) => {\n const value = ev && ev.target ? ev.target.value : ev ? ev : ''\n setState({ value, hasError: false })\n if (onChange) onChange(value)\n }\n\n const onBlur = () => {\n const hasError = applyValidators(state.value, validator) === false\n if (hasError) setState({ value: state.value, hasError })\n }\n\n const onFocus = () => {\n if (state.hasError) {\n setState({ value: state.value, hasError: false })\n }\n }\n\n useEffect(() => {\n setState({ value, hasError: false })\n }, [value])\n\n return {\n onChange: onUpdate,\n onFocus,\n onBlur,\n state,\n }\n}\n\nexport default useInput\n","// From github.com/protonmail/proton-shared\n\n/* eslint-disable no-useless-escape */\nexport const REGEX_EMAIL = /(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/i\nexport const REGEX_URL = /((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)/\nexport const REGEX_HEX_COLOR = /^#([a-f0-9]{3,4}|[a-f0-9]{4}(?:[a-f0-9]{2}){1,2})\\b$/i\nexport const REGEX_NUMBER = /^\\d+$/\n\nexport const isEmpty = (value = '') => !value.length\nexport const maxLength = (value = '', limit = 0) => value.length <= limit\nexport const minLength = (value = '', limit = 0) => value.length >= limit\nexport const isEmail = (value = '') => REGEX_EMAIL.test(value)\nexport const isURL = (value = '') => REGEX_URL.test(value)\nexport const isHexColor = (value = '') => REGEX_HEX_COLOR.test(value)\nexport const isNumber = (value = '') => REGEX_NUMBER.test(value)\nexport const notEmpty = (value) => !!value.length\n","import { forwardRef, useRef, useState } from 'react'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport ErrorZone from '../error_zone'\nimport useInput from '../../hooks/useInput'\nimport { notEmpty } from '../../lib/validators'\nimport { useEffect } from 'react'\n\nconst noop = () => true\ninterface Props {\n name?: string\n icon?: JSX.Element\n iconPosition?: 'has-icons-left' | 'has-icons-right'\n error?: string\n errorZoneClassName?: string\n autoComplete?: string\n className?: string\n widget?: string\n loading?: boolean\n validator?: ((value: string) => boolean) | ((value: string) => boolean)[]\n errorMessage?: string\n dataTest?: string\n autofocus?: boolean\n onChange?: (value: string) => void\n type?: string\n value?: string\n required?: boolean\n id?: string\n placeholder?: string\n disabled?: boolean\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void\n}\n\nexport const Input = forwardRef<HTMLInputElement, Props>(\n (\n {\n icon,\n iconPosition = 'has-icons-right',\n error,\n errorZoneClassName,\n autoComplete = 'off',\n className = '',\n widget = 'input',\n type = 'text',\n loading = false,\n required = false,\n id,\n placeholder,\n value,\n autofocus = false,\n onChange,\n validator = noop,\n errorMessage,\n dataTest = 'testInput',\n disabled,\n onKeyUp,\n },\n ref\n ) => {\n let validatorFn = null\n if (required) {\n validatorFn = Array.isArray(validator)\n ? validator.push(notEmpty)\n : [validator, notEmpty]\n }\n\n const { state, ...handlers } = useInput(onChange, value ?? '', validatorFn)\n const [uid] = useState(generateUID('input'))\n const [mounted, setMounted] = useState(false)\n // eslint-disable-next-line\n ref = ref || useRef()\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (autofocus && !error && ref != null && typeof ref !== 'function') {\n ref.current.focus()\n }\n }, [mounted, autofocus, ref, error])\n\n const theError = state.hasError ? errorMessage || 'invalid field' : ''\n const statusClasses = state.hasError ? 'is-danger' : ''\n\n const cssControl = () => (icon ? ['control', iconPosition] : ['control'])\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssControl())}>\n <input\n className={classnames([widget, className, statusClasses])}\n aria-describedby={uid}\n id={id}\n ref={ref}\n type={type}\n value={state.value}\n placeholder={placeholder}\n autoComplete={autoComplete}\n disabled={loading || disabled}\n required={required}\n data-test={dataTest}\n onKeyUp={onKeyUp}\n {...handlers}\n />\n {icon && icon}\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {state.hasError ? theError : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\nexport default Input\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n icon: string\n className?: string\n align?: string\n}\n\nexport const Icon = ({ icon, className, align }: Props) => {\n const addClass = className ? className.split(' ') : [className]\n\n align = align || 'is-right'\n\n return (\n <span className={classnames(['icon', align, ...addClass])}>\n <i className={icon}></i>\n </span>\n )\n}\n","import { Input } from './input'\nimport { isEmail } from '../../lib/validators'\nimport { Icon } from '../ui/icon'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value?: string\n dataTest?: string\n onChange?: (value: string) => void\n placeholder?: string\n id?: string\n}\nexport const EmailInput = ({\n value = '',\n dataTest,\n placeholder,\n id,\n 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) => {\n event.preventDefault()\n onSubmit(event)\n }\n return (\n <div data-test={dataTest}>\n {title && (\n <div className=\"level\">\n <h1 className=\"title is-size-4\">{title}</h1>\n </div>\n )}\n {error && <div className=\"notification is-danger\">{error}</div>}\n <form\n onSubmit={handleSubmit}\n onReset={onReset}\n autoComplete={autoComplete}\n className={classnames(['form', className])}\n >\n {children}\n </form>\n </div>\n )\n}\n","import { InputHTMLAttributes } from 'react'\nimport { Input } from './input'\n\ninterface Props {\n value: string\n dataTest: string\n onChange: (value: string) => void\n}\n\nexport const PasswordInput = ({\n value,\n dataTest,\n onChange,\n}: Props & InputHTMLAttributes<HTMLInputElement>) => {\n return (\n <Input\n value={value}\n type=\"password\"\n dataTest={dataTest}\n onChange={onChange}\n />\n )\n}\n","import { Form } from './form'\nimport { Input } from './input'\nimport { EmailInput } from './email'\nimport { PasswordInput } from './password'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport { generateUID } from '../../lib/helpers'\nimport { Children, cloneElement, isValidElement, useRef } from 'react'\nimport { IndexSignature } from '../../types/global'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\nconst formComponents = {\n string: Input,\n password: PasswordInput,\n boolean: Checkbox,\n email: EmailInput,\n}\n\ninterface Props {\n schema: GuillotinaSchema\n formData?: any\n onSubmit: (formData: any, initialData: any) => void\n actionName: string\n children?: React.ReactNode\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\n\nexport function FormBuilder({\n schema,\n formData,\n onSubmit,\n actionName,\n children,\n exclude = [],\n remotes = {},\n submitButton = true,\n}: Props) {\n const ref = useRef<unknown>()\n const { properties, required } = schema\n const values = Object.assign({}, formData || {})\n\n // build initial state\n const initialState = {}\n const fields = Object.keys(properties).filter((x) => !exclude.includes(x))\n\n fields.forEach((element) => {\n initialState[element] = values[element] || undefined\n })\n\n // Register remotes\n if (!ref.current) {\n ref.current = {}\n Object.keys(remotes).forEach((item) => (ref.current[item] = remotes[item]))\n } else {\n // apply remote changes\n Object.keys(remotes).forEach((key) => {\n if (JSON.stringify(ref.current[key]) !== JSON.stringify(remotes[key])) {\n ref.current[key] = remotes[key]\n }\n })\n }\n\n ref.current = ref.current || {}\n const onUpdate = (field) => (ev) => {\n ref.current[field] = ev.target ? ev.target.value : ev.value || ev\n }\n\n const GetTag = ({ field }: { field: string }) => {\n const property = properties[field] as GuillotinaSchemaProperty\n const Tag = formComponents[property.widget || property.type]\n\n const props = {\n value: initialState[field],\n onChange: onUpdate(field),\n placeholder: property.title || '',\n id: generateUID(),\n dataTest: `${field}TestInput`,\n required: false,\n }\n\n if (required.includes(field)) {\n props.required = true\n props.placeholder += ' *'\n }\n Tag.displayName = `${field}Field`\n return <Tag {...props} />\n }\n\n const children_ = Children.map(children, (child) => {\n if (isValidElement(child)) {\n const props = { onChange: onUpdate }\n return cloneElement(child, props)\n }\n return child\n })\n\n const changes = () => {\n onSubmit(ref.current, values)\n }\n\n return (\n <Form onSubmit={changes} dataTest={`formAddUserTest`}>\n {fields.map((field) => (\n <GetTag field={field} key={field} />\n ))}\n {children_}\n {submitButton && <Button>{actionName}</Button>}\n </Form>\n )\n}\n","import ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { forwardRef, useState } from 'react'\nimport { IndexSignature } from '../../types/global'\n// @ TODO implement hasErrors\n\ninterface Props {\n error?: string\n errorZoneClassName?: string\n size?: number\n placeholder?: string\n id?: string\n className?: string\n classWrap?: string\n disabled?: boolean\n multiple?: boolean\n loading?: boolean\n onChange?: (value: string | string[]) => void\n options: { text: string; value: string }[]\n appendDefault?: boolean\n style?: IndexSignature\n dataTest?: string\n value?: string | string[]\n}\n\nexport const Select = forwardRef<HTMLSelectElement, Props>(\n (\n {\n options,\n error,\n errorZoneClassName,\n size = 1,\n placeholder,\n id,\n className = '',\n classWrap = '',\n multiple = false,\n loading = false,\n onChange,\n appendDefault = false,\n style = {},\n dataTest,\n value,\n disabled,\n },\n ref\n ) => {\n const intl = useIntl()\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (multiple) {\n let selectValue = []\n for (let i = 0; i < ev.target.selectedOptions.length; i++) {\n selectValue = selectValue.concat([ev.target.selectedOptions[i].value])\n }\n onChange(selectValue)\n } else {\n onChange(ev.target.value)\n }\n }\n\n if (appendDefault) {\n options = [\n { text: intl.formatMessage(genericMessages.choose), value: '' },\n ].concat(options)\n }\n const statusClasses = error ? 'is-danger' : ''\n\n const cssWrap = [\n 'select',\n statusClasses,\n multiple ? 'is-multiple' : '',\n classWrap,\n ]\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classnames(cssWrap)}>\n <select\n className={classnames(['', className])}\n size={multiple ? 5 : size}\n multiple={multiple}\n disabled={loading || disabled}\n onChange={onUpdate}\n ref={ref}\n style={style}\n data-test={dataTest}\n value={value}\n >\n {options.map(({ text, ...rest }, index) => (\n <option key={index.toString()} {...rest}>\n {text}\n </option>\n ))}\n </select>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </div>\n )\n }\n)\n\nSelect.displayName = 'Select'\nexport default Select\n","import { IndexSignature } from '../types/global'\nimport { stringToSlug } from './helpers'\n\nexport const formatDate = (str: string): string => {\n const d = new Date(str)\n const minutes = d.getMinutes() < 10 ? `0${d.getMinutes()}` : d.getMinutes()\n return `${d.getDate()}/${\n d.getMonth() + 1\n }/${d.getFullYear()} ${d.getHours()}:${minutes}`\n}\n\nexport const get = <T>(\n obj: IndexSignature,\n path: string | string[],\n defValue\n): T => {\n // If path is not defined or it has false value\n if (!path) return undefined\n // Check if path is string or array. Regex : ensure that we do not have '.' and brackets.\n // Regex explained: https://regexr.com/58j0k\n const pathArray = Array.isArray(path) ? path : path.match(/([^[.\\]])+/g)\n // Find value if exist return otherwise return undefined value;\n return (\n pathArray.reduce((prevObj, key) => prevObj && prevObj[key], obj) ?? defValue\n )\n}\n\nexport function getNewId(id = '') {\n const suffix = '-copy-'\n const rgx = new RegExp(`($|${suffix}\\\\d*)`)\n\n return stringToSlug(id).replace(rgx, (r) => {\n const num = parseInt(r.replace(suffix, '') || '0')\n return `${suffix}${num + 1}`\n })\n}\n","import { useTraversal } from '../contexts'\nimport { GuillotinaVocabulary } from '../types/guillotina'\nimport useSetState from './useSetState'\nimport { useEffect } from 'react'\n\ninterface State {\n data: GuillotinaVocabulary\n loading: boolean\n error: any\n}\nexport function useVocabulary(vocabularyName: string, path: string = null) {\n const traversal = useTraversal()\n\n const [vocabulary, setVocabulary] = useSetState<State>({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n const getPath = () => {\n if (path) return path\n return `${traversal.path}@vocabularies/${vocabularyName}`\n }\n\n useEffect(() => {\n const getVocabulary = async () => {\n if (\n vocabularyName &&\n vocabulary.data === undefined &&\n !vocabulary.loading\n ) {\n try {\n setVocabulary({ loading: true })\n const data = await traversal.client.get(getPath())\n const dataJson = await data.json()\n setVocabulary({ loading: false, data: dataJson })\n } catch (err) {\n setVocabulary({ loading: false, error: err, data: undefined })\n }\n }\n }\n getVocabulary()\n }, [vocabularyName, vocabulary, path])\n\n return vocabulary\n}\n","import { Select } from './select'\nimport { get } from '../../lib/utils'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { forwardRef } from 'react'\nimport { GuillotinaVocabularyItem } from '../../types/guillotina'\n\ninterface Props {\n vocabularyName: string\n className?: string\n classWrap?: string\n val?: string\n dataTest?: string\n multiple?: boolean\n onChange?: (value: string) => void\n appendDefault?: boolean\n id?: string\n placeholder?: string\n}\nexport const SelectVocabulary = forwardRef<HTMLSelectElement, Props>(\n (\n {\n vocabularyName,\n className,\n classWrap,\n val,\n dataTest,\n multiple,\n onChange,\n id,\n placeholder,\n },\n ref\n ) => {\n const vocabulary = useVocabulary(vocabularyName)\n\n const getOptions = () => {\n if (get<GuillotinaVocabularyItem>(vocabulary, 'data.items', null)) {\n const vocData = vocabulary.data.items.map((item) => {\n return {\n text: item.title,\n value: item.token,\n }\n })\n return vocData\n }\n\n return []\n }\n\n const getProps = () => {\n if (multiple) {\n const currentValue = val || []\n return {\n multiple: true,\n size: 5,\n value: currentValue,\n options: getOptions(),\n }\n }\n\n return {\n value: val ?? '',\n appendDefault: true,\n options: getOptions(),\n }\n }\n\n if (vocabulary.data === undefined || vocabulary.loading) {\n return <div />\n }\n\n return (\n <Select\n {...getProps()}\n className={className}\n classWrap={classWrap || 'is-fullwidth'}\n dataTest={dataTest}\n ref={ref}\n onChange={onChange}\n id={id}\n placeholder={placeholder}\n />\n )\n }\n)\n\nSelectVocabulary.displayName = 'SelectVocabulary'\n","import { useEffect, useRef, useState, useCallback } from 'react'\nimport { IndexSignature } from '../types/global'\n\n// Mostly inspired from\n// https://github.com/molefrog/wouter\n\nconst setURLParams = (p) => {\n return window.history.pushState(\n 0,\n '0',\n '' + '?' + p.toString().replace(/%2F/g, '/')\n )\n}\n\nconst clean = (to) => {\n const current = new URLSearchParams()\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n}\n\nexport const useLocation = (): [\n URLSearchParams,\n (to: IndexSignature, replace?: boolean) => void,\n (param: string) => void\n] => {\n const [path, update] = useState(currentSearchParams())\n const prevPath = useRef(path)\n\n useEffect(() => {\n patchHistoryEvents()\n\n // this function checks if the location has been changed since the\n // last render and updates the state only when needed.\n // unfortunately, we can't rely on `path` value here, since it can be stale,\n // that's why we store the last pathname in a ref.\n const checkForUpdates = () => {\n const pathname = currentSearchParams()\n prevPath.current !== pathname && update((prevPath.current = pathname))\n }\n\n const events = ['popstate', 'pushState', 'replaceState']\n events.map((e) => window.addEventListener(e, checkForUpdates))\n\n // it's possible that an update has occurred between render and the effect handler,\n // so we run additional check on mount to catch these updates. Based on:\n // https://gist.github.com/bvaughn/e25397f70e8c65b0ae0d7c90b731b189\n checkForUpdates()\n\n return () => {\n events.map((e) => window.removeEventListener(e, checkForUpdates))\n }\n }, [])\n\n // the 2nd argument of the `useLocation` return value is a function\n // that allows to perform a navigation.\n //\n // the function reference should stay the same between re-renders, so that\n // it can be passed down as an element prop without any performance concerns.\n const navigate = useCallback(\n (to, replace) => {\n if (replace) {\n clean(to)\n return\n }\n const current = new URLSearchParams(path.toString())\n Object.keys(to).forEach((_key) => current.set(_key, to[_key]))\n setURLParams(current)\n },\n [path]\n )\n\n const remove = useCallback(\n (param) => {\n const current = new URLSearchParams(path.toString())\n current.delete(param)\n setURLParams(current)\n },\n [path]\n )\n\n return [path, navigate, remove]\n}\n\n// While History API does have `popstate` event, the only\n// proper way to listen to changes via `push/replaceState`\n// is to monkey-patch these methods.\n//\n// See https://stackoverflow.com/a/4585031\n\nlet patched = 0\n\nconst patchHistoryEvents = () => {\n if (patched) return\n ;['pushState', 'replaceState'].map((type) => {\n const original = window.history[type]\n\n window.history[type] = function (...args) {\n const result = original.apply(this, args)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const event: any = new Event(type)\n event.arguments = args\n\n dispatchEvent(event)\n return result\n }\n })\n\n return (patched = 1)\n}\n\nconst currentSearchParams = (path = window.location.search) =>\n new URLSearchParams(path)\n","import { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n aRef?: React.Ref<HTMLAnchorElement>\n model: ItemModel\n children: React.ReactNode\n onClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void\n}\n\nexport function Link({ aRef, model, children, ...props }: Props) {\n const [path, navigate] = useLocation()\n const aStyle = { textDecoration: 'none', color: 'currentColor' }\n\n function onClick(e) {\n e.stopPropagation()\n if (actAsLink(e)) return\n e.preventDefault()\n navigate({ path: model.path }, true)\n if (props.onClick) props.onClick(e)\n }\n\n return (\n <a\n ref={aRef}\n href={`?${path}${model.id}/`}\n style={aStyle}\n onClick={onClick}\n >\n {children}\n </a>\n )\n}\n\nfunction actAsLink(e) {\n return e.ctrlKey || e.metaKey || e.altKey || e.shiftKey || e.button !== 0\n}\n","import { useRef } from 'react'\nimport { Link } from './Link'\nimport { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n model: ItemModel\n children: React.ReactNode\n style?: IndexSignature\n}\nexport function TdLink({ model, children, style = {} }: Props) {\n const link = useRef<HTMLAnchorElement>()\n\n function onClick() {\n if (link && link.current) {\n link.current.click()\n }\n }\n\n return (\n <td onClick={onClick} style={style}>\n <Link model={model} aRef={link}>\n {children}\n </Link>\n </td>\n )\n}\n","import { IndexSignature } from '../../types/global'\n\ninterface Props {\n style?: IndexSignature\n}\nexport const Loading = ({ style = {} }: Props) => (\n <div className=\"progress-line\" style={style}></div>\n)\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n name: string\n id: string\n onRemove?: () => void\n size?: string\n color?: string\n}\nexport const Tag = ({\n name,\n id,\n onRemove,\n size = 'is-medium',\n color = 'is-warning',\n}: Props) => (\n <span className={classnames(['tag', color, size])} data-test={`tag-${id}`}>\n {name}\n {onRemove !== undefined && (\n <button className=\"delete is-small\" onClick={() => onRemove()}></button>\n )}\n </span>\n)\n","import { MouseEvent } from 'react'\n\ninterface Props {\n onClick: (event: MouseEvent<HTMLButtonElement>) => void\n className?: string\n children?: React.ReactNode\n}\nexport function Delete({ onClick, className = '', children = null }: Props) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={`delete ${className}`}\n data-test=\"btnDeleteTest\"\n >\n {children}\n </button>\n )\n}\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n headers?: string[]\n className?: string\n children: React.ReactNode\n}\nexport function Table({ headers, children, className }: Props) {\n const parsedClassName = className\n ? className.split(' ')\n : ' is-full is-fullwidth is-narrow'.split(' ')\n return (\n <table className={classnames(['table', ...parsedClassName])}>\n <thead>\n <tr>\n {headers &&\n headers.map((item, idx) => <th key={item + idx}>{item}</th>)}\n </tr>\n </thead>\n <tbody>{children}</tbody>\n </table>\n )\n}\n","interface Props {\n isColor?: string\n children: React.ReactNode\n}\nexport function Notification({ isColor = '', children }: Props) {\n return (\n <div className={'notification is-' + isColor} data-test=\"notificationTest\">\n {children}\n </div>\n )\n}\n","import { Auth } from './auth'\n\nexport class RestClient {\n url: string\n container: string\n auth: Auth\n\n constructor(url: string, container: string, auth: Auth) {\n this.auth = auth\n this.url = url\n this.container = container\n }\n\n async request(path, data = undefined, headers = undefined) {\n if (path.indexOf(this.url) !== -1) {\n path = path.replace(this.url, '')\n }\n\n if (this.container !== '/' && path.indexOf(this.container) === -1) {\n path = `${this.container}${path}`\n }\n\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n data = data || {}\n data.headers = headers || this.getHeaders()\n return await fetch(`${this.url}${path}`, data)\n }\n\n getHeaders() {\n const authToken = this.auth.getToken()\n if (!authToken) return {}\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n\n async post(path, data) {\n return await this.request(path, {\n method: 'post',\n body: JSON.stringify(data),\n })\n }\n\n async get(path) {\n return await this.request(path)\n }\n\n async put(path, data) {\n return await this.request(path, {\n method: 'put',\n body: JSON.stringify(data),\n })\n }\n\n async patch(path, data) {\n return await this.request(path, {\n method: 'PATCH',\n body: JSON.stringify(data),\n })\n }\n\n async upload(path, data) {\n const headers = this.getHeaders()\n delete headers['Content-Type']\n headers['Content-Type'] = data['content-type']\n headers['X-UPLOAD-FILENAME'] = data.filename\n headers['Content-Encoding'] = 'base64'\n return await this.request(\n path,\n {\n method: 'PATCH',\n body: data.data,\n },\n headers\n )\n }\n\n async delete(path, data = undefined) {\n return await this.request(path, {\n method: 'delete',\n body: JSON.stringify(data),\n })\n }\n}\n","const SEP = '='\nconst DEFAULT_FIELD = 'title__in'\nconst CLEANER = '||'\n\nexport function parser(qs: string, defaultField = DEFAULT_FIELD): string[][] {\n if (qs.includes(SEP) && Array.isArray(defaultField)) {\n throw new Error('This option is not supported')\n }\n\n if (Array.isArray(defaultField)) {\n const orParser = []\n defaultField.forEach((field) => {\n const parsed = parser(qs, field)\n orParser.push(buildQs(parsed))\n })\n const result = [['__or', orParser.join('&')]]\n return result\n }\n let lastKey = undefined\n qs.trim()\n\n if (qs.includes('\"')) {\n qs = qs.replace(/\"(\\w+) (\\w+)\"/, `$1${CLEANER}$2`)\n }\n\n const qsSplit = qs.split(' ')\n return qsSplit.map((part) => {\n if (part.includes(CLEANER)) {\n part = part.replace('||', ' ')\n }\n if (!part.includes(SEP)) {\n return !lastKey ? [defaultField, part] : [lastKey, part]\n }\n const [key, val] = part.split(SEP)\n lastKey = key\n return [key, val]\n })\n}\n\nexport function buildQs(parsedQuery: string[][]): string {\n return parsedQuery\n .map(\n ([key, val]) => `${encodeURIComponent(key)}=${encodeURIComponent(val)}`\n )\n .join('&')\n}\n","import React from 'react'\nimport { TdLink } from '../components/TdLink'\nimport { Icon } from '../components/ui'\nimport { toQueryString } from './helpers'\nimport { RestClient } from './rest'\nimport { parser } from './search'\nimport { LightFile } from '../types/global'\n\nconst cacheTypes = {}\nconst cacheSchemas = {}\n\nexport class GuillotinaClient {\n rest: RestClient\n pathContainsContainer: boolean\n constructor(rest: RestClient, pathContainsContainer: boolean) {\n this.rest = rest\n this.pathContainsContainer = pathContainsContainer\n }\n\n getContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n const parts = path.split('/')\n return `${parts[0]}/${parts[1]}/`\n }\n return ''\n }\n\n clearContainerFromPath = (path) => {\n if (this.pathContainsContainer) {\n return `/${this.cleanPath(path)}`\n }\n return path\n }\n\n async getContext(path) {\n switch (path) {\n case '/':\n return await this.rest.get('')\n default:\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n }\n\n async get(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n return await this.rest.get(path)\n }\n\n getQueryParamsPostresql({ start = 0, pageSize = 10, withDepth = true }) {\n let result = []\n\n result = [\n ...parser(start.toString(), 'b_start'),\n ...parser(pageSize.toString(), 'b_size'),\n ]\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n return result\n }\n\n getQueryParamsElasticsearch({\n start = 0,\n pageSize = 10,\n path,\n withDepth = true,\n }) {\n let result = []\n let containerPath = this.getContainerFromPath(path)\n\n if (containerPath.startsWith('/')) {\n containerPath = containerPath.slice(1)\n }\n let objectPath = path.replace(containerPath, '')\n if (objectPath.endsWith('/')) {\n objectPath = objectPath.slice(0, -1)\n }\n\n result = [\n ...parser(start.toString(), '_from'),\n ...parser(pageSize.toString(), 'size'),\n ...parser('*', '_metadata'),\n ]\n\n if (withDepth) {\n result = [...result, ...(parser('1', 'depth') ?? [])]\n }\n if (objectPath !== '') {\n result = [...result, ...parser(objectPath, 'path__wildcard')]\n }\n return result\n }\n\n getItemsColumn() {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n label: '',\n isSortable: false,\n child: (m) => <td style={smallcss}>{<Icon icon={m.icon} />}</td>,\n },\n {\n label: 'type',\n key: 'type_name',\n isSortable: false,\n child: (m) => (\n <TdLink style={smallcss} model={m}>\n <span className=\"tag\">{m.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n key: 'title',\n isSortable: true,\n child: (m, navigate, search) => (\n <TdLink model={m}>\n {m.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{m.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n key: 'creation_date',\n isSortable: true,\n child: (m) => {\n return (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n )\n },\n },\n {\n label: 'modified',\n key: 'modification_date',\n isSortable: true,\n child: (m) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat(data) {\n data.member = data.items\n data.items_count = data.items_total\n return data\n }\n\n async search(\n path: string,\n params: string | string[][],\n container = false,\n prepare = true\n ) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n\n if (container) {\n path = this.getContainerFromPath(path)\n }\n\n const query = prepare ? toQueryString(params as string[][]) : params\n const url = `${path}@search?${query}`\n const res = await this.rest.get(url)\n const data = await res.json()\n return this.applyCompat(data)\n }\n\n async canido(path, permissions) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (Array.isArray(permissions)) {\n permissions.join(',')\n }\n const url = `${path}@canido?permissions=${permissions}`\n return await this.rest.get(url)\n }\n\n async createObject(path, data) {\n return await this.rest.post(path, data)\n }\n\n cleanPath(path) {\n const url = path.split('/').slice(3)\n return `${url.join('/')}`\n }\n\n async delete(path, data) {\n return await this.rest.delete(path, data)\n }\n\n async create(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.post(path, data)\n }\n\n async post(path, data) {\n return await this.create(path, data)\n }\n\n async patch(path, data) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.patch(path, data)\n }\n\n async upload(path, file) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.upload(path, file)\n }\n\n async download(path) {\n if (path.startsWith('/')) {\n path = path.substring(1)\n }\n return await this.rest.get(path)\n }\n\n async getTypeSchema(path, name) {\n if (!cacheSchemas[name]) {\n const url = this.getContainerFromPath(path)\n // todo: handle db case (only addable containers)\n const res = await this.rest.get(`${url}@types/${name}`)\n cacheSchemas[name] = await res.json()\n }\n return cacheSchemas[name]\n }\n\n async getAddons(path) {\n return await this.rest.get(`${path}@addons`)\n }\n\n async installAddon(path, key) {\n return await this.rest.post(`${path}@addons`, { id: key })\n }\n\n async removeAddon(path, key) {\n return await this.rest.delete(`${path}@addons`, { id: key })\n }\n\n async getGroups(path) {\n const endpoint = `${this.getContainerFromPath(path)}@groups`\n return await this.rest.get(endpoint)\n }\n\n async getUsers(path) {\n const endpoint = `${this.getContainerFromPath(path)}@users`\n return await this.rest.get(endpoint)\n }\n\n async getPrincipals(path) {\n const groups = this.getGroups(path)\n const users = this.getUsers(path)\n const [gr, usr] = await Promise.all([groups, users])\n\n return {\n groups: gr.ok ? await gr.json() : [],\n users: usr.ok ? await usr.json() : [],\n }\n }\n\n async getRoles(path) {\n const endpoint = `${this.getContainerFromPath(path)}@available-roles`\n return await this.rest.get(endpoint)\n }\n\n async getAllPermissions(path) {\n // paths used to query the API always has to start without a \"/\"\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n const req = await this.rest.get(path + '@all_permissions')\n const resp = await req.json()\n const permissions = Array.from(new Set(extractPermissions(resp)))\n return permissions\n }\n\n async getTypes(path) {\n if (path.startsWith('/')) {\n path = path.slice(1)\n }\n if (!cacheTypes[path]) {\n const types = await this.rest.get(path + '@addable-types')\n if (types.status === 401 || types.status === 404) {\n cacheTypes[path] = []\n } else {\n const res = await types.json()\n cacheTypes[path] = res\n }\n }\n return cacheTypes[path]\n }\n}\n\nexport function getClient(url, container, auth) {\n return new GuillotinaClient(\n new RestClient(url, container, auth),\n container === '/'\n )\n}\n\nexport const lightFileReader = (file) => {\n return new Promise<LightFile>((resolve) => {\n const reader = new FileReader()\n reader.readAsArrayBuffer(file)\n reader.onloadend = (e) => {\n const fileData = e.target.result\n resolve({\n filename: file.name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''),\n data: fileData,\n 'content-type': file.type,\n })\n }\n })\n}\n\nconst extractPermissions = (data) => {\n let result = []\n if (typeof data !== 'object') {\n // do nothing\n } else if (!Array.isArray(data) && data.permission) {\n result = result.concat([data.permission])\n } else if (!Array.isArray(data)) {\n Object.keys(data).map(\n (key) => (result = result.concat(extractPermissions(data[key])))\n )\n } else if (Array.isArray(data)) {\n data.map((item) => (result = result.concat(extractPermissions(item))))\n }\n return result\n}\n","import { ChangeEvent, InputHTMLAttributes } from 'react'\nimport { lightFileReader } from '../../lib/client.js'\nimport { useIntl } from 'react-intl'\nimport { LightFile } from '../../types/global'\n\ninterface Props {\n label?: string\n dataTest?: string\n onChange: (file: LightFile) => void\n}\nexport function FileUpload({\n label,\n onChange,\n dataTest,\n}: Props & InputHTMLAttributes<HTMLInputElement>) {\n const intl = useIntl()\n const changed = async (event: ChangeEvent<HTMLInputElement>) => {\n const fileToUpload = await lightFileReader(event.target.files[0])\n onChange(fileToUpload)\n }\n\n return (\n <div className=\"file\">\n <label className=\"file-label\">\n <input\n className=\"file-input\"\n type=\"file\"\n name=\"file\"\n onChange={changed}\n data-test={dataTest}\n />\n <span className=\"file-cta\">\n <span className=\"file-icon\">\n <i className=\"fas fa-upload\"></i>\n </span>\n <span className=\"file-label\">\n {label ||\n intl.formatMessage({\n id: 'choose_file',\n defaultMessage: 'Choose a file',\n })}\n </span>\n </span>\n </label>\n </div>\n )\n}\n","import ErrorZone from '../error_zone'\nimport { classnames, generateUID } from '../../lib/helpers'\nimport { forwardRef, useState } from 'react'\n\ninterface Props {\n value: string\n classWrap?: string\n rows?: number\n className?: string\n onChange?: (value: string) => void\n dataTest?: string\n error?: string\n errorZoneClassName?: string\n placeholder?: string\n id?: string\n}\nexport const Textarea = forwardRef<HTMLTextAreaElement, Props>(\n (\n {\n value = '',\n classWrap = '',\n rows = 5,\n className = '',\n onChange,\n dataTest,\n error,\n errorZoneClassName,\n placeholder,\n id,\n },\n ref\n ) => {\n const [uid] = useState(generateUID('select'))\n\n const onUpdate = (ev) => {\n if (onChange) {\n onChange(ev.target.value)\n }\n }\n const statusClasses = error ? 'is-danger' : ''\n\n return (\n <div className=\"field\">\n {id && placeholder ? (\n <label className=\"label\" htmlFor={id}>\n {placeholder}\n </label>\n ) : null}\n <div className={classWrap}>\n <textarea\n className={classnames(['textarea', className, statusClasses])}\n rows={rows}\n onChange={onUpdate}\n value={value}\n data-test={dataTest}\n ref={ref}\n />\n </div>\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n </div>\n )\n }\n)\n\nTextarea.displayName = 'Textarea'\nexport default Textarea\n","import { useEffect, useRef } from 'react'\n\nconst defaultEvents = ['mousedown', 'touchstart']\nconst on = (obj, ...args) => obj.addEventListener(...args)\nconst off = (obj, ...args) => obj.removeEventListener(...args)\n\nexport default function useClickAway(ref, onClickAway, events = defaultEvents) {\n const savedCallback = useRef(onClickAway)\n\n useEffect(() => {\n savedCallback.current = onClickAway\n }, [onClickAway])\n\n useEffect(() => {\n const handler = (event) => {\n const { current: el } = ref\n el && !el.contains(event.target) && savedCallback.current(event)\n }\n\n for (const eventName of events) {\n on(document, eventName, handler)\n }\n\n return () => {\n for (const eventName of events) {\n off(document, eventName, handler)\n }\n }\n }, [events, ref])\n}\n","import { useState, useEffect, useCallback, useRef } from 'react'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport useSetState from '../../hooks/useSetState'\nimport ErrorZone from '../error_zone'\nimport { Loading } from '../ui'\nimport { generateUID } from '../../lib/helpers'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\n const args = arguments\n const later = function () {\n timeout = null\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n }\n}\n\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange?: (value: string) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[][]\n queryCondition?: string\n value?: string\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\n}\n\nexport const SearchInput = ({\n onChange,\n error,\n errorZoneClassName,\n traversal = null,\n path = null,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = null,\n typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [valueLabel, setValueLabel] = useState<Partial<SearchItem>>(undefined)\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\n\n const getHeight = () => {\n if (wrapperRef && wrapperRef.current) {\n return {\n maxHeight: `${\n window.innerHeight -\n wrapperRef.current.getBoundingClientRect().top -\n 100\n }px`,\n }\n }\n return { maxHeight: 'auto' }\n }\n\n const delayedQuery = useCallback<(value: string) => void>(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const inicializeLabels = async () => {\n if (labelProperty !== 'id' && value) {\n let searchTermQs = ''\n const searchTermParsed = [`id`, value]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: PageSize,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValueLabel(newValuesLabel)\n }\n }\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n setOptions({ loading: true })\n let searchTermQs = ''\n let searchTermParsed = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newItems =\n options.items && concat ? [...options.items, ...data.items] : data.items\n\n setOptions({\n items: newItems ?? [],\n loading: false,\n items_total: data.items_total ?? 0,\n page: page,\n })\n }\n\n const renderTextItemOptionFn = (item) => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return get(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (value) {\n inicializeLabels()\n } else {\n setValueLabel({})\n }\n }, [path, value])\n\n if (valueLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n if (ev.target instanceof HTMLElement) {\n ev.target.blur()\n }\n\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>\n {value\n ? get(valueLabel, value, value)\n : intl.formatMessage(genericMessages.choose)}\n </span>\n <span className=\"icon\">\n <i className=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </div>\n <div\n className=\"dropdown-menu\"\n id=\"dropdown-menu\"\n role=\"menu\"\n style={getHeight()}\n >\n <div className=\"dropdown-content\">\n <div className=\"dropdown-item\">\n <input\n ref={inputRef}\n data-test={dataTestSearchInput}\n className=\"input\"\n type=\"text\"\n placeholder={intl.formatMessage(genericMessages.search)}\n value={searchTerm}\n onChange={(ev) => {\n delayedQuery(ev.target.value)\n setSearchTerm(ev.target.value)\n }}\n />\n </div>\n <hr className=\"dropdown-divider\" />\n {options.loading && <Loading />}\n {options.items &&\n options.items.map((item) => {\n return (\n <div\n className={`dropdown-item editable ${\n value === item.id ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange) {\n onChange(item.id)\n }\n setIsOpen(false)\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\n )\n })}\n\n {options.items && options.items.length === 0 && (\n <div className=\"dropdown-item\">\n {intl.formatMessage(genericMessages.no_results)}\n </div>\n )}\n\n {options.items && options.items_total > options.items.length && (\n <>\n <hr className=\"dropdown-divider\" />\n <div\n className=\"dropdown-item editable\"\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n handleSearch(options.page + 1, true)\n }}\n >\n {intl.formatMessage(genericMessages.load_more)}\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { useState, useCallback, useRef, useEffect } from 'react'\n\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport useSetState from '../../hooks/useSetState'\nimport ErrorZone from '../error_zone'\nimport { Loading } from '../ui'\nimport { generateUID } from '../../lib/helpers'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport useClickAway from '../../hooks/useClickAway'\nimport { get } from '../../lib/utils'\nimport { SearchItem } from '../../types/guillotina'\nimport { Traversal } from '../../contexts'\n\nfunction debounce(func, wait) {\n let timeout\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this\n // eslint-disable-next-line prefer-rest-params\n const args = arguments\n const later = function () {\n timeout = null\n func.apply(context, args)\n }\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n }\n}\n\ninterface State {\n page: number\n items: SearchItem[]\n loading: boolean\n items_total: number\n}\nconst initialState: State = {\n page: 0,\n items: undefined,\n loading: false,\n items_total: 0,\n}\n\ninterface Props {\n onChange: (value: string[]) => void\n error?: string\n errorZoneClassName?: string\n traversal?: Traversal\n path?: string\n qs?: string[]\n queryCondition?: string\n value: string[]\n btnClass?: string\n dataTestWrapper?: string\n dataTestSearchInput?: string\n dataTestItem?: string\n renderTextItemOption?: (item: SearchItem) => string\n typeNameQuery?: string\n labelProperty?: string\n}\n\nexport const SearchInputList = ({\n onChange,\n error,\n errorZoneClassName,\n traversal = null,\n path = null,\n qs = [],\n queryCondition = 'id__in',\n value,\n btnClass = '',\n dataTestWrapper = 'wrapperSearchInputTest',\n dataTestSearchInput = 'searchInputTest',\n dataTestItem = 'searchInputItemTest',\n renderTextItemOption = null,\n typeNameQuery = null,\n labelProperty = 'id',\n}: Props) => {\n const intl = useIntl()\n const [options, setOptions] = useSetState<State>(initialState)\n const [valuesLabel, setValuesLabels] = useState(undefined)\n const [isOpen, setIsOpen] = useState(false)\n const [searchTerm, setSearchTerm] = useState('')\n const inputRef = useRef(null)\n const wrapperRef = useRef(null)\n const { PageSize, SearchEngine } = useConfig()\n const [isLoadingData, setIsLoadingData] = useState(false)\n\n const [uid] = useState(generateUID('search_input'))\n\n useClickAway(wrapperRef, () => {\n setIsOpen(false)\n })\n\n const getHeight = () => {\n if (wrapperRef && wrapperRef.current) {\n return {\n maxHeight: `${\n window.innerHeight -\n wrapperRef.current.getBoundingClientRect().top -\n 100\n }px`,\n }\n }\n return { maxHeight: 'auto' }\n }\n\n const delayedQuery = useCallback<(value: string) => void>(\n debounce((value) => handleSearch(0, false, value), 500),\n []\n )\n\n const handleSearch = async (page = 0, concat = false, value = '') => {\n setOptions({ loading: true })\n let searchTermQs = ''\n let searchTermParsed = []\n if (value !== '') {\n searchTermParsed = parser(`${queryCondition}=${value}`)\n }\n const { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: page * PageSize,\n pageSize: PageSize,\n withDepth: false,\n })\n const sortParsed = parser(`_sort_des=${labelProperty}`)\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n ...searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ...sortParsed,\n ])\n }\n\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false\n )\n const newItems =\n options.items && concat ? [...options.items, ...data.items] : data.items\n\n setOptions({\n items: newItems ?? [],\n loading: false,\n items_total: data.items_total ?? 0,\n page: page,\n })\n }\n\n const inicializeLabels = async () => {\n if (labelProperty !== 'id' && value.length > 0) {\n setIsLoadingData(true)\n let searchTermQs = ''\n const searchTermParsed = ['__or', `id=${value.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n let typeNameParsed = []\n if (typeNameQuery) {\n typeNameParsed = parser(`type_name__in=${typeNameQuery}`)\n }\n if (\n qs.length > 0 ||\n searchTermParsed.length > 0 ||\n qsParsed.length > 0 ||\n typeNameParsed.length > 0\n ) {\n searchTermQs = buildQs([\n ...qs,\n searchTermParsed,\n ...qsParsed,\n ...typeNameParsed,\n ])\n }\n const data = await traversal.client.search(\n path ? path : traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n const newValuesLabel = data.items.reduce((result, item) => {\n result[item.id] = get(item, labelProperty, item.id)\n return result\n }, {})\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n }\n\n const renderTextItemOptionFn = (\n item: SearchItem\n ): string | React.ReactNode => {\n if (renderTextItemOption) {\n return renderTextItemOption(item)\n }\n return get<string>(item, labelProperty, item.title) || item['@name']\n }\n\n useEffect(() => {\n if (!options.loading && !options.items && value.length > 0) {\n inicializeLabels()\n } else if (value.length === 0) {\n setValuesLabels({})\n }\n }, [path, options.loading, options.items])\n\n if (isLoadingData || valuesLabel === undefined) {\n return <div className=\"spinner\" />\n }\n\n return (\n <>\n <div className=\"tags mb-2\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {get(valuesLabel, tag, tag)}\n <button\n className=\"delete is-small\"\n onClick={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }}\n ></button>\n </div>\n ))}\n </div>\n <div\n data-test={dataTestWrapper}\n ref={wrapperRef}\n className={`dropdown mb-2 ${isOpen ? 'is-active' : ''}`}\n onBlur={(ev) => {\n if (!ev.currentTarget.contains(ev.relatedTarget)) {\n if (searchTerm !== '') {\n setSearchTerm('')\n setOptions(initialState)\n }\n setIsOpen(false)\n }\n }}\n >\n <div className=\"dropdown-trigger\">\n <button\n className={`button ${btnClass}`}\n onClick={(ev) => {\n ev.preventDefault()\n setIsOpen(!isOpen)\n if (!options.loading && !options.items) {\n handleSearch(options.page)\n }\n }}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <span>{intl.formatMessage(genericMessages.choose)}</span>\n\n <span className=\"icon\">\n <i className=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </div>\n <div\n className=\"dropdown-menu\"\n id=\"dropdown-menu\"\n role=\"menu\"\n style={getHeight()}\n >\n <div className=\"dropdown-content\">\n <div className=\"dropdown-item\">\n <input\n ref={inputRef}\n data-test={dataTestSearchInput}\n className=\"input\"\n type=\"text\"\n placeholder={intl.formatMessage(genericMessages.search)}\n value={searchTerm}\n onChange={(ev) => {\n delayedQuery(ev.target.value)\n setSearchTerm(ev.target.value)\n }}\n />\n </div>\n <hr className=\"dropdown-divider\" />\n {options.loading && <Loading />}\n {options.items &&\n options.items.map((item) => {\n return (\n <div\n className={`dropdown-item editable ${\n value.includes(item.id) ? 'is-active' : ''\n }`}\n data-test={`${dataTestItem}-${item.id}`}\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n if (onChange && !value.includes(item.id)) {\n setValuesLabels({\n ...valuesLabel,\n [item.id]: get(item, labelProperty, item.id),\n })\n onChange([...value, item.id])\n }\n }}\n key={item.path}\n >\n {renderTextItemOptionFn(item)}\n </div>\n )\n })}\n\n {options.items && options.items.length === 0 && (\n <div className=\"dropdown-item\">\n {intl.formatMessage(genericMessages.no_results)}\n </div>\n )}\n\n {options.items && options.items_total > options.items.length && (\n <>\n <hr className=\"dropdown-divider\" />\n <div\n className=\"dropdown-item editable\"\n onMouseDown={(ev) => {\n ev.stopPropagation()\n ev.preventDefault()\n handleSearch(options.page + 1, true)\n }}\n >\n {intl.formatMessage(genericMessages.load_more)}\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n {error && (\n <ErrorZone className={errorZoneClassName} id={uid}>\n {error ? error : ''}\n </ErrorZone>\n )}\n </>\n )\n}\n","import { InputHTMLAttributes, forwardRef, useState } from 'react'\nimport { Input } from './input'\nimport { useIntl } from 'react-intl'\n\ninterface Props {\n value: string[]\n onChange: (value: string[]) => void\n dataTest?: string\n id?: string\n}\nexport const InputList = forwardRef<\n HTMLInputElement,\n InputHTMLAttributes<HTMLInputElement> & Props\n>(({ value, onChange, dataTest, id }, ref) => {\n const intl = useIntl()\n const [inputValue, setInputValue] = useState('')\n const addTags = (event) => {\n if (event.key === 'Enter' && event.target.value !== '') {\n onChange([...value, event.target.value])\n setInputValue('')\n }\n }\n\n return (\n <div className=\"control\">\n {(value ?? []).length > 0 && (\n <div className=\"tags\">\n {value.map((tag, index) => (\n <div\n key={`input_list_${tag}_${index}`}\n className=\"tag is-info is-medium\"\n >\n {tag}\n <button\n className=\"delete is-small\"\n type=\"button\"\n onClick={() =>\n onChange([\n ...value.filter((tag) => value.indexOf(tag) !== index),\n ])\n }\n />\n </div>\n ))}\n </div>\n )}\n\n <Input\n type=\"text\"\n id={id}\n placeholder={intl.formatMessage({\n id: 'press_enter_to_add_value',\n defaultMessage: 'Press enter to add value',\n })}\n onKeyUp={(event) => addTags(event)}\n value={inputValue}\n ref={ref}\n dataTest={dataTest}\n onChange={(value) => {\n setInputValue(value)\n }}\n />\n </div>\n )\n})\n\nInputList.displayName = 'InputList'\nexport default InputList\n","import { useState, useRef } from 'react'\nimport useClickAway from '../../hooks/useClickAway'\n\ninterface Props {\n children: React.ReactNode\n disabled?: boolean\n id?: string\n isRight?: boolean\n onChange: (value: string) => void\n optionDisabledWhen?: (option: any) => boolean\n options: { text: string; value: string }[]\n}\n\nexport default function Dropdown({\n children,\n disabled,\n id,\n isRight,\n onChange,\n optionDisabledWhen,\n options,\n}: Props) {\n const ref = useRef(null)\n const [isActive, setIsActive] = useState(false)\n const position = isRight ? 'is-right' : ''\n const status = isActive\n ? `dropdown ${position} is-active`\n : `dropdown ${position}`\n\n useClickAway(ref, () => {\n setIsActive(false)\n })\n\n return (\n <div ref={ref} className={status}>\n <div className=\"dropdown-trigger\">\n <button\n className=\"button is-size-7\"\n onClick={() => setIsActive(!isActive)}\n aria-haspopup=\"true\"\n disabled={disabled}\n aria-controls={id}\n >\n {children}\n </button>\n </div>\n <div className=\"dropdown-menu\" id={id} role=\"menu\">\n <div className=\"dropdown-content\">\n {options.map((option) => {\n const disabled =\n typeof optionDisabledWhen === 'function'\n ? optionDisabledWhen(option)\n : false\n\n return (\n <a\n className={\n disabled ? 'dropdown-item is-active' : 'dropdown-item'\n }\n data-test={`dropdownItemTest-${option.value.toLowerCase()}`}\n key={option.text}\n onClick={disabled ? undefined : () => onChange(option.value)}\n style={\n disabled\n ? {\n cursor: 'not-allowed',\n color: 'black',\n opacity: 0.5,\n backgroundColor: '#eeeeee',\n }\n : {}\n }\n >\n {option.text}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n )\n}\n","import { Button } from '../input/button'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useState } from 'react'\nimport { useRef } from 'react'\nimport { useEffect } from 'react'\nimport { Icon } from '../ui'\nimport { get } from '../../lib/utils'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\n\ninterface Props {\n field: string\n value: any\n ns?: string\n schema?: any\n modifyContent?: boolean\n required?: boolean\n}\n\nexport function EditableField({\n field,\n value,\n ns,\n schema = undefined,\n modifyContent,\n required,\n}: Props) {\n const intl = useIntl()\n const ref = useRef<HTMLElement>()\n const [isEdit, setEdit] = useState(false)\n const [val, setValue] = useState(value)\n const { patch, loading, Ctx } = useCrudContext()\n const { fieldHaveDeleteButton } = useConfig()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n const RenderFieldComponent = Ctx.registry.get(\n 'components',\n 'RenderFieldComponent'\n )\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified = modifyContent && !get(schema, 'readonly', false)\n\n const saveField = async (ev) => {\n if (ev) ev.preventDefault()\n\n if (!field) {\n Ctx.flash(\n intl.formatMessage(genericMessages.error_provide_key_name),\n 'danger'\n )\n return\n }\n\n if (!val && required) {\n Ctx.flash(\n intl.formatMessage(genericMessages.mandatory_field, { field }),\n 'danger'\n )\n return\n }\n\n if (schema?.widget === 'file') {\n const value = val\n if (value) {\n value['filename'] = unescape(encodeURIComponent(value['filename']))\n }\n const endpoint = `${Ctx.path}@upload/${field}`\n const req = await Ctx.client.upload(endpoint, value)\n if (req.status !== 200) {\n Ctx.flash(\n intl.formatMessage(genericFileMessages.error_upload_file),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericFileMessages.file_uploaded),\n 'success'\n )\n }\n } else {\n const data = ns ? { [ns]: { [field]: val } } : { [field]: val }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(\n intl.formatMessage(genericMessages.error_in_field, { field }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericMessages.field_updated, { field }),\n 'success'\n )\n }\n }\n\n setEdit(false)\n Ctx.refresh()\n }\n\n const deleteField = async (ev) => {\n if (ev) ev.preventDefault()\n if (schema?.widget === 'file') {\n if (!field || (!val && required)) {\n Ctx.flash(\n intl.formatMessage(genericMessages.can_not_delete_field, { field }),\n 'danger'\n )\n return\n }\n\n const data = ns ? { [ns]: { [field]: null } } : { [field]: null }\n const dataPatch = await patch(data)\n if (dataPatch.isError) {\n Ctx.flash(\n intl.formatMessage(genericMessages.error_in_field, { field }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage(genericMessages.field_deleted, { field }),\n 'success'\n )\n }\n\n setEdit(false)\n Ctx.refresh()\n } else if (schema?.type === 'string' && schema?.enum) {\n setValue(null)\n } else if (schema?.type === 'array' && schema?.items.type === 'string') {\n setValue([])\n }\n }\n\n return (\n <>\n {!isEdit && (\n <div\n className={canModified ? 'editable' : ''}\n onClick={() => {\n setEdit(!!canModified)\n }}\n data-test={`editableFieldTest-${field}`}\n >\n <RenderFieldComponent\n schema={schema}\n field={field}\n val={val}\n modifyContent={modifyContent}\n />\n {canModified && <Icon icon=\"fas fa-edit\" />}\n </div>\n )}\n\n {isEdit && (\n <div className=\"field\" data-test={`editableFieldTest-${field}`}>\n <div className=\"control\">\n <EditComponent\n ref={ref}\n schema={schema}\n val={val}\n setValue={setValue}\n dataTest={`editableFieldEditTest`}\n />\n </div>\n <div className=\"field is-grouped\">\n <div className=\"control\">\n <Button\n className=\"is-small is-primary\"\n loading={loading}\n onClick={saveField}\n dataTest=\"editableFieldBtnSaveTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n <div className=\"control\">\n <Button\n className=\"is-small\"\n onClick={() => setEdit(false)}\n dataTest=\"editableFieldBtnCancelTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </Button>\n </div>\n {!required && fieldHaveDeleteButton(schema) && (\n <div className=\"control\">\n <Button\n className=\"is-small is-danger\"\n onClick={deleteField}\n dataTest=\"editableFieldBtnDeleteTest\"\n >\n {intl.formatMessage(genericMessages.delete)}\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface DownloadFieldProps {\n value: {\n data: {\n filename: string\n content_type: string\n }\n field: string\n }\n}\nexport const DownloadField = ({ value }: DownloadFieldProps) => {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { data, field } = value\n\n const getField = async (downloadFile) => {\n const endpoint = `${Ctx.path}@download/${field}`\n const res = await Ctx.client.download(endpoint)\n const text = await res.blob()\n const blob = new Blob([text], {\n type: data.content_type,\n })\n const url = window.URL.createObjectURL(blob)\n\n // Create blob link to download\n const link = document.createElement('a')\n link.href = url\n if (downloadFile) {\n link.setAttribute('download', `${data.filename}`)\n } else {\n link.setAttribute('target', `_blank`)\n }\n\n document.body.appendChild(link)\n link.click()\n setTimeout(function () {\n // For Firefox it is necessary to delay revoking the ObjectURL\n window.URL.revokeObjectURL(url)\n link.parentNode?.removeChild(link)\n }, 100)\n }\n\n return (\n <div className=\"field\">\n <div className=\"label\">{data.filename}</div>\n <div className=\"columns\">\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-left\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(false)\n }}\n >\n {intl.formatMessage(genericMessages.open)}\n </button>\n </div>\n <div className=\"column\">\n <button\n className=\"button is-small is-primary level-right\"\n onClick={async (event) => {\n event.preventDefault()\n event.stopPropagation()\n getField(true)\n }}\n >\n {intl.formatMessage(genericMessages.download)}\n </button>\n </div>\n </div>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\nimport { DownloadField } from './downloadField'\nimport { useIntl } from 'react-intl'\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nimport { buildQs } from '../../lib/search'\nimport { useTraversal } from '../../contexts'\nimport { useConfig } from '../../hooks/useConfig'\nimport {\n GuillotinaSchemaProperty,\n GuillotinaVocabularyItem,\n} from '../../types/guillotina'\n\nconst plain = ['string', 'number', 'boolean']\n\ninterface RenderFieldProps {\n value: any\n Widget?: React.ComponentType<{ value: any; schema: GuillotinaSchemaProperty }>\n schema?: GuillotinaSchemaProperty\n}\n\nexport function RenderField({ value, Widget, schema }: RenderFieldProps) {\n if (value === null || value === undefined) return ''\n\n if (Widget) {\n return <Widget value={value} schema={schema} />\n }\n\n const type = typeof value\n if (plain.includes(type)) {\n return value\n }\n if (type === 'object') {\n if (Array.isArray(value)) {\n return value.map((item) => (\n <div key={item}>\n <RenderField value={item} />\n </div>\n ))\n }\n return Object.keys(value).map((key) => (\n <FieldValue\n field={get(schema, `properties.${key}.title`, key)}\n schema={get(schema, `properties.${key}`, {})}\n value={value[key]}\n key={key}\n />\n ))\n }\n return <p>No render for {JSON.stringify(value)}</p>\n}\n\ninterface FieldValueProps {\n field: string\n value: unknown\n schema: GuillotinaSchemaProperty\n}\nconst FieldValue = ({ field, value, schema }: FieldValueProps) => (\n <div className=\"field\">\n <div className=\"label\">{field}</div>\n <div className=\"value\">\n <RenderFieldComponent val={value} schema={schema} field={field} />\n </div>\n </div>\n)\n\nconst DEFAULT_VALUE_NO_EDITABLE_FIELD = ' -- '\nconst getDefaultValueEditableField = (intl) => {\n return intl.formatMessage({\n id: 'default_value_editable_field',\n defaultMessage: 'Click to edit',\n })\n}\n\ninterface SearchRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const SearchRenderField = ({\n schema,\n value,\n modifyContent,\n}: SearchRenderFieldProps) => {\n const intl = useIntl()\n const [valuesLabels, setValuesLabels] = useState([])\n const [isLoadingData, setIsLoadingData] = useState(false)\n const traversal = useTraversal()\n const { SearchEngine } = useConfig()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n useEffect(() => {\n const fetchData = async (valuesToSearch) => {\n setIsLoadingData(true)\n let searchTermQs = ''\n\n const searchTermParsed = ['__or', `id=${valuesToSearch.join('%26id=')}`]\n const { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', SearchEngine)\n const qsParsed = traversal.client[fnName]({\n path: traversal.path,\n start: 0,\n pageSize: 100,\n withDepth: false,\n })\n\n if (searchTermParsed.length > 0 || qsParsed.length > 0) {\n searchTermQs = buildQs([searchTermParsed, ...qsParsed])\n }\n const data = await traversal.client.search(\n traversal.client.getContainerFromPath(traversal.path),\n searchTermQs,\n false,\n false,\n 0,\n 100\n )\n\n const newValuesLabel = data.items.map((item) => {\n return get(item, schema?.labelProperty ?? 'title', item.id)\n })\n setValuesLabels(newValuesLabel)\n setIsLoadingData(false)\n }\n\n let valuesToSearch = value\n if (typeof valuesToSearch === 'string') {\n valuesToSearch = [valuesToSearch]\n }\n\n if (valuesToSearch !== undefined && valuesToSearch.length > 0) {\n fetchData(valuesToSearch)\n } else {\n setValuesLabels([])\n }\n }, [value])\n\n const getRenderValue = () => {\n if (value === undefined) {\n if (modifyContent) {\n return DEFAULT_VALUE_EDITABLE_FIELD\n }\n return DEFAULT_VALUE_NO_EDITABLE_FIELD\n }\n if (isLoadingData) {\n return 'Loading...'\n }\n\n return valuesLabels\n }\n\n return <RenderField value={getRenderValue()} />\n}\n\ninterface VocabularyRenderFieldProps {\n schema: GuillotinaSchemaProperty\n value: string | string[]\n modifyContent: boolean\n}\nexport const VocabularyRenderField = ({\n schema,\n value,\n modifyContent,\n}: VocabularyRenderFieldProps) => {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n const vocabularyName = schema?.items?.vocabularyName || schema?.vocabularyName\n const vocabulary = useVocabulary(vocabularyName)\n\n const getRenderProps = () => {\n const renderProps = {\n value:\n value ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n }\n\n if (schema?.vocabularyName) {\n const vocabularyValue = get<GuillotinaVocabularyItem[]>(\n vocabulary,\n 'data.items',\n []\n ).find((item) => item.token === value)\n renderProps['value'] = vocabularyValue?.title ?? ''\n } else {\n renderProps['value'] = (renderProps['value'] ?? []).map((value) => {\n return (\n get<GuillotinaVocabularyItem[]>(vocabulary, 'data.items', []).find(\n (item) => item.token === value\n )?.title ?? ''\n )\n })\n }\n\n return renderProps\n }\n return <RenderField {...getRenderProps()} />\n}\n\ninterface RenderFieldComponentProps {\n schema: GuillotinaSchemaProperty\n field: string\n val: any\n modifyContent?: boolean\n}\nexport function RenderFieldComponent({\n schema,\n field,\n val,\n modifyContent,\n}: RenderFieldComponentProps) {\n const intl = useIntl()\n const DEFAULT_VALUE_EDITABLE_FIELD = getDefaultValueEditableField(intl)\n\n const getRenderProps = () => {\n const renderProps = {\n value:\n val ??\n (modifyContent\n ? DEFAULT_VALUE_EDITABLE_FIELD\n : DEFAULT_VALUE_NO_EDITABLE_FIELD),\n schema: schema,\n }\n if (val && schema?.widget === 'file') {\n renderProps['value'] = {\n data: val,\n field: field,\n }\n renderProps['Widget'] = DownloadField\n } else if (schema?.type === 'boolean') {\n renderProps['value'] = val?.toString() ?? renderProps['value']\n } else if (val && schema?.type === 'datetime') {\n renderProps['value'] = new Date(val).toLocaleString()\n } else if (schema?.items?.vocabularyName || schema?.vocabularyName) {\n renderProps['Widget'] = VocabularyRenderField\n } else if (\n schema?.widget === 'search' ||\n schema?.widget === 'search_list'\n ) {\n renderProps['Widget'] = SearchRenderField\n renderProps['value'] = val\n }\n return renderProps\n }\n\n return <RenderField {...getRenderProps()} />\n}\n","import { Textarea } from '../input/textarea'\nimport { Checkbox } from '../input/checkbox'\nimport { FileUpload } from '../input/upload'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { InputList } from '../input/input_list'\nimport { get } from '../../lib/utils'\nimport { SelectVocabulary } from '../input/select_vocabulary'\nimport { SearchInputList } from '../input/search_input_list'\nimport { SearchInput } from '../input/search_input'\nimport { useTraversal } from '../../contexts'\nimport { Ref, forwardRef } from 'react'\nimport { GuillotinaItemsProperty } from '../../types/guillotina'\nimport { IndexSignature } from '../../types/global'\n\ninterface Props {\n schema: GuillotinaItemsProperty\n val: any\n setValue: (value: any) => void\n dataTest?: string\n className?: string\n placeholder?: string\n id?: string\n required?: boolean\n}\n\nexport const EditComponent = forwardRef(\n (\n {\n schema,\n val,\n setValue,\n dataTest,\n className,\n placeholder,\n id,\n required,\n }: Props,\n ref\n ) => {\n const traversal = useTraversal()\n\n if (schema?.widget === 'search_list') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInputList\n value={val || []}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else if (schema?.widget === 'search') {\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <SearchInput\n value={val}\n traversal={traversal}\n onChange={(ev) => setValue(ev)}\n queryCondition={\n schema?.queryCondition ? schema.queryCondition : 'title__in'\n }\n path={schema.queryPath}\n labelProperty={\n schema?.labelProperty ? schema.labelProperty : 'title'\n }\n typeNameQuery={schema?.typeNameQuery ? schema.typeNameQuery : null}\n />\n </>\n )\n } else if (schema?.widget === 'textarea' || schema?.widget === 'richtext') {\n return (\n <Textarea\n value={val || ''}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref as Ref<HTMLTextAreaElement>}\n dataTest={dataTest}\n placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'boolean') {\n return (\n <Checkbox\n checked={Boolean(val)}\n className={className}\n onChange={(ev) => setValue(ev)}\n dataTest={dataTest}\n />\n )\n } else if (schema?.type === 'array') {\n if (schema.items && schema.items.type === 'string') {\n if (schema.items.vocabularyName) {\n return (\n <SelectVocabulary\n vocabularyName={get(schema, 'items.vocabularyName', null)}\n val={val || []}\n className={className}\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n onChange={setValue}\n multiple\n placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.items?.vocabulary) {\n return (\n <Select\n value={val || []}\n className={className}\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n options={schema?.items.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n multiple\n onChange={setValue}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n }\n return (\n <>\n {placeholder && <label className=\"label\">{placeholder}</label>}\n <InputList\n value={val || []}\n className={className}\n onChange={(ev) => setValue(ev)}\n ref={ref as Ref<HTMLInputElement>}\n dataTest={dataTest}\n />\n </>\n )\n } else if (schema?.widget === 'file') {\n return (\n <FileUpload\n onChange={(ev) => setValue(ev)}\n label={get(val, 'filename', null)}\n dataTest={dataTest}\n />\n )\n } else if (schema?.widget === 'select' && schema.type === 'string') {\n if (schema?.vocabularyName) {\n return (\n <SelectVocabulary\n val={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n onChange={setValue}\n vocabularyName={get(schema, 'vocabularyName', null)}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n\n return (\n <Select\n value={val || ''}\n className={className}\n appendDefault\n classWrap=\"is-fullwidth\"\n dataTest={dataTest}\n options={schema?.vocabulary.map((item) => {\n return {\n text: item,\n value: item,\n }\n })}\n onChange={setValue}\n placeholder={placeholder}\n id={id}\n />\n )\n } else if (schema?.type === 'object' && schema.widget !== 'file') {\n const value = val as IndexSignature\n return (\n <>\n {schema.title && <h4 className=\"subtitle mt-2\">{schema.title}</h4>}\n {Object.keys(get(schema, 'properties', {})).map((key) => {\n const subSchema = get(schema, 'properties', {})[key]\n const requiredFields: string[] = get(schema, 'required', [])\n return (\n <EditComponent\n key={`${id}[${key}]`}\n id={`${id}[${key}]`}\n schema={subSchema}\n val={value && key in value ? value[key] : ''}\n placeholder={subSchema?.title ?? ''}\n required={requiredFields.includes(key)}\n setValue={(ev) => {\n setValue({ ...value, [key]: ev })\n }}\n dataTest={`${key}TestInput`}\n />\n )\n })}\n </>\n )\n }\n const getInputType = () => {\n switch (schema?.type) {\n case 'integer':\n return 'number'\n case 'date':\n return 'date'\n case 'datetime':\n return 'datetime-local'\n case 'time':\n return 'time'\n default:\n return 'text'\n }\n }\n return (\n <Input\n value={val || ''}\n className={className}\n dataTest={dataTest}\n onChange={(ev) => setValue(ev)}\n ref={ref as Ref<HTMLInputElement>}\n type={getInputType()}\n required={required}\n placeholder={placeholder}\n id={id}\n />\n )\n }\n)\n\nEditComponent.displayName = 'EditComponent'\nexport default EditComponent\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n file: GuillotinaFile\n }\n}\n\nexport function IAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'attachment_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.attachment.IAttachment\"\n schema={properties[key]}\n modifyContent={modifyContent && ['file'].includes(key)}\n />\n </td>\n </tr>\n ))}\n </Table>\n )\n}\n","import { Input } from '../input/input'\nimport { FileUpload } from '../input/upload'\nimport { Button } from '../input/button'\nimport { useState } from 'react'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport ErrorZone from '../error_zone'\nimport { EditableField } from '../fields/editableField'\nimport { Delete } from '../ui'\nimport { Confirm } from '../modal'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport { LightFile } from '../../types/global'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n files: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState<LightFile | undefined>(undefined)\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError(intl.formatMessage(genericFileMessages.error_file_key_name))\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/files/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.file_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/files/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['files']).map((key) => (\n <tr key={'multiattachment_' + key}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`files/${key}`}\n value={values['files'][key]}\n ns=\"guillotina.behaviors.attachment.IMultiAttachment.files\"\n schema={properties['files']['additionalProperties']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n ))}\n {Object.keys(values['files']).length === 0 && (\n <tr>\n <td colSpan={2}>\n {intl.formatMessage(genericFileMessages.no_files_uploaded)}\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_a_file)}\n </label>\n <form className=\"columns\">\n <div className=\"column is-4\">\n <Input\n placeholder=\"Key\"\n name=\"field\"\n className=\"is-small\"\n value={fileKey}\n onChange={(ev) => setFileKey(ev)}\n required\n />\n {error && <ErrorZone>{error}</ErrorZone>}\n </div>\n <div className=\"column is-2\">\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div className=\"column is-2\">\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!fileKey && !file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import { useState } from 'react'\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useConfig } from '../../hooks/useConfig'\nimport { Delete } from '../ui'\nimport { Button } from '../input/button'\nimport { FileUpload } from '../input/upload'\nimport { Confirm } from '../modal'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n image: GuillotinaFile\n }\n}\nexport function IImageAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _sizesImages\n const [file, setFile] = useState(null)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const [showConfirmToDelete, setShowConfirmToDelete] = useState(false)\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/image`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/image/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/image`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), 'success')\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {showConfirmToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setShowConfirmToDelete(false)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_image\n )}\n />\n )}\n {values['image'] && (\n <tr>\n <td key={1} style={{ width: '150px' }}>\n {intl.formatMessage(genericMessages.image)}\n </td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={'image'}\n value={values['image']}\n ns=\"guillotina.behaviors.behaviors.IImageAttachment\"\n schema={properties['image']}\n modifyContent={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setShowConfirmToDelete(true)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n <form\n className=\"is-flex is-align-items-center\"\n style={{ gap: '15px' }}\n data-test=\"formImageAttachmentTest\"\n >\n <div>\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n {error && <p className=\"help is-danger\">{error}</p>}\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import { useState } from 'react'\n\nimport { Button } from '../input/button'\nimport { Confirm } from '../modal'\nimport { Delete } from '../ui'\nimport { FileUpload } from '../input/upload'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { EditableField } from '../fields/editableField'\nimport { useConfig } from '../../hooks/useConfig'\nimport { Table } from '../ui'\nimport { Input } from '../input/input'\nimport { useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: {\n [key: string]: GuillotinaFile\n }\n }\n}\nexport function IMultiImageAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const [fileKey, setFileKey] = useState('')\n const [file, setFile] = useState(null)\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const sizesImages = cfg.SizeImages || _sizesImages\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!fileKey && !file) {\n setError(intl.formatMessage(genericFileMessages.error_file_key_name))\n return\n }\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@upload/images/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/images/${fileKey}/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFileKey('')\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/images/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), 'success')\n Ctx.refresh()\n }\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n\n {Object.keys(values['images']).map((key) => (\n <tr key={`multiimageattachment_${key}`}>\n <td key={1} style={{ width: '150px' }}>\n {key}\n </td>\n <td key={2}>\n <div className=\"is-flex is-align-items-center\">\n <EditableField\n field={`images/${key}`}\n value={values['images'][key]}\n ns=\"guillotina.contrib.image.behaviors.IMultiImageAttachment.images\"\n schema={properties['images']['additionalProperties']}\n modifyContent={false}\n required={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n </td>\n </tr>\n ))}\n {Object.keys(values['images']).length === 0 && (\n <tr>\n <td colSpan={2}>\n {intl.formatMessage(genericFileMessages.no_images_uploaded)}\n </td>\n </tr>\n )}\n {modifyContent && (\n <tr>\n <td colSpan={2}>\n <label className=\"label\">\n {' '}\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n <form className=\"columns\" data-test=\"formMultiimageAttachmentTest\">\n <div className=\"column is-4\">\n <Input\n placeholder=\"Key\"\n name=\"field\"\n className=\"is-small\"\n value={fileKey}\n onChange={(ev) => setFileKey(ev)}\n required\n />\n {error && <p className=\"help is-danger\">{error}</p>}\n </div>\n <div className=\"column is-2\">\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div className=\"column is-2\">\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!fileKey && !file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n </td>\n </tr>\n )}\n </Table>\n )\n}\n","import { Button } from '../input/button'\nimport { Confirm } from '../modal'\nimport { Delete } from '../ui'\nimport { FileUpload } from '../input/upload'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { EditableField } from '../fields/editableField'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useEffect, useState } from 'react'\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n DroppableProvided,\n DroppableStateSnapshot,\n} from 'react-beautiful-dnd'\nimport { v4 as uuidv4 } from 'uuid'\nimport { defineMessages, useIntl } from 'react-intl'\nimport {\n genericFileMessages,\n genericMessages,\n} from '../../locales/generic_messages'\nimport {\n GuillotinaFile,\n GuillotinaSchemaProperties,\n} from '../../types/guillotina'\n\ninterface StrictModeDroppableProps {\n children(\n provided: DroppableProvided,\n snapshot: DroppableStateSnapshot\n ): React.ReactElement<HTMLElement>\n droppableId: string\n}\nconst StrictModeDroppable = ({\n children,\n droppableId,\n}: StrictModeDroppableProps) => {\n const [enabled, setEnabled] = useState(false)\n useEffect(() => {\n const animation = requestAnimationFrame(() => setEnabled(true))\n return () => {\n cancelAnimationFrame(animation)\n setEnabled(false)\n }\n }, [])\n if (!enabled) {\n return null\n }\n return <Droppable droppableId={droppableId}>{children}</Droppable>\n}\n\nconst reorder = (list, startIndex, endIndex) => {\n const result: string[] = Array.from(list)\n const [removed] = result.splice(startIndex, 1)\n result.splice(endIndex, 0, removed)\n\n return result\n}\n\nconst _sizesImages = ['large', 'preview', 'mini', 'thumb']\nconst messages = defineMessages({\n failed_to_sort_images: {\n id: 'failed_to_sort_images',\n defaultMessage: 'Failed to sort images',\n },\n images_sorted: {\n id: 'images_sorted',\n defaultMessage: 'Images sorted',\n },\n})\n\ninterface Props {\n properties: GuillotinaSchemaProperties\n values: {\n images: GuillotinaFile[]\n }\n}\nexport function IMultiImageOrderedAttachment({ properties, values }: Props) {\n const intl = useIntl()\n const cfg = useConfig()\n const [sortedList, setSortedList] = useState<string[]>(\n Object.keys(values['images'])\n )\n const [file, setFile] = useState(null)\n const [fileKeyToDelete, setFileKeyToDelete] = useState(undefined)\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(undefined)\n const { Ctx } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n const sizesImages = cfg.SizeImages || _sizesImages\n\n async function onDragEnd(result) {\n if (!result.destination) {\n return\n }\n\n if (result.destination.index === result.source.index) {\n return\n }\n\n const resultSorted = reorder(\n sortedList,\n result.source.index,\n result.destination.index\n )\n\n setSortedList(resultSorted)\n setLoading(true)\n const endpoint = `${Ctx.path}@sort/images/`\n const req = await Ctx.client.patch(endpoint, resultSorted)\n if (req.status !== 200) {\n setError(intl.formatMessage(messages.failed_to_sort_images))\n setLoading(false)\n return\n }\n\n setLoading(false)\n Ctx.flash(intl.formatMessage(messages.images_sorted), 'success')\n Ctx.refresh()\n }\n\n const uploadFile = async (ev) => {\n ev.preventDefault()\n if (!file) {\n setError(intl.formatMessage(genericFileMessages.error_file_key_name))\n return\n }\n setLoading(true)\n setError(undefined)\n const fileKey = uuidv4()\n const endpoint = `${Ctx.path}@upload/images/${fileKey}`\n const req = await Ctx.client.upload(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.error_upload_file))\n setLoading(false)\n return\n }\n\n for (let i = 0; i < sizesImages.length; i++) {\n const endpointSize = `${Ctx.path}@images/images/${fileKey}/${sizesImages[i]}`\n let hasError = false\n try {\n const req = await Ctx.client.upload(endpointSize, file)\n if (req.status !== 200) hasError = true\n } catch (err) {\n hasError = true\n }\n\n if (hasError) {\n setError(\n intl.formatMessage(genericFileMessages.error_upload_file_size, {\n size: sizesImages[i],\n })\n )\n setLoading(false)\n return\n }\n }\n\n setFile(undefined)\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_uploaded), 'success')\n Ctx.refresh()\n }\n\n const deleteFile = async () => {\n setLoading(true)\n setError(undefined)\n const endpoint = `${Ctx.path}@delete/images/${fileKeyToDelete}`\n const req = await Ctx.client.delete(endpoint, file)\n if (req.status !== 200) {\n setError(intl.formatMessage(genericFileMessages.failed_delete_file))\n setLoading(false)\n return\n }\n setLoading(false)\n Ctx.flash(intl.formatMessage(genericFileMessages.image_deleted), 'success')\n Ctx.refresh()\n }\n\n return (\n <>\n {fileKeyToDelete && (\n <Confirm\n loading={loading}\n onCancel={() => setFileKeyToDelete(undefined)}\n onConfirm={() => deleteFile()}\n message={intl.formatMessage(\n genericFileMessages.confirm_message_delete_file,\n { fileKeyToDelete }\n )}\n />\n )}\n <section>\n <DragDropContext onDragEnd={onDragEnd}>\n <StrictModeDroppable droppableId=\"list\">\n {(provided) => (\n <div ref={provided.innerRef} {...provided.droppableProps}>\n {sortedList.map((key, index) => (\n <Draggable\n key={`multiimageattachment_${key}`}\n draggableId={`multiimageattachment_${key}`}\n index={index}\n >\n {(providedChild) => (\n <div\n className=\"is-flex is-align-items-center pt-2 pb-2\"\n style={{ borderTop: '1px solid #dbdbdb' }}\n ref={providedChild.innerRef}\n {...providedChild.draggableProps}\n {...providedChild.dragHandleProps}\n >\n <EditableField\n field={`images/${key}`}\n value={values['images'][key]}\n ns=\"guillotina.contrib.image.behaviors.IMultiImageAttachment.images\"\n schema={properties['images']['additionalProperties']}\n modifyContent={false}\n required={false}\n />\n <div className=\"ml-5\">\n <Delete\n onClick={(ev) => {\n ev.preventDefault()\n setFileKeyToDelete(key)\n }}\n />\n </div>\n </div>\n )}\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </StrictModeDroppable>\n </DragDropContext>\n </section>\n\n {Object.keys(values['images']).length === 0 && (\n <section>\n {intl.formatMessage(genericFileMessages.no_images_uploaded)}\n </section>\n )}\n {modifyContent && (\n <section>\n <label className=\"label\">\n {intl.formatMessage(genericFileMessages.upload_an_image)}\n </label>\n\n <form\n className=\"is-flex is-align-items-center\"\n style={{ gap: '15px' }}\n data-test=\"formMultiimageOrderedAttachmentTest\"\n >\n <div>\n <FileUpload onChange={(ev) => setFile(ev)} />\n {file && file.filename}\n </div>\n <div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={uploadFile}\n disabled={!file}\n >\n {intl.formatMessage(genericMessages.upload)}\n </Button>\n </div>\n </form>\n {error && <p className=\"help is-danger\">{error}</p>}\n </section>\n )}\n </>\n )\n}\n","import {\n GuillotinaSharing,\n GuillotinaSharingInheritItem,\n GuillotinaSharingMap,\n} from '../types/guillotina'\n\nconst base: GuillotinaSharing = {\n local: {\n roleperm: {},\n prinperm: {},\n prinrole: {},\n },\n inherit: [],\n}\n\nexport class Sharing {\n local: GuillotinaSharingMap\n inherit: GuillotinaSharingInheritItem[]\n\n constructor(element) {\n Object.assign(this, element || base)\n }\n get roles() {\n return Object.keys(this.local.roleperm)\n }\n\n getRole(role) {\n return this.local.roleperm[role]\n }\n\n get principals() {\n return Object.keys(this.local.prinperm)\n }\n\n getPrincipals(principal) {\n return this.local.prinperm[principal]\n }\n\n get prinrole() {\n return Object.keys(this.local.prinrole)\n }\n\n getPrinroles(role) {\n return this.local.prinrole[role]\n }\n}\n","import { formatDate } from '../lib/utils'\nimport { useConfig } from '../hooks/useConfig'\nimport { SearchItem } from '../types/guillotina'\n\nexport * from './sharing'\n\nexport class ItemModel {\n item: SearchItem\n url: string\n constructor(item, url = '') {\n this.item = item\n this.url = url\n }\n\n get path() {\n // Compat\n const item = this.item['@id']\n ? this.item['@id']\n : this.item['@absolute_url']\n let path = item.split('//')[1].split('/').splice(1).join('/')\n path = `/${path}/`\n if (this.url.length > 0) {\n if (this.url.startsWith('/')) {\n path = path.replace(this.url.substring(1), '')\n } else {\n path = path.replace(this.url, '')\n }\n }\n\n return path\n }\n\n get name() {\n return this.item.title || this.item['@name']\n }\n\n get icon() {\n // eslint-disable-next-line\n const cfg = useConfig()\n if (cfg.icons && cfg.icons[this.type]) {\n return cfg.icons[this.type]\n }\n\n switch (this.type) {\n case 'GroupManager':\n return 'fas fa-users-cog'\n case 'UserManager':\n return 'fas fa-user-cog'\n case 'User':\n return 'fas fa-user'\n case 'Group':\n return 'fas fa-users'\n case 'Folder':\n return 'fas fa-folder'\n default:\n return 'fas fa-file'\n }\n }\n\n get fullPath() {\n return this.url + this.item.id\n }\n\n get id() {\n if (this.item.id) {\n return this.item.id\n }\n const id = this.item['@id'].split('&')[0].split('/')\n return id[id.length - 1]\n }\n\n get uid() {\n return this.item['@uid']\n }\n\n get type() {\n return this.item['@type'] || this.item.type_name\n }\n\n get title() {\n return this.item.title\n }\n\n get created() {\n return this.item.creation_date ? formatDate(this.item.creation_date) : ''\n }\n\n get updated() {\n return this.item.modification_date\n ? formatDate(this.item.modification_date)\n : ''\n }\n}\n","import { useTraversal } from '../../contexts'\nimport { Confirm } from '../modal'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { ItemModel } from '../../models'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { useEffect, useState } from 'react'\n\nimport { useVocabulary } from '../../hooks/useVocabulary'\nimport { get } from '../../lib/utils'\nconst messages = defineMessages({\n status_changed_ok: {\n id: 'status_changed_ok',\n defaultMessage: 'Great status changed!',\n },\n status_changed_error: {\n id: 'status_changed_error',\n defaultMessage: 'Failed to status changed!: {error}',\n },\n confirm_message: {\n id: 'confirm_message',\n defaultMessage: 'Are you sure to change state: {title}?',\n },\n current_state: {\n id: 'current_state',\n defaultMessage: 'Current state: {state}',\n },\n actions: {\n id: 'actions',\n defaultMessage: 'Actions:',\n },\n})\n\nexport function IWorkflow() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const [definition, setDefinition] = useState(undefined)\n const [workflowAction, setWorkflowAction] = useState(null)\n const model = new ItemModel(Ctx.context)\n const vocabulary = useVocabulary('workflow_states')\n const currentState =\n model.item['guillotina.contrib.workflows.interfaces.IWorkflowBehavior'][\n 'review_state'\n ]\n\n async function loadDefinition() {\n const response = await Ctx.client.get(`${Ctx.path}/@workflow`)\n const workflow = await response.json()\n setDefinition(workflow)\n }\n\n useEffect(() => {\n loadDefinition()\n }, [Ctx.path])\n\n const doWorkflowAction = async () => {\n const { isError, errorMessage } = await post(\n {},\n `@workflow/${workflowAction}`,\n false\n )\n await loadDefinition()\n if (!isError) {\n Ctx.flash(intl.formatMessage(messages.status_changed_ok), 'success')\n } else {\n Ctx.flash(\n intl.formatMessage(messages.status_changed_error, {\n error: errorMessage,\n }),\n 'danger'\n )\n }\n\n Ctx.refresh()\n setWorkflowAction(null)\n }\n const getStateTitle = () => {\n if (vocabulary.data?.items?.length > 0) {\n const vocabularyValue = vocabulary.data.items.find(\n (item) => item.token === currentState\n )\n if (vocabularyValue) {\n const translatedValue = get(\n vocabularyValue,\n `title.translated_title.${intl.locale}`,\n null\n )\n if (translatedValue !== null) {\n return translatedValue\n }\n const titleValue = get(\n vocabularyValue,\n `title.title.${intl.locale}`,\n null\n )\n if (titleValue !== null) {\n return titleValue\n }\n }\n }\n return currentState\n }\n\n if (definition === undefined) return null\n\n return (\n <>\n {workflowAction && (\n <Confirm\n loading={loading}\n onCancel={() => setWorkflowAction(null)}\n onConfirm={doWorkflowAction}\n message={intl.formatMessage(messages.confirm_message, {\n title: Ctx.context.title || Ctx.context['@name'],\n })}\n />\n )}\n\n <div className=\"is-flex is-align-items-center mb-3\">\n <div\n className=\"has-text-weight-bold\"\n data-test={`textInfoStatus-${currentState}`}\n >\n {intl.formatMessage(messages.current_state, {\n state: getStateTitle(),\n })}\n </div>\n </div>\n {modifyContent && definition.transitions.length > 0 && (\n <div\n className=\" is-flex is-align-items-center has-text-weight-bold\"\n data-test={`textInfoStatus-${currentState}`}\n >\n <label>{intl.formatMessage(messages.actions)}</label> \n {definition.transitions.map((transition) => {\n return (\n <button\n key={transition['@id']}\n className=\"button mr-4\"\n onClick={() =>\n setWorkflowAction(\n transition['@id'].split('@workflow')[1].slice(1)\n )\n }\n >\n {get(\n transition,\n `metadata.translated_title.${intl.locale}`,\n transition.title\n )}\n </button>\n )\n })}\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../../lib/helpers'\nimport { Fragment } from 'react'\n\nexport function PanelActions() {\n const traversal = useTraversal()\n const intl = useIntl()\n const ACTIONS_OBJECT = getActionsObject(intl)\n\n const hasPerm = (perms) => {\n return perms.some((perm) => traversal.hasPerm(perm))\n }\n\n const onAction = (actionKey) => {\n traversal.doAction(ACTIONS_OBJECT[actionKey].action, {\n item: traversal.context,\n })\n }\n\n return (\n <Fragment>\n {Object.keys(ACTIONS_OBJECT).map((actionKey) => {\n if (hasPerm(ACTIONS_OBJECT[actionKey].perms)) {\n return (\n <button\n key={`panel_action_${ACTIONS_OBJECT[actionKey].text}`}\n className=\"button mr-4\"\n onClick={() => {\n onAction(actionKey)\n }}\n >\n {ACTIONS_OBJECT[actionKey].text}\n </button>\n )\n }\n })}\n </Fragment>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl, defineMessages } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\n\nconst messages = defineMessages({\n available_addons: {\n id: 'available_addons',\n defaultMessage: 'Available Addons',\n },\n no_available_addons_container: {\n id: 'no_available_addons_container',\n defaultMessage: 'No Addon available in this container',\n },\n installed_addons: {\n id: 'installed_addons',\n defaultMessage: 'Installed Addons',\n },\n})\n\n// TODO: Refactor without useAsync... just crudContext\nexport function PanelAddons() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const [action, setAction] = useState(false)\n const [state, setState] = useState({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n useEffect(() => {\n const getAddons = async () => {\n if (!state.loading && !state.data && !state.error) {\n try {\n const response = await Ctx.client.getAddons(Ctx.pathPrefix)\n const data = await response.json()\n setState({ ...state, loading: false, data: prepareData(data) })\n } catch (err) {\n setState({ ...state, loading: false, error: err })\n }\n }\n }\n getAddons()\n }, [action])\n\n const installAddon = async (Ctx, key) => {\n await Ctx.client.installAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} installed`, 'success')\n setAction(!action)\n }\n\n const removeAddon = async (Ctx, key) => {\n await Ctx.client.removeAddon(Ctx.pathPrefix, key)\n Ctx.flash(`Addon ${key} removed`, 'success')\n setAction(!action)\n }\n\n return (\n <Fragment>\n {state.loading ? (\n <div>{intl.formatMessage(genericMessages.loading)}</div>\n ) : state.error ? (\n <p>Error: {state.error.message}</p>\n ) : (\n <div className=\"columns\">\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n {intl.formatMessage(messages.available_addons)}\n </h2>\n <hr />\n {(state.data?.available ?? []).length === 0 && (\n <p>\n {intl.formatMessage(messages.no_available_addons_container)}\n </p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {(state.data?.available ?? []).map((addon) => (\n <tr key={addon.id}>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-primary is-small\"\n onClick={() => installAddon(Ctx, addon.id)}\n >\n {intl.formatMessage(genericMessages.install)}\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div className=\"column\">\n <h2 className=\"title is-size-4 has-text-grey-dark\">\n {intl.formatMessage(messages.installed_addons)}\n </h2>\n <hr />\n {(state.data?.installed ?? []).length === 0 && (\n <p>\n {intl.formatMessage(messages.no_available_addons_container)}\n </p>\n )}\n <table className=\"table is-12\">\n <tbody>\n {(state.data?.installed ?? []).map((addon) => (\n <tr key={addon.id}>\n <td>{addon.title}</td>\n <td>\n <button\n className=\"button is-danger is-small\"\n onClick={() => removeAddon(Ctx, addon.id)}\n >\n {intl.formatMessage(genericMessages.remove)}\n </button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n )}\n </Fragment>\n )\n}\n\nconst prepareData = (result) => {\n const addons = arrayToObject(result.available)\n return {\n available: result.available.filter(\n (item) => !result.installed.includes(item.id)\n ),\n installed: result.installed.map((id) => addons[id]),\n }\n}\n\nconst arrayToObject = (array) =>\n array.reduce((obj, item) => {\n obj[item.id] = item\n return obj\n }, {})\n","import { useCrudContext } from '../../hooks/useCrudContext'\nimport { Table } from '../ui/table'\nimport { Button } from '../input/button'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaBehaviors } from '../../types/guillotina'\n\nexport function PanelBehaviors() {\n const intl = useIntl()\n const {\n Ctx,\n get,\n result,\n loading,\n isError,\n } = useCrudContext<GuillotinaBehaviors>()\n const ops = useCrudContext()\n\n const [state, setState] = useState(false)\n\n const enableBehavior = (behavior) => async () => {\n await ops.patch({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n const disableBehavior = (behavior) => async () => {\n await ops.del({ behavior }, '@behaviors')\n setState(!state)\n Ctx.refresh()\n }\n\n useEffect(() => {\n get('@behaviors')\n }, [])\n\n return (\n <div className=\"columns behaviors\">\n <div className=\"column is-8 is-size-7\">\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(genericMessages.behaviors)}\n </h2>\n {!loading && !isError && result && (\n <Fragment>\n <Table>\n <tr>\n <td colSpan={3}>\n <h3 className=\"title is-size-6\">\n {intl.formatMessage(genericMessages.static)}\n </h3>\n </td>\n </tr>\n {result.static.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.static)}</td>\n <td>{behavior}</td>\n <td className=\"\">\n <Button className=\"is-small is-pulled-right\" disabled>\n {intl.formatMessage(genericMessages.disable)}\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan={3}>\n <h3 className=\"title is-size-6\">\n {intl.formatMessage(genericMessages.enabled)}\n </h3>\n </td>\n </tr>\n {result.dynamic.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.enabled)}</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-danger is-pulled-right\"\n onClick={disableBehavior(behavior)}\n >\n {intl.formatMessage(genericMessages.disable)}\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n <Table>\n <tr>\n <td colSpan={3}>\n <h3 className=\"title is-size-6\">\n {intl.formatMessage(genericMessages.available)}\n </h3>\n </td>\n </tr>\n {result.available.map((behavior) => (\n <tr key={behavior}>\n <td>{intl.formatMessage(genericMessages.available)}</td>\n <td>{behavior}</td>\n <td>\n <Button\n className=\"is-small is-primary is-pulled-right\"\n onClick={enableBehavior(behavior)}\n >\n {intl.formatMessage(genericMessages.enable)}\n </Button>\n </td>\n </tr>\n ))}\n </Table>\n </Fragment>\n )}\n </div>\n <div className=\"column is-4\"></div>\n </div>\n )\n}\n","import { createContext, useState, useContext } from 'react'\nimport Dropdown from './input/dropdown'\nimport { Checkbox } from './input/checkbox'\nimport { useTraversal } from '../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../lib/helpers'\nimport { SearchItem } from '../types/guillotina'\n\nconst ItemsActionsCtx = createContext<{\n selected?: {\n all: boolean\n [key: string]: boolean\n }\n onSelectOneItem?: (item: SearchItem) => void\n onSelectAllItems?: (chedked: boolean) => void\n onAction?: (action: string) => void\n}>({\n selected: {\n all: false,\n },\n})\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\ninterface PropsItemsActionsProvider {\n items: SearchItem[]\n children: React.ReactNode\n}\nexport function ItemsActionsProvider({\n items,\n children,\n}: PropsItemsActionsProvider) {\n const intl = useIntl()\n const actions = getActionsObject(intl, true)\n const traversal = useTraversal()\n const [selected, setSelected] = useState({\n all: false,\n })\n function onSelectAllItems(checked) {\n setSelected(\n items.reduce(\n (obj, item) => {\n obj[`${item.path}/${item.id}`] = checked\n return obj\n },\n { all: checked }\n )\n )\n }\n\n function onSelectOneItem(item) {\n setSelected((state) => ({\n ...state,\n all: false,\n [`${item.path}/${item.id}`]: !state[`${item.path}/${item.id}`],\n }))\n }\n\n function onAction(actionKey) {\n traversal.doAction(actions[actionKey].action, {\n items: items.filter((item) => selected[`${item.path}/${item.id}`]),\n })\n }\n\n return (\n <ItemsActionsCtx.Provider\n value={{\n onAction,\n onSelectAllItems,\n onSelectOneItem,\n selected,\n }}\n >\n {children}\n </ItemsActionsCtx.Provider>\n )\n}\n\n/**\n * Checkbox component without props that consume the ItemsActionsContext\n * and it select/unselect all items of the page.\n */\nexport function AllItemsCheckbox({ dataTest }: { dataTest?: string }) {\n const { onSelectAllItems, selected } = useContext(ItemsActionsCtx)\n\n return (\n <Checkbox\n onChange={onSelectAllItems}\n checked={selected.all}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Checkbox component to select ONE item.\n */\ninterface PropsItemCheckbox {\n item: SearchItem\n dataTest?: string\n}\nexport function ItemCheckbox({ item, dataTest }: PropsItemCheckbox) {\n const { selected, onSelectOneItem } = useContext(ItemsActionsCtx)\n const absId = `${item.path}/${item.id}`\n const value = selected[absId]\n\n return (\n <Checkbox\n onChange={() => onSelectOneItem(item)}\n checked={value}\n dataTest={dataTest}\n />\n )\n}\n\n/**\n * Dropdown to choose some action to apply to the selected items.\n */\nexport function ItemsActionsDropdown() {\n const intl = useIntl()\n const ACTIONS_OBJECT = getActionsObject(intl, true)\n const traversal = useTraversal()\n const { selected, onAction } = useContext(ItemsActionsCtx)\n const disabled = Object.values(selected).every((v) => !v)\n const options = Object.keys(ACTIONS_OBJECT).map((action) => ({\n text: ACTIONS_OBJECT[action].text,\n value: action,\n }))\n\n return (\n <Dropdown\n disabled={disabled}\n id=\"items-actions\"\n onChange={onAction}\n optionDisabledWhen={(o) =>\n ACTIONS_OBJECT[o.value].perms.some((perm) => !traversal.hasPerm(perm))\n }\n options={options}\n isRight={false}\n >\n <div data-test=\"btnChooseActionTest\">\n {intl.formatMessage({\n id: 'choose_action',\n defaultMessage: 'Choose action...',\n })}\n </div>\n </Dropdown>\n )\n}\n","import { useIntl } from 'react-intl'\n\ninterface Props {\n current: number\n total: number\n doPaginate: (page: number) => void\n pager: number\n}\nexport function Pagination({ current, total, doPaginate, pager }: Props) {\n const intl = useIntl()\n const maxPages = Math.ceil(total / pager)\n if (maxPages <= 1) {\n return null\n }\n\n return (\n <div>\n <p className=\"level-right has-text-grey is-size-7\">\n <span>\n {intl.formatMessage(\n {\n id: 'pagination',\n defaultMessage:\n '{currentPage} / {totalPages} of {totalItems} items',\n },\n {\n currentPage: current + 1,\n totalPages: maxPages,\n totalItems: total,\n }\n )}\n </span>\n </p>\n <nav\n className=\"pagination is-size-7\"\n role=\"navigation\"\n aria-label=\"pagination\"\n >\n <a\n className=\"pagination-previous is-small\"\n // disabled={current === 0}\n onClick={() => (current > 0 ? doPaginate(current - 1) : null)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-left\"></i>\n </span>\n </a>\n <a\n className=\"pagination-next is-small\"\n // disabled={current >= maxPages - 1}\n onClick={() => doPaginate(current + 1)}\n >\n <span className=\"icon\">\n <i className=\"fas fa-arrow-right\"></i>\n </span>\n </a>\n </nav>\n </div>\n )\n}\n","import React from 'react'\n\nimport { ItemModel } from '../models'\nimport { useLocation } from '../hooks/useLocation'\nimport { useTraversal } from '../contexts'\nimport { Icon } from './ui/icon'\nimport { ItemCheckbox } from './selected_items_actions'\nimport { Delete } from './ui'\nimport { IColumn } from '../reducers/guillotina'\nimport { SearchItem } from '../types/guillotina'\n\ninterface ItemProps {\n item: { id: string; path: string }\n icon?: string\n}\nexport function Item({ item, icon }: ItemProps) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\ninterface RItemProps {\n item: SearchItem\n search: string\n columns: IColumn[]\n}\nexport function RItem({ item, search, columns }: RItemProps) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item.id} data-test={`itemTest-${item.id}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} dataTest=\"itemCheckboxRowTest\" />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\ninterface ItemTitleProps {\n title: string\n actions?: React.ReactNode\n}\nexport function ItemTitle({ title, actions }: ItemTitleProps) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n}\nexport function SearchLabels({ query }: Props) {\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n if (search) {\n return (\n <div className=\"tags\">\n <Tag\n id={search}\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n options?: { value: string; text: string }[]\n}\nexport function SearchOptionsLabels({ query = 'q', options }: Props) {\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value = defaultRenderValue\n if ((options ?? []).length > 0) {\n const option = options.find((item) => item.value === value)\n if (option) {\n value = option.text\n }\n }\n setRenderValue(value)\n }, [defaultRenderValue])\n\n const clearSearch = () => {\n del(query)\n }\n\n if (renderValue) {\n return (\n <div className=\"tags\">\n <Tag\n id={defaultRenderValue}\n name={renderValue}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\nimport { useVocabulary } from '../hooks/useVocabulary'\n\ninterface Props {\n query?: string\n vocabularyName?: string\n}\n\nexport function SearchVocabularyLabels({ query = 'q', vocabularyName }: Props) {\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState(undefined)\n const vocabulary = useVocabulary(vocabularyName)\n const defaultRenderValue = location.get(query)\n\n useEffect(() => {\n let value: string = defaultRenderValue\n\n if ((vocabulary?.data?.items ?? []).length > 0) {\n const vocabularyValue = vocabulary.data.items.find(\n (item) => item.token === value\n )\n if (vocabularyValue) {\n value = vocabularyValue.title\n }\n }\n setRenderValue(value)\n }, [vocabulary, defaultRenderValue])\n\n const clearSearch = () => {\n del(query)\n }\n\n if (renderValue) {\n return (\n <div className=\"tags\">\n <Tag\n id={defaultRenderValue}\n name={renderValue}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import useSetState from '../../hooks/useSetState'\nimport {\n ItemsActionsProvider,\n AllItemsCheckbox,\n ItemsActionsDropdown,\n} from '../selected_items_actions'\nimport { Pagination } from '../pagination'\nimport { RItem } from '../item'\nimport { SearchLabels } from '../search_labels'\nimport { SearchOptionsLabels } from '../search_options_labels'\nimport { SearchVocabularyLabels } from '../search_vocabulary_labels'\nimport { useTraversal } from '../../contexts'\nimport { buildQs } from '../../lib/search'\nimport { parser } from '../../lib/search'\nimport { useConfig } from '../../hooks/useConfig'\nimport { useEffect } from 'react'\nimport { useLocation } from '../../hooks/useLocation'\nimport { Select } from '../input/select'\nimport { Input } from '../input/input'\nimport { SelectVocabulary } from '../input/select_vocabulary'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nimport { SearchItem } from '../../types/guillotina'\n\ninterface InitialState {\n page: number\n items: SearchItem[]\n loading: boolean\n total: number\n}\nconst initialState: InitialState = {\n page: 0,\n items: [],\n loading: true,\n total: 0,\n}\n\nexport function PanelItems() {\n const [location, setLocation, del] = useLocation()\n const { PageSize, SearchEngine } = useConfig()\n const intl = useIntl()\n\n const Ctx = useTraversal()\n const [state, setState] = useSetState<InitialState>(initialState)\n const { items, loading, total } = state\n\n const filterSchema =\n Ctx.registry.getSchemas(Ctx.context['@type']).filters || []\n\n const columns =\n Ctx.registry.getItemsColumn(Ctx.context['@type']) ||\n Ctx.client.getItemsColumn()\n\n const search = location.get('q')\n const type = location.get('type')\n const sort = location.get('sort')\n const sortDirection = location.get('sort_direction')\n let page\n\n try {\n page = parseInt(location.get('page')) || 0\n } catch {\n page = 0\n }\n\n let searchParsed = undefined\n if (search && search !== '') {\n const fieldsToFilter = Ctx.registry.getFieldsToFilter(Ctx.context['@type'])\n searchParsed = parser(search, fieldsToFilter)\n }\n\n let typeParsed = undefined\n if (type && type !== '') {\n typeParsed = parser(type, 'type_name')\n }\n\n let sortParsed = undefined\n if (sort && sort !== '') {\n if (sortDirection === 'asc') {\n sortParsed = parser(`_sort_asc=${sort}`)\n } else if (sortDirection === 'des') {\n sortParsed = parser(`_sort_des=${sort}`)\n }\n }\n\n const onSort = (key) => {\n if (sort === key && sortDirection === 'des') {\n setLocation({\n sort: key,\n sort_direction: 'asc',\n page: 0,\n })\n } else {\n setLocation({\n sort: key,\n sort_direction: 'des',\n page: 0,\n })\n }\n }\n\n let resultQueryParams = []\n const resultDynamicLocation = []\n filterSchema.forEach((filter) => {\n const itemParam = location.get(filter.attribute_key)\n resultDynamicLocation.push(itemParam)\n if (itemParam) {\n const filterParsed = parser(itemParam, filter.attribute_key)\n resultQueryParams = [...resultQueryParams, ...filterParsed]\n }\n })\n\n useEffect(() => {\n const controller = new AbortController()\n if (Ctx.state.loading) return\n ;(async () => {\n setState({ loading: true, total: Ctx.context.length })\n const { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type'],\n {\n key: 'id',\n direction: 'des',\n }\n )\n sortParsed = parser(\n `_sort_${defaultSortValue.direction}=${defaultSortValue.key}`\n )\n }\n const qsParsed = Ctx.client[fnName]({\n path: Ctx.path,\n start: page * PageSize,\n pageSize: PageSize,\n })\n let qs = ''\n if (search || type || resultQueryParams.length > 0) {\n qs = buildQs([\n ...qsParsed,\n ...(searchParsed ?? []),\n ...(typeParsed ?? []),\n ...(sortParsed ?? []),\n ...resultQueryParams,\n ])\n } else {\n qs = buildQs([...qsParsed, ...(sortParsed ?? [])])\n }\n\n const { signal } = controller\n const data = await Ctx.client.search(Ctx.path, qs, false, false, {\n signal,\n })\n setState({\n items: data.member,\n loading: false,\n total: data.items_count,\n })\n })()\n return () => {\n controller.abort()\n }\n }, [\n search,\n type,\n Ctx.state.refresh,\n page,\n sort,\n sortDirection,\n ...resultDynamicLocation,\n ])\n\n const doPaginate = (page) => {\n setLocation({ page: page })\n }\n\n const getIcon = (key, isSortable) => {\n let icon = null\n if (isSortable) {\n if (sort !== key) {\n icon = <i className=\"fas fa-sort\" />\n } else if (sortDirection === 'des') {\n icon = <i className=\"fas fa-sort-down\" />\n } else {\n icon = <i className=\"fas fa-sort-up\"></i>\n }\n }\n return <span className=\"icon is-small\">{icon}</span>\n }\n\n return (\n <ItemsActionsProvider items={items}>\n {filterSchema.length > 0 && (\n <div className=\"filters-items-view\">\n {filterSchema.map((filter) => {\n if (filter.type === 'select' && (filter.values ?? []).length > 0) {\n return (\n <Select\n key={`filter-${filter.attribute_key}`}\n id={filter.attribute_key}\n placeholder={filter.label}\n appendDefault\n classWrap=\"is-size-7 is-fullwidth\"\n options={filter.values}\n value={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n } else if (filter.type === 'select' && filter.vocabulary) {\n return (\n <SelectVocabulary\n key={`filter-${filter.attribute_key}`}\n id={filter.attribute_key}\n placeholder={filter.label}\n appendDefault\n vocabularyName={filter.vocabulary}\n classWrap=\"is-size-7 is-fullwidth\"\n val={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n } else if (filter.type === 'input') {\n return (\n <Input\n id={filter.attribute_key}\n key={`filter-${filter.attribute_key}`}\n placeholder={filter.label}\n className=\"is-size-7 is-fullwidth\"\n type={filter.input_type || 'text'}\n value={location.get(filter.attribute_key) || ''}\n dataTest={`filterInput${filter.attribute_key}`}\n onChange={(value) => {\n if (value && value !== '') {\n setLocation({\n [filter.attribute_key]: value,\n tab: 'Items',\n page: 0,\n })\n } else {\n del(filter.attribute_key)\n }\n }}\n />\n )\n }\n return null\n })}\n </div>\n )}\n <div className=\"wrapper-filters-info\">\n <div className=\"is-size-7\">\n <ItemsActionsDropdown />\n </div>\n <div className=\"wrapper-filters-tags\">\n {location.get('q') && <SearchLabels />}\n {location.get('type') && <SearchLabels query=\"type\" />}\n\n {(filterSchema ?? []).map((filter) => {\n const filterData = location.get(filter.attribute_key)\n if (filterData) {\n if (filter.type === 'select' && filter.vocabulary) {\n return (\n <div key={filter.attribute_key}>\n <SearchVocabularyLabels\n query={filter.attribute_key}\n vocabularyName={filter?.vocabulary}\n />\n </div>\n )\n } else if (\n filter.type === 'select' &&\n (filter.values ?? []).length > 0\n ) {\n return (\n <div key={filter.attribute_key}>\n <SearchOptionsLabels\n query={filter.attribute_key}\n options={filter?.values}\n />\n </div>\n )\n }\n return (\n <div key={filter.attribute_key}>\n <SearchLabels query={filter.attribute_key} />\n </div>\n )\n }\n return null\n })}\n </div>\n <div>\n <Pagination\n current={page}\n total={total}\n key=\"pagination-top\"\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </div>\n\n {loading && <div className=\"progress-line\"></div>}\n {!loading && (\n <table\n className=\"table is-fullwidth is-hoverable\"\n data-test=\"itemPanelTableTest\"\n >\n <thead className=\"is-size-7\">\n <tr>\n <th>\n <AllItemsCheckbox />\n </th>\n {columns.map((column) => (\n <th\n key={`table-col-${column.label}`}\n onClick={() => column.isSortable && onSort(column.key)}\n data-test={`sortableColumn${column.key}`}\n >\n <div className=\"has-text-info is-flex is-align-items-center\">\n <span>{column.label}</span>\n {getIcon(column.key, column.isSortable)}\n </div>\n </th>\n ))}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {items &&\n items.map((item) => (\n <RItem\n item={item}\n key={item['@uid']}\n search={search}\n columns={columns}\n />\n ))}\n {items && items.length === 0 && (\n <tr>\n <td colSpan={6} className=\"has-text-centered\">\n {intl.formatMessage(genericMessages.no_results)}\n </td>\n </tr>\n )}\n </tbody>\n </table>\n )}\n <div className=\"columns is-centered\">\n <Pagination\n current={page}\n key=\"pagination-bottom\"\n total={total}\n doPaginate={doPaginate}\n pager={PageSize}\n />\n </div>\n </ItemsActionsProvider>\n )\n}\n","import { useTraversal } from '../contexts'\nimport { get } from '../lib/utils'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { GuillotinaCommonObject, GuillotinaSchema } from '../types/guillotina'\n\ninterface Props {\n context: GuillotinaCommonObject\n schema: GuillotinaSchema\n}\nexport function BehaviorsView({ context, schema }: Props) {\n const Ctx = useTraversal()\n const { getBehavior } = Ctx.registry\n\n const behaviors = [].concat(\n context.__behaviors__,\n context['@static_behaviors']\n )\n const GetBehavior = (b) => {\n const Cls = getBehavior(b, BehaviorNotImplemented)\n return (\n <Cls\n values={context[b]}\n properties={get(schema, ['definitions', b, 'properties'], {})}\n />\n )\n }\n\n return (\n <>\n {behaviors.map((behavior) => (\n <div className=\"container\" key={behavior}>\n <h3 className=\"title is-size-6 has-text-grey\">{behavior}</h3>\n {GetBehavior(behavior)}\n <hr />\n </div>\n ))}\n </>\n )\n}\n\nexport function BehaviorNotImplemented() {\n const intl = useIntl()\n return (\n <tr>\n <td colSpan={3}>{intl.formatMessage(genericMessages.not_implemented)}</td>\n </tr>\n )\n}\n","import React from 'react'\nimport { useTraversal } from '../contexts'\n\nexport function PropertiesButtonView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Buttons) {\n const Element = React.cloneElement(Props.Buttons, { Ctx: Ctx })\n return Element\n }\n return null\n}\n\nexport function PropertiesView() {\n const Ctx = useTraversal()\n const { getProperties } = Ctx.registry\n const Props = getProperties(Ctx.context['@type'])\n\n if (Props.Panels) {\n const Element = React.cloneElement(Props.Panels, { Ctx: Ctx })\n return Element\n }\n return null\n}\n","import { useEffect } from 'react'\nimport { ItemModel } from '../../models'\nimport { BehaviorsView } from '../behavior_view'\nimport { Icon } from '../ui/icon'\nimport { EditableField } from '../fields/editableField'\nimport { PropertiesButtonView } from '../properties_view'\nimport { PropertiesView } from '../properties_view'\nimport { useConfig } from '../../hooks/useConfig'\nimport useSetState from '../../hooks/useSetState'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport {\n GuillotinaSchema,\n GuillotinaSchemaProperty,\n} from '../../types/guillotina'\n\nconst _showProperties = ['@id', '@name', '@uid']\nconst _ignoreFields = [\n 'guillotina.behaviors.dublincore.IDublinCore',\n 'guillotina.behaviors.attachment.IAttachment',\n 'guillotina.behaviors.attachment.IMultiAttachment',\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior',\n 'guillotina.contrib.image.behaviors.IImageAttachment',\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment',\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment',\n '__behaviors__',\n 'type_name',\n 'creation_date',\n 'modification_date',\n 'uuid',\n 'title',\n]\n\ninterface State {\n data: GuillotinaSchema\n loading: boolean\n error: string\n}\n\nexport function PanelProperties() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n const cfg = useConfig()\n\n const [schema, setSchema] = useSetState<State>({\n data: undefined,\n loading: false,\n error: undefined,\n })\n\n const model = new ItemModel(Ctx.context)\n\n const showProperties =\n Ctx.registry.getProperties(Ctx.context['@type']).default ||\n cfg.properties_default ||\n _showProperties\n\n const ignoreFields =\n Ctx.registry.getProperties(Ctx.context['@type']).ignoreField ||\n cfg.properties_ignore_fields ||\n _ignoreFields\n\n const properties = Object.keys(schema?.data?.properties || [])\n .filter((key) => !ignoreFields.includes(key))\n .map((key) => ({\n key,\n value: schema.data.properties[key] as GuillotinaSchemaProperty,\n }))\n\n useEffect(() => {\n async function getSchema() {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, model.type)\n setSchema({ loading: false, data: dataJson })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n }\n getSchema()\n }, [schema])\n\n return (\n <div className=\"container\">\n <div className=\"level\">\n <div className=\"level-left\">\n <h2 className=\"title is-size-4 is-primary\">\n <Icon icon={model.icon} align=\"is-left\" className=\"has-text-grey\" />\n \n <span>{Ctx.context.title || Ctx.context['@name']}</span>\n </h2>\n </div>\n <div className=\"level-right\">\n <PropertiesButtonView />\n </div>\n </div>\n\n <hr />\n {schema && schema.data && !schema.loading && (\n <div className=\"columns\">\n <div className=\"column\">\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th style={{ width: '150px' }} className=\"is-2\">\n {intl.formatMessage(genericMessages.property)}\n </th>\n <th className=\"is-8\">\n {intl.formatMessage(genericMessages.value)}\n </th>\n </tr>\n </thead>\n <tbody>\n {showProperties.map((prop) => (\n <tr key={'prop' + prop}>\n <td style={{ width: '150px' }}>{prop}</td>\n <td>\n <EditableField\n field={prop}\n value={Ctx.context[prop]}\n modifyContent={false}\n />\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n {properties.length > 0 && (\n <table className=\"table is-striped is-fullwidth is-size-7\">\n <thead>\n <tr>\n <th style={{ width: '150px' }} className=\"is-2\">\n {intl.formatMessage(genericMessages.property)}\n </th>\n <th className=\"is-8\">\n {intl.formatMessage(genericMessages.value)}\n </th>\n </tr>\n </thead>\n <tbody>\n {properties.map(({ key, value }) => {\n return (\n <tr key={'prop' + key}>\n <td style={{ width: '150px' }}>{value.title || key}</td>\n <td>\n <EditableField\n field={key}\n value={Ctx.context[key]}\n schema={value}\n modifyContent={modifyContent}\n required={(schema.data?.required ?? []).includes(\n key\n )}\n />\n </td>\n </tr>\n )\n })}\n </tbody>\n </table>\n )}\n <PropertiesView />\n <BehaviorsView context={Ctx.context} schema={schema.data} />\n </div>\n </div>\n )}\n </div>\n )\n}\n","import ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface State {\n principal: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinperm({\n principals,\n permissions,\n operations,\n refresh,\n}: Props) {\n const Ctx = useTraversal()\n const intl = useIntl()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\n principal: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinperm: state.permission.map((perm) => ({\n principal: state.principal,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals}\n onChange={(value: string) => setState({ principal: value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_permissions)}\n </label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n size={5}\n multiple\n dataTest=\"selectPermissionsTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value: string) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n )\n}\n","import ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface State {\n principal: string\n roles: string[]\n setting: string\n error: string\n}\ninterface Props {\n principals: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionPrinrole({\n principals,\n roles,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\n principal: undefined,\n roles: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.principal || !state.setting || state.roles.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form_data) })\n return\n }\n setState({ error: undefined })\n const data = {\n prinrole: state.roles.map((perm) => ({\n principal: state.principal,\n role: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_principal)}\n </label>\n <Select\n appendDefault\n options={principals}\n onChange={(value: string) => setState({ principal: value })}\n dataTest=\"selectPrincipalTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n options={roles}\n onChange={getMultiples('roles', setState)}\n size={5}\n multiple\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value: string) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n )\n}\n","import ErrorZone from '../error_zone'\nimport useSetState from '../../hooks/useSetState'\nimport { Button } from '../input/button'\nimport { Select } from '../input/select'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\ninterface State {\n role: string\n permission: string[]\n setting: string\n error: string\n}\ninterface Props {\n roles: { text: string; value: string }[]\n permissions: { text: string; value: string }[]\n operations: { text: string; value: string }[]\n refresh: (value: number) => void\n}\nexport function PermissionRoleperm({\n roles,\n permissions,\n operations,\n refresh,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const { post, loading } = useCrudContext()\n const [state, setState] = useSetState<State>({\n role: undefined,\n permission: [],\n setting: undefined,\n error: undefined,\n })\n\n const getMultiples = (field, setter) => (values) => {\n setter({ [field]: values })\n }\n\n const savePermission = async () => {\n if (!state.role || !state.setting || state.permission.length === 0) {\n setState({ error: intl.formatMessage(genericMessages.invalid_form) })\n return\n }\n setState({ error: undefined })\n const data = {\n roleperm: state.permission.map((perm) => ({\n role: state.role,\n permission: perm,\n setting: state.setting,\n })),\n }\n const { isError, errorMessage } = await post(data, '@sharing', false)\n if (!isError) {\n Ctx.flash('Permission updated!', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n refresh(Math.random())\n }\n\n return (\n <div className=\"container\">\n {loading}\n {state.error && (\n <ErrorZone>\n {intl.formatMessage(genericMessages.invalid_form_data)}\n </ErrorZone>\n )}\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_role)}\n </label>\n <Select\n appendDefault\n options={roles}\n onChange={(value: string) => setState({ role: value })}\n dataTest=\"selectRoleTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.select_permissions)}\n </label>\n <Select\n options={permissions}\n onChange={getMultiples('permission', setState)}\n dataTest=\"selectPermissionsTest\"\n size={5}\n multiple\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.operation)}\n </label>\n <Select\n appendDefault\n options={operations}\n onChange={(value: string) => setState({ setting: value })}\n dataTest=\"operationPermissionsTest\"\n />\n </div>\n <Button\n className=\"is-primary is-small\"\n loading={loading}\n onClick={savePermission}\n dataTest=\"btnSubmitPermissionsTest\"\n >\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </div>\n )\n}\n","import useSetState from '../../hooks/useSetState'\nimport { PermissionPrinperm } from './permissions_prinperm'\nimport { PermissionPrinrole } from './permissions_prinrole'\nimport { PermissionRoleperm } from './permissions_roleperm'\nimport { Select } from '../input/select'\nimport { Sharing } from '../../models'\nimport { Table } from '../ui/table'\nimport { useCrudContext } from '../../hooks/useCrudContext'\nimport { useTraversal } from '../../contexts'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\nimport { Fragment, useEffect, useState } from 'react'\nimport { GuillotinaSharing } from '../../types/guillotina'\n\nconst messages = defineMessages({\n role_permissions: {\n id: 'role_permissions',\n defaultMessage: 'Role Permissions',\n },\n no_role_permissions: {\n id: 'no_role_permissions',\n defaultMessage: 'No roles permissions defined',\n },\n no_principal_permissions: {\n id: 'no_principal_permissions',\n defaultMessage: 'No principal permissions defined',\n },\n no_principal_roles: {\n id: 'no_principal_roles',\n defaultMessage: 'No principal roles defined',\n },\n principal_permissions: {\n id: 'principal_permissions',\n defaultMessage: 'Principal Permissions',\n },\n principal_roles: {\n id: 'principal_roles',\n defaultMessage: 'Principal Roles',\n },\n allow: {\n id: 'allow',\n defaultMessage: 'Allow',\n },\n deny: {\n id: 'deny',\n defaultMessage: 'Deny',\n },\n allow_single: {\n id: 'allow_single',\n defaultMessage: 'AllowSingle',\n },\n unset: {\n id: 'unset',\n defaultMessage: 'Unset',\n },\n add_permissions: {\n id: 'add_permissions',\n defaultMessage: 'Add Permissions',\n },\n select_type: {\n id: 'select_type',\n defaultMessage: 'Select a type:',\n },\n})\n\nexport function PanelPermissions() {\n const intl = useIntl()\n const { get, result, loading } = useCrudContext<GuillotinaSharing>()\n const ctx = useTraversal()\n\n const [reset, setReset] = useState(1)\n\n useEffect(() => {\n get('@sharing')\n }, [reset])\n\n const perms = new Sharing(result)\n\n return (\n <div className=\"columns\">\n {!loading && (\n <div\n className=\"column is-8 is-size-7 permissions\"\n data-test=\"containerPermissionsInfoTest\"\n >\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.role_permissions)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\n {perms.roles.map((role, idx) => (\n <Fragment key={'ff' + idx}>\n <tr>\n <td colSpan={3} className=\"has-text-link\">\n {role}\n </td>\n {/* <td>\n <Icon icon=\"fas fa-ban\" />\n <span>Remove</span>\n </td> */}\n </tr>\n {Object.keys(perms.getRole(role)).map((row, idx) => (\n <tr key={'k' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getRole(role)[row]}</td>\n </tr>\n ))}\n </Fragment>\n ))}\n {perms.roles.length === 0 && (\n <tr>\n <td colSpan={3}>\n {intl.formatMessage(messages.no_role_permissions)}\n </td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.principal_permissions)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\n {perms.principals.map((role, idx) => (\n <Fragment key={'f2' + idx}>\n <tr>\n <td colSpan={3} className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrincipals(role)).map((row, idx) => (\n <tr key={'x' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrincipals(role)[row]}</td>\n </tr>\n ))}\n </Fragment>\n ))}\n {perms.principals.length === 0 && (\n <tr>\n <td colSpan={3}>\n {intl.formatMessage(messages.no_principal_permissions)}\n </td>\n </tr>\n )}\n </Table>\n <h2 className=\"title is-size-5 has-text-grey-dark\">\n {intl.formatMessage(messages.principal_roles)}\n </h2>\n <Table\n headers={[\n intl.formatMessage(genericMessages.role),\n intl.formatMessage(genericMessages.permission),\n intl.formatMessage(genericMessages.setting),\n ]}\n >\n {perms.prinrole.map((role, idx) => (\n <Fragment key={role + idx}>\n <tr>\n <td colSpan={3} className=\"has-text-link\">\n {role}\n </td>\n </tr>\n {Object.keys(perms.getPrinroles(role)).map((row, idx) => (\n <tr key={'xx' + idx}>\n <td></td>\n <td>{row}</td>\n <td>{perms.getPrinroles(role)[row]}</td>\n </tr>\n ))}\n </Fragment>\n ))}\n {perms.prinrole.length === 0 && (\n <tr>\n <td colSpan={3}>\n {intl.formatMessage(messages.no_role_permissions)}\n </td>\n </tr>\n )}\n </Table>\n </div>\n )}\n {ctx.hasPerm('guillotina.ChangePermissions') && (\n <AddPermission refresh={setReset} reset={reset} />\n )}\n </div>\n )\n}\n\ninterface State {\n permissions: { text: string; value: string }[]\n roles: { text: string; value: string }[]\n principals: { text: string; value: string }[]\n current: string\n}\nconst initial: State = {\n permissions: undefined,\n roles: [],\n principals: undefined,\n current: '',\n}\n\ninterface AddPermissionProps {\n refresh: (state: number) => void\n reset: number\n}\nexport function AddPermission({ refresh, reset }: AddPermissionProps) {\n const Ctx = useTraversal()\n const [state, setState] = useSetState<State>(initial)\n const intl = useIntl()\n\n const operations = [\n { text: intl.formatMessage(messages.allow), value: 'Allow' },\n { text: intl.formatMessage(messages.deny), value: 'Deny' },\n { text: intl.formatMessage(messages.allow_single), value: 'AllowSingle' },\n { text: intl.formatMessage(messages.unset), value: 'Unset' },\n ]\n\n const defaultOptions = [\n { text: intl.formatMessage(genericMessages.choose), value: '' },\n { text: intl.formatMessage(messages.role_permissions), value: 'roleperm' },\n {\n text: intl.formatMessage(messages.principal_permissions),\n value: 'prinperm',\n },\n { text: intl.formatMessage(messages.principal_roles), value: 'prinrole' },\n ]\n\n useEffect(() => {\n async function init() {\n const permissions = (await Ctx.client.getAllPermissions(Ctx.path)).map(\n (perm) => ({\n text: perm,\n value: perm,\n })\n )\n let principals = []\n let roles = []\n\n const principalsData = await Ctx.client.getPrincipals(Ctx.path)\n const groups = principalsData.groups.map((group) => ({\n text: group.id,\n value: group.id,\n }))\n const users = principalsData.users.map((user) => ({\n text: user.fullname || user.id,\n value: user.id,\n }))\n principals = [...groups, ...users]\n\n const req = await Ctx.client.getRoles(Ctx.path)\n if (req.ok) {\n roles = (await req.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setState({ permissions, roles, principals })\n }\n\n init()\n }, [reset])\n\n return (\n <div className=\"column is-4 is-size-7\">\n <h1 className=\"title is-size-5\">\n {intl.formatMessage(messages.add_permissions)}\n </h1>\n <p>{intl.formatMessage(messages.select_type)}</p>\n <Select\n options={defaultOptions}\n onChange={(value: string) => setState({ current: value })}\n dataTest=\"selectPermissionTypeTest\"\n />\n <hr />\n {state.current && state.current === 'roleperm' && (\n <PermissionRoleperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinperm' && (\n <PermissionPrinperm\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n {state.current && state.current === 'prinrole' && (\n <PermissionPrinrole\n {...state}\n operations={operations}\n refresh={refresh}\n />\n )}\n </div>\n )\n}\n","import { Select } from '../input/select'\nimport { Tag } from '../ui/tag'\nimport { Loading } from '../ui/loading'\nimport { useRef, useState } from 'react'\n\nconst prepareAvailable = (items, already, title) => {\n const def = { value: '', text: `Add ${title}` }\n if (items.length === 0) return []\n if (items[0] && typeof items[0] === 'string') {\n return [def]\n .concat(items.map((x) => ({ value: x, text: x })))\n .filter((item) => !already.includes(item.value))\n }\n return [def].concat(items).filter((item) => !already.includes(item.value))\n}\n\ninterface Props {\n items: string[]\n available?: string[]\n title: string\n noData: string\n onChange: (items: string[]) => void\n loading?: boolean\n}\nexport function TagsWidget({\n items,\n available,\n title,\n noData,\n onChange,\n loading,\n}: Props) {\n const selectRef = useRef<HTMLSelectElement>()\n\n const [result, setResult] = useState(items)\n const availableData = prepareAvailable(available || [], result, title)\n\n const remove = (value) => {\n const items = result.filter((item) => item !== value)\n setResult(items)\n onChange(items)\n }\n\n const addItem = (value) => {\n if (value === '') return\n const items = result.concat([value])\n setResult(items)\n onChange(items)\n }\n\n return (\n <>\n <h3 className=\"title is-size-6\">{title}</h3>\n {loading ? <Loading style={{ marginBottom: '1.5rem' }} /> : <hr />}\n <ul>\n <div className=\"tags\">\n {result.map((item) => (\n <Tag\n id={item}\n name={item}\n onRemove={() => remove(item)}\n key={item}\n />\n ))}\n </div>\n {result.length === 0 && (\n <li style={{ marginBottom: '20px' }}>{noData}</li>\n )}\n {available.length > 1 && (\n <li className=\"widget-list-add select is-small\">\n <Select\n options={availableData}\n ref={selectRef}\n onChange={(value) => {\n addItem(value)\n if (selectRef.current) {\n selectRef.current.value = ''\n }\n }}\n />\n </li>\n )}\n </ul>\n </>\n )\n}\n","import { useEffect, useState } from 'react'\n\nimport Dropdown from './input/dropdown'\nimport useSetState from '../hooks/useSetState'\nimport { Button } from './input/button'\nimport { Icon } from './ui/icon'\nimport { useTraversal } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { useLocation } from '../hooks/useLocation'\nimport { Select } from './input/select'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface State {\n types?: string[]\n isActive?: boolean\n}\nconst initialState = { types: undefined }\n\nexport function CreateButton() {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(initialState)\n const Ctx = useTraversal()\n const Config = useConfig()\n useEffect(() => {\n async function anyNameFunction() {\n const types = await Ctx.client.getTypes(Ctx.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n anyNameFunction()\n }, [Ctx.path])\n\n const doAction = (item) => {\n Ctx.doAction('addItem', { type: item })\n setState({ isActive: false })\n }\n\n if (state.types && state.types.length === 1) {\n return (\n <Button\n className={'is-small is-success'}\n onClick={() => doAction(state.types[0])}\n dataTest=\"itemAddTypeTest\"\n >\n {intl.formatMessage(genericMessages.add_type, { type: state.types[0] })}\n </Button>\n )\n }\n\n if (state.types && state.types.length === 0) {\n return null\n }\n\n // Implement some kind of filtering\n return (\n <Dropdown\n id=\"dropdown-menu\"\n isRight\n onChange={doAction}\n options={(state.types || []).map((item) => ({ text: item, value: item }))}\n >\n <span className=\"icon\" data-test=\"itemAddTypeTest\">\n <i className=\"fas fa-plus\"></i>\n </span>\n </Dropdown>\n )\n}\n\ninterface Props {\n AddButton?: React.FC\n}\nexport function ContextToolbar({ AddButton }: Props) {\n const intl = useIntl()\n const [state, setState] = useSetState<State>(initialState)\n const [location, setLocation, del] = useLocation()\n const traversal = useTraversal()\n const Config = useConfig()\n const searchText = location.get('q')\n const [searchValue, setSearchValue] = useState(searchText || '')\n\n useEffect(() => {\n loadTypes()\n }, [traversal.path])\n\n useEffect(() => {\n setSearchValue(searchText)\n }, [searchText])\n\n async function loadTypes() {\n const types = await traversal.client.getTypes(traversal.path)\n setState({\n types: types.filter((item) => !Config.DisabledTypes.includes(item)),\n })\n }\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, tab: 'Items', page: 0 })\n ev.preventDefault()\n }\n\n const onSearchByType = (typeText) => {\n if (typeText && typeText !== '') {\n setLocation({ type: typeText, tab: 'Items', page: 0 })\n } else {\n del('type')\n }\n }\n\n return (\n <>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n value={searchValue || ''}\n onChange={(ev) => setSearchValue(ev.target.value)}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder={intl.formatMessage(genericMessages.search)}\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <div className=\"level-item\">\n <Select\n appendDefault\n dataTest=\"selectFilterTypeTest\"\n classWrap=\"is-size-7\"\n options={(state.types || []).map((item) => ({\n text: item,\n value: item,\n }))}\n onChange={onSearchByType}\n />\n </div>\n {traversal.hasPerm('guillotina.AddContent') && (\n <div className=\"level-item\">\n {AddButton !== undefined ? <AddButton /> : <CreateButton />}\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../contexts'\nimport { Notification } from './ui/notification'\nimport { Delete } from './ui/delete'\n\nexport function Flash() {\n const Ctx = useTraversal()\n const { flash } = Ctx.state\n\n if (!flash.message) return null\n\n return (\n <Notification isColor={flash.type}>\n {flash.message}\n <Delete onClick={() => Ctx.clearFlash()} />\n </Notification>\n )\n}\n","import React, { useState } from 'react'\nimport { useLocation } from '../hooks/useLocation'\nimport { IndexSignature } from '../types/global'\n\nfunction FallbackTab({ title }: { title: string }) {\n return <div>Tab '{title}' not found</div>\n}\n\ninterface Props {\n tabs: IndexSignature\n currentTab?: string\n rightToolbar?: React.ReactNode\n fallback?: React.ComponentType\n}\n\nexport function TabsPanel({\n tabs,\n currentTab,\n rightToolbar,\n fallback = FallbackTab,\n}: Props) {\n const [location, setLocation] = useLocation()\n\n if (location.get('tab')) {\n currentTab = location.get('tab')\n } else {\n currentTab = currentTab || Object.keys(tabs)[0]\n }\n\n /*if (!Object.keys(tabs).includes(currentTab)) {\n setLocation(defaultTab)\n currentTab = defaultTab\n }*/\n\n const [current, setTab] = useState(currentTab)\n const CurrentComp = tabs[current] || fallback\n\n React.useEffect(() => {\n if (Object.keys(tabs).includes(currentTab)) {\n setTab(currentTab)\n // setLocation({tab: currentTab})\n }\n }, [currentTab, tabs])\n\n const changeTab = (tab) => {\n setLocation({ tab: tab })\n }\n\n return (\n <div className=\"container\">\n <div className=\"level is-flex-wrap-wrap\">\n <div className=\"level-left mb-4\">\n <div className=\"tabs\">\n <ul>\n {Object.keys(tabs).map((tab) => (\n <li\n className={\n 'is-size-7 ' + (tab === current ? 'is-active' : '')\n }\n key={tab}\n >\n <a\n data-test={`tabTest-${tab.toLowerCase()}`}\n onClick={() => changeTab(tab)}\n >\n {tab}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </div>\n {rightToolbar && <div className=\"level-right\">{rightToolbar}</div>}\n </div>\n <div className=\"container\">\n <CurrentComp title={current} />\n </div>\n </div>\n )\n}\n","import { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { useTraversal } from '../contexts'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n\nconst tabs = {\n Items: PanelItems,\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n}\n\nexport function FolderCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar {...props} />}\n {...props}\n />\n )\n}\n","import { TabsPanel } from '../components/tabs'\nimport { useTraversal } from '../contexts'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\nimport { PanelProperties } from '../components/panel/properties'\nimport { PanelActions } from '../components/panel/actions'\n\nconst tabs = {\n Properties: PanelProperties,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Properties: 'guillotina.ViewContent',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n}\n\nexport function ItemCtx(props) {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n\n return <TabsPanel tabs={calculated} currentTab=\"Properties\" {...props} />\n}\n","import { Item } from '../components/item'\nimport { ItemTitle } from '../components/item'\nimport { Button } from '../components/input/button'\nimport { useState } from 'react'\nimport { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { Form } from '../components/input/form'\nimport { Input } from '../components/input/input'\nimport { defineMessages, useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nexport function ApplicationCtx() {\n const intl = useIntl()\n const context = useTraversal()\n const { databases } = context.state.context\n return (\n <>\n <h3>\n {intl.formatMessage({\n id: 'databases',\n defaultMessage: 'Databases',\n })}\n </h3>\n <div className=\"container\">\n <ItemTitle title=\"Objects\" />\n {databases.map((db) => (\n <Item\n item={{ id: db, path: `/${db}/` }}\n key={db}\n icon={'fas fa-database'}\n />\n ))}\n </div>\n </>\n )\n}\n\nexport function DatabaseCtx() {\n const context = useTraversal()\n const { containers } = context.state.context\n const { path } = context.state\n return (\n <>\n <div className=\"container\">\n <ItemTitle title=\"Containers\" actions={<CreateContainer />} />\n <table className=\"table is-fullwidth is-hoverable\">\n <tbody>\n {containers.map((db) => (\n <Item\n item={{ id: db, path: `${path}${db}/` }}\n key={db}\n icon={'fas fa-archive'}\n />\n ))}\n </tbody>\n </table>\n </div>\n </>\n )\n}\n\nexport function CreateContainer() {\n const intl = useIntl()\n const [isActive, setActive] = useState(false)\n\n return (\n <>\n <ModalAddContainer isActive={isActive} setActive={setActive} />\n <button\n className=\"button is-warning is-pulled-right\"\n onClick={() => setActive(true)}\n >\n <span className=\"icon is-small\">\n <i className=\"fas fa-plus\"></i>\n </span>\n <span>{intl.formatMessage(genericMessages.create)}</span>\n </button>\n </>\n )\n}\n\nexport const messages = defineMessages({\n add_container: {\n id: 'add_container',\n defaultMessage: 'Add Container',\n },\n container_created: {\n id: 'container_created',\n defaultMessage: 'Container Created',\n },\n})\n\ninterface ModalAddContainerProps {\n isActive: boolean\n setActive: (value: boolean) => void\n}\nfunction ModalAddContainer({ isActive, setActive }: ModalAddContainerProps) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const [isLoading, setLoading] = useState(false)\n const [idField, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n async function createContainer() {\n setLoading(true)\n const data = {\n '@type': 'Container',\n id: idField,\n }\n try {\n const res = await Ctx.client.createObject(Ctx.path, data)\n const result = await res.json()\n if (res.status === 200) {\n Ctx.refresh()\n setId('')\n setLoading(false)\n setActive(false)\n Ctx.flash(intl.formatMessage(messages.container_created), 'primary')\n } else {\n setId('')\n setLoading(false)\n setError(result.message)\n }\n } catch {\n setError('Error-submitting-form')\n setLoading(false)\n }\n }\n\n return (\n <Modal isActive={isActive} setActive={setActive}>\n <Form\n onSubmit={createContainer}\n title={intl.formatMessage(messages.add_container)}\n error={error}\n >\n <Input\n required\n placeholder=\"Container Name\"\n onChange={(v) => {\n setId(v)\n }}\n value={idField}\n loading={isLoading}\n />\n <Button loading={isLoading}>\n {intl.formatMessage(messages.add_container)}\n </Button>\n </Form>\n </Modal>\n )\n}\n","import { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface Props {\n title: string\n}\nexport function PanelNotImplemented(props: Props) {\n const intl = useIntl()\n return (\n <div className=\"container\">\n <h2 className=\"title\">{props.title}</h2>\n <p>{intl.formatMessage(genericMessages.not_implemented)}</p>\n </div>\n )\n}\n","import { TabsPanel } from '../components/tabs'\nimport { ContextToolbar } from '../components/context_toolbar'\nimport { PanelItems } from '../components/panel/items'\nimport { PanelActions } from '../components/panel/actions'\nimport { PanelAddons } from '../components/panel/addons'\nimport { useTraversal } from '../contexts'\nimport { PanelNotImplemented } from './base'\nimport { PanelPermissions } from '../components/panel/permissions'\nimport { PanelBehaviors } from '../components/panel/behaviors'\n\nconst tabs = {\n Items: PanelItems,\n Addons: PanelAddons,\n Registry: PanelNotImplemented,\n Behaviors: PanelBehaviors,\n Permissions: PanelPermissions,\n Actions: PanelActions,\n}\n\nconst tabsPermissions = {\n Items: 'guillotina.ViewContent',\n Addons: 'guillotina.ManageAddons',\n Registry: 'guillotina.ReadConfiguration',\n Behaviors: 'guillotina.ModifyContent',\n Permissions: 'guillotina.SeePermissions',\n}\n\nexport function ContainerCtx() {\n const ctx = useTraversal()\n const calculated = ctx.filterTabs(tabs, tabsPermissions)\n return (\n <TabsPanel\n tabs={calculated}\n currentTab=\"Items\"\n rightToolbar={<ContextToolbar />}\n />\n )\n}\n","import { FormBuilder } from '../components/input/form_builder'\nimport { useIntl } from 'react-intl'\nimport { IndexSignature } from '../types/global'\n\ninterface Props {\n children: React.ReactNode\n onSubmit: (data: IndexSignature) => void\n actionName?: string\n formData?: IndexSignature\n exclude?: string[]\n remotes?: IndexSignature\n submitButton?: boolean\n}\nexport const UserForm = ({\n children,\n actionName,\n onSubmit,\n formData,\n exclude,\n remotes,\n submitButton,\n}: Props) => {\n const intl = useIntl()\n\n const schema = {\n $schema: '',\n title: '',\n type: 'object',\n definitions: {},\n required: ['username', 'password'],\n properties: {\n username: {\n type: 'string',\n title: intl.formatMessage({\n id: 'username',\n defaultMessage: 'Username',\n }),\n },\n email: {\n type: 'string',\n title: intl.formatMessage({\n id: 'email',\n defaultMessage: 'Email',\n }),\n widget: 'email',\n },\n name: {\n type: 'string',\n title: intl.formatMessage({\n id: 'name',\n defaultMessage: 'Name',\n }),\n },\n password: {\n type: 'string',\n title: intl.formatMessage({\n id: 'password',\n defaultMessage: 'Password',\n }),\n widget: 'password',\n },\n disabled: {\n type: 'boolean',\n title: 'Disabled',\n },\n },\n }\n\n return (\n <FormBuilder\n schema={schema}\n actionName={actionName}\n onSubmit={onSubmit}\n formData={formData}\n exclude={exclude}\n remotes={remotes}\n submitButton={submitButton}\n >\n {children}\n </FormBuilder>\n )\n}\n","/*\n This hook allows to bind (remote) fields on the DOM\n to a form generated with Formbuilder.\n You can link whatever field you want...\n\n const [remoteFields, updateRemoteField] = useRemoteField({widget_1: ['a', 'b']})\n\n <Form remotes={remoteFields} onSubmit={ev => console.log(ev)}>\n <Input />\n </Form>\n\n <Widget onChange={updateRemoteField('widgte_1')}>\n\n This will add the values from a remote field into the desired widget\n\n*/\n\nimport { useState } from 'react'\nimport { IndexSignature } from '../types/global'\n\nexport const useRemoteField = (\n initial: IndexSignature<string[]>\n): [IndexSignature<string[]>, (name: string) => (value: string[]) => void] => {\n const [remotes, setRemote] = useState(initial)\n\n const updateRemote = (name: string) => (value: string[]) => {\n setRemote({\n ...remotes,\n [name]: value,\n })\n }\n\n return [remotes, updateRemote]\n}\n","import { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { UserForm } from '../forms/users'\nimport { formatDate } from '../lib/utils'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { TagsWidget } from '../components/widgets/tags'\nimport { Icon } from '../components/ui/icon'\nimport { Button } from '../components/input/button'\nimport { useRemoteField } from '../hooks/useRemoteField'\nimport { useLocation } from '../hooks/useLocation'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { useEffect, useRef, useState } from 'react'\n\nconst tabs = {\n Users: PanelItems,\n}\n\nexport function UsersToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, page: 0 })\n ev.preventDefault()\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n ref={ref}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder={intl.formatMessage(genericMessages.search)}\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'User' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-user\" />\n <span>{intl.formatMessage(genericMessages.add_user)}</span>\n </button>\n </>\n )\n}\n\nexport function UsersCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Users\"\n rightToolbar={<UsersToolbar />}\n {...props}\n />\n )\n}\n\ninterface State {\n roles: string[]\n groups: string[]\n}\nexport function UserCtx() {\n const intl = useIntl()\n const { Ctx, patch, loading } = useCrudContext()\n\n const [state, setState] = useState<State>({ roles: [], groups: [] })\n\n const fields = {\n user_groups: [],\n user_roles: Ctx.context.user_roles,\n }\n\n const [remotes, updateRemote] = useRemoteField(fields)\n\n useEffect(() => {\n async function getRolesAndGroups() {\n const [requestGetGroups, requestGetRoles] = await Promise.all([\n Ctx.client.search(Ctx.path, { type_name: 'Group' }, true),\n Ctx.client.getRoles(Ctx.path),\n ])\n\n const groups = requestGetGroups\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = await requestGetRoles.json()\n }\n\n setState({\n roles: roles,\n groups: groups.items.map((item) => ({\n value: item.id,\n text: item['@name'],\n })),\n })\n }\n getRolesAndGroups()\n }, [])\n\n const updateObject = async (data) => {\n Ctx.apply(data)\n const { isError, errorMessage } = await patch(data)\n if (isError) {\n Ctx.flash(\n intl.formatMessage(genericMessages.failed_to_update, {\n error: errorMessage,\n }),\n 'danger'\n )\n } else {\n Ctx.flash(\n intl.formatMessage({\n id: 'user_updated',\n defaultMessage: 'User updated',\n }),\n 'primary'\n )\n Ctx.refresh()\n }\n }\n\n return (\n <div className=\"container\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-user\"></Icon>\n \n {intl.formatMessage({\n id: 'user',\n defaultMessage: 'User',\n })}\n </h2>\n\n <hr />\n <div className=\"columns\">\n <div className=\"column\">\n <div className=\"container user-props\">\n <p>\n <label>\n {intl.formatMessage({\n id: 'username',\n defaultMessage: 'Username',\n })}\n :{' '}\n </label>{' '}\n {Ctx.context.username} ({Ctx.context.email})\n </p>\n <p>\n <label>\n {' '}\n {intl.formatMessage({\n id: 'creation_date',\n defaultMessage: 'Creation Date',\n })}\n :{' '}\n </label>{' '}\n {formatDate(Ctx.context.creation_date)}\n </p>\n <p>\n <label>\n {' '}\n {intl.formatMessage({\n id: 'modification_date',\n defaultMessage: 'Modification Date',\n })}\n :{' '}\n </label>{' '}\n {formatDate(Ctx.context.modification_date)}\n </p>\n <Button\n className=\"is-size-7 is-info\"\n onClick={() => {\n Ctx.doAction('changePassword')\n }}\n >\n {intl.formatMessage({\n id: 'change_password',\n defaultMessage: 'Change Password',\n })}\n </Button>\n </div>\n <hr />\n <UserForm\n actionName=\"Save\"\n onSubmit={(ev) => updateObject(ev)}\n formData={Ctx.context}\n exclude={['password']}\n remotes={remotes}\n submitButton={false}\n >\n <Button loading={loading} dataTest=\"formUserTestBtnSubmit\">\n {intl.formatMessage(genericMessages.save)}\n </Button>\n </UserForm>\n </div>\n <div className=\"column\">\n <TagsWidget\n onChange={updateRemote('user_groups')}\n items={Ctx.context.user_groups}\n title=\"Groups\"\n noData={intl.formatMessage({\n id: 'there_is_no_groups_for_this_user',\n defaultMessage: 'There is no groups for this user',\n })}\n available={state.groups}\n />\n <hr />\n <TagsWidget\n onChange={updateRemote('user_roles')}\n items={remotes.user_roles}\n title=\"Roles\"\n noData={intl.formatMessage({\n id: 'the_user_doesnt_have_any_role',\n defaultMessage: \"The user doesn't have any role\",\n })}\n available={state.roles}\n />\n </div>\n </div>\n </div>\n )\n}\n","import { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: Array<ItemModel>\n}\nexport function CopyItems(props: Props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function copyItems(path, form) {\n const responses = await Promise.all(\n items.map((item, i) => {\n const input = form[i + 1] || {}\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@duplicate`, {\n destination: path,\n new_id: input.value || getNewId(item.id),\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be copied to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not copied correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items copied!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={Ctx.client.clearContainerFromPath(Ctx.path)}\n onConfirm={copyItems}\n onCancel={() => Ctx.cancelAction()}\n >\n {items.map((item) => (\n <Fragment key={item.id}>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item.id}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item.id)}\n />\n </Fragment>\n ))}\n \n </PathTree>\n )\n}\n","import { Fragment } from 'react'\nimport { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { getNewId } from '../lib/utils'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function CopyItem(props: Props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const { item } = props\n\n async function copyItem(path, form) {\n const input = form[1] || {}\n const { isError, errorMessage } = await post(\n {\n destination: path,\n new_id: input.value || getNewId(item['@name']),\n },\n '@duplicate'\n )\n\n if (!isError) {\n Ctx.flash(`Field copied!`, 'success')\n } else {\n Ctx.flash(`Failed to copy item!: ${errorMessage}`, 'danger')\n }\n Ctx.refresh()\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Copy to...\"\n defaultPath={`/${item['parent']['@name'] ?? '/'}`}\n onConfirm={copyItem}\n onCancel={() => Ctx.cancelAction()}\n >\n <Fragment>\n <small style={{ display: 'block', marginTop: 20 }}>\n {`New id for \"${item['@name']}\" copy`}\n </small>\n <input\n type=\"text\"\n className=\"input\"\n data-test={`inputCopyIdTest-${item['@name']}`}\n defaultValue={getNewId(item['@name'])}\n />\n </Fragment>\n </PathTree>\n )\n}\n","import { PathTree } from '../components/modal'\nimport { useTraversal } from '../contexts'\nimport { ItemModel } from '../models'\n\nconst withError = (res) => res.status >= 300\n\ninterface Props {\n items: ItemModel[]\n}\nexport function MoveItems(props: Props) {\n const Ctx = useTraversal()\n const { items = [] } = props\n\n async function moveItems(path) {\n const responses = await Promise.all(\n items.map((item) => {\n return Ctx.client.post(`${Ctx.path}${item['@name']}/@move`, {\n destination: path,\n new_id: item['@name'],\n })\n })\n )\n\n Ctx.refresh()\n Ctx.cancelAction()\n\n if (responses.every(withError)) {\n Ctx.flash(`Oops! Items can't be moved to ${path}`, 'danger')\n return\n }\n\n if (responses.some(withError)) {\n Ctx.flash(`Some items are not moved correctly!`, 'warning')\n return\n }\n\n Ctx.flash(`Items moved!`, 'success')\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItems}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import { PathTree } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function MoveItem(props: Props) {\n const Ctx = useTraversal()\n const { post } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function moveItem(path) {\n const { isError, errorMessage, result } = await post(\n {\n destination: path,\n new_id: item['@name'],\n },\n '@move'\n )\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(result['@url'])}/`,\n tab: '',\n })\n Ctx.flash(`Field moved!`, 'success')\n } else {\n Ctx.flash(`Failed to move item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n }\n\n return (\n <PathTree\n title=\"Move to...\"\n onConfirm={moveItem}\n onCancel={() => Ctx.cancelAction()}\n />\n )\n}\n","import { Confirm } from '../components/modal'\nimport { useGuillotinaClient, useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { useLocation } from '../hooks/useLocation'\nimport { ItemModel } from '../models'\n\ninterface Props {\n item: ItemModel\n}\n\nexport function RemoveItem(props: Props) {\n const Ctx = useTraversal()\n const { del, loading } = useCrudContext()\n const [, navigate] = useLocation()\n const client = useGuillotinaClient()\n const { item } = props\n\n async function removeItem() {\n const { isError, errorMessage } = await del()\n\n if (!isError) {\n navigate({\n path: `/${client.cleanPath(item['parent']['@id'])}/`,\n tab: '',\n })\n Ctx.flash(`Field removed!`, 'success')\n } else {\n Ctx.flash(`Failed to delete item!: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n }\n\n return (\n <Confirm\n loading={loading}\n onCancel={() => Ctx.cancelAction()}\n onConfirm={removeItem}\n message={`Are you sure to remove: ${item['@name']}?`}\n />\n )\n}\n","import { useTraversal } from '../contexts'\nimport { Modal } from '../components/modal'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Input } from '../components/input/input'\nimport { Button } from '../components/input/button'\nimport { Form } from '../components/input/form'\nimport { useState } from 'react'\n\nconst initial = {\n pass1: '',\n pass2: '',\n}\n\nexport function ChangePassword() {\n const [state, setState] = useState(initial)\n const [perror, setPerror] = useState(undefined)\n\n const Ctx = useTraversal()\n const { patch } = useCrudContext()\n\n const setActive = () => {\n Ctx.cancelAction()\n }\n\n async function doSubmit() {\n if (state.pass1 === '') {\n setPerror('provide a password')\n return\n }\n\n if (state.pass1 !== state.pass2) {\n setPerror(\"passwords doesn't match\")\n return\n }\n\n setPerror(undefined)\n\n const form = {\n password: state.pass1,\n }\n\n const { isError, errorMessage } = await patch(form)\n if (!isError) {\n Ctx.flash('Password Changed', 'success')\n } else {\n Ctx.flash(`An error has ocurred: ${errorMessage}`, 'danger')\n }\n\n Ctx.cancelAction()\n Ctx.refresh()\n }\n\n const setPass = (field) => (val) => {\n const n = {}\n n[field] = val\n setState((state) => ({ ...state, ...n }))\n setPerror(undefined)\n }\n\n return (\n <Modal isActive={true} setActive={setActive}>\n <Form onSubmit={doSubmit} title=\"Change Password\">\n {perror && (\n <div className=\"notification is-danger is-size-7\">\n <button className=\"delete\"></button>\n {perror}\n </div>\n )}\n <Input\n id=\"pass\"\n placeholder=\"New Password\"\n type=\"password\"\n value={state.pass1}\n onChange={setPass('pass1')}\n />\n\n <Input\n id=\"pass\"\n placeholder=\"Repeat Password\"\n type=\"password\"\n value={state.pass2}\n onChange={setPass('pass2')}\n />\n <Button>Change</Button>\n </Form>\n </Modal>\n )\n}\n","import { useState } from 'react'\nimport { Input } from '../components/input/input'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\ninterface Props {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: Props) {\n const intl = useIntl()\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState(undefined)\n\n const submit = () => {\n if (name === '') {\n setError(intl.formatMessage(genericMessages.field_is_required))\n return\n }\n onSubmit({ title: name, id })\n }\n\n const setTitle = (value) => {\n setId(stringToSlug(value))\n setName(value)\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n <Input\n id=\"title\"\n placeholder={intl.formatMessage(genericMessages.title)}\n required\n value={name}\n onChange={setTitle}\n autofocus\n error={error}\n dataTest=\"titleTestInput\"\n />\n\n <Input\n id=\"id\"\n placeholder=\"Id\"\n value={id}\n onChange={setId}\n dataTest=\"idTestInput\"\n />\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || intl.formatMessage(genericMessages.add)}\n </button>\n </div>\n </Form>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useTraversal } from '../../contexts'\nimport { EditableField } from '../fields/editableField'\nimport { Table } from '../ui'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../../locales/generic_messages'\n\nconst editableFields = [\n 'title',\n 'description',\n 'effective_date',\n 'expiration_date',\n]\n\ninterface Props {\n properties: { [key: string]: any }\n values: { [key: string]: any }\n}\n\nexport function IDublinCore({ properties, values }: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n const modifyContent = Ctx.hasPerm('guillotina.ModifyContent')\n\n return (\n <Table\n headers={[\n intl.formatMessage(genericMessages.property),\n intl.formatMessage(genericMessages.value),\n ]}\n className=\"is-striped is-fullwidth is-size-7\"\n >\n {Object.keys(properties).map((key) => (\n <tr key={'dublin_' + key}>\n <td style={{ width: '150px' }} key={1}>\n {key}\n </td>\n <td key={2}>\n <EditableField\n field={key}\n value={values[key]}\n ns=\"guillotina.behaviors.dublincore.IDublinCore\"\n schema={properties[key]}\n modifyContent={modifyContent && editableFields.includes(key)}\n />\n </td>\n </tr>\n ))}\n </Table>\n )\n}\n","import { TabsPanel } from '../components/tabs'\nimport { PanelItems } from '../components/panel/items'\nimport { useTraversal } from '../contexts'\nimport { useCrudContext } from '../hooks/useCrudContext'\nimport { Icon } from '../components/ui/icon'\nimport { useEffect, useRef } from 'react'\nimport { useState } from 'react'\nimport { Select } from '../components/input/select'\nimport { SearchInput } from '../components/input/search_input'\nimport { Tag } from '../components/ui/tag'\nimport { parser } from '../lib/search'\nimport { EditableField } from '../components/fields/editableField'\nimport { useLocation } from '../hooks/useLocation'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\n\nconst tabs = {\n Groups: PanelItems,\n}\n\nexport function GroupToolbar() {\n const intl = useIntl()\n const Ctx = useTraversal()\n const ref = useRef(null)\n const [location, setLocation] = useLocation()\n const searchText = location.get('q')\n\n const onSearchQuery = (ev) => {\n const search = ev.target[0].value\n setLocation({ q: search, page: 0 })\n ev.preventDefault()\n }\n\n // cleanup form on state.search change\n useEffect(() => {\n if (!searchText || searchText === '') {\n ref.current.value = ''\n }\n }, [searchText])\n\n return (\n <>\n <div className=\"level-item\">\n <form action=\"\" className=\"form\" onSubmit={onSearchQuery}>\n <div className=\"field has-addons\">\n <div className=\"control\">\n <input\n ref={ref}\n type=\"text\"\n className=\"input is-size-7\"\n placeholder={intl.formatMessage(genericMessages.search)}\n data-test=\"inputFilterTest\"\n />\n </div>\n <div className=\"control\">\n <button\n className=\"button has-background-grey-lighter is-size-7\"\n type=\"submit\"\n data-test=\"btnInputFilter\"\n >\n <Icon icon=\"fas fa-search\" />\n </button>\n </div>\n </div>\n </form>\n </div>\n <button\n className=\"button is-primary\"\n onClick={() => Ctx.doAction('addItem', { type: 'Group' })}\n aria-haspopup=\"true\"\n aria-controls=\"dropdown-menu\"\n >\n <Icon icon=\"fas fa-users\" />\n <span>\n {intl.formatMessage({\n id: 'add_group',\n defaultMessage: 'Add Group',\n })}\n </span>\n </button>\n </>\n )\n}\n\nexport function GroupsCtx(props) {\n return (\n <TabsPanel\n tabs={tabs}\n currentTab=\"Groups\"\n rightToolbar={<GroupToolbar />}\n {...props}\n />\n )\n}\n\nconst sortParsed = parser(`_sort_asc=id`)\nconst searchParsed = parser('type_name=User')\n\nexport function GroupCtx() {\n const intl = useIntl()\n const { Ctx, patch } = useCrudContext()\n const [roles, setRoles] = useState([])\n\n useEffect(() => {\n async function getRoles() {\n const requestGetRoles = await Ctx.client.getRoles(Ctx.path)\n let roles = []\n\n if (requestGetRoles.ok) {\n roles = (await requestGetRoles.json()).map((role) => ({\n text: role,\n value: role,\n }))\n }\n setRoles(roles)\n }\n getRoles()\n }, [])\n\n const handleResponse = async (isError, message, errorMessage) => {\n if (!isError) {\n Ctx.flash(message, 'success')\n Ctx.refresh()\n } else {\n Ctx.flash(\n intl.formatMessage(genericMessages.failed_to_update, {\n error: errorMessage,\n }),\n 'danger'\n )\n }\n }\n\n const addRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.concat(role),\n })\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'role_added_to_group',\n defaultMessage: 'Role {role} added to group',\n },\n { role }\n ),\n errorMessage\n )\n }\n\n const removeRole = async (role) => {\n const { isError, errorMessage } = await patch({\n user_roles: Ctx.context.user_roles.filter((r) => r !== role),\n })\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'role_removed_from_group',\n defaultMessage: 'Role {role} removed from group',\n },\n { role }\n ),\n errorMessage\n )\n }\n\n const addUser = async (newUserId) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = true\n })\n data[newUserId] = true\n const {\n isError,\n errorMessage,\n } = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'user_added_to_group',\n defaultMessage: 'User {user} added to group',\n },\n { user: newUserId }\n ),\n errorMessage\n )\n }\n\n const removeUser = async (userToRemove) => {\n const data = {}\n Ctx.context.users.forEach((user) => {\n data[user] = userToRemove !== user\n })\n const {\n isError,\n errorMessage,\n } = await Ctx.client.rest.patch(\n `${Ctx.containerPath}@groups/${Ctx.context['@name']}`,\n { users: data }\n )\n handleResponse(\n isError,\n intl.formatMessage(\n {\n id: 'user_removed_from_group',\n defaultMessage: 'User {user} removed from group',\n },\n { user: userToRemove }\n ),\n errorMessage\n )\n }\n\n return (\n <div className=\"container group-view\">\n <h2 className=\"title is-size-4\">\n <Icon icon=\"fas fa-users\"></Icon>\n <span>\n \n {intl.formatMessage({\n id: 'group',\n defaultMessage: 'Group',\n })}\n </span>\n </h2>\n <hr />\n <div className=\"columns\">\n <div className=\"column is-4\">\n <label className=\"label\">\n {intl.formatMessage(genericMessages.title)}{' '}\n </label>\n <EditableField\n field=\"title\"\n modifyContent\n value={Ctx.context.title}\n />\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">\n {intl.formatMessage({\n id: 'roles',\n defaultMessage: 'Roles',\n })}\n </h3>\n <p>\n {intl.formatMessage({\n id: 'add_role',\n defaultMessage: 'Add a Role',\n })}\n </p>\n <Select\n options={roles.filter(\n (role) => !Ctx.context.user_roles.includes(role.value)\n )}\n appendDefault\n onChange={addRole}\n />\n <hr />\n {Ctx.context.user_roles.map((urole) => (\n <p className=\"control\" key={`roles_${urole}`}>\n <Tag\n name={urole}\n onRemove={() => removeRole(urole)}\n size=\"is-small\"\n id={`roles_${urole}`}\n />\n </p>\n ))}\n </div>\n <div className=\"column is-4 is-size-7\">\n <h3 className=\"title is-size-6\">\n {intl.formatMessage({\n id: 'users',\n defaultMessage: 'Users',\n })}\n </h3>\n <p>{intl.formatMessage(genericMessages.add_user)}</p>\n <SearchInput\n path={`${Ctx.containerPath}/users/`}\n qs={[...searchParsed, ...sortParsed]}\n traversal={Ctx}\n onChange={addUser}\n btnClass=\"is-small\"\n />\n <hr />\n {Ctx.context.users.map((user) => (\n <p className=\"control\" key={`user_${user}`}>\n <Tag\n name={user}\n onRemove={() => removeUser(user)}\n size=\"is-small\"\n id={`user_${user}`}\n />\n </p>\n ))}\n </div>\n </div>\n </div>\n )\n}\n","import { Component } from 'react'\nimport { IntlShape, injectIntl } from 'react-intl'\n\nconst style = { color: '#F44336', fontSize: 20, paddingBottom: 20 }\n\nclass ErrorBoundaryComponent extends Component<\n { intl: IntlShape; children: React.ReactNode },\n { hasError: boolean; errorMsg: string; errorStack: string }\n> {\n state = {\n hasError: false,\n errorMsg: '',\n errorStack: '',\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n errorMsg: error.message,\n errorStack: errorInfo.componentStack,\n })\n }\n\n render() {\n const { hasError, errorMsg, errorStack } = this.state\n\n if (hasError) {\n return (\n <div className=\"box main-panel\">\n <div style={style}>\n {this.props.intl.formatMessage({\n id: 'something_went_wrong',\n defaultMessage: 'Something went wrong.',\n })}\n </div>\n {errorMsg && (\n <p>\n <b>{errorMsg}</b>\n </p>\n )}\n {errorStack && <p>{errorStack}</p>}\n </div>\n )\n }\n\n return this.props.children\n }\n}\n\nexport const ErrorBoundary: React.ComponentType<{\n intl: IntlShape\n children: React.ReactNode\n}> = injectIntl(ErrorBoundaryComponent)\n","import { Icon } from './ui/icon'\nimport { useIntl } from 'react-intl'\n\nexport function NotAllowed() {\n const intl = useIntl()\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-danger\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-ban\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">\n {intl.formatMessage({\n id: 'not_allowed',\n defaultMessage: 'Not Allowed',\n })}\n </h1>\n </div>\n )\n}\n","import { Icon } from './ui/icon'\nimport { useIntl } from 'react-intl'\n\nexport function NotFound() {\n const intl = useIntl()\n return (\n <div className=\"box not-allowed\">\n <h1 className=\"title has-text-grey\" style={{ fontSize: '4rem' }}>\n <Icon icon=\"fas fa-dizzy\" />\n </h1>\n <h1 className=\"title has-text-grey-darker\">\n {intl.formatMessage({\n id: 'not_found',\n defaultMessage: '404. Not Found',\n })}\n </h1>\n </div>\n )\n}\n","import { useTraversal } from '../contexts'\nimport { useLocation } from '../hooks/useLocation'\n\nexport function Path() {\n const ctx = useTraversal()\n const [, navigate] = useLocation()\n\n const segments = ctx.path.replace(/\\/$/, '').split('/')\n const links = buildPaths(segments)\n\n if (segments.length === 1) {\n return false\n }\n\n return (\n <nav className=\"breadcrumb\" aria-label=\"breadcrumbs\">\n <ul>\n {segments.map((item, indx) => {\n const path = links[indx]\n const onClick = (e) => {\n if (e.ctrlKey || e.metaKey) return\n e.preventDefault()\n navigate({ path }, true)\n }\n\n return indx === 0 ? (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-home`}\n >\n <span className=\"icon\">\n <i className=\"fas fa-home\"></i>\n </span>\n </a>\n </li>\n ) : (\n <li key={indx}>\n <a\n href={path}\n onClick={onClick}\n data-test={`breadcrumbItemTest-${item.toLowerCase()}`}\n >\n {item}\n </a>\n </li>\n )\n })}\n </ul>\n </nav>\n )\n}\n\nconst buildPaths = (segments) => {\n let current = ''\n const results = []\n segments.map((item, indx) => {\n if (indx === 0) {\n current += '/'\n } else {\n current += item + '/'\n }\n results.push(current)\n return item\n })\n return results\n}\n","import { FolderCtx } from '../views/folder'\nimport { ItemCtx } from '../views/item'\nimport { ApplicationCtx } from '../views/application'\nimport { DatabaseCtx } from '../views/application'\nimport { ContainerCtx } from '../views/container'\nimport { UsersCtx } from '../views/users'\nimport { UserCtx } from '../views/users'\nimport { CopyItems } from '../actions/copy_items'\nimport { CopyItem } from '../actions/copy_item'\nimport { MoveItems } from '../actions/move_items'\nimport { MoveItem } from '../actions/move_item'\nimport { RemoveItems } from '../actions/remove_items'\nimport { RemoveItem } from '../actions/remove_item'\nimport { AddItem } from '../actions/add_item'\nimport { ChangePassword } from '../actions/change_pass'\nimport { BaseForm } from '../forms/base'\nimport { UserForm } from '../forms/users'\nimport { IAttachment } from '../components/behaviors/iattachment'\nimport { IDublinCore } from '../components/behaviors/idublincore'\nimport { IMultiAttachment } from '../components/behaviors/imultiattachment'\nimport { IImageAttachment } from '../components/behaviors/iimageattachment'\nimport { IMultiImageAttachment } from '../components/behaviors/imultiimageattachment'\nimport { IMultiImageOrderedAttachment } from '../components/behaviors/imultiimageorderedattachment'\nimport { IWorkflow } from '../components/behaviors/iworkflow'\nimport { GroupsCtx } from '../views/groups'\nimport { GroupCtx } from '../views/groups'\nimport { ErrorBoundary } from '../components/error_boundary'\nimport React from 'react'\nimport { NotAllowed } from '../components/notallowed'\nimport { NotFound } from '../components/notfound'\nimport { Path } from '../components/path'\nimport { EditComponent } from '../components/fields/editComponent'\nimport { RenderFieldComponent } from '../components/fields/renderField'\nimport { GuillotinaSchema } from '../types/guillotina'\n\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.FC | React.ComponentType\n }\n actions: {\n [key: string]: React.FC\n }\n forms: {\n [key: string]: React.FC\n }\n behaviors: {\n [key: string]: React.FC\n }\n itemsColumn: {\n [key: string]: () => {\n label: string\n key: string\n isSortable?: boolean\n child: React.ReactNode\n }[]\n }\n schemas: {\n [key: string]: GuillotinaSchema\n }\n properties: {\n [key: string]: React.FC\n }\n components: {\n [key: string]: React.FC\n }\n searchEngineQueryParamsFunction: {\n [key: string]: string\n }\n fieldsToFilter: {\n [key: string]: string[]\n }\n defaultSortValue: {\n [key: string]: {\n direction: 'asc' | 'des'\n field: string\n }\n }\n}\nconst registry: IRegistry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n 'guillotina.contrib.image.behaviors.IImageAttachment': IImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment': IMultiImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment': IMultiImageOrderedAttachment,\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior': IWorkflow,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n RenderFieldComponent: RenderFieldComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n fieldsToFilter: {\n UserManager: ['id', 'email', 'user_name'],\n },\n defaultSortValue: {},\n}\n\nconst get = (key, param, fallback = undefined) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (context, path, fallback = undefined) => {\n if (!context) return\n // console.log(\"Component for path\", path)\n // lookup by path\n if (registry.paths[path]) {\n return registry.paths[path]\n }\n // by type\n if (registry.views[context['@type']]) {\n return registry.views[context['@type']]\n }\n if (fallback) {\n return fallback\n }\n return defaultComponent(context)\n}\n\nconst getItemsColumn = (type) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getForm = (type: string, fallback: React.FC = BaseForm) => {\n return registry.forms[type] || fallback\n}\n\nconst getAction = (type: string, fallback: React.FC = undefined) => {\n return registry.actions[type] || fallback\n}\n\nconst getBehavior = (type: string, fallback: React.FC) => {\n return registry.behaviors[type] || fallback\n}\n\nconst getProperties = (type: string) => {\n return registry.properties[type] || {}\n}\n\nconst getSchemas = (type: string) => {\n return registry.schemas[type] || {}\n /*\n filters: [\n {\n attribute_key: string,\n label: string,\n type: 'select' | 'input'\n vocabulary: string | undefined\n values: {[key:string]:any}[]\n }\n ]\n */\n}\n\nconst getFieldsToFilter = (type: string, fallback) => {\n return registry.fieldsToFilter[type] || fallback\n}\n\nconst getDefaultSortValue = (type: string, fallback) => {\n return registry.defaultSortValue[type] || fallback\n}\n\nexport const defaultComponent = (context) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data) {\n // if data is provided we need to merge it into actual registry\n const ref = React.useRef<unknown>()\n if (data && !ref.current) {\n ref.current = true\n Object.keys(data).map(\n (key) => (registry[key] = { ...registry[key], ...data[key] })\n )\n }\n\n return {\n registry,\n get,\n getForm,\n getComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n getFieldsToFilter,\n getDefaultSortValue,\n getSchemas,\n }\n}\n\n/*\n\nconst registry = {\n paths: {\n \"/db/guillotina/tags/\": TagsContext\n },\n forms: {\n Tag: AddTagForm\n }\n}\n\n\n<guillotina registry={registry} />\n\n\n*/\n","import { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\nexport interface GuillotinaGlobalState {\n path: string\n loading: boolean\n context: GuillotinaCommonObject\n flash: {\n message: string\n type: string\n }\n action: {\n action: string\n params: IndexSignature\n }\n permissions: IndexSignature\n errorStatus: number\n registry: IndexSignature\n refresh: number\n}\nexport const initialState: GuillotinaGlobalState = {\n path: '',\n loading: false,\n context: undefined,\n flash: {\n message: undefined,\n type: undefined,\n },\n action: {\n action: undefined,\n params: undefined,\n },\n permissions: undefined,\n errorStatus: undefined,\n registry: {},\n refresh: undefined,\n}\n\nexport function guillotinaReducer(state, action) {\n switch (action.type) {\n case 'SET_PATH':\n return { ...state, path: action.payload, loading: true }\n\n case 'SET_CONTEXT':\n return {\n ...state,\n ...action.payload,\n errorStatus: undefined,\n loading: false,\n }\n\n case 'SET_ERROR':\n return { ...state, errorStatus: action.payload, loading: false }\n\n case 'SET_FLASH':\n return { ...state, ...action.payload }\n\n case 'CLEAR_FLASH':\n return {\n ...state,\n flash: {\n message: undefined,\n type: undefined,\n },\n }\n case 'SET_ACTION':\n return { ...state, action: action.payload }\n case 'CLEAR_ACTION':\n return { ...state, action: { action: undefined, params: undefined } }\n\n case 'REFRESH':\n return {\n ...state,\n refresh: Date.now(),\n loading: !action.payload.transparent,\n }\n\n case 'APPLY':\n return { ...state, context: { ...state.context, ...action.payload } }\n\n default:\n return state\n }\n}\n\nexport interface IColumn {\n key: string\n label: string\n isSortable: string\n child: (\n model: ItemModel,\n link: () => void,\n search: string\n ) => React.ReactElement\n}\n","import React from 'react'\nimport { useReducer } from 'react'\nimport { useEffect } from 'react'\nimport { Flash } from './flash'\nimport { TraversalProvider, useGuillotinaClient } from '../contexts'\nimport { useConfig } from '../hooks/useConfig'\nimport { IRegistry, useRegistry } from '../hooks/useRegistry'\nimport { useLocation } from '../hooks/useLocation'\nimport { guillotinaReducer } from '../reducers/guillotina'\nimport { initialState } from '../reducers/guillotina'\nimport { Loading } from './ui/loading'\nimport { IntlProvider } from 'react-intl'\nimport langCA from '../locales/compiled/ca.json'\nimport langES from '../locales/compiled/es.json'\nimport langEN from '../locales/compiled/en.json'\nimport { Auth } from '../lib/auth'\nimport { IndexSignature } from '../types/global'\n\nfunction loadLocaleData(locale) {\n switch (locale) {\n case 'ca':\n return langCA\n case 'es':\n return langES\n default:\n return langEN\n }\n}\n\ninterface GuillotinaProps {\n auth: Auth\n locale: string\n url: string\n config: IndexSignature\n registry: IRegistry\n}\nexport function Guillotina({ auth, locale, ...props }: GuillotinaProps) {\n const messages = loadLocaleData(locale)\n const url = props.url || 'http://localhost:8080' // without trailing slash\n const config = props.config || {}\n const client = useGuillotinaClient()\n\n const { Permissions } = useConfig(config)\n const registry = useRegistry(props.registry || {})\n // Location is cooked routing solution (only uses search params)\n const [location] = useLocation()\n\n // if there is no path provided just go to root\n const searchPath = location.get('path') || '/'\n if (searchPath && searchPath !== '') {\n initialState.path = searchPath\n }\n\n const [state, dispatch] = useReducer(guillotinaReducer, initialState)\n\n const { path, refresh } = state\n\n useEffect(() => {\n dispatch({ type: 'SET_PATH', payload: searchPath })\n }, [searchPath])\n\n useEffect(() => {\n const initContext = async () => {\n const data = await client.getContext(path)\n if (data.status === 401) {\n dispatch({ type: 'SET_ERROR', payload: 'notallowed' })\n return\n } else if (data.status === 404) {\n dispatch({ type: 'SET_ERROR', payload: 'notfound' })\n return\n }\n const context = await data.json()\n const pr = await client.canido(path, Permissions)\n const permissions = await pr.json()\n dispatch({ type: 'SET_CONTEXT', payload: { context, permissions } })\n }\n initContext()\n }, [path, refresh, client])\n\n const ErrorBoundary = registry.get('views', 'ErrorBoundary')\n const NotAllowed = registry.get('views', 'NotAllowed')\n const NotFound = registry.get('views', 'NotFound')\n const Path = registry.get('components', 'Path')\n\n const contextData = {\n url,\n client,\n auth,\n state,\n dispatch,\n registry,\n flash: config.flash,\n }\n\n const { action, errorStatus, permissions } = state\n const Main = registry.getComponent(state.context, path)\n const Action = action.action ? registry.getAction(action.action) : null\n\n return (\n <IntlProvider locale={locale} defaultLocale=\"en\" messages={messages}>\n <ErrorBoundary>\n {!errorStatus && (\n <TraversalProvider {...contextData}>\n {permissions && (\n <React.Fragment>\n {action.action && <Action {...action.params} />}\n <div className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <Path />\n </div>\n </div>\n </div>\n <Flash />\n {Main && (\n <ErrorBoundary>\n <div className=\"box main-panel\">\n {state.loading && <Loading />}\n {!state.loading && <Main state={state} />}\n </div>\n </ErrorBoundary>\n )}\n {/* <p>Guillotina {JSON.stringify(state.context)}</p> */}\n </React.Fragment>\n )}\n </TraversalProvider>\n )}\n {errorStatus === 'notallowed' && <NotAllowed />}\n {errorStatus === 'notfound' && <NotFound />}\n </ErrorBoundary>\n </IntlProvider>\n )\n}\n","import { useState } from 'react'\nimport { Auth } from '../lib/auth'\nimport { Icon } from './ui/icon'\nimport { classnames } from '../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n onLogout: () => void\n auth: Auth\n}\nexport function Layout({ children, onLogout, auth }: Props) {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const doLogout = () => {\n auth.logout()\n onLogout()\n }\n\n return (\n <>\n <header>\n <nav className=\"navbar\" role=\"navigation\" aria-label=\"main navigation\">\n <div className=\"navbar-brand\" style={{ alignItems: 'center' }}>\n <a className=\"navbar-item\" href=\"/\">\n <img src=\"/logo.svg\" alt=\"Guillotina logo\" height=\"80\" />\n </a>\n <div\n id=\"burger\"\n role=\"button\"\n className={classnames([\n 'navbar-burger',\n 'burger',\n isMenuOpen && 'is-active',\n ])}\n aria-label=\"menu\"\n aria-expanded=\"false\"\n data-target=\"navbarmenu\"\n onClick={() => setIsMenuOpen(!isMenuOpen)}\n >\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n <span aria-hidden=\"true\"></span>\n </div>\n </div>\n <div\n id=\"navbarmenu\"\n className={classnames(['navbar-menu', isMenuOpen && 'is-active'])}\n >\n <div className=\"navbar-start\"></div>\n <div className=\"navbar-end\">\n <div className=\"navbar-item\">\n {auth.isLogged && (\n <div className=\"buttons\">\n <button className=\"button is-size-7\" onClick={doLogout}>\n <Icon icon=\"fas fa-sign-out-alt\" />\n <span>Logout</span>\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </nav>\n </header>\n <section className=\"section main\">\n <div className=\"container\">\n <div className=\"column\">{children}</div>\n </div>\n </section>\n </>\n )\n}\n","import React, { useRef, useEffect } from 'react'\nimport useSetState from '../hooks/useSetState'\nimport { Auth } from '../lib/auth'\n\nconst ERRORS = {\n failed_to_fetch: 'Failed to fetch data: Backend not running?',\n invalid_credentials: 'Failed! Invalid credentials',\n}\ninterface State {\n username: string\n password: string\n loading: boolean\n errors: string\n}\nconst initialState = {\n username: '',\n password: '',\n loading: undefined,\n errors: undefined,\n}\n\ninterface Props {\n currentSchema: string\n setCurrentSchema: (schema: string) => void\n schemas: string[]\n auth: Auth\n onLogin?: () => void\n}\nexport const Login = ({\n currentSchema,\n setCurrentSchema,\n schemas,\n auth,\n onLogin,\n}: Props) => {\n const [state, setState] = useSetState<State>(initialState)\n const inputRef = useRef(null)\n\n useEffect(() => {\n if (inputRef) {\n inputRef.current.focus()\n }\n }, [inputRef])\n\n const doLogin = async (ev) => {\n ev.preventDefault()\n setState({ loading: true, errors: undefined })\n const { username, password } = state\n\n if (currentSchema !== '') {\n auth.setAccount(currentSchema)\n }\n const res = await auth.login(username, password)\n\n if (!res) {\n setState({ errors: auth.errors, loading: false })\n return\n }\n\n if (onLogin) {\n onLogin()\n }\n }\n\n return (\n <React.Fragment>\n <form\n className=\"login__form\"\n action=\"\"\n onSubmit={doLogin}\n data-test=\"formLoginTest\"\n >\n <div className=\"field\">\n <label className=\"label\">Username:</label>\n <input\n type=\"text\"\n className=\"input\"\n placeholder=\"Username\"\n onChange={(e) => setState({ username: e.target.value })}\n value={state.username}\n ref={inputRef}\n data-test=\"inputUsernameLoginTest\"\n />\n </div>\n <div className=\"field\">\n <label className=\"label\">Password:</label>\n <input\n type=\"password\"\n className=\"input\"\n placeholder=\"Password\"\n onChange={(e) => setState({ password: e.target.value })}\n value={state.password}\n data-test=\"inputPasswordLoginTest\"\n />\n </div>\n {schemas && schemas.length > 1 && (\n <div className=\"field\">\n <label className=\"label\">Schema:</label>\n <div className=\"select\">\n <select\n data-test=\"selectSchemaTest\"\n onChange={(e) => setCurrentSchema(e.target.value)}\n >\n {schemas.map((s) => (\n <option value={s} key={s}>\n {s}\n </option>\n ))}\n </select>\n </div>\n </div>\n )}\n <div className=\"field\">\n <button\n className=\"button is-warning\"\n type=\"submit\"\n data-test=\"btnLoginTest\"\n >\n Login\n </button>\n </div>\n <div className=\"field\">\n {state.errors && (\n <p className=\"has-text-danger\">\n {ERRORS[state.errors] || 'Generic error'}\n </p>\n )}\n </div>\n </form>\n </React.Fragment>\n )\n}\n","import { useState, useEffect } from 'react'\nimport { Form } from '../components/input/form'\nimport { stringToSlug } from '../lib/helpers'\nimport { useTraversal } from '../contexts'\nimport useSetState from '../hooks/useSetState'\nimport { useIntl } from 'react-intl'\nimport { genericMessages } from '../locales/generic_messages'\nimport { IndexSignature } from '../types/global'\n\nconst ignoreFiels = []\nconst extraFields = ['title']\n\ninterface Props {\n onSubmit: (data: { [key: string]: any }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n type: string\n}\ninterface State {\n data: any\n loading: boolean\n error: any\n formFields: string[]\n}\nexport function RequiredFieldsForm({\n loading,\n onSubmit,\n actionName,\n title,\n dataTest,\n type,\n}: Props) {\n const intl = useIntl()\n const Ctx = useTraversal()\n\n const EditComponent = Ctx.registry.get('components', 'EditComponent')\n\n const [formData, setFormData] = useState<IndexSignature>({})\n const [errors, setErrors] = useState({})\n\n const [schema, setSchema] = useSetState<State>({\n data: undefined,\n loading: false,\n error: undefined,\n formFields: [],\n })\n\n useEffect(() => {\n const getSchema = async () => {\n if (!schema.loading && !schema.data && !schema.error) {\n try {\n setSchema({ loading: true })\n const dataJson = await Ctx.client.getTypeSchema(Ctx.path, type)\n setSchema({\n loading: false,\n data: dataJson,\n formFields: [...dataJson.required, ...extraFields],\n })\n } catch (err) {\n setSchema({ loading: false, error: err })\n }\n }\n }\n getSchema()\n }, [schema])\n\n const submit = () => {\n const currentErrors = {}\n\n schema.formFields.forEach((key) => {\n if (!formData[key]) {\n currentErrors[key] = intl.formatMessage(\n genericMessages.field_is_required\n )\n }\n })\n\n if (Object.keys(currentErrors).length > 0) {\n setErrors(currentErrors)\n return\n }\n\n onSubmit({ id: formData.uuid, ...formData })\n }\n\n return (\n <Form title={title} onSubmit={submit} dataTest={dataTest}>\n {schema &&\n schema.data &&\n !schema.loading &&\n schema.formFields.map((key) => {\n if (!ignoreFiels.includes(key)) {\n const value = schema.data.properties[key]\n return (\n <EditComponent\n key={key}\n id={key}\n placeholder={value?.title ?? ''}\n className=\"\"\n required\n schema={schema.data.properties[key]}\n setValue={(ev) => {\n if (key === 'title') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n [key]: ev,\n })\n } else if (key === 'uuid') {\n setFormData({\n ...formData,\n uuid: stringToSlug(ev),\n })\n } else {\n setFormData({ ...formData, [key]: ev })\n }\n }}\n error={errors[key]}\n dataTest={`${key}TestInput`}\n val={key in formData ? formData[key] : ''}\n />\n )\n }\n return null\n })}\n\n <div className=\"level level-right\">\n <button\n type=\"submit\"\n className={`button is-success ${loading ? 'is-loading' : ''}`}\n data-test=\"formBaseBtnTestSubmit\"\n >\n {actionName || intl.formatMessage(genericMessages.add)}\n </button>\n </div>\n </Form>\n )\n}\n","import jwt_decode from 'jwt-decode'\nimport { IndexSignature } from '../types/global'\n\nexport class Auth {\n maxRetry = 1\n retryRefresh = 0\n events = {}\n url: string\n base_url: string\n errors: string\n\n constructor(url) {\n this.url = url\n this.base_url = url\n this.errors = undefined\n }\n\n getUrl(endpoint) {\n return `${this.url}${endpoint}`\n }\n\n setAccount(account) {\n this.url = this.base_url + account\n }\n\n async login(username, password) {\n const url = this.getUrl('@login')\n try {\n const data = await fetch(url, {\n method: 'post',\n body: JSON.stringify({\n username: username,\n password: password,\n }),\n })\n if (data.status === 200) {\n const credentials = await data.json()\n this.storeAuth(credentials)\n return true\n } else {\n this.errors = 'invalid_credentials'\n }\n } catch (e) {\n this.errors = 'failed_to_fetch'\n return false\n }\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n return false\n }\n\n get isLogged() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token, expires] = this._getToken()\n if (!token || !expires) {\n return false\n }\n if (this.isExpired(expires)) {\n return false\n }\n return true\n }\n\n get username() {\n if (typeof localStorage === 'undefined') {\n return false\n }\n const [token] = this._getToken()\n const data: IndexSignature = jwt_decode(token)\n console.log(token)\n return data.id\n }\n\n storeAuth(data) {\n localStorage.setItem('auth', data.token)\n localStorage.setItem(\n 'auth_expires',\n new Date(data.exp).getTime().toString()\n )\n }\n\n cleanAuth() {\n localStorage.removeItem('auth')\n localStorage.removeItem('auth_expires')\n }\n\n logout() {\n this.cleanAuth()\n }\n\n async refreshToken() {\n console.log('refresh!!!')\n this.retryRefresh++\n const data = await fetch(this.getUrl('@login-renew'), {\n headers: this.getHeaders(),\n method: 'post',\n })\n if (data.status === 401) {\n // invalid token\n this.cleanAuth()\n this.logout()\n return\n }\n const res = await data.json()\n console.log('refresh data', res)\n this.storeAuth(res)\n console.log('token refreshed')\n this.retryRefresh = 0\n return res.token\n }\n\n willExpire(expiration) {\n const now = new Date().getTime()\n if (parseInt(expiration) * 1000 < now + 10 * 1000) {\n return true\n }\n return false\n }\n\n isExpired(expiration) {\n const now = new Date().getTime()\n if (parseInt(expiration) * 1000 > now) {\n return false\n }\n return true\n }\n\n _getToken() {\n return [localStorage.getItem('auth'), localStorage.getItem('auth_expires')]\n }\n\n getToken() {\n const [token] = this._getToken()\n return token\n }\n\n getHeaders() {\n const [authToken, expires] = this._getToken()\n if (!authToken) return {}\n\n if (this.willExpire(expires) && this.retryRefresh < this.maxRetry) {\n // eslint-disable-next-line no-extra-semi\n ;(async () => await this.refreshToken())()\n }\n\n return {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: 'Bearer ' + authToken,\n }\n }\n}\n"],"names":["AuthContext","createContext","ClientContext","Traversal","flash","props","dispatch","state","client","registry","url","auth","refresh","transparent","type","payload","apply","data","message","window","scrollTo","top","left","behavior","clearFlash","doAction","action","params","cancelAction","hasPerm","permission","permissions","filterTabs","tabs","tabsPermissions","result","Object","keys","forEach","item","perm","path","slice","context","getContainerFromPath","TraversalContext","TraversalProvider","children","_jsx","Provider","value","useTraversal","useContext","ClientProvider","useGuillotinaClient","genericMessages","defineMessages","loading","id","defaultMessage","remove","install","delete","move_to","copy_to","behaviors","static","disable","enable","enabled","available","invalid_form_data","invalid_form","select_principal","select_role","select_permissions","operation","save","choose","property","create","upload","image","error_provide_key_name","mandatory_field","error_in_field","field_updated","field_deleted","can_not_delete_field","cancel","open","download","search","no_results","load_more","add_type","confirm","field_is_required","title","add","not_implemented","failed_to_update","add_user","role","setting","genericFileMessages","error_file_key_name","error_upload_file","error_upload_file_size","image_uploaded","file_uploaded","failed_delete_file","image_deleted","confirm_message_delete_file","confirm_message_delete_image","no_images_uploaded","no_files_uploaded","upload_an_image","upload_a_file","classnames","classNames","filter","Boolean","join","trim","noop","current","generateUID","prefix","toQueryString","map","key","encodeURIComponent","base64ToArrayBuffer","base64","binaryString","atob","binaryLen","length","bytes","Uint8Array","i","ascii","charCodeAt","stringToSlug","str","replace","toLowerCase","from","to","l","RegExp","charAt","sleep","ms","Promise","resolve","setTimeout","getActionsObject","intl","multiple","DELETE","text","formatMessage","perms","MOVE","COPY","Button","className","onClick","disabled","dataTest","css","concat","split","Modal","isActive","setActive","usePortal","Portal","_jsxs","Confirm","onCancel","onConfirm","useIntl","style","marginTop","PathTree","defaultPath","onSubmit","e","preventDefault","target","display","defaultValue","useSetState","initialState","useState","set","setState","useCallback","patch","prevState","assign","Function","initial","undefined","isError","errorMessage","response","getErrorMessage","dataError","details","reason","processResponse","res","ready_body","status","json","Ctx","endpoint","body","newState","console","error","del","post","get","useCrudContext","AddItem","doSubmit","form","formData","getForm","Form","onError","err","log","actionName","Permissions","Config","DisabledTypes","PageSize","DelayActions","SearchEngine","fieldHaveDeleteButton","schema","widget","calculated","addConfig","additional","original","rest","Array","isArray","useConfig","cfg","ref","useRef","RemoveItems","removeItems","errors","setLoading","actions","items","ok","push","all","errorstr","JSON","stringify","last","itemsNames","Checkbox","classNameInput","indeterminate","checked","placeholder","onChange","inputRef","useEffect","updateState","ev","htmlFor","ErrorZone","propTypes","PropTypes","node","string","applyValidators","validators","validation","func","useInput","validator","hasError","onUpdate","onBlur","onFocus","REGEX_EMAIL","REGEX_URL","REGEX_HEX_COLOR","REGEX_NUMBER","isEmpty","maxLength","limit","minLength","isEmail","test","isURL","isHexColor","isNumber","notEmpty","Input","forwardRef","icon","iconPosition","errorZoneClassName","autoComplete","required","autofocus","onKeyUp","validatorFn","handlers","uid","mounted","setMounted","focus","theError","statusClasses","cssControl","displayName","Icon","align","addClass","EmailInput","onReset","handleSubmit","event","PasswordInput","formComponents","password","boolean","email","FormBuilder","exclude","remotes","submitButton","properties","values","fields","x","includes","element","field","GetTag","Tag","children_","Children","child","isValidElement","cloneElement","changes","Select","options","size","classWrap","appendDefault","selectValue","selectedOptions","cssWrap","index","toString","formatDate","d","Date","minutes","getMinutes","getDate","getMonth","getFullYear","getHours","obj","defValue","pathArray","match","reduce","prevObj","getNewId","suffix","rgx","r","num","parseInt","useVocabulary","vocabularyName","traversal","vocabulary","setVocabulary","getPath","getVocabulary","dataJson","SelectVocabulary","val","getOptions","vocData","token","getProps","currentValue","setURLParams","p","history","pushState","clean","URLSearchParams","_key","useLocation","currentSearchParams","update","prevPath","patchHistoryEvents","checkForUpdates","pathname","events","addEventListener","removeEventListener","navigate","param","patched","args","Event","arguments","dispatchEvent","location","Link","aRef","model","aStyle","textDecoration","color","stopPropagation","actAsLink","href","ctrlKey","metaKey","altKey","shiftKey","button","TdLink","link","click","Loading","name","onRemove","Delete","Table","headers","parsedClassName","idx","Notification","isColor","RestClient","container","request","indexOf","startsWith","getHeaders","fetch","authToken","getToken","Accept","Authorization","method","put","filename","SEP","DEFAULT_FIELD","CLEANER","parser","qs","defaultField","Error","orParser","parsed","buildQs","lastKey","qsSplit","part","parsedQuery","cacheTypes","cacheSchemas","GuillotinaClient","pathContainsContainer","substring","parts","clearContainerFromPath","cleanPath","getContext","getQueryParamsPostresql","start","pageSize","withDepth","getQueryParamsElasticsearch","containerPath","objectPath","endsWith","getItemsColumn","smallcss","width","mediumcss","label","isSortable","m","React","Fragment","created","updated","applyCompat","member","items_count","items_total","prepare","query","canido","createObject","file","getTypeSchema","getAddons","installAddon","removeAddon","getGroups","getUsers","getPrincipals","groups","users","gr","usr","getRoles","getAllPermissions","req","resp","Set","extractPermissions","getTypes","types","getClient","lightFileReader","reader","FileReader","readAsArrayBuffer","onloadend","fileData","normalize","FileUpload","changed","files","fileToUpload","Textarea","rows","defaultEvents","on","off","useClickAway","onClickAway","savedCallback","handler","el","contains","eventName","document","debounce","wait","timeout","later","clearTimeout","page","SearchInput","queryCondition","btnClass","dataTestWrapper","dataTestSearchInput","dataTestItem","renderTextItemOption","typeNameQuery","labelProperty","setOptions","isOpen","setIsOpen","searchTerm","setSearchTerm","wrapperRef","valueLabel","setValueLabel","getHeight","maxHeight","innerHeight","getBoundingClientRect","delayedQuery","handleSearch","inicializeLabels","searchTermQs","searchTermParsed","getSearch","fnName","qsParsed","typeNameParsed","newValuesLabel","sortParsed","newItems","renderTextItemOptionFn","currentTarget","relatedTarget","HTMLElement","blur","onMouseDown","SearchInputList","valuesLabel","setValuesLabels","isLoadingData","setIsLoadingData","tag","InputList","inputValue","setInputValue","addTags","Dropdown","isRight","optionDisabledWhen","setIsActive","position","option","cursor","opacity","backgroundColor","EditableField","ns","modifyContent","isEdit","setEdit","setValue","EditComponent","RenderFieldComponent","canModified","saveField","unescape","dataPatch","deleteField","enum","DownloadField","getField","downloadFile","blob","Blob","content_type","URL","createObjectURL","createElement","setAttribute","appendChild","revokeObjectURL","parentNode","removeChild","plain","RenderField","Widget","FieldValue","DEFAULT_VALUE_NO_EDITABLE_FIELD","getDefaultValueEditableField","SearchRenderField","valuesLabels","DEFAULT_VALUE_EDITABLE_FIELD","fetchData","valuesToSearch","getRenderValue","VocabularyRenderField","getRenderProps","renderProps","vocabularyValue","find","toLocaleString","queryPath","subSchema","requiredFields","getInputType","IAttachment","IMultiAttachment","fileKey","setFileKey","setFile","fileKeyToDelete","setFileKeyToDelete","setError","uploadFile","deleteFile","colSpan","_sizesImages","pact","prototype","callback","_this","onRejected","IImageAttachment","sizesImages","SizeImages","showConfirmToDelete","setShowConfirmToDelete","endpointSize","gap","bind","observer","s","v","onFulfilled","thenable","IMultiImageAttachment","StrictModeDroppable","droppableId","setEnabled","animation","requestAnimationFrame","cancelAnimationFrame","Droppable","o","reorder","list","startIndex","endIndex","splice","removed","then","_cycle","array","_settle","messages","failed_to_sort_images","images_sorted","IMultiImageOrderedAttachment","onDragEnd","destination","source","resultSorted","sortedList","setSortedList","uuidv4","DragDropContext","provided","innerRef","droppableProps","Draggable","draggableId","providedChild","borderTop","draggableProps","dragHandleProps","base","local","roleperm","prinperm","prinrole","inherit","Sharing","getRole","principal","getPrinroles","ItemModel","icons","type_name","creation_date","modification_date","status_changed_ok","status_changed_error","confirm_message","current_state","IWorkflow","loadDefinition","workflow","setDefinition","definition","workflowAction","setWorkflowAction","currentState","doWorkflowAction","getStateTitle","translatedValue","locale","titleValue","transitions","transition","PanelActions","ACTIONS_OBJECT","some","onAction","actionKey","available_addons","no_available_addons_container","installed_addons","PanelAddons","setAction","pathPrefix","prepareData","addon","installed","addons","arrayToObject","PanelBehaviors","ops","enableBehavior","disableBehavior","dynamic","ItemsActionsCtx","selected","ItemsActionsProvider","setSelected","onSelectAllItems","onSelectOneItem","AllItemsCheckbox","ItemCheckbox","absId","ItemsActionsDropdown","every","Pagination","total","doPaginate","pager","maxPages","Math","ceil","currentPage","totalPages","totalItems","Item","RItem","columns","ItemTitle","SearchLabels","clearSearch","SearchOptionsLabels","renderValue","setRenderValue","defaultRenderValue","SearchVocabularyLabels","PanelItems","setLocation","filterSchema","getSchemas","filters","sort","sortDirection","searchParsed","fieldsToFilter","getFieldsToFilter","typeParsed","onSort","sort_direction","resultQueryParams","resultDynamicLocation","itemParam","attribute_key","filterParsed","controller","AbortController","defaultSortValue","getDefaultSortValue","direction","signal","abort","getIcon","tab","input_type","filterData","column","BehaviorsView","getBehavior","__behaviors__","GetBehavior","b","Cls","BehaviorNotImplemented","PropertiesButtonView","getProperties","Props","Buttons","Element","PropertiesView","Panels","_showProperties","_ignoreFields","PanelProperties","setSchema","showProperties","default","properties_default","ignoreFields","ignoreField","properties_ignore_fields","getSchema","prop","PermissionPrinperm","principals","operations","getMultiples","setter","savePermission","random","PermissionPrinrole","roles","PermissionRoleperm","role_permissions","no_role_permissions","no_principal_permissions","no_principal_roles","principal_permissions","principal_roles","allow","deny","allow_single","unset","add_permissions","select_type","PanelPermissions","ctx","reset","setReset","row","AddPermission","defaultOptions","init","principalsData","group","user","fullname","prepareAvailable","already","def","TagsWidget","noData","selectRef","setResult","availableData","addItem","marginBottom","CreateButton","anyNameFunction","ContextToolbar","loadTypes","AddButton","searchText","searchValue","setSearchValue","onSearchQuery","q","onSearchByType","typeText","Flash","FallbackTab","TabsPanel","currentTab","rightToolbar","fallback","setTab","CurrentComp","changeTab","Items","Properties","Behaviors","Actions","FolderCtx","ItemCtx","ApplicationCtx","databases","db","DatabaseCtx","containers","CreateContainer","ModalAddContainer","add_container","container_created","createContainer","idField","setId","isLoading","PanelNotImplemented","Addons","Registry","ContainerCtx","UserForm","$schema","definitions","username","useRemoteField","setRemote","updateRemote","Users","UsersToolbar","UsersCtx","UserCtx","user_groups","user_roles","getRolesAndGroups","requestGetGroups","requestGetRoles","updateObject","withError","CopyItems","copyItems","input","new_id","responses","CopyItem","copyItem","MoveItems","moveItems","MoveItem","moveItem","RemoveItem","removeItem","pass1","pass2","ChangePassword","setPerror","perror","setPass","n","BaseForm","setName","submit","setTitle","editableFields","IDublinCore","Groups","GroupToolbar","GroupsCtx","GroupCtx","setRoles","handleResponse","addRole","removeRole","addUser","newUserId","removeUser","userToRemove","urole","fontSize","paddingBottom","ErrorBoundaryComponent","errorMsg","errorStack","componentDidCatch","errorInfo","componentStack","render","Component","ErrorBoundary","injectIntl","NotAllowed","NotFound","Path","segments","links","buildPaths","indx","results","paths","views","Application","Database","Container","UserManager","User","Group","GroupManager","Folder","changePassword","forms","itemsColumn","schemas","components","searchEngineQueryParamsFunction","PostreSQL","Elasticsearch","getComponent","defaultComponent","funcCols","getAction","is_folderish","useRegistry","errorStatus","guillotinaReducer","now","loadLocaleData","langCA","langES","langEN","Guillotina","config","searchPath","useReducer","initContext","pr","contextData","Main","Action","IntlProvider","defaultLocale","Layout","onLogout","isMenuOpen","setIsMenuOpen","doLogout","logout","alignItems","src","alt","height","isLogged","ERRORS","failed_to_fetch","invalid_credentials","Login","currentSchema","setCurrentSchema","onLogin","doLogin","setAccount","login","ignoreFiels","extraFields","RequiredFieldsForm","setFormData","setErrors","formFields","currentErrors","uuid","Auth","maxRetry","retryRefresh","base_url","getUrl","account","localStorage","credentials","storeAuth","setItem","exp","getTime","cleanAuth","refreshToken","willExpire","expiration","isExpired","_getToken","getItem","expires","jwt_decode"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"react-gmi.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 { ItemModel } from '../models'\nimport { IndexSignature } from '../types/global'\nimport { GuillotinaCommonObject } from '../types/guillotina'\n\nexport interface GuillotinaGlobalState {\n path: string\n loading: boolean\n context?: GuillotinaCommonObject\n flash: {\n message?: string\n type?: string\n }\n action: {\n action?: string\n params?: IndexSignature\n }\n permissions: IndexSignature\n errorStatus?: 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\nexport interface IColumn {\n key: string\n label: string\n isSortable: string\n child: (\n model: ItemModel,\n link: () => void,\n search: string\n ) => React.ReactElement\n}\n","import { 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'\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: IndexSignature\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 { IntlShape } 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 intl: IntlShape,\n multiple = false\n): {\n [key: string]: {\n text: string\n perms: string[]\n action: string\n }\n} => ({\n DELETE: {\n text: intl.formatMessage(genericMessages.delete),\n perms: ['guillotina.DeleteContent'],\n action: multiple ? 'removeItems' : 'removeItem',\n },\n MOVE: {\n text: intl.formatMessage(genericMessages.move_to),\n perms: ['guillotina.MoveContent'],\n action: multiple ? 'moveItems' : 'moveItem',\n },\n COPY: {\n text: intl.formatMessage(genericMessages.copy_to),\n perms: ['guillotina.DuplicateContent'],\n action: multiple ? 'copyItems' : 'copyItem',\n },\n})\n","import { classnames } from '../../lib/helpers'\n\ninterface Props {\n children: React.ReactNode\n className?: string\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n type?: 'submit' | 'reset' | 'button'\n loading?: boolean\n disabled?: boolean\n dataTest?: string\n}\nexport const Button = ({\n children,\n className = 'is-primary',\n onClick,\n type = 'submit',\n loading = false,\n disabled = false,\n dataTest,\n}: Props) => {\n let css = [...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?: string\n onCancel: () => void\n onConfirm: () => void\n loading?: boolean\n}\nexport function Confirm({\n message,\n onCancel,\n onConfirm,\n loading,\n}: ConfirmProps) {\n const intl = useIntl()\n const setActive = () => onCancel()\n return (\n <Modal isActive setActive={setActive} className=\"confirm\">\n <h1 className=\"title is-size-5\">{message || 'Are you Sure?'}</h1>\n <div className=\"level\" style={{ marginTop: 50 }}>\n <div className=\"level-left\"></div>\n <div className=\"level-right\">\n <button\n className=\"button is-danger\"\n onClick={() => onCancel()}\n data-test=\"btnCancelModalTest\"\n >\n {intl.formatMessage(genericMessages.cancel)}\n </button>\n \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 \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)\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\ninterface 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}\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 (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(qs: string, defaultField = DEFAULT_FIELD): string[][] {\n if (qs.includes(SEP) && Array.isArray(defaultField)) {\n throw new Error('This option is not supported')\n }\n\n if (Array.isArray(defaultField)) {\n const orParser: 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'\nimport { ItemModel } from '../models'\nimport { Auth } from './auth'\nimport {\n GuillotinaGroup,\n GuillotinaUser,\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() {\n const smallcss = { width: 25 }\n const mediumcss = { width: 120 }\n\n return [\n {\n label: '',\n isSortable: false,\n child: (m: ItemModel) => (\n <td style={smallcss}>{<Icon icon={m.icon} />}</td>\n ),\n },\n {\n label: 'type',\n key: 'type_name',\n isSortable: false,\n child: (m: ItemModel) => (\n <TdLink style={smallcss} model={m}>\n <span className=\"tag\">{m.type}</span>\n </TdLink>\n ),\n },\n {\n label: 'id/name',\n key: 'title',\n isSortable: true,\n child: (m: ItemModel, _navigate: () => void, search: boolean) => (\n <TdLink model={m}>\n {m.name}\n {search && (\n <React.Fragment>\n <br />\n <span className=\"is-size-7 tag is-light\">{m.path}</span>\n </React.Fragment>\n )}\n </TdLink>\n ),\n },\n {\n label: 'created',\n key: 'creation_date',\n isSortable: true,\n child: (m: ItemModel) => {\n return (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.created}\n </td>\n )\n },\n },\n {\n label: 'modified',\n key: 'modification_date',\n isSortable: true,\n child: (m: ItemModel) => (\n <td style={mediumcss} className=\"is-size-7 is-vcentered\">\n {m.updated}\n </td>\n ),\n },\n ]\n }\n\n // BBB API changes. Compat G5 and G6\n applyCompat<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 { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', 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 { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', 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 { get } = traversal.registry\n const fnName = get('searchEngineQueryParamsFunction', 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 { get: getSearch } = traversal.registry\n const fnName = getSearch('searchEngineQueryParamsFunction', 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.get('components', 'EditComponent')\n const RenderFieldComponent = Ctx.registry.get(\n 'components',\n 'RenderFieldComponent'\n )\n\n useEffect(() => {\n if (isEdit && ref.current) {\n ref.current.focus()\n }\n })\n\n const canModified =\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 console.log('search render fields')\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 { get: getSearch } = traversal.registry\n const fnName: string = getSearch(\n 'searchEngineQueryParamsFunction',\n SearchEngine\n )\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> \n {definition.transitions.map((transition) => {\n return (\n <button\n key={transition['@id']}\n className=\"button mr-4\"\n onClick={() =>\n setWorkflowAction(\n transition['@id'].split('@workflow')[1].slice(1)\n )\n }\n >\n {get(\n transition,\n `metadata.translated_title.${intl.locale}`,\n transition.title\n )}\n </button>\n )\n })}\n </div>\n )}\n </>\n )\n}\n","import { useTraversal } from '../../contexts'\nimport { useIntl } from 'react-intl'\nimport { getActionsObject } from '../../lib/helpers'\nimport { Fragment } from 'react'\n\nexport function PanelActions() {\n const traversal = useTraversal()\n const intl = useIntl()\n const ACTIONS_OBJECT = getActionsObject(intl)\n\n const hasPerm = (perms: 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 {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 { getActionsObject } from '../lib/helpers'\nimport { SearchItem } from '../types/guillotina'\n\nconst ItemsActionsCtx = createContext<{\n selected: {\n all: boolean\n [key: string]: boolean\n }\n onSelectOneItem?: (item: SearchItem) => void\n onSelectAllItems?: (chedked: boolean) => void\n onAction?: (action: string) => void\n}>({\n selected: {\n all: false,\n },\n})\n\n/**\n * Actions to apply after select some items\n * Ex: Delete, Move, Copy...\n */\ninterface PropsItemsActionsProvider {\n items: SearchItem[]\n children: React.ReactNode\n}\nexport function ItemsActionsProvider({\n items,\n children,\n}: PropsItemsActionsProvider) {\n const intl = useIntl()\n const actions = getActionsObject(intl, true)\n const traversal = useTraversal()\n const [selected, setSelected] = useState<{\n all: 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 ACTIONS_OBJECT = getActionsObject(intl, true)\n const traversal = useTraversal()\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: 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 { IColumn } from '../reducers/guillotina'\nimport { SearchItem } from '../types/guillotina'\n\ninterface ItemProps {\n item: { id: string; path: string }\n icon?: string\n}\nexport function Item({ item, icon }: ItemProps) {\n const [, navigate] = useLocation()\n const link = () => navigate({ path: item.path }, true)\n return (\n <tr>\n <td onClick={link} style={{ width: '25px' }}>\n {icon && <Icon icon={icon} />}\n </td>\n <td onClick={link}>{item.id}</td>\n </tr>\n )\n}\n\nconst smallcss = {\n width: 25,\n}\n\ninterface RItemProps {\n item: SearchItem\n search: string\n columns: IColumn[]\n}\nexport function RItem({ item, search, columns }: RItemProps) {\n const [, navigate] = useLocation()\n const traversal = useTraversal()\n const model = new ItemModel(item, traversal.url)\n const link = () => navigate({ path: model.path }, true)\n\n return (\n <tr key={item.id} data-test={`itemTest-${item.id}`}>\n <td style={smallcss}>\n <ItemCheckbox item={item} dataTest=\"itemCheckboxRowTest\" />\n </td>\n {columns.map((i) => (\n <React.Fragment key={i.label}>\n {i.child(model, link, search)}\n </React.Fragment>\n ))}\n <td style={smallcss}>\n {traversal.hasPerm('guillotina.DeleteContent') && (\n <Delete\n onClick={() =>\n traversal.doAction('removeItems', { items: [model.item] })\n }\n />\n )}\n </td>\n </tr>\n )\n}\n\ninterface ItemTitleProps {\n title: string\n actions?: React.ReactNode\n}\nexport function ItemTitle({ title, actions }: ItemTitleProps) {\n return (\n <nav className=\"level\">\n <div className=\"level-left\">\n <div className=\"level-item\">\n <h4 className=\"title has-text-primary is-size-5\">{title}</h4>\n </div>\n </div>\n <div className=\"level-right\">\n <div className=\"level-item\">{actions && actions}</div>\n </div>\n </nav>\n )\n}\n","import { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n}\nexport function SearchLabels({ query }: Props) {\n const [location, , del] = useLocation()\n const search = location.get(query ?? 'q')\n\n const clearSearch = () => {\n del(query ?? 'q')\n }\n\n if (search) {\n return (\n <div className=\"tags\">\n <Tag\n id={search}\n name={search}\n color=\"is-info\"\n size=\"is-size-7\"\n onRemove={() => clearSearch()}\n />\n </div>\n )\n }\n return null\n}\n","import { useEffect, useState } from 'react'\nimport { Tag } from './ui/tag'\nimport { useLocation } from '../hooks/useLocation'\n\ninterface Props {\n query?: string\n options?: { value: string; text: string }[]\n}\nexport function SearchOptionsLabels({ query = 'q', options }: Props) {\n const [location, , del] = useLocation()\n const [renderValue, setRenderValue] = useState<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'\n\nimport {\n ItemColumn,\n RegistrySchemaFilter,\n SearchItem,\n} 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 { get } = Ctx.registry\n const fnName = get('searchEngineQueryParamsFunction', SearchEngine)\n if (sortParsed === undefined) {\n const defaultSortValue = Ctx.registry.getDefaultSortValue(\n Ctx.context['@type']\n )\n 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: ItemColumn) => (\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> </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 \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 '{title}' 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 \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 \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\ninterface Props {\n onSubmit: (data: { title: string; id: string }) => void\n actionName?: string\n title?: string\n dataTest?: string\n loading?: boolean\n}\nexport function BaseForm({\n onSubmit,\n actionName,\n title,\n dataTest,\n loading,\n}: Props) {\n const intl = useIntl()\n const [name, setName] = useState('')\n const [id, setId] = useState('')\n const [error, setError] = useState<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 \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 } 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'\n\nexport interface IRegistry {\n paths: {\n [key: string]: React.FC\n }\n views: {\n [key: string]: React.FC | 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]: React.FC\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 defaultSortValue: {\n [key: string]: {\n direction: 'asc' | 'des'\n field: string\n }\n }\n}\nconst registry: IRegistry = {\n paths: {},\n views: {\n ErrorBoundary: ErrorBoundary,\n NotAllowed: NotAllowed,\n NotFound: NotFound,\n Application: ApplicationCtx,\n Database: DatabaseCtx,\n Container: ContainerCtx,\n UserManager: UsersCtx,\n User: UserCtx,\n Group: GroupCtx,\n GroupManager: GroupsCtx,\n Folder: FolderCtx,\n Item: ItemCtx,\n },\n actions: {\n addItem: AddItem,\n copyItems: CopyItems,\n copyItem: CopyItem,\n moveItems: MoveItems,\n moveItem: MoveItem,\n removeItems: RemoveItems,\n changePassword: ChangePassword,\n removeItem: RemoveItem,\n },\n forms: {\n UserManager: BaseForm,\n GroupManager: BaseForm,\n Folder: BaseForm,\n Item: BaseForm,\n User: UserForm,\n Group: BaseForm,\n },\n behaviors: {\n 'guillotina.behaviors.dublincore.IDublinCore': IDublinCore,\n 'guillotina.behaviors.attachment.IAttachment': IAttachment,\n 'guillotina.behaviors.attachment.IMultiAttachment': IMultiAttachment,\n 'guillotina.contrib.image.behaviors.IImageAttachment': IImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageAttachment': IMultiImageAttachment,\n 'guillotina.contrib.image.behaviors.IMultiImageOrderedAttachment': IMultiImageOrderedAttachment,\n 'guillotina.contrib.workflows.interfaces.IWorkflowBehavior': IWorkflow,\n },\n itemsColumn: {},\n schemas: {},\n properties: {},\n components: {\n Path: Path,\n EditComponent: EditComponent,\n RenderFieldComponent: RenderFieldComponent,\n },\n searchEngineQueryParamsFunction: {\n PostreSQL: 'getQueryParamsPostresql',\n Elasticsearch: 'getQueryParamsElasticsearch',\n },\n fieldsToFilter: {\n UserManager: ['id', 'email', 'user_name'],\n },\n defaultSortValue: {},\n}\n\nconst get = (key: keyof IRegistry, param: string, fallback = undefined) => {\n if (registry[key]) return registry[key][param] || fallback\n return fallback\n}\n\nconst getComponent = (\n context: GuillotinaCommonObject | undefined,\n path: string,\n fallback = undefined\n) => {\n if (!context) return\n // console.log(\"Component for path\", path)\n // lookup by path\n if (registry.paths[path]) {\n return registry.paths[path]\n }\n // by type\n if (registry.views[context['@type']]) {\n return registry.views[context['@type']]\n }\n if (fallback) {\n return fallback\n }\n return defaultComponent(context)\n}\n\nconst getItemsColumn = (type: string) => {\n const funcCols = registry.itemsColumn[type]\n if (funcCols) {\n return funcCols()\n }\n return undefined\n}\n\nconst getView = (name: string) => {\n return registry.views[name]\n}\n\nconst getForm = (type: string, fallback: React.FC) => {\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 = {\n key: 'id',\n direction: 'des',\n }\n) => {\n return registry.defaultSortValue[type] || fallback\n}\n\nexport const defaultComponent = (context: GuillotinaCommonObject) => {\n return context.is_folderish ? FolderCtx : ItemCtx\n}\n\nexport function useRegistry(data: IRegistry) {\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 get,\n getForm,\n getComponent,\n getAction,\n getBehavior,\n getProperties,\n getItemsColumn,\n getFieldsToFilter,\n getDefaultSortValue,\n getSchemas,\n getView,\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 { 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'\nimport { IndexSignature } from '../types/global'\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: IndexSignature\n registry: IRegistry\n}\nexport function Guillotina({ auth, locale, ...props }: GuillotinaProps) {\n const messages = loadLocaleData(locale)\n const url = props.url || 'http://localhost:8080' // without trailing slash\n const config = props.config || {}\n const client = useGuillotinaClient()\n\n const { Permissions } = useConfig(config)\n const registry = useRegistry(props.registry)\n // Location is cooked routing solution (only uses search params)\n const [location] = useLocation()\n\n // if there is no path provided just go to root\n const searchPath = location.get('path') || '/'\n if (searchPath && searchPath !== '') {\n initialState.path = searchPath\n }\n\n const [state, dispatch] = useReducer(guillotinaReducer, initialState)\n\n const { path, refresh } = state\n\n useEffect(() => {\n dispatch({\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.get('components', 'Path') as React.ComponentType\n\n const contextData = {\n url,\n client,\n auth,\n state,\n dispatch,\n registry,\n flash: config.flash,\n }\n\n const { action, errorStatus, permissions } = state\n const Main = registry.getComponent(state.context, path) 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.get('components', '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 { 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 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 label: string\n key: string\n isSortable?: boolean\n child: React.ReactNode\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","intl","multiple","DELETE","text","formatMessage","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","useIntl","style","marginTop","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","m","_navigate","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","getSearch","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","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","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","getComponent","defaultComponent","funcCols","getView","getAction","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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"}
|