@progressive-development/pd-content 1.0.2 → 1.1.0
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/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/pd-badge-order/DragController.d.ts +41 -0
- package/dist/pd-badge-order/DragController.d.ts.map +1 -0
- package/dist/pd-badge-order/DragController.js +239 -0
- package/dist/pd-badge-order/PdBadgeItem.d.ts +31 -0
- package/dist/pd-badge-order/PdBadgeItem.d.ts.map +1 -0
- package/dist/pd-badge-order/PdBadgeItem.js +320 -0
- package/dist/pd-badge-order/PdBadgeOrder.d.ts +68 -0
- package/dist/pd-badge-order/PdBadgeOrder.d.ts.map +1 -0
- package/dist/pd-badge-order/PdBadgeOrder.js +550 -0
- package/dist/pd-badge-order/flip-animator.d.ts +30 -0
- package/dist/pd-badge-order/flip-animator.d.ts.map +1 -0
- package/dist/pd-badge-order/flip-animator.js +39 -0
- package/dist/pd-badge-order/pd-badge-item.d.ts +3 -0
- package/dist/pd-badge-order/pd-badge-item.d.ts.map +1 -0
- package/dist/pd-badge-order/pd-badge-item.js +8 -0
- package/dist/pd-badge-order/pd-badge-order.d.ts +3 -0
- package/dist/pd-badge-order/pd-badge-order.d.ts.map +1 -0
- package/dist/pd-badge-order/types.d.ts +25 -0
- package/dist/pd-badge-order/types.d.ts.map +1 -0
- package/dist/pd-badge-order/types.js +3 -0
- package/dist/pd-badge-order.d.ts +2 -0
- package/dist/pd-badge-order.js +8 -0
- package/dist/pd-loading-state/PdLoadingState.d.ts +28 -9
- package/dist/pd-loading-state/PdLoadingState.d.ts.map +1 -1
- package/dist/pd-loading-state/PdLoadingState.js +228 -83
- package/dist/pd-loading-state/pd-loading-state.d.ts +1 -1
- package/dist/pd-loading-state/pd-loading-state.d.ts.map +1 -1
- package/dist/pd-loading-state/pd-logo-loader.d.ts +25 -0
- package/dist/pd-loading-state/pd-logo-loader.d.ts.map +1 -0
- package/dist/pd-loading-state/pd-logo-loader.js +63 -0
- package/dist/pd-loading-state/register-pd-logo-loader.d.ts +6 -0
- package/dist/pd-loading-state/register-pd-logo-loader.d.ts.map +1 -0
- package/dist/pd-loading-state/register-pd-logo-loader.js +6 -0
- package/dist/pd-loading-state.js +8 -1
- package/dist/pd-more-info/PdMoreInfo.d.ts +4 -0
- package/dist/pd-more-info/PdMoreInfo.d.ts.map +1 -1
- package/dist/pd-more-info/PdMoreInfo.js +14 -7
- package/dist/pd-notice-box/PdNoticeBox.d.ts +8 -1
- package/dist/pd-notice-box/PdNoticeBox.d.ts.map +1 -1
- package/dist/pd-notice-box/PdNoticeBox.js +40 -1
- package/dist/pd-panel-viewer/PdPanelViewer.d.ts +2 -0
- package/dist/pd-panel-viewer/PdPanelViewer.d.ts.map +1 -1
- package/dist/pd-panel-viewer/PdPanelViewer.js +18 -1
- package/dist/pd-tab/PdTab.d.ts +8 -5
- package/dist/pd-tab/PdTab.d.ts.map +1 -1
- package/dist/pd-tab/PdTab.js +110 -56
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -4
- package/dist/pd-box-view/pd-box-view.stories.d.ts +0 -43
- package/dist/pd-box-view/pd-box-view.stories.d.ts.map +0 -1
- package/dist/pd-code-snippet/pd-code-snippet.stories.d.ts +0 -55
- package/dist/pd-code-snippet/pd-code-snippet.stories.d.ts.map +0 -1
- package/dist/pd-collapse/pd-collapse.stories.d.ts +0 -51
- package/dist/pd-collapse/pd-collapse.stories.d.ts.map +0 -1
- package/dist/pd-collapse-group/pd-collapse-group.stories.d.ts +0 -40
- package/dist/pd-collapse-group/pd-collapse-group.stories.d.ts.map +0 -1
- package/dist/pd-edit-content/pd-edit-content.stories.d.ts +0 -55
- package/dist/pd-edit-content/pd-edit-content.stories.d.ts.map +0 -1
- package/dist/pd-loading-state/pd-loading-state.stories.d.ts +0 -48
- package/dist/pd-loading-state/pd-loading-state.stories.d.ts.map +0 -1
- package/dist/pd-more-info/pd-more-info.stories.d.ts +0 -42
- package/dist/pd-more-info/pd-more-info.stories.d.ts.map +0 -1
- package/dist/pd-notice-box/pd-notice-box.stories.d.ts +0 -58
- package/dist/pd-notice-box/pd-notice-box.stories.d.ts.map +0 -1
- package/dist/pd-panel-viewer/pd-panel-viewer.stories.d.ts +0 -46
- package/dist/pd-panel-viewer/pd-panel-viewer.stories.d.ts.map +0 -1
- package/dist/pd-resize-content/pd-resize-content.stories.d.ts +0 -37
- package/dist/pd-resize-content/pd-resize-content.stories.d.ts.map +0 -1
- package/dist/pd-tab/pd-tab.stories.d.ts +0 -53
- package/dist/pd-tab/pd-tab.stories.d.ts.map +0 -1
- package/dist/pd-timeline/pd-timeline.stories.d.ts +0 -56
- package/dist/pd-timeline/pd-timeline.stories.d.ts.map +0 -1
- package/dist/pd-timeline-wizard/pd-timeline-wizard.stories.d.ts +0 -54
- package/dist/pd-timeline-wizard/pd-timeline-wizard.stories.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-badge-item.d.ts","sourceRoot":"","sources":["../../src/pd-badge-order/pd-badge-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-badge-order.d.ts","sourceRoot":"","sources":["../../src/pd-badge-order/pd-badge-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface PdBadge {
|
|
2
|
+
/** Unique badge ID */
|
|
3
|
+
id: string;
|
|
4
|
+
/** Display title (max TEXT_LIMIT_TITLE characters) */
|
|
5
|
+
title: string;
|
|
6
|
+
/** Optional description below title (max TEXT_LIMIT_DESC characters) */
|
|
7
|
+
description?: string;
|
|
8
|
+
/** Optional color (hex or CSS color name) */
|
|
9
|
+
color?: string;
|
|
10
|
+
/** Optional icon name from pd-icon library */
|
|
11
|
+
icon?: string;
|
|
12
|
+
/** Marks user-created badges (only these are deletable) */
|
|
13
|
+
custom?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface PdBadgeChangeDetail {
|
|
16
|
+
value: string[];
|
|
17
|
+
badges: PdBadge[];
|
|
18
|
+
}
|
|
19
|
+
export interface PdBadgeReorderDetail {
|
|
20
|
+
value: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const TEXT_LIMIT_TITLE = 40;
|
|
23
|
+
export declare const TEXT_LIMIT_DESC = 100;
|
|
24
|
+
export declare const DEFAULT_BADGE_COLOR = "#9E9E9E";
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pd-badge-order/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,mBAAmB,YAAY,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, CSSResultGroup } from 'lit';
|
|
1
|
+
import { LitElement, CSSResultGroup, nothing } from 'lit';
|
|
2
2
|
/**
|
|
3
3
|
* Sub-task item for loading state progress tracking.
|
|
4
4
|
*/
|
|
@@ -13,6 +13,7 @@ export interface LoadingSubTask {
|
|
|
13
13
|
/**
|
|
14
14
|
* Loading state configuration object.
|
|
15
15
|
*/
|
|
16
|
+
export type LoaderStyle = "spinner" | "dots" | "pulse" | "logo";
|
|
16
17
|
export interface LoadingState {
|
|
17
18
|
/** Timestamp when loading started */
|
|
18
19
|
creation?: Date;
|
|
@@ -28,6 +29,8 @@ export interface LoadingState {
|
|
|
28
29
|
loadingTxt?: string;
|
|
29
30
|
/** Optional sub-tasks to display progress */
|
|
30
31
|
subTask?: LoadingSubTask[];
|
|
32
|
+
/** Override loader style for this specific action */
|
|
33
|
+
loaderStyle?: LoaderStyle;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Loading state indicator component with modal and background modes.
|
|
@@ -38,13 +41,13 @@ export interface LoadingState {
|
|
|
38
41
|
* @slot - Default slot (unused, component renders based on loadingState property)
|
|
39
42
|
*
|
|
40
43
|
* @cssprop --pd-popup-modal-bg-rgba - Modal overlay background color. Default: `rgba(175, 193, 210, 0.8)`.
|
|
41
|
-
* @cssprop --pd-loading-state-background-bg - Background mode container color. Default: `
|
|
42
|
-
* @cssprop --pd-loading-state-bg-col - Content box background. Default:
|
|
43
|
-
* @cssprop --pd-loading-state-border-col - Content box border color. Default: `var(--pd-default-col)`.
|
|
44
|
-
* @cssprop --pd-loading-state-completed-col - Completed sub-task icon color. Default: `
|
|
45
|
-
* @cssprop --pd-loading-state-loader-bg - Spinner background color. Default:
|
|
46
|
-
* @cssprop --pd-loading-state-loader-fg - Spinner foreground (animated) color. Default:
|
|
47
|
-
* @cssprop --pd-loading-state-loading-col - In-progress sub-task icon color. Default: `
|
|
44
|
+
* @cssprop --pd-loading-state-background-bg - Background mode container color. Default: `var(--pd-default-bg-col, #fff)`.
|
|
45
|
+
* @cssprop --pd-loading-state-bg-col - Content box background. Default: `var(--pd-default-bg-light-col, #f2f9fa)`.
|
|
46
|
+
* @cssprop --pd-loading-state-border-col - Content box border color. Default: `var(--pd-default-col, #067394)`.
|
|
47
|
+
* @cssprop --pd-loading-state-completed-col - Completed sub-task icon color. Default: `var(--pd-default-success-col, #348b11)`.
|
|
48
|
+
* @cssprop --pd-loading-state-loader-bg - Spinner background color. Default: `var(--pd-default-dark-col, #0a3a48)`.
|
|
49
|
+
* @cssprop --pd-loading-state-loader-fg - Spinner foreground (animated) color. Default: `var(--pd-default-col, #067394)`.
|
|
50
|
+
* @cssprop --pd-loading-state-loading-col - In-progress sub-task icon color. Default: `var(--pd-default-warning-col, #ffbf00)`.
|
|
48
51
|
*/
|
|
49
52
|
export declare class PdLoadingState extends LitElement {
|
|
50
53
|
/**
|
|
@@ -52,8 +55,24 @@ export declare class PdLoadingState extends LitElement {
|
|
|
52
55
|
* Controls visibility, mode (modal/background), and content.
|
|
53
56
|
*/
|
|
54
57
|
loadingState?: LoadingState;
|
|
58
|
+
/**
|
|
59
|
+
* Visual style of the loading indicator.
|
|
60
|
+
* - `spinner`: rotating border spinner (default)
|
|
61
|
+
* - `dots`: three pulsing dots
|
|
62
|
+
* - `pulse`: expanding ring
|
|
63
|
+
* - `logo`: animated PD logo symbol (stroke draw loop)
|
|
64
|
+
*/
|
|
65
|
+
loaderStyle: LoaderStyle;
|
|
66
|
+
/**
|
|
67
|
+
* When true, the content box stays in normal document flow instead of
|
|
68
|
+
* using `position: fixed`. Useful for embedding multiple loaders on one page
|
|
69
|
+
* (e.g. in a grid or side-by-side comparison).
|
|
70
|
+
*/
|
|
71
|
+
inline: boolean;
|
|
55
72
|
static styles: CSSResultGroup;
|
|
56
|
-
render(): import('lit').TemplateResult<1> |
|
|
73
|
+
render(): import('lit').TemplateResult<1> | typeof nothing;
|
|
74
|
+
private _renderLoader;
|
|
75
|
+
private _renderSubTasks;
|
|
57
76
|
private _renderContent;
|
|
58
77
|
}
|
|
59
78
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdLoadingState.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/PdLoadingState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"PdLoadingState.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/PdLoadingState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAKrE,OAAO,0CAA0C,CAAC;AAClD,OAAO,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,qDAAqD;IACrD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C;;;OAGG;IAEH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;;OAMG;IAEH,WAAW,EAAE,WAAW,CAAa;IAErC;;;;OAIG;IAEH,MAAM,UAAS;IAEf,OAAgB,MAAM,EAAE,cAAc,CA0MpC;IAEO,MAAM;IAsBf,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,cAAc;CA+CvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { css, LitElement, html } from 'lit';
|
|
2
|
-
import { property
|
|
1
|
+
import { css, LitElement, nothing, html } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
3
|
import { localized, msg } from '@lit/localize';
|
|
4
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
5
5
|
import '@progressive-development/pd-icon/pd-icon';
|
|
6
|
+
import './register-pd-logo-loader.js';
|
|
6
7
|
|
|
7
8
|
var __defProp = Object.defineProperty;
|
|
8
9
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -15,9 +16,14 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
15
16
|
return result;
|
|
16
17
|
};
|
|
17
18
|
let PdLoadingState = class extends LitElement {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.loaderStyle = "spinner";
|
|
22
|
+
this.inline = false;
|
|
23
|
+
}
|
|
18
24
|
render() {
|
|
19
25
|
if (!this.loadingState) {
|
|
20
|
-
return
|
|
26
|
+
return nothing;
|
|
21
27
|
}
|
|
22
28
|
return this.loadingState.modal ? html`
|
|
23
29
|
<div
|
|
@@ -34,56 +40,107 @@ let PdLoadingState = class extends LitElement {
|
|
|
34
40
|
</div>
|
|
35
41
|
` : this._renderContent();
|
|
36
42
|
}
|
|
43
|
+
_renderLoader() {
|
|
44
|
+
switch (this.loaderStyle) {
|
|
45
|
+
case "dots":
|
|
46
|
+
return html`<div
|
|
47
|
+
class="loader-dots"
|
|
48
|
+
role="progressbar"
|
|
49
|
+
aria-label="${msg("Laden", {
|
|
50
|
+
id: "pdContent.loadingstate.ariaLoading"
|
|
51
|
+
})}"
|
|
52
|
+
>
|
|
53
|
+
<span></span><span></span><span></span>
|
|
54
|
+
</div>`;
|
|
55
|
+
case "pulse":
|
|
56
|
+
return html`<div
|
|
57
|
+
class="loader-pulse"
|
|
58
|
+
role="progressbar"
|
|
59
|
+
aria-label="${msg("Laden", {
|
|
60
|
+
id: "pdContent.loadingstate.ariaLoading"
|
|
61
|
+
})}"
|
|
62
|
+
></div>`;
|
|
63
|
+
case "logo":
|
|
64
|
+
return html`<pd-logo-loader
|
|
65
|
+
role="progressbar"
|
|
66
|
+
aria-label="${msg("Laden", {
|
|
67
|
+
id: "pdContent.loadingstate.ariaLoading"
|
|
68
|
+
})}"
|
|
69
|
+
></pd-logo-loader>`;
|
|
70
|
+
default:
|
|
71
|
+
return html`<div
|
|
72
|
+
class="loader-spinner"
|
|
73
|
+
role="progressbar"
|
|
74
|
+
aria-label="${msg("Laden", {
|
|
75
|
+
id: "pdContent.loadingstate.ariaLoading"
|
|
76
|
+
})}"
|
|
77
|
+
></div>`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
_renderSubTasks(subTasks) {
|
|
81
|
+
const completed = subTasks.filter((t) => t.completed).length;
|
|
82
|
+
return html`
|
|
83
|
+
<div class="sub-tasks">
|
|
84
|
+
<div class="sub-task-header">
|
|
85
|
+
${completed} von ${subTasks.length} Schritten
|
|
86
|
+
</div>
|
|
87
|
+
${subTasks.map(
|
|
88
|
+
(task) => html`
|
|
89
|
+
<div class="sub-task-row">
|
|
90
|
+
${task.completed ? html`<pd-icon
|
|
91
|
+
class="sub-icon completed"
|
|
92
|
+
icon="checkBox"
|
|
93
|
+
activeIcon
|
|
94
|
+
></pd-icon>` : html`<pd-icon
|
|
95
|
+
class="sub-icon loading"
|
|
96
|
+
icon="syncIcon"
|
|
97
|
+
activeIcon
|
|
98
|
+
></pd-icon>`}
|
|
99
|
+
<span>${task.loadingTxt}</span>
|
|
100
|
+
</div>
|
|
101
|
+
`
|
|
102
|
+
)}
|
|
103
|
+
</div>
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
37
106
|
_renderContent() {
|
|
38
107
|
if (!this.loadingState) {
|
|
39
|
-
return
|
|
108
|
+
return nothing;
|
|
109
|
+
}
|
|
110
|
+
if (this.loadingState.smallBackground) {
|
|
111
|
+
return html`
|
|
112
|
+
<div class="background-content" role="status" aria-live="polite">
|
|
113
|
+
<div
|
|
114
|
+
class="background-loader"
|
|
115
|
+
role="progressbar"
|
|
116
|
+
aria-label="${msg("Laden", {
|
|
117
|
+
id: "pdContent.loadingstate.ariaLoading"
|
|
118
|
+
})}"
|
|
119
|
+
></div>
|
|
120
|
+
<span>
|
|
121
|
+
${this.loadingState.loadingTxt || msg("Daten werden synchronisiert", {
|
|
122
|
+
id: "pdContent.loadingstate.syncState"
|
|
123
|
+
})}
|
|
124
|
+
</span>
|
|
125
|
+
</div>
|
|
126
|
+
`;
|
|
40
127
|
}
|
|
41
128
|
return html`
|
|
42
129
|
<div
|
|
43
130
|
class="${classMap({
|
|
44
|
-
content:
|
|
45
|
-
"no-modal-content": this.loadingState.modal !== true && this.
|
|
46
|
-
"background-content": this.loadingState.smallBackground === true
|
|
131
|
+
content: true,
|
|
132
|
+
"no-modal-content": this.loadingState.modal !== true && !this.inline
|
|
47
133
|
})}"
|
|
48
134
|
role="status"
|
|
49
135
|
aria-live="polite"
|
|
50
136
|
>
|
|
51
|
-
|
|
52
|
-
class="${this.loadingState.smallBackground ? "background-loader" : "loader"}"
|
|
53
|
-
role="progressbar"
|
|
54
|
-
aria-label="${msg("Laden", {
|
|
55
|
-
id: "pdContent.loadingstate.ariaLoading"
|
|
56
|
-
})}"
|
|
57
|
-
></div>
|
|
137
|
+
${this._renderLoader()}
|
|
58
138
|
<p>
|
|
59
|
-
${this.loadingState.loadingTxt || (
|
|
60
|
-
id: "pdContent.loadingstate.syncState"
|
|
61
|
-
}) : msg("Bitte warten, Daten werden geladen", {
|
|
139
|
+
${this.loadingState.loadingTxt || msg("Bitte warten, Daten werden geladen", {
|
|
62
140
|
id: "pdContent.loadingstate.pleaseWait"
|
|
63
|
-
})
|
|
141
|
+
})}
|
|
64
142
|
</p>
|
|
65
|
-
${this.loadingState.subTask && this.loadingState.subTask.length > 0 ?
|
|
66
|
-
<ul class="sub-ul">
|
|
67
|
-
${this.loadingState.subTask.map(
|
|
68
|
-
(task) => html`
|
|
69
|
-
<li>
|
|
70
|
-
<div class="sub-row">
|
|
71
|
-
${task.loadingTxt}
|
|
72
|
-
${task.completed ? html`<pd-icon
|
|
73
|
-
class="sub-icon completed"
|
|
74
|
-
icon="checkBox"
|
|
75
|
-
activeIcon
|
|
76
|
-
></pd-icon>` : html`<pd-icon
|
|
77
|
-
class="sub-icon loading"
|
|
78
|
-
icon="syncIcon"
|
|
79
|
-
activeIcon
|
|
80
|
-
></pd-icon>`}
|
|
81
|
-
</div>
|
|
82
|
-
</li>
|
|
83
|
-
`
|
|
84
|
-
)}
|
|
85
|
-
</ul>
|
|
86
|
-
` : ""}
|
|
143
|
+
${this.loadingState.subTask && this.loadingState.subTask.length > 0 ? this._renderSubTasks(this.loadingState.subTask) : nothing}
|
|
87
144
|
</div>
|
|
88
145
|
`;
|
|
89
146
|
}
|
|
@@ -124,80 +181,139 @@ PdLoadingState.styles = [
|
|
|
124
181
|
|
|
125
182
|
/* Main content box */
|
|
126
183
|
.content {
|
|
127
|
-
padding:
|
|
184
|
+
padding: var(--pd-spacing-lg, 2rem) var(--pd-spacing-lg, 2rem);
|
|
128
185
|
text-align: center;
|
|
129
|
-
background-color: var(
|
|
130
|
-
|
|
186
|
+
background-color: var(
|
|
187
|
+
--pd-loading-state-bg-col,
|
|
188
|
+
var(--pd-default-bg-light-col, #f2f9fa)
|
|
189
|
+
);
|
|
190
|
+
border: var(--pd-border-width, 1px) solid
|
|
131
191
|
var(--pd-loading-state-border-col, var(--pd-default-col, #067394));
|
|
192
|
+
border-radius: var(--pd-radius-lg, 8px);
|
|
193
|
+
box-shadow: var(--pd-shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.15));
|
|
194
|
+
min-width: 280px;
|
|
195
|
+
max-width: 420px;
|
|
132
196
|
z-index: 101;
|
|
133
197
|
}
|
|
134
198
|
|
|
135
|
-
/* Background mode (bottom-right
|
|
199
|
+
/* Background mode (bottom-right pill/toast) */
|
|
136
200
|
.background-content {
|
|
137
201
|
position: fixed;
|
|
138
|
-
right:
|
|
139
|
-
bottom:
|
|
140
|
-
|
|
141
|
-
padding: 1em;
|
|
202
|
+
right: var(--pd-spacing-md, 1rem);
|
|
203
|
+
bottom: var(--pd-spacing-md, 1rem);
|
|
204
|
+
padding: var(--pd-spacing-sm, 0.5rem) var(--pd-spacing-md, 1rem);
|
|
142
205
|
z-index: 600;
|
|
143
|
-
|
|
144
206
|
display: flex;
|
|
145
|
-
gap: 0.
|
|
207
|
+
gap: var(--pd-spacing-sm, 0.5rem);
|
|
146
208
|
align-items: center;
|
|
147
|
-
|
|
148
|
-
|
|
209
|
+
background: var(
|
|
210
|
+
--pd-loading-state-background-bg,
|
|
211
|
+
var(--pd-default-bg-col, #fff)
|
|
212
|
+
);
|
|
213
|
+
border-radius: var(--pd-radius-lg, 8px);
|
|
214
|
+
box-shadow: var(--pd-shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.15));
|
|
215
|
+
font-size: 0.8125rem;
|
|
216
|
+
color: var(--pd-default-font-content-col, #353738);
|
|
149
217
|
}
|
|
150
218
|
|
|
151
|
-
/*
|
|
152
|
-
.loader {
|
|
153
|
-
border:
|
|
154
|
-
|
|
219
|
+
/* ====== Spinner loader ====== */
|
|
220
|
+
.loader-spinner {
|
|
221
|
+
border: 4px solid
|
|
222
|
+
var(--pd-loading-state-loader-bg, var(--pd-default-dark-col, #0a3a48));
|
|
223
|
+
border-top: 4px solid
|
|
224
|
+
var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
|
|
155
225
|
border-radius: 50%;
|
|
156
|
-
width:
|
|
157
|
-
height:
|
|
226
|
+
width: 40px;
|
|
227
|
+
height: 40px;
|
|
158
228
|
animation: spin 2s linear infinite;
|
|
159
|
-
|
|
160
229
|
margin-left: auto;
|
|
161
230
|
margin-right: auto;
|
|
162
231
|
}
|
|
163
232
|
|
|
164
|
-
/*
|
|
165
|
-
.
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
233
|
+
/* ====== Dots loader ====== */
|
|
234
|
+
.loader-dots {
|
|
235
|
+
display: flex;
|
|
236
|
+
gap: 8px;
|
|
237
|
+
justify-content: center;
|
|
238
|
+
}
|
|
239
|
+
.loader-dots span {
|
|
169
240
|
width: 10px;
|
|
170
241
|
height: 10px;
|
|
171
|
-
|
|
242
|
+
border-radius: 50%;
|
|
243
|
+
background: var(
|
|
244
|
+
--pd-loading-state-loader-fg,
|
|
245
|
+
var(--pd-default-col, #067394)
|
|
246
|
+
);
|
|
247
|
+
animation: dot-pulse 1.4s ease-in-out infinite;
|
|
248
|
+
}
|
|
249
|
+
.loader-dots span:nth-child(2) {
|
|
250
|
+
animation-delay: 0.2s;
|
|
251
|
+
}
|
|
252
|
+
.loader-dots span:nth-child(3) {
|
|
253
|
+
animation-delay: 0.4s;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* ====== Pulse loader ====== */
|
|
257
|
+
.loader-pulse {
|
|
258
|
+
width: 40px;
|
|
259
|
+
height: 40px;
|
|
260
|
+
border-radius: 50%;
|
|
261
|
+
margin: 0 auto;
|
|
262
|
+
border: 3px solid
|
|
263
|
+
var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
|
|
264
|
+
animation: pulse-ring 1.5s ease-in-out infinite;
|
|
172
265
|
}
|
|
173
266
|
|
|
174
|
-
/*
|
|
175
|
-
.
|
|
176
|
-
|
|
267
|
+
/* ====== Background spinner (small) ====== */
|
|
268
|
+
.background-loader {
|
|
269
|
+
border: 2px solid
|
|
270
|
+
var(--pd-loading-state-loader-bg, var(--pd-default-dark-col, #0a3a48));
|
|
271
|
+
border-top: 2px solid
|
|
272
|
+
var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
|
|
273
|
+
border-radius: 50%;
|
|
274
|
+
width: 16px;
|
|
275
|
+
height: 16px;
|
|
276
|
+
animation: spin 2s linear infinite;
|
|
277
|
+
flex-shrink: 0;
|
|
177
278
|
}
|
|
178
279
|
|
|
179
|
-
|
|
280
|
+
/* ====== Sub-tasks ====== */
|
|
281
|
+
.sub-tasks {
|
|
282
|
+
margin-top: var(--pd-spacing-md, 1rem);
|
|
283
|
+
text-align: left;
|
|
284
|
+
}
|
|
285
|
+
.sub-task-header {
|
|
286
|
+
font-size: 0.75rem;
|
|
287
|
+
color: var(--pd-default-font-muted-col, #6b7280);
|
|
288
|
+
margin-bottom: var(--pd-spacing-sm, 0.5rem);
|
|
289
|
+
}
|
|
290
|
+
.sub-task-row {
|
|
180
291
|
display: flex;
|
|
181
292
|
align-items: center;
|
|
182
|
-
|
|
183
|
-
padding
|
|
293
|
+
gap: var(--pd-spacing-sm, 0.5rem);
|
|
294
|
+
padding: var(--pd-spacing-xs, 0.25rem) 0;
|
|
184
295
|
}
|
|
185
|
-
|
|
186
|
-
.sub-icon {
|
|
296
|
+
.sub-task-row .sub-icon {
|
|
187
297
|
--pd-icon-size: 1rem;
|
|
188
298
|
padding: 0;
|
|
189
|
-
|
|
190
|
-
|
|
299
|
+
margin: 0;
|
|
300
|
+
flex-shrink: 0;
|
|
191
301
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
302
|
+
.sub-task-row .completed {
|
|
303
|
+
--pd-icon-col-active: var(
|
|
304
|
+
--pd-loading-state-completed-col,
|
|
305
|
+
var(--pd-default-success-col, #348b11)
|
|
306
|
+
);
|
|
195
307
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
308
|
+
.sub-task-row .loading {
|
|
309
|
+
--pd-icon-col-active: var(
|
|
310
|
+
--pd-loading-state-loading-col,
|
|
311
|
+
var(--pd-default-warning-col, #ffbf00)
|
|
312
|
+
);
|
|
313
|
+
animation: spin 2s linear infinite;
|
|
199
314
|
}
|
|
200
315
|
|
|
316
|
+
/* ====== Keyframes ====== */
|
|
201
317
|
@keyframes spin {
|
|
202
318
|
0% {
|
|
203
319
|
transform: rotate(0deg);
|
|
@@ -206,14 +322,43 @@ PdLoadingState.styles = [
|
|
|
206
322
|
transform: rotate(360deg);
|
|
207
323
|
}
|
|
208
324
|
}
|
|
325
|
+
|
|
326
|
+
@keyframes dot-pulse {
|
|
327
|
+
0%,
|
|
328
|
+
80%,
|
|
329
|
+
100% {
|
|
330
|
+
opacity: 0.3;
|
|
331
|
+
transform: scale(0.8);
|
|
332
|
+
}
|
|
333
|
+
40% {
|
|
334
|
+
opacity: 1;
|
|
335
|
+
transform: scale(1);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
@keyframes pulse-ring {
|
|
340
|
+
0% {
|
|
341
|
+
transform: scale(0.8);
|
|
342
|
+
opacity: 1;
|
|
343
|
+
}
|
|
344
|
+
100% {
|
|
345
|
+
transform: scale(1.4);
|
|
346
|
+
opacity: 0;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
209
349
|
`
|
|
210
350
|
];
|
|
211
351
|
__decorateClass([
|
|
212
352
|
property({ type: Object })
|
|
213
353
|
], PdLoadingState.prototype, "loadingState", 2);
|
|
354
|
+
__decorateClass([
|
|
355
|
+
property({ type: String, reflect: true })
|
|
356
|
+
], PdLoadingState.prototype, "loaderStyle", 2);
|
|
357
|
+
__decorateClass([
|
|
358
|
+
property({ type: Boolean, reflect: true })
|
|
359
|
+
], PdLoadingState.prototype, "inline", 2);
|
|
214
360
|
PdLoadingState = __decorateClass([
|
|
215
|
-
localized()
|
|
216
|
-
customElement("pd-loading-state")
|
|
361
|
+
localized()
|
|
217
362
|
], PdLoadingState);
|
|
218
363
|
|
|
219
364
|
export { PdLoadingState };
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* @license
|
|
3
3
|
* Copyright (c) 2021 PD Progressive Development UG. All rights reserved.
|
|
4
4
|
*/
|
|
5
|
-
export { PdLoadingState, type LoadingState, type LoadingSubTask, } from './PdLoadingState.js';
|
|
5
|
+
export { PdLoadingState, type LoaderStyle, type LoadingState, type LoadingSubTask, } from './PdLoadingState.js';
|
|
6
6
|
//# sourceMappingURL=pd-loading-state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-loading-state.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-loading-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"pd-loading-state.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-loading-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EACL,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Animated PD logo symbol used as a loading indicator.
|
|
4
|
+
*
|
|
5
|
+
* Renders only the intertwined P/D symbol (no company text) and loops
|
|
6
|
+
* the stroke-draw animation continuously: lines draw forward, then
|
|
7
|
+
* erase backward, creating a smooth "breathing" loading effect.
|
|
8
|
+
*
|
|
9
|
+
* @tagname pd-logo-loader
|
|
10
|
+
* @cssprop --pd-logo-loader-col - Stroke color. Default: `var(--pd-loading-state-loader-fg)`.
|
|
11
|
+
* @cssprop --pd-logo-loader-size - Width and height. Default: `56px`.
|
|
12
|
+
* @cssprop --pd-logo-loader-stroke-width - SVG stroke width. Default: `5`.
|
|
13
|
+
* @cssprop --pd-logo-loader-duration - Full draw+erase cycle. Default: `2.5s`.
|
|
14
|
+
*/
|
|
15
|
+
export declare class PdLogoLoader extends LitElement {
|
|
16
|
+
static styles: import('lit').CSSResult;
|
|
17
|
+
firstUpdated(): void;
|
|
18
|
+
render(): import('lit').TemplateResult<2>;
|
|
19
|
+
}
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
"pd-logo-loader": PdLogoLoader;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=pd-logo-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-logo-loader.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-logo-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAY,MAAM,KAAK,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,0BAsCpB;IAEO,YAAY,IAAI,IAAI;IAQpB,MAAM;CAShB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { LitElement, css, svg } from 'lit';
|
|
2
|
+
|
|
3
|
+
class PdLogoLoader extends LitElement {
|
|
4
|
+
static {
|
|
5
|
+
this.styles = css`
|
|
6
|
+
:host {
|
|
7
|
+
display: block;
|
|
8
|
+
width: var(--pd-logo-loader-size, 56px);
|
|
9
|
+
height: var(--pd-logo-loader-size, 56px);
|
|
10
|
+
margin: 0 auto;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
svg {
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.pd-path {
|
|
19
|
+
stroke: var(
|
|
20
|
+
--pd-logo-loader-col,
|
|
21
|
+
var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394))
|
|
22
|
+
);
|
|
23
|
+
stroke-width: var(--pd-logo-loader-stroke-width, 5);
|
|
24
|
+
stroke-linecap: round;
|
|
25
|
+
stroke-linejoin: round;
|
|
26
|
+
stroke-miterlimit: 10;
|
|
27
|
+
fill: none;
|
|
28
|
+
stroke-dasharray: var(--_path-len);
|
|
29
|
+
stroke-dashoffset: 0;
|
|
30
|
+
animation: logo-draw var(--pd-logo-loader-duration, 2.5s) ease-in-out
|
|
31
|
+
infinite alternate;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.pd-path-b {
|
|
35
|
+
animation-delay: 0.15s;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@keyframes logo-draw {
|
|
39
|
+
to {
|
|
40
|
+
stroke-dashoffset: var(--_path-len);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
firstUpdated() {
|
|
46
|
+
const path = this.shadowRoot?.querySelector(".pd-path");
|
|
47
|
+
if (path) {
|
|
48
|
+
const len = path.getTotalLength();
|
|
49
|
+
this.style.setProperty("--_path-len", `${len}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
render() {
|
|
53
|
+
return svg`<svg viewBox="0 0 166.68 212.6" aria-hidden="true">
|
|
54
|
+
<path class="pd-path" d="M123.9,80.5l3.6,0.1c6.7,0,12.2-5.5,12.2-12.2s-5.5-12.2-12.2-12.2c-6.7,0-12.2,5.5-12.2,12.2v75.8
|
|
55
|
+
c0,15-12.2,27.2-27.2,27.2s-27.2-12.2-27.2-27.2c0-14.1,10.7-25.7,24.4-27.1V74.7c0-4.4-3.5-8-7.9-8c-4.4,0-8,3.6-8,8
|
|
56
|
+
c0,4.4,3.6,8,8,8"/>
|
|
57
|
+
<path class="pd-path pd-path-b" d="M91.7,132.1l-3.6-0.1c-6.7,0-12.2,5.5-12.2,12.2c0,6.7,5.5,12.2,12.2,12.2s12.2-5.5,12.2-12.2V68.4
|
|
58
|
+
c0-15,12.2-27.2,27.2-27.2s27.2,12.2,27.2,27.2c0,14.1-10.8,25.7-24.5,27.1v42.1c0,4.4,3.6,8,8,8c4.4,0,8-3.6,8-8s-3.6-8-8-8"/>
|
|
59
|
+
</svg>`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { PdLogoLoader };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-pd-logo-loader.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/register-pd-logo-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|