@ticatec/uniface-element 0.1.24 → 0.1.30
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/accordion/Accordion.svelte +9 -1
- package/dist/accordion/AccordionItemView.svelte +14 -4
- package/dist/accordion/AccordionItemView.svelte.d.ts +1 -0
- package/dist/app-top-bar/AppTopBar.svelte +9 -13
- package/dist/app-top-bar/AppTopBar.svelte.d.ts +1 -1
- package/dist/breadcrumbs/Breadcrumb.d.ts +4 -0
- package/dist/breadcrumbs/Breadcrumb.js +1 -0
- package/dist/breadcrumbs/Breadcrumbs.svelte +21 -0
- package/dist/breadcrumbs/Breadcrumbs.svelte.d.ts +24 -0
- package/dist/breadcrumbs/index.d.ts +4 -0
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/button/Button.svelte +2 -2
- package/dist/card/Card.svelte +3 -1
- package/dist/card/Card.svelte.d.ts +1 -0
- package/dist/card/CommonCardActionBar.svelte +4 -2
- package/dist/card/CommonCardActionBar.svelte.d.ts +1 -0
- package/dist/common/CommonPicker.svelte +5 -2
- package/dist/common/Popover.svelte +9 -2
- package/dist/common-editor/CommonEditor.svelte +8 -7
- package/dist/common-range-editor/CommonRangeEditor.svelte +1 -5
- package/dist/date-picker/DatePicker.svelte +2 -2
- package/dist/date-picker/DateTimePicker.svelte +1 -1
- package/dist/date-range/DateRangeEditor.svelte +1 -1
- package/dist/drawer/Drawer.svelte +9 -17
- package/dist/drawer/Drawer.svelte.d.ts +3 -7
- package/dist/memo-editor/MemoEditor.svelte +1 -1
- package/dist/nav-menu/MenuItem.d.ts +1 -1
- package/dist/options-multi-select/OptionsMultiSelect.svelte +1 -1
- package/dist/options-select/OptionsSelect.svelte +1 -1
- package/dist/prompts-text-editor/PromptsTextEditor.svelte +9 -9
- package/dist/tabs/Tabs.svelte +2 -2
- package/dist/tag/Tag.svelte +1 -1
- package/dist/ticatec-uniface-web.css +178 -93
- package/dist/unit-number-editor/UnitNumberEditor.svelte +6 -5
- package/package.json +6 -2
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type AccordionItem from "./AccordionItem";
|
|
4
4
|
import Accordion from "./AccordionItemView.svelte";
|
|
5
|
+
import {onMount} from "svelte";
|
|
5
6
|
|
|
6
7
|
export let style: string = '';
|
|
7
8
|
export {className as class};
|
|
@@ -14,6 +15,13 @@
|
|
|
14
15
|
|
|
15
16
|
let openSet: Set<AccordionItem> = new Set();
|
|
16
17
|
|
|
18
|
+
onMount(() => {
|
|
19
|
+
if (exclusive && activeItem == null) {
|
|
20
|
+
openSet.add(accordions[0]);
|
|
21
|
+
accordions = [...accordions];
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
|
|
17
25
|
const handleAccordionClick = (accordion: AccordionItem) => (event: MouseEvent) => {
|
|
18
26
|
if (exclusive) {
|
|
19
27
|
if (activeItem != accordion) {
|
|
@@ -36,7 +44,7 @@
|
|
|
36
44
|
|
|
37
45
|
<div class="uniface-accordion-panel {className}" {style} class:compact>
|
|
38
46
|
{#each accordions as accordion}
|
|
39
|
-
<Accordion title={accordion.title} isOpen={openSet.has(accordion)} onClick={handleAccordionClick(accordion)}>
|
|
47
|
+
<Accordion title={accordion.title} isOpen={openSet.has(accordion)} {exclusive} onClick={handleAccordionClick(accordion)}>
|
|
40
48
|
<svelte:component this={accordion.component} {...accordion.params}/>
|
|
41
49
|
</Accordion>
|
|
42
50
|
{/each}
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
export let onClick: MouseClickHandler = null as unknown as MouseClickHandler;
|
|
7
7
|
export let header: any = null;
|
|
8
8
|
|
|
9
|
+
export let exclusive: boolean;
|
|
10
|
+
|
|
9
11
|
</script>
|
|
10
12
|
|
|
11
13
|
<style>
|
|
@@ -16,14 +18,22 @@
|
|
|
16
18
|
<div class="accordion">
|
|
17
19
|
<div class="header" aria-hidden="true" on:click={onClick}>
|
|
18
20
|
{#if header}
|
|
19
|
-
<svelte:component this={header} {title} {isOpen}/>
|
|
21
|
+
<svelte:component this={header} {title} {isOpen}/> <!-- TODO 自定义每个条目的标题 -->
|
|
20
22
|
{:else}
|
|
21
|
-
<div style="flex: 0 0 auto; padding-right: 8px">
|
|
22
|
-
<i class="{isOpen ? 'uniface-icon-chevron-down' : 'uniface-icon-chevron-right'}"></i>
|
|
23
|
-
</div>
|
|
24
23
|
<div style="flex: 1 1 auto; overflow: hidden; white-space: nowrap; text-overflow: ellipsis">
|
|
25
24
|
<span>{title}</span>
|
|
26
25
|
</div>
|
|
26
|
+
{#if exclusive}
|
|
27
|
+
{#if isOpen}
|
|
28
|
+
<div style="flex: 0 0 auto;">
|
|
29
|
+
<i class="icon_google_folder_open"></i>
|
|
30
|
+
</div>
|
|
31
|
+
{/if}
|
|
32
|
+
{:else}
|
|
33
|
+
<div style="flex: 0 0 auto;">
|
|
34
|
+
<i class="{isOpen ? 'icon_google_keyboard_arrow_up' : 'icon_google_keyboard_arrow_down'}"></i>
|
|
35
|
+
</div>
|
|
36
|
+
{/if}
|
|
27
37
|
{/if}
|
|
28
38
|
</div>
|
|
29
39
|
{#if isOpen}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
export let title: string
|
|
2
|
+
export let title: string;
|
|
3
3
|
export let style: string = '';
|
|
4
4
|
</script>
|
|
5
5
|
|
|
6
|
-
<div class="uniface-
|
|
6
|
+
<div class="uniface-top-bar" {style}>
|
|
7
7
|
{#if $$slots['home']}
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
<div class="bar-home">
|
|
9
|
+
<slot name="home">
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
</slot>
|
|
12
|
+
</div>
|
|
13
13
|
{/if}
|
|
14
|
-
<div class="
|
|
14
|
+
<div class="main-content">
|
|
15
15
|
<slot>
|
|
16
16
|
<span>{title}</span>
|
|
17
17
|
</slot>
|
|
18
18
|
</div>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<slot name="right">
|
|
22
|
-
</slot>
|
|
23
|
-
</div>
|
|
24
|
-
{/if}
|
|
19
|
+
<slot name="right">
|
|
20
|
+
</slot>
|
|
25
21
|
</div>
|
|
@@ -17,7 +17,7 @@ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
|
17
17
|
children?: any;
|
|
18
18
|
} : {});
|
|
19
19
|
declare const AppTopBar: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
-
title
|
|
20
|
+
title: string;
|
|
21
21
|
style?: string;
|
|
22
22
|
}, {
|
|
23
23
|
home: {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
// 定义组件属性
|
|
3
|
+
import type Breadcrumb from "./Breadcrumb";
|
|
4
|
+
|
|
5
|
+
export let items: Array<Breadcrumb> = []; //
|
|
6
|
+
export let separator: string = "/"; // 分隔符
|
|
7
|
+
export let onItemClick: (item: any) => (event: MouseEvent) => void;
|
|
8
|
+
|
|
9
|
+
export let style: string = '';
|
|
10
|
+
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<div class="uniface-breadcrumbs" {style}>
|
|
15
|
+
{#each items as item}
|
|
16
|
+
<div>
|
|
17
|
+
<span>{separator}</span>
|
|
18
|
+
<span aria-hidden="true" class="breadcrumb" on:click={onItemClick(item.data)}>{item.label}</span>
|
|
19
|
+
</div>
|
|
20
|
+
{/each}
|
|
21
|
+
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type Breadcrumb from "./Breadcrumb";
|
|
2
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
declare const Breadcrumbs: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
items?: Array<Breadcrumb>;
|
|
17
|
+
separator?: string;
|
|
18
|
+
onItemClick: (item: any) => (event: MouseEvent) => void;
|
|
19
|
+
style?: string;
|
|
20
|
+
}, {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
}, {}, {}, string>;
|
|
23
|
+
type Breadcrumbs = InstanceType<typeof Breadcrumbs>;
|
|
24
|
+
export default Breadcrumbs;
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
<div {style} class="uniface-button common-button {variant} {size} {type}" aria-hidden="true" class:disabled
|
|
31
31
|
on:click={handleClick}>
|
|
32
32
|
{#if icon != null}
|
|
33
|
-
<i
|
|
33
|
+
<i class={icon}></i>
|
|
34
34
|
{/if}
|
|
35
35
|
<slot>
|
|
36
36
|
{#if label != null && label.length > 0}
|
|
37
|
-
<span>{label}</span>
|
|
37
|
+
<span style="flex: 1 1 auto">{label}</span>
|
|
38
38
|
{/if}
|
|
39
39
|
</slot>
|
|
40
40
|
</div>
|
package/dist/card/Card.svelte
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
export let actions: Array<CardAction> = [];
|
|
10
10
|
export let variant: 'plain' | '3d' = 'plain';
|
|
11
11
|
|
|
12
|
+
export let iconColor: string | null = null;
|
|
13
|
+
|
|
12
14
|
</script>
|
|
13
15
|
|
|
14
16
|
<div class="uniface-card" class:shadowBox={variant=='3d'}>
|
|
@@ -26,7 +28,7 @@
|
|
|
26
28
|
<slot/>
|
|
27
29
|
</div>
|
|
28
30
|
{#if actions && actions.length > 0}
|
|
29
|
-
<CommonCardActionBar {actions}/>
|
|
31
|
+
<CommonCardActionBar color={iconColor} {actions}/>
|
|
30
32
|
{:else }
|
|
31
33
|
{#if $$slots['action-bar']}
|
|
32
34
|
<div class="card-action-bar">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import utils from "../common/utils";
|
|
4
4
|
|
|
5
5
|
export let actions: Array<CardAction>;
|
|
6
|
-
|
|
6
|
+
export let color: string | null = null;
|
|
7
7
|
|
|
8
8
|
let clickEnable = true;
|
|
9
9
|
|
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
$: fontColor = color ? `color: ${color}` : '';
|
|
20
|
+
|
|
19
21
|
</script>
|
|
20
22
|
|
|
21
|
-
<div class="card-action-bar simple">
|
|
23
|
+
<div class="card-action-bar simple" style="{fontColor}">
|
|
22
24
|
{#each actions as action}
|
|
23
25
|
<div class:disabled={action.disabled} class="action-item">
|
|
24
26
|
{#if action.icon}
|
|
@@ -14,6 +14,7 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
14
14
|
}
|
|
15
15
|
declare const CommonCardActionBar: $$__sveltets_2_IsomorphicComponent<{
|
|
16
16
|
actions: Array<CardAction>;
|
|
17
|
+
color?: string | null;
|
|
17
18
|
}, {
|
|
18
19
|
[evt: string]: CustomEvent<any>;
|
|
19
20
|
}, {}, {}, string>;
|
|
@@ -29,7 +29,10 @@
|
|
|
29
29
|
</script>
|
|
30
30
|
{#if displayMode === DisplayMode.View}
|
|
31
31
|
<div class="uniface-display-field">
|
|
32
|
-
<
|
|
32
|
+
<div class="content">
|
|
33
|
+
<span>{textValue}</span>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
33
36
|
</div>
|
|
34
37
|
{:else}
|
|
35
38
|
<div bind:this={editorElement} class="uniface-common-editor {variant} uniface-common-picker {className}" tabindex="-1" class:compact
|
|
@@ -41,7 +44,7 @@
|
|
|
41
44
|
<slot></slot>
|
|
42
45
|
{#if canClean && textValue && textValue.length > 0}
|
|
43
46
|
<div class="uniface-editor-clean-icon">
|
|
44
|
-
<i class="
|
|
47
|
+
<i class="icon_google_clear clickable " aria-hidden="true" on:click={clean}></i>
|
|
45
48
|
</div>
|
|
46
49
|
{/if}
|
|
47
50
|
</div>
|
|
@@ -74,9 +74,16 @@
|
|
|
74
74
|
window.addEventListener("resize", updatePosition);
|
|
75
75
|
document.addEventListener("scroll", updatePosition, {passive: false});
|
|
76
76
|
const interval = setInterval(checkPosition, 10); // 每 100ms 检测一次
|
|
77
|
+
const resizeObserver = new ResizeObserver(entries => {
|
|
78
|
+
for (let entry of entries) {
|
|
79
|
+
updatePosition();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
resizeObserver.observe(contentPanel);
|
|
77
83
|
return () => {
|
|
78
84
|
window.removeEventListener("resize", updatePosition);
|
|
79
85
|
document.removeEventListener("scroll", updatePosition);
|
|
86
|
+
resizeObserver.disconnect();
|
|
80
87
|
clearInterval(interval);
|
|
81
88
|
};
|
|
82
89
|
});
|
|
@@ -95,8 +102,8 @@
|
|
|
95
102
|
</script>
|
|
96
103
|
<svelte:window bind:innerWidth={w} bind:innerHeight={h}/>
|
|
97
104
|
<Portal target="body">
|
|
98
|
-
<div class="uniface-popover-wrapper" class:hidden style="{vertPos}; left: {position.left-margin}px; width: {position.width}px; ">
|
|
99
|
-
<div class="uniface-popover"
|
|
105
|
+
<div class="uniface-popover-wrapper" class:hidden style="{vertPos}; height: auto; left: {position.left-margin}px; width: {position.width}px; ">
|
|
106
|
+
<div class="uniface-popover" use:clickOutside
|
|
100
107
|
on:outerClick={close}>
|
|
101
108
|
<div bind:this={contentPanel} style="{horzPos}">
|
|
102
109
|
<div class="contents" style="{style}">
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
{:else}
|
|
44
44
|
<div class:compact class="uniface-common-editor {variant} {className}" tabindex="-1"
|
|
45
45
|
style="{style}">
|
|
46
|
-
{#if
|
|
47
|
-
<div class="editor-prefix" tabindex="-1" style="flex: 0 0 auto;">
|
|
48
|
-
<span>{prefix}</span>
|
|
49
|
-
</div>
|
|
50
|
-
{:else if $$slots['leading-icon'] && hasLeadingIcon}
|
|
46
|
+
{#if $$slots['leading-icon'] && hasLeadingIcon}
|
|
51
47
|
<div class="editor-embed-icon" style="flex: 0 0 auto;">
|
|
52
48
|
<slot name="leading-icon"/>
|
|
53
49
|
</div>
|
|
50
|
+
{:else if !utils.isEmpty(prefix)}
|
|
51
|
+
<div class="editor-prefix" tabindex="-1" style="flex: 0 0 auto;">
|
|
52
|
+
<span>{prefix}</span>
|
|
53
|
+
</div>
|
|
54
54
|
{/if}
|
|
55
55
|
{#if disabled || readonly}
|
|
56
56
|
<input style="flex: 1 1 auto" {value} {disabled} {readonly} {placeholder}>
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<div style="position: relative; flex: 1 1 auto">
|
|
59
59
|
<slot/>
|
|
60
60
|
<div class="uniface-editor-clean-icon {showActionIcon ? '' : 'hidden'}">
|
|
61
|
-
<i class="
|
|
61
|
+
<i class="icon_google_clear clickable" aria-hidden="true" on:click={clean}></i>
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
64
|
{/if}
|
|
@@ -66,7 +66,8 @@
|
|
|
66
66
|
<div class="editor-suffix" style="flex: 0 0 auto;">
|
|
67
67
|
<span>{suffix}</span>
|
|
68
68
|
</div>
|
|
69
|
-
{
|
|
69
|
+
{/if}
|
|
70
|
+
{#if $$slots['trailing-icon'] && hasTrailingIcon}
|
|
70
71
|
<div class="editor-embed-icon" style="flex: 0 0 auto;">
|
|
71
72
|
<slot name="trailing-icon"/>
|
|
72
73
|
</div>
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
import utils from "../common/utils";
|
|
5
|
-
import Icon from "../icon";
|
|
6
|
-
|
|
7
3
|
export let variant: '' | 'plain' | 'outlined' | 'filled' = '';
|
|
8
4
|
export let compact: boolean = false;
|
|
9
5
|
export {className as class};
|
|
@@ -22,7 +18,7 @@
|
|
|
22
18
|
<div class="divider"></div>
|
|
23
19
|
<slot name="to"/>
|
|
24
20
|
<div class="uniface-editor-clean-icon {showActionIcon ? '' : 'hidden'}">
|
|
25
|
-
<i class="
|
|
21
|
+
<i class="icon_google_clear clickable" aria-hidden="true" on:click={clean}></i>
|
|
26
22
|
</div>
|
|
27
23
|
</div>
|
|
28
24
|
<slot/>
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
const handleCalendarSelect = (d: dayjs.Dayjs) => {
|
|
49
|
-
value = d;
|
|
49
|
+
value = d.toDate();
|
|
50
50
|
showPopup = false;
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
|
|
79
79
|
</script>
|
|
80
80
|
|
|
81
|
-
<CommonPicker {displayMode} {variant} {style} className="uniface-date-time-editor" {compact} dropDownIcon="
|
|
81
|
+
<CommonPicker {displayMode} {variant} {style} className="uniface-date-time-editor" {compact} dropDownIcon="icon_google_event_available"
|
|
82
82
|
bind:showPopup canClean={!mandatory && value!=null} autoFit={false} clean={cleanData} {textValue} {readonly} {disabled}>
|
|
83
83
|
|
|
84
84
|
<input style="width: 100%" bind:this={editor} on:click={openPopup} {placeholder} on:keydown={handleKeyDown}
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
|
|
116
116
|
</script>
|
|
117
117
|
|
|
118
|
-
<CommonPicker {displayMode} {variant} {style} className="uniface-date-time-editor" {compact} dropDownIcon="
|
|
118
|
+
<CommonPicker {displayMode} {variant} {style} className="uniface-date-time-editor" {compact} dropDownIcon="icon_google_access_time"
|
|
119
119
|
bind:showPopup canClean={!mandatory && value!=null} autoFit={false} clean={cleanData} {textValue} {readonly} {disabled}>
|
|
120
120
|
|
|
121
121
|
<input style="width: 100%" bind:this={editor} on:click={openPopup} {placeholder} on:keydown={handleKeyDown}
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<input style="width: 100%; text-align: center" readonly on:click={showPopover} value={textTo}/>
|
|
67
67
|
</svelte:fragment>
|
|
68
68
|
<svelte:fragment>
|
|
69
|
-
<i class="
|
|
69
|
+
<i class="icon_google_event_note action-icon" aria-hidden="true" on:click={showPopover}></i>
|
|
70
70
|
</svelte:fragment>
|
|
71
71
|
</CommonRangeEditor>
|
|
72
72
|
|
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import {fly} from "svelte/transition";
|
|
3
|
-
import {createEventDispatcher} from "svelte";
|
|
4
3
|
|
|
5
4
|
|
|
6
|
-
export
|
|
7
|
-
visible = true;
|
|
8
|
-
hidden = false;
|
|
9
|
-
dispatch('open');
|
|
10
|
-
}
|
|
5
|
+
export let visible: boolean = false;
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
visible = false;
|
|
14
|
-
}
|
|
7
|
+
let hidden: boolean = true;
|
|
15
8
|
|
|
16
|
-
export let width:number = 300;
|
|
17
|
-
export let position: 'left' | 'right' = 'left';
|
|
18
9
|
|
|
19
|
-
|
|
20
|
-
let
|
|
21
|
-
let visible: boolean = false;
|
|
10
|
+
export let width:number = 300;
|
|
11
|
+
export let position: 'left' | 'right' = 'left'
|
|
22
12
|
|
|
23
13
|
$: if (visible) {
|
|
24
14
|
hidden = false;
|
|
25
15
|
}
|
|
26
16
|
|
|
17
|
+
|
|
18
|
+
|
|
27
19
|
let xPos: string;
|
|
28
20
|
|
|
29
21
|
$: xPos = position == 'left' ? `${-width}` : '100%';
|
|
30
22
|
|
|
31
23
|
</script>
|
|
32
|
-
<div class="uniface-drawer" style="display: {hidden ? 'none' : 'block'}" on:click={()=>{visible=false;
|
|
24
|
+
<div class="uniface-drawer" aria-hidden="true" style="display: {hidden ? 'none' : 'block'}" on:click={()=>{visible=false;}}>
|
|
33
25
|
{#if visible}
|
|
34
|
-
<div class={position} style="width: {width}px" transition:fly={{ x: xPos, duration: 1000, opacity: 0.5 }}
|
|
35
|
-
on:outroend={()=>{hidden = !visible}} on:click
|
|
26
|
+
<div class={position} style="width: {width}px" transition:fly={{ x: xPos, duration: 1000, opacity: 0.5 }} aria-hidden="false"
|
|
27
|
+
on:outroend={()=>{hidden = !visible}} on:click|stopPropagation>
|
|
36
28
|
<div>
|
|
37
29
|
<slot></slot>
|
|
38
30
|
</div>
|
|
@@ -17,21 +17,17 @@ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
|
17
17
|
children?: any;
|
|
18
18
|
} : {});
|
|
19
19
|
declare const Drawer: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
-
|
|
21
|
-
close?: () => void;
|
|
20
|
+
visible?: boolean;
|
|
22
21
|
width?: number;
|
|
23
22
|
position?: "left" | "right";
|
|
24
23
|
}, {
|
|
25
24
|
default: {};
|
|
26
25
|
}>, {
|
|
27
|
-
|
|
26
|
+
click: MouseEvent;
|
|
28
27
|
} & {
|
|
29
28
|
[evt: string]: CustomEvent<any>;
|
|
30
29
|
}, {
|
|
31
30
|
default: {};
|
|
32
|
-
}, {
|
|
33
|
-
open: () => void;
|
|
34
|
-
close: () => void;
|
|
35
|
-
}, string>;
|
|
31
|
+
}, {}, string>;
|
|
36
32
|
type Drawer = InstanceType<typeof Drawer>;
|
|
37
33
|
export default Drawer;
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
{/if}
|
|
79
79
|
{#if !disabled && value && value.length > 0}
|
|
80
80
|
<div class="action-button-wrapper" style="position: absolute; top: 0; left: 0; width: {width}px;">
|
|
81
|
-
<Icon name="
|
|
81
|
+
<Icon name="icon_google_clear" clickable class="uniface-editor-clean-icon" onClick={clean}/>
|
|
82
82
|
</div>
|
|
83
83
|
{/if}
|
|
84
84
|
</div>
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
|
|
105
105
|
</script>
|
|
106
106
|
|
|
107
|
-
<CommonPicker {displayMode} {variant} {style} {compact} className="multiple" dropDownIcon="
|
|
107
|
+
<CommonPicker {displayMode} {variant} {style} {compact} className="multiple" dropDownIcon="icon_google_arrow_drop_down"
|
|
108
108
|
bind:showPopup canClean={value!=null} autoFit clean={cleanData} {textValue} {readonly} {disabled}>
|
|
109
109
|
|
|
110
110
|
<div class="option-field" aria-hidden="true" on:click={()=>{showPopup = true}}>
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
|
|
75
75
|
</script>
|
|
76
76
|
|
|
77
|
-
<CommonPicker {displayMode} {variant} {style} {compact} dropDownIcon="
|
|
77
|
+
<CommonPicker {displayMode} {variant} {style} {compact} dropDownIcon="icon_google_arrow_drop_down"
|
|
78
78
|
bind:showPopup canClean={!mandatory && value!=null} autoFit clean={cleanData} {textValue} {readonly} {disabled}>
|
|
79
79
|
|
|
80
80
|
<input style="width: 100%" bind:this={editor} on:click={openPopup} {placeholder} readonly
|
|
@@ -64,27 +64,27 @@
|
|
|
64
64
|
|
|
65
65
|
<div bind:this={divPanel}>
|
|
66
66
|
<CommonEditor {displayMode} {style} {value} {prefix} {suffix} {readonly} {variant} {compact} class={className}
|
|
67
|
-
showActionIcon={removable && !readonly && !disabled && !utils.isEmpty(value)} {clean}
|
|
67
|
+
showActionIcon={removable && !readonly && !disabled && !utils.isEmpty(value)} {clean}
|
|
68
|
+
hasLeadingIcon={$$slots['leading-icon']!=null}>
|
|
68
69
|
<svelte:fragment slot="leading-icon">
|
|
69
70
|
{#if $$slots['leading-icon']}
|
|
70
|
-
<
|
|
71
|
-
<slot name="leading-icon"/>
|
|
72
|
-
</div>
|
|
71
|
+
<slot name="leading-icon"/>
|
|
73
72
|
{/if}
|
|
74
73
|
</svelte:fragment>
|
|
75
|
-
<input bind:this={editor}
|
|
76
|
-
<
|
|
74
|
+
<input style="width: 100%" bind:this={editor} {disabled} {placeholder} bind:value={value} {readonly}/>
|
|
75
|
+
<svelte:fragment slot="trailing-icon">
|
|
77
76
|
{#if !disabled && !readonly}
|
|
78
|
-
<i class="option-dropdown
|
|
77
|
+
<i class="option-dropdown icon_google_arrow_drop_down" aria-hidden="true" on:click={openPopup}></i>
|
|
79
78
|
{/if}
|
|
80
|
-
</
|
|
79
|
+
</svelte:fragment>
|
|
81
80
|
</CommonEditor>
|
|
82
81
|
|
|
83
82
|
{#if showPopup}
|
|
84
83
|
<Popover target={divPanel} autoFit align="right" on:close={()=>{showPopup=false}}>
|
|
85
84
|
<div class="options-popover" style={mh}>
|
|
86
85
|
{#each words as word}
|
|
87
|
-
<div style="padding-left: 12px; padding-right: 12px" on:click={handleHintClick(word)}
|
|
86
|
+
<div class="option-item" style="padding-left: 12px; padding-right: 12px" on:click={handleHintClick(word)}
|
|
87
|
+
aria-hidden="true">
|
|
88
88
|
<span>{word}</span>
|
|
89
89
|
</div>
|
|
90
90
|
{/each}
|
package/dist/tabs/Tabs.svelte
CHANGED
|
@@ -126,10 +126,10 @@
|
|
|
126
126
|
{:else}
|
|
127
127
|
<span>{tab[textField]}</span>
|
|
128
128
|
{#if refreshable}
|
|
129
|
-
<i class="
|
|
129
|
+
<i class="icon_google_refresh tab-refresh" on:click={reloadTab(tab)} aria-hidden="true"></i>
|
|
130
130
|
{/if}
|
|
131
131
|
{#if closable === true || (typeof (closable) == "function" && closable(tab))}
|
|
132
|
-
<i class="
|
|
132
|
+
<i class="icon_google_clear tab-action" on:click={closeTab(tab)} aria-hidden="true"></i>
|
|
133
133
|
{/if}
|
|
134
134
|
{/if}
|
|
135
135
|
</div>
|
package/dist/tag/Tag.svelte
CHANGED
|
@@ -22,6 +22,6 @@
|
|
|
22
22
|
<div class="uniface-tag" {style}>
|
|
23
23
|
<div class="{size} {variant} {className} {colorClass}" class:removable={removable} >
|
|
24
24
|
<span>{text}</span>
|
|
25
|
-
<Icon name="
|
|
25
|
+
<Icon name="icon_google_clear" clickable class="uniface-remove-icon" onClick={removeHandler}/>
|
|
26
26
|
</div>
|
|
27
27
|
</div>
|
|
@@ -44,38 +44,6 @@
|
|
|
44
44
|
--uniface-button-common-reverse-color: #ffffff;
|
|
45
45
|
--uniface-button-plain-disabled-color: #B3BCCA;
|
|
46
46
|
--uniface-text-button-plain-hover-color: #374151B0;
|
|
47
|
-
--uniface-button-plain-background-color: #f0f0f0;
|
|
48
|
-
--uniface-button-plain-border-color: #f0f0f0;
|
|
49
|
-
--uniface-button-plain-text-color: #374151;
|
|
50
|
-
--uniface-button-plain-hover-color: #f0f0f0B0;
|
|
51
|
-
--uniface-button-plainy-active-color: #f0f0f0;
|
|
52
|
-
--uniface-button-primary-background-color: #42A5F5;
|
|
53
|
-
--uniface-button-primary-border-color: #42B5DB;
|
|
54
|
-
--uniface-button-primary-text-color: #ffffff;
|
|
55
|
-
--uniface-button-primary-hover-color: #42A5F5B0;
|
|
56
|
-
--uniface-button-primary-active-color: #42A5F5;
|
|
57
|
-
--uniface-text-button-primary-hover-color: #42A5F5B0;
|
|
58
|
-
--uniface-button-secondary-background-color: #FF685B;
|
|
59
|
-
--uniface-button-secondary-border-color: #FF7875;
|
|
60
|
-
--uniface-button-secondary-text-color: #ffffff;
|
|
61
|
-
--uniface-button-secondary-hover-color: #FF685BB0;
|
|
62
|
-
--uniface-button-secondary-active-color: #FF4D4F;
|
|
63
|
-
--uniface-text-button-secondary-hover-color: #D32F2FB0;
|
|
64
|
-
--uniface-button-third-background-color: #2DC071;
|
|
65
|
-
--uniface-button-third-border-color: #2DD08B;
|
|
66
|
-
--uniface-button-third-text-color: #ffffff;
|
|
67
|
-
--uniface-button-third-hover-color: #2DD057B0;
|
|
68
|
-
--uniface-button-third-active-color: #2DC071;
|
|
69
|
-
--uniface-text-button-third-hover-color: #2DC071B0;
|
|
70
|
-
--uniface-button-forth-background-color: #FAD85D;
|
|
71
|
-
--uniface-button-forth-border-color: #FAE877;
|
|
72
|
-
--uniface-button-forth-text-color: #374151;
|
|
73
|
-
--uniface-button-forth-hover-color: #FAD85DB0;
|
|
74
|
-
--uniface-button-forth-active-color: #FAD85D;
|
|
75
|
-
--uniface-text-button-forth-hover-color: #FAD85DB0;
|
|
76
|
-
--uniface-disabled-button-color: #F1F5F9;
|
|
77
|
-
--uniface-disabled-button-border-color: #E2E8F0;
|
|
78
|
-
--uniface-disabled-button-text-color: #B3BCCA;
|
|
79
47
|
--uniface-text-button-color: #42A5F5;
|
|
80
48
|
--uniface-text-button-hover-color: #1e648d;
|
|
81
49
|
--uniface-active-border-color: #42A5F5;
|
|
@@ -430,10 +398,11 @@
|
|
|
430
398
|
display: block;
|
|
431
399
|
visibility: hidden;
|
|
432
400
|
box-sizing: border-box;
|
|
433
|
-
font-size: 18px;
|
|
434
401
|
color: var(--uniface-editor-text-color, #374151);
|
|
435
402
|
align-self: center;
|
|
436
403
|
cursor: pointer;
|
|
404
|
+
font-size: 22px;
|
|
405
|
+
line-height: 1;
|
|
437
406
|
}
|
|
438
407
|
.uniface-common-picker .action-icon:active {
|
|
439
408
|
color: var(--uniface-active-dropdown-color, #9d9d9d);
|
|
@@ -526,6 +495,7 @@
|
|
|
526
495
|
:root {
|
|
527
496
|
--uniface-editor-clean-icon-bg: #B3BCCA;
|
|
528
497
|
--uniface-editor-clean-icon-color: #ffffff;
|
|
498
|
+
--uniface-embed-icon-color: #6B7280;
|
|
529
499
|
--uniface-editor-text-color: #374151;
|
|
530
500
|
--uniface-editor-line-height: 16px;
|
|
531
501
|
--uniface-editor-padding: 0 8px;
|
|
@@ -544,6 +514,18 @@
|
|
|
544
514
|
--uniface-editor-inline-action-icon-hover-bg: #42A5F51A;
|
|
545
515
|
}
|
|
546
516
|
|
|
517
|
+
.uniface-display-field {
|
|
518
|
+
height: 24px;
|
|
519
|
+
position: relative;
|
|
520
|
+
line-height: 1.25em;
|
|
521
|
+
border-bottom: 1px solid var(--uniface-editor-border-color);
|
|
522
|
+
}
|
|
523
|
+
.uniface-display-field .content {
|
|
524
|
+
position: relative;
|
|
525
|
+
top: 50%;
|
|
526
|
+
transform: translateY(-50%);
|
|
527
|
+
}
|
|
528
|
+
|
|
547
529
|
/*输入框中的清除按钮*/
|
|
548
530
|
.uniface-editor-clean-icon {
|
|
549
531
|
position: absolute;
|
|
@@ -581,12 +563,15 @@
|
|
|
581
563
|
width: 100%;
|
|
582
564
|
position: relative;
|
|
583
565
|
height: 38px;
|
|
584
|
-
line-height: var(--uniface-editor-line-height, 16px);
|
|
585
566
|
display: inline-flex;
|
|
586
567
|
flex-direction: row;
|
|
587
568
|
align-items: center;
|
|
588
569
|
gap: 8px;
|
|
589
570
|
}
|
|
571
|
+
.uniface-common-editor .editor-embed-icon {
|
|
572
|
+
font-size: 20px;
|
|
573
|
+
color: var(--uniface-embed-icon-color);
|
|
574
|
+
}
|
|
590
575
|
.uniface-common-editor .editor-embed-icon img {
|
|
591
576
|
width: 28px;
|
|
592
577
|
height: 28px;
|
|
@@ -768,6 +753,7 @@
|
|
|
768
753
|
.uniface-filter-field.horizontal .field-container {
|
|
769
754
|
grid-template-columns: auto 1fr;
|
|
770
755
|
align-items: center;
|
|
756
|
+
gap: 8px;
|
|
771
757
|
}
|
|
772
758
|
.uniface-filter-field.horizontal .field-label {
|
|
773
759
|
text-align: var(--uniface-criteria-field-label-alignment);
|
|
@@ -894,7 +880,6 @@
|
|
|
894
880
|
.uniface-form-field .field-hint {
|
|
895
881
|
width: 100%;
|
|
896
882
|
box-sizing: border-box;
|
|
897
|
-
padding: 4px 0;
|
|
898
883
|
font-size: 0.9em;
|
|
899
884
|
font-style: italic;
|
|
900
885
|
color: var(--uniface-form-field-invalid-message-color);
|
|
@@ -922,7 +907,7 @@
|
|
|
922
907
|
.uniface-form-field .form-content {
|
|
923
908
|
width: 100%;
|
|
924
909
|
display: grid;
|
|
925
|
-
gap:
|
|
910
|
+
gap: 8px;
|
|
926
911
|
}
|
|
927
912
|
.uniface-form-field.vertical .form-content {
|
|
928
913
|
grid-template-columns: 1fr;
|
|
@@ -939,6 +924,7 @@
|
|
|
939
924
|
}
|
|
940
925
|
.uniface-form-field.horizontal .form-content {
|
|
941
926
|
grid-template-columns: auto 1fr;
|
|
927
|
+
gap: 8px;
|
|
942
928
|
grid-template-areas: "label field" "empty hint";
|
|
943
929
|
}
|
|
944
930
|
.uniface-form-field.horizontal .form-content .field-label {
|
|
@@ -986,9 +972,11 @@
|
|
|
986
972
|
line-height: 1.5em;
|
|
987
973
|
color: var(--uniface-default-text-color, #374151);
|
|
988
974
|
padding: var(--uniface-memo-padding, 6px 8px);
|
|
975
|
+
border-bottom: 1px solid var(--uniface-editor-border-color, #E2E8F0);
|
|
989
976
|
}
|
|
990
977
|
.uniface-memo-editor:focus {
|
|
991
978
|
outline: none;
|
|
979
|
+
border-bottom-color: var(--uniface-editor-outlined-active-border-color, #298DFF);
|
|
992
980
|
}
|
|
993
981
|
.uniface-memo-editor.plain {
|
|
994
982
|
border: none;
|
|
@@ -1275,9 +1263,47 @@
|
|
|
1275
1263
|
border-top: 1px solid var(--uniface-dialog-divider-color, #F0F0F0);
|
|
1276
1264
|
}
|
|
1277
1265
|
|
|
1266
|
+
:root {
|
|
1267
|
+
--uniface-button-min-width: 80px;
|
|
1268
|
+
--uniface-button-plain-background-color: #f0f0f0;
|
|
1269
|
+
--uniface-button-plain-border-color: #f0f0f0;
|
|
1270
|
+
--uniface-button-plain-text-color: #374151;
|
|
1271
|
+
--uniface-button-plain-hover-color: #f0f0f0B0;
|
|
1272
|
+
--uniface-button-plainy-active-color: #f0f0f0;
|
|
1273
|
+
--uniface-button-primary-background-color: #42A5F5;
|
|
1274
|
+
--uniface-button-primary-border-color: #42B5DB;
|
|
1275
|
+
--uniface-button-primary-text-color: #ffffff;
|
|
1276
|
+
--uniface-button-primary-hover-color: #42A5F5B0;
|
|
1277
|
+
--uniface-button-primary-active-color: #42A5F5;
|
|
1278
|
+
--uniface-text-button-primary-hover-color: #42A5F5B0;
|
|
1279
|
+
--uniface-button-secondary-background-color: #FF685B;
|
|
1280
|
+
--uniface-button-secondary-border-color: #FF7875;
|
|
1281
|
+
--uniface-button-secondary-text-color: #ffffff;
|
|
1282
|
+
--uniface-button-secondary-hover-color: #FF685BB0;
|
|
1283
|
+
--uniface-button-secondary-active-color: #FF4D4F;
|
|
1284
|
+
--uniface-text-button-secondary-hover-color: #D32F2FB0;
|
|
1285
|
+
--uniface-button-third-background-color: #2DC071;
|
|
1286
|
+
--uniface-button-third-border-color: #2DD08B;
|
|
1287
|
+
--uniface-button-third-text-color: #ffffff;
|
|
1288
|
+
--uniface-button-third-hover-color: #2DD057B0;
|
|
1289
|
+
--uniface-button-third-active-color: #2DC071;
|
|
1290
|
+
--uniface-text-button-third-hover-color: #2DC071B0;
|
|
1291
|
+
--uniface-button-forth-background-color: #FAD85D;
|
|
1292
|
+
--uniface-button-forth-border-color: #FAE877;
|
|
1293
|
+
--uniface-button-forth-text-color: #374151;
|
|
1294
|
+
--uniface-button-forth-hover-color: #FAD85DB0;
|
|
1295
|
+
--uniface-button-forth-active-color: #FAD85D;
|
|
1296
|
+
--uniface-text-button-forth-hover-color: #FAD85DB0;
|
|
1297
|
+
--uniface-disabled-button-color: #F1F5F9;
|
|
1298
|
+
--uniface-disabled-button-border-color: #E2E8F0;
|
|
1299
|
+
--uniface-disabled-button-text-color: #B3BCCA;
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1278
1302
|
/*通用按钮设置*/
|
|
1279
1303
|
.uniface-button {
|
|
1280
|
-
display: inline-
|
|
1304
|
+
display: inline-flex;
|
|
1305
|
+
flex-direction: row;
|
|
1306
|
+
align-items: center;
|
|
1281
1307
|
box-sizing: border-box;
|
|
1282
1308
|
cursor: pointer;
|
|
1283
1309
|
text-align: center;
|
|
@@ -1285,6 +1311,9 @@
|
|
|
1285
1311
|
-moz-user-select: none;
|
|
1286
1312
|
-ms-user-select: none;
|
|
1287
1313
|
user-select: none;
|
|
1314
|
+
min-width: var(--uniface-button-min-width);
|
|
1315
|
+
height: 28px;
|
|
1316
|
+
gap: 8px;
|
|
1288
1317
|
font-size: 12px;
|
|
1289
1318
|
letter-spacing: 1px;
|
|
1290
1319
|
transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
|
|
@@ -1363,18 +1392,18 @@
|
|
|
1363
1392
|
color: var(--uniface-disabled-button-text-color, #B3BCCA);
|
|
1364
1393
|
}
|
|
1365
1394
|
.uniface-button.common-button {
|
|
1366
|
-
padding:
|
|
1395
|
+
padding: 0 16px;
|
|
1367
1396
|
border-radius: 4px;
|
|
1368
1397
|
}
|
|
1369
|
-
.uniface-button.common-button
|
|
1370
|
-
|
|
1398
|
+
.uniface-button.common-button i {
|
|
1399
|
+
font-size: 1.5em;
|
|
1371
1400
|
}
|
|
1372
1401
|
.uniface-button.common-button.big {
|
|
1373
|
-
|
|
1402
|
+
height: 32px;
|
|
1374
1403
|
font-size: 1.1em;
|
|
1375
1404
|
}
|
|
1376
1405
|
.uniface-button.common-button.mini {
|
|
1377
|
-
|
|
1406
|
+
height: 24px;
|
|
1378
1407
|
font-size: 0.9em;
|
|
1379
1408
|
}
|
|
1380
1409
|
.uniface-button.common-button.plain {
|
|
@@ -1390,40 +1419,37 @@
|
|
|
1390
1419
|
border-radius: 12px;
|
|
1391
1420
|
}
|
|
1392
1421
|
.uniface-button.icon-button {
|
|
1393
|
-
width:
|
|
1394
|
-
height:
|
|
1395
|
-
padding: 2px;
|
|
1422
|
+
width: 28px;
|
|
1423
|
+
height: 28px;
|
|
1396
1424
|
border-radius: 50%;
|
|
1425
|
+
min-width: unset;
|
|
1426
|
+
justify-content: center;
|
|
1397
1427
|
}
|
|
1398
1428
|
.uniface-button.icon-button i {
|
|
1399
|
-
|
|
1400
|
-
font-size: 16px;
|
|
1429
|
+
font-size: 18px;
|
|
1401
1430
|
}
|
|
1402
1431
|
.uniface-button.icon-button.big {
|
|
1403
|
-
width:
|
|
1404
|
-
height:
|
|
1405
|
-
padding: 4px;
|
|
1432
|
+
width: 32px;
|
|
1433
|
+
height: 32px;
|
|
1406
1434
|
}
|
|
1407
1435
|
.uniface-button.icon-button.big i {
|
|
1408
|
-
|
|
1409
|
-
font-size: 24px;
|
|
1436
|
+
font-size: 22px;
|
|
1410
1437
|
}
|
|
1411
1438
|
.uniface-button.icon-button.mini {
|
|
1412
1439
|
width: 24px;
|
|
1413
1440
|
height: 24px;
|
|
1414
|
-
padding: 2px;
|
|
1415
1441
|
}
|
|
1416
1442
|
.uniface-button.icon-button.mini i {
|
|
1417
|
-
|
|
1418
|
-
font-size: 12px;
|
|
1443
|
+
font-size: 16px;
|
|
1419
1444
|
}
|
|
1420
1445
|
.uniface-button.text-button {
|
|
1421
1446
|
padding: 3px 6px;
|
|
1422
1447
|
cursor: pointer;
|
|
1423
1448
|
text-align: center;
|
|
1424
1449
|
background-color: transparent;
|
|
1425
|
-
color: var(--uniface-button-plain-text-color
|
|
1450
|
+
color: var(--uniface-button-plain-text-color);
|
|
1426
1451
|
user-select: none;
|
|
1452
|
+
min-width: unset;
|
|
1427
1453
|
}
|
|
1428
1454
|
.uniface-button.text-button.big {
|
|
1429
1455
|
font-size: 1.2em;
|
|
@@ -1686,12 +1712,13 @@
|
|
|
1686
1712
|
border-color: var(--uniface-card-divid-border-color, rgba(66, 165, 245, 0.4392156863));
|
|
1687
1713
|
}
|
|
1688
1714
|
.uniface-card > div .card-header {
|
|
1689
|
-
height: var(--uniface-card-header-height, 54px);
|
|
1690
|
-
border-bottom: 1px solid var(--uniface-card-inside-border-color, #E2E8F0);
|
|
1691
1715
|
box-sizing: border-box;
|
|
1692
1716
|
font-weight: 600;
|
|
1717
|
+
position: relative;
|
|
1693
1718
|
}
|
|
1694
1719
|
.uniface-card > div .card-header.simple {
|
|
1720
|
+
height: var(--uniface-card-header-height, 54px);
|
|
1721
|
+
border-bottom: 1px solid var(--uniface-card-inside-border-color, #E2E8F0);
|
|
1695
1722
|
line-height: var(--uniface-card-header-height, 54px);
|
|
1696
1723
|
padding: var(--uniface-card-header-padding, 0 24px);
|
|
1697
1724
|
width: 100%;
|
|
@@ -1746,7 +1773,6 @@
|
|
|
1746
1773
|
}
|
|
1747
1774
|
.uniface-card > div .card-action-bar.simple .action-item i {
|
|
1748
1775
|
cursor: pointer;
|
|
1749
|
-
color: var(--uniface-card-primary-text-color, #374151);
|
|
1750
1776
|
}
|
|
1751
1777
|
.uniface-card > div .card-action-bar.simple .action-item i:hover {
|
|
1752
1778
|
font-size: var(--uniface-action-image-hover-size);
|
|
@@ -2191,49 +2217,58 @@
|
|
|
2191
2217
|
line-height: 3em;
|
|
2192
2218
|
}
|
|
2193
2219
|
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2220
|
+
:root {
|
|
2221
|
+
--uniface-top-bar-background-color: #0061FF;
|
|
2222
|
+
--uniface-top-bar-color: #f0f0f0;
|
|
2223
|
+
--uniface-top-bar-height: 48px;
|
|
2224
|
+
--uniface-top-bar-font-szie: 24px;
|
|
2225
|
+
--uniface-top-bar-margin: 12px;
|
|
2226
|
+
--uniface-avatar-size: 40px;
|
|
2227
|
+
--uniface-avatar-radius: 50%;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
.uniface-top-bar {
|
|
2231
|
+
background-color: var(--uniface-top-bar-background-color);
|
|
2232
|
+
color: var(--uniface-top-bar-color);
|
|
2197
2233
|
text-align: center;
|
|
2198
2234
|
width: 100%;
|
|
2235
|
+
height: var(--uniface-top-bar-height);
|
|
2236
|
+
font-size: var(--uniface-top-bar-font-szie);
|
|
2199
2237
|
display: flex;
|
|
2200
2238
|
flex-direction: row;
|
|
2201
2239
|
box-sizing: border-box;
|
|
2202
2240
|
justify-items: center;
|
|
2203
|
-
|
|
2241
|
+
align-items: center;
|
|
2242
|
+
padding: 0 var(--uniface-top-bar-margin);
|
|
2243
|
+
gap: 8px;
|
|
2204
2244
|
}
|
|
2205
|
-
.uniface-
|
|
2245
|
+
.uniface-top-bar > div {
|
|
2206
2246
|
flex: 0 0 auto;
|
|
2207
|
-
align-self: center;
|
|
2208
2247
|
}
|
|
2209
|
-
.uniface-
|
|
2210
|
-
display: flex;
|
|
2248
|
+
.uniface-top-bar .bar-home {
|
|
2211
2249
|
position: relative;
|
|
2212
|
-
|
|
2213
|
-
height: 32px;
|
|
2214
|
-
border-radius: 50%;
|
|
2215
|
-
border: 1px solid transparent;
|
|
2216
|
-
overflow: hidden;
|
|
2217
|
-
box-sizing: border-box;
|
|
2218
|
-
flex-direction: column;
|
|
2219
|
-
justify-content: center;
|
|
2220
|
-
text-align: center;
|
|
2221
|
-
font-size: 22px;
|
|
2222
|
-
}
|
|
2223
|
-
.uniface-header .bar-home:hover {
|
|
2224
|
-
border-color: #ffffff;
|
|
2250
|
+
cursor: pointer;
|
|
2225
2251
|
}
|
|
2226
|
-
.uniface-
|
|
2252
|
+
.uniface-top-bar .bar-home:active {
|
|
2227
2253
|
top: 1px;
|
|
2228
2254
|
}
|
|
2229
|
-
.uniface-
|
|
2255
|
+
.uniface-top-bar .main-content {
|
|
2230
2256
|
flex: 1 1 auto;
|
|
2231
|
-
|
|
2232
|
-
align-self: center;
|
|
2257
|
+
text-align: left;
|
|
2233
2258
|
}
|
|
2234
|
-
.uniface-
|
|
2235
|
-
|
|
2236
|
-
|
|
2259
|
+
.uniface-top-bar .avatar {
|
|
2260
|
+
height: var(--uniface-avatar-size);
|
|
2261
|
+
}
|
|
2262
|
+
.uniface-top-bar .avatar img {
|
|
2263
|
+
position: relative;
|
|
2264
|
+
width: var(--uniface-avatar-size);
|
|
2265
|
+
height: var(--uniface-avatar-size);
|
|
2266
|
+
border-radius: var(--uniface-avatar-radius);
|
|
2267
|
+
object-fit: cover;
|
|
2268
|
+
cursor: pointer;
|
|
2269
|
+
}
|
|
2270
|
+
.uniface-top-bar .avatar img:active {
|
|
2271
|
+
top: 1px;
|
|
2237
2272
|
}
|
|
2238
2273
|
|
|
2239
2274
|
.uniface-lookup-editor {
|
|
@@ -2612,13 +2647,20 @@
|
|
|
2612
2647
|
flex: 0 0 auto;
|
|
2613
2648
|
}
|
|
2614
2649
|
|
|
2650
|
+
:root {
|
|
2651
|
+
--uniface-navigator-menu-background-color: #ffffff;
|
|
2652
|
+
--uniface-navigator-menu-color: #374151;
|
|
2653
|
+
--uniface-navigator-menu-hover-background-color: #81D4FA;
|
|
2654
|
+
--uniface-navigator-menu-hover-color: #374151;
|
|
2655
|
+
}
|
|
2656
|
+
|
|
2615
2657
|
.uniface-navigator-menu-panel {
|
|
2616
2658
|
display: block;
|
|
2617
2659
|
width: 100%;
|
|
2618
2660
|
height: 100%;
|
|
2619
2661
|
user-select: none;
|
|
2620
|
-
background-color: var(--uniface-
|
|
2621
|
-
color: var(--uniface-
|
|
2662
|
+
background-color: var(--uniface-navigator-menu-background-color);
|
|
2663
|
+
color: var(--uniface-navigator-menu-color);
|
|
2622
2664
|
position: relative;
|
|
2623
2665
|
overflow-x: hidden;
|
|
2624
2666
|
overflow-y: auto;
|
|
@@ -2649,7 +2691,7 @@
|
|
|
2649
2691
|
}
|
|
2650
2692
|
.uniface-navigator-menu-panelul li span:hover, .uniface-navigator-menu-panel ul li span:hover {
|
|
2651
2693
|
background-color: var(--uniface-navigator-menu-hover-background-color, #81D4FA);
|
|
2652
|
-
color: var(--uniface-
|
|
2694
|
+
color: var(--uniface-navigator-menu-hover-color);
|
|
2653
2695
|
border-radius: 4px;
|
|
2654
2696
|
}
|
|
2655
2697
|
.uniface-navigator-menu-panelul li.expandable > span:hover::after, .uniface-navigator-menu-panel ul li.expandable > span:hover::after {
|
|
@@ -2658,7 +2700,7 @@
|
|
|
2658
2700
|
font-size: 0.9em;
|
|
2659
2701
|
position: absolute;
|
|
2660
2702
|
right: 8px;
|
|
2661
|
-
color: var(--uniface-
|
|
2703
|
+
color: var(--uniface-navigator-menu-color);
|
|
2662
2704
|
}
|
|
2663
2705
|
.uniface-navigator-menu-panelul li.expandable.fold ul, .uniface-navigator-menu-panel ul li.expandable.fold ul {
|
|
2664
2706
|
display: none;
|
|
@@ -3565,11 +3607,13 @@
|
|
|
3565
3607
|
}
|
|
3566
3608
|
.uniface-accordion-panel .accordion .header {
|
|
3567
3609
|
background-color: var(--uniface-accordion-title-bg, #F8FAFC);
|
|
3568
|
-
padding: 12px
|
|
3610
|
+
padding: 8px 12px;
|
|
3569
3611
|
width: 100%;
|
|
3570
3612
|
box-sizing: border-box;
|
|
3571
3613
|
cursor: pointer;
|
|
3572
3614
|
display: flex;
|
|
3615
|
+
gap: 8px;
|
|
3616
|
+
flex-direction: row;
|
|
3573
3617
|
align-items: center;
|
|
3574
3618
|
}
|
|
3575
3619
|
.uniface-accordion-panel .accordion .header:hover {
|
|
@@ -3583,7 +3627,7 @@
|
|
|
3583
3627
|
transition: height 0.3s ease-out;
|
|
3584
3628
|
}
|
|
3585
3629
|
.uniface-accordion-panel.compact .accordion .header {
|
|
3586
|
-
padding:
|
|
3630
|
+
padding: 4px 8px;
|
|
3587
3631
|
}
|
|
3588
3632
|
.uniface-accordion-panel.compact .accordion .content {
|
|
3589
3633
|
padding: 8px;
|
|
@@ -4105,6 +4149,47 @@
|
|
|
4105
4149
|
overflow-y: hidden;
|
|
4106
4150
|
}
|
|
4107
4151
|
|
|
4152
|
+
:root {
|
|
4153
|
+
--breadcrumbs-gap: 8px;
|
|
4154
|
+
--breadcrumbs-color: var(--uniface-primary-text-color, #374151);
|
|
4155
|
+
--breadcrumbs-hover-color: var(--uniface-primary-hover-color, #298DEF);
|
|
4156
|
+
--breadcrumbs-active-color: var(--uniface-primary-hover-color, #298DEF);
|
|
4157
|
+
--breadcrumbs-active-weight: 600;
|
|
4158
|
+
--breadcrumbs-padding: 8px 12px;
|
|
4159
|
+
}
|
|
4160
|
+
|
|
4161
|
+
.uniface-breadcrumbs {
|
|
4162
|
+
width: 100%;
|
|
4163
|
+
display: flex;
|
|
4164
|
+
flex-direction: row;
|
|
4165
|
+
flex-wrap: nowrap;
|
|
4166
|
+
overflow: hidden;
|
|
4167
|
+
color: var(--breadcrumbs-color);
|
|
4168
|
+
gap: var(--breadcrumbs-gap);
|
|
4169
|
+
padding: var(--breadcrumbs-padding);
|
|
4170
|
+
}
|
|
4171
|
+
.uniface-breadcrumbs .breadcrumb {
|
|
4172
|
+
margin: 0 6px;
|
|
4173
|
+
cursor: pointer;
|
|
4174
|
+
}
|
|
4175
|
+
.uniface-breadcrumbs .breadcrumb:hover {
|
|
4176
|
+
color: var(--breadcrumbs-hover-color);
|
|
4177
|
+
}
|
|
4178
|
+
.uniface-breadcrumbs .breadcrumb:active {
|
|
4179
|
+
color: var(--breadcrumbs-active-color);
|
|
4180
|
+
font-weight: var(--breadcrumbs-active-weight);
|
|
4181
|
+
}
|
|
4182
|
+
.uniface-breadcrumbs > div:last-child .breadcrumb {
|
|
4183
|
+
cursor: default;
|
|
4184
|
+
}
|
|
4185
|
+
.uniface-breadcrumbs > div:last-child .breadcrumb:hover {
|
|
4186
|
+
color: var(--uniface-primary-text-color);
|
|
4187
|
+
}
|
|
4188
|
+
.uniface-breadcrumbs > div:last-child .breadcrumb:active {
|
|
4189
|
+
color: var(--uniface-primary-text-color);
|
|
4190
|
+
font-weight: unset;
|
|
4191
|
+
}
|
|
4192
|
+
|
|
4108
4193
|
html {
|
|
4109
4194
|
box-sizing: border-box;
|
|
4110
4195
|
}
|
|
@@ -82,8 +82,9 @@
|
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
onMount(async () => {
|
|
85
|
-
unit = units.find(item => item.code == unitCode) ?? units[0];
|
|
86
85
|
standardUnit = units.find(item => item.ratio == 1);
|
|
86
|
+
unit = units.find(item => item.code == unitCode) ?? standardUnit ?? units[0];
|
|
87
|
+
unitCode = unit.code;
|
|
87
88
|
calculateUnitValue();
|
|
88
89
|
})
|
|
89
90
|
|
|
@@ -110,18 +111,18 @@
|
|
|
110
111
|
<NumberInput bind:this={editor} style="flex: 1 1 auto" {disabled} {placeholder} bind:value={unitValue} precision={unit?.precision}
|
|
111
112
|
{allowNegative}
|
|
112
113
|
max={unit?.max} min={unit?.min} {readonly} onChange={handleValueChange}/>
|
|
113
|
-
<
|
|
114
|
+
<svelte:fragment slot="trailing-icon">
|
|
114
115
|
{#if !disabled && !readonly}
|
|
115
|
-
<i class="option-dropdown
|
|
116
|
+
<i style="font-size: 22px" class="option-dropdown icon_google_arrow_drop_down" aria-hidden="true" on:click={openPopup}></i>
|
|
116
117
|
{/if}
|
|
117
|
-
</
|
|
118
|
+
</svelte:fragment>
|
|
118
119
|
</CommonEditor>
|
|
119
120
|
|
|
120
121
|
{#if showPopup}
|
|
121
122
|
<Popover target={divPanel} autoFit={false} align="right" on:close={()=>{showPopup=false}}>
|
|
122
123
|
<div class="options-popover" style="min-width: 90px; box-sizing: border-box; text-align: center; {mh}" >
|
|
123
124
|
{#each units as op}
|
|
124
|
-
<div style="padding-left: 12px; padding-right: 12px" on:click={handleUnitClick(op)} aria-hidden="true">
|
|
125
|
+
<div class="option-item" style="padding-left: 12px; padding-right: 12px" on:click={handleUnitClick(op)} aria-hidden="true">
|
|
125
126
|
<span>{op.text ?? op.code}</span>
|
|
126
127
|
</div>
|
|
127
128
|
{/each}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ticatec/uniface-element",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.30",
|
|
4
4
|
"description": "uniface web elements",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite dev",
|
|
@@ -75,6 +75,10 @@
|
|
|
75
75
|
"types": "./dist/attachment-files/index.d.ts",
|
|
76
76
|
"import": "./dist/attachment-files/index.js"
|
|
77
77
|
},
|
|
78
|
+
"./Breadcrumbs": {
|
|
79
|
+
"types": "./dist/breadcrumbs/index.d.ts",
|
|
80
|
+
"import": "./dist/breadcrumbs/index.js"
|
|
81
|
+
},
|
|
78
82
|
"./Box": {
|
|
79
83
|
"types": "./dist/box/index.d.ts",
|
|
80
84
|
"svelte": "./dist/box/Box.svelte",
|
|
@@ -321,7 +325,7 @@
|
|
|
321
325
|
"@sveltejs/kit": "^2.0.0",
|
|
322
326
|
"@sveltejs/package": "^2.0.0",
|
|
323
327
|
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
324
|
-
"@ticatec/uniface-icons": "^0.
|
|
328
|
+
"@ticatec/uniface-google-material-icons": "^0.1.1",
|
|
325
329
|
"dayjs": "^1.11.10",
|
|
326
330
|
"publint": "^0.3.2",
|
|
327
331
|
"sass": "^1.57.1",
|