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.
- package/dist/admins-components.css +1 -0
- package/dist/admins-components.js +959 -0
- package/dist/admins-components.umd.cjs +1 -0
- package/package.json +17 -1
- package/admins-components/.vscode/extensions.json +0 -3
- package/admins-components/README.md +0 -5
- package/admins-components/index.html +0 -13
- package/admins-components/package.json +0 -21
- package/admins-components/public/vite.svg +0 -1
- package/admins-components/src/App.vue +0 -30
- package/admins-components/src/assets/vue.svg +0 -1
- package/admins-components/src/components/HelloWorld.vue +0 -41
- package/admins-components/src/main.ts +0 -5
- package/admins-components/src/style.css +0 -79
- package/admins-components/src/vite-env.d.ts +0 -1
- package/admins-components/tsconfig.app.json +0 -14
- package/admins-components/tsconfig.json +0 -7
- package/admins-components/tsconfig.node.json +0 -24
- package/admins-components/vite.config.ts +0 -7
- package/index.html +0 -13
- package/src/App.vue +0 -5
- package/src/assets/dropdown.scss +0 -61
- package/src/assets/dropdowncallback.scss +0 -57
- package/src/assets/dropdownmenu.scss +0 -33
- package/src/assets/filtercompact.scss +0 -6
- package/src/assets/filtercontrol.scss +0 -23
- package/src/assets/iconbutton.scss +0 -31
- package/src/assets/main.scss +0 -38
- package/src/assets/paginatorcontrol.scss +0 -16
- package/src/assets/propertyselector.scss +0 -12
- package/src/assets/tabletolist.scss +0 -115
- package/src/assets/tabletolistoptions.scss +0 -22
- package/src/assets/textlistbox.scss +0 -16
- package/src/assets/toastcomponent.scss +0 -23
- package/src/components/CheckBox.vue +0 -25
- package/src/components/CheckBoxList.vue +0 -48
- package/src/components/DropDown.vue +0 -203
- package/src/components/DropDownCallBack.vue +0 -109
- package/src/components/DropDownMenu.vue +0 -88
- package/src/components/FilterCompact.vue +0 -146
- package/src/components/FilterControl.vue +0 -133
- package/src/components/IconButton.vue +0 -25
- package/src/components/PaginatorControl.vue +0 -82
- package/src/components/RadioButton.vue +0 -21
- package/src/components/RadioButtonGroup.vue +0 -28
- package/src/components/SpinningProgress.vue +0 -9
- package/src/components/TableToList.vue +0 -281
- package/src/components/TableToListOptions.vue +0 -99
- package/src/components/TextListBox.vue +0 -50
- package/src/components/ToastComponent.vue +0 -82
- package/src/components/ToastWrapper.vue +0 -44
- package/src/index.ts +0 -56
- package/src/main.ts +0 -5
- package/src/style.css +0 -79
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.app.json +0 -14
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -24
- 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"><</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">></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>
|