diff --git a/config/vite.php b/config/vite.php
index a0a3c522c..7e5fcfea3 100644
--- a/config/vite.php
+++ b/config/vite.php
@@ -49,7 +49,10 @@ return [
| These aliases will be added to the Vite configuration and used
| to generate a proper tsconfig.json file.
*/
- 'aliases' => [],
+ 'aliases' => [
+ '@openstamanager/assets' => 'resources/static',
+ '@openstamanager/scss' => 'resources/scss',
+ ],
/*
|--------------------------------------------------------------------------
@@ -115,7 +118,7 @@ return [
| the development server starts.
*/
'commands' => [
- //'vite:aliases',
+ 'vite:aliases',
// 'typescript:generate'
],
];
diff --git a/gulpfile.ts b/gulpfile.ts
index 498bc7603..fc85cde4f 100644
--- a/gulpfile.ts
+++ b/gulpfile.ts
@@ -1,4 +1,3 @@
-/* eslint-disable no-console */
/*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.r.l.
@@ -17,4 +16,5 @@
* along with this program. If not, see .
*/
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
import gulp from 'gulp';
diff --git a/package.json b/package.json
index 846aba46e..7dbb9ef10 100644
--- a/package.json
+++ b/package.json
@@ -60,7 +60,7 @@
"redaxios": "^0.4.1"
},
"devDependencies": {
- "@maicol07/eslint-config": "^2.1.2",
+ "@maicol07/eslint-config": "^2.1.4",
"@openstamanager/vite-config": "github:devcode-it/openstamanager-vite-config",
"@types/gulp": "^4.0.0",
"@types/lodash": "^4.14.178",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6aa6d36c6..80fe11344 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3,7 +3,7 @@ lockfileVersion: 5.3
specifiers:
'@inertiajs/inertia': ^0.10.1
'@inertiajs/progress': ^0.2.7
- '@maicol07/eslint-config': ^2.1.2
+ '@maicol07/eslint-config': ^2.1.4
'@maicol07/inertia-mithril': ^0.4.2
'@maicol07/mwc-card': ^0.25.3
'@maicol07/mwc-layout-grid': ^0.25.3-1
@@ -113,7 +113,7 @@ dependencies:
redaxios: 0.4.1
devDependencies:
- '@maicol07/eslint-config': 2.1.2
+ '@maicol07/eslint-config': 2.1.4
'@openstamanager/vite-config': github.com/devcode-it/openstamanager-vite-config/9399c4a34b39c0a80408db47575794f089465be5_sass@1.49.0
'@types/gulp': 4.0.9
'@types/lodash': 4.14.178
@@ -1346,8 +1346,8 @@ packages:
resolution: {integrity: sha512-B2JdRMwCGv+VpIRj3CYVQBx3muPDeE8y+HPgWqzrAHsO5/40BpwDFZeplIV790BaTqDVUDvZOKMSbuFM9zWC0w==}
dev: false
- /@maicol07/eslint-config/2.1.2:
- resolution: {integrity: sha512-9h75NkOwRvAUh52O1NsvYeFaVkOGxd8QNwQtpPLxXYjoM2IrJO59Al6wG+rVaI2np25ssMVuag+s3RO0rzuzeg==}
+ /@maicol07/eslint-config/2.1.4:
+ resolution: {integrity: sha512-g6PHY17wIU9zKnQEEo8hd/6q7Zyz4iUC13JaMUITUMSwls19mNUqGnK4eYuo8+wzu8vPgvks/RA/AZE0T6wsgg==}
dependencies:
'@typescript-eslint/eslint-plugin': 5.9.1_46ff1e3eeda39b5395c18b563a83af7a
'@typescript-eslint/parser': 5.9.1_eslint@8.6.0+typescript@4.5.5
@@ -2956,7 +2956,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.19.1
- caniuse-lite: 1.0.30001301
+ caniuse-lite: 1.0.30001302
fraction.js: 4.1.2
normalize-range: 0.1.2
picocolors: 1.0.0
@@ -3107,7 +3107,7 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001301
+ caniuse-lite: 1.0.30001302
electron-to-chromium: 1.4.53
escalade: 3.1.1
node-releases: 2.0.1
@@ -3173,8 +3173,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /caniuse-lite/1.0.30001301:
- resolution: {integrity: sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==}
+ /caniuse-lite/1.0.30001302:
+ resolution: {integrity: sha512-YYTMO+tfwvgUN+1ZnRViE53Ma1S/oETg+J2lISsqi/ZTNThj3ZYBOKP2rHwJc37oCsPqAzJ3w2puZHn0xlLPPw==}
dev: true
/cash-dom/8.1.0:
diff --git a/resources/js/Components/Mdi.tsx b/resources/js/Components/Mdi.tsx
index 75b2d64bd..2001775ec 100644
--- a/resources/js/Components/Mdi.tsx
+++ b/resources/js/Components/Mdi.tsx
@@ -1,7 +1,8 @@
+import {MaterialIcons} from '../typings';
import Component from './Component';
type Attributes = {
- icon?: string
+ icon?: MaterialIcons
};
declare global {
diff --git a/resources/js/Components/Pages/RecordsPage.tsx b/resources/js/Components/Pages/RecordsPage.tsx
index 3e73891e6..827e23076 100644
--- a/resources/js/Components/Pages/RecordsPage.tsx
+++ b/resources/js/Components/Pages/RecordsPage.tsx
@@ -28,7 +28,7 @@ import type {
SelectT,
TextAreaT,
TextFieldT
-} from '../../types';
+} from '../../typings';
import {
getFormData,
isFormValid,
@@ -57,6 +57,8 @@ export type ColumnsT = Record;
export type RowsT = Collection;
export type SectionsT = Record;
+const FIELDS: string = 'text-field, text-area, material-select';
+
/**
* @abstract
*/
@@ -160,8 +162,8 @@ export class RecordsPage extends Page {
const dialog = $('mwc-dialog#add-record-dialog');
dialog
- // eslint-disable-next-line sonarjs/no-duplicate-string
- .find('text-field, text-area, material-select')
+ // eslint-disable-next-line unicorn/no-array-callback-reference
+ .find(FIELDS)
.each(async (index, field) => {
field.innerHTML = await this.getFieldBody(field as HTMLFormElement);
(field as HTMLInputElement).value = this.getModelValue(instance, field.id) as string;
@@ -318,7 +320,8 @@ export class RecordsPage extends Page {
openNewRecordDialog(form: Cash, dialog: Cash) {
form
- .find('text-field, text-area, material-select')
+ // eslint-disable-next-line unicorn/no-array-callback-reference
+ .find(FIELDS)
.each(async (index, field) => {
field.innerHTML = await this.getFieldBody(field as HTMLFormElement);
(field as HTMLInputElement).value = $(field)
@@ -340,7 +343,6 @@ export class RecordsPage extends Page {
if (isFormValid(form)) {
const data = collect(getFormData(form));
// @ts-ignore
- // eslint-disable-next-line new-cap
const instance = this.rows.get(data.get('id'), new this.model() as IModel) as IModel;
const modelId = await this.setter(instance, data);
@@ -424,7 +426,6 @@ export class RecordsPage extends Page {
}
if (typeof column === 'object' && column.valueModifier) {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
value = column.valueModifier(model, field);
}
@@ -450,14 +451,13 @@ export class RecordsPage extends Page {
}
}
- async getFieldBody(field: HTMLFormElement) {
+ async getFieldBody(field: HTMLFormElement & FieldT) {
const list = [];
switch (field.type ?? field.getAttribute('type')) {
- case 'select':
- // eslint-disable-next-line no-case-declarations
- const section = collect(this.sections).first((s) => field.id in s.fields);
- // eslint-disable-next-line no-case-declarations
+ case 'select': {
+ const section = collect(this.sections)
+ .first((s) => field.id in s.fields);
let {options} = section.fields[field.id] as SelectT;
if (options instanceof Promise) {
options = await options;
@@ -474,18 +474,18 @@ export class RecordsPage extends Page {
}
break;
-
+ }
case 'checkbox':
return '';
-
case 'radio':
return '';
-
default:
}
- if (field.icon) {
- list.push(render());
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ const {icon} = field;
+ if (typeof icon === 'string') {
+ list.push(render());
}
return list.join('');
diff --git a/resources/js/Models/Model.ts b/resources/js/Models/Model.ts
index 13c9affb5..a41340909 100644
--- a/resources/js/Models/Model.ts
+++ b/resources/js/Models/Model.ts
@@ -21,7 +21,7 @@ export abstract class Model extends BaseModel {
super();
// Return a proxy of this object to allow dynamic attributes getters and setters
- // eslint-disable-next-line no-constructor-return, @typescript-eslint/no-unsafe-return
+ // eslint-disable-next-line no-constructor-return
return new Proxy(this, {
get(target, property: string, receiver): any {
const snakeCasedProperty = snakeCase(property);
diff --git a/resources/js/Views/AdminSetupPage.tsx b/resources/js/Views/AdminSetupPage.tsx
index 77e28d4b4..ec016e08e 100644
--- a/resources/js/Views/AdminSetupPage.tsx
+++ b/resources/js/Views/AdminSetupPage.tsx
@@ -12,7 +12,7 @@ import logoUrl from '/images/logo_completo.png';
import LoadingButton from '../Components/LoadingButton';
import Mdi from '../Components/Mdi';
import Page from '../Components/Page';
-import type {ErrorResponse} from '../types';
+import type {ErrorResponse} from '../typings';
import {
getFormData,
isFormValid,
diff --git a/resources/js/Views/LoginPage.tsx b/resources/js/Views/LoginPage.tsx
index 19c417c60..f3e465a54 100644
--- a/resources/js/Views/LoginPage.tsx
+++ b/resources/js/Views/LoginPage.tsx
@@ -4,6 +4,7 @@ import '@material/mwc-checkbox';
import '@material/mwc-formfield';
import '../WebComponents/TextField';
+import logoUrl from '@openstamanager/assets/images/logo_completo.png';
import type {Cash} from 'cash-dom';
import type {
Vnode,
@@ -11,13 +12,10 @@ import type {
} from 'mithril';
import redaxios from 'redaxios';
-// eslint-disable-next-line import/no-absolute-path
-import logoUrl from '/images/logo_completo.png';
-
import LoadingButton from '../Components/LoadingButton';
import Mdi from '../Components/Mdi';
import Page from '../Components/Page';
-import {ErrorResponse} from '../types';
+import {ErrorResponse} from '../typings';
import {getFormData, isFormValid, showSnackbar} from '../utils';
export default class LoginPage extends Page {
diff --git a/resources/js/Views/ResetPasswordPage.tsx b/resources/js/Views/ResetPasswordPage.tsx
index e9c4c288b..9aa7fe7a3 100644
--- a/resources/js/Views/ResetPasswordPage.tsx
+++ b/resources/js/Views/ResetPasswordPage.tsx
@@ -11,13 +11,12 @@ import type {
} from 'mithril';
import redaxios from 'redaxios';
-// eslint-disable-next-line import/no-absolute-path
-import logoUrl from '/images/logo_completo.png';
+import logoUrl from '@openstamanager/assets/images/logo_completo.png';
import LoadingButton from '../Components/LoadingButton';
import Mdi from '../Components/Mdi';
import Page from '../Components/Page';
-import {ErrorResponse} from '../types';
+import {ErrorResponse} from '../typings';
import {
getFormData,
isFormValid,
diff --git a/resources/js/Views/SetupPage.tsx b/resources/js/Views/SetupPage.tsx
index 4aca2b7a6..6eb3bfbea 100644
--- a/resources/js/Views/SetupPage.tsx
+++ b/resources/js/Views/SetupPage.tsx
@@ -16,9 +16,7 @@ import LocaleCode from 'locale-code';
import type {Vnode, VnodeDOM} from 'mithril';
import redaxios, {Response} from 'redaxios';
-// @ts-ignore
-// eslint-disable-next-line import/no-absolute-path
-import logoUrl from '/images/logo_completo.png';
+import logoUrl from '@openstamanager/assets/images/logo_completo.png';
import {Alert} from '../Components';
import Mdi from '../Components/Mdi';
diff --git a/resources/js/WebComponents/MaterialDrawer.ts b/resources/js/WebComponents/MaterialDrawer.ts
index bef222a4f..b833c447b 100644
--- a/resources/js/WebComponents/MaterialDrawer.ts
+++ b/resources/js/WebComponents/MaterialDrawer.ts
@@ -1,9 +1,8 @@
import {Drawer as MWCDrawer} from '@material/mwc-drawer';
import {css} from 'lit';
-// eslint-disable-next-line import/extensions
import {customElement} from 'lit/decorators.js';
-import type {JSXElement} from '../types';
+import type {JSXElement} from '../typings';
declare global {
namespace JSX {
@@ -21,12 +20,12 @@ export default class MaterialDrawer extends MWCDrawer {
:first-child {
border-right: none;
}
-
+
.mdc-drawer-app-content {
color: var(--mdc-theme-text-primary-on-background);
background-color: var(--mdc-theme-background);
}
-
+
.mdc-drawer {
height: calc(100% - 64px);
}
diff --git a/resources/js/WebComponents/Select.ts b/resources/js/WebComponents/Select.ts
index a0a85ac12..fa47d4ce8 100644
--- a/resources/js/WebComponents/Select.ts
+++ b/resources/js/WebComponents/Select.ts
@@ -2,10 +2,9 @@ import {Select as MWCSelect} from '@material/mwc-select';
import {waitUntil} from 'async-wait-until';
import type {TemplateResult} from 'lit';
import {css, html} from 'lit';
-// eslint-disable-next-line import/extensions
import {customElement} from 'lit/decorators.js';
-import type {JSXElement} from '../types';
+import type {JSXElement} from '../typings';
declare global {
namespace JSX {
diff --git a/resources/js/WebComponents/TextArea.ts b/resources/js/WebComponents/TextArea.ts
index 33449dd25..7a63a86e7 100644
--- a/resources/js/WebComponents/TextArea.ts
+++ b/resources/js/WebComponents/TextArea.ts
@@ -1,8 +1,7 @@
import {TextArea as MWCTextArea} from '@material/mwc-textarea';
-// eslint-disable-next-line import/extensions
import {customElement} from 'lit/decorators.js';
-import {type JSXElement} from '../types';
+import {type JSXElement} from '../typings';
declare global {
namespace JSX {
diff --git a/resources/js/WebComponents/TextField.ts b/resources/js/WebComponents/TextField.ts
index 5b7dc1742..71cdaa718 100644
--- a/resources/js/WebComponents/TextField.ts
+++ b/resources/js/WebComponents/TextField.ts
@@ -1,14 +1,13 @@
import {TextField as MWCTextField} from '@material/mwc-textfield';
+import styles from '@openstamanager/scss/material/text-field.scss';
import {waitUntil} from 'async-wait-until';
import classnames from 'classnames';
import {
type TemplateResult, css, html, unsafeCSS
} from 'lit';
-// eslint-disable-next-line import/extensions
import {customElement, property} from 'lit/decorators.js';
-import styles from '../../scss/material/text-field.scss';
-import type {JSXElement} from '../types';
+import type {JSXElement} from '../typings';
declare global {
namespace JSX {
diff --git a/resources/js/WebComponents/TopAppBar.ts b/resources/js/WebComponents/TopAppBar.ts
index 290d7ca88..f21b0eff7 100644
--- a/resources/js/WebComponents/TopAppBar.ts
+++ b/resources/js/WebComponents/TopAppBar.ts
@@ -1,6 +1,5 @@
import {TopAppBar as MWCTopAppBar} from '@material/mwc-top-app-bar';
import {css} from 'lit';
-// eslint-disable-next-line import/extensions
import {customElement} from 'lit/decorators.js';
declare global {
diff --git a/resources/js/_material.ts b/resources/js/_material.ts
index 055f1d479..64d47f832 100644
--- a/resources/js/_material.ts
+++ b/resources/js/_material.ts
@@ -26,7 +26,7 @@ import $, {
type Element
} from 'cash-dom';
-import type {JSXElement} from './types';
+import type {JSXElement} from './typings';
// Declare Material JSX components
declare global {
diff --git a/resources/js/app.ts b/resources/js/app.ts
index 00786e645..d28a82569 100644
--- a/resources/js/app.ts
+++ b/resources/js/app.ts
@@ -7,7 +7,7 @@ import redaxios from 'redaxios';
import {registerSW} from 'virtual:pwa-register';
import {type Page} from './Components';
-import {OpenSTAManager} from './types/modules';
+import {OpenSTAManager} from './typings/modules';
import {
__ as translator,
showSnackbar
@@ -72,7 +72,6 @@ $('#logout-button')
window.location.href = route('auth.login');
});
-// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const updateSW = registerSW({
async onNeedRefresh() {
const action = await showSnackbar(__('Aggiornamento del frontend disponibile!'), false, __('Ricarica'), __('Annulla'));
diff --git a/resources/js/globals.d.ts b/resources/js/globals.d.ts
index ba9dea3db..02e3f3a78 100644
--- a/resources/js/globals.d.ts
+++ b/resources/js/globals.d.ts
@@ -5,7 +5,7 @@ import type cash from 'cash-dom';
import type Mithril from 'mithril';
import type router from 'ziggy-js';
-import {OpenSTAManager} from './types/modules';
+import {OpenSTAManager} from './typings/modules';
import type {__ as translator} from './utils';
declare global {
diff --git a/resources/js/index.ts b/resources/js/index.ts
index 36c2be36c..8dd3306a0 100644
--- a/resources/js/index.ts
+++ b/resources/js/index.ts
@@ -1,6 +1,6 @@
export * from './Components';
export * from './Models';
-export * from './types';
+export * from './typings';
export * from './utils';
export * from './Views';
export * from './WebComponents';
diff --git a/resources/js/typings/forms.ts b/resources/js/typings/forms.ts
new file mode 100644
index 000000000..117860dee
--- /dev/null
+++ b/resources/js/typings/forms.ts
@@ -0,0 +1,89 @@
+import {ListItemBase} from '@material/mwc-list/mwc-list-item-base.js';
+import {
+ TextAreaCharCounter,
+ TextFieldInputMode,
+ TextFieldType
+} from '@material/mwc-textfield';
+
+import {MaterialIcons} from './icons';
+
+export interface FieldT {
+ id?: string
+ name?: string
+ value?: string
+ label?: string
+ outlined?: boolean
+ helper?: string
+ icon?: string | MaterialIcons
+ placeholder?: string
+ disabled?: boolean
+ required?: boolean
+ validity?: ValidityState
+ validityTransform?: (
+ value: string,
+ nativeValidity: ValidityState,
+ ) => Partial | null
+ validateOnInitialRender?: boolean
+ validationMessage?: string
+ // Custom
+ type?: string
+}
+
+export type TextFieldT = FieldT & {
+ type?: TextFieldType
+ prefix?: string
+ suffix?: string
+ iconTrailing?: string
+ charCounter?: boolean
+ helperPersistent?: boolean | string
+ minLength?: number
+ maxLength?: number
+ pattern?: string
+ min?: number | string
+ max?: number | string
+ size?: number | null
+ step?: number | null
+ autoValidate?: boolean
+ willValidate?: boolean
+ name?: string
+ inputMode?: TextFieldInputMode
+ readOnly?: boolean
+ autocapitalize?:
+ | 'on'
+ | 'off'
+ | 'sentences'
+ | 'none'
+ | 'words'
+ | 'characters'
+ endAligned?: boolean
+ elementType?: 'text-field'
+};
+
+export type TextAreaT = FieldT & {
+ rows?: number
+ cols?: number
+ type?: TextFieldType
+ iconTrailing?: string
+ charCounter?: boolean | TextAreaCharCounter
+ willValidate?: boolean
+ helperPersistent?: boolean | string
+ maxLength?: number
+ elementType?: 'text-area'
+};
+
+export type SelectOptionsT = {
+ label: string
+ value: string
+}[];
+
+export type SelectT = FieldT & {
+ multiple?: boolean
+ naturalMenuWidth?: boolean
+ fixedMenuPosition?: boolean
+ willValidate?: boolean
+ elementType?: 'material-select'
+ selected?: ListItemBase | null
+ items?: ListItemBase[]
+ index?: number
+ options?: SelectOptionsT | Promise
+};
diff --git a/resources/js/types.ts b/resources/js/typings/icons.ts
similarity index 93%
rename from resources/js/types.ts
rename to resources/js/typings/icons.ts
index b7299d513..2812f102d 100644
--- a/resources/js/types.ts
+++ b/resources/js/typings/icons.ts
@@ -1,103 +1,3 @@
-import type {ListItemBase} from '@material/mwc-list/mwc-list-item-base';
-import type {
- TextAreaCharCounter,
- TextFieldInputMode,
- TextFieldType
-} from '@material/mwc-textfield';
-import type {
- Attributes,
- CommonAttributes
-} from 'mithril';
-import type {Response} from 'redaxios';
-
-export type ErrorResponse = Response<{errors: Record}>;
-
-export type JSXElement = Omit, 'children' | 'style'>
-& CommonAttributes
-& {
- children?: JSX.Element | JSX.Element[] | Attributes | Attributes[],
- style?: string | CSSStyleDeclaration
-};
-
-export type FieldT = {
- id?: string
- name?: string
- value?: string
- label?: string
- outlined?: boolean
- helper?: string
- icon?: string | MaterialIcons
- placeholder?: string
- disabled?: boolean
- required?: boolean
- validity?: ValidityState
- validityTransform?: (
- value: string,
- nativeValidity: ValidityState,
- ) => Partial | null
- validateOnInitialRender?: boolean
- validationMessage?: string
- // Custom
- type?: string
-};
-export type TextFieldT = FieldT & {
- type?: TextFieldType
- prefix?: string
- suffix?: string
- iconTrailing?: string
- charCounter?: boolean
- helperPersistent?: boolean | string
- minLength?: number
- maxLength?: number
- pattern?: string
- min?: number | string
- max?: number | string
- size?: number | null
- step?: number | null
- autoValidate?: boolean
- willValidate?: boolean
- name?: string
- inputMode?: TextFieldInputMode
- readOnly?: boolean
- autocapitalize?:
- | 'on'
- | 'off'
- | 'sentences'
- | 'none'
- | 'words'
- | 'characters'
- endAligned?: boolean
- elementType?: 'text-field'
-};
-export type TextAreaT = FieldT & {
- rows?: number
- cols?: number
- type?: TextFieldType
- iconTrailing?: string
- charCounter?: boolean | TextAreaCharCounter
- willValidate?: boolean
- helperPersistent?: boolean | string
- maxLength?: number
- elementType?: 'text-area'
-};
-
-export type SelectOptionsT = {
- label: string
- value: string
-}[];
-
-export type SelectT = FieldT & {
- multiple?: boolean
- naturalMenuWidth?: boolean
- fixedMenuPosition?: boolean
- willValidate?: boolean
- elementType?: 'material-select'
- selected?: ListItemBase | null
- items?: ListItemBase[]
- index?: number
- options?: SelectOptionsT | Promise
-};
-
export type MaterialIcons =
| '10k'
| '10mp'
diff --git a/resources/js/typings/index.ts b/resources/js/typings/index.ts
new file mode 100644
index 000000000..de2674ee3
--- /dev/null
+++ b/resources/js/typings/index.ts
@@ -0,0 +1,7 @@
+/**
+ * This file exports only from files that has exportable types definition or interfaces.
+ */
+
+export * from './forms';
+export * from './icons';
+export * from './misc';
diff --git a/resources/js/typings/misc.ts b/resources/js/typings/misc.ts
new file mode 100644
index 000000000..99ecc3f2b
--- /dev/null
+++ b/resources/js/typings/misc.ts
@@ -0,0 +1,15 @@
+import type {
+ Attributes,
+ CommonAttributes
+} from 'mithril';
+import type {Response} from 'redaxios';
+
+export type ErrorResponse = Response<{errors: Record}>;
+
+export type JSXElement = Omit, 'children' | 'style'>
+& CommonAttributes
+& {
+ children?: JSX.Element | JSX.Element[] | Attributes | Attributes[],
+ style?: string | CSSStyleDeclaration
+};
+
diff --git a/resources/js/types/modules.d.ts b/resources/js/typings/modules.d.ts
similarity index 80%
rename from resources/js/types/modules.d.ts
rename to resources/js/typings/modules.d.ts
index 0b3aa5a92..95b400455 100644
--- a/resources/js/types/modules.d.ts
+++ b/resources/js/typings/modules.d.ts
@@ -1,4 +1,4 @@
-import {MaterialIcons} from '../types';
+import {MaterialIcons} from './icons';
declare module OpenSTAManager {
export type Modules = Record;
diff --git a/resources/js/lib/typings.d.ts b/resources/js/typings/packages.d.ts
similarity index 100%
rename from resources/js/lib/typings.d.ts
rename to resources/js/typings/packages.d.ts
diff --git a/tsconfig.json b/tsconfig.json
index 6ee2ae0db..d30777e1e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -16,14 +16,23 @@
"dom.iterable"
],
"types": [
+ "vite/client",
"vite-plugin-pwa/client"
],
"baseUrl": ".",
"paths": {
- "/images/logo_completo.png": ["resources/static/images/logo_completo.png"]
+ "@openstamanager/assets/*": [
+ "resources/static/*"
+ ],
+ "@openstamanager/scss/*": [
+ "resources/scss/*"
+ ]
}
},
- "exclude": ["**/node_modules", "**/.*/"],
+ "exclude": [
+ "**/node_modules",
+ "**/.*/"
+ ],
"include": [
"resources/js/**/*",
"gulpfile.ts",