@ticatec/uniface-element 5.0.0 → 5.0.1
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/dist/app_layout/ClassicLayout.svelte +8 -40
- package/dist/app_layout/ColumnsLayout.svelte +3 -3
- package/dist/app_layout/HeaderLayout.svelte +4 -20
- package/dist/app_layout/RowsLayout.svelte +3 -3
- package/dist/app_layout/SidebarLayout.svelte +4 -20
- package/dist/composite/transfer/Transfer.svelte +12 -6
- package/dist/data_display/accordion/Accordion.svelte +1 -4
- package/dist/data_display/card/CommonCardActionBar.svelte +1 -27
- package/dist/data_display/list_box/ListBox.svelte +6 -8
- package/dist/data_table/lib/clickOutSide.js +6 -5
- package/dist/form/attachment_files/AttachmentEditor.svelte +13 -8
- package/dist/form/attachment_files/FileUploadBar.svelte +5 -2
- package/dist/form/attachment_files/FileUploadPanel.svelte +6 -72
- package/dist/form/checkbox/CheckBox.svelte +2 -7
- package/dist/form/color_picker/ColorPicker.svelte +150 -35
- package/dist/form/color_picker/ColorPicker.svelte.d.ts +7 -25
- package/dist/form/color_picker/README.md +14 -7
- package/dist/form/color_picker/README_CN.md +14 -7
- package/dist/form/common_editor/CommonPicker.svelte +4 -7
- package/dist/form/image-files/ImagePreview.svelte +15 -7
- package/dist/form/memo_editor/MemoEditor.svelte +2 -2
- package/dist/form/number_editor/NumberEditor.svelte +2 -2
- package/dist/form/options_multi_select/OptionsMultiSelect.svelte +1 -9
- package/dist/form/radio_button/RadioButton.svelte +2 -8
- package/dist/form/text_editor/TextEditor.svelte +2 -2
- package/dist/general/button/Button.svelte +2 -0
- package/dist/general/split/Split.svelte +24 -4
- package/dist/navigation/nav_menu/MenuItem.d.ts +4 -2
- package/dist/navigation/nav_menu/NavigatorMenu.svelte +157 -34
- package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +2 -3
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +15 -12
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +3 -3
- package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +1 -5
- package/dist/overlay/common/FloatingPanel.svelte +0 -6
- package/dist/overlay/common/Popover.svelte +8 -3
- package/dist/overlay/common/uniface-utils.js +0 -1
- package/dist/overlay/context-menu/ContextMenuPanel.svelte +14 -2
- package/dist/overlay/dialog/Dialog.svelte +3 -4
- package/dist/overlay/dialog/DialogWrapper.svelte +5 -2
- package/dist/ticatec-uniface-web.css +26 -6
- package/dist/utils/prefixFilter.d.ts +3 -3
- package/dist/utils/prefixFilter.js +3 -5
- package/package.json +1 -1
|
@@ -38,44 +38,12 @@
|
|
|
38
38
|
bottom
|
|
39
39
|
}: Props = $props();
|
|
40
40
|
|
|
41
|
-
let sidebarPanel
|
|
42
|
-
let rightBarPanel
|
|
43
|
-
let maxWidth = '';
|
|
44
|
-
let minWidth = '';
|
|
45
|
-
let rightMaxWidth = '';
|
|
46
|
-
let rightMinWidth = '';
|
|
47
|
-
|
|
48
|
-
$effect(() => {
|
|
49
|
-
if (sidebarResize && sidebarMaxWidth) {
|
|
50
|
-
maxWidth = `max-width: ${sidebarMaxWidth};`;
|
|
51
|
-
} else {
|
|
52
|
-
maxWidth = '';
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
$effect(() => {
|
|
57
|
-
if (sidebarResize && sidebarMinWidth) {
|
|
58
|
-
minWidth = `min-width: ${sidebarMinWidth};`;
|
|
59
|
-
} else {
|
|
60
|
-
minWidth = '';
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
$effect(() => {
|
|
65
|
-
if (rightBarResize && rightBarMaxWidth) {
|
|
66
|
-
rightMaxWidth = `max-width: ${rightBarMaxWidth};`;
|
|
67
|
-
} else {
|
|
68
|
-
rightMaxWidth = '';
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
$effect(() => {
|
|
73
|
-
if (rightBarResize && rightBarMinWidth) {
|
|
74
|
-
rightMinWidth = `min-width: ${rightBarMinWidth};`;
|
|
75
|
-
} else {
|
|
76
|
-
rightMinWidth = '';
|
|
77
|
-
}
|
|
78
|
-
});
|
|
41
|
+
let sidebarPanel = $state<HTMLElement>();
|
|
42
|
+
let rightBarPanel = $state<HTMLElement>();
|
|
43
|
+
let maxWidth = $derived(sidebarResize && sidebarMaxWidth ? `max-width: ${sidebarMaxWidth};` : '');
|
|
44
|
+
let minWidth = $derived(sidebarResize && sidebarMinWidth ? `min-width: ${sidebarMinWidth};` : '');
|
|
45
|
+
let rightMaxWidth = $derived(rightBarResize && rightBarMaxWidth ? `max-width: ${rightBarMaxWidth};` : '');
|
|
46
|
+
let rightMinWidth = $derived(rightBarResize && rightBarMinWidth ? `min-width: ${rightBarMinWidth};` : '');
|
|
79
47
|
</script>
|
|
80
48
|
|
|
81
49
|
<div class="uniface-classic-layout">
|
|
@@ -101,7 +69,7 @@
|
|
|
101
69
|
{/if}
|
|
102
70
|
</div>
|
|
103
71
|
{#if rightSidebar}
|
|
104
|
-
{#if
|
|
72
|
+
{#if rightBarResize}
|
|
105
73
|
<Split direction="vertical" bindingPanel={rightBarPanel} reverse/>
|
|
106
74
|
{/if}
|
|
107
75
|
<div bind:this={rightBarPanel} class="right-sidebar" style="width: {rightBarWidth}; {rightMinWidth} {rightMaxWidth}">
|
|
@@ -169,4 +137,4 @@
|
|
|
169
137
|
overflow: hidden;
|
|
170
138
|
border-top: 1px solid var(--uniface-color-border-secondary);
|
|
171
139
|
}
|
|
172
|
-
</style>
|
|
140
|
+
</style>
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
right
|
|
35
35
|
}: Props = $props();
|
|
36
36
|
|
|
37
|
-
let leftPanel
|
|
38
|
-
let rightPanel
|
|
37
|
+
let leftPanel = $state<HTMLElement>();
|
|
38
|
+
let rightPanel = $state<HTMLElement>();
|
|
39
39
|
|
|
40
40
|
let colWidth = $derived(right ? '25%' : '50%');
|
|
41
41
|
|
|
@@ -88,4 +88,4 @@
|
|
|
88
88
|
flex: 1 1 auto;
|
|
89
89
|
overflow: auto;
|
|
90
90
|
}
|
|
91
|
-
</style>
|
|
91
|
+
</style>
|
|
@@ -24,25 +24,9 @@
|
|
|
24
24
|
children
|
|
25
25
|
}: Props = $props();
|
|
26
26
|
|
|
27
|
-
let sidebarPanel
|
|
28
|
-
let maxWidth = '';
|
|
29
|
-
let minWidth = '';
|
|
30
|
-
|
|
31
|
-
$effect(() => {
|
|
32
|
-
if (sidebarResize && sidebarMaxWidth) {
|
|
33
|
-
maxWidth = `max-width: ${sidebarMaxWidth};`;
|
|
34
|
-
} else {
|
|
35
|
-
maxWidth = '';
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
$effect(() => {
|
|
40
|
-
if (sidebarResize && sidebarMinWidth) {
|
|
41
|
-
minWidth = `min-width: ${sidebarMinWidth};`;
|
|
42
|
-
} else {
|
|
43
|
-
minWidth = '';
|
|
44
|
-
}
|
|
45
|
-
});
|
|
27
|
+
let sidebarPanel = $state<HTMLElement>();
|
|
28
|
+
let maxWidth = $derived(sidebarResize && sidebarMaxWidth ? `max-width: ${sidebarMaxWidth};` : '');
|
|
29
|
+
let minWidth = $derived(sidebarResize && sidebarMinWidth ? `min-width: ${sidebarMinWidth};` : '');
|
|
46
30
|
</script>
|
|
47
31
|
|
|
48
32
|
<div class="uniface-header-layout">
|
|
@@ -106,4 +90,4 @@
|
|
|
106
90
|
flex: 1 1 auto;
|
|
107
91
|
overflow: hidden;
|
|
108
92
|
}
|
|
109
|
-
</style>
|
|
93
|
+
</style>
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
bottom
|
|
35
35
|
}: Props = $props();
|
|
36
36
|
|
|
37
|
-
let topPanel
|
|
38
|
-
let bottomPanel
|
|
37
|
+
let topPanel = $state<HTMLElement>();
|
|
38
|
+
let bottomPanel = $state<HTMLElement>();
|
|
39
39
|
|
|
40
40
|
let rowHeight = $derived(bottom ? '25%' : '50%');
|
|
41
41
|
|
|
@@ -88,4 +88,4 @@
|
|
|
88
88
|
flex: 1 1 auto;
|
|
89
89
|
overflow: auto;
|
|
90
90
|
}
|
|
91
|
-
</style>
|
|
91
|
+
</style>
|
|
@@ -24,25 +24,9 @@
|
|
|
24
24
|
children
|
|
25
25
|
}: Props = $props();
|
|
26
26
|
|
|
27
|
-
let sidebarPanel
|
|
28
|
-
let maxWidth = '';
|
|
29
|
-
let minWidth = '';
|
|
30
|
-
|
|
31
|
-
$effect(() => {
|
|
32
|
-
if (sidebarResize && sidebarMaxWidth) {
|
|
33
|
-
maxWidth = `max-width: ${sidebarMaxWidth};`;
|
|
34
|
-
} else {
|
|
35
|
-
maxWidth = '';
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
$effect(() => {
|
|
40
|
-
if (sidebarResize && sidebarMinWidth) {
|
|
41
|
-
minWidth = `min-width: ${sidebarMinWidth};`;
|
|
42
|
-
} else {
|
|
43
|
-
minWidth = '';
|
|
44
|
-
}
|
|
45
|
-
});
|
|
27
|
+
let sidebarPanel = $state<HTMLElement>();
|
|
28
|
+
let maxWidth = $derived(sidebarResize && sidebarMaxWidth ? `max-width: ${sidebarMaxWidth};` : '');
|
|
29
|
+
let minWidth = $derived(sidebarResize && sidebarMinWidth ? `min-width: ${sidebarMinWidth};` : '');
|
|
46
30
|
</script>
|
|
47
31
|
|
|
48
32
|
<div class="uniface-sidebar-layout">
|
|
@@ -106,4 +90,4 @@
|
|
|
106
90
|
flex: 1 1 auto;
|
|
107
91
|
overflow: auto;
|
|
108
92
|
}
|
|
109
|
-
</style>
|
|
93
|
+
</style>
|
|
@@ -38,6 +38,15 @@
|
|
|
38
38
|
|
|
39
39
|
let sourceSelectedList: Array<any> = $state([]);
|
|
40
40
|
let targetSelectedList: Array<any> = $state([]);
|
|
41
|
+
let transferContainer = $state<HTMLDivElement>();
|
|
42
|
+
|
|
43
|
+
const handleFocusIn = (event: FocusEvent) => {
|
|
44
|
+
if (!transferContainer?.contains(event.relatedTarget as Node | null)) onfocus?.(event);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const handleFocusOut = (event: FocusEvent) => {
|
|
48
|
+
if (!transferContainer?.contains(event.relatedTarget as Node | null)) onblur?.(event);
|
|
49
|
+
};
|
|
41
50
|
|
|
42
51
|
const moveToTarget = async () => {
|
|
43
52
|
if (sourceSelectedList.length > 0 && await onchange?.(sourceSelectedList, "right")) {
|
|
@@ -56,7 +65,7 @@
|
|
|
56
65
|
}
|
|
57
66
|
</script>
|
|
58
67
|
|
|
59
|
-
<div class="uniface-transfer-container" {
|
|
68
|
+
<div bind:this={transferContainer} class="uniface-transfer-container" onfocusin={handleFocusIn} onfocusout={handleFocusOut}>
|
|
60
69
|
<ListBox class="list-container" title={sourceTitle} {filter} style="{style}; grid-column: 1/2" list={sourceList} selectMode="multiple"
|
|
61
70
|
bind:selectedList={sourceSelectedList} {itemRender}>
|
|
62
71
|
{#snippet footer()}
|
|
@@ -96,10 +105,7 @@
|
|
|
96
105
|
grid-auto-columns: 1fr 60px 1fr;
|
|
97
106
|
column-gap: 16px;
|
|
98
107
|
}
|
|
99
|
-
.uniface-transfer-container .
|
|
100
|
-
margin: 10px auto 10px 10px;
|
|
101
|
-
}
|
|
102
|
-
.uniface-transfer-container .list-container {
|
|
108
|
+
.uniface-transfer-container :global(.list-container) {
|
|
103
109
|
height: 100%;
|
|
104
110
|
flex: 1 1 auto;
|
|
105
111
|
overflow: hidden;
|
|
@@ -113,4 +119,4 @@
|
|
|
113
119
|
flex-direction: column;
|
|
114
120
|
justify-content: center;
|
|
115
121
|
align-items: center;
|
|
116
|
-
}</style>
|
|
122
|
+
}</style>
|
|
@@ -95,9 +95,6 @@
|
|
|
95
95
|
cursor: pointer;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
.card-action-img:hover {
|
|
99
|
-
}
|
|
100
|
-
|
|
101
98
|
.card-action-img:active {
|
|
102
99
|
position: relative;
|
|
103
100
|
top: 1px;
|
|
@@ -108,27 +105,4 @@
|
|
|
108
105
|
filter: grayscale(100%);
|
|
109
106
|
}
|
|
110
107
|
|
|
111
|
-
|
|
112
|
-
color: var(--disabled-button-text-color, var(--uniface-disabled-button-text-color, #B3BCCA));
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.action-item.disabled .action-icon:active {
|
|
116
|
-
position: relative;
|
|
117
|
-
top: 0;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.action-item.disabled .card-action-img {
|
|
121
|
-
filter: grayscale(100%);
|
|
122
|
-
cursor: default;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.action-item.disabled .card-action-img:hover {
|
|
126
|
-
width: var(--action-image-size, var(--uniface-action-image-size, 15px));
|
|
127
|
-
height: var(--action-image-size, var(--uniface-action-image-size, 15px));
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.action-item.disabled .card-action-img:active {
|
|
131
|
-
position: relative;
|
|
132
|
-
top: 0;
|
|
133
|
-
}
|
|
134
|
-
</style>
|
|
108
|
+
</style>
|
|
@@ -56,9 +56,11 @@
|
|
|
56
56
|
loadMoreIndicator
|
|
57
57
|
}: Props = $props();
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
// External values are synchronized by the effects below. Neutral initial values
|
|
60
|
+
// avoid implying that these props are intentionally captured only once.
|
|
61
|
+
let localSelectedItem = $state<any>(null);
|
|
60
62
|
let localSelectedList = $state(selectedList ?? []);
|
|
61
|
-
let localFilterText = $state(
|
|
63
|
+
let localFilterText = $state('');
|
|
62
64
|
|
|
63
65
|
let hasMore = $state(false);
|
|
64
66
|
let isBusy = $state(false);
|
|
@@ -66,7 +68,7 @@
|
|
|
66
68
|
let filteredList = $state<Array<any>>([]);
|
|
67
69
|
|
|
68
70
|
let scrollElement: HTMLElement;
|
|
69
|
-
let searchBox
|
|
71
|
+
let searchBox = $state<any>();
|
|
70
72
|
|
|
71
73
|
// Sync external props to local state
|
|
72
74
|
$effect(() => {
|
|
@@ -337,10 +339,6 @@
|
|
|
337
339
|
border-bottom: 1px solid var(--uniface-listbox-separator-color);
|
|
338
340
|
}
|
|
339
341
|
|
|
340
|
-
.listbox-content .listview-item.no-border {
|
|
341
|
-
border-bottom: unset;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
342
|
.listbox-content.selectable .listview-item {
|
|
345
343
|
cursor: pointer;
|
|
346
344
|
}
|
|
@@ -352,4 +350,4 @@
|
|
|
352
350
|
.listbox-content.selectable .listview-item.selected {
|
|
353
351
|
background-color: var(--uniface-list-box-selected-surface);
|
|
354
352
|
}
|
|
355
|
-
</style>
|
|
353
|
+
</style>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export function clickOutside(node) {
|
|
2
2
|
const handleClick = (event) => {
|
|
3
|
-
|
|
4
|
-
if (
|
|
5
|
-
node.dispatchEvent(
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const target = event.target;
|
|
4
|
+
if (target instanceof Node && !node.contains(target) && !event.defaultPrevented) {
|
|
5
|
+
node.dispatchEvent(new CustomEvent('outerClick', {
|
|
6
|
+
bubbles: true,
|
|
7
|
+
detail: { originalEvent: event }
|
|
8
|
+
}));
|
|
8
9
|
}
|
|
9
10
|
};
|
|
10
11
|
document.addEventListener('click', handleClick, true);
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
let showUpload = $state(false);
|
|
49
49
|
|
|
50
50
|
const handleFocus = (event: FocusEvent) => {
|
|
51
|
+
if (containerElement?.contains(event.relatedTarget as Node | null)) return;
|
|
51
52
|
if (!hasFocus) {
|
|
52
53
|
hasFocus = true;
|
|
53
54
|
onfocus?.(event);
|
|
@@ -55,6 +56,7 @@
|
|
|
55
56
|
};
|
|
56
57
|
|
|
57
58
|
const handleBlur = (event: FocusEvent) => {
|
|
59
|
+
if (containerElement?.contains(event.relatedTarget as Node | null)) return;
|
|
58
60
|
if (hasFocus && !showUpload) {
|
|
59
61
|
hasFocus = false;
|
|
60
62
|
onblur?.(event);
|
|
@@ -101,7 +103,9 @@
|
|
|
101
103
|
});
|
|
102
104
|
|
|
103
105
|
export function focus() {
|
|
104
|
-
containerElement
|
|
106
|
+
containerElement
|
|
107
|
+
?.querySelector<HTMLElement>('button, a[href], input:not([tabindex="-1"])')
|
|
108
|
+
?.focus();
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
const canUpload = $derived(!disabled && !readonly && (onUpload != null || uploadFile != null));
|
|
@@ -111,20 +115,18 @@
|
|
|
111
115
|
<div
|
|
112
116
|
bind:this={containerElement}
|
|
113
117
|
class="uniface-attachment-editor"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
onblur={handleBlur}
|
|
118
|
+
onfocusin={handleFocus}
|
|
119
|
+
onfocusout={handleBlur}
|
|
117
120
|
>
|
|
118
|
-
<input tabindex="-1" style="position: relative; left: -1px; width: 1px;"/>
|
|
119
121
|
<div class="files-field">
|
|
120
122
|
{#each files as file (file)}
|
|
121
123
|
<FileRender {file} {readonly} onRemove={removeFile}/>
|
|
122
124
|
{/each}
|
|
123
125
|
</div>
|
|
124
126
|
{#if canUpload}
|
|
125
|
-
<
|
|
127
|
+
<button type="button" class="editor-action-icon" aria-label="Upload file" onclick={triggerUpload}>
|
|
126
128
|
<i class="icon_google_file_upload" aria-hidden="true"></i>
|
|
127
|
-
</
|
|
129
|
+
</button>
|
|
128
130
|
{/if}
|
|
129
131
|
</div>
|
|
130
132
|
</FormEditor>
|
|
@@ -166,9 +168,12 @@
|
|
|
166
168
|
border-radius: 4px;
|
|
167
169
|
display: flex;
|
|
168
170
|
align-items: center;
|
|
171
|
+
border: 0;
|
|
172
|
+
background: transparent;
|
|
173
|
+
color: inherit;
|
|
169
174
|
}
|
|
170
175
|
|
|
171
176
|
.editor-action-icon:hover {
|
|
172
177
|
background-color: rgba(0, 0, 0, 0.05);
|
|
173
178
|
}
|
|
174
|
-
</style>
|
|
179
|
+
</style>
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
removeFile: (file: any) => void;
|
|
13
13
|
} = $props();
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
// The upload object owns subsequent status updates. This value is only the
|
|
16
|
+
// initial snapshot before the effect installs its update callback.
|
|
17
|
+
const getInitialStatus = () => file?.status ?? ProgressStatus.progressing;
|
|
18
|
+
let status: ProgressStatus = $state(getInitialStatus());
|
|
16
19
|
let progress: number = $state(0);
|
|
17
20
|
|
|
18
21
|
let cancelLabel: string = i18nRes.common.btnCancel.toString();
|
|
@@ -60,4 +63,4 @@
|
|
|
60
63
|
<TextButton size="small" label={removeLabel} onclick={removeUploadFile}/>
|
|
61
64
|
{/if}
|
|
62
65
|
</div>
|
|
63
|
-
</div>
|
|
66
|
+
</div>
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
let btnPickup = i18nRes.upload.btnPickup.toString();
|
|
30
30
|
|
|
31
31
|
let files: Array<UploadFile> = $state([]);
|
|
32
|
-
let dropZone: any;
|
|
33
32
|
let fileInput: any;
|
|
34
33
|
let interval: any;
|
|
35
34
|
let busy: boolean = $state(false);
|
|
35
|
+
let dragActive = $state(false);
|
|
36
36
|
let canClose: boolean = $state(false);
|
|
37
37
|
|
|
38
38
|
$effect(() => {
|
|
@@ -60,18 +60,18 @@
|
|
|
60
60
|
const handleDragOver = (e: DragEvent) => {
|
|
61
61
|
e.preventDefault();
|
|
62
62
|
busy = true;
|
|
63
|
-
|
|
63
|
+
dragActive = true;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
const handleDragLeave = (e: DragEvent) => {
|
|
67
67
|
e.preventDefault();
|
|
68
68
|
busy = false;
|
|
69
|
-
|
|
69
|
+
dragActive = false;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
const handleDrop = (e: DragEvent) => {
|
|
73
73
|
e.preventDefault();
|
|
74
|
-
|
|
74
|
+
dragActive = false;
|
|
75
75
|
handleFiles(e.dataTransfer?.files);
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
});
|
|
118
118
|
</script>
|
|
119
119
|
<ModalPopover {canClose} {theme} bind:visible>
|
|
120
|
-
<div class="uniface-file-upload-panel"
|
|
120
|
+
<div class="uniface-file-upload-panel" class:highlight={dragActive} ondragover={handleDragOver} ondragleave={handleDragLeave}
|
|
121
121
|
ondrop={handleDrop} onclick={handleMouseClick} aria-hidden="true">
|
|
122
122
|
<div class="file-upload-contents">
|
|
123
123
|
<div style="position: absolute; top: 0; width: 0; overflow: hidden">
|
|
@@ -154,70 +154,4 @@
|
|
|
154
154
|
}
|
|
155
155
|
.uniface-file-upload-panel.highlight {
|
|
156
156
|
background-color: var(--uniface-upload-panel-highlight-bg, #b3d8ff);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.uniface-attachment-display > div {
|
|
160
|
-
width: 100%;
|
|
161
|
-
box-sizing: border-box;
|
|
162
|
-
line-height: 1.1em;
|
|
163
|
-
overflow: hidden;
|
|
164
|
-
text-overflow: ellipsis;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
.uniface-attachment-field {
|
|
168
|
-
display: inline-block;
|
|
169
|
-
position: relative;
|
|
170
|
-
width: 100%;
|
|
171
|
-
}
|
|
172
|
-
.uniface-attachment-field .uniface-common-editor {
|
|
173
|
-
height: 120px;
|
|
174
|
-
}
|
|
175
|
-
.uniface-attachment-field > div {
|
|
176
|
-
display: flex;
|
|
177
|
-
flex-direction: row;
|
|
178
|
-
justify-items: center;
|
|
179
|
-
}
|
|
180
|
-
.uniface-attachment-field .files-field {
|
|
181
|
-
flex: 1 1 auto;
|
|
182
|
-
height: 100%;
|
|
183
|
-
overflow: hidden;
|
|
184
|
-
text-overflow: ellipsis;
|
|
185
|
-
display: flex;
|
|
186
|
-
flex-direction: row;
|
|
187
|
-
justify-items: flex-start;
|
|
188
|
-
overflow-x: auto;
|
|
189
|
-
}
|
|
190
|
-
.uniface-attachment-field .files-field .file-icon {
|
|
191
|
-
position: relative;
|
|
192
|
-
}
|
|
193
|
-
.uniface-attachment-field .files-field .file-icon img {
|
|
194
|
-
width: 64px;
|
|
195
|
-
height: 64px;
|
|
196
|
-
}
|
|
197
|
-
.uniface-attachment-field .files-field .file-icon .action-icon {
|
|
198
|
-
position: absolute;
|
|
199
|
-
display: none;
|
|
200
|
-
left: 50%;
|
|
201
|
-
transform: translateX(-50%);
|
|
202
|
-
cursor: pointer;
|
|
203
|
-
}
|
|
204
|
-
.uniface-attachment-field .files-field .file-icon .action-icon i:active {
|
|
205
|
-
position: relative;
|
|
206
|
-
top: 1px;
|
|
207
|
-
}
|
|
208
|
-
.uniface-attachment-field .files-field .file-icon:hover .action-icon {
|
|
209
|
-
display: inline-block;
|
|
210
|
-
}
|
|
211
|
-
.uniface-attachment-field .action-dropdown {
|
|
212
|
-
box-sizing: border-box;
|
|
213
|
-
margin-top: 4px;
|
|
214
|
-
margin-right: 4px;
|
|
215
|
-
line-height: 22px;
|
|
216
|
-
margin-left: 8px;
|
|
217
|
-
color: var(--uniface-dropdown-color, #e1e1e1);
|
|
218
|
-
align-self: flex-start;
|
|
219
|
-
cursor: pointer;
|
|
220
|
-
}
|
|
221
|
-
.uniface-attachment-field .filled .action-dropdown {
|
|
222
|
-
color: var(--uniface-secondary-dropdown-color, #b9b9b9);
|
|
223
|
-
}</style>
|
|
157
|
+
}</style>
|
|
@@ -123,6 +123,7 @@
|
|
|
123
123
|
--disabled-inner: var(--uniface-checkbox-checkmark-color-disabled);
|
|
124
124
|
-webkit-appearance: none;
|
|
125
125
|
-moz-appearance: none;
|
|
126
|
+
appearance: none;
|
|
126
127
|
height: var(--uniface-checkbox-size);
|
|
127
128
|
outline: none;
|
|
128
129
|
display: inline-block;
|
|
@@ -191,12 +192,6 @@
|
|
|
191
192
|
--o: 1;
|
|
192
193
|
--r: var(--uniface-checkbox-check-rotation);
|
|
193
194
|
}
|
|
194
|
-
.uniface-checkbox input[type=checkbox] + label {
|
|
195
|
-
display: inline-block;
|
|
196
|
-
vertical-align: middle;
|
|
197
|
-
cursor: pointer;
|
|
198
|
-
margin-left: 4px;
|
|
199
|
-
}
|
|
200
195
|
.uniface-checkbox.compact {
|
|
201
196
|
padding: 0;
|
|
202
197
|
color: var(--uniface-checkbox-text-color);
|
|
@@ -224,4 +219,4 @@
|
|
|
224
219
|
.uniface-checkbox *::before,
|
|
225
220
|
.uniface-checkbox *::after {
|
|
226
221
|
box-sizing: inherit;
|
|
227
|
-
}</style>
|
|
222
|
+
}</style>
|