@bexis2/bexis2-core-ui 0.4.96 → 0.4.97
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 +99 -25
- package/dist/components/CodeEditor/CodeEditor.svelte +2 -2
- package/dist/components/Facets/ShowMore.svelte +4 -6
- package/dist/components/File/FileUploader.svelte +6 -3
- package/dist/components/Table/Table.svelte +26 -5
- package/dist/components/Table/TableContent.svelte +226 -27
- package/dist/components/Table/TablePaginationServer.svelte +27 -8
- package/dist/components/Table/clientDB.d.ts +22 -0
- package/dist/components/Table/clientDB.js +236 -0
- package/dist/components/Table/filter.js +5 -1
- package/dist/components/Table/tableWorker.d.ts +1 -0
- package/dist/components/Table/tableWorker.js +179 -0
- package/dist/components/Table/utils.d.ts +1 -2
- package/dist/components/Table/utils.js +45 -26
- package/dist/components/form/CheckboxKvPList.svelte +15 -15
- package/dist/components/form/CheckboxList.svelte +1 -1
- package/dist/components/form/DateInput.svelte +12 -1
- package/dist/components/form/DatePickerInput.svelte +51 -29
- package/dist/components/form/Dropdown.svelte +14 -3
- package/dist/components/form/DropdownKvP.svelte +13 -2
- package/dist/components/form/InputContainer.svelte +17 -15
- package/dist/components/form/MultiSelect.svelte +30 -29
- package/dist/components/form/NumberInput.svelte +12 -1
- package/dist/components/form/TextArea.svelte +12 -1
- package/dist/components/form/TextInput.svelte +12 -1
- package/dist/components/page/Alert.svelte +5 -1
- package/dist/components/page/BackToTop.svelte +3 -1
- package/dist/components/page/Docs.svelte +9 -2
- package/dist/components/page/GoToTop.svelte +14 -15
- package/dist/components/page/Page.svelte +50 -56
- package/dist/components/page/breadcrumb/BreadcrumbDataCaller.js +11 -15
- package/dist/components/page/menu/MenuAccountBar.svelte +1 -5
- package/dist/components/page/menu/MenuDataCaller.js +1 -1
- package/dist/components/page/menu/MenuItem.svelte +9 -7
- package/dist/components/page/menu/MenuSublist.svelte +7 -5
- package/dist/components/page/menu/SettingsBar.svelte +4 -1
- package/dist/components/toggle/Toggle.svelte +9 -9
- package/dist/css/core.ui.postcss +1 -2
- package/dist/services/Api.js +4 -4
- package/dist/services/BaseCaller.js +1 -1
- package/package.json +114 -114
- package/src/lib/components/CodeEditor/CodeEditor.svelte +4 -4
- package/src/lib/components/Facets/Facets.svelte +2 -2
- package/src/lib/components/Facets/ShowMore.svelte +4 -6
- package/src/lib/components/File/FileUploader.svelte +17 -14
- package/src/lib/components/Table/Table.svelte +31 -10
- package/src/lib/components/Table/TableContent.svelte +261 -38
- package/src/lib/components/Table/TableFilter.svelte +7 -2
- package/src/lib/components/Table/TablePagination.svelte +6 -2
- package/src/lib/components/Table/TablePaginationServer.svelte +36 -10
- package/src/lib/components/Table/clientDB.js +236 -0
- package/src/lib/components/Table/filter.ts +27 -23
- package/src/lib/components/Table/tableWorker.js +179 -0
- package/src/lib/components/Table/utils.ts +75 -56
- package/src/lib/components/form/Checkbox.svelte +1 -1
- package/src/lib/components/form/CheckboxKvPList.svelte +15 -16
- package/src/lib/components/form/CheckboxList.svelte +1 -1
- package/src/lib/components/form/DateInput.svelte +13 -2
- package/src/lib/components/form/DatePickerInput.svelte +51 -29
- package/src/lib/components/form/Dropdown.svelte +14 -3
- package/src/lib/components/form/DropdownKvP.svelte +13 -2
- package/src/lib/components/form/InputContainer.svelte +18 -17
- package/src/lib/components/form/MultiSelect.svelte +30 -29
- package/src/lib/components/form/NumberInput.svelte +21 -12
- package/src/lib/components/form/TextArea.svelte +13 -2
- package/src/lib/components/form/TextInput.svelte +13 -2
- package/src/lib/components/page/Alert.svelte +5 -1
- package/src/lib/components/page/BackToTop.svelte +3 -1
- package/src/lib/components/page/Docs.svelte +9 -2
- package/src/lib/components/page/GoToTop.svelte +14 -15
- package/src/lib/components/page/Notification.svelte +1 -1
- package/src/lib/components/page/Page.svelte +67 -78
- package/src/lib/components/page/breadcrumb/Breadcrumb.svelte +2 -3
- package/src/lib/components/page/breadcrumb/BreadcrumbDataCaller.js +11 -15
- package/src/lib/components/page/menu/MenuAccountBar.svelte +1 -6
- package/src/lib/components/page/menu/MenuDataCaller.js +1 -1
- package/src/lib/components/page/menu/MenuItem.svelte +10 -8
- package/src/lib/components/page/menu/MenuSublist.svelte +35 -41
- package/src/lib/components/page/menu/SettingsBar.svelte +5 -2
- package/src/lib/components/toggle/Toggle.svelte +28 -30
- package/src/lib/css/core.ui.postcss +1 -2
- package/src/lib/index.ts +1 -2
- package/src/lib/services/Api.ts +21 -20
- package/src/lib/services/BaseCaller.js +1 -1
- package/src/lib/stores/apiStores.ts +1 -5
- package/src/lib/stores/pageStores.ts +0 -2
|
@@ -54,14 +54,16 @@ async function logOffFn() {
|
|
|
54
54
|
<ListBoxItem
|
|
55
55
|
class="text-md sm:text-sm text-surface-800 py-1 hover:text-secondary-500 bg-transparent hover:bg-surface-200"
|
|
56
56
|
bind:group={item.Title}
|
|
57
|
-
|
|
58
57
|
name="medium"
|
|
59
58
|
value={item.Title}
|
|
60
|
-
|
|
61
59
|
>
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
<a
|
|
61
|
+
id={'menu-' + item.Title.replaceAll(' ', '-')}
|
|
62
|
+
href={item.Url}
|
|
63
|
+
target={item.Target}
|
|
64
|
+
class="w-full block"
|
|
65
|
+
on:click|preventDefault={() => clickFn(item)}>{item.Title}</a
|
|
66
|
+
>
|
|
64
67
|
</ListBoxItem>
|
|
65
|
-
|
|
66
68
|
{/each}
|
|
67
69
|
</ListBox>
|
|
@@ -18,7 +18,10 @@ let popupCombobox = {
|
|
|
18
18
|
<div class="sm:hidden">
|
|
19
19
|
<AccordionItem padding="p-2">
|
|
20
20
|
<svelte:fragment slot="summary"
|
|
21
|
-
><button
|
|
21
|
+
><button
|
|
22
|
+
id="settings"
|
|
23
|
+
class="flex items-center gap-x-1 text-sm text-surface-800 w-5 h-full"
|
|
24
|
+
>
|
|
22
25
|
<span class="capitalize"><Fa icon={faCog} /></span>
|
|
23
26
|
</button></svelte:fragment
|
|
24
27
|
>
|
|
@@ -26,25 +26,25 @@ $: mode;
|
|
|
26
26
|
|
|
27
27
|
<div
|
|
28
28
|
class="lightswitch-track {classesTrack}"
|
|
29
|
-
on:click={()=>mode
|
|
29
|
+
on:click={() => (mode = !mode)}
|
|
30
30
|
on:click
|
|
31
|
-
on:keydown={()=>mode
|
|
31
|
+
on:keydown={() => (mode = !mode)}
|
|
32
32
|
on:keydown
|
|
33
33
|
on:keyup
|
|
34
34
|
on:keypress
|
|
35
35
|
role="switch"
|
|
36
36
|
aria-label="Light Switch"
|
|
37
|
-
|
|
37
|
+
aria-checked={mode}
|
|
38
38
|
title="xyz"
|
|
39
39
|
tabindex="0"
|
|
40
40
|
>
|
|
41
41
|
<!-- Thumb -->
|
|
42
42
|
<div class="lightswitch-thumb {classesThumb}">
|
|
43
43
|
<!-- SVG -->
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
{#if mode}
|
|
45
|
+
<Fa icon={faPen} color="white" />
|
|
46
|
+
{:else}
|
|
47
|
+
<Fa icon={faTrash} />
|
|
48
|
+
{/if}
|
|
49
49
|
</div>
|
|
50
|
-
</div>
|
|
50
|
+
</div>
|
package/dist/css/core.ui.postcss
CHANGED
package/dist/services/Api.js
CHANGED
|
@@ -11,7 +11,7 @@ const apiRequest = (method, url, request, customHeaders = {}, customConfig = {})
|
|
|
11
11
|
const requestVerificationToken = csrfToken;
|
|
12
12
|
const headers = {
|
|
13
13
|
authorization: 'Basic ' + btoa(username + ':' + password),
|
|
14
|
-
|
|
14
|
+
__RequestVerificationToken: requestVerificationToken,
|
|
15
15
|
...customHeaders
|
|
16
16
|
};
|
|
17
17
|
//using the axios instance to perform the request that received from each http method
|
|
@@ -27,16 +27,16 @@ const apiRequest = (method, url, request, customHeaders = {}, customConfig = {})
|
|
|
27
27
|
return Promise.resolve(res);
|
|
28
28
|
})
|
|
29
29
|
.catch((er) => {
|
|
30
|
-
console.log(
|
|
30
|
+
console.log('🚀 ~ apiRequest ~ err:', er);
|
|
31
31
|
const err = er.response;
|
|
32
32
|
let error = {
|
|
33
33
|
status: err.status,
|
|
34
34
|
statusText: err.statusText,
|
|
35
35
|
error: err.data.error,
|
|
36
|
-
stackTrace: err.data.stackTrace
|
|
36
|
+
stackTrace: err.data.stackTrace
|
|
37
37
|
};
|
|
38
38
|
errorStore.set(error);
|
|
39
|
-
console.log(
|
|
39
|
+
console.log('🚀 ~ apiRequest ~ error:', error);
|
|
40
40
|
return Promise.reject(new Error(error.error));
|
|
41
41
|
});
|
|
42
42
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { host } from '../stores/apiStores';
|
|
4
4
|
|
|
5
5
|
// go to a internal action
|
|
6
|
-
export const goTo = async (url, intern = true, target=
|
|
6
|
+
export const goTo = async (url, intern = true, target = '_self') => {
|
|
7
7
|
if (intern == true) {
|
|
8
8
|
// go to inside bexis2
|
|
9
9
|
if (window != null && host != null && url != null) {
|
package/package.json
CHANGED
|
@@ -1,116 +1,116 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
2
|
+
"name": "@bexis2/bexis2-core-ui",
|
|
3
|
+
"version": "0.4.97",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"bexis2",
|
|
8
|
+
"libary"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/BEXIS2/bexis2-core-ui#readme",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/BEXIS2/bexis2-core-ui/issues"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/BEXIS2/bexis2-core-ui.git"
|
|
17
|
+
},
|
|
18
|
+
"license": "ISC",
|
|
19
|
+
"author": "David Schöne",
|
|
20
|
+
"type": "module",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
24
|
+
"svelte": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./dist/index.css": {
|
|
27
|
+
"import": "./dist/index.css",
|
|
28
|
+
"require": "./dist/index.css"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"main": "./src/lib/index.d.ts",
|
|
32
|
+
"types": "./src/lib/index.d.ts",
|
|
33
|
+
"directories": {
|
|
34
|
+
"test": "tests"
|
|
35
|
+
},
|
|
36
|
+
"files": [
|
|
37
|
+
"dist",
|
|
38
|
+
"src/lib"
|
|
39
|
+
],
|
|
40
|
+
"scripts": {
|
|
41
|
+
"dev": "vite dev",
|
|
42
|
+
"build": "vite build",
|
|
43
|
+
"build package": "svelte-kit sync && svelte-package --watch",
|
|
44
|
+
"preview": "vite preview",
|
|
45
|
+
"test": "playwright test",
|
|
46
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
47
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
48
|
+
"test:unit": "vitest",
|
|
49
|
+
"lint": "prettier --plugin-search-dir . --check . && eslint .",
|
|
50
|
+
"format": "prettier --plugin-search-dir . --write .",
|
|
51
|
+
"check outdated": "npm outdated",
|
|
52
|
+
"upgrade all": "ncu --upgrade",
|
|
53
|
+
"0.npm login": "npm login",
|
|
54
|
+
"1.npm - update package infos": "npm init --scope bexis2",
|
|
55
|
+
"2.npm - package": "svelte-package",
|
|
56
|
+
"3.npm - publish": "npm publish --access public"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@codemirror/lang-html": "^6.4.9",
|
|
60
|
+
"@codemirror/lang-javascript": "^6.2.2",
|
|
61
|
+
"@codemirror/lang-json": "^6.0.1",
|
|
62
|
+
"@codemirror/lint": "^6.8.1",
|
|
63
|
+
"@codemirror/theme-one-dark": "^6.1.2",
|
|
64
|
+
"@floating-ui/dom": "^1.6.8",
|
|
65
|
+
"@fortawesome/fontawesome-free": "^6.6.0",
|
|
66
|
+
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
|
67
|
+
"@fortawesome/free-regular-svg-icons": "^6.6.0",
|
|
68
|
+
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
|
69
|
+
"@sveltejs/kit": "^2.5.19",
|
|
70
|
+
"@sveltejs/vite-plugin-svelte": "^3.1.1",
|
|
71
|
+
"axios": "^1.7.3",
|
|
72
|
+
"codemirror": "^6.0.1",
|
|
73
|
+
"dateformat": "^5.0.3",
|
|
74
|
+
"delay": "^6.0.0",
|
|
75
|
+
"dotenv": "^16.4.5",
|
|
76
|
+
"eslint4b-prebuilt": "^6.7.2",
|
|
77
|
+
"highlight.js": "^11.10.0",
|
|
78
|
+
"highlightjs-svelte": "^1.0.6",
|
|
79
|
+
"svelte": "^4.2.18",
|
|
80
|
+
"svelte-codemirror-editor": "^1.4.0",
|
|
81
|
+
"svelte-fa": "^4.0.2",
|
|
82
|
+
"svelte-file-dropzone": "^2.0.7",
|
|
83
|
+
"svelte-headless-table": "^0.18.2",
|
|
84
|
+
"svelty-picker": "^5.2.12",
|
|
85
|
+
"svelte-select": "5.8.3",
|
|
86
|
+
"vest": "^5.4.0"
|
|
87
|
+
},
|
|
88
|
+
"devDependencies": {
|
|
89
|
+
"@playwright/test": "^1.45.3",
|
|
90
|
+
"@skeletonlabs/skeleton": "^2.10.2",
|
|
91
|
+
"@skeletonlabs/tw-plugin": "^0.4.0",
|
|
92
|
+
"@sveltejs/adapter-auto": "^3.2.2",
|
|
93
|
+
"@sveltejs/adapter-static": "^3.0.2",
|
|
94
|
+
"@sveltejs/package": "^2.3.2",
|
|
95
|
+
"@tailwindcss/forms": "^0.5.7",
|
|
96
|
+
"@tailwindcss/typography": "^0.5.13",
|
|
97
|
+
"@types/node": "^22.0.2",
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
99
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
100
|
+
"autoprefixer": "^10.4.19",
|
|
101
|
+
"eslint": "^9.8.0",
|
|
102
|
+
"eslint-config-prettier": "^9.1.0",
|
|
103
|
+
"postcss": "^8.4.40",
|
|
104
|
+
"prettier": "^3.3.3",
|
|
105
|
+
"prettier-plugin-svelte": "^3.2.6",
|
|
106
|
+
"raw-loader": "^4.0.2",
|
|
107
|
+
"svelte": "^4.2.18",
|
|
108
|
+
"svelte-check": "^3.8.5",
|
|
109
|
+
"tailwindcss": "^3.4.7",
|
|
110
|
+
"tslib": "^2.6.3",
|
|
111
|
+
"typescript": "^5.5.4",
|
|
112
|
+
"vite": "^5.3.5",
|
|
113
|
+
"vitest": "^2.0.5"
|
|
114
|
+
},
|
|
115
|
+
"module": "./src/lib/index.ts"
|
|
116
116
|
}
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
language === 'js'
|
|
50
50
|
? [linter(esLint(new Linter())), lintGutter()]
|
|
51
51
|
: language === 'json'
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
? [linter(jsonParseLinter()), lintGutter()]
|
|
53
|
+
: [];
|
|
54
54
|
|
|
55
55
|
const isValidJSON = (str: string) => {
|
|
56
56
|
try {
|
|
@@ -86,8 +86,8 @@
|
|
|
86
86
|
lang={language === 'html'
|
|
87
87
|
? html({ selfClosingTags: true })
|
|
88
88
|
: language === 'js'
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
? javascript()
|
|
90
|
+
: json()}
|
|
91
91
|
theme={dark ? oneDark : null}
|
|
92
92
|
class="flex w-full"
|
|
93
93
|
{styles}
|
|
@@ -178,8 +178,8 @@
|
|
|
178
178
|
});
|
|
179
179
|
|
|
180
180
|
$: displayedGroups = structuredClone($groups);
|
|
181
|
-
$: selectedItems, mapSelected('items'), sortOptions();
|
|
182
|
-
$: selectedGroups, mapSelected('groups');
|
|
181
|
+
$: (selectedItems, mapSelected('items'), sortOptions());
|
|
182
|
+
$: (selectedGroups, mapSelected('groups'));
|
|
183
183
|
</script>
|
|
184
184
|
|
|
185
185
|
<TreeView selection={groupSelection} multiple={groupSelection} padding="p-1" hover="">
|
|
@@ -40,15 +40,13 @@
|
|
|
40
40
|
<h2 class="text-xl font-semibold">{group.displayName}</h2>
|
|
41
41
|
|
|
42
42
|
<!-- Items -->
|
|
43
|
-
<div
|
|
43
|
+
<div
|
|
44
|
+
class="gap-x-10 space-y-2 py-6 px-[2px] max-h-[500px] columns-[192px] overflow-auto min-h"
|
|
45
|
+
>
|
|
44
46
|
{#each Object.keys(selected) as key}
|
|
45
47
|
<label class="flex gap-3 items-center">
|
|
46
48
|
<input type="checkbox" class="checkbox" bind:checked={selected[key].selected} />
|
|
47
|
-
<span
|
|
48
|
-
title={selected[key].displayName}
|
|
49
|
-
class=""
|
|
50
|
-
>{selected[key].displayName}</span
|
|
51
|
-
>
|
|
49
|
+
<span title={selected[key].displayName} class="">{selected[key].displayName}</span>
|
|
52
50
|
</label>
|
|
53
51
|
{/each}
|
|
54
52
|
</div>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
export let data: fileUploaderType | undefined;
|
|
37
37
|
|
|
38
|
-
let isUploading:boolean = false;
|
|
38
|
+
let isUploading: boolean = false;
|
|
39
39
|
|
|
40
40
|
$: model = data;
|
|
41
41
|
$: submitBt = 'submit';
|
|
@@ -148,9 +148,10 @@
|
|
|
148
148
|
const response = await Api.post(url, formData);
|
|
149
149
|
|
|
150
150
|
if (response.status == 200) {
|
|
151
|
-
dispatch('submited',{
|
|
152
|
-
status:200,
|
|
153
|
-
data:response.data
|
|
151
|
+
dispatch('submited', {
|
|
152
|
+
status: 200,
|
|
153
|
+
data: response.data
|
|
154
|
+
});
|
|
154
155
|
|
|
155
156
|
let message = files.accepted.length + ' is/are uploaded';
|
|
156
157
|
|
|
@@ -160,13 +161,12 @@
|
|
|
160
161
|
dispatch('success', { text: message, files: fileList });
|
|
161
162
|
|
|
162
163
|
files.accepted = [];
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
console.log('Error uploading file(s)', response);
|
|
164
|
+
} else {
|
|
165
|
+
dispatch('submiterror', {
|
|
166
|
+
status: response.status,
|
|
167
|
+
data: response.data
|
|
168
|
+
});
|
|
169
|
+
console.log('Error uploading file(s)', response);
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -192,17 +192,20 @@
|
|
|
192
192
|
<p>
|
|
193
193
|
{#if model.accept}
|
|
194
194
|
{#each model.accept as ext, i}
|
|
195
|
-
{ext}{#if i < model.accept.length - 1},
|
|
195
|
+
{ext}{#if i < model.accept.length - 1},
|
|
196
|
+
{/if}
|
|
196
197
|
{/each}
|
|
197
198
|
{/if}
|
|
198
199
|
</p>
|
|
199
200
|
</Dropzone>
|
|
200
201
|
{#if isUploading}
|
|
201
|
-
|
|
202
|
+
<ProgressBar value={undefined} />
|
|
202
203
|
{/if}
|
|
203
204
|
</div>
|
|
204
205
|
|
|
205
|
-
<button title="Submit" id={submitBt} color="primary" style="display:none"
|
|
206
|
+
<button title="Submit" id={submitBt} color="primary" style="display:none"
|
|
207
|
+
><Fa icon={faSave} /></button
|
|
208
|
+
>
|
|
206
209
|
{:else}
|
|
207
210
|
<!-- while data is not loaded show a loading information -->
|
|
208
211
|
|
|
@@ -3,23 +3,44 @@
|
|
|
3
3
|
import type { TableConfig } from '$models/Models';
|
|
4
4
|
|
|
5
5
|
export let config: TableConfig<any>;
|
|
6
|
+
let remountKey = 0;
|
|
7
|
+
let didInitialColumnsRemount = false;
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
const normalizeColumns = (cols: unknown) => {
|
|
10
|
+
if (!cols || typeof cols !== 'object') return '';
|
|
11
|
+
const c = cols as Record<string, unknown>;
|
|
12
|
+
const keys = Object.keys(c).sort();
|
|
13
|
+
return JSON.stringify(keys.map((k) => [k, c[k]]));
|
|
14
|
+
};
|
|
9
15
|
|
|
10
|
-
|
|
16
|
+
const onFetch = (event) => {
|
|
17
|
+
const payload = event.detail;
|
|
18
|
+
const nextColumns = payload?.columns ?? payload;
|
|
19
|
+
const nextCount = Number(payload?.count ?? 0);
|
|
20
|
+
const before = normalizeColumns((config as any)?.columns);
|
|
21
|
+
const after = normalizeColumns(nextColumns);
|
|
22
|
+
config = {
|
|
23
|
+
...config,
|
|
24
|
+
columns: nextColumns,
|
|
25
|
+
...(nextCount > 0 ? { __initialServerCount: nextCount } : {})
|
|
26
|
+
};
|
|
27
|
+
if (!didInitialColumnsRemount && before === '' && after !== '') {
|
|
28
|
+
remountKey += 1;
|
|
29
|
+
didInitialColumnsRemount = true;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
11
32
|
|
|
12
|
-
if (typeof BigInt !==
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
33
|
+
if (typeof BigInt !== 'undefined' && !BigInt.prototype.toJSON) {
|
|
34
|
+
BigInt.prototype.toJSON = function () {
|
|
35
|
+
return this.toString();
|
|
36
|
+
};
|
|
37
|
+
}
|
|
17
38
|
</script>
|
|
18
39
|
|
|
19
|
-
{#key
|
|
40
|
+
{#key remountKey}
|
|
20
41
|
<Table
|
|
21
42
|
{config}
|
|
22
|
-
on:fetch={
|
|
43
|
+
on:fetch={onFetch}
|
|
23
44
|
on:action
|
|
24
45
|
/>
|
|
25
46
|
{/key}
|