quasar-ui-danx 0.2.24 → 0.2.25
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 +60 -0
- package/package.json +1 -1
- package/src/config/index.ts +2 -2
- package/src/helpers/FlashMessages.ts +2 -2
- package/src/helpers/hotkeys.ts +59 -0
- package/src/helpers/index.ts +2 -1
- package/src/helpers/request.ts +2 -2
package/README.md
CHANGED
@@ -39,6 +39,66 @@ yarn add quasar-ui-danx quasar
|
|
39
39
|
yarn add -D sass vite-svg-loader tailwindcss eslint eslint-plugin-import autoprefixer
|
40
40
|
```
|
41
41
|
|
42
|
+
### Setup PHPStorm
|
43
|
+
|
44
|
+
* Disable Typescript language service
|
45
|
+
* Setup node_modules directory as a library
|
46
|
+
* Configure `tsconfig.json`
|
47
|
+
|
48
|
+
```json
|
49
|
+
{
|
50
|
+
"include": [
|
51
|
+
"node_modules/quasar-ui-danx/**/*"
|
52
|
+
]
|
53
|
+
}
|
54
|
+
```
|
55
|
+
|
56
|
+
* Configure `vite.config.ts`
|
57
|
+
|
58
|
+
```ts
|
59
|
+
export default ({ command }) => {
|
60
|
+
// For development w/ HMR, load the danx library + styles directly from the directory
|
61
|
+
// NOTE: These are the paths relative to the mounted quasar-ui-danx directory inside the mva docker container
|
62
|
+
const danx = (command === "serve" ? {
|
63
|
+
"quasar-ui-danx": resolve(__dirname, "../quasar-ui-danx/ui/src"),
|
64
|
+
"quasar-ui-danx-styles": resolve(__dirname, "../quasar-ui-danx/src/styles/index.scss")
|
65
|
+
} : {
|
66
|
+
// Import from quasar-ui-danx module for production
|
67
|
+
"quasar-ui-danx-styles": "quasar-ui-danx/dist/style.css"
|
68
|
+
});
|
69
|
+
|
70
|
+
return defineConfig({
|
71
|
+
resolve: {
|
72
|
+
alias: {
|
73
|
+
...danx
|
74
|
+
}
|
75
|
+
},
|
76
|
+
});
|
77
|
+
}
|
78
|
+
```
|
79
|
+
|
80
|
+
* Add node_modules as a library in PHPStorm
|
81
|
+
* Settings -> Directories -> Add
|
82
|
+
* Create a new directory w/ name node_modules and set the directory to the node_modules directory in your project
|
83
|
+
* Symlink Danx UI library
|
84
|
+
* copy/paste and run `./danx-local.sh`
|
85
|
+
* (or manually symlink node_modules/quasar-ui-danx to ../../quasar-ui-danx/ui/src)
|
86
|
+
* Directory structure of your project relative to quasar-ui-danx:
|
87
|
+
|
88
|
+
```
|
89
|
+
- parent-directory
|
90
|
+
- your-app
|
91
|
+
- tsconfig.json
|
92
|
+
- vite.config.ts
|
93
|
+
- src
|
94
|
+
- node_modules
|
95
|
+
- quasar-ui-danx -> (symlink) ../../quasar-ui-danx/ui/src
|
96
|
+
- quasar-ui-danx
|
97
|
+
- ui
|
98
|
+
- src
|
99
|
+
- tests
|
100
|
+
```
|
101
|
+
|
42
102
|
### Setup Tailwind
|
43
103
|
|
44
104
|
Initialize config files for tailwind
|
package/package.json
CHANGED
package/src/config/index.ts
CHANGED
@@ -2,8 +2,8 @@ import { QNotifyCreateOptions } from "quasar";
|
|
2
2
|
|
3
3
|
export interface DanxFileUploadOptions {
|
4
4
|
directory?: string;
|
5
|
-
presignedUploadUrl?:
|
6
|
-
uploadCompletedUrl?:
|
5
|
+
presignedUploadUrl?: Function | null;
|
6
|
+
uploadCompletedUrl?: Function | null;
|
7
7
|
}
|
8
8
|
|
9
9
|
export interface DanxOptions {
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { Ref, ref } from "vue";
|
2
|
+
|
3
|
+
interface HotkeyListener {
|
4
|
+
id?: string,
|
5
|
+
name: string,
|
6
|
+
callback: Function
|
7
|
+
}
|
8
|
+
|
9
|
+
interface Hotkey {
|
10
|
+
name: string,
|
11
|
+
ctrl?: boolean,
|
12
|
+
alt?: boolean,
|
13
|
+
shift?: boolean,
|
14
|
+
type: "keyup" | "keydown",
|
15
|
+
key: string | string[] | number | number[],
|
16
|
+
}
|
17
|
+
|
18
|
+
const hotkeys: Ref<Hotkey[]> = ref([]);
|
19
|
+
const listeners: Ref<HotkeyListener[]> = ref([]);
|
20
|
+
|
21
|
+
export function addHotkey(key: Hotkey) {
|
22
|
+
hotkeys.value = [...hotkeys.value, key];
|
23
|
+
}
|
24
|
+
|
25
|
+
export function listen(name: string, callback: Function, id?: string) {
|
26
|
+
listeners.value.push({ id, name, callback });
|
27
|
+
}
|
28
|
+
|
29
|
+
export function unlisten(id: string) {
|
30
|
+
listeners.value = listeners.value.filter(listener => listener.id !== id);
|
31
|
+
}
|
32
|
+
|
33
|
+
function triggerEvent(type: "keydown" | "keyup", key: string | number, e: KeyboardEvent) {
|
34
|
+
for (let hotkey of hotkeys.value) {
|
35
|
+
if (hotkey.type === type && hotkey.key === key && e.ctrlKey === !!hotkey.ctrl && e.altKey === !!hotkey.alt && e.shiftKey === !!hotkey.shift) {
|
36
|
+
for (let listener of listeners.value) {
|
37
|
+
if (listener.name === hotkey.name) {
|
38
|
+
listener.callback(e);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
function getKey(e: KeyboardEvent) {
|
46
|
+
return e.key ? ("" + e.key).toLowerCase() : e.keyCode;
|
47
|
+
}
|
48
|
+
|
49
|
+
export function registerHotkeys(keys: Hotkey[]) {
|
50
|
+
hotkeys.value = keys;
|
51
|
+
|
52
|
+
window.addEventListener("keydown", e => {
|
53
|
+
triggerEvent("keydown", getKey(e), e);
|
54
|
+
});
|
55
|
+
|
56
|
+
window.addEventListener("keyup", e => {
|
57
|
+
triggerEvent("keyup", getKey(e), e);
|
58
|
+
});
|
59
|
+
}
|
package/src/helpers/index.ts
CHANGED
@@ -8,9 +8,10 @@ export * from "./files";
|
|
8
8
|
export * from "./FileUpload";
|
9
9
|
export * from "./FlashMessages";
|
10
10
|
export * from "./formats";
|
11
|
+
export * from "./hotkeys";
|
11
12
|
export * from "./multiFileUpload";
|
13
|
+
export * from "./request";
|
12
14
|
export * from "./singleFileUpload";
|
13
15
|
export * from "./storage";
|
14
16
|
export * from "./styles";
|
15
17
|
export * from "./utils";
|
16
|
-
export * from "./request";
|
package/src/helpers/request.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
import { ref, Ref
|
1
|
+
import { ref, Ref } from "vue";
|
2
2
|
|
3
3
|
interface RequestOptions {
|
4
4
|
baseUrl: string;
|
5
5
|
}
|
6
6
|
|
7
|
-
const requestOptions: Ref<
|
7
|
+
const requestOptions: Ref<RequestOptions> = ref({
|
8
8
|
baseUrl: ""
|
9
9
|
});
|
10
10
|
/**
|