diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js index 38ef5a40de..0629033aef 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js @@ -1,217 +1,106 @@ -import { UMB_DOCUMENT_COLLECTION_CONTEXT as T, UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN as P } from "@umbraco-cms/backoffice/document"; -import { css as D, state as d, customElement as x, html as n } from "@umbraco-cms/backoffice/external/lit"; -import { UmbLitElement as E } from "@umbraco-cms/backoffice/lit-element"; -import { UmbTextStyles as A } from "@umbraco-cms/backoffice/style"; -import { fromCamelCase as O } from "@umbraco-cms/backoffice/utils"; -var S = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, y = (e) => { - throw TypeError(e); -}, c = (e, t, a, s) => { - for (var r = s > 1 ? void 0 : s ? $(t, a) : t, p = e.length - 1, m; p >= 0; p--) - (m = e[p]) && (r = (s ? m(t, a, r) : m(r)) || r); - return s && r && S(t, a, r), r; -}, f = (e, t, a) => t.has(e) || y("Cannot " + a), u = (e, t, a) => (f(e, t, "read from private field"), t.get(e)), _ = (e, t, a) => t.has(e) ? y("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, a), I = (e, t, a, s) => (f(e, t, "write to private field"), t.set(e, a), a), h = (e, t, a) => (f(e, t, "access private method"), a), b, o, l, w, g, v, C; -let i = class extends E { +import { css as u, state as d, customElement as _, html as n } from "@umbraco-cms/backoffice/external/lit"; +import { UmbLitElement as f } from "@umbraco-cms/backoffice/lit-element"; +import { UMB_DOCUMENT_COLLECTION_CONTEXT as v } from "@umbraco-cms/backoffice/document"; +var y = Object.defineProperty, w = Object.getOwnPropertyDescriptor, h = (t) => { + throw TypeError(t); +}, m = (t, e, a, s) => { + for (var i = s > 1 ? void 0 : s ? w(e, a) : e, o = t.length - 1, l; o >= 0; o--) + (l = t[o]) && (i = (s ? l(e, a, i) : l(i)) || i); + return s && i && y(e, a, i), i; +}, b = (t, e, a) => e.has(t) || h("Cannot " + a), C = (t, e, a) => e.has(t) ? h("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, a), E = (t, e, a) => (b(t, e, "access private method"), a), c, p; +let r = class extends f { constructor() { - super(), _(this, l), this._tableColumns = [], _(this, b, [ - { - name: this.localize.term("general_name"), - alias: "name", - elementName: "umb-document-table-column-name", - allowSorting: !0 - }, - { - name: this.localize.term("content_publishStatus"), - alias: "state", - elementName: "umb-document-table-column-state", - allowSorting: !1 - } - ]), this._tableItems = [], _(this, o), this.consumeContext(T, (e) => { - I(this, o, e), e?.setupView(this), this.observe( - e?.workspacePathBuilder, - (t) => { - this._workspacePathBuilder = t, u(this, o) && h(this, l, v).call(this, u(this, o).getItems()); - }, - "observePath" - ), h(this, l, w).call(this); + super(), C(this, c), this._columns = [], this._items = [], this.consumeContext(v, (t) => { + t?.setupView(this), this.observe(t?.userDefinedProperties, (e) => { + E(this, c, p).call(this, e); + }), this.observe(t?.items, (e) => { + this._items = e; + }); }); } render() { - return n` - + return this._items === void 0 ? n`

Not found...

` : n` +
- ${this._tableColumns.map( - (e) => n`` - )} + ${this._columns.map((t) => n``)} - ${this._tableItems.map( - (e) => n` + ${this._items.map( + (t) => n` - ${this._tableColumns.map((t) => { - const s = e.data.find((r) => r.columnAlias === t.alias)?.value ?? ""; - return t.alias === "name" && s?.item ? n`` : t.alias === "state" && s?.item ? n`` : t.alias === "entityActions" ? n`` : n``; + ${this._columns.map((e) => { + switch (e.alias) { + case "name": + return n``; + case "entityActions": + return n``; + default: + const a = t.values.find((s) => s.alias === e.alias)?.value ?? ""; + return n``; + } })} ` )} -
${e.name}${t.name}
${s.item.name}${s.item.state}${s}${t.variants[0].name}${a}
`; + + `; } }; -b = /* @__PURE__ */ new WeakMap(); -o = /* @__PURE__ */ new WeakMap(); -l = /* @__PURE__ */ new WeakSet(); -w = function() { - u(this, o) && (this.observe( - u(this, o).userDefinedProperties, - (e) => { - this._userDefinedProperties = e, h(this, l, g).call(this); - }, - "_observeUserDefinedProperties" - ), this.observe( - u(this, o).items, - (e) => { - this._items = e, h(this, l, v).call(this, this._items); - }, - "_observeItems" - )); +c = /* @__PURE__ */ new WeakSet(); +p = function(t = []) { + const e = [ + { name: "Name", alias: "name" }, + { name: "State", alias: "state" } + ], a = t.map((s) => ({ + name: s.nameTemplate ?? s.alias, + alias: s.alias + })); + this._columns = [...e, ...a, { name: "", alias: "entityActions", align: "right" }]; }; -g = function() { - if (this._userDefinedProperties && this._userDefinedProperties.length > 0) { - const e = this._userDefinedProperties.map((t) => ({ - name: this.localize.string(t.header), - alias: t.alias, - elementName: t.elementName, - labelTemplate: t.nameTemplate, - allowSorting: !0 - })); - this._tableColumns = [ - ...u(this, b), - ...e, - { name: "", alias: "entityActions", align: "right" } - ]; - } -}; -v = function(e) { - this._tableItems = e.map((t) => { - if (!t.unique) throw new Error("Item id is missing."); - const a = this._tableColumns?.map((s) => { - if (s.alias === "entityActions") - return { - columnAlias: "entityActions", - value: n`` - }; - const r = t.unique && this._workspacePathBuilder ? this._workspacePathBuilder({ entityType: t.entityType }) + P.generateLocal({ - unique: t.unique - }) : ""; - return { - columnAlias: s.alias, - value: s.elementName ? { item: t, editPath: r } : h(this, l, C).call(this, t, s.alias) - }; - }) ?? []; - return { - id: t.unique, - icon: t.documentType.icon, - entityType: "document", - data: a - }; - }); -}; -C = function(e, t) { - switch (t) { - case "contentTypeAlias": - return e.contentTypeAlias; - case "createDate": - return e.createDate.toLocaleString(); - case "creator": - case "owner": - return e.creator; - case "name": - return e.name; - case "state": - return O(e.state); - case "published": - return e.state !== "Draft" ? "True" : "False"; - case "sortOrder": - return e.sortOrder; - case "updateDate": - return e.updateDate.toLocaleString(); - case "updater": - return e.updater; - default: - return e.values.find((a) => a.alias === t)?.value ?? ""; - } -}; -i.styles = [ - A, - D` - :host { - display: block; - box-sizing: border-box; - height: auto; - width: 100%; - padding: var(--uui-size-space-3) 0; - } - - .container { - display: flex; - justify-content: center; - align-items: center; - } - - :host { +r.styles = u` + :host { display: block; width: 100%; overflow-x: auto; - } - table { - width: 100%; - border-collapse: collapse; - font-size: 14px; - } - th, - td { - padding: 6px 10px; - border: 1px solid #ddd; - white-space: nowrap; - } - th { - background: #f8f8f8; - font-weight: 600; - } - a { - color: var(--uui-color-interactive, #0366d6); - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - ` -]; -c([ + font-family: sans-serif; + } + table { + width: 100%; + border-collapse: collapse; + } + th, + td { + padding: 6px 10px; + border: 1px solid #ddd; + white-space: nowrap; + } + th { + background: #f8f8f8; + font-weight: 600; + } + a { + color: var(--uui-color-interactive, #0366d6); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + `; +m([ d() -], i.prototype, "_workspacePathBuilder", 2); -c([ +], r.prototype, "_columns", 2); +m([ d() -], i.prototype, "_userDefinedProperties", 2); -c([ - d() -], i.prototype, "_items", 2); -c([ - d() -], i.prototype, "_tableColumns", 2); -c([ - d() -], i.prototype, "_tableItems", 2); -i = c([ - x("my-document-table-collection-view") -], i); -const z = i; +], r.prototype, "_items", 2); +r = m([ + _("my-document-table-collection-view") +], r); +const O = r; export { - i as MyDocumentTableCollectionViewElement, - z as default + r as MyDocumentTableCollectionViewElement, + O as default }; //# sourceMappingURL=my-collection-view.js.map diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js.map b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js.map index b613f3d7c8..1b84b4da57 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js.map +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/my-collection-view.js.map @@ -1 +1 @@ -{"version":3,"file":"my-collection-view.js","sources":["../../my-collection-view/src/my-collection-view.ts"],"sourcesContent":["import { UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN } from '@umbraco-cms/backoffice/document';\r\nimport type { UmbDocumentCollectionItemModel } from '@umbraco-cms/backoffice/document';\r\nimport { UMB_DOCUMENT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/document';\r\nimport type { UmbCollectionColumnConfiguration } from '@umbraco-cms/backoffice/collection';\r\nimport { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport type { UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router';\r\nimport { fromCamelCase } from '@umbraco-cms/backoffice/utils';\r\nimport type {\r\n\tUmbTableColumn,\r\n\tUmbTableItem,\r\n} from '@umbraco-cms/backoffice/components';\r\n\r\n@customElement('my-document-table-collection-view')\r\nexport class MyDocumentTableCollectionViewElement extends UmbLitElement {\r\n\t@state()\r\n\tprivate _workspacePathBuilder?: UmbModalRouteBuilder;\r\n\r\n\t@state()\r\n\tprivate _userDefinedProperties?: Array;\r\n\r\n\t@state()\r\n\tprivate _items?: Array;\r\n\r\n\t@state()\r\n\tprivate _tableColumns: Array = [];\r\n\r\n\t#systemColumns: Array = [\r\n\t\t{\r\n\t\t\tname: this.localize.term('general_name'),\r\n\t\t\talias: 'name',\r\n\t\t\telementName: 'umb-document-table-column-name',\r\n\t\t\tallowSorting: true,\r\n\t\t},\r\n\t\t{\r\n\t\t\tname: this.localize.term('content_publishStatus'),\r\n\t\t\talias: 'state',\r\n\t\t\telementName: 'umb-document-table-column-state',\r\n\t\t\tallowSorting: false,\r\n\t\t},\r\n\t];\r\n\r\n\t@state()\r\n\tprivate _tableItems: Array = [];\r\n\r\n\t#collectionContext?: typeof UMB_DOCUMENT_COLLECTION_CONTEXT.TYPE;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.consumeContext(UMB_DOCUMENT_COLLECTION_CONTEXT, (collectionContext) => {\r\n\t\t\tthis.#collectionContext = collectionContext;\r\n\t\t\tcollectionContext?.setupView(this);\r\n\t\t\tthis.observe(\r\n\t\t\t\tcollectionContext?.workspacePathBuilder,\r\n\t\t\t\t(builder) => {\r\n\t\t\t\t\tthis._workspacePathBuilder = builder;\r\n\t\t\t\t\tif (this.#collectionContext) {\r\n\t\t\t\t\t\tthis.#createTableItems(this.#collectionContext.getItems());\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t'observePath',\r\n\t\t\t);\r\n\t\t\tthis.#observeCollectionContext();\r\n\t\t});\r\n\t}\r\n\r\n\t#observeCollectionContext() {\r\n\t\tif (!this.#collectionContext) return;\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#collectionContext.userDefinedProperties,\r\n\t\t\t(userDefinedProperties) => {\r\n\t\t\t\tthis._userDefinedProperties = userDefinedProperties;\r\n\t\t\t\tthis.#createTableHeadings();\r\n\t\t\t},\r\n\t\t\t'_observeUserDefinedProperties',\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#collectionContext.items,\r\n\t\t\t(items) => {\r\n\t\t\t\tthis._items = items;\r\n\t\t\t\tthis.#createTableItems(this._items);\r\n\t\t\t},\r\n\t\t\t'_observeItems',\r\n\t\t);\r\n\t}\r\n\r\n\t#createTableHeadings() {\r\n\t\tif (this._userDefinedProperties && this._userDefinedProperties.length > 0) {\r\n\t\t\tconst userColumns: Array = this._userDefinedProperties.map((item) => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tname: this.localize.string(item.header),\r\n\t\t\t\t\talias: item.alias,\r\n\t\t\t\t\telementName: item.elementName,\r\n\t\t\t\t\tlabelTemplate: item.nameTemplate,\r\n\t\t\t\t\tallowSorting: true,\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\t\tthis._tableColumns = [\r\n\t\t\t\t...this.#systemColumns,\r\n\t\t\t\t...userColumns,\r\n\t\t\t\t{ name: '', alias: 'entityActions', align: 'right' },\r\n\t\t\t];\r\n\t\t}\r\n\t}\r\n\r\n\t#createTableItems(items: Array) {\r\n\t\tthis._tableItems = items.map((item) => {\r\n\t\t\tif (!item.unique) throw new Error('Item id is missing.');\r\n\r\n\t\t\tconst data =\r\n\t\t\t\tthis._tableColumns?.map((column) => {\r\n\t\t\t\t\tif (column.alias === 'entityActions') {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tcolumnAlias: 'entityActions',\r\n\t\t\t\t\t\t\tvalue: html``,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst editPath =\r\n\t\t\t\t\t\titem.unique && this._workspacePathBuilder\r\n\t\t\t\t\t\t\t? this._workspacePathBuilder({ entityType: item.entityType }) +\r\n\t\t\t\t\t\t\tUMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN.generateLocal({\r\n\t\t\t\t\t\t\t\tunique: item.unique,\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t: '';\r\n\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tcolumnAlias: column.alias,\r\n\t\t\t\t\t\tvalue: column.elementName ? { item, editPath } : this.#getPropertyValueByAlias(item, column.alias),\r\n\t\t\t\t\t};\r\n\t\t\t\t}) ?? [];\r\n\r\n\t\t\treturn {\r\n\t\t\t\tid: item.unique,\r\n\t\t\t\ticon: item.documentType.icon,\r\n\t\t\t\tentityType: 'document',\r\n\t\t\t\tdata: data,\r\n\t\t\t};\r\n\t\t});\r\n\t}\r\n\r\n\t#getPropertyValueByAlias(item: UmbDocumentCollectionItemModel, alias: string) {\r\n\tswitch (alias) {\r\n\t\tcase 'contentTypeAlias':\r\n\t\t\treturn item.contentTypeAlias;\r\n\t\tcase 'createDate':\r\n\t\t\treturn item.createDate.toLocaleString();\r\n\t\tcase 'creator':\r\n\t\tcase 'owner':\r\n\t\t\treturn item.creator;\r\n\t\tcase 'name':\r\n\t\t\treturn item.name;\r\n\t\tcase 'state':\r\n\t\t\treturn fromCamelCase(item.state);\r\n\t\tcase 'published':\r\n\t\t\treturn item.state !== 'Draft' ? 'True' : 'False';\r\n\t\tcase 'sortOrder':\r\n\t\t\treturn item.sortOrder;\r\n\t\tcase 'updateDate':\r\n\t\t\treturn item.updateDate.toLocaleString();\r\n\t\tcase 'updater':\r\n\t\t\treturn item.updater;\r\n\t\tdefault:\r\n\t\t\treturn item.values.find((value) => value.alias === alias)?.value ?? '';\r\n\t}\r\n}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${this._tableColumns.map(\r\n\t\t\t\t\t\t\t(col) => html``,\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${this._tableItems.map(\r\n\t\t\t\t\t\t\t(item) => html`\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t${this._tableColumns.map((col) => {\r\n\t\t\t\t\t\t\t\tconst cell = item.data.find((d) => d.columnAlias === col.alias);\r\n\t\t\t\t\t\t\t\tconst val = cell?.value ?? '';\r\n\t\t\t\t\t\t\t\tif (col.alias === 'name' && val?.item) {\r\n\t\t\t\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (col.alias === 'state' && val?.item) {\r\n\t\t\t\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (col.alias === 'entityActions') {\r\n\t\t\t\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t`,\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t
${col.name}
${val.item.name}${val.item.state}${val}
`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tUmbTextStyles,\r\n\t\tcss`\r\n\t\t\t:host {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tbox-sizing: border-box;\r\n\t\t\t\theight: auto;\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tpadding: var(--uui-size-space-3) 0;\r\n\t\t\t}\r\n\r\n\t\t\t.container {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tjustify-content: center;\r\n\t\t\t\talign-items: center;\r\n\t\t\t}\r\n\r\n\t\t\t:host {\r\n\t\t\tdisplay: block;\r\n\t\t\twidth: 100%;\r\n\t\t\toverflow-x: auto;\r\n\t\t\t}\r\n\t\t\ttable {\r\n\t\t\t\twidth: 100%;\r\n\t\t\t\tborder-collapse: collapse;\r\n\t\t\t\tfont-size: 14px;\r\n\t\t\t}\r\n\t\t\tth,\r\n\t\t\ttd {\r\n\t\t\t\tpadding: 6px 10px;\r\n\t\t\t\tborder: 1px solid #ddd;\r\n\t\t\t\twhite-space: nowrap;\r\n\t\t\t}\r\n\t\t\tth {\r\n\t\t\t\tbackground: #f8f8f8;\r\n\t\t\t\tfont-weight: 600;\r\n\t\t\t}\r\n\t\t\ta {\r\n\t\t\t\tcolor: var(--uui-color-interactive, #0366d6);\r\n\t\t\t\ttext-decoration: none;\r\n\t\t\t}\r\n\t\t\ta:hover {\r\n\t\t\t\ttext-decoration: underline;\r\n\t\t\t}\r\n\t\t\t`,\r\n\t];\r\n}\r\n\r\nexport default MyDocumentTableCollectionViewElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'my-document-table-collection-view': MyDocumentTableCollectionViewElement;\r\n\t}\r\n}\r\n"],"names":["_systemColumns","_collectionContext","_MyDocumentTableCollectionViewElement_instances","observeCollectionContext_fn","createTableHeadings_fn","createTableItems_fn","getPropertyValueByAlias_fn","MyDocumentTableCollectionViewElement","UmbLitElement","__privateAdd","UMB_DOCUMENT_COLLECTION_CONTEXT","collectionContext","__privateSet","builder","__privateGet","__privateMethod","html","col","item","val","d","userDefinedProperties","items","userColumns","data","column","editPath","UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN","alias","fromCamelCase","value","UmbTextStyles","css","__decorateClass","state","customElement","MyDocumentTableCollectionViewElement$1"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"my-collection-view.js","sources":["../../my-collection-view/src/my-collection-view.ts"],"sourcesContent":["import { css, customElement, html, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UMB_DOCUMENT_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/document';\r\nimport type { UmbDocumentCollectionItemModel } from '@umbraco-cms/backoffice/document';\r\nimport type { UmbCollectionColumnConfiguration } from '@umbraco-cms/backoffice/collection';\r\n\r\n@customElement('my-document-table-collection-view')\r\nexport class MyDocumentTableCollectionViewElement extends UmbLitElement {\r\n\r\n\t@state() private _columns: Array<{ name: string; alias: string; align?: string }> = [];\r\n\t@state() private _items?: Array = [];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.consumeContext(UMB_DOCUMENT_COLLECTION_CONTEXT, (collectionContext) => {\r\n\t\t\tcollectionContext?.setupView(this);\r\n\r\n\t\t\tthis.observe(collectionContext?.userDefinedProperties, (props) => {\r\n\t\t\t\tthis.#createColumns(props);\r\n\t\t\t});\r\n\r\n\t\t\tthis.observe(collectionContext?.items, (items) => {\r\n\t\t\t\tthis._items = items;\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\t#createColumns(userProps: Array = []) {\r\n\t\tconst baseCols = [\r\n\t\t\t{ name: 'Name', alias: 'name' },\r\n\t\t\t{ name: 'State', alias: 'state' },\r\n\t\t];\r\n\t\tconst userCols = userProps.map((p) => ({\r\n\t\t\tname: p.nameTemplate ?? p.alias,\r\n\t\t\talias: p.alias,\r\n\t\t}));\r\n\t\tthis._columns = [...baseCols, ...userCols, { name: '', alias: 'entityActions', align: 'right' }];\r\n\t}\r\n\r\n\toverride render() {\r\n if (this._items === undefined) return html`

Not found...

`;\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t${this._columns.map((col) => html``)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t${this._items.map(\r\n\t\t\t(item) => html`\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t${this._columns.map((col) => {\r\n\t\t\t\tswitch (col.alias) {\r\n\t\t\t\t\tcase 'name':\r\n\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\tcase 'entityActions':\r\n\t\t\t\t\t\treturn html``;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tconst val = item.values.find((v) => v.alias === col.alias)?.value ?? '';\r\n\t\t\t\t\t\treturn html``;\r\n\t\t\t\t}\r\n\t\t\t})}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t`\r\n\t\t)}\r\n\t\t\t\t\r\n\t\t\t
${col.name}
${item.variants[0].name}${val}
\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = css`\r\n\t\t:host {\r\n\t\t\tdisplay: block;\r\n\t\t\twidth: 100%;\r\n\t\t\toverflow-x: auto;\r\n\t\t\tfont-family: sans-serif;\r\n\t\t}\r\n\t\ttable {\r\n\t\t\twidth: 100%;\r\n\t\t\tborder-collapse: collapse;\r\n\t\t}\r\n\t\tth,\r\n\t\ttd {\r\n\t\t\tpadding: 6px 10px;\r\n\t\t\tborder: 1px solid #ddd;\r\n\t\t\twhite-space: nowrap;\r\n\t\t}\r\n\t\tth {\r\n\t\t\tbackground: #f8f8f8;\r\n\t\t\tfont-weight: 600;\r\n\t\t}\r\n\t\ta {\r\n\t\t\tcolor: var(--uui-color-interactive, #0366d6);\r\n\t\t\ttext-decoration: none;\r\n\t\t}\r\n\t\ta:hover {\r\n\t\t\ttext-decoration: underline;\r\n\t\t}\r\n\t`;\r\n}\r\n\r\nexport default MyDocumentTableCollectionViewElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'my-document-table-collection-view': MyDocumentTableCollectionViewElement;\r\n\t}\r\n}\r\n"],"names":["_MyDocumentTableCollectionViewElement_instances","createColumns_fn","MyDocumentTableCollectionViewElement","UmbLitElement","__privateAdd","UMB_DOCUMENT_COLLECTION_CONTEXT","collectionContext","props","__privateMethod","items","html","col","item","val","v","userProps","baseCols","userCols","p","css","__decorateClass","state","customElement","MyDocumentTableCollectionViewElement$1"],"mappings":";;;;;;;;;8OAAAA,GAAAC;AAOO,IAAMC,IAAN,cAAmDC,EAAc;AAAA,EAKvE,cAAc;AACb,UAAA,GANKC,EAAA,MAAAJ,CAAA,GAEG,KAAQ,WAAmE,CAAA,GAC3E,KAAQ,SAAiD,CAAA,GAKjE,KAAK,eAAeK,GAAiC,CAACC,MAAsB;AAC3E,MAAAA,GAAmB,UAAU,IAAI,GAEjC,KAAK,QAAQA,GAAmB,uBAAuB,CAACC,MAAU;AACjE,QAAAC,EAAA,MAAKR,MAAL,KAAA,MAAoBO,CAAA;AAAA,MACrB,CAAC,GAED,KAAK,QAAQD,GAAmB,OAAO,CAACG,MAAU;AACjD,aAAK,SAASA;AAAA,MACf,CAAC;AAAA,IACF,CAAC;AAAA,EACF;AAAA,EAcS,SAAS;AACX,WAAI,KAAK,WAAW,SAAkBC,yBACrCA;AAAA;AAAA;AAAA;AAAA,QAID,KAAK,SAAS,IAAI,CAACC,MAAQD,0BAA6BC,EAAI,SAAS,MAAM,KAAKA,EAAI,IAAI,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA,OAIjG,KAAK,OAAO;AAAA,MAChB,CAACC,MAASF;AAAA;AAAA,UAEH,KAAK,SAAS,IAAI,CAACC,MAAQ;AACjC,gBAAQA,EAAI,OAAA;AAAA,UACX,KAAK;AACJ,mBAAOD,oBAAuBE,EAAK,SAAS,CAAC,EAAE,IAAI;AAAA,UACpD,KAAK;AACJ,mBAAOF;AAAA,UACR;AACC,kBAAMG,IAAMD,EAAK,OAAO,KAAK,CAACE,MAAMA,EAAE,UAAUH,EAAI,KAAK,GAAG,SAAS;AACrE,mBAAOD,QAAWG,CAAG;AAAA,QAAA;AAAA,MAExB,CAAC,CAAC;AAAA;AAAA;AAAA,IAAA,CAGF;AAAA;AAAA;AAAA;AAAA,EAIF;AA+BD;AA9FOb,IAAA,oBAAA,QAAA;AAqBNC,IAAc,SAACc,IAAqD,IAAI;AACvE,QAAMC,IAAW;AAAA,IAChB,EAAE,MAAM,QAAQ,OAAO,OAAA;AAAA,IACvB,EAAE,MAAM,SAAS,OAAO,QAAA;AAAA,EAAQ,GAE3BC,IAAWF,EAAU,IAAI,CAACG,OAAO;AAAA,IACtC,MAAMA,EAAE,gBAAgBA,EAAE;AAAA,IAC1B,OAAOA,EAAE;AAAA,EAAA,EACR;AACF,OAAK,WAAW,CAAC,GAAGF,GAAU,GAAGC,GAAU,EAAE,MAAM,IAAI,OAAO,iBAAiB,OAAO,SAAS;AAChG;AA/BYf,EAiEI,SAASiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/DRC,EAAA;AAAA,EAAhBC,EAAA;AAAM,GAFKnB,EAEK,WAAA,YAAA,CAAA;AACAkB,EAAA;AAAA,EAAhBC,EAAA;AAAM,GAHKnB,EAGK,WAAA,UAAA,CAAA;AAHLA,IAANkB,EAAA;AAAA,EADNE,EAAc,mCAAmC;AAAA,GACrCpB,CAAA;AAgGb,MAAAqB,IAAerB;"} \ No newline at end of file diff --git a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/umbraco-package.json b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/umbraco-package.json index 7cbeb21c79..1cef3bf275 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/umbraco-package.json +++ b/tests/Umbraco.Tests.AcceptanceTest/tests/ExtensionRegistry/AdditionalSetup/App_Plugins/my-collection-view/umbraco-package.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "../../umbraco-package-schema.json", "name": "My Collection View", "version": "0.1.0",