@bexis2/bexis2-core-ui 0.2.22 → 0.2.23

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.
Files changed (96) hide show
  1. package/README.md +14 -6
  2. package/dist/TableView.svelte +1 -1
  3. package/dist/components/CodeEditor/CodeEditor.svelte +87 -0
  4. package/dist/components/CodeEditor/CodeEditor.svelte.d.ts +28 -0
  5. package/dist/components/ListView.svelte +5 -5
  6. package/dist/components/Table/Table.svelte +14 -10
  7. package/dist/components/Table/TablePagination.svelte +38 -38
  8. package/dist/components/file/FileIcon.svelte +45 -45
  9. package/dist/components/file/FileInfo.svelte +13 -13
  10. package/dist/components/file/FileUploader.svelte +1 -1
  11. package/dist/components/form/Checkbox.svelte +13 -13
  12. package/dist/components/form/CheckboxKvPList.svelte +16 -16
  13. package/dist/components/form/CheckboxList.svelte +10 -10
  14. package/dist/components/form/DateInput.svelte +13 -13
  15. package/dist/components/form/DropdownKvP.svelte +54 -54
  16. package/dist/components/form/InputContainer.svelte +20 -20
  17. package/dist/components/form/MultiSelect.svelte +178 -178
  18. package/dist/components/form/NumberInput.svelte +14 -14
  19. package/dist/components/form/TextArea.svelte +13 -13
  20. package/dist/components/form/TextInput.svelte +14 -14
  21. package/dist/components/page/Alert.svelte +28 -28
  22. package/dist/components/page/BackToTop.svelte +30 -30
  23. package/dist/components/page/Docs.svelte +22 -22
  24. package/dist/components/page/ErrorMessage.svelte +8 -8
  25. package/dist/components/page/Footer.svelte +5 -5
  26. package/dist/components/page/Header.svelte +5 -5
  27. package/dist/components/page/HelpPopUp.svelte +30 -30
  28. package/dist/components/page/PageCaller.js +19 -19
  29. package/dist/components/page/Spinner.svelte +14 -14
  30. package/dist/components/page/breadcrumb/Breadcrumb.svelte +19 -19
  31. package/dist/components/page/menu/MenuDataCaller.js +10 -10
  32. package/dist/css/core.ui.postcss +17 -17
  33. package/dist/css/themes/theme-bexis2.css +96 -96
  34. package/dist/css/themes/theme-crimson.css +101 -101
  35. package/dist/css/themes/theme-gold-nouveau.css +140 -140
  36. package/dist/css/themes/theme-hamlindigo.css +112 -112
  37. package/dist/css/themes/theme-modern.css +127 -127
  38. package/dist/css/themes/theme-rocket.css +119 -119
  39. package/dist/css/themes/theme-sahara.css +128 -128
  40. package/dist/css/themes/theme-seafoam.css +122 -122
  41. package/dist/css/themes/theme-seasonal.css +115 -115
  42. package/dist/css/themes/theme-skeleton.css +118 -118
  43. package/dist/css/themes/theme-vintage.css +125 -125
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.js +4 -0
  46. package/dist/models/Models.d.ts +2 -0
  47. package/dist/services/BaseCaller.js +16 -16
  48. package/package.json +7 -1
  49. package/src/lib/TableView.svelte +1 -1
  50. package/src/lib/components/CodeEditor/CodeEditor.svelte +94 -0
  51. package/src/lib/components/{file → File}/FileIcon.svelte +45 -45
  52. package/src/lib/components/{file → File}/FileInfo.svelte +13 -13
  53. package/src/lib/components/{file → File}/FileUploader.svelte +1 -1
  54. package/src/lib/components/ListView.svelte +11 -11
  55. package/src/lib/components/Table/Table.svelte +14 -10
  56. package/src/lib/components/Table/TablePagination.svelte +61 -61
  57. package/src/lib/components/Table/filter.ts +141 -141
  58. package/src/lib/components/form/Checkbox.svelte +24 -24
  59. package/src/lib/components/form/CheckboxKvPList.svelte +29 -29
  60. package/src/lib/components/form/CheckboxList.svelte +21 -21
  61. package/src/lib/components/form/DateInput.svelte +25 -25
  62. package/src/lib/components/form/DropdownKvP.svelte +54 -54
  63. package/src/lib/components/form/InputContainer.svelte +36 -36
  64. package/src/lib/components/form/MultiSelect.svelte +178 -178
  65. package/src/lib/components/form/NumberInput.svelte +28 -28
  66. package/src/lib/components/form/TextArea.svelte +26 -26
  67. package/src/lib/components/form/TextInput.svelte +26 -26
  68. package/src/lib/components/page/Alert.svelte +41 -41
  69. package/src/lib/components/page/BackToTop.svelte +30 -30
  70. package/src/lib/components/page/Docs.svelte +46 -46
  71. package/src/lib/components/page/ErrorMessage.svelte +10 -10
  72. package/src/lib/components/page/Footer.svelte +18 -18
  73. package/src/lib/components/page/Header.svelte +18 -18
  74. package/src/lib/components/page/HelpPopUp.svelte +72 -72
  75. package/src/lib/components/page/PageCaller.js +19 -19
  76. package/src/lib/components/page/Spinner.svelte +20 -20
  77. package/src/lib/components/page/breadcrumb/Breadcrumb.svelte +39 -39
  78. package/src/lib/components/page/menu/MenuDataCaller.js +10 -10
  79. package/src/lib/css/core.ui.postcss +17 -17
  80. package/src/lib/css/themes/theme-bexis2.css +96 -96
  81. package/src/lib/css/themes/theme-crimson.css +101 -101
  82. package/src/lib/css/themes/theme-gold-nouveau.css +140 -140
  83. package/src/lib/css/themes/theme-hamlindigo.css +112 -112
  84. package/src/lib/css/themes/theme-modern.css +127 -127
  85. package/src/lib/css/themes/theme-rocket.css +119 -119
  86. package/src/lib/css/themes/theme-sahara.css +128 -128
  87. package/src/lib/css/themes/theme-seafoam.css +122 -122
  88. package/src/lib/css/themes/theme-seasonal.css +115 -115
  89. package/src/lib/css/themes/theme-skeleton.css +118 -118
  90. package/src/lib/css/themes/theme-vintage.css +125 -125
  91. package/src/lib/index.ts +7 -0
  92. package/src/lib/models/Models.ts +2 -0
  93. package/src/lib/models/Page.ts +40 -40
  94. package/src/lib/services/Api.ts +55 -55
  95. package/src/lib/services/BaseCaller.js +16 -16
  96. package/src/lib/stores/apiStores.ts +31 -31
@@ -0,0 +1,94 @@
1
+ <script lang="ts">
2
+ import { createEventDispatcher } from 'svelte';
3
+
4
+ import CodeMirror from 'svelte-codemirror-editor';
5
+ import Fa from 'svelte-fa/src/fa.svelte';
6
+ import { html } from '@codemirror/lang-html';
7
+ import { javascript } from '@codemirror/lang-javascript';
8
+ import { json } from '@codemirror/lang-json';
9
+ import { oneDark } from '@codemirror/theme-one-dark';
10
+ import { Modal, modalStore } from '@skeletonlabs/skeleton';
11
+ import { faMoon, faSave, faSun } from '@fortawesome/free-regular-svg-icons';
12
+ import { faArrowRotateLeft, faXmark } from '@fortawesome/free-solid-svg-icons';
13
+ import type { ThemeSpec } from 'svelte-codemirror-editor';
14
+ import type { ModalSettings } from '@skeletonlabs/skeleton';
15
+
16
+ export let title = '';
17
+ export let initialValue = '';
18
+ export let value = initialValue;
19
+ export let language = 'html';
20
+ export let dark = true;
21
+ export let toggle = true;
22
+ export let styles: ThemeSpec = {
23
+ '&': {
24
+ borderRadius: '0.5rem',
25
+ width: '100%'
26
+ },
27
+ '.cm-scroller': {
28
+ borderRadius: '0.5rem'
29
+ }
30
+ };
31
+
32
+ const dispatch = createEventDispatcher();
33
+
34
+ const modal: ModalSettings = {
35
+ type: 'confirm',
36
+ title: 'Reset',
37
+ body: 'Unsaved changes will be lost. Are you sure you want to continue?',
38
+ response: (r: boolean) => (r ? (value = initialValue) : null)
39
+ };
40
+ </script>
41
+
42
+ <div class="items-center justify-center">
43
+ <h1 class="h1 font-semibold text-primary-500 mb-3">{title}</h1>
44
+ <slot />
45
+ <div class="grid gap-1 w-full h-full mt-5">
46
+ <div class="rounded-lg shadow-lg w-full">
47
+ <CodeMirror
48
+ bind:value
49
+ lang={language === 'html'
50
+ ? html({ selfClosingTags: true })
51
+ : language === 'js'
52
+ ? javascript()
53
+ : json()}
54
+ theme={dark ? oneDark : null}
55
+ class="flex w-full"
56
+ {styles}
57
+ />
58
+ </div>
59
+ </div>
60
+
61
+ <div class="flex justify-between gap-2 items-center mt-3">
62
+ <div class="flex gap-2">
63
+ <button
64
+ class="btn variant-filled-warning"
65
+ on:click|preventDefault={() => modalStore.trigger(modal)}
66
+ ><Fa icon={faArrowRotateLeft} /></button
67
+ >{#if toggle}
68
+ <button
69
+ class="btn border"
70
+ class:bg-slate-700={dark}
71
+ class:bg-white={!dark}
72
+ on:click|preventDefault={() => (dark = !dark)}
73
+ >
74
+ {#if dark}
75
+ <Fa icon={faMoon} color="white" />
76
+ {:else}
77
+ <Fa icon={faSun} color="black" />
78
+ {/if}
79
+ </button>
80
+ {/if}
81
+ </div>
82
+
83
+ <div class="flex gap-2">
84
+ <button class="btn variant-filled-warning" on:click={() => dispatch('cancel')}
85
+ ><Fa icon={faXmark} /></button
86
+ >
87
+ <button class="btn variant-filled-primary" on:click={() => dispatch('save')}
88
+ ><Fa icon={faSave} /></button
89
+ >
90
+ </div>
91
+ </div>
92
+ </div>
93
+
94
+ <Modal />
@@ -1,45 +1,45 @@
1
- <script>
2
- import Fa from 'svelte-fa';
3
- import { faFileAudio } from '@fortawesome/free-regular-svg-icons';
4
- import { faFileVideo } from '@fortawesome/free-regular-svg-icons';
5
- import { faFileWord } from '@fortawesome/free-regular-svg-icons';
6
- import { faFilePdf } from '@fortawesome/free-regular-svg-icons';
7
- import { faFileExcel } from '@fortawesome/free-regular-svg-icons';
8
- import { faFileAlt } from '@fortawesome/free-regular-svg-icons';
9
- import { faFileImage } from '@fortawesome/free-regular-svg-icons';
10
- import { faFileArchive } from '@fortawesome/free-regular-svg-icons';
11
-
12
- export let type = '';
13
- </script>
14
-
15
- {#if type.includes('excel') || type.includes('spreadsheetml')}
16
- <Fa icon={faFileExcel} />
17
- {/if}
18
-
19
- {#if type.includes('text')}
20
- <Fa icon={faFileAlt} />
21
- {/if}
22
-
23
- {#if type.includes('image')}
24
- <Fa icon={faFileImage} />
25
- {/if}
26
-
27
- {#if type.includes('audio')}
28
- <Fa icon={faFileAudio} />
29
- {/if}
30
-
31
- {#if type.includes('video')}
32
- <Fa icon={faFileVideo} />
33
- {/if}
34
-
35
- {#if type.includes('word')}
36
- <Fa icon={faFileWord} />
37
- {/if}
38
-
39
- {#if type.includes('pdf')}
40
- <Fa icon={faFilePdf} />
41
- {/if}
42
-
43
- {#if type.includes('zip')}
44
- <Fa icon={faFileArchive} />
45
- {/if}
1
+ <script>
2
+ import Fa from 'svelte-fa';
3
+ import { faFileAudio } from '@fortawesome/free-regular-svg-icons';
4
+ import { faFileVideo } from '@fortawesome/free-regular-svg-icons';
5
+ import { faFileWord } from '@fortawesome/free-regular-svg-icons';
6
+ import { faFilePdf } from '@fortawesome/free-regular-svg-icons';
7
+ import { faFileExcel } from '@fortawesome/free-regular-svg-icons';
8
+ import { faFileAlt } from '@fortawesome/free-regular-svg-icons';
9
+ import { faFileImage } from '@fortawesome/free-regular-svg-icons';
10
+ import { faFileArchive } from '@fortawesome/free-regular-svg-icons';
11
+
12
+ export let type = '';
13
+ </script>
14
+
15
+ {#if type.includes('excel') || type.includes('spreadsheetml')}
16
+ <Fa icon={faFileExcel} />
17
+ {/if}
18
+
19
+ {#if type.includes('text')}
20
+ <Fa icon={faFileAlt} />
21
+ {/if}
22
+
23
+ {#if type.includes('image')}
24
+ <Fa icon={faFileImage} />
25
+ {/if}
26
+
27
+ {#if type.includes('audio')}
28
+ <Fa icon={faFileAudio} />
29
+ {/if}
30
+
31
+ {#if type.includes('video')}
32
+ <Fa icon={faFileVideo} />
33
+ {/if}
34
+
35
+ {#if type.includes('word')}
36
+ <Fa icon={faFileWord} />
37
+ {/if}
38
+
39
+ {#if type.includes('pdf')}
40
+ <Fa icon={faFilePdf} />
41
+ {/if}
42
+
43
+ {#if type.includes('zip')}
44
+ <Fa icon={faFileArchive} />
45
+ {/if}
@@ -1,13 +1,13 @@
1
- <script>
2
- import FileIcon from './FileIcon.svelte';
3
-
4
- export let name = '';
5
- export let type = '';
6
- // export let description;
7
- export let size = '';
8
- </script>
9
-
10
- <div style="font-size:{size}">
11
- <FileIcon {type} />
12
- {name}
13
- </div>
1
+ <script>
2
+ import FileIcon from './FileIcon.svelte';
3
+
4
+ export let name = '';
5
+ export let type = '';
6
+ // export let description;
7
+ export let size = '';
8
+ </script>
9
+
10
+ <div style="font-size:{size}">
11
+ <FileIcon {type} />
12
+ {name}
13
+ </div>
@@ -168,7 +168,7 @@
168
168
  <b style="font-size:xx-large"><Fa icon={faFileUpload} /></b>
169
169
  <span
170
170
  ><b>Drag 'n' drop some files here, or click to select files</b>
171
- <b>max file : {model.maxSize} mb</b></span
171
+ <b>(max file size: {model.maxSize} mb)</b></span
172
172
  >
173
173
  <p>
174
174
  {#if model.accept}
@@ -1,11 +1,11 @@
1
- <script lang="ts">
2
- type x = {
3
- name: string;
4
- };
5
-
6
- let result: x = { name: 'david' };
7
- </script>
8
-
9
- <h1>MyList</h1>
10
- {result.name}
11
- <b>from bexis-lib</b>
1
+ <script lang="ts">
2
+ type x = {
3
+ name: string;
4
+ };
5
+
6
+ let result: x = { name: 'david' };
7
+ </script>
8
+
9
+ <h1>MyList</h1>
10
+ {result.name}
11
+ <b>from bexis-lib</b>
@@ -27,9 +27,10 @@
27
27
  height = null,
28
28
  optionsComponent,
29
29
  defaultPageSize = 10,
30
- pageSizes = [5, 10, 15, 20]
30
+ toggle = false,
31
+ pageSizes = [5, 10, 15, 20],
32
+ fitToScreen = true
31
33
  } = config;
32
- let fitToScreen = true;
33
34
 
34
35
  type AccessorType = keyof (typeof $data)[number];
35
36
 
@@ -164,7 +165,7 @@
164
165
  const { filterValue } = pluginStates.tableFilter;
165
166
  </script>
166
167
 
167
- <div class="grid gap-2 overflow-auto" class:w-max={!fitToScreen} class:w-full={fitToScreen}>
168
+ <div class="grid gap-2 overflow-auto" class:w-fit={!fitToScreen} class:w-full={fitToScreen}>
168
169
  <div class="table-container">
169
170
  {#if $data.length > 0}
170
171
  <input
@@ -174,13 +175,16 @@
174
175
  placeholder="Search rows..."
175
176
  />
176
177
  {/if}
177
- <SlideToggle
178
- name="slider-label"
179
- active="bg-primary-500"
180
- size="sm"
181
- checked={fitToScreen}
182
- on:change={() => (fitToScreen = !fitToScreen)}>Fit to screen</SlideToggle
183
- >
178
+
179
+ {#if toggle}
180
+ <SlideToggle
181
+ name="slider-label"
182
+ active="bg-primary-500"
183
+ size="sm"
184
+ checked={fitToScreen}
185
+ on:change={() => (fitToScreen = !fitToScreen)}>Fit to screen</SlideToggle
186
+ >
187
+ {/if}
184
188
 
185
189
  <div class="overflow-auto" style="height: {height}px">
186
190
  <table {...$tableAttrs} class="table table-compact bg-tertiary-200 overflow-clip">
@@ -1,61 +1,61 @@
1
- <script lang="ts">
2
- import Fa from 'svelte-fa/src/fa.svelte';
3
- import {
4
- faAnglesRight,
5
- faAngleRight,
6
- faAnglesLeft,
7
- faAngleLeft
8
- } from '@fortawesome/free-solid-svg-icons';
9
-
10
- export let pageConfig;
11
- export let pageSizes;
12
-
13
- const { pageIndex, pageCount, pageSize, hasNextPage, hasPreviousPage } = pageConfig;
14
-
15
- const goToFirstPage = () => ($pageIndex = 0);
16
- const goToLastPage = () => ($pageIndex = $pageCount - 1);
17
- const goToNextPage = () => ($pageIndex += 1);
18
- const goToPreviousPage = () => ($pageIndex -= 1);
19
-
20
- $: goToFirstPageDisabled = !$pageIndex;
21
- $: goToLastPageDisabled = $pageIndex == $pageCount - 1;
22
- $: goToNextPageDisabled = !$hasNextPage;
23
- $: goToPreviousPageDisabled = !$hasPreviousPage;
24
- </script>
25
-
26
- <div class="flex justify-center gap-1">
27
- <button
28
- class="btn btn-sm variant-filled-primary"
29
- on:click|preventDefault={goToFirstPage}
30
- disabled={goToFirstPageDisabled}
31
- >
32
- <Fa icon={faAnglesLeft} /></button
33
- >
34
- <button
35
- class="btn btn-sm variant-filled-primary"
36
- on:click|preventDefault={goToPreviousPage}
37
- disabled={goToPreviousPageDisabled}><Fa icon={faAngleLeft} /></button
38
- >
39
-
40
- <select
41
- name="pageSize"
42
- id="pageSize"
43
- class="select variant-filled-primary w-min font-bold"
44
- bind:value={$pageSize}
45
- >
46
- {#each pageSizes as size}
47
- <option value={size}>{size}</option>
48
- {/each}
49
- </select>
50
-
51
- <button
52
- class="btn btn-sm variant-filled-primary"
53
- on:click|preventDefault={goToNextPage}
54
- disabled={goToNextPageDisabled}><Fa icon={faAngleRight} /></button
55
- >
56
- <button
57
- class="btn btn-sm variant-filled-primary"
58
- on:click|preventDefault={goToLastPage}
59
- disabled={goToLastPageDisabled}><Fa icon={faAnglesRight} /></button
60
- >
61
- </div>
1
+ <script lang="ts">
2
+ import Fa from 'svelte-fa/src/fa.svelte';
3
+ import {
4
+ faAnglesRight,
5
+ faAngleRight,
6
+ faAnglesLeft,
7
+ faAngleLeft
8
+ } from '@fortawesome/free-solid-svg-icons';
9
+
10
+ export let pageConfig;
11
+ export let pageSizes;
12
+
13
+ const { pageIndex, pageCount, pageSize, hasNextPage, hasPreviousPage } = pageConfig;
14
+
15
+ const goToFirstPage = () => ($pageIndex = 0);
16
+ const goToLastPage = () => ($pageIndex = $pageCount - 1);
17
+ const goToNextPage = () => ($pageIndex += 1);
18
+ const goToPreviousPage = () => ($pageIndex -= 1);
19
+
20
+ $: goToFirstPageDisabled = !$pageIndex;
21
+ $: goToLastPageDisabled = $pageIndex == $pageCount - 1;
22
+ $: goToNextPageDisabled = !$hasNextPage;
23
+ $: goToPreviousPageDisabled = !$hasPreviousPage;
24
+ </script>
25
+
26
+ <div class="flex justify-center gap-1">
27
+ <button
28
+ class="btn btn-sm variant-filled-primary"
29
+ on:click|preventDefault={goToFirstPage}
30
+ disabled={goToFirstPageDisabled}
31
+ >
32
+ <Fa icon={faAnglesLeft} /></button
33
+ >
34
+ <button
35
+ class="btn btn-sm variant-filled-primary"
36
+ on:click|preventDefault={goToPreviousPage}
37
+ disabled={goToPreviousPageDisabled}><Fa icon={faAngleLeft} /></button
38
+ >
39
+
40
+ <select
41
+ name="pageSize"
42
+ id="pageSize"
43
+ class="select variant-filled-primary w-min font-bold"
44
+ bind:value={$pageSize}
45
+ >
46
+ {#each pageSizes as size}
47
+ <option value={size}>{size}</option>
48
+ {/each}
49
+ </select>
50
+
51
+ <button
52
+ class="btn btn-sm variant-filled-primary"
53
+ on:click|preventDefault={goToNextPage}
54
+ disabled={goToNextPageDisabled}><Fa icon={faAngleRight} /></button
55
+ >
56
+ <button
57
+ class="btn btn-sm variant-filled-primary"
58
+ on:click|preventDefault={goToLastPage}
59
+ disabled={goToLastPageDisabled}><Fa icon={faAnglesRight} /></button
60
+ >
61
+ </div>