Updated configs and ListItemComponent
This commit is contained in:
parent
d62d9ba7b8
commit
8a890d82d2
7 changed files with 1711 additions and 10055 deletions
|
|
@ -10,16 +10,16 @@
|
|||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.vue"],
|
||||
"rules": {
|
||||
"no-undef": "off"
|
||||
}
|
||||
"files": ["*.ts", "*.vue"],
|
||||
"rules": {
|
||||
"no-undef": "off"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": ["*.vue"],
|
||||
"rules": {
|
||||
"indent": "off"
|
||||
}
|
||||
"files": ["*.vue"],
|
||||
"rules": {
|
||||
"indent": "off"
|
||||
}
|
||||
}
|
||||
],
|
||||
"parser": "vue-eslint-parser",
|
||||
|
|
@ -37,5 +37,19 @@
|
|||
"semi": ["error", "always"],
|
||||
"vue/script-indent": ["error", 2, { "baseIndent": 0, "switchCase": 1 }],
|
||||
"vue/one-component-per-file": "off"
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
"node": {
|
||||
"extensions": [".js", ".vue", ".ts", ".d.ts"]
|
||||
},
|
||||
"alias": {
|
||||
"extensions": [".vue", ".js", ".ts", ".scss", ".d.ts"],
|
||||
"map": [
|
||||
["~", "./resources/assets"],
|
||||
["@", "./node_modules"]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
11627
package-lock.json
generated
11627
package-lock.json
generated
File diff suppressed because it is too large
Load diff
57
package.json
57
package.json
|
|
@ -15,55 +15,56 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@fancyapps/ui": "^4.0.31",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.1.2",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.1.2",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.1.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.1.2",
|
||||
"@fortawesome/vue-fontawesome": "^3.0.1",
|
||||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.4.0",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.4.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.4.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.4.0",
|
||||
"@fortawesome/vue-fontawesome": "^3.0.3",
|
||||
"@rushstack/eslint-patch": "^1.3.2",
|
||||
"@sipec/vue3-tags-input": "^3.0.4",
|
||||
"@types/bootstrap": "^5.2.6",
|
||||
"@types/cropperjs": "^1.3.0",
|
||||
"@types/leaflet": "^1.9.3",
|
||||
"@types/toastify-js": "^1.11.1",
|
||||
"@types/webpack-env": "^1.18.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.36.2",
|
||||
"@typescript-eslint/parser": "^5.36.2",
|
||||
"@vue/eslint-config-typescript": "^11.0.0",
|
||||
"axios": "^0.21",
|
||||
"@types/webpack-env": "^1.18.1",
|
||||
"@typescript-eslint/eslint-plugin": "^5.60.0",
|
||||
"@typescript-eslint/parser": "^5.60.0",
|
||||
"@vue/eslint-config-typescript": "^11.0.3",
|
||||
"axios": "^0.21.4",
|
||||
"bootstrap": "^5.2.3",
|
||||
"clean-webpack-plugin": "^4.0.0",
|
||||
"cropperjs": "^1.5.12",
|
||||
"eslint": "^8.23.0",
|
||||
"eslint-plugin-vue": "^9.4.0",
|
||||
"cropperjs": "^1.5.13",
|
||||
"eslint": "^8.43.0",
|
||||
"eslint-plugin-vue": "^9.15.0",
|
||||
"eslint-webpack-plugin": "^3.2.0",
|
||||
"laravel-mix": "^6.0.6",
|
||||
"laravel-mix": "^6.0.49",
|
||||
"laravel-mix-clean": "^0.1.0",
|
||||
"laravel-mix-eslint": "^0.2.0",
|
||||
"laravel-mix-polyfill": "^3.0.1",
|
||||
"laravel-mix-stylelint": "^1.0.0",
|
||||
"postcss": "^8.1.14",
|
||||
"prettier": "^2.7.1",
|
||||
"leaflet": "^1.9.4",
|
||||
"postcss": "^8.4.24",
|
||||
"postcss-scss": "^4.0.6",
|
||||
"prettier": "2.8.8",
|
||||
"print-js": "^1.6.0",
|
||||
"resolve-url-loader": "^5.0.0",
|
||||
"sass": "^1.54.8",
|
||||
"sass": "^1.63.6",
|
||||
"sass-loader": "^12.6.0",
|
||||
"slugify": "^1.6.5",
|
||||
"stylelint": "^14.11.0",
|
||||
"slugify": "^1.6.6",
|
||||
"stylelint": "^14.16.1",
|
||||
"stylelint-config-idiomatic-order": "^8.1.0",
|
||||
"stylelint-config-sass-guidelines": "^9.0.1",
|
||||
"stylelint-config-standard-scss": "^6.1.0",
|
||||
"stylelint-scss": "^4.7.0",
|
||||
"stylelint-webpack-plugin": "^3.3.0",
|
||||
"sweetalert2": "^11.4.8",
|
||||
"sweetalert2": "^11.7.12",
|
||||
"toastify-js": "^1.12.0",
|
||||
"ts-loader": "^9.3.1",
|
||||
"typescript": "^4.8.2",
|
||||
"ts-loader": "^9.4.3",
|
||||
"typescript": "^4.9.5",
|
||||
"typescript-eslint": "^0.0.1-alpha.0",
|
||||
"vue": "^3.2.38",
|
||||
"vue-eslint-parser": "^9.1.0",
|
||||
"vue-loader": "^16.8.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"leaflet": "^1.9.3"
|
||||
"vue-eslint-parser": "^9.3.1",
|
||||
"vue-loader": "^16.8.3",
|
||||
"vue-tsc": "^1.8.1"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,7 @@
|
|||
class="table-action"
|
||||
>
|
||||
<button
|
||||
v-if="
|
||||
displayHeaders.filter((header) => {
|
||||
return header;
|
||||
}).length > 1 && itemList.length > 1
|
||||
"
|
||||
v-if="hasHeader"
|
||||
@click.prevent="removeAllHeaders()"
|
||||
class="btn btn-sm btn-danger"
|
||||
:title="__('Remove all headers')"
|
||||
|
|
@ -30,11 +26,7 @@
|
|||
class="col-6 align-middle"
|
||||
>
|
||||
{{ __("Header") }}
|
||||
({{
|
||||
displayHeaders.filter((header) => {
|
||||
return header;
|
||||
}).length
|
||||
}})
|
||||
({{ countHeaders }})
|
||||
</th>
|
||||
<th
|
||||
v-for="(column, columnIndex) of itemColumns"
|
||||
|
|
@ -107,7 +99,7 @@
|
|||
:name="`${inputName}[${String(itemIndex)}][header]`"
|
||||
type="text"
|
||||
:placeholder="__('Recipe of chocolate cookies')"
|
||||
v-model="item['header' as keyof typeof item]"
|
||||
v-model="item['header']"
|
||||
>
|
||||
<FontAwesomeIcon
|
||||
icon="fa-solid fa-angles-right"
|
||||
|
|
@ -133,7 +125,7 @@
|
|||
class="form-control form-control-sm"
|
||||
:name="`${inputName}[${String(itemIndex)}][${column[0]}]`"
|
||||
:type="itemType[columnIndex]"
|
||||
v-model="item[column[0] as keyof typeof item]"
|
||||
v-model="item[column[0]]"
|
||||
:placeholder="inputPlaceholder[columnIndex]"
|
||||
:min="itemType[columnIndex] == 'number' ? '0' : undefined"
|
||||
>
|
||||
|
|
@ -195,7 +187,7 @@ export default defineComponent({
|
|||
},
|
||||
mixins: [trans, parseLaravelErrorMessages],
|
||||
data(): {
|
||||
itemList: Object[];
|
||||
itemList: Array<Record<string,string>>;
|
||||
itemColumns: string[][];
|
||||
itemLimit: number[];
|
||||
inputName: string;
|
||||
|
|
@ -207,11 +199,11 @@ export default defineComponent({
|
|||
displayBtnAdd: boolean;
|
||||
displayBtnRemove: boolean;
|
||||
displayHeader: boolean;
|
||||
displayHeaders: boolean[];
|
||||
displayHeaders: Array<boolean>;
|
||||
tooltipList: HTMLButtonElement[];
|
||||
} {
|
||||
return {
|
||||
itemList: [{}],
|
||||
itemList: [],
|
||||
itemColumns: [[""]],
|
||||
itemLimit: [0, 0],
|
||||
inputName: "",
|
||||
|
|
@ -227,6 +219,18 @@ export default defineComponent({
|
|||
tooltipList: [],
|
||||
};
|
||||
},
|
||||
computed : {
|
||||
hasHeader() {
|
||||
return this.displayHeaders.filter((header : boolean) => {
|
||||
return header;
|
||||
}).length > 1 && this.itemList.length > 1;
|
||||
},
|
||||
countHeaders() {
|
||||
return this.displayHeaders.filter((header: boolean) => {
|
||||
return header;
|
||||
}).length;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
const json = String(this.$attrs.json ?? "{}");
|
||||
const data = JSON.parse(json);
|
||||
|
|
@ -258,7 +262,9 @@ export default defineComponent({
|
|||
}
|
||||
} else {
|
||||
this.itemList.forEach((item: { header?: string }, key) => {
|
||||
if (item.header) this.displayHeaders[key] = true;
|
||||
if (item.header) {
|
||||
this.displayHeaders[key] = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import * as Toastify from "toastify-js";
|
||||
import Toastify from "toastify-js";
|
||||
import { Options } from "toastify-js";
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
'itemLimit' => $itemLimit ?? [],
|
||||
'inputName' => $name,
|
||||
'inputPlaceholder' => $inputPlaceholder,
|
||||
'header' => $header ?? false,
|
||||
'errors' => $errors->getBag('default')->getMessages() ?? []
|
||||
];
|
||||
@endphp
|
||||
|
|
|
|||
|
|
@ -1,13 +1,22 @@
|
|||
{
|
||||
"sourceMap": true,
|
||||
"compilerOptions": {
|
||||
"esModuleInterop": true,
|
||||
"target": "esnext",
|
||||
"lib": ["es5", "es6", "es2021", "dom", "dom.iterable"],
|
||||
"module": "esnext",
|
||||
"strict": true,
|
||||
"jsx": "preserve",
|
||||
"moduleResolution": "node",
|
||||
"typeRoots": ["resources/ts/@types", "node_modules/@types"]
|
||||
"typeRoots": ["resources/ts/@types", "node_modules/@types"],
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"~/*": [
|
||||
"node_modules/*",
|
||||
"node_modules/@types/*",
|
||||
],
|
||||
"@/*": ["resources/assets/*"],
|
||||
}
|
||||
},
|
||||
"include": ["resources/**/*.js", "resources/**/*.ts", "resources/**/*.vue"],
|
||||
"exclude": ["node_modules"],
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue