@fluid-topics/ft-reader-metadata 0.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/build/ft-reader-metadata.css.d.ts +3 -0
- package/build/ft-reader-metadata.css.js +9 -0
- package/build/ft-reader-metadata.d.ts +18 -0
- package/build/ft-reader-metadata.js +86 -0
- package/build/ft-reader-metadata.light.js +471 -0
- package/build/ft-reader-metadata.min.js +576 -0
- package/build/ft-reader-metadata.properties.d.ts +6 -0
- package/build/ft-reader-metadata.properties.js +2 -0
- package/build/index.d.ts +4 -0
- package/build/index.js +7 -0
- package/package.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Metadata for integrated reader
|
|
2
|
+
|
|
3
|
+
## Install
|
|
4
|
+
|
|
5
|
+
```shell
|
|
6
|
+
npm install @fluid-topics/ft-reader-metadata
|
|
7
|
+
yarn add @fluid-topics/ft-reader-metadata
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { html } from "lit"
|
|
14
|
+
import "@fluid-topics/ft-reader-metadata"
|
|
15
|
+
|
|
16
|
+
function render() {
|
|
17
|
+
return html` <ft-reader-metadata key="version"></ft-reader-metadata> `
|
|
18
|
+
}
|
|
19
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ElementDefinitionsMap } from "@fluid-topics/ft-wc-utils";
|
|
2
|
+
import { FtReaderMetadataProperties } from "./ft-reader-metadata.properties";
|
|
3
|
+
import { FtReaderComponent } from "@fluid-topics/ft-reader-context/build/registration";
|
|
4
|
+
export declare class FtReaderMetadata extends FtReaderComponent implements FtReaderMetadataProperties {
|
|
5
|
+
static elementDefinitions: ElementDefinitionsMap;
|
|
6
|
+
static styles: import("lit").CSSResult;
|
|
7
|
+
key?: string;
|
|
8
|
+
maxLength?: number;
|
|
9
|
+
keepVisible: boolean;
|
|
10
|
+
private map?;
|
|
11
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
12
|
+
private renderContent;
|
|
13
|
+
private hideIfEmpty;
|
|
14
|
+
private get metadata();
|
|
15
|
+
private get valueText();
|
|
16
|
+
private get tooltipText();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ft-reader-metadata.d.ts.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from "lit";
|
|
8
|
+
import { property } from "lit/decorators.js";
|
|
9
|
+
import { redux } from "@fluid-topics/ft-wc-utils";
|
|
10
|
+
import { styles } from "./ft-reader-metadata.css";
|
|
11
|
+
import { FtReaderComponent } from "@fluid-topics/ft-reader-context/build/registration";
|
|
12
|
+
import { FtTooltip } from "@fluid-topics/ft-tooltip";
|
|
13
|
+
import { FtChip } from "@fluid-topics/ft-chip";
|
|
14
|
+
export class FtReaderMetadata extends FtReaderComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.keepVisible = false;
|
|
18
|
+
}
|
|
19
|
+
render() {
|
|
20
|
+
return html `
|
|
21
|
+
<ft-tooltip text="${this.tooltipText}">
|
|
22
|
+
<ft-chip>
|
|
23
|
+
${this.renderContent()}
|
|
24
|
+
</ft-chip>
|
|
25
|
+
</ft-tooltip>
|
|
26
|
+
${this.hideIfEmpty()}
|
|
27
|
+
`;
|
|
28
|
+
}
|
|
29
|
+
renderContent() {
|
|
30
|
+
if (this.metadata) {
|
|
31
|
+
return html `${this.valueText}`;
|
|
32
|
+
}
|
|
33
|
+
if (this.keepVisible) {
|
|
34
|
+
if (this.key) {
|
|
35
|
+
return html `no value for ${this.key}`;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return html `no metadata selected`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return nothing;
|
|
42
|
+
}
|
|
43
|
+
hideIfEmpty() {
|
|
44
|
+
console.log("HIDEIFEMPTY", this.key, this.metadata, this.map);
|
|
45
|
+
if (!this.keepVisible && !this.metadata) {
|
|
46
|
+
return html `
|
|
47
|
+
<style>
|
|
48
|
+
:host {
|
|
49
|
+
display: none !important;
|
|
50
|
+
}
|
|
51
|
+
</style>
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
return nothing;
|
|
55
|
+
}
|
|
56
|
+
get metadata() {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
return (_b = (_a = this.map) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.find(m => m.key == this.key);
|
|
59
|
+
}
|
|
60
|
+
get valueText() {
|
|
61
|
+
var _a;
|
|
62
|
+
let value = ((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.values.join(", ")) || "";
|
|
63
|
+
return this.maxLength ? (value === null || value === void 0 ? void 0 : value.substring(0, this.maxLength)) + "..." : value;
|
|
64
|
+
}
|
|
65
|
+
get tooltipText() {
|
|
66
|
+
return this.metadata ? `${this.key}: ${this.valueText}` : "";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
FtReaderMetadata.elementDefinitions = {
|
|
70
|
+
"ft-tooltip": FtTooltip,
|
|
71
|
+
"ft-chip": FtChip,
|
|
72
|
+
};
|
|
73
|
+
FtReaderMetadata.styles = styles;
|
|
74
|
+
__decorate([
|
|
75
|
+
property()
|
|
76
|
+
], FtReaderMetadata.prototype, "key", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
property({ attribute: "max-length", type: Number })
|
|
79
|
+
], FtReaderMetadata.prototype, "maxLength", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
property({ attribute: false })
|
|
82
|
+
], FtReaderMetadata.prototype, "keepVisible", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
redux()
|
|
85
|
+
], FtReaderMetadata.prototype, "map", void 0);
|
|
86
|
+
//# sourceMappingURL=ft-reader-metadata.js.map
|