R: Improve import sorting
Some checks are pending
Frontend CI / build (22.x) (push) Waiting to run

This commit is contained in:
Ivan 2025-02-12 21:36:25 +03:00
parent c75af03bea
commit 4853884251
173 changed files with 637 additions and 182 deletions

View File

@ -63,6 +63,7 @@ This readme file is used mostly to document project dependencies and conventions
- tailwindcss
- postcss
- autoprefixer
- eslint-plugin-import
- eslint-plugin-react-compiler
- eslint-plugin-simple-import-sort
- eslint-plugin-react-hooks

View File

@ -4,7 +4,7 @@ import typescriptParser from '@typescript-eslint/parser';
import reactPlugin from 'eslint-plugin-react';
import reactCompilerPlugin from 'eslint-plugin-react-compiler';
import reactHooksPlugin from 'eslint-plugin-react-hooks';
import importPlugin from 'eslint-plugin-import';
import simpleImportSort from 'eslint-plugin-simple-import-sort';
export default [
@ -37,7 +37,8 @@ export default [
'react': reactPlugin,
'react-compiler': reactCompilerPlugin,
'react-hooks': reactHooksPlugin,
'simple-import-sort': simpleImportSort
'simple-import-sort': simpleImportSort,
'import': importPlugin
},
settings: { react: { version: 'detect' } },
rules: {
@ -57,8 +58,33 @@ export default [
'react-refresh/only-export-components': ['off', { allowConstantExport: true }],
'simple-import-sort/imports': 'warn',
'simple-import-sort/imports': [
'warn',
{
groups: [
// Node.js builtins.
[
'^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)'
],
// Packages. `react` related packages come first.
['^react', '^@?\\w'],
// Global app and features
['^(@/app|@/features)(/.*|$)'],
// Internal packages.
['^(@)(/.*|$)'],
// Side effect imports.
['^\\u0000'],
// Parent imports. Put `..` last.
['^\\.\\.(?!/?$)', '^\\.\\./?$'],
// Other relative imports. Put same-folder imports and `.` last.
['^\\./(?=.*/)(?!/?$)', '^\\.(?!/?$)', '^\\./?$'],
// Style imports.
['^.+\\.s?css$']
]
}
],
'simple-import-sort/exports': 'error',
'import/no-duplicates': 'warn',
...reactHooksPlugin.configs.recommended.rules
}

View File

@ -51,6 +51,7 @@
"autoprefixer": "^10.4.20",
"babel-plugin-react-compiler": "^19.0.0-beta-37ed2a7-20241206",
"eslint": "^9.19.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-compiler": "^19.0.0-beta-37ed2a7-20241206",
"eslint-plugin-react-hooks": "^5.1.0",
@ -2981,6 +2982,13 @@
"win32"
]
},
"node_modules/@rtsao/scc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
"integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
"dev": true,
"license": "MIT"
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@ -3476,6 +3484,13 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.13.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.1.tgz",
@ -4005,6 +4020,27 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/array.prototype.findlastindex": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
"integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
"es-abstract": "^1.23.2",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
"es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/array.prototype.flat": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
@ -5540,6 +5576,155 @@
}
}
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
"integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^3.2.7",
"is-core-module": "^2.13.0",
"resolve": "^1.22.4"
}
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-import-resolver-node/node_modules/resolve": {
"version": "1.22.10",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
"integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dev": true,
"license": "MIT",
"dependencies": {
"is-core-module": "^2.16.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
"resolve": "bin/resolve"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/eslint-module-utils": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
"integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
"license": "MIT",
"dependencies": {
"debug": "^3.2.7"
},
"engines": {
"node": ">=4"
},
"peerDependenciesMeta": {
"eslint": {
"optional": true
}
}
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-plugin-import": {
"version": "2.31.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
"integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.8",
"array.prototype.findlastindex": "^1.2.5",
"array.prototype.flat": "^1.3.2",
"array.prototype.flatmap": "^1.3.2",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-module-utils": "^2.12.0",
"hasown": "^2.0.2",
"is-core-module": "^2.15.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
"object.fromentries": "^2.0.8",
"object.groupby": "^1.0.3",
"object.values": "^1.2.0",
"semver": "^6.3.1",
"string.prototype.trimend": "^1.0.8",
"tsconfig-paths": "^3.15.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
"eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-import/node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-plugin-import/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/eslint-plugin-import/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/eslint-plugin-react": {
"version": "7.37.4",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz",
@ -8185,6 +8370,16 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/minipass": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
@ -8383,6 +8578,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object.groupby": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
"integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
"es-abstract": "^1.23.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.values": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
@ -10337,6 +10547,42 @@
}
}
},
"node_modules/tsconfig-paths": {
"version": "3.15.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
"integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
"minimist": "^1.2.6",
"strip-bom": "^3.0.0"
}
},
"node_modules/tsconfig-paths/node_modules/json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"license": "MIT",
"dependencies": {
"minimist": "^1.2.0"
},
"bin": {
"json5": "lib/cli.js"
}
},
"node_modules/tsconfig-paths/node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",

View File

@ -9,6 +9,7 @@
"dev": "vite --host",
"build": "tsc && vite build",
"lint": "eslint . --report-unused-disable-directives --max-warnings 0",
"lintFix": "eslint . --report-unused-disable-directives --max-warnings 0 --fix",
"preview": "vite preview --port 3000"
},
"dependencies": {
@ -55,6 +56,7 @@
"autoprefixer": "^10.4.20",
"babel-plugin-react-compiler": "^19.0.0-beta-37ed2a7-20241206",
"eslint": "^9.19.0",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-compiler": "^19.0.0-beta-37ed2a7-20241206",
"eslint-plugin-react-hooks": "^5.1.0",

View File

@ -6,12 +6,12 @@ import { ModalLoader } from '@/components/Modal';
import { useAppLayoutStore, useMainHeight, useViewportHeight } from '@/stores/appLayout';
import { globals } from '@/utils/constants';
import { NavigationState } from './Navigation/NavigationContext';
import { Footer } from './Footer';
import { GlobalDialogs } from './GlobalDialogs';
import ConceptToaster from './GlobalToaster';
import { GlobalTooltips } from './GlobalTooltips';
import { Navigation } from './Navigation';
import { NavigationState } from './Navigation/NavigationContext';
function ApplicationLayout() {
const mainHeight = useMainHeight();

View File

@ -1,8 +1,8 @@
'use client';
import { IntlProvider } from 'react-intl';
import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { IntlProvider } from 'react-intl';
import { queryClient } from '@/backend/queryClient';

View File

@ -1,8 +1,9 @@
'use client';
import InfoConstituenta from '@/features/rsform/components/InfoConstituenta';
import { Tooltip } from '@/components/Container';
import { Loader } from '@/components/Loader';
import InfoConstituenta from '@/features/rsform/components/InfoConstituenta';
import { useTooltipsStore } from '@/stores/tooltips';
import { globals } from '@/utils/constants';

View File

@ -7,6 +7,7 @@ import { useAppLayoutStore } from '@/stores/appLayout';
import { PARAMETER } from '@/utils/constants';
import { urls } from '../urls';
import Logo from './Logo';
import NavigationButton from './NavigationButton';
import { useConceptNavigation } from './NavigationContext';

View File

@ -1,5 +1,6 @@
import { IconLogin, IconUser2 } from '@/components/Icons';
import { useAuthSuspense } from '@/features/auth';
import { IconLogin, IconUser2 } from '@/components/Icons';
import { usePreferencesStore } from '@/stores/preferences';
import NavigationButton from './NavigationButton';

View File

@ -1,3 +1,5 @@
import { useAuthSuspense, useLogout } from '@/features/auth';
import { Dropdown, DropdownButton } from '@/components/Dropdown';
import {
IconAdmin,
@ -14,10 +16,10 @@ import {
IconUser
} from '@/components/Icons';
import { CProps } from '@/components/props';
import { useAuthSuspense, useLogout } from '@/features/auth';
import { usePreferencesStore } from '@/stores/preferences';
import { urls } from '../urls';
import { useConceptNavigation } from './NavigationContext';
interface UserDropdownProps {

View File

@ -4,6 +4,7 @@ import { useDropdown } from '@/components/Dropdown';
import { Loader } from '@/components/Loader';
import { urls } from '../urls';
import { useConceptNavigation } from './NavigationContext';
import UserButton from './UserButton';
import UserDropdown from './UserDropdown';

View File

@ -1,6 +1,5 @@
import { createBrowserRouter } from 'react-router';
import { Loader } from '@/components/Loader';
import { prefetchAuth } from '@/features/auth/backend/useAuth';
import LoginPage from '@/features/auth/pages/LoginPage';
import HomePage from '@/features/home/HomePage';
@ -12,6 +11,8 @@ import { prefetchRSForm } from '@/features/rsform/backend/useRSForm';
import { prefetchProfile } from '@/features/users/backend/useProfile';
import { prefetchUsers } from '@/features/users/backend/useUsers';
import { Loader } from '@/components/Loader';
import ApplicationLayout from './ApplicationLayout';
import { ErrorFallback } from './ErrorFallback';
import { routes } from './urls';

View File

@ -1,8 +1,8 @@
/**
* Module: generic API for backend REST communications using axios library.
*/
import axios, { AxiosError, AxiosRequestConfig } from 'axios';
import { toast } from 'react-toastify';
import axios, { AxiosError, AxiosRequestConfig } from 'axios';
import { buildConstants } from '@/utils/buildConstants';
import { extractErrorMessage } from '@/utils/utils';

View File

@ -1,9 +1,9 @@
'use client';
import clsx from 'clsx';
import { ReactNode } from 'react';
import { createPortal } from 'react-dom';
import { ITooltip, Tooltip as TooltipImpl } from 'react-tooltip';
import clsx from 'clsx';
import { usePreferencesStore } from '@/stores/preferences';

View File

@ -1,6 +1,7 @@
'use client';
'use no memo';
import { useMemo, useState } from 'react';
import {
ColumnSort,
createColumnHelper,
@ -15,9 +16,9 @@ import {
useReactTable,
type VisibilityState
} from '@tanstack/react-table';
import { useMemo, useState } from 'react';
import { CProps } from '../props';
import DefaultNoData from './DefaultNoData';
import PaginationTools from './PaginationTools';
import TableBody from './TableBody';

View File

@ -1,9 +1,9 @@
'use client';
'use no memo';
import { useCallback } from 'react';
import { Table } from '@tanstack/react-table';
import clsx from 'clsx';
import { useCallback } from 'react';
import { prefixes } from '@/utils/constants';

View File

@ -4,8 +4,9 @@ import { Cell, flexRender, Row, Table } from '@tanstack/react-table';
import clsx from 'clsx';
import { CProps } from '../props';
import { IConditionalStyle } from '.';
import SelectRow from './SelectRow';
import { IConditionalStyle } from '.';
interface TableBodyProps<TData> {
table: Table<TData>;

View File

@ -4,6 +4,7 @@ import { globals } from '@/utils/constants';
import { CheckboxChecked, CheckboxNull } from '../Icons';
import { CProps } from '../props';
import { CheckboxProps } from './Checkbox';
export interface CheckboxTristateProps extends Omit<CheckboxProps, 'value' | 'onChange'> {

View File

@ -1,5 +1,5 @@
import clsx from 'clsx';
import { FieldError, GlobalError } from 'react-hook-form';
import clsx from 'clsx';
import { CProps } from '../props';

View File

@ -1,11 +1,12 @@
'use client';
import clsx from 'clsx';
import { useRef, useState } from 'react';
import clsx from 'clsx';
import { Button } from '../Control';
import { IconUpload } from '../Icons';
import { CProps } from '../props';
import { Label } from './Label';
interface FileInputProps extends Omit<CProps.Input, 'accept' | 'type'> {

View File

@ -1,5 +1,5 @@
import clsx from 'clsx';
import { useEffect, useState } from 'react';
import clsx from 'clsx';
import { globals, PARAMETER } from '@/utils/constants';

View File

@ -2,6 +2,7 @@ import clsx from 'clsx';
import { Label } from '../Input/Label';
import { CProps } from '../props';
import { ErrorField } from './ErrorField';
export interface TextAreaProps extends CProps.Editor, CProps.ErrorProcessing, CProps.Colors, CProps.TextArea {

View File

@ -2,6 +2,7 @@ import clsx from 'clsx';
import { Label } from '../Input/Label';
import { CProps } from '../props';
import { ErrorField } from './ErrorField';
interface TextInputProps extends CProps.Editor, CProps.ErrorProcessing, CProps.Colors, CProps.Input {

View File

@ -3,6 +3,7 @@
import clsx from 'clsx';
import { BadgeHelp, HelpTopic } from '@/features/help';
import useEscapeKey from '@/hooks/useEscapeKey';
import { useDialogsStore } from '@/stores/dialogs';
import { PARAMETER } from '@/utils/constants';
@ -11,6 +12,7 @@ import { prepareTooltip } from '@/utils/utils';
import { Button, MiniButton, SubmitButton } from '../Control';
import { IconClose } from '../Icons';
import { CProps } from '../props';
import { ModalBackdrop } from './ModalBackdrop';
export interface ModalProps extends CProps.Styling {

View File

@ -3,6 +3,7 @@
import clsx from 'clsx';
import { BadgeHelp } from '@/features/help';
import useEscapeKey from '@/hooks/useEscapeKey';
import { useDialogsStore } from '@/stores/dialogs';
import { PARAMETER } from '@/utils/constants';
@ -10,6 +11,7 @@ import { prepareTooltip } from '@/utils/utils';
import { Button, MiniButton } from '../Control';
import { IconClose } from '../Icons';
import { ModalBackdrop } from './ModalBackdrop';
import { ModalProps } from './ModalForm';

View File

@ -1,6 +1,6 @@
import clsx from 'clsx';
import type { TabProps as TabPropsImpl } from 'react-tabs';
import { Tab as TabImpl } from 'react-tabs';
import clsx from 'clsx';
import { globals } from '@/utils/constants';

View File

@ -1,4 +1,5 @@
import { urls, useConceptNavigation } from '@/app';
import { TextURL } from '@/components/Control';
import { useAuthSuspense } from '../backend/useAuth';

View File

@ -1,10 +1,11 @@
'use client';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { useForm } from 'react-hook-form';
import { urls, useConceptNavigation } from '@/app';
import { isAxiosError } from '@/backend/apiTransport';
import { SubmitButton, TextURL } from '@/components/Control';
import { ErrorData } from '@/components/InfoError';

View File

@ -1,9 +1,10 @@
'use client';
import clsx from 'clsx';
import { useEffect, useState } from 'react';
import clsx from 'clsx';
import { urls, useConceptNavigation } from '@/app';
import { isAxiosError } from '@/backend/apiTransport';
import { SubmitButton } from '@/components/Control';
import { ErrorData, InfoError } from '@/components/InfoError';

View File

@ -1,7 +1,7 @@
'use client';
import clsx from 'clsx';
import { useState } from 'react';
import clsx from 'clsx';
import { isAxiosError } from '@/backend/apiTransport';
import { SubmitButton, TextURL } from '@/components/Control';

View File

@ -3,6 +3,7 @@ import clsx from 'clsx';
import { colorBgCstClass } from '@/features/rsform/colors';
import { describeCstClass, labelCstClass } from '@/features/rsform/labels';
import { CstClass } from '@/features/rsform/models/rsform';
import { prefixes } from '@/utils/constants';
interface InfoCstClassProps {

View File

@ -3,6 +3,7 @@ import clsx from 'clsx';
import { colorBgCstStatus } from '@/features/rsform/colors';
import { describeExpressionStatus, labelExpressionStatus } from '@/features/rsform/labels';
import { ExpressionStatus } from '@/features/rsform/models/rsform';
import { prefixes } from '@/utils/constants';
interface InfoCstStatusProps {

View File

@ -1,4 +1,5 @@
import { urls } from '@/app';
import { TextURL } from '@/components/Control';
import { HelpTopic } from '../models/helpTopic';

View File

@ -1,6 +1,7 @@
import { prefixes } from '@/utils/constants';
import { HelpTopic, topicParent } from '../models/helpTopic';
import { TopicItem } from './TopicItem';
interface SubtopicsProps {

View File

@ -1,4 +1,5 @@
import { urls } from '@/app';
import { TextURL } from '@/components/Control';
import { external_urls } from '@/utils/constants';

View File

@ -1,11 +1,13 @@
'use client';
import { urls, useConceptNavigation } from '@/app';
import useQueryStrings from '@/hooks/useQueryStrings';
import { useMainHeight } from '@/stores/appLayout';
import { PARAMETER } from '@/utils/constants';
import { HelpTopic } from '../../models/helpTopic';
import TopicsList from './TopicsList';
import ViewTopic from './ViewTopic';

View File

@ -9,10 +9,8 @@ import { SelectTree } from '@/components/Input';
import { useAppLayoutStore, useFitHeight } from '@/stores/appLayout';
import { PARAMETER, prefixes } from '@/utils/constants';
import { describeHelpTopic } from '../../labels';
import { labelHelpTopic } from '../../labels';
import { topicParent } from '../../models/helpTopic';
import { HelpTopic } from '../../models/helpTopic';
import { describeHelpTopic, labelHelpTopic } from '../../labels';
import { HelpTopic, topicParent } from '../../models/helpTopic';
interface TopicsDropdownProps {
activeTopic: HelpTopic;

View File

@ -3,6 +3,7 @@
import useWindowSize from '@/hooks/useWindowSize';
import { HelpTopic } from '../../models/helpTopic';
import TopicsDropdown from './TopicsDropdown';
import TopicsStatic from './TopicsStatic';

View File

@ -3,6 +3,7 @@
import { useMainHeight } from '@/stores/appLayout';
import { HelpTopic } from '../../models/helpTopic';
import TopicPage from './TopicPage';
interface ViewTopicProps {

View File

@ -1,8 +1,9 @@
import { useEffect } from 'react';
import { urls, useConceptNavigation } from '@/app';
import { Loader } from '@/components/Loader';
import { useAuthSuspense } from '@/features/auth';
import { Loader } from '@/components/Loader';
import { PARAMETER } from '@/utils/constants';
function HomePage() {

View File

@ -1,11 +1,13 @@
import { queryOptions } from '@tanstack/react-query';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { axiosDelete, axiosGet, axiosPatch, axiosPost } from '@/backend/apiTransport';
import { DELAYS, KEYS } from '@/backend/configuration';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { infoMsg } from '@/utils/labels';
import { AccessPolicy, ILibraryItem, IVersionInfo } from '../models/library';
import {
ICloneLibraryItemDTO,
ICreateLibraryItemDTO,

View File

@ -1,6 +1,7 @@
import { z } from 'zod';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { errorMsg } from '@/utils/labels';
import { AccessPolicy, LibraryItemType } from '../models/library';

View File

@ -2,6 +2,7 @@ import { useAuthSuspense } from '@/features/auth';
import { ILibraryFilter } from '../models/library';
import { matchLibraryItem, matchLibraryItemLocation } from '../models/libraryAPI';
import { useLibrary } from './useLibrary';
export function useApplyLibraryFilter(filter: ILibraryFilter) {

View File

@ -1,5 +1,6 @@
import { FolderTree } from '../models/FolderTree';
import { LocationHead } from '../models/library';
import { useLibrary } from './useLibrary';
export function useFolders() {

View File

@ -1,7 +1,8 @@
import { useQuery, useSuspenseQuery } from '@tanstack/react-query';
import { queryClient } from '@/backend/queryClient';
import { useAuthSuspense } from '@/features/auth';
import { queryClient } from '@/backend/queryClient';
import { usePreferencesStore } from '@/stores/preferences';
import { libraryApi } from './api';

View File

@ -1,10 +1,12 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IOperationSchemaDTO } from '@/features/oss/backend/types';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { AccessPolicy, ILibraryItem } from '../models/library';
import { libraryApi } from './api';
export const useSetAccessPolicy = () => {

View File

@ -1,9 +1,10 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IOperationSchemaDTO } from '@/features/oss/backend/types';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { libraryApi } from './api';
export const useSetEditors = () => {

View File

@ -1,10 +1,12 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IOperationSchemaDTO } from '@/features/oss/backend/types';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { ILibraryItem } from '../models/library';
import { libraryApi } from './api';
export const useSetLocation = () => {

View File

@ -1,10 +1,12 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IOperationSchemaDTO } from '@/features/oss/backend/types';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { ILibraryItem } from '../models/library';
import { libraryApi } from './api';
export const useSetOwner = () => {

View File

@ -1,10 +1,12 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IOperationSchemaDTO } from '@/features/oss/backend/types';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { ILibraryItem, LibraryItemType } from '../models/library';
import { libraryApi } from './api';
import { IUpdateLibraryItemDTO } from './types';

View File

@ -1,6 +1,7 @@
import { useQueryClient } from '@tanstack/react-query';
import { ILibraryItem } from '../models/library';
import { libraryApi } from './api';
export function useUpdateTimestamp() {

View File

@ -1,8 +1,9 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { libraryApi } from './api';
export const useVersionDelete = () => {

View File

@ -1,8 +1,9 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { IRSFormDTO } from '@/features/rsform/backend/types';
import { KEYS } from '@/backend/configuration';
import { libraryApi } from './api';
import { IVersionUpdateDTO } from './types';

View File

@ -2,6 +2,8 @@ import { Suspense } from 'react';
import { useIntl } from 'react-intl';
import { urls, useConceptNavigation } from '@/app';
import { InfoUsers, SelectUser, useLabelUser, useRoleStore, UserRole } from '@/features/users';
import { Overlay, Tooltip } from '@/components/Container';
import { MiniButton } from '@/components/Control';
import { useDropdown } from '@/components/Dropdown';
@ -16,7 +18,6 @@ import {
import { Loader } from '@/components/Loader';
import { CProps } from '@/components/props';
import { ValueIcon } from '@/components/View';
import { InfoUsers, SelectUser, useLabelUser, useRoleStore, UserRole } from '@/features/users';
import { useDialogsStore } from '@/stores/dialogs';
import { useModificationStore } from '@/stores/modification';
import { prefixes } from '@/utils/constants';

View File

@ -1,6 +1,6 @@
import clsx from 'clsx';
import { useState } from 'react';
import { useIntl } from 'react-intl';
import clsx from 'clsx';
import { FlexColumn } from '@/components/Container';
import { MiniButton } from '@/components/Control';
@ -14,6 +14,7 @@ import { prefixes } from '@/utils/constants';
import { ILibraryItem, LibraryItemType } from '../models/library';
import { matchLibraryItem } from '../models/libraryAPI';
import SelectLocation from './SelectLocation';
interface PickSchemaProps extends CProps.Styling {

View File

@ -1,7 +1,7 @@
'use client';
import clsx from 'clsx';
import { useEffect, useState } from 'react';
import clsx from 'clsx';
import { MiniButton } from '@/components/Control';
import { IconFolder, IconFolderClosed, IconFolderEmpty, IconFolderOpened } from '@/components/Icons';

View File

@ -1,15 +1,17 @@
import { BadgeHelp, HelpTopic } from '@/features/help';
import { useRoleStore, UserRole } from '@/features/users';
import { Overlay } from '@/components/Container';
import { MiniButton } from '@/components/Control';
import { VisibilityIcon } from '@/components/DomainIcons';
import { IconImmutable, IconMutable } from '@/components/Icons';
import { Label } from '@/components/Input';
import { BadgeHelp, HelpTopic } from '@/features/help';
import { useRoleStore, UserRole } from '@/features/users';
import { PARAMETER } from '@/utils/constants';
import { useMutatingLibrary } from '../backend/useMutatingLibrary';
import { useSetAccessPolicy } from '../backend/useSetAccessPolicy';
import { AccessPolicy } from '../models/library';
import { ILibraryItemEditor } from './EditorLibraryItem';
import { SelectAccessPolicy } from './SelectAccessPolicy';

View File

@ -1,13 +1,14 @@
'use client';
import { Controller, useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Controller, useForm } from 'react-hook-form';
import { z } from 'zod';
import { useAuthSuspense } from '@/features/auth';
import { Label, TextArea } from '@/components/Input';
import { ModalForm } from '@/components/Modal';
import { useAuthSuspense } from '@/features/auth';
import { useDialogsStore } from '@/stores/dialogs';
import { limits } from '@/utils/constants';
import { errorMsg } from '@/utils/labels';

View File

@ -1,15 +1,16 @@
'use client';
import { Controller, useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Controller, useForm } from 'react-hook-form';
import { urls, useConceptNavigation } from '@/app';
import { useAuthSuspense } from '@/features/auth';
import { MiniButton } from '@/components/Control';
import { VisibilityIcon } from '@/components/DomainIcons';
import { Checkbox, Label, TextArea, TextInput } from '@/components/Input';
import { ModalForm } from '@/components/Modal';
import { useAuthSuspense } from '@/features/auth';
import { useDialogsStore } from '@/stores/dialogs';
import { ICloneLibraryItemDTO, schemaCloneLibraryItem } from '../backend/types';

View File

@ -1,8 +1,8 @@
'use client';
import { Controller, useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Controller, useForm, useWatch } from 'react-hook-form';
import { Checkbox, TextArea, TextInput } from '@/components/Input';
import { ModalForm } from '@/components/Modal';

View File

@ -1,13 +1,14 @@
'use client';
import clsx from 'clsx';
import { useState } from 'react';
import clsx from 'clsx';
import { SelectUser, TableUsers, useUsers } from '@/features/users';
import { MiniButton } from '@/components/Control';
import { IconRemove } from '@/components/Icons';
import { Label } from '@/components/Input';
import { ModalForm } from '@/components/Modal';
import { SelectUser, TableUsers, useUsers } from '@/features/users';
import { useDialogsStore } from '@/stores/dialogs';
import { useSetEditors } from '../../backend/useSetEditors';

View File

@ -1,15 +1,16 @@
'use no memo'; // TODO: remove when react hook forms are compliant with react compiler
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import { useMemo } from 'react';
import { useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { useRSFormSuspense } from '@/features/rsform';
import { MiniButton } from '@/components/Control';
import { IconReset, IconSave } from '@/components/Icons';
import { TextArea, TextInput } from '@/components/Input';
import { ModalView } from '@/components/Modal';
import { useRSFormSuspense } from '@/features/rsform';
import { useDialogsStore } from '@/stores/dialogs';
import { errorMsg } from '@/utils/labels';
@ -17,6 +18,7 @@ import { IVersionUpdateDTO, schemaVersionUpdate } from '../../backend/types';
import { useMutatingLibrary } from '../../backend/useMutatingLibrary';
import { useVersionDelete } from '../../backend/useVersionDelete';
import { useVersionUpdate } from '../../backend/useVersionUpdate';
import TableVersions from './TableVersions';
export interface DlgEditVersionsProps {

View File

@ -1,7 +1,7 @@
'use client';
import clsx from 'clsx';
import { useIntl } from 'react-intl';
import clsx from 'clsx';
import { MiniButton } from '@/components/Control';
import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/DataTable';

View File

@ -1,18 +1,19 @@
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { useRef } from 'react';
import { Controller, useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { urls, useConceptNavigation } from '@/app';
import { useAuthSuspense } from '@/features/auth';
import { Overlay } from '@/components/Container';
import { Button, MiniButton, SubmitButton } from '@/components/Control';
import { VisibilityIcon } from '@/components/DomainIcons';
import { IconDownload } from '@/components/Icons';
import { InfoError } from '@/components/InfoError';
import { Label, TextArea, TextInput } from '@/components/Input';
import { useAuthSuspense } from '@/features/auth';
import { EXTEOR_TRS_FILE } from '@/utils/constants';
import { ICreateLibraryItemDTO, schemaCreateLibraryItem } from '../../backend/types';

View File

@ -1,7 +1,7 @@
'use client';
import fileDownload from 'js-file-download';
import { toast } from 'react-toastify';
import fileDownload from 'js-file-download';
import { Overlay } from '@/components/Container';
import { MiniButton } from '@/components/Control';
@ -15,6 +15,7 @@ import { useApplyLibraryFilter } from '../../backend/useApplyLibraryFilter';
import { useLibrarySuspense } from '../../backend/useLibrary';
import { useRenameLocation } from '../../backend/useRenameLocation';
import { useCreateLibraryFilter, useLibrarySearchStore } from '../../stores/librarySearch';
import TableLibraryItems from './TableLibraryItems';
import ToolbarSearch from './ToolbarSearch';
import ViewSideLocation from './ViewSideLocation';

View File

@ -1,16 +1,17 @@
'use client';
import clsx from 'clsx';
import { useLayoutEffect, useState } from 'react';
import { useIntl } from 'react-intl';
import clsx from 'clsx';
import { urls, useConceptNavigation } from '@/app';
import { useLabelUser } from '@/features/users';
import { FlexColumn } from '@/components/Container';
import { MiniButton, TextURL } from '@/components/Control';
import DataTable, { createColumnHelper, IConditionalStyle, VisibilityState } from '@/components/DataTable';
import { IconFolderTree } from '@/components/Icons';
import { CProps } from '@/components/props';
import { useLabelUser } from '@/features/users';
import useWindowSize from '@/hooks/useWindowSize';
import { useFitHeight } from '@/stores/appLayout';
import { usePreferencesStore } from '@/stores/preferences';

View File

@ -2,6 +2,8 @@
import clsx from 'clsx';
import { SelectUser } from '@/features/users';
import { MiniButton, SelectorButton } from '@/components/Control';
import { LocationIcon, VisibilityIcon } from '@/components/DomainIcons';
import { Dropdown, DropdownButton, useDropdown } from '@/components/Dropdown';
@ -16,7 +18,6 @@ import {
} from '@/components/Icons';
import { SearchBar } from '@/components/Input';
import { CProps } from '@/components/props';
import { SelectUser } from '@/features/users';
import { prefixes } from '@/utils/constants';
import { tripleToggleColor } from '@/utils/utils';

View File

@ -1,12 +1,13 @@
import clsx from 'clsx';
import { toast } from 'react-toastify';
import clsx from 'clsx';
import { useAuthSuspense } from '@/features/auth';
import { BadgeHelp, HelpTopic } from '@/features/help';
import { MiniButton } from '@/components/Control';
import { SubfoldersIcon } from '@/components/DomainIcons';
import { IconFolderEdit, IconFolderTree } from '@/components/Icons';
import { CProps } from '@/components/props';
import { useAuthSuspense } from '@/features/auth';
import { BadgeHelp, HelpTopic } from '@/features/help';
import useWindowSize from '@/hooks/useWindowSize';
import { useFitHeight } from '@/stores/appLayout';
import { PARAMETER, prefixes } from '@/utils/constants';

View File

@ -3,9 +3,11 @@
*/
import { ILibraryItem } from '@/features/library/models/library';
import { Graph } from '@/models/Graph';
import { IOperation, IOperationSchema, IOperationSchemaStats, OperationType } from '../models/oss';
import { IOperationSchemaDTO } from './types';
/**

View File

@ -1,8 +1,9 @@
import { queryOptions } from '@tanstack/react-query';
import { IConstituentaReference, ITargetCst } from '@/features/rsform/models/rsform';
import { axiosGet, axiosPatch, axiosPost } from '@/backend/apiTransport';
import { DELAYS, KEYS } from '@/backend/configuration';
import { IConstituentaReference, ITargetCst } from '@/features/rsform/models/rsform';
import { infoMsg } from '@/utils/labels';
import {

View File

@ -1,8 +1,9 @@
import { useQuery, useSuspenseQuery } from '@tanstack/react-query';
import { queryClient } from '@/backend/queryClient';
import { useLibrary, useLibrarySuspense } from '@/features/library/backend/useLibrary';
import { queryClient } from '@/backend/queryClient';
import { ossApi } from './api';
import { OssLoader } from './OssLoader';

View File

@ -1,8 +1,9 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { ILibraryItem } from '@/features/library/models/library';
import { KEYS } from '@/backend/configuration';
import { ossApi } from './api';
import { IOperationUpdateDTO } from './types';

View File

@ -1,7 +1,7 @@
'use client';
import clsx from 'clsx';
import { useState } from 'react';
import clsx from 'clsx';
import { MiniButton } from '@/components/Control';
import DataTable, { createColumnHelper } from '@/components/DataTable';
@ -10,6 +10,7 @@ import { CProps } from '@/components/props';
import { NoData } from '@/components/View';
import { IOperation, OperationID } from '../models/oss';
import SelectOperation from './SelectOperation';
interface PickMultiOperationProps extends CProps.Styling {

View File

@ -1,14 +1,15 @@
'use client';
import { Controller, useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Controller, useForm } from 'react-hook-form';
import { ILibraryItem, LibraryItemType, PickSchema, useLibrary } from '@/features/library';
import { MiniButton } from '@/components/Control';
import { IconReset } from '@/components/Icons';
import { Label } from '@/components/Input';
import { ModalForm } from '@/components/Modal';
import { ILibraryItem, LibraryItemType, PickSchema, useLibrary } from '@/features/library';
import { useDialogsStore } from '@/stores/dialogs';
import { IInputUpdateDTO, IOperationPosition, schemaInputUpdate } from '../backend/types';

View File

@ -1,13 +1,14 @@
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { useState } from 'react';
import { FormProvider, useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { HelpTopic } from '@/features/help';
import { ModalForm } from '@/components/Modal';
import { TabLabel, TabList, TabPanel, Tabs } from '@/components/Tabs';
import { HelpTopic } from '@/features/help';
import { useDialogsStore } from '@/stores/dialogs';
import { IOperationCreateDTO, IOperationPosition, schemaOperationCreate } from '../../backend/types';
@ -15,6 +16,7 @@ import { useOperationCreate } from '../../backend/useOperationCreate';
import { describeOperationType, labelOperationType } from '../../labels';
import { IOperationSchema, OperationID, OperationType } from '../../models/oss';
import { calculateInsertPosition } from '../../models/ossAPI';
import TabInputOperation from './TabInputOperation';
import TabSynthesisOperation from './TabSynthesisOperation';

View File

@ -2,14 +2,16 @@
import { Controller, useFormContext, useWatch } from 'react-hook-form';
import { ILibraryItem, LibraryItemType, PickSchema, useLibrary } from '@/features/library';
import { MiniButton } from '@/components/Control';
import { IconReset } from '@/components/Icons';
import { Checkbox, Label, TextArea, TextInput } from '@/components/Input';
import { ILibraryItem, LibraryItemType, PickSchema, useLibrary } from '@/features/library';
import { useDialogsStore } from '@/stores/dialogs';
import { IOperationCreateDTO } from '../../backend/types';
import { sortItemsForOSS } from '../../models/ossAPI';
import { DlgCreateOperationProps } from './DlgCreateOperation';
function TabInputOperation() {

View File

@ -6,6 +6,7 @@ import { useDialogsStore } from '@/stores/dialogs';
import { IOperationCreateDTO } from '../../backend/types';
import { PickMultiOperation } from '../../components/PickMultiOperation';
import { DlgCreateOperationProps } from './DlgCreateOperation';
function TabSynthesisOperation() {

View File

@ -1,12 +1,13 @@
'use client';
import { Controller, useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Controller, useForm } from 'react-hook-form';
import { HelpTopic } from '@/features/help';
import { Checkbox, TextInput } from '@/components/Input';
import { ModalForm } from '@/components/Modal';
import { HelpTopic } from '@/features/help';
import { useDialogsStore } from '@/stores/dialogs';
import { IOperationDeleteDTO, IOperationPosition, schemaOperationDelete } from '../backend/types';

View File

@ -1,19 +1,21 @@
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { Suspense, useState } from 'react';
import { FormProvider, useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { HelpTopic } from '@/features/help';
import { Loader } from '@/components/Loader';
import { ModalForm } from '@/components/Modal';
import { TabLabel, TabList, TabPanel, Tabs } from '@/components/Tabs';
import { HelpTopic } from '@/features/help';
import { useDialogsStore } from '@/stores/dialogs';
import { IOperationPosition, IOperationUpdateDTO, schemaOperationUpdate } from '../../backend/types';
import { useOperationUpdate } from '../../backend/useOperationUpdate';
import { IOperation, IOperationSchema, OperationType } from '../../models/oss';
import TabArguments from './TabArguments';
import TabOperation from './TabOperation';
import TabSynthesis from './TabSynthesis';

View File

@ -7,6 +7,7 @@ import { useDialogsStore } from '@/stores/dialogs';
import { IOperationUpdateDTO } from '../../backend/types';
import { PickMultiOperation } from '../../components/PickMultiOperation';
import { DlgEditOperationProps } from './DlgEditOperation';
function TabArguments() {

View File

@ -2,13 +2,15 @@
import { Controller, useFormContext, useWatch } from 'react-hook-form';
import { TextArea } from '@/components/Input';
import { PickSubstitutions, useRSForms } from '@/features/rsform';
import { TextArea } from '@/components/Input';
import { useDialogsStore } from '@/stores/dialogs';
import { APP_COLORS } from '@/styling/colors';
import { IOperationUpdateDTO } from '../../backend/types';
import { SubstitutionValidator } from '../../models/ossAPI';
import { DlgEditOperationProps } from './DlgEditOperation';
function TabSynthesis() {

View File

@ -1,17 +1,18 @@
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { useState } from 'react';
import { Controller, useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { HelpTopic } from '@/features/help';
import { ILibraryItem, SelectLibraryItem, useLibrary } from '@/features/library';
import { PickMultiConstituenta, useRSForm } from '@/features/rsform';
import { MiniButton } from '@/components/Control';
import { RelocateUpIcon } from '@/components/DomainIcons';
import { Loader } from '@/components/Loader';
import { ModalForm } from '@/components/Modal';
import { HelpTopic } from '@/features/help';
import { ILibraryItem, SelectLibraryItem, useLibrary } from '@/features/library';
import { PickMultiConstituenta, useRSForm } from '@/features/rsform';
import { useDialogsStore } from '@/stores/dialogs';
import { ICstRelocateDTO, IOperationPosition, schemaCstRelocate } from '../backend/types';

View File

@ -3,6 +3,7 @@
*/
import { ILibraryItemData } from '@/features/library/models/library';
import { ICstSubstitute } from '@/features/rsform';
import { Graph } from '@/models/Graph';
/**

View File

@ -12,6 +12,7 @@ import {
extractGlobals,
isSetTypification
} from '@/features/rsform/models/rslangAPI';
import { limits, PARAMETER } from '@/utils/constants';
import { infoMsg } from '@/utils/labels';
import { TextMatcher } from '@/utils/utils';
@ -19,6 +20,7 @@ import { TextMatcher } from '@/utils/utils';
import { Graph } from '../../../models/Graph';
import { IOperationPosition } from '../backend/types';
import { describeSubstitutionError } from '../labels';
import { IOperation, IOperationSchema, OperationID, OperationType, SubstitutionErrorType } from './oss';
import { Position2D } from './ossLayout';

View File

@ -2,13 +2,15 @@
import clsx from 'clsx';
import { FlexColumn } from '@/components/Container';
import { EditorLibraryItem } from '@/features/library';
import { ToolbarRSFormCard } from '@/features/rsform';
import { FlexColumn } from '@/components/Container';
import { useModificationStore } from '@/stores/modification';
import { globals } from '@/utils/constants';
import { useOssEdit } from '../OssEditContext';
import FormOSS from './FormOSS';
import OssStats from './OssStats';

View File

@ -1,16 +1,17 @@
'use no memo'; // TODO: remove when react hook forms are compliant with react compiler
'use client';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { useEffect } from 'react';
import { useForm, useWatch } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import clsx from 'clsx';
import { LibraryItemType, ToolbarItemAccess, useUpdateItem } from '@/features/library';
import { IUpdateLibraryItemDTO, schemaUpdateLibraryItem } from '@/features/library/backend/types';
import { SubmitButton } from '@/components/Control';
import { IconSave } from '@/components/Icons';
import { TextArea, TextInput } from '@/components/Input';
import { LibraryItemType, ToolbarItemAccess, useUpdateItem } from '@/features/library';
import { IUpdateLibraryItemDTO, schemaUpdateLibraryItem } from '@/features/library/backend/types';
import { useModificationStore } from '@/stores/modification';
import { globals } from '@/utils/constants';

View File

@ -1,6 +1,5 @@
'use client';
import { toPng } from 'html-to-image';
import { useEffect, useState } from 'react';
import { toast } from 'react-toastify';
import {
@ -15,11 +14,13 @@ import {
useOnSelectionChange,
useReactFlow
} from 'reactflow';
import { toPng } from 'html-to-image';
import { urls, useConceptNavigation } from '@/app';
import { useLibrary } from '@/features/library';
import { Overlay } from '@/components/Container';
import { CProps } from '@/components/props';
import { useLibrary } from '@/features/library';
import { useMainHeight } from '@/stores/appLayout';
import { useModificationStore } from '@/stores/modification';
import { APP_COLORS } from '@/styling/colors';
@ -34,6 +35,7 @@ import { OperationID } from '../../../models/oss';
import { OssNode } from '../../../models/ossLayout';
import { useOSSGraphStore } from '../../../stores/ossGraph';
import { useOssEdit } from '../OssEditContext';
import { OssNodeTypes } from './graph/OssNodeTypes';
import NodeContextMenu, { ContextMenuData } from './NodeContextMenu';
import ToolbarOssGraph from './ToolbarOssGraph';

View File

@ -2,6 +2,8 @@
import clsx from 'clsx';
import { BadgeHelp, HelpTopic } from '@/features/help';
import { MiniButton } from '@/components/Control';
import {
IconAnimation,
@ -18,7 +20,6 @@ import {
IconReset,
IconSave
} from '@/components/Icons';
import { BadgeHelp, HelpTopic } from '@/features/help';
import { useModificationStore } from '@/stores/modification';
import { PARAMETER } from '@/utils/constants';
import { prepareTooltip } from '@/utils/utils';

View File

@ -1,6 +1,7 @@
import { Handle, Position } from 'reactflow';
import { OssNodeInternal } from '../../../../models/ossLayout';
import NodeCore from './NodeCore';
function InputNode(node: OssNodeInternal) {

View File

@ -3,6 +3,7 @@
import { Handle, Position } from 'reactflow';
import { OssNodeInternal } from '../../../../models/ossLayout';
import NodeCore from './NodeCore';
function OperationNode(node: OssNodeInternal) {

View File

@ -1,6 +1,9 @@
'use client';
import { urls, useConceptNavigation } from '@/app';
import { useAuthSuspense } from '@/features/auth';
import { useRoleStore, UserRole } from '@/features/users';
import { Divider } from '@/components/Container';
import { Button } from '@/components/Control';
import { Dropdown, DropdownButton, useDropdown } from '@/components/Dropdown';
@ -18,12 +21,11 @@ import {
IconReader,
IconShare
} from '@/components/Icons';
import { useAuthSuspense } from '@/features/auth';
import { useRoleStore, UserRole } from '@/features/users';
import { describeAccessMode as describeUserRole, labelAccessMode as labelUserRole } from '@/utils/labels';
import { sharePage } from '@/utils/utils';
import { useMutatingOss } from '../../backend/useMutatingOss';
import { useOssEdit } from './OssEditContext';
function MenuOssTabs() {

View File

@ -7,6 +7,7 @@ import { useAuthSuspense } from '@/features/auth';
import { ILibraryItemEditor, useDeleteItem, useLibrarySearchStore } from '@/features/library';
import { RSTabID } from '@/features/rsform/pages/RSFormPage/RSEditContext';
import { useRoleStore, UserRole } from '@/features/users';
import { useDialogsStore } from '@/stores/dialogs';
import { usePreferencesStore } from '@/stores/preferences';
import { promptText } from '@/utils/labels';

View File

@ -6,6 +6,7 @@ import { useParams } from 'react-router';
import { z } from 'zod';
import { urls, useBlockNavigation, useConceptNavigation } from '@/app';
import { isAxiosError } from '@/backend/apiTransport';
import { TextURL } from '@/components/Control';
import { ErrorData } from '@/components/InfoError';

View File

@ -1,9 +1,10 @@
'use client';
import clsx from 'clsx';
import { useEffect } from 'react';
import clsx from 'clsx';
import { useConceptNavigation } from '@/app/Navigation/NavigationContext';
import { Overlay } from '@/components/Container';
import { TabLabel, TabList, TabPanel, Tabs } from '@/components/Tabs';
import { useAppLayoutStore } from '@/stores/appLayout';

View File

@ -8,6 +8,7 @@ import { CstType, IConstituenta, IRSForm, IRSFormStats } from '../models/rsform'
import { inferClass, inferStatus, inferTemplate, isBaseSet, isFunctional } from '../models/rsformAPI';
import { ParsingStatus, ValueClass } from '../models/rslang';
import { extractGlobals, isSimpleExpression, splitTemplateDefinition } from '../models/rslangAPI';
import { IRSFormDTO } from './types';
/**

View File

@ -6,6 +6,7 @@ import { infoMsg } from '@/utils/labels';
import { IConstituentaList, IConstituentaMeta, ITargetCst } from '../models/rsform';
import { IExpressionParse } from '../models/rslang';
import {
ICheckConstituentaDTO,
ICstCreatedResponse,

View File

@ -1,6 +1,7 @@
import { z } from 'zod';
import { ILibraryItemReference, ILibraryItemVersioned } from '@/features/library/models/library';
import { errorMsg } from '@/utils/labels';
import { CstType, IConstituentaMeta, IInheritanceInfo, TermForm } from '../models/rsform';

View File

@ -1,8 +1,9 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { useUpdateTimestamp } from '@/features/library';
import { KEYS } from '@/backend/configuration';
import { rsformsApi } from './api';
import { ICstCreateDTO } from './types';

View File

@ -1,9 +1,11 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { useUpdateTimestamp } from '@/features/library';
import { KEYS } from '@/backend/configuration';
import { IConstituentaList } from '../models/rsform';
import { rsformsApi } from './api';
export const useCstDelete = () => {

View File

@ -1,8 +1,9 @@
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { KEYS } from '@/backend/configuration';
import { useUpdateTimestamp } from '@/features/library';
import { KEYS } from '@/backend/configuration';
import { rsformsApi } from './api';
import { ICstRenameDTO } from './types';

Some files were not shown because too many files have changed in this diff Show More