@cloudron/pankow 3.2.3 → 3.2.4

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.
@@ -0,0 +1,40 @@
1
+ <script setup>
2
+
3
+ import { computed } from 'vue';
4
+
5
+ const props = defineProps({
6
+ values: Array,
7
+ });
8
+
9
+ // const normalizedValue = computed(() => {
10
+ // if (props.value < 0) return 0;
11
+ // if (props.value > 100) return 100;
12
+ // return props.value;
13
+ // });
14
+
15
+ // we want 100 to be the circumverence so we can neatly use percentage: radius = 100 / ( 3,14159 * 2 ) = 15,9155
16
+ const radius = 15.9155;
17
+ const stroke = 10;
18
+
19
+ function calculateViewbox() {
20
+ return `0 0 ${radius*2+stroke} ${radius*2+stroke}`;
21
+ }
22
+
23
+ function calculateArcPath() {
24
+ return `M${radius+stroke/2} ${stroke/2} a ${radius} ${radius} 0 0 1 0 ${radius*2} a ${radius} ${radius} 0 0 1 0 -${radius*2}`;
25
+ }
26
+
27
+ </script>
28
+
29
+ <template>
30
+ <div class="pankow-circle-chart">
31
+ <svg :viewBox="calculateViewbox()" xmlns="http://www.w3.org/2000/svg">
32
+ <path :d="calculateArcPath()" fill="none" stroke="red" :stroke-width="stroke" stroke-dasharray="75, 100" @click.stop="onClick('red')" />
33
+ <path :d="calculateArcPath()" fill="none" stroke="green" :stroke-width="stroke" stroke-dasharray="30, 100" @click.stop="onClick('green') "/>
34
+ </svg>
35
+ </div>
36
+ </template>
37
+
38
+ <style>
39
+
40
+ </style>
@@ -15,7 +15,7 @@
15
15
  <tr v-if="busy"><td :colspan="Object.keys(columns).length" style="text-align: center; padding: 20px;"><ProgressBar mode="indeterminate" :show-label="false" :slim="true"/></td></tr>
16
16
  <tr v-else-if="!busy && sortedItems.length === 0"><td :colspan="Object.keys(columns).length" class="pankow-table-placeholder">{{ placeholder }}</td></tr>
17
17
  <tr v-else class="pankow-table-row" :class="{ 'pankow-table-row-with-hover': hover }" v-for="item in sortedItems" @click="onRowClick(item)">
18
- <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 }">
18
+ <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 }">
19
19
  <slot :name="column" v-if="$slots[column]" v-bind="item"/>
20
20
  <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>
21
21
  </td>
@@ -178,6 +178,10 @@ export default {
178
178
  height: 50px;
179
179
  }
180
180
 
181
+ .pankow-table-cell-nowrap {
182
+ white-space: nowrap;
183
+ }
184
+
181
185
  @media (max-width: 576px) {
182
186
  .pankow-table-cell-hide-mobile {
183
187
  display: none;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudron/pankow",
3
3
  "private": false,
4
- "version": "3.2.3",
4
+ "version": "3.2.4",
5
5
  "description": "",
6
6
  "main": "index.js",
7
7
  "scripts": {
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "devDependencies": {
21
21
  "@vitejs/plugin-vue": "^6.0.0",
22
- "vite": "^7.0.4",
22
+ "vite": "^7.0.5",
23
23
  "vue": "^3.5.17"
24
24
  }
25
25
  }
package/utils.js CHANGED
@@ -103,6 +103,21 @@ function prettyDate(value) {
103
103
  return fromNow(date);
104
104
  }
105
105
 
106
+ function prettyShortDate(value) {
107
+ if (!value) return 'unknown';
108
+
109
+ const date = new Date(value);
110
+ if (isNaN(date.getTime())) return 'unknown';
111
+
112
+ const formatter = new Intl.DateTimeFormat(undefined, {
113
+ timeStyle: 'medium'
114
+ });
115
+
116
+ const formattedDate = formatter.format(date);
117
+
118
+ return formattedDate;
119
+ }
120
+
106
121
  function prettyLongDate(value) {
107
122
  if (!value) return 'unknown';
108
123
 
@@ -376,6 +391,7 @@ export {
376
391
  prettyBinarySize,
377
392
  prettyDecimalSize,
378
393
  prettyDate,
394
+ prettyShortDate,
379
395
  prettyLongDate,
380
396
  prettyFileSize,
381
397
  prettyEmailAddresses,
@@ -403,6 +419,7 @@ export default {
403
419
  prettyBinarySize,
404
420
  prettyDecimalSize,
405
421
  prettyDate,
422
+ prettyShortDate,
406
423
  prettyLongDate,
407
424
  prettyFileSize,
408
425
  prettyEmailAddresses,