inviton-powerduck 0.0.136 → 0.0.138
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/app/powerduck-system-resources.ts +2 -0
- package/common/css/ladda-themeless-zoomin.min.css +89 -89
- package/common/dialog-utils.ts +1 -1
- package/common/external-barcode-scanner.ts +0 -1
- package/common/utils/array-extend.ts +32 -29
- package/common/utils/broswer-image-compression.ts +1 -1
- package/common/utils/language-utils.ts +3 -1
- package/components/app/vue-plugin-jsxtransform.ts +1 -1
- package/components/bootstrap-toggle/index.tsx +6 -1
- package/components/chart-js/pie-chart.tsx +1 -1
- package/components/chart-js/thirdparty/flot/jquery.flot.categories.min.js +93 -93
- package/components/chart-js/thirdparty/flot/jquery.flot.crosshair.min.js +83 -83
- package/components/chart-js/thirdparty/flot/jquery.flot.navigate.min.js +270 -270
- package/components/chart-js/thirdparty/flot/jquery.flot.pie.min.js +507 -507
- package/components/chart-js/thirdparty/flot/jquery.flot.resize.min.js +147 -147
- package/components/chart-js/thirdparty/flot/jquery.flot.stack.min.js +104 -104
- package/components/datatable/datatable-static.tsx +5 -5
- package/components/datatable/datatable.tsx +1 -1
- package/components/datatable/ts/reorder.ts +0 -2
- package/components/dropdown/currency-code-picker.tsx +42 -39
- package/components/dropdown/index.tsx +2 -1
- package/components/fullcalendar/timegrid-calendar.tsx +1 -1
- package/components/image-crop/image-cropping-modal.tsx +54 -15
- package/components/image-crop/upload-and-crop.tsx +21 -13
- package/components/image-crop/vendor/jquery.Jcrop.min.css +344 -344
- package/components/import/import-mapper.tsx +231 -231
- package/components/input/localized-info-input.tsx +9 -0
- package/components/input/localized-string-input.tsx +21 -0
- package/components/input/localized-string-textarea.tsx +16 -0
- package/components/input/localized-string-wysiwyg.tsx +16 -0
- package/components/input/plugins/daterangepicker/daterangepicker.min.css +400 -400
- package/components/input/plugins/daterangepicker/jquery.daterangepicker.min.js +1903 -1903
- package/components/input/translate.tsx +100 -0
- package/components/modal/modal.tsx +1 -1
- package/components/photos/photo-manager.tsx +7 -11
- package/components/share/share-modal.tsx +1 -1
- package/components/share/share.tsx +1 -1
- package/components/svg/skilift-svg.tsx +6 -6
- package/package.json +2 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { Language } from '../../common/enums/language';
|
|
2
|
+
import type { ILocalizedText } from '../../common/localized-text';
|
|
3
|
+
import type LocalizedText from '../../common/localized-text';
|
|
4
|
+
import { Prop } from 'vue-facing-decorator';
|
|
5
|
+
import PowerduckState from '../../app/powerduck-state';
|
|
6
|
+
import { TsxComponentExtendedBase } from '../../app/vuestsx-extended';
|
|
7
|
+
import { Component } from '../../app/vuetsx';
|
|
8
|
+
import { LanguageUtils } from '../../common/utils/language-utils';
|
|
9
|
+
import TextButton from '../button/text-button';
|
|
10
|
+
|
|
11
|
+
interface TranslateArgs {
|
|
12
|
+
value: ILocalizedText | LocalizedText;
|
|
13
|
+
currentLangId: Language;
|
|
14
|
+
langArr: LanguageUtils.LanguageListItem[];
|
|
15
|
+
changeValue: (langId: Language, value: string) => void;
|
|
16
|
+
getActualValue: (langId: Language, value: ILocalizedText | LocalizedText) => string;
|
|
17
|
+
apiMethod: <RQ extends TranslateGetRequest, RS extends TranslateGetResponse>(data?: RQ) => Promise<RS>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class TranslateGetRequest {
|
|
21
|
+
fromLang: string;
|
|
22
|
+
toLang: string[];
|
|
23
|
+
text: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export class TranslateGetResponse {
|
|
27
|
+
result: LocalizedText;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Component
|
|
31
|
+
export default class Translate extends TsxComponentExtendedBase<TranslateArgs> implements TranslateArgs {
|
|
32
|
+
@Prop() value: ILocalizedText | LocalizedText;
|
|
33
|
+
@Prop() currentLangId: Language;
|
|
34
|
+
@Prop() langArr: LanguageUtils.LanguageListItem[];
|
|
35
|
+
@Prop() apiMethod: <RQ extends TranslateGetRequest, RS extends TranslateGetResponse>(data?: RQ) => Promise<RS>;
|
|
36
|
+
@Prop() changeValue: (langId: Language, value: string) => void;
|
|
37
|
+
@Prop() getActualValue: (langId: Language, value: ILocalizedText | LocalizedText) => string;
|
|
38
|
+
translateLoading = false;
|
|
39
|
+
|
|
40
|
+
async translateValue(
|
|
41
|
+
value: string,
|
|
42
|
+
fromLang: Language,
|
|
43
|
+
langArr: LanguageUtils.LanguageListItem[],
|
|
44
|
+
) {
|
|
45
|
+
console.log('value', value);
|
|
46
|
+
this.translateLoading = true;
|
|
47
|
+
const toLang = langArr.filter(x => !this.getActualValue(x.id, this.value))?.map(x => x.id);
|
|
48
|
+
console.log('toland', toLang, langArr);
|
|
49
|
+
if (toLang.length === 0) {
|
|
50
|
+
this.translateLoading = false;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const resp = await this.tryGetDataByArgs<TranslateGetResponse, TranslateGetRequest>({
|
|
55
|
+
blockRoot: false,
|
|
56
|
+
apiMethod: this.apiMethod,
|
|
57
|
+
requestArgs: {
|
|
58
|
+
fromLang,
|
|
59
|
+
toLang,
|
|
60
|
+
text: value,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
if (resp?.result != null) {
|
|
65
|
+
for (const key in resp.result) {
|
|
66
|
+
const langCode = LanguageUtils.getLanguageEnum(key);
|
|
67
|
+
this.changeValue(langCode, resp.result[key]);
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
console.error('Error while getting translation');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.translateLoading = false;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
render(h) {
|
|
77
|
+
return this.translateLoading
|
|
78
|
+
? (
|
|
79
|
+
<div class="d-flex flex-row gap-1 align-items-center">
|
|
80
|
+
<div class="spinner-border spinner-border-sm" role="status">
|
|
81
|
+
<span class="sr-only">Loading...</span>
|
|
82
|
+
</div>
|
|
83
|
+
<span>Translating...</span>
|
|
84
|
+
</div>
|
|
85
|
+
)
|
|
86
|
+
: (
|
|
87
|
+
<TextButton
|
|
88
|
+
icon="icon icon-translate"
|
|
89
|
+
text={PowerduckState.getResourceValue('translateFromThisLanguage')}
|
|
90
|
+
clicked={() => {
|
|
91
|
+
this.translateValue(
|
|
92
|
+
this.getActualValue(this.currentLangId, this.value),
|
|
93
|
+
this.currentLangId,
|
|
94
|
+
this.langArr,
|
|
95
|
+
);
|
|
96
|
+
}}
|
|
97
|
+
/>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -314,5 +314,5 @@ class ModalComponent extends TsxComponent<ModalArgs> implements ModalArgs {
|
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
const Modal = toNative(ModalComponent);
|
|
317
|
-
export
|
|
317
|
+
export type ModalType = typeof Modal.prototype;
|
|
318
318
|
export default Modal;
|
|
@@ -56,13 +56,11 @@ class PhotoManagerComponent extends TsxComponentExtended<PhotoManagerArgs> imple
|
|
|
56
56
|
return [];
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
return this.photos.map((p, i) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
});
|
|
59
|
+
return this.photos.map((p, i) => ({
|
|
60
|
+
Id: p.id as any,
|
|
61
|
+
ImageUrl: p.fullPath, // this.getFullPath(p),
|
|
62
|
+
SortOrder: p.sortOrder,
|
|
63
|
+
}));
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
getFullPath(img: Photo) {
|
|
@@ -71,7 +69,7 @@ class PhotoManagerComponent extends TsxComponentExtended<PhotoManagerArgs> imple
|
|
|
71
69
|
|
|
72
70
|
parseServerResponse(resp): DropzoneGalleryItem {
|
|
73
71
|
if (resp.fileData == null) {
|
|
74
|
-
throw 'break';
|
|
72
|
+
throw new Error('break');
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
const retVal: PhotoManagerUberModel = resp.fileData;
|
|
@@ -90,7 +88,7 @@ class PhotoManagerComponent extends TsxComponentExtended<PhotoManagerArgs> imple
|
|
|
90
88
|
|
|
91
89
|
render(h) {
|
|
92
90
|
if (this.photos == null) {
|
|
93
|
-
throw 'Photo collection cannot be null, always has to be at least empty array';
|
|
91
|
+
throw new Error('Photo collection cannot be null, always has to be at least empty array');
|
|
94
92
|
}
|
|
95
93
|
|
|
96
94
|
this.photos.forEach((p, i) => {
|
|
@@ -132,8 +130,6 @@ class PhotoManagerComponent extends TsxComponentExtended<PhotoManagerArgs> imple
|
|
|
132
130
|
changed={(items) => {
|
|
133
131
|
const itemsClone = [...(items || [])];
|
|
134
132
|
|
|
135
|
-
console.log(items);
|
|
136
|
-
|
|
137
133
|
this.photos.splice(0, this.photos.length);
|
|
138
134
|
for (const p of itemsClone) {
|
|
139
135
|
this.photos.push({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const SKILIFT_SVG: string = `
|
|
2
|
-
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" preserveAspectRatio="xMidYMid meet">
|
|
3
|
-
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="currentColor" stroke="none">
|
|
4
|
-
<path d="M3911 4254 l-1153 -354 -40 34 c-77 66 -211 76 -290 20 -57 -40 -107 -107 -114 -153 l-6 -38 -1127 -345 -1126 -345 -3 -103 c-2 -94 -1 -102 15 -98 10 3 529 161 1154 353 l1135 347 43 -28 42 -29 -5 -55 c-2 -30 -21 -279 -42 -552 l-38 -498 -360 0 c-200 0 -390 -5 -426 -11 -173 -27 -319 -153 -371 -320 -18 -56 -19 -99 -19 -594 0 -495 1 -538 19 -594 50 -161 183 -281 350 -317 98 -20 1924 -20 2022 0 167 36 300 156 350 317 18 56 19 99 19 588 0 444 -2 536 -16 586 -44 170 -197 307 -374 335 -36 5 -227 10 -426 10 l-360 0 -38 498 c-21 273 -40 522 -43 552 -5 53 -4 56 25 73 40 23 72 69 93 131 l17 49 153 48 c85 26 309 95 499 153 852 260 1595 488 1598 490 1 2 1 48 0 103 l-3 100 -1154 -353z m-1913 -2666 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z m820 0 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z m820 0 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z"/>
|
|
5
|
-
</g>
|
|
6
|
-
</svg>`;
|
|
1
|
+
export const SKILIFT_SVG: string = `
|
|
2
|
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="512.000000pt" height="512.000000pt" viewBox="0 0 512.000000 512.000000" preserveAspectRatio="xMidYMid meet">
|
|
3
|
+
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)" fill="currentColor" stroke="none">
|
|
4
|
+
<path d="M3911 4254 l-1153 -354 -40 34 c-77 66 -211 76 -290 20 -57 -40 -107 -107 -114 -153 l-6 -38 -1127 -345 -1126 -345 -3 -103 c-2 -94 -1 -102 15 -98 10 3 529 161 1154 353 l1135 347 43 -28 42 -29 -5 -55 c-2 -30 -21 -279 -42 -552 l-38 -498 -360 0 c-200 0 -390 -5 -426 -11 -173 -27 -319 -153 -371 -320 -18 -56 -19 -99 -19 -594 0 -495 1 -538 19 -594 50 -161 183 -281 350 -317 98 -20 1924 -20 2022 0 167 36 300 156 350 317 18 56 19 99 19 588 0 444 -2 536 -16 586 -44 170 -197 307 -374 335 -36 5 -227 10 -426 10 l-360 0 -38 498 c-21 273 -40 522 -43 552 -5 53 -4 56 25 73 40 23 72 69 93 131 l17 49 153 48 c85 26 309 95 499 153 852 260 1595 488 1598 490 1 2 1 48 0 103 l-3 100 -1154 -353z m-1913 -2666 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z m820 0 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z m820 0 l2 -358 -260 0 -260 0 0 353 c0 195 3 357 7 361 4 3 119 5 257 4 l251 -3 3 -357z"/>
|
|
5
|
+
</g>
|
|
6
|
+
</svg>`;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inviton-powerduck",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.138",
|
|
5
5
|
"files": [
|
|
6
6
|
"app/",
|
|
7
7
|
"common/",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"jquery-minicolors": "2.1.10",
|
|
50
50
|
"jquery-resizable": "1.0.6",
|
|
51
51
|
"jspreadsheet-ce": "^4.15.0",
|
|
52
|
+
"jsuites": "5.11.0",
|
|
52
53
|
"leaflet": "^1.9.4",
|
|
53
54
|
"leaflet.markercluster": "^1.5.3",
|
|
54
55
|
"mark.js": "8.11.1",
|