@quandis/qbo4.ui-bridge 4.0.1-CI-20240919-212538

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/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@quandis/qbo4.ui-bridge",
3
+ "author": "Quandis, Inc.",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "version": "4.0.1-CI-20240919-212538",
7
+ "workspaces": [
8
+ "code"
9
+ ],
10
+ "main": "src/Program.js",
11
+ "private": false,
12
+ "scripts": {
13
+ "build": "npm run update && npm run sass && tsc && npm run packdev && npm run packprod && del *.tgz && npm pack && ren *.tgz qbo4.ui-bridge.tgz",
14
+ "update": "npm install ../../src/qbo4.ui.Web/qbo4.ui.tgz --force",
15
+ "clean": "rd \"node_modules/@quandis/qbo4.ui\" -force -recurse -ErrorAction SilentlyContinue",
16
+ "packdev": "webpack --config webpack.config.dev.js --no-color",
17
+ "packprod": "webpack --config webpack.config.prod.js --no-color",
18
+ "sass": "sass scss/:wwwroot/css && node cssshake.js"
19
+ },
20
+ "keywords": [
21
+ "qbo"
22
+ ],
23
+ "files": [
24
+ "wwwroot/js/",
25
+ "src/"
26
+ ],
27
+ "dependencies": {
28
+ "@codemirror/commands": "^6.5.0",
29
+ "@codemirror/lang-html": "^6.4.9",
30
+ "@joint/core": "^4.0.4",
31
+ "@quandis/qbo4.logging": "^4.0.1-CI-20240528-220411",
32
+ "@quandis/qbo4.ui": "file:../qbo4.ui.Web/qbo4.ui.tgz",
33
+ "@quandis/qbo4.ui-bridge": "file:qbo4.ui-bridge.tgz",
34
+ "bootstrap": "^5.3.3",
35
+ "bootstrap-icons": "^1.11.3",
36
+ "codemirror": "6.0.1",
37
+ "lit": "^3.1.3",
38
+ "reflect-metadata": "^0.2.2",
39
+ "tsyringe": "^4.8.0",
40
+ "zero-md": "^3.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@esm-bundle/chai": "^4.3.4",
44
+ "@fullhuman/postcss-purgecss": "^6.0.0",
45
+ "autoprefixer": "^10.4.19",
46
+ "clean-css": "^5.3.3",
47
+ "eslint": "^9.7.0",
48
+ "glob": "^10.4.1",
49
+ "html-webpack-plugin": "^5.6.0",
50
+ "mini-css-extract-plugin": "^2.9.0",
51
+ "postcss": "^8.4.38",
52
+ "postcss-loader": "^8.1.1",
53
+ "sass": "^1.77.4",
54
+ "typescript": "^5.4.5",
55
+ "webpack": "^5.91.0",
56
+ "webpack-cli": "^5.1.4",
57
+ "webpack-merge": "^5.10.0"
58
+ }
59
+ }
@@ -0,0 +1,9 @@
1
+ import 'reflect-metadata';
2
+ export { services } from '@quandis/qbo4.configuration';
3
+ export * from './qbo-badge.js';
4
+ export * from './qbo-contact.js';
5
+ export * from './qbo-contact-name.js';
6
+ export * from './qbo-mainmenu.js';
7
+ export * from './qbo-sidebar.js';
8
+ export * from './qbo-ssn.js';
9
+ export * from '@quandis/qbo4.ui';
package/src/Program.js ADDED
@@ -0,0 +1,9 @@
1
+ import 'reflect-metadata';
2
+ export { services } from '@quandis/qbo4.configuration';
3
+ export * from './qbo-badge.js';
4
+ export * from './qbo-contact.js';
5
+ export * from './qbo-contact-name.js';
6
+ export * from './qbo-mainmenu.js';
7
+ export * from './qbo-sidebar.js';
8
+ export * from './qbo-ssn.js';
9
+ export * from '@quandis/qbo4.ui';
package/src/Program.ts ADDED
@@ -0,0 +1,10 @@
1
+ import 'reflect-metadata';
2
+ export { services } from '@quandis/qbo4.configuration';
3
+ export * from './qbo-badge.js';
4
+ export * from './qbo-contact.js';
5
+ export * from './qbo-contact-name.js';
6
+ export * from './qbo-mainmenu.js';
7
+ export * from './qbo-sidebar.js'
8
+ export * from './qbo-ssn.js';
9
+ export * from '@quandis/qbo4.ui';
10
+
@@ -0,0 +1,32 @@
1
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
2
+ /**
3
+ * Renders a <select> element with options populated from a JSON array.
4
+ *
5
+ * @remarks
6
+ * This element is a thin wrapper around {@link QboFetch} that renders a <select> element with options populated from a JSON array.
7
+ */
8
+ export declare class QboBadge extends QboFetch {
9
+ loading: boolean;
10
+ /**
11
+ * @description A CSS selector that identifies the parent element containing the badges.
12
+ */
13
+ target: null;
14
+ values: string[];
15
+ targetElement: Element | null;
16
+ /**
17
+ * @description A CSS selector that identifies where to render the badge elements.
18
+ * These elements should have a data-badge attribute that contributes to the API call.
19
+ * @example <div data-badge="123"/>
20
+ */
21
+ selector: string;
22
+ connectedCallback(): Promise<void>;
23
+ disconnectedCallback(): void;
24
+ getPayload(headers: {
25
+ [key: string]: string;
26
+ }): void;
27
+ getIds(): void;
28
+ fetchData(headers: {
29
+ [key: string]: string;
30
+ }, payload: Object | null): Promise<void>;
31
+ render(): void;
32
+ }
@@ -0,0 +1,93 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { customElement, property } from 'lit/decorators.js';
11
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
12
+ /**
13
+ * Renders a <select> element with options populated from a JSON array.
14
+ *
15
+ * @remarks
16
+ * This element is a thin wrapper around {@link QboFetch} that renders a <select> element with options populated from a JSON array.
17
+ */
18
+ let QboBadge = class QboBadge extends QboFetch {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.loading = false;
22
+ /**
23
+ * @description A CSS selector that identifies the parent element containing the badges.
24
+ */
25
+ this.target = null;
26
+ this.values = [];
27
+ this.targetElement = null;
28
+ /**
29
+ * @description A CSS selector that identifies where to render the badge elements.
30
+ * These elements should have a data-badge attribute that contributes to the API call.
31
+ * @example <div data-badge="123"/>
32
+ */
33
+ this.selector = '*[data-badge]';
34
+ }
35
+ async connectedCallback() {
36
+ this.targetElement = (this.target != null) ? this.closest(this.target) : this;
37
+ if (this.targetElement == null)
38
+ throw new Error(`Could not find target element ${this.target}`);
39
+ this.targetElement.addEventListener('qbo-updated', this.getIds.bind(this));
40
+ super.connectedCallback();
41
+ }
42
+ disconnectedCallback() {
43
+ this.targetElement?.removeEventListener('qbo-updated', this.getIds);
44
+ }
45
+ getPayload(headers) {
46
+ const payload = super.getPayload(headers) ?? {};
47
+ payload["idList"] = this.values.join(",");
48
+ }
49
+ ;
50
+ getIds() {
51
+ console.log('reacting to target qbo-updated');
52
+ if (this.targetElement == null)
53
+ return;
54
+ const values = [];
55
+ const elements = this.targetElement.querySelectorAll(this.selector);
56
+ elements.forEach((element) => {
57
+ const dataBadgeValue = element.getAttribute('data-badge');
58
+ if (dataBadgeValue !== null) {
59
+ values.push(dataBadgeValue);
60
+ }
61
+ });
62
+ this.values = values;
63
+ }
64
+ async fetchData(headers, payload) {
65
+ super.fetchData(headers, payload);
66
+ }
67
+ render() {
68
+ const elements = this.targetElement.querySelectorAll(this.selector);
69
+ elements.forEach((element) => {
70
+ element.innerHTML = element.getAttribute('data-badge') ?? '';
71
+ });
72
+ }
73
+ };
74
+ __decorate([
75
+ property({ type: Boolean }),
76
+ __metadata("design:type", Object)
77
+ ], QboBadge.prototype, "loading", void 0);
78
+ __decorate([
79
+ property(),
80
+ __metadata("design:type", Object)
81
+ ], QboBadge.prototype, "target", void 0);
82
+ __decorate([
83
+ property(),
84
+ __metadata("design:type", Array)
85
+ ], QboBadge.prototype, "values", void 0);
86
+ __decorate([
87
+ property(),
88
+ __metadata("design:type", Object)
89
+ ], QboBadge.prototype, "selector", void 0);
90
+ QboBadge = __decorate([
91
+ customElement('qbo-badge')
92
+ ], QboBadge);
93
+ export { QboBadge };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qbo-select.js","sourceRoot":"","sources":["qbo-select.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;IAKI;AAEG,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,QAAQ;IAAhC;;QAGH,YAAO,GAAG,KAAK,CAAC;QAGhB,eAAU,GAAkB,IAAI,CAAC;QAGjC,gBAAW,GAAkB,IAAI,CAAC;QAGlC,iBAAY,GAAG,IAAI,CAAC;QAGpB,aAAQ,GAAG,IAAI,CAAC;QAGhB,YAAO,GAA4C,EAAE,CAAC;QAGtD,iBAAY,GAAG,IAAI,CAAC;IA+BxB,CAAC;aA7BU,WAAM,GAAG;QACZ,GAAG,CAAA;;;SAGF;KACJ,AALY,CAKX;IAEF,KAAK,CAAC,iBAAiB;QACnB,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC;QACrC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM;QACF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC1C,OAAO,IAAI,CAAA,mBAAmB,CAAC;QAEnC,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;QAExE,OAAO,IAAI,CAAA;gCACa,IAAI,CAAC,QAAQ;sBACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA,kBAAkB,MAAM,CAAC,IAAI,CAAC,WAAY,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,WAAY,CAAC,KAAK,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC;0BAC9K,CAAC;IACvB,CAAC;;AAhDD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACM;AAGjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACO;AAGlC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACP;AAGpB;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;2CACrB;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;0CAC4B;AAGtD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACR;AArBX,SAAS;IADrB,aAAa,CAAC,YAAY,CAAC;GACf,SAAS,CAoDrB"}
@@ -0,0 +1,79 @@
1
+ import { html, css } from 'lit';
2
+ import { customElement, property } from 'lit/decorators.js';
3
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
4
+
5
+ /**
6
+ * Renders a <select> element with options populated from a JSON array.
7
+ *
8
+ * @remarks
9
+ * This element is a thin wrapper around {@link QboFetch} that renders a <select> element with options populated from a JSON array.
10
+ */
11
+ @customElement('qbo-badge')
12
+ export class QboBadge extends QboFetch
13
+ {
14
+ @property({ type: Boolean })
15
+ loading = false;
16
+
17
+ /**
18
+ * @description A CSS selector that identifies the parent element containing the badges.
19
+ */
20
+ @property()
21
+ target = null;
22
+
23
+ @property()
24
+ values: string[] = [];
25
+
26
+ targetElement: Element | null = null;
27
+
28
+ /**
29
+ * @description A CSS selector that identifies where to render the badge elements.
30
+ * These elements should have a data-badge attribute that contributes to the API call.
31
+ * @example <div data-badge="123"/>
32
+ */
33
+ @property()
34
+ selector = '*[data-badge]';
35
+
36
+ async connectedCallback() {
37
+ this.targetElement = (this.target != null) ? this.closest(this.target) : this;
38
+ if (this.targetElement == null)
39
+ throw new Error(`Could not find target element ${this.target}`);
40
+ this.targetElement.addEventListener('qbo-updated', this.getIds.bind(this));
41
+ super.connectedCallback();
42
+ }
43
+
44
+ disconnectedCallback() {
45
+ this.targetElement?.removeEventListener('qbo-updated', this.getIds);
46
+ }
47
+
48
+ getPayload(headers: { [key: string]: string; }) {
49
+ const payload = super.getPayload(headers) ?? {};
50
+ payload["idList"] = this.values.join(",");
51
+ };
52
+
53
+ getIds() {
54
+ console.log('reacting to target qbo-updated');
55
+ if (this.targetElement == null)
56
+ return;
57
+ const values: string[] = [];
58
+ const elements = this.targetElement!.querySelectorAll(this.selector);
59
+ elements.forEach((element) => {
60
+ const dataBadgeValue = element.getAttribute('data-badge');
61
+ if (dataBadgeValue !== null) {
62
+ values.push(dataBadgeValue);
63
+ }
64
+ });
65
+ this.values = values;
66
+ }
67
+
68
+ async fetchData(headers: { [key: string]: string; }, payload: Object | null) {
69
+
70
+ super.fetchData(headers, payload)
71
+ }
72
+
73
+ render() {
74
+ const elements = this.targetElement!.querySelectorAll(this.selector);
75
+ elements.forEach((element) => {
76
+ element.innerHTML = element.getAttribute('data-badge') ?? '';
77
+ });
78
+ }
79
+ }
@@ -0,0 +1,23 @@
1
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
2
+ export declare class QboBreadcrumb extends QboFetch {
3
+ ariaCurrent: string;
4
+ ariaLabel: string;
5
+ containerClass: string;
6
+ liClass: string;
7
+ liActiveClass: string;
8
+ navClass: string;
9
+ ulClass: string;
10
+ apiEndpoint: URL;
11
+ display: null;
12
+ object: null;
13
+ objectId: null;
14
+ operation: null;
15
+ options: Array<{
16
+ [key: string]: string;
17
+ }> | null;
18
+ renderInHost: boolean;
19
+ createRenderRoot(): HTMLElement | DocumentFragment;
20
+ connectedCallback(): void;
21
+ renderItem(option: any): import("lit-html").TemplateResult<1>;
22
+ render(): import("lit-html").TemplateResult<1>;
23
+ }
@@ -0,0 +1,132 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { html } from 'lit';
11
+ import { customElement, property } from 'lit/decorators.js';
12
+ import { getArray } from '@quandis/qbo4.ui';
13
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
14
+ let QboBreadcrumb = class QboBreadcrumb extends QboFetch {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.ariaCurrent = 'page';
18
+ this.ariaLabel = 'breadcrumb';
19
+ this.containerClass = 'container-fluid';
20
+ this.liClass = 'breadcrumb-item';
21
+ this.liActiveClass = 'active';
22
+ this.navClass = 'breadcrumb bd-subnavbar py-2';
23
+ this.ulClass = 'breadcrumb';
24
+ this.apiEndpoint = new URL('config/breadcrumb', this.baseURI);
25
+ this.display = null;
26
+ this.object = null;
27
+ this.objectId = null;
28
+ this.operation = null;
29
+ this.options = [];
30
+ this.renderInHost = true;
31
+ }
32
+ createRenderRoot() {
33
+ return this.renderInHost ? this : super.createRenderRoot();
34
+ }
35
+ connectedCallback() {
36
+ let url = this.apiEndpoint.toString();
37
+ url = `${url}?Object=${this.object != null ? this.object : ''}`;
38
+ url = `${url}&ObjectID=${this.objectId != null ? this.objectId : ''}`;
39
+ url = `${url}&Operation=${this.operation != null ? this.operation : ''}`;
40
+ url = `${url}&Display=${this.display != null ? this.display : ''}`;
41
+ this.apiEndpoint = new URL(url, this.baseURI);
42
+ super.connectedCallback();
43
+ }
44
+ renderItem(option) {
45
+ const sequence = option["Sequence"];
46
+ const text = option["Text"];
47
+ const url = option["URL"];
48
+ if ((sequence == null || sequence == "" || sequence == "0") && url != null && url != "")
49
+ return html `<li class="${this.liClass} ${this.liActiveClass}" aria-current="${this.ariaCurrent}"><a href="${url}">${text}</a></li>`;
50
+ else if (sequence == null || sequence == "" || sequence == "0")
51
+ return html `<li class="${this.liClass} ${this.liActiveClass}" aria-current="${this.ariaCurrent}">${text}</li>`;
52
+ else if (url != null && url != "")
53
+ return html `<li class="${this.liClass}"><a href="${url}">${text}</a></li>`;
54
+ else
55
+ return html `<li class="${this.liClass}">${text}</li>`;
56
+ }
57
+ render() {
58
+ this.options = getArray(this.jsonData);
59
+ if (!this.options || this.options.length === 0)
60
+ return html ``;
61
+ return html `
62
+ <nav class="${this.navClass}">
63
+ <div class="${this.containerClass}">
64
+ <nav aria-label="${this.ariaLabel}">
65
+ <ul class="${this.ulClass}">
66
+ ${this.options.sort((a, b) => (a.Sequence > b.Sequence ? -1 : 1)).map(option => this.renderItem(option))}
67
+ </ul>
68
+ </nav>
69
+ </div>
70
+ </nav>`;
71
+ }
72
+ };
73
+ __decorate([
74
+ property({ type: String }),
75
+ __metadata("design:type", Object)
76
+ ], QboBreadcrumb.prototype, "ariaCurrent", void 0);
77
+ __decorate([
78
+ property({ type: String }),
79
+ __metadata("design:type", Object)
80
+ ], QboBreadcrumb.prototype, "ariaLabel", void 0);
81
+ __decorate([
82
+ property({ type: String }),
83
+ __metadata("design:type", Object)
84
+ ], QboBreadcrumb.prototype, "containerClass", void 0);
85
+ __decorate([
86
+ property({ type: String }),
87
+ __metadata("design:type", Object)
88
+ ], QboBreadcrumb.prototype, "liClass", void 0);
89
+ __decorate([
90
+ property({ type: String }),
91
+ __metadata("design:type", Object)
92
+ ], QboBreadcrumb.prototype, "liActiveClass", void 0);
93
+ __decorate([
94
+ property({ type: String }),
95
+ __metadata("design:type", Object)
96
+ ], QboBreadcrumb.prototype, "navClass", void 0);
97
+ __decorate([
98
+ property({ type: String }),
99
+ __metadata("design:type", Object)
100
+ ], QboBreadcrumb.prototype, "ulClass", void 0);
101
+ __decorate([
102
+ property({ type: String }),
103
+ __metadata("design:type", Object)
104
+ ], QboBreadcrumb.prototype, "apiEndpoint", void 0);
105
+ __decorate([
106
+ property({ type: String }),
107
+ __metadata("design:type", Object)
108
+ ], QboBreadcrumb.prototype, "display", void 0);
109
+ __decorate([
110
+ property({ type: String }),
111
+ __metadata("design:type", Object)
112
+ ], QboBreadcrumb.prototype, "object", void 0);
113
+ __decorate([
114
+ property({ type: String }),
115
+ __metadata("design:type", Object)
116
+ ], QboBreadcrumb.prototype, "objectId", void 0);
117
+ __decorate([
118
+ property({ type: String }),
119
+ __metadata("design:type", Object)
120
+ ], QboBreadcrumb.prototype, "operation", void 0);
121
+ __decorate([
122
+ property({ type: Array }),
123
+ __metadata("design:type", Object)
124
+ ], QboBreadcrumb.prototype, "options", void 0);
125
+ __decorate([
126
+ property({ type: Boolean }),
127
+ __metadata("design:type", Object)
128
+ ], QboBreadcrumb.prototype, "renderInHost", void 0);
129
+ QboBreadcrumb = __decorate([
130
+ customElement('qbo-breadcrumb')
131
+ ], QboBreadcrumb);
132
+ export { QboBreadcrumb };
@@ -0,0 +1,96 @@
1
+ import { html, PropertyValues } from 'lit';
2
+ import { customElement, property } from 'lit/decorators.js';
3
+ import { getArray } from '@quandis/qbo4.ui';
4
+ import { QboFetch } from '@quandis/qbo4.ui/src/qbo/qbo-fetch.js';
5
+
6
+ @customElement('qbo-breadcrumb')
7
+ export class QboBreadcrumb extends QboFetch {
8
+
9
+ @property({ type: String })
10
+ ariaCurrent = 'page';
11
+
12
+ @property({ type: String })
13
+ ariaLabel = 'breadcrumb';
14
+
15
+ @property({ type: String })
16
+ containerClass = 'container-fluid';
17
+
18
+ @property({ type: String })
19
+ liClass = 'breadcrumb-item';
20
+
21
+ @property({ type: String })
22
+ liActiveClass = 'active';
23
+
24
+ @property({ type: String })
25
+ navClass = 'breadcrumb bd-subnavbar py-2';
26
+
27
+ @property({ type: String })
28
+ ulClass = 'breadcrumb';
29
+
30
+ @property({ type: String })
31
+ apiEndpoint = new URL('config/breadcrumb', this.baseURI);
32
+
33
+ @property({ type: String })
34
+ display = null;
35
+
36
+ @property({ type: String })
37
+ object = null;
38
+
39
+ @property({ type: String })
40
+ objectId = null;
41
+
42
+ @property({ type: String })
43
+ operation = null;
44
+
45
+ @property({ type: Array })
46
+ options: Array<{ [key: string]: string }> | null = [];
47
+
48
+ @property({ type: Boolean })
49
+ renderInHost = true;
50
+
51
+ createRenderRoot() {
52
+ return this.renderInHost ? this : super.createRenderRoot();
53
+ }
54
+
55
+ connectedCallback() {
56
+ let url = this.apiEndpoint.toString();
57
+ url = `${url}?Object=${this.object != null ? this.object : ''}`
58
+ url = `${url}&ObjectID=${this.objectId != null ? this.objectId : ''}`
59
+ url = `${url}&Operation=${this.operation != null ? this.operation : ''}`
60
+ url = `${url}&Display=${this.display != null ? this.display : ''}`
61
+ this.apiEndpoint = new URL(url, this.baseURI);
62
+
63
+ super.connectedCallback();
64
+ }
65
+
66
+ renderItem(option) {
67
+ const sequence = option["Sequence"];
68
+ const text = option["Text"];
69
+ const url = option["URL"];
70
+
71
+ if ((sequence == null || sequence == "" || sequence == "0") && url != null && url != "")
72
+ return html`<li class="${this.liClass} ${this.liActiveClass}" aria-current="${this.ariaCurrent}"><a href="${url}">${text}</a></li>`;
73
+ else if (sequence == null || sequence == "" || sequence == "0")
74
+ return html`<li class="${this.liClass} ${this.liActiveClass}" aria-current="${this.ariaCurrent}">${text}</li>`;
75
+ else if (url != null && url != "")
76
+ return html`<li class="${this.liClass}"><a href="${url}">${text}</a></li>`;
77
+ else
78
+ return html`<li class="${this.liClass}">${text}</li>`;
79
+ }
80
+
81
+ render() {
82
+ this.options = getArray(this.jsonData);
83
+ if (!this.options || this.options.length === 0) return html``;
84
+
85
+ return html`
86
+ <nav class="${this.navClass}">
87
+ <div class="${this.containerClass}">
88
+ <nav aria-label="${this.ariaLabel}">
89
+ <ul class="${this.ulClass}">
90
+ ${this.options.sort((a, b) => (a.Sequence > b.Sequence ? -1 : 1)).map(option => this.renderItem(option))}
91
+ </ul>
92
+ </nav>
93
+ </div>
94
+ </nav>`;
95
+ }
96
+ }
@@ -0,0 +1,22 @@
1
+ import { TemplateResult } from 'lit';
2
+ import { QboFormElement } from '@quandis/qbo4.ui';
3
+ export declare class QboContactName extends QboFormElement {
4
+ buttonClass: String | null;
5
+ disabled: boolean;
6
+ elementClass: String | null;
7
+ elementStackedTopClass: String | null;
8
+ icon: String | null;
9
+ modalBodyDivClass: String | null;
10
+ modalContentDivClass: String | null;
11
+ modalDivClass: String | null;
12
+ modalDialogDivClass: String | null;
13
+ modalFooterDivClass: String | null;
14
+ modalHeaderDivClass: String | null;
15
+ modalHeaderText: String | null;
16
+ slotClass: String | null;
17
+ spanClass: String | null;
18
+ type: string | null;
19
+ renderInHost: boolean;
20
+ createRenderRoot(): HTMLElement | DocumentFragment;
21
+ render(): TemplateResult<1>;
22
+ }