@cloudron/pankow 3.5.5 → 3.5.7

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.
@@ -287,7 +287,7 @@ defineExpose({
287
287
  <div class="pankow-menu-backdrop" @click="onBackdrop($event)" @contextmenu="onBackdrop($event)" v-show="isOpen"></div>
288
288
  <Transition :name="rollUp ? 'pankow-roll-up' : 'pankow-roll-down'">
289
289
  <div class="pankow-menu" v-show="isOpen" ref="container" tabindex="0" @keydown.up.stop="selectUp()" @keydown.down.stop="selectDown()" @keydown.esc.stop="close()" @keydown="onKeyDown">
290
- <TextInput placeholder="Filter ..." @keydown.up.stop="selectUp()" @keydown.down.stop="selectDown()" @keydown.stop @keydown.esc.stop="close()" @click.stop style="width: 100%; border: 0; padding: 8px 12px;" v-model="searchString" v-if="searchThreshold < model.length"/>
290
+ <TextInput placeholder="Filter ..." autocomplete="off" @keydown.up.stop="selectUp()" @keydown.down.stop="selectDown()" @keydown.stop @keydown.esc.stop="close()" @click.stop style="width: 100%; border: 0; padding: 8px 12px;" v-model="searchString" v-if="searchThreshold < model.length"/>
291
291
  <component v-for="item in visibleItems" ref="itemElements" :is="item.type || (item.href ? MenuItemLink : MenuItem)" @activated="onItemActivated(item)" :item="item" :has-icons="hasIcons" />
292
292
  <MenuItem v-if="model.length === 0" :item="emptyItem"/>
293
293
  </div>
@@ -134,7 +134,8 @@ defineExpose({
134
134
  openEventTimeStamp.value = event.timeStamp;
135
135
 
136
136
  event.preventDefault();
137
- }
137
+ },
138
+ close,
138
139
  });
139
140
 
140
141
  </script>
@@ -1,6 +1,6 @@
1
1
  <script setup>
2
2
 
3
- import { ref, useTemplateRef, onMounted, computed, watch } from 'vue';
3
+ import { ref, useTemplateRef, computed, watch, watchEffect } from 'vue';
4
4
  import Button from './Button.vue';
5
5
  import Menu from './Menu.vue';
6
6
  import Icon from './Icon.vue';
@@ -155,14 +155,16 @@ function onKeyDown(event) {
155
155
  if (found !== -1) selectIndex(found);
156
156
  }
157
157
 
158
- onMounted(() => {
158
+ function handleDefaultSelect() {
159
159
  if (props.optionKey) {
160
160
  selectedKey.value = model.value;
161
161
  selected.value = props.options.find((o) => o[props.optionKey] === selectedKey.value);
162
162
  } else {
163
163
  selected.value = model.value;
164
164
  }
165
- });
165
+ }
166
+
167
+ watchEffect(handleDefaultSelect);
166
168
 
167
169
  </script>
168
170
 
@@ -95,7 +95,12 @@ onMounted(() => {
95
95
  <table class="pankow-table">
96
96
  <thead class="pankow-table-header" v-if="sortedItems.length !== 0">
97
97
  <tr>
98
- <th v-for="column in Object.keys(columns)" class="pankow-table-header-column" :class="{ 'pankow-table-header-column-sortable': columns[column].sort, 'pankow-table-cell-hide-mobile': columns[column].hideMobile }" @click="toggleSort(column)">
98
+ <th v-for="column in Object.keys(columns)"
99
+ class="pankow-table-header-column"
100
+ :class="{ 'pankow-table-header-column-sortable': columns[column].sort, 'pankow-table-cell-hide-mobile': columns[column].hideMobile }"
101
+ :style="{ 'text-align': columns[column].align || null }"
102
+ @click="toggleSort(column)"
103
+ >
99
104
  <Icon v-if="columns[column].icon" :icon="columns[column].icon" />
100
105
  {{ columns[column].label }}
101
106
  <i v-show="sortBy === column" class="fa-solid" :class="{ 'fa-arrow-up': sortOrder === SORT_ORDER.DESC, 'fa-arrow-down': sortOrder === SORT_ORDER.ASC }"></i>
@@ -103,10 +108,20 @@ onMounted(() => {
103
108
  </tr>
104
109
  </thead>
105
110
  <tbody>
106
- <tr v-if="busy"><td :colspan="Object.keys(columns).length" style="text-align: center; padding: 20px;"><ProgressBar mode="indeterminate" :show-label="false" :slim="true" v-show="finalBusy"/></td></tr>
107
- <tr v-else-if="!busy && sortedItems.length === 0"><td :colspan="Object.keys(columns).length" class="pankow-table-placeholder">{{ placeholder }}</td></tr>
111
+ <tr v-if="busy">
112
+ <td :colspan="Object.keys(columns).length" style="text-align: center; padding: 20px;">
113
+ <ProgressBar mode="indeterminate" :show-label="false" :slim="true" v-show="finalBusy"/>
114
+ </td>
115
+ </tr>
116
+ <tr v-else-if="!busy && sortedItems.length === 0">
117
+ <td :colspan="Object.keys(columns).length" class="pankow-table-placeholder">{{ placeholder }}</td>
118
+ </tr>
108
119
  <tr v-else class="pankow-table-row" :class="{ 'pankow-table-row-with-hover': hover }" v-for="item in sortedItems" @click="onRowClick(item)">
109
- <td class="pankow-table-cell" v-for="column in Object.keys(columns)" :style="{ width: typeof columns[column].width === 'string' ? columns[column].width : 'auto' }" :class="{ 'pankow-table-cell-hide-mobile': columns[column].hideMobile, 'pankow-table-cell-nowrap': columns[column].nowrap }">
120
+ <td v-for="column in Object.keys(columns)"
121
+ class="pankow-table-cell"
122
+ :style="{ 'text-align': columns[column].align || null, width: typeof columns[column].width === 'string' ? columns[column].width : 'auto' }"
123
+ :class="{ 'pankow-table-cell-hide-mobile': columns[column].hideMobile, 'pankow-table-cell-nowrap': columns[column].nowrap }"
124
+ >
110
125
  <slot :name="column" v-if="$slots[column]" v-bind="item"/>
111
126
  <span v-if="!$slots[column]">{{ (column in item) ? (item[column].label || item[column]) : `TableView Error: item has no property '${column}' nor a template with that name` }}</span>
112
127
  </td>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudron/pankow",
3
3
  "private": false,
4
- "version": "3.5.5",
4
+ "version": "3.5.7",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "types": "types/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@vitejs/plugin-vue": "^6.0.1",
26
26
  "typescript": "^5.9.3",
27
- "vite": "^7.1.10",
28
- "vue": "^3.5.22"
27
+ "vite": "^7.2.2",
28
+ "vue": "^3.5.24"
29
29
  }
30
30
  }