admins-components 1.2.0 → 1.2.1

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 (59) hide show
  1. package/dist/admins-components.css +1 -0
  2. package/dist/admins-components.js +959 -0
  3. package/dist/admins-components.umd.cjs +1 -0
  4. package/package.json +17 -1
  5. package/admins-components/.vscode/extensions.json +0 -3
  6. package/admins-components/README.md +0 -5
  7. package/admins-components/index.html +0 -13
  8. package/admins-components/package.json +0 -21
  9. package/admins-components/public/vite.svg +0 -1
  10. package/admins-components/src/App.vue +0 -30
  11. package/admins-components/src/assets/vue.svg +0 -1
  12. package/admins-components/src/components/HelloWorld.vue +0 -41
  13. package/admins-components/src/main.ts +0 -5
  14. package/admins-components/src/style.css +0 -79
  15. package/admins-components/src/vite-env.d.ts +0 -1
  16. package/admins-components/tsconfig.app.json +0 -14
  17. package/admins-components/tsconfig.json +0 -7
  18. package/admins-components/tsconfig.node.json +0 -24
  19. package/admins-components/vite.config.ts +0 -7
  20. package/index.html +0 -13
  21. package/src/App.vue +0 -5
  22. package/src/assets/dropdown.scss +0 -61
  23. package/src/assets/dropdowncallback.scss +0 -57
  24. package/src/assets/dropdownmenu.scss +0 -33
  25. package/src/assets/filtercompact.scss +0 -6
  26. package/src/assets/filtercontrol.scss +0 -23
  27. package/src/assets/iconbutton.scss +0 -31
  28. package/src/assets/main.scss +0 -38
  29. package/src/assets/paginatorcontrol.scss +0 -16
  30. package/src/assets/propertyselector.scss +0 -12
  31. package/src/assets/tabletolist.scss +0 -115
  32. package/src/assets/tabletolistoptions.scss +0 -22
  33. package/src/assets/textlistbox.scss +0 -16
  34. package/src/assets/toastcomponent.scss +0 -23
  35. package/src/components/CheckBox.vue +0 -25
  36. package/src/components/CheckBoxList.vue +0 -48
  37. package/src/components/DropDown.vue +0 -203
  38. package/src/components/DropDownCallBack.vue +0 -109
  39. package/src/components/DropDownMenu.vue +0 -88
  40. package/src/components/FilterCompact.vue +0 -146
  41. package/src/components/FilterControl.vue +0 -133
  42. package/src/components/IconButton.vue +0 -25
  43. package/src/components/PaginatorControl.vue +0 -82
  44. package/src/components/RadioButton.vue +0 -21
  45. package/src/components/RadioButtonGroup.vue +0 -28
  46. package/src/components/SpinningProgress.vue +0 -9
  47. package/src/components/TableToList.vue +0 -281
  48. package/src/components/TableToListOptions.vue +0 -99
  49. package/src/components/TextListBox.vue +0 -50
  50. package/src/components/ToastComponent.vue +0 -82
  51. package/src/components/ToastWrapper.vue +0 -44
  52. package/src/index.ts +0 -56
  53. package/src/main.ts +0 -5
  54. package/src/style.css +0 -79
  55. package/src/vite-env.d.ts +0 -1
  56. package/tsconfig.app.json +0 -14
  57. package/tsconfig.json +0 -7
  58. package/tsconfig.node.json +0 -24
  59. package/vite.config.ts +0 -49
@@ -1,146 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, onMounted, ref } from "vue";
3
- import DropDownMenu from "./DropDownMenu.vue";
4
- import type { DropDownMenuItem } from "./DropDownMenu.vue";
5
- import type {
6
- FilterDate,
7
- FilterDropDown,
8
- FilterText,
9
- IFilterItem,
10
- } from "./FilterControl.vue";
11
- import DropDown from "./DropDown.vue";
12
-
13
- const props = defineProps<{
14
- items: {
15
- filter: FilterDate | FilterDropDown | FilterText;
16
- icon: string;
17
- label: string;
18
- }[];
19
- }>();
20
-
21
- const selected = ref(0);
22
- const last = ref(0);
23
- const filter = computed(() => props.items[selected.value].filter);
24
-
25
- const select = (i: number) => {
26
- let li = props.items[last.value];
27
-
28
- (li.filter as IFilterItem).filtered(li.filter.key, "");
29
-
30
- selected.value = i;
31
- last.value = i;
32
-
33
- ddIKey.value += 1;
34
- };
35
-
36
- const options = ref(undefined as DropDownMenuItem[] | undefined);
37
-
38
- onMounted(() => {
39
- let its = [];
40
- for (let i = 0; i < props.items.length; i++) {
41
- its.push({
42
- icon: props.items[i].icon,
43
- label: props.items[i].label,
44
- command: () => select(i),
45
- });
46
- }
47
-
48
- options.value = its as DropDownMenuItem[];
49
- });
50
-
51
- export interface FilterDateFilter {
52
- from: string;
53
- untill: string;
54
- }
55
-
56
- const dateFilter = ref({} as FilterDateFilter);
57
- const ddISelected = ref(undefined as string | undefined);
58
-
59
- const ddIKey = ref(0);
60
- </script>
61
-
62
- <template>
63
- <div class="fltrc-container">
64
- <DropDownMenu
65
- v-if="options"
66
- id="ddm"
67
- :icon="items[selected].icon"
68
- :item="items[selected]"
69
- label=""
70
- :options="options"
71
- ></DropDownMenu>
72
- <div class="fltrc-container">
73
- <template v-if="filter.type == 'text'">
74
- <input
75
- type="text"
76
- class="form-control"
77
- :placeholder="(filter as FilterText).placeholder"
78
- :value="(filter as IFilterItem).defaultv ?? ''"
79
- @input="
80
- filter.filtered(
81
- filter.key,
82
- ($event.target as any).value
83
- );
84
- (filter as IFilterItem).defaultv = (
85
- $event.target as any
86
- ).value;
87
- "
88
- />
89
- </template>
90
-
91
- <template v-if="filter.type == 'date'">
92
- <div class="d-flex flex-row input-group align-items-center">
93
- <input
94
- type="date"
95
- class="form-control"
96
- :value="(filter as FilterDate).defFrom ?? ''"
97
- @input="
98
- dateFilter.from =
99
- ($event.target as any).value == ''
100
- ? null
101
- : ($event.target as any).value;
102
- (filter as FilterDate).defFrom =
103
- ($event.target as any).value == ''
104
- ? null
105
- : ($event.target as any).value;
106
- filter.filtered(filter.key, dateFilter);
107
- "
108
- />
109
- <span class="input-group-text">-</span>
110
- <input
111
- type="date"
112
- class="form-control"
113
- :value="(filter as FilterDate).defTill ?? ''"
114
- @input="
115
- dateFilter.untill =
116
- ($event.target as any).value == ''
117
- ? null
118
- : ($event.target as any).value;
119
- (filter as FilterDate).defTill =
120
- ($event.target as any).value == ''
121
- ? null
122
- : ($event.target as any).value;
123
- filter.filtered(filter.key, dateFilter);
124
- "
125
- />
126
- </div>
127
- </template>
128
-
129
- <template v-if="filter.type == 'dropdown'">
130
- <DropDown
131
- :key="ddIKey"
132
- :selected="ddISelected"
133
- :options="(filter as FilterDropDown).options"
134
- :filterevent="(filter as FilterDropDown).filterevent"
135
- @filtered="
136
- if ((filter as FilterDropDown).onfiltered)
137
- (filter as FilterDropDown).onfiltered!($event);
138
- "
139
- :id="filter.key"
140
- :label="(filter as FilterDropDown).label"
141
- @selected="filter.filtered(filter.key, $event.id)"
142
- ></DropDown>
143
- </template>
144
- </div>
145
- </div>
146
- </template>
@@ -1,133 +0,0 @@
1
- <script lang="ts">
2
- export interface IFilterItem {
3
- type: "text" | "date" | "dropdown";
4
- key: string;
5
- filtered: (key: string, value: any) => any;
6
- defaultv?: string | undefined;
7
- }
8
-
9
- export class FilterText implements IFilterItem {
10
- constructor(
11
- public key: string,
12
- public placeholder: string,
13
- public filtered: (key: string, value: string) => any
14
- ) {
15
- this.type = "text";
16
- }
17
-
18
- type: "text";
19
- }
20
-
21
- export class FilterDropDown implements IFilterItem {
22
- constructor(
23
- public key: string,
24
- public label: string,
25
- public options: Ref<DropDownItem[]>,
26
- public filterevent: boolean | undefined,
27
- public onfiltered: undefined | ((v: string) => any),
28
- public filtered: (key: string, value: string) => any
29
- ) {
30
- this.type = "dropdown";
31
- }
32
-
33
- type: "dropdown";
34
- }
35
-
36
- export class FilterDate implements IFilterItem {
37
- constructor(
38
- public key: string,
39
- public label: string,
40
- public filtered: (key: string, value: FilterDateFilter) => any,
41
- public defFrom?: string | undefined,
42
- public defTill?: string | undefined
43
- ) {
44
- this.type = "date";
45
- }
46
-
47
- type: "date";
48
- }
49
-
50
- export interface FilterDateFilter {
51
- from: string;
52
- untill: string;
53
- }
54
-
55
- const dateFilter = ref({} as FilterDateFilter);
56
- </script>
57
-
58
- <script setup lang="ts">
59
- import { ref, type Ref, onMounted } from "vue";
60
- import DropDown, { type DropDownItem } from "./DropDown.vue";
61
-
62
- const props = defineProps<{ item: IFilterItem }>();
63
-
64
- onMounted(() => {
65
- if (props.item.type == "dropdown") {
66
- const item = props.item as FilterDropDown;
67
- ddISelected.value = item.options.value.find(
68
- (o: any) => o.id == props.item.defaultv
69
- )?.id;
70
- }
71
- });
72
-
73
- const ddISelected = ref(undefined as string | undefined);
74
- </script>
75
-
76
- <template>
77
- <div class="fltrctrl-container">
78
- <template v-if="item.type == 'text'">
79
- <input
80
- type="text"
81
- class="form-control"
82
- :placeholder="(item as FilterText).placeholder"
83
- :value="item.defaultv ?? ''"
84
- @input="item.filtered(item.key, ($event.target as any).value)"
85
- />
86
- </template>
87
-
88
- <template v-if="item.type == 'date'">
89
- <div class="d-flex flex-row input-group align-items-center">
90
- <input
91
- type="date"
92
- class="form-control"
93
- :value="(item as FilterDate).defFrom ?? ''"
94
- @input="
95
- dateFilter.from =
96
- ($event.target as any).value == ''
97
- ? null
98
- : ($event.target as any).value;
99
- item.filtered(item.key, dateFilter);
100
- "
101
- />
102
- <span class="input-group-text">-</span>
103
- <input
104
- type="date"
105
- class="form-control"
106
- :value="(item as FilterDate).defTill ?? ''"
107
- @input="
108
- dateFilter.untill =
109
- ($event.target as any).value == ''
110
- ? null
111
- : ($event.target as any).value;
112
- item.filtered(item.key, dateFilter);
113
- "
114
- />
115
- </div>
116
- </template>
117
-
118
- <template v-if="item.type == 'dropdown'">
119
- <DropDown
120
- :selected="ddISelected"
121
- :options="ref((item as FilterDropDown).options)"
122
- :filterevent="(item as FilterDropDown).filterevent"
123
- @filtered="
124
- if ((item as FilterDropDown).onfiltered)
125
- (item as FilterDropDown).onfiltered!($event);
126
- "
127
- :id="item.key"
128
- :label="(item as FilterDropDown).label"
129
- @selected="item.filtered(item.key, $event.id)"
130
- ></DropDown>
131
- </template>
132
- </div>
133
- </template>
@@ -1,25 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed } from "vue";
3
-
4
- const props = defineProps<{
5
- icon: string;
6
- active?: boolean;
7
- big?: boolean;
8
- }>();
9
-
10
- const _class = computed(
11
- () => `${props.icon} ${props.big ? "ib-button-big" : ""}`
12
- );
13
-
14
- const emits = defineEmits<{
15
- (e: "click"): void;
16
- }>();
17
- </script>
18
-
19
- <template>
20
- <div @click="emits('click')" class="ib-container">
21
- <div class="ib-button" :class="{ 'ib-button-active': active }">
22
- <i :class="_class"></i>
23
- </div>
24
- </div>
25
- </template>
@@ -1,82 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, type Ref, computed, watch } from "vue";
3
- import DropDown, { type DropDownItem } from "./DropDown.vue";
4
-
5
- export interface PaginatorSettings {
6
- total: number;
7
- pagesize: number;
8
- page: number;
9
- sizes: number[];
10
- }
11
-
12
- const props = defineProps<{ settings: Ref<PaginatorSettings> }>();
13
- const emits = defineEmits<{
14
- (e: "pagesize", value: number): void;
15
- (e: "page", value: number): void;
16
- }>();
17
-
18
- const getOptions = () => {
19
- let os = ref([]) as Ref<DropDownItem[]>;
20
-
21
- props.settings.value.sizes.forEach((s) =>
22
- os.value.push({ label: s.toString(), id: s.toString() })
23
- );
24
-
25
- return os;
26
- };
27
-
28
- const page = ref(1);
29
-
30
- watch(
31
- () => props.settings.value,
32
- () => {
33
- page.value = 1;
34
- }
35
- );
36
-
37
- const pageMax = computed(
38
- () =>
39
- Math.floor(props.settings.value.total / props.settings.value.pagesize) +
40
- 1
41
- );
42
-
43
- const dec = () => {
44
- if (page.value > 1) {
45
- page.value -= 1;
46
- emits("page", page.value);
47
- }
48
- };
49
-
50
- const inc = () => {
51
- if (page.value < pageMax.value) {
52
- page.value += 1;
53
- emits("page", page.value);
54
- }
55
- };
56
- </script>
57
- <template>
58
- <div class="pc-container">
59
- <button class="btn btn-outline-secondary" @click="dec">&#60;</button>
60
- <input
61
- class="form-control pc-input"
62
- type="number"
63
- :value="page"
64
- min="1"
65
- :max="pageMax"
66
- @change="$emit('page', ($event.target as any).value)"
67
- />/{{ pageMax }}
68
- <button class="btn btn-outline-secondary" @click="inc">&#62;</button>
69
- <DropDown
70
- :opentop="true"
71
- class="pc-dropdown"
72
- id="pagecount"
73
- label="10"
74
- :selected="settings.value.pagesize.toString()"
75
- :options="getOptions()"
76
- @selected="
77
- page = 1;
78
- $emit('pagesize', parseInt($event.id));
79
- "
80
- ></DropDown>
81
- </div>
82
- </template>
@@ -1,21 +0,0 @@
1
- <script setup lang="ts">
2
- defineProps<{ group: string; label: string; id: any; selected?: boolean }>();
3
-
4
- defineEmits<{
5
- (e: "selected", id: any): any;
6
- }>();
7
- </script>
8
-
9
- <template>
10
- <div class="form-check">
11
- <input
12
- class="form-check-input"
13
- type="radio"
14
- :name="group"
15
- :id="id"
16
- :checked="selected"
17
- @change="$emit('selected', id)"
18
- />
19
- <label class="form-check-label" :for="id"> {{ label }} </label>
20
- </div>
21
- </template>
@@ -1,28 +0,0 @@
1
- <script setup lang="ts">
2
- import RadioButton from "./RadioButton.vue";
3
-
4
- export interface RadioButtonGroupItem {
5
- label: string;
6
- id: any;
7
- selected?: boolean;
8
- }
9
- defineProps<{ group: string; items: RadioButtonGroupItem[] }>();
10
-
11
- defineEmits<{
12
- (e: "selected", id: any): any;
13
- }>();
14
- </script>
15
- <template>
16
- <div class="d-flex flex-column gap-2 justify-content-around">
17
- <RadioButton
18
- v-for="item in items"
19
- :key="item.id"
20
- :id="item.id"
21
- :label="item.label"
22
- :group="group"
23
- :selected="item.selected"
24
- @selected="$emit('selected', $event)"
25
- >
26
- </RadioButton>
27
- </div>
28
- </template>
@@ -1,9 +0,0 @@
1
- <script setup lang="ts">
2
- defineProps<{ loading: boolean }>();
3
- </script>
4
-
5
- <template>
6
- <div class="spinner-border" role="status" v-if="loading">
7
- <span class="visually-hidden">Loading...</span>
8
- </div>
9
- </template>