@citruslime/ui 1.2.1-beta.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/README.md +5 -4
- package/dist/citrus-lime-ui.es.js +4602 -0
- package/dist/citrus-lime-ui.umd.js +2 -0
- package/dist/components/accordion/cl-ui-accordion.vue.d.ts +26 -0
- package/dist/components/accordion/index.d.ts +4 -0
- package/dist/components/accordion/item/cl-ui-accordion-item.vue.d.ts +35 -0
- package/dist/{@types/components/accordion/item.d.ts → components/accordion/types.d.ts} +0 -0
- package/dist/components/app/cl-ui-app.vue.d.ts +51 -0
- package/dist/components/app/index.d.ts +1 -0
- package/dist/components/button/cl-ui-button.vue.d.ts +51 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/types.d.ts +4 -0
- package/dist/components/calendar/cl-ui-calendar.vue.d.ts +2 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/calendar/types.d.ts +2 -0
- package/dist/components/calendar/utils.d.ts +38 -0
- package/dist/components/card/cl-ui-card.vue.d.ts +27 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/types.d.ts +2 -0
- package/dist/components/combo-box/cl-ui-combo-box.vue.d.ts +583 -0
- package/dist/components/combo-box/index.d.ts +2 -0
- package/dist/components/combo-box/search-container/cl-ui-combo-box-search.vue.d.ts +276 -0
- package/dist/components/combo-box/search-container/header/cl-ui-combo-box-header.vue.d.ts +42 -0
- package/dist/components/combo-box/search-container/selectable/cl-ui-combo-box-selectable.vue.d.ts +81 -0
- package/dist/{@types/components/combo-box/item.d.ts → components/combo-box/types.d.ts} +0 -0
- package/dist/components/footer/index.d.ts +1 -0
- package/dist/components/grid/cell/cl-ui-grid-cell.vue.d.ts +72 -0
- package/dist/components/grid/cl-ui-grid.vue.d.ts +550 -0
- package/dist/components/grid/filter/cl-ui-grid-filter.vue.d.ts +72 -0
- package/dist/components/grid/filter/filter-methods.d.ts +5 -0
- package/dist/components/grid/footer/cl-ui-grid-footer.vue.d.ts +63 -0
- package/dist/components/grid/header/cl-ui-grid-header.vue.d.ts +207 -0
- package/dist/components/grid/index.d.ts +2 -0
- package/dist/components/grid/types.d.ts +92 -0
- package/dist/components/grid/view-manager/cl-ui-grid-view-manager.vue.d.ts +88 -0
- package/dist/components/header/index.d.ts +2 -0
- package/dist/components/header/menu/cl-ui-header-menu.vue.d.ts +40 -0
- package/dist/components/header/menu/index.d.ts +1 -0
- package/dist/components/index.d.ts +16 -14
- package/dist/components/input/cl-ui-input.vue.d.ts +2 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/types.d.ts +6 -0
- package/dist/components/input/utils.d.ts +44 -0
- package/dist/components/language-switcher/cl-ui-language-switcher.vue.d.ts +37 -0
- package/dist/components/language-switcher/index.d.ts +2 -0
- package/dist/{@types/language.d.ts → components/language-switcher/types.d.ts} +0 -1
- package/dist/components/loading-spinner/index.d.ts +1 -0
- package/dist/components/login/cl-ui-login.vue.d.ts +106 -0
- package/dist/components/login/index.d.ts +2 -0
- package/dist/{@types/components/login/authentication.d.ts → components/login/types.d.ts} +0 -0
- package/dist/components/modal/cl-ui-modal.vue.d.ts +49 -0
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/types.d.ts +4 -0
- package/dist/components/navigation/cl-ui-navigation.vue.d.ts +11 -0
- package/dist/components/navigation/group/cl-ui-navigation-group.vue.d.ts +12 -0
- package/dist/components/navigation/icon/cl-ui-navigation-icon.vue.d.ts +20 -0
- package/dist/components/navigation/index.d.ts +5 -0
- package/dist/components/notification/cl-ui-notification.vue.d.ts +36 -0
- package/dist/components/notification/index.d.ts +1 -0
- package/dist/components/notification/types.d.ts +9 -0
- package/dist/components/slider/cl-ui-slider.vue.d.ts +114 -0
- package/dist/components/slider/index.d.ts +1 -0
- package/dist/components/tab/cl-ui-tab.vue.d.ts +52 -0
- package/dist/components/tab/header/cl-ui-tab-header.vue.d.ts +60 -0
- package/dist/components/tab/index.d.ts +4 -0
- package/dist/components/tab/types.d.ts +4 -0
- package/dist/composables/notification.d.ts +1 -1
- package/dist/main.d.ts +3 -5
- package/dist/style.css +1 -1
- package/dist/utils/i18n/config.d.ts +33 -0
- package/dist/utils/i18n/defaults.d.ts +4 -0
- package/dist/utils/i18n/index.d.ts +3 -0
- package/dist/utils/i18n/types.d.ts +97 -0
- package/dist/utils/index.d.ts +2 -6
- package/dist/utils/validation.d.ts +37 -0
- package/package.json +29 -13
- package/dist/.eslintrc.js +0 -448
- package/dist/.stylelintrc.js +0 -119
- package/dist/@types/appUser.d.ts +0 -10
- package/dist/@types/components/accordion/index.d.ts +0 -1
- package/dist/@types/components/combo-box/index.d.ts +0 -2
- package/dist/@types/components/combo-box/localisations.d.ts +0 -19
- package/dist/@types/components/grid/column.d.ts +0 -45
- package/dist/@types/components/grid/index.d.ts +0 -4
- package/dist/@types/components/grid/localisations.d.ts +0 -47
- package/dist/@types/components/grid/request.d.ts +0 -49
- package/dist/@types/components/grid/update.d.ts +0 -4
- package/dist/@types/components/header/index.d.ts +0 -2
- package/dist/@types/components/header/localisations.d.ts +0 -8
- package/dist/@types/components/header/navigation.d.ts +0 -15
- package/dist/@types/components/login/index.d.ts +0 -2
- package/dist/@types/components/login/localisations.d.ts +0 -7
- package/dist/@types/components/notification/index.d.ts +0 -1
- package/dist/@types/components/notification/item.d.ts +0 -7
- package/dist/@types/components/slider/index.d.ts +0 -1
- package/dist/@types/components/slider/localisations.d.ts +0 -3
- package/dist/@types/date-format.d.ts +0 -8
- package/dist/@types/debouncer.d.ts +0 -6
- package/dist/@types/index.d.ts +0 -15
- package/dist/@types/locale.d.ts +0 -10
- package/dist/@types/number-format.d.ts +0 -7
- package/dist/@types/string-format.d.ts +0 -3
- package/dist/@types/string.d.ts +0 -47
- package/dist/theme.js +0 -122
- package/dist/ui.es.js +0 -1
- package/dist/ui.umd.js +0 -1
- package/dist/utils/copy.d.ts +0 -8
- package/dist/utils/debouncer.d.ts +0 -8
- package/dist/utils/extensions/string-utilities.d.ts +0 -83
- package/dist/utils/extensions/string.d.ts +0 -1
- package/dist/utils/i18n/datetime-formats.d.ts +0 -3
- package/dist/utils/i18n/number-formats.d.ts +0 -3
- package/dist/utils/id.d.ts +0 -6
- package/dist/utils/name-of.d.ts +0 -7
- package/dist/utils/sort.d.ts +0 -9
- package/dist/utils/url-params.d.ts +0 -8
- package/src/components/accordion/accordion.vue +0 -30
- package/src/components/button/button.vue +0 -28
- package/src/components/calendar/calendar.vue +0 -35
- package/src/components/card/card.vue +0 -54
- package/src/components/combo-box/combo-box.vue +0 -79
- package/src/components/combo-box/search-container/header-option/header-option.vue +0 -21
- package/src/components/combo-box/search-container/search-container.vue +0 -57
- package/src/components/combo-box/search-container/selectable-option/selectable-option.vue +0 -27
- package/src/components/footer/footer.vue +0 -23
- package/src/components/grid/cell/cell.vue +0 -64
- package/src/components/grid/filter/filter.vue +0 -93
- package/src/components/grid/footer/footer.vue +0 -91
- package/src/components/grid/grid.vue +0 -194
- package/src/components/grid/header/header.vue +0 -39
- package/src/components/grid/view-manager/view-manager.vue +0 -73
- package/src/components/header/header-helper/header-helper.vue +0 -95
- package/src/components/header/header.vue +0 -33
- package/src/components/header/navigation/navigation.vue +0 -84
- package/src/components/language-switcher/language-switcher.vue +0 -36
- package/src/components/loading-spinner/loading-spinner.vue +0 -8
- package/src/components/login/login.vue +0 -101
- package/src/components/modal/modal.vue +0 -48
- package/src/components/notification/notification.vue +0 -36
- package/src/components/slider/slider.vue +0 -41
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./grid"></script>
|
|
2
|
-
|
|
3
|
-
<style scoped src="./grid.css"></style>
|
|
4
|
-
|
|
5
|
-
<template>
|
|
6
|
-
<div class="hidden lg:block lg:text-right mb-4 w-full">
|
|
7
|
-
<cl-ui-grid-header v-model:columns="currentColumns"
|
|
8
|
-
v-model:edit-mode="editMode"
|
|
9
|
-
:localisations="localisations"
|
|
10
|
-
@reset-filters="resetFilters" />
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<div class="grid-wrapper relative w-full"
|
|
14
|
-
:data-loading="loading">
|
|
15
|
-
<div v-show="loading"
|
|
16
|
-
class="absolute bg-white h-full opacity-40 w-full z-20"></div>
|
|
17
|
-
|
|
18
|
-
<div class="bg-white flex flex-wrap lg:hidden sticky top-0 w-full">
|
|
19
|
-
<div class="border-b border-grey-2 flex flex-wrap px-2 py-4 w-full">
|
|
20
|
-
<strong class="mb-4 text-sm w-full">
|
|
21
|
-
{{ localisations.gridTools }}
|
|
22
|
-
</strong>
|
|
23
|
-
|
|
24
|
-
<div class="flex flex-wrap w-full">
|
|
25
|
-
<cl-ui-grid-header v-model:columns="currentColumns"
|
|
26
|
-
v-model:edit-mode="editMode"
|
|
27
|
-
v-model:filter-panel-open="filterPanelOpen"
|
|
28
|
-
:localisations="localisations"
|
|
29
|
-
@reset-filters="resetFilters" />
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div v-show="filterPanelOpen"
|
|
34
|
-
class="absolute bg-white h-screen overflow-x-auto p-4 text-sm w-full z-10">
|
|
35
|
-
<div class="border-b border-grey-3 mb-2 pb-2 text-right w-full">
|
|
36
|
-
<cl-ui-button colour="blue"
|
|
37
|
-
size="small"
|
|
38
|
-
@click.prevent="filterPanelOpen = false;">
|
|
39
|
-
<ph-x class="-mt-1 inline-block"
|
|
40
|
-
:size="16" />
|
|
41
|
-
|
|
42
|
-
{{ localisations.confirmFilters }}
|
|
43
|
-
</cl-ui-button>
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
<div class="grid grid-cols-3">
|
|
47
|
-
<div>
|
|
48
|
-
{{ localisations.field }}
|
|
49
|
-
</div>
|
|
50
|
-
|
|
51
|
-
<div>
|
|
52
|
-
{{ localisations.filter }}
|
|
53
|
-
</div>
|
|
54
|
-
|
|
55
|
-
<div>
|
|
56
|
-
{{ localisations.sortBy }}
|
|
57
|
-
</div>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<div v-for="(column, index) in visibleColumns"
|
|
61
|
-
:key="index"
|
|
62
|
-
class="grid grid-cols-3 mb-4 w-full">
|
|
63
|
-
<div>
|
|
64
|
-
{{ column.caption }}
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<cl-ui-grid-filter v-model:request="currentRequest"
|
|
68
|
-
:localisations="localisations"
|
|
69
|
-
:column="column"
|
|
70
|
-
:current-locale="currentLocale" />
|
|
71
|
-
|
|
72
|
-
<template v-if="(column.type !== GridColumnType.SLOT || (column.slotType !== undefined) && column.field !== undefined) &&
|
|
73
|
-
(column.sortable === undefined || column.sortable === true)">
|
|
74
|
-
<ph-minus v-if="currentRequest.sort === null || currentRequest.sort.sortOnColumn !== column.field"
|
|
75
|
-
class="cursor-pointer ml-2"
|
|
76
|
-
@click="setSort(column.field)" />
|
|
77
|
-
<ph-caret-down v-else-if="currentRequest.sort.sortByAscending === false"
|
|
78
|
-
class="cursor-pointer ml-2"
|
|
79
|
-
@click="setSort(column.field)" />
|
|
80
|
-
<ph-caret-up v-else
|
|
81
|
-
class="cursor-pointer ml-2"
|
|
82
|
-
@click="setSort(column.field)" />
|
|
83
|
-
</template>
|
|
84
|
-
<div v-else
|
|
85
|
-
class="ml-2">
|
|
86
|
-
|
|
87
|
-
</div>
|
|
88
|
-
</div>
|
|
89
|
-
</div>
|
|
90
|
-
</div>
|
|
91
|
-
|
|
92
|
-
<div class="overflow-auto w-full">
|
|
93
|
-
<table class="min-w-full table-fixed">
|
|
94
|
-
<colgroup class="hidden lg:table-column-group">
|
|
95
|
-
<col v-for="(column, index) in visibleColumns"
|
|
96
|
-
:key="index"
|
|
97
|
-
:style="getStyleForColumn(column.name)"
|
|
98
|
-
:span="1">
|
|
99
|
-
</colgroup>
|
|
100
|
-
|
|
101
|
-
<thead class="hidden lg:table-header-group">
|
|
102
|
-
<tr>
|
|
103
|
-
<th v-for="(column, index) in visibleColumns"
|
|
104
|
-
:key="index"
|
|
105
|
-
class="border-b border-grey-2 font-semibold p-1 text-grey-3 text-left text-sm uppercase"
|
|
106
|
-
:style="getStyleForColumn(column.name)">
|
|
107
|
-
<span v-if="data && data.results?.length &&
|
|
108
|
-
(column.type !== GridColumnType.SLOT || (column.slotType !== undefined && column.field !== undefined)) &&
|
|
109
|
-
(column.sortable === undefined || column.sortable === true)"
|
|
110
|
-
class="cursor-pointer"
|
|
111
|
-
@click="setSort(column.field)">
|
|
112
|
-
{{ column.caption }}
|
|
113
|
-
|
|
114
|
-
<ph-caret-up v-show="currentRequest.sort !== null && currentRequest.sort.sortOnColumn === column.field && currentRequest.sort.sortByAscending === true"
|
|
115
|
-
class="-mt-1 inline-block" />
|
|
116
|
-
|
|
117
|
-
<ph-caret-down v-show="currentRequest.sort !== null && currentRequest.sort.sortOnColumn === column.field && currentRequest.sort.sortByAscending === false"
|
|
118
|
-
class="-mt-1 inline-block" />
|
|
119
|
-
</span>
|
|
120
|
-
<span v-else>
|
|
121
|
-
{{ column.caption }}
|
|
122
|
-
</span>
|
|
123
|
-
</th>
|
|
124
|
-
</tr>
|
|
125
|
-
|
|
126
|
-
<tr v-if="(data && data.results?.length) || currentRequest.filters.length > 0">
|
|
127
|
-
<th v-for="(column, index) in visibleColumns"
|
|
128
|
-
:key="index"
|
|
129
|
-
class="p-1"
|
|
130
|
-
:style="getStyleForColumn(column.name)">
|
|
131
|
-
<cl-ui-grid-filter v-model:request="currentRequest"
|
|
132
|
-
:localisations="localisations"
|
|
133
|
-
:column="column"
|
|
134
|
-
:current-locale="currentLocale"
|
|
135
|
-
:first-half="index <= visibleColumns.length / 2" />
|
|
136
|
-
</th>
|
|
137
|
-
</tr>
|
|
138
|
-
</thead>
|
|
139
|
-
|
|
140
|
-
<tbody>
|
|
141
|
-
<template v-if="data && data.results?.length">
|
|
142
|
-
<tr v-for="(record, recordIndex) in data.results"
|
|
143
|
-
:key="recordIndex"
|
|
144
|
-
:class="{
|
|
145
|
-
'bg-white': (recordIndex % 2) !== 1,
|
|
146
|
-
'bg-off-white': (recordIndex % 2) === 1
|
|
147
|
-
}">
|
|
148
|
-
<cl-ui-grid-cell v-for="(column, columnIndex) in visibleColumns"
|
|
149
|
-
:key="columnIndex"
|
|
150
|
-
class="align-top p-2 whitespace-nowrap"
|
|
151
|
-
:style="getStyleForColumn(column.name)"
|
|
152
|
-
:current-locale="currentLocale"
|
|
153
|
-
:column="column"
|
|
154
|
-
:record="record"
|
|
155
|
-
:edit-mode="editMode"
|
|
156
|
-
@focus="cellFocused(recordIndex)"
|
|
157
|
-
@edit="cellFocused(recordIndex); cellChanged($event, column.field);"
|
|
158
|
-
@undo-edit="cellReverted(column.field)">
|
|
159
|
-
<template v-for="(_, name) in $slots"
|
|
160
|
-
#[name]="data">
|
|
161
|
-
<slot :name="name"
|
|
162
|
-
v-bind="data"></slot>
|
|
163
|
-
</template>
|
|
164
|
-
</cl-ui-grid-cell>
|
|
165
|
-
</tr>
|
|
166
|
-
</template>
|
|
167
|
-
<tr v-else>
|
|
168
|
-
<td :colspan="visibleColumns.length">
|
|
169
|
-
<div class="my-10 py-1 text-center text-sm w-full">
|
|
170
|
-
<strong>
|
|
171
|
-
{{ localisations.noData }}
|
|
172
|
-
</strong>
|
|
173
|
-
|
|
174
|
-
<div v-if="currentRequest.filters.length > 0"
|
|
175
|
-
class="w-full">
|
|
176
|
-
{{ localisations.noDataFiltersPresent }}
|
|
177
|
-
|
|
178
|
-
<cl-ui-button size="small"
|
|
179
|
-
@click.prevent="resetFilters">
|
|
180
|
-
{{ localisations.clearFilters }}
|
|
181
|
-
</cl-ui-button>
|
|
182
|
-
</div>
|
|
183
|
-
</div>
|
|
184
|
-
</td>
|
|
185
|
-
</tr>
|
|
186
|
-
</tbody>
|
|
187
|
-
</table>
|
|
188
|
-
</div>
|
|
189
|
-
|
|
190
|
-
<cl-ui-grid-footer v-model:request="currentRequest"
|
|
191
|
-
:localisations="localisations"
|
|
192
|
-
:data="data" />
|
|
193
|
-
</div>
|
|
194
|
-
</template>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./header"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<span class="lg:pb-0 lg:w-auto pb-2 pr-2 w-1/2">
|
|
5
|
-
<cl-ui-button class="lg:w-auto w-full"
|
|
6
|
-
size="small"
|
|
7
|
-
colour="default"
|
|
8
|
-
@click="$emit('update:edit-mode', !editMode)">
|
|
9
|
-
<span v-show="!editMode">
|
|
10
|
-
{{ localisations.editData }}
|
|
11
|
-
</span>
|
|
12
|
-
<span v-show="editMode">
|
|
13
|
-
{{ localisations.finishEditing }}
|
|
14
|
-
</span>
|
|
15
|
-
</cl-ui-button>
|
|
16
|
-
</span>
|
|
17
|
-
|
|
18
|
-
<span class="hidden lg:inline-block pr-2">
|
|
19
|
-
<cl-ui-view-manager v-model:columns="currentColumns"
|
|
20
|
-
:localisations="localisations" />
|
|
21
|
-
</span>
|
|
22
|
-
|
|
23
|
-
<span class="lg:pb-0 lg:pr-0 lg:w-auto pb-2 pr-2 w-1/2">
|
|
24
|
-
<cl-ui-button class="lg:w-auto w-full"
|
|
25
|
-
size="small"
|
|
26
|
-
@click.prevent="$emit('reset-filters')">
|
|
27
|
-
{{ localisations.clearFilters }}
|
|
28
|
-
</cl-ui-button>
|
|
29
|
-
</span>
|
|
30
|
-
|
|
31
|
-
<span class="lg:hidden pr-2 w-1/2">
|
|
32
|
-
<cl-ui-button class="w-full"
|
|
33
|
-
colour="blue"
|
|
34
|
-
size="small"
|
|
35
|
-
@click.prevent="$emit('update:filter-panel-open', true)">
|
|
36
|
-
{{ localisations.modifyFilters }}
|
|
37
|
-
</cl-ui-button>
|
|
38
|
-
</span>
|
|
39
|
-
</template>
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./view-manager"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<cl-ui-button v-bind="$attrs"
|
|
5
|
-
class="w-full"
|
|
6
|
-
size="small"
|
|
7
|
-
@click.prevent="visible = true">
|
|
8
|
-
{{ localisations.manageView }}
|
|
9
|
-
</cl-ui-button>
|
|
10
|
-
|
|
11
|
-
<teleport to="body">
|
|
12
|
-
<div v-show="visible"
|
|
13
|
-
class="fixed flex h-full right-0 top-0 w-full z-40">
|
|
14
|
-
<div class="bg-black cursor-pointer flex-1 h-full opacity-40"
|
|
15
|
-
@click="visible = false"></div>
|
|
16
|
-
|
|
17
|
-
<div class="bg-secondary-default h-full overflow-y-auto px-10 py-20 relative text-grey-2 w-80">
|
|
18
|
-
<ph-x class="absolute cursor-pointer right-3 text-off-white top-3"
|
|
19
|
-
:size="16"
|
|
20
|
-
@click="visible = false" />
|
|
21
|
-
|
|
22
|
-
<h3 class="mb-4 text-2xl text-off-white">
|
|
23
|
-
{{ localisations.manageView }}
|
|
24
|
-
</h3>
|
|
25
|
-
|
|
26
|
-
<ul class="border-grey-3 border-t flex flex-wrap text-sm w-full">
|
|
27
|
-
<li class="border-b border-grey-2 flex py-2 text-sm w-full">
|
|
28
|
-
<strong class="flex-1 py-2">
|
|
29
|
-
{{ localisations.column }}
|
|
30
|
-
</strong>
|
|
31
|
-
|
|
32
|
-
<strong class="py-2 w-1/4">
|
|
33
|
-
{{ localisations.visible }}
|
|
34
|
-
</strong>
|
|
35
|
-
|
|
36
|
-
<strong class="py-2 w-1/5">
|
|
37
|
-
{{ localisations.order }}
|
|
38
|
-
</strong>
|
|
39
|
-
</li>
|
|
40
|
-
|
|
41
|
-
<li v-for="(column, index) in columns"
|
|
42
|
-
:key="index"
|
|
43
|
-
class="border-b border-grey-2 flex py-2 text-sm w-full">
|
|
44
|
-
<div class="flex-1 py-2">
|
|
45
|
-
{{ column.caption }}
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<div class="py-2 w-1/4">
|
|
49
|
-
<input :checked="column.visible === undefined || column.visible === true"
|
|
50
|
-
type="checkbox"
|
|
51
|
-
@click="updateColumnVisibility($event.target, column)">
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
<div class="py-2 text-off-white w-1/5">
|
|
55
|
-
<template v-if="column.visible === undefined || column.visible === true">
|
|
56
|
-
<ph-arrow-left v-if="index !== 0"
|
|
57
|
-
class="cursor-pointer inline-block mr-2"
|
|
58
|
-
@click="changeColumnOrder(index, 'down')" />
|
|
59
|
-
|
|
60
|
-
<ph-arrow-right v-if="index !== columns.length - 1"
|
|
61
|
-
class="cursor-pointer inline-block"
|
|
62
|
-
@click="changeColumnOrder(index, 'up')" />
|
|
63
|
-
</template>
|
|
64
|
-
<em v-else>
|
|
65
|
-
{{ localisations.hidden }}
|
|
66
|
-
</em>
|
|
67
|
-
</div>
|
|
68
|
-
</li>
|
|
69
|
-
</ul>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
</teleport>
|
|
73
|
-
</template>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./header-helper"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<div class="flex items-center z-30"
|
|
5
|
-
:class="{
|
|
6
|
-
'cursor-pointer': !disabled
|
|
7
|
-
}">
|
|
8
|
-
<cl-ui-language-switcher v-model:current-locale="selectedLocale"
|
|
9
|
-
:supported-locales="supportedLocales"
|
|
10
|
-
:disabled="disabled" />
|
|
11
|
-
|
|
12
|
-
<div v-if="user !== null"
|
|
13
|
-
class="bg-blue-light ease-in-out flex h-14 hover:bg-blue-hover items-center lg:w-64 select-none text-white transition-colors uppercase w-12"
|
|
14
|
-
@click="toggleBox">
|
|
15
|
-
<div class="w-auto">
|
|
16
|
-
<div class="bg-secondary-default font-semibold h-8 leading-8 mx-2 rounded-full text-center text-xs w-8">
|
|
17
|
-
{{ user.userInitial }}
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="flex-1 hidden lg:inline-block ml-2">
|
|
22
|
-
<div class="flex font-semibold text-sm">
|
|
23
|
-
<div class="lg:w-36 overflow-ellipsis overflow-hidden whitespace-nowrap">
|
|
24
|
-
{{ user.userName }}
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<div v-if="user.userGroup !== undefined && user.userGroup.groupName !== 'NOT LOGGED IN'"
|
|
28
|
-
class="hidden lg:inline-block mx-2">
|
|
29
|
-
#{{ user.userGroup.groupId }}
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
<div v-if="user.userGroup !== undefined"
|
|
34
|
-
class="lg:w-44 overflow-ellipsis overflow-hidden text-xs uppercase whitespace-nowrap">
|
|
35
|
-
{{ user.userGroup.groupName }}
|
|
36
|
-
</div>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<div class="bg-blue-default ease-in-out font-semibold h-14 hidden hover:bg-blue-hover items-center lg:flex px-4 select-none text-white transition-colors uppercase"
|
|
41
|
-
@click="toggleBox">
|
|
42
|
-
{{ helperLocalisations.helpLabel }}
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
|
|
46
|
-
<div class="absolute bg-white border border-grey-2 lg:w-80 right-4 shadow-xl top-20 w-72 z-30"
|
|
47
|
-
:class="{ 'block': display, 'hidden': !display }">
|
|
48
|
-
<div v-if="user"
|
|
49
|
-
class="bg-blue-default font-semibold p-2.5 text-white">
|
|
50
|
-
{{ helperLocalisations.helpMessage }}
|
|
51
|
-
</div>
|
|
52
|
-
|
|
53
|
-
<!--
|
|
54
|
-
TODO
|
|
55
|
-
<TawkTo v-if="showChildComponents" />
|
|
56
|
-
-->
|
|
57
|
-
|
|
58
|
-
<a v-if="supportLink !== null"
|
|
59
|
-
:href="supportLink"
|
|
60
|
-
target="_blank"
|
|
61
|
-
rel="noreferrer"
|
|
62
|
-
class="block border-b border-grey-2 cursor-pointer font-semibold hover:bg-grey-1 hover:text-grey-4 p-2.5 text-grey-4 text-sm">
|
|
63
|
-
<img class="inline-block mr-1"
|
|
64
|
-
src="../../../assets/images/feedback.png">
|
|
65
|
-
|
|
66
|
-
{{ helperLocalisations.support }}
|
|
67
|
-
</a>
|
|
68
|
-
|
|
69
|
-
<a v-if="feedbackLink !== null"
|
|
70
|
-
:href="feedbackLink"
|
|
71
|
-
target="_blank"
|
|
72
|
-
rel="noreferrer"
|
|
73
|
-
class="block border-b border-grey-2 cursor-pointer font-semibold hover:bg-grey-1 hover:text-grey-4 p-2.5 text-grey-4 text-sm">
|
|
74
|
-
<img class="inline-block mr-1"
|
|
75
|
-
src="../../../assets/images/portal.png">
|
|
76
|
-
|
|
77
|
-
{{ helperLocalisations.feedback }}
|
|
78
|
-
</a>
|
|
79
|
-
|
|
80
|
-
<a v-if="websiteLink !== null"
|
|
81
|
-
:href="websiteLink"
|
|
82
|
-
target="_blank"
|
|
83
|
-
rel="noreferrer"
|
|
84
|
-
class="block border-b border-grey-2 cursor-pointer font-semibold hover:bg-grey-1 hover:text-grey-4 p-2 text-grey-4 text-xs">
|
|
85
|
-
{{ helperLocalisations.website }}
|
|
86
|
-
</a>
|
|
87
|
-
|
|
88
|
-
<a v-if="userLoggedIn == true && logoutEnabled"
|
|
89
|
-
href="#"
|
|
90
|
-
class="block border-b border-grey-2 cursor-pointer font-semibold hover:bg-grey-1 hover:text-grey-4 p-2 text-grey-4 text-xs"
|
|
91
|
-
@click.prevent="logout">
|
|
92
|
-
{{ helperLocalisations.logout }}
|
|
93
|
-
</a>
|
|
94
|
-
</div>
|
|
95
|
-
</template>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./header"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<div class="w-full">
|
|
5
|
-
<nav class="bg-secondary-default flex items-center justify-between min-h-[56px] relative w-full">
|
|
6
|
-
<div class="flex-1 ml-14 text-center z-30">
|
|
7
|
-
<img class="box-border h-6 inline-block lg:h-10 mx-4"
|
|
8
|
-
:class="{ 'cursor-pointer': !additionalActionsDisabled }"
|
|
9
|
-
:src="logoPath"
|
|
10
|
-
loading="lazy"
|
|
11
|
-
@click="logoSelected">
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<cl-ui-header-helper v-if="!noHelper"
|
|
15
|
-
v-model:current-locale="selectedLocale"
|
|
16
|
-
:supported-locales="supportedLocales"
|
|
17
|
-
:disabled="additionalActionsDisabled"
|
|
18
|
-
:localisations="localisations"
|
|
19
|
-
:feedback-link="feedbackLink"
|
|
20
|
-
:support-link="supportLink"
|
|
21
|
-
:website-link="websiteLink"
|
|
22
|
-
:user-logged-in="userLoggedIn"
|
|
23
|
-
:logout-enabled="true"
|
|
24
|
-
:user="user"
|
|
25
|
-
@logout="logout" />
|
|
26
|
-
</nav>
|
|
27
|
-
|
|
28
|
-
<cl-ui-navigation :navigation="navigation"
|
|
29
|
-
@item-select="itemSelected"
|
|
30
|
-
@group-select="groupSelected"
|
|
31
|
-
@state-change="stateChanged" />
|
|
32
|
-
</div>
|
|
33
|
-
</template>
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./navigation"></script>
|
|
2
|
-
|
|
3
|
-
<template>
|
|
4
|
-
<div v-if="navigation"
|
|
5
|
-
class="absolute h-full left-0 overflow-hidden top-0 w-full">
|
|
6
|
-
<div class="bg-link-default cursor-pointer delay-200 duration-200 ease-in-out flex h-14 hover:bg-link-light items-center relative transform transition-all w-14 z-40"
|
|
7
|
-
:class="{ 'lg:translate-x-80 translate-x-44': isOpen }"
|
|
8
|
-
@click.prevent="isOpen ? close() : open()">
|
|
9
|
-
<ph-list class="leading-10 text-white w-full"
|
|
10
|
-
:size="24"
|
|
11
|
-
weight="bold" />
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<div v-show="isOpen"
|
|
15
|
-
class="bg-black cursor-pointer h-full opacity-40 relative w-full z-40"
|
|
16
|
-
@click="close">
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<div class="absolute bg-white border border-grey-0 duration-200 ease-in-out h-full left-0 lg:w-80 overflow-y-auto top-0 transform transition-transform w-44 z-[45]"
|
|
20
|
-
:class="{ 'lg:-translate-x-96 -translate-x-48': !isOpen }">
|
|
21
|
-
<div class="h-14 p-4 relative">
|
|
22
|
-
<input class="!h-6 !p-1 !px-1.5 !text-xs"
|
|
23
|
-
:value="filter"
|
|
24
|
-
type="text"
|
|
25
|
-
@input="debounce(setFilter, [ $event.target?.value ])">
|
|
26
|
-
|
|
27
|
-
<ph-magnifying-glass v-show="filter === ''"
|
|
28
|
-
class="absolute right-5 text-grey-3 top-5"
|
|
29
|
-
:size="16" />
|
|
30
|
-
|
|
31
|
-
<ph-x v-show="filter !== ''"
|
|
32
|
-
class="absolute cursor-pointer right-5 text-grey-3 top-5"
|
|
33
|
-
:size="16"
|
|
34
|
-
@click="filter = ''" />
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<div v-for="(group, index) in navigationList"
|
|
38
|
-
:key="index">
|
|
39
|
-
<div class="bg-grey-1 capitalize flex font-semibold items-center px-1 py-2 text-sm w-full"
|
|
40
|
-
:class="{ 'cursor-pointer': !group.disabled }"
|
|
41
|
-
@click="group.disabled ? null : groupSelected(group)">
|
|
42
|
-
<ph-caret-right v-show="group.collapsed"
|
|
43
|
-
class="mr-2"
|
|
44
|
-
:size="16" />
|
|
45
|
-
|
|
46
|
-
<ph-caret-down v-show="!group.collapsed"
|
|
47
|
-
class="mr-2"
|
|
48
|
-
:size="16" />
|
|
49
|
-
|
|
50
|
-
<span class="flex-1 min-w-min">
|
|
51
|
-
{{ group.caption }}
|
|
52
|
-
</span>
|
|
53
|
-
|
|
54
|
-
<component :is="group.icon"
|
|
55
|
-
v-if="group.icon !== null"
|
|
56
|
-
class="mr-1 w-auto"
|
|
57
|
-
:size="18" />
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<template v-if="!group.collapsed">
|
|
61
|
-
<div v-for="(groupItem, groupIndex) in group.records"
|
|
62
|
-
:key="groupIndex"
|
|
63
|
-
class="border-link-default cursor-pointer text-xs w-full"
|
|
64
|
-
:class="{ 'border-l-4': groupItem.active }">
|
|
65
|
-
<a v-if="!groupItem.linkIsExternal"
|
|
66
|
-
class="bg-grey-0 block hover:bg-link-default hover:text-white py-1.5 text-black w-full"
|
|
67
|
-
:class="{ 'pl-5': groupItem.active, 'pl-6': !groupItem.active }"
|
|
68
|
-
@click="itemSelected(groupItem); close();">
|
|
69
|
-
{{ groupItem.caption }}
|
|
70
|
-
</a>
|
|
71
|
-
<a v-else
|
|
72
|
-
class="bg-grey-0 block hover:bg-link-default hover:text-white pl-6 py-1.5 text-black w-full"
|
|
73
|
-
:href="groupItem.link"
|
|
74
|
-
target="_blank "
|
|
75
|
-
rel="noreferrer"
|
|
76
|
-
@click="close">
|
|
77
|
-
{{ groupItem.caption }}
|
|
78
|
-
</a>
|
|
79
|
-
</div>
|
|
80
|
-
</template>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</template>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<script lang="ts" src="./language-switcher"></script>
|
|
2
|
-
|
|
3
|
-
<style scoped src="./language-switcher.css"></style>
|
|
4
|
-
|
|
5
|
-
<template>
|
|
6
|
-
<div v-if="selectedLanguage !== null && isLanguageLocaleFormat(selectedLanguage)"
|
|
7
|
-
class="flex relative select-none w-auto z-30">
|
|
8
|
-
<div class="flex items-center"
|
|
9
|
-
:class="{ 'cursor-pointer': !disabled }"
|
|
10
|
-
@click="toggleLocaleSwitcher">
|
|
11
|
-
<span class="flag-svg inline-block mr-3"
|
|
12
|
-
:style="{ 'background': `url('${selectedLanguage.svgCode}')` }"></span>
|
|
13
|
-
|
|
14
|
-
<span class="font-semibold hidden lg:inline-block mr-4 text-white text-xs">
|
|
15
|
-
{{ selectedLanguage.nativeName }}
|
|
16
|
-
</span>
|
|
17
|
-
</div>
|
|
18
|
-
|
|
19
|
-
<div v-show="localeToggleOpen"
|
|
20
|
-
class="absolute bg-white overflow-hidden right-0 rounded shadow-xl top-6 z-30">
|
|
21
|
-
<div v-for="(location, index) in validLanguages"
|
|
22
|
-
:key="index"
|
|
23
|
-
class="border-b border-grey-0 content-center cursor-pointer flex hover:bg-grey-0 items-center last-child:border-b-0 last:border-b-0 p-2 text-center transition-colors"
|
|
24
|
-
:data-localename="location.name"
|
|
25
|
-
:data-localecode="location.localeCode"
|
|
26
|
-
@click="selectedLocale = location.localeCode">
|
|
27
|
-
<span class="flag-svg inline-block mr-3"
|
|
28
|
-
:style="{ 'background': `url('${location.svgCode}')` }"></span>
|
|
29
|
-
|
|
30
|
-
<span class="hidden lg:inline-flex ml-2 text-xs">
|
|
31
|
-
{{ location.nativeName }}
|
|
32
|
-
</span>
|
|
33
|
-
</div>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</template>
|