@windwalker-io/unicorn-next 0.1.5 → 0.1.6
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/.editorconfig +18 -18
- package/.gulp.json +7 -7
- package/bin/release.mjs +47 -47
- package/dist/chunks/button-radio.js.map +1 -1
- package/dist/chunks/checkboxes-multi-select.js.map +1 -1
- package/dist/chunks/field-cascade-select.js.map +1 -1
- package/dist/chunks/field-file-drag.js.map +1 -1
- package/dist/chunks/field-flatpickr.js.map +1 -1
- package/dist/chunks/field-modal-select.js.map +1 -1
- package/dist/chunks/field-modal-tree.js +2 -2
- package/dist/chunks/field-modal-tree.js.map +1 -1
- package/dist/chunks/field-multi-uploader.js.map +1 -1
- package/dist/chunks/field-repeatable.js.map +1 -1
- package/dist/chunks/field-single-image-drag.js.map +1 -1
- package/dist/chunks/form.js.map +1 -1
- package/dist/chunks/grid.js.map +1 -1
- package/dist/chunks/http-client.js.map +1 -1
- package/dist/chunks/iframe-modal.js.map +1 -1
- package/dist/chunks/keep-tab.js.map +1 -1
- package/dist/chunks/legacy.js.map +1 -1
- package/dist/chunks/list-dependent.js.map +1 -1
- package/dist/chunks/s3-multipart-uploader.js.map +1 -1
- package/dist/chunks/s3-uploader.js.map +1 -1
- package/dist/chunks/show-on.js.map +1 -1
- package/dist/chunks/tinymce.js +1 -1
- package/dist/chunks/tinymce.js.map +1 -1
- package/dist/chunks/ui-bootstrap5.js.map +1 -1
- package/dist/chunks/unicorn.js +20 -14
- package/dist/chunks/unicorn.js.map +1 -1
- package/dist/chunks/validation.js +1 -1
- package/dist/chunks/validation.js.map +1 -1
- package/dist/index.d.ts +16 -14
- package/dist/unicorn.js +10 -8
- package/fusionfile.mjs +155 -155
- package/package.json +103 -103
- package/scss/bootstrap/multi-level-menu.scss +121 -121
- package/scss/editor.scss +116 -116
- package/scss/field/file-drag.scss +102 -102
- package/scss/field/single-image-drag.scss +88 -88
- package/scss/field/vue-drag-uploader.scss +160 -160
- package/scss/switcher.scss +156 -156
- package/src/app.ts +128 -128
- package/src/bootstrap/button-radio.ts +208 -208
- package/src/bootstrap/keep-tab.ts +155 -155
- package/src/composable/index.ts +22 -21
- package/src/composable/useCheckboxesMultiSelect.ts +22 -22
- package/src/composable/useFieldCascadeSelect.ts +9 -9
- package/src/composable/useFieldFileDrag.ts +9 -9
- package/src/composable/useFieldFlatpickr.ts +3 -3
- package/src/composable/useFieldModalSelect.ts +6 -6
- package/src/composable/useFieldModalTree.ts +3 -3
- package/src/composable/useFieldMultiUploader.ts +9 -9
- package/src/composable/useFieldRepeatable.ts +9 -9
- package/src/composable/useFieldSingleImageDrag.ts +9 -9
- package/src/composable/useForm.ts +43 -43
- package/src/composable/useGrid.ts +57 -57
- package/src/composable/useHttp.ts +9 -9
- package/src/composable/useIframeModal.ts +10 -10
- package/src/composable/useListDependent.ts +26 -26
- package/src/composable/useQueue.ts +13 -13
- package/src/composable/useS3Uploader.ts +32 -32
- package/src/composable/useShowOn.ts +9 -9
- package/src/composable/useStack.ts +13 -13
- package/src/composable/useTinymce.ts +29 -29
- package/src/composable/useTomSelect.ts +72 -72
- package/src/composable/useUIBootstrap5.ts +48 -48
- package/src/composable/useUniDirective.ts +32 -32
- package/src/composable/useValidation.ts +50 -50
- package/src/data.ts +34 -34
- package/src/events.ts +82 -82
- package/src/legacy/legacy.ts +190 -190
- package/src/legacy/loader.ts +125 -125
- package/src/module/checkboxes-multi-select.ts +54 -54
- package/src/module/field-cascade-select.ts +292 -292
- package/src/module/field-file-drag.ts +295 -295
- package/src/module/field-flatpickr.ts +130 -130
- package/src/module/field-modal-select.ts +179 -179
- package/src/module/field-modal-tree.ts +31 -31
- package/src/module/field-multi-uploader.ts +368 -368
- package/src/module/field-repeatable.ts +202 -202
- package/src/module/field-single-image-drag.ts +475 -475
- package/src/module/form.ts +223 -223
- package/src/module/grid.ts +465 -465
- package/src/module/http-client.ts +248 -248
- package/src/module/iframe-modal.ts +170 -170
- package/src/module/list-dependent.ts +321 -321
- package/src/module/s3-multipart-uploader.ts +300 -300
- package/src/module/s3-uploader.ts +234 -234
- package/src/module/show-on.ts +175 -175
- package/src/module/tinymce.ts +276 -276
- package/src/module/ui-bootstrap5.ts +116 -116
- package/src/module/validation.ts +1046 -1046
- package/src/plugin/index.ts +1 -1
- package/src/plugin/php-adapter.ts +72 -72
- package/src/polyfill/form-request-submit.ts +31 -31
- package/src/polyfill/index.ts +9 -9
- package/src/service/animate.ts +58 -58
- package/src/service/crypto.ts +27 -27
- package/src/service/dom-watcher.ts +62 -62
- package/src/service/dom.ts +265 -265
- package/src/service/helper.ts +48 -48
- package/src/service/index.ts +10 -10
- package/src/service/lang.ts +122 -122
- package/src/service/loader.ts +152 -152
- package/src/service/router.ts +118 -118
- package/src/service/ui.ts +525 -525
- package/src/service/uri.ts +106 -106
- package/src/types/base.ts +9 -9
- package/src/types/index.ts +4 -4
- package/src/types/modal-tree.ts +12 -12
- package/src/types/plugin.ts +6 -6
- package/src/types/shims.d.ts +18 -18
- package/src/types/ui.ts +6 -6
- package/src/unicorn.ts +79 -79
- package/src/utilities/arr.ts +25 -25
- package/src/utilities/base.ts +9 -9
- package/src/utilities/data.ts +48 -48
- package/src/utilities/index.ts +5 -5
- package/src/utilities/tree.ts +20 -20
- package/src/vue/components/ModalTree/ModalTreeApp.vue +175 -175
- package/src/vue/components/ModalTree/TreeItem.vue +262 -262
- package/src/vue/components/ModalTree/TreeModal.vue +225 -225
- package/tests/test.js +4 -4
- package/tsconfig.js.json +25 -25
- package/tsconfig.json +17 -17
- package/vite.assets.config.ts +61 -61
- package/vite.config.test.ts +36 -36
- package/vite.config.ts +112 -112
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import * as bootstrap from 'bootstrap';
|
|
2
|
-
import { Tooltip } from 'bootstrap';
|
|
3
|
-
import type { ButtonRadio, ButtonRadioModule, ButtonRadioOptions } from '../bootstrap/button-radio';
|
|
4
|
-
import type { KeepTab, KeepTabModule, KeepTabOptions } from '../bootstrap/keep-tab';
|
|
5
|
-
import { html, selectAll, selectOne, uid } from '../service';
|
|
6
|
-
import type { UIThemeInterface } from '../types';
|
|
7
|
-
|
|
8
|
-
export class UIBootstrap5 implements UIThemeInterface {
|
|
9
|
-
static instance: UIBootstrap5 | null = null;
|
|
10
|
-
|
|
11
|
-
bootstrap = bootstrap;
|
|
12
|
-
|
|
13
|
-
static get() {
|
|
14
|
-
return this.instance ??= new this();
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
renderMessage(messages: string | string[], type: string = 'info'): () => void {
|
|
18
|
-
if (!Array.isArray(messages)) {
|
|
19
|
-
messages = [messages];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
let text = '';
|
|
23
|
-
const id = 'uni-msg-' + uid();
|
|
24
|
-
|
|
25
|
-
messages.forEach((msg) => {
|
|
26
|
-
text += `<div class="">${msg}</div>`;
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
const msgHtml = html(`<div id="${id}" class="alert alert-${type} alert-dismissible fade show" role="alert">
|
|
30
|
-
${text}
|
|
31
|
-
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
32
|
-
</div>`);
|
|
33
|
-
|
|
34
|
-
const container = selectOne('.c-messages-container');
|
|
35
|
-
|
|
36
|
-
if (container) {
|
|
37
|
-
container.appendChild(msgHtml);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return () => {
|
|
41
|
-
const ele = document.getElementById(id);
|
|
42
|
-
|
|
43
|
-
if (ele) {
|
|
44
|
-
ele.remove();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
clearMessages() {
|
|
50
|
-
const container = selectOne('.c-messages-container');
|
|
51
|
-
|
|
52
|
-
if (container) {
|
|
53
|
-
container.innerHTML = '';
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async keepTab(): Promise<KeepTabModule>;
|
|
58
|
-
async keepTab(selector?: string | HTMLElement, options?: KeepTabOptions): Promise<KeepTab>;
|
|
59
|
-
async keepTab(selector?: string | HTMLElement, options: KeepTabOptions = {}): Promise<any> {
|
|
60
|
-
const module = await import('../bootstrap/keep-tab');
|
|
61
|
-
|
|
62
|
-
await module.ready;
|
|
63
|
-
|
|
64
|
-
if (selector) {
|
|
65
|
-
return new module.KeepTab(selector, options);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return module;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
async buttonRadio(): Promise<ButtonRadioModule>;
|
|
72
|
-
async buttonRadio(selector?: string | HTMLElement, options?: ButtonRadioOptions): Promise<ButtonRadio>;
|
|
73
|
-
async buttonRadio(selector?: string | HTMLElement, options: ButtonRadioOptions = {}): Promise<any> {
|
|
74
|
-
const m = await import('../bootstrap/button-radio');
|
|
75
|
-
|
|
76
|
-
await m.ready;
|
|
77
|
-
|
|
78
|
-
if (selector) {
|
|
79
|
-
return m.ButtonRadio.handle(selector, options);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return m;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
tooltip(
|
|
86
|
-
selector: NodeListOf<Element> | Element | string = '[data-bs-toggle="tooltip"]',
|
|
87
|
-
config: Partial<Tooltip.Options> = {}
|
|
88
|
-
): Tooltip[] {
|
|
89
|
-
return this.selectAsArray(selector)
|
|
90
|
-
.map((ele) => Tooltip.getOrCreateInstance(ele, config));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
protected selectAsArray(selector: NodeListOf<Element> | Element | string) {
|
|
94
|
-
if (selector instanceof NodeList) {
|
|
95
|
-
return Array.from(selector);
|
|
96
|
-
} else if (typeof selector === 'string') {
|
|
97
|
-
return selectAll(selector);
|
|
98
|
-
} else {
|
|
99
|
-
return [selector];
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getMajorVersion(module: any) {
|
|
104
|
-
return Number(module.VERSION.split('.').shift());
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
pushBootstrapToGlobal() {
|
|
108
|
-
window.bootstrap = bootstrap;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
declare global {
|
|
113
|
-
export interface Window {
|
|
114
|
-
bootstrap: typeof bootstrap;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
1
|
+
import * as bootstrap from 'bootstrap';
|
|
2
|
+
import { Tooltip } from 'bootstrap';
|
|
3
|
+
import type { ButtonRadio, ButtonRadioModule, ButtonRadioOptions } from '../bootstrap/button-radio';
|
|
4
|
+
import type { KeepTab, KeepTabModule, KeepTabOptions } from '../bootstrap/keep-tab';
|
|
5
|
+
import { html, selectAll, selectOne, uid } from '../service';
|
|
6
|
+
import type { UIThemeInterface } from '../types';
|
|
7
|
+
|
|
8
|
+
export class UIBootstrap5 implements UIThemeInterface {
|
|
9
|
+
static instance: UIBootstrap5 | null = null;
|
|
10
|
+
|
|
11
|
+
bootstrap = bootstrap;
|
|
12
|
+
|
|
13
|
+
static get() {
|
|
14
|
+
return this.instance ??= new this();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
renderMessage(messages: string | string[], type: string = 'info'): () => void {
|
|
18
|
+
if (!Array.isArray(messages)) {
|
|
19
|
+
messages = [messages];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let text = '';
|
|
23
|
+
const id = 'uni-msg-' + uid();
|
|
24
|
+
|
|
25
|
+
messages.forEach((msg) => {
|
|
26
|
+
text += `<div class="">${msg}</div>`;
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const msgHtml = html(`<div id="${id}" class="alert alert-${type} alert-dismissible fade show" role="alert">
|
|
30
|
+
${text}
|
|
31
|
+
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
32
|
+
</div>`);
|
|
33
|
+
|
|
34
|
+
const container = selectOne('.c-messages-container');
|
|
35
|
+
|
|
36
|
+
if (container) {
|
|
37
|
+
container.appendChild(msgHtml);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return () => {
|
|
41
|
+
const ele = document.getElementById(id);
|
|
42
|
+
|
|
43
|
+
if (ele) {
|
|
44
|
+
ele.remove();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
clearMessages() {
|
|
50
|
+
const container = selectOne('.c-messages-container');
|
|
51
|
+
|
|
52
|
+
if (container) {
|
|
53
|
+
container.innerHTML = '';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async keepTab(): Promise<KeepTabModule>;
|
|
58
|
+
async keepTab(selector?: string | HTMLElement, options?: KeepTabOptions): Promise<KeepTab>;
|
|
59
|
+
async keepTab(selector?: string | HTMLElement, options: KeepTabOptions = {}): Promise<any> {
|
|
60
|
+
const module = await import('../bootstrap/keep-tab');
|
|
61
|
+
|
|
62
|
+
await module.ready;
|
|
63
|
+
|
|
64
|
+
if (selector) {
|
|
65
|
+
return new module.KeepTab(selector, options);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return module;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async buttonRadio(): Promise<ButtonRadioModule>;
|
|
72
|
+
async buttonRadio(selector?: string | HTMLElement, options?: ButtonRadioOptions): Promise<ButtonRadio>;
|
|
73
|
+
async buttonRadio(selector?: string | HTMLElement, options: ButtonRadioOptions = {}): Promise<any> {
|
|
74
|
+
const m = await import('../bootstrap/button-radio');
|
|
75
|
+
|
|
76
|
+
await m.ready;
|
|
77
|
+
|
|
78
|
+
if (selector) {
|
|
79
|
+
return m.ButtonRadio.handle(selector, options);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return m;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
tooltip(
|
|
86
|
+
selector: NodeListOf<Element> | Element | string = '[data-bs-toggle="tooltip"]',
|
|
87
|
+
config: Partial<Tooltip.Options> = {}
|
|
88
|
+
): Tooltip[] {
|
|
89
|
+
return this.selectAsArray(selector)
|
|
90
|
+
.map((ele) => Tooltip.getOrCreateInstance(ele, config));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
protected selectAsArray(selector: NodeListOf<Element> | Element | string) {
|
|
94
|
+
if (selector instanceof NodeList) {
|
|
95
|
+
return Array.from(selector);
|
|
96
|
+
} else if (typeof selector === 'string') {
|
|
97
|
+
return selectAll(selector);
|
|
98
|
+
} else {
|
|
99
|
+
return [selector];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
getMajorVersion(module: any) {
|
|
104
|
+
return Number(module.VERSION.split('.').shift());
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
pushBootstrapToGlobal() {
|
|
108
|
+
window.bootstrap = bootstrap;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
declare global {
|
|
113
|
+
export interface Window {
|
|
114
|
+
bootstrap: typeof bootstrap;
|
|
115
|
+
}
|
|
116
|
+
}
|