@arcgis/portal-components 5.2.0-next.22 → 5.2.0-next.23

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.
Files changed (56) hide show
  1. package/dist/cdn/2CP32LP3.js +2 -0
  2. package/dist/cdn/4PKNGQ3Q.js +2 -0
  3. package/dist/cdn/{MH7KZ5G3.js → 7ZLHVPFN.js} +1 -1
  4. package/dist/cdn/EZZ66WTI.js +3 -0
  5. package/dist/cdn/{TSLW4FSA.js → GDYQWDWB.js} +1 -1
  6. package/dist/cdn/{V2EOXGK2.js → I234NUZ5.js} +1 -1
  7. package/dist/cdn/{EHRAFAEA.js → IANXXLKE.js} +1 -1
  8. package/dist/cdn/IVD6XJNI.js +2 -0
  9. package/dist/cdn/LCZTOHWB.js +2 -0
  10. package/dist/cdn/NWIIOJEG.js +2 -0
  11. package/dist/cdn/PZJAY7AM.js +2 -0
  12. package/dist/cdn/R2ULEQSR.js +2 -0
  13. package/dist/cdn/RFZCHE7J.js +2 -0
  14. package/dist/cdn/SY6RBNVT.js +2 -0
  15. package/dist/cdn/U3FVMN32.js +2 -0
  16. package/dist/cdn/{47NPIL2S.js → W7JNOIYK.js} +1 -1
  17. package/dist/cdn/XDMQ36GP.js +2 -0
  18. package/dist/cdn/XPYGLVPT.js +2 -0
  19. package/dist/cdn/assets/portal-browser/t9n/messages.en.json +1 -0
  20. package/dist/cdn/index.js +1 -1
  21. package/dist/cdn/main.css +1 -1
  22. package/dist/chunks/dom.js +36 -0
  23. package/dist/chunks/functionalities.js +5 -4
  24. package/dist/chunks/ui.js +10 -0
  25. package/dist/components/arcgis-portal-browser/customElement.d.ts +85 -0
  26. package/dist/components/arcgis-portal-browser/customElement.js +210 -0
  27. package/dist/components/arcgis-portal-browser/index.d.ts +1 -0
  28. package/dist/components/arcgis-portal-browser/index.js +6 -0
  29. package/dist/components/arcgis-portal-browser/utils/store.d.ts +29 -0
  30. package/dist/components/arcgis-portal-browser/utils/types.d.ts +12 -0
  31. package/dist/components/arcgis-portal-browser-filter-status/customElement.d.ts +25 -0
  32. package/dist/components/arcgis-portal-browser-filter-status/customElement.js +55 -0
  33. package/dist/components/arcgis-portal-browser-filter-status/index.d.ts +1 -0
  34. package/dist/components/arcgis-portal-browser-filter-status/index.js +5 -0
  35. package/dist/components/arcgis-portal-group-card/customElement.js +2 -6
  36. package/dist/components/arcgis-portal-user-popup/customElement.js +90 -97
  37. package/dist/docs/api.json +1 -1
  38. package/dist/docs/docs.json +1 -1
  39. package/dist/docs/vscode.html-custom-data.json +1 -1
  40. package/dist/docs/web-types.json +1 -1
  41. package/dist/index.d.ts +20 -0
  42. package/dist/loader.js +2 -0
  43. package/dist/types/group.d.ts +13 -13
  44. package/dist/types/item.d.ts +77 -2
  45. package/dist/types/lumina.d.ts +13 -0
  46. package/dist/types/preact.d.ts +15 -0
  47. package/dist/types/react.d.ts +17 -0
  48. package/dist/types/search.d.ts +27 -0
  49. package/dist/types/stencil.d.ts +13 -0
  50. package/package.json +4 -4
  51. package/dist/cdn/2RGMWFHB.js +0 -2
  52. package/dist/cdn/3KS5IDT2.js +0 -2
  53. package/dist/cdn/EETBNQU2.js +0 -2
  54. package/dist/cdn/KT7PE6UE.js +0 -2
  55. package/dist/cdn/KY7Q7DH3.js +0 -2
  56. package/dist/cdn/VXCB2YBR.js +0 -3
@@ -1,10 +1,11 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const s = (e) => {
2
+ const t = (e) => {
3
3
  throw new Error(`Unexpected value: ${e}`);
4
4
  }, a = async (e) => {
5
- await new Promise((t) => setTimeout(t, e));
6
- };
5
+ await new Promise((s) => setTimeout(s, e));
6
+ }, n = (e, s) => e.includes(s);
7
7
  export {
8
- s as a,
8
+ t as a,
9
+ n as i,
9
10
  a as t
10
11
  };
@@ -0,0 +1,10 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ const s = {
3
+ xxs: 320,
4
+ xs: 480,
5
+ sm: 640,
6
+ md: 768
7
+ };
8
+ export {
9
+ s as b
10
+ };
@@ -0,0 +1,85 @@
1
+ /// <reference path="../../index.d.ts" />
2
+ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { SearchResultGroup } from "../../types/group.js";
4
+ import type { SearchResultItem } from "../../types/item.js";
5
+ import type { SearchResult } from "../../types/search.js";
6
+ import type { SearchResultUser } from "../../types/user.js";
7
+ import type { PortalBrowserStore } from "./utils/store.js";
8
+ import type { RangeFormatter } from "./utils/types.js";
9
+ import type { T9nMeta } from "@arcgis/lumina/controllers";
10
+
11
+ export abstract class ArcgisPortalBrowser extends LitElement {
12
+ /** @internal */
13
+ protected _messages: {
14
+ browser: {
15
+ refineContent: string;
16
+ close: string;
17
+ loading: string;
18
+ };
19
+ range: {
20
+ summary: string;
21
+ announcement: string;
22
+ };
23
+ filterStatus: {
24
+ filters: string;
25
+ additional: string;
26
+ clearAllFilters: string;
27
+ };
28
+ } & T9nMeta<{
29
+ browser: {
30
+ refineContent: string;
31
+ close: string;
32
+ loading: string;
33
+ };
34
+ range: {
35
+ summary: string;
36
+ announcement: string;
37
+ };
38
+ filterStatus: {
39
+ filters: string;
40
+ additional: string;
41
+ clearAllFilters: string;
42
+ };
43
+ }>;
44
+ /** @default false */
45
+ accessor alwaysShowContent: boolean;
46
+ /** @default false */
47
+ accessor alwaysShowPagination: boolean | undefined;
48
+ /** @default false */
49
+ accessor alwaysShowSelection: boolean;
50
+ /** @default "large" */
51
+ accessor formFactor: "large" | "small";
52
+ /**
53
+ * Height sizing strategy for the browser to use
54
+ * full height will be 100% the height of its parent and scroll internally
55
+ * auto height will grow with the contents of the browser
56
+ *
57
+ * @default "full"
58
+ */
59
+ accessor height: "auto" | "full";
60
+ /** @default false */
61
+ accessor hideContentTop: boolean;
62
+ /** @default false */
63
+ accessor hideFilters: boolean | undefined;
64
+ /** @default false */
65
+ accessor hideTopBar: boolean | undefined;
66
+ /** @default false */
67
+ accessor loading: boolean;
68
+ /** @default false */
69
+ accessor panel: boolean;
70
+ /** @default false */
71
+ accessor preview: boolean;
72
+ accessor rangeFormatter: RangeFormatter | undefined;
73
+ accessor response: SearchResult<SearchResultGroup | SearchResultItem | SearchResultUser>;
74
+ /** @default "" */
75
+ accessor searchTerm: string;
76
+ accessor selected: SearchResultGroup[] | SearchResultItem[] | SearchResultUser[] | undefined;
77
+ /** @default false */
78
+ accessor showPreSearch: boolean | undefined;
79
+ accessor store: PortalBrowserStore;
80
+ scrollToTop(): Promise<void>;
81
+ readonly arcgisAriaUpdate: import("@arcgis/lumina").TargetedEvent<this, string>;
82
+ readonly "@eventTypes": {
83
+ arcgisAriaUpdate: ArcgisPortalBrowser["arcgisAriaUpdate"]["detail"];
84
+ };
85
+ }
@@ -0,0 +1,210 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { c as x } from "../../chunks/runtime.js";
3
+ import { watch as a } from "@arcgis/core/core/reactiveUtils.js";
4
+ import * as h from "@arcgis/core/intl.js";
5
+ import { LitElement as b, createEvent as _, safeStyleMap as p, safeClassMap as o } from "@arcgis/lumina";
6
+ import { css as y, html as r } from "lit";
7
+ import { createRef as $, ref as F } from "lit/directives/ref.js";
8
+ import { u as S } from "../../chunks/useT9n.js";
9
+ import { c as w } from "../../chunks/dom.js";
10
+ import { i as k } from "../../chunks/functionalities.js";
11
+ import "../arcgis-portal-browser-filter-status/customElement.js";
12
+ import { createStore as P } from "@arcgis/lumina/controllers/accessor";
13
+ const B = y`:host{position:relative;display:flex;height:100%;flex-direction:column;overflow-y:auto;overflow-x:hidden;background-color:var(--calcite-color-background);--arcgis-browser-max-width: 100%;--arcgis-browser-pane-width: 18.75rem;--arcgis-browser-pane-z-index: 11}:host([height="auto"]){height:auto;min-height:100%;flex:1 1 100%}.wrapper{display:flex;height:100%;flex-direction:column;overflow:hidden}.wrapper--fixed{overflow:hidden}.wrapper--auto{flex:1 1 100%}.wrapper--full{transform:translate(0)}.panel{display:flex;height:100%;flex-direction:column;overflow:hidden}.panel--fixed{transform:translateZ(0)}.top-bar{position:sticky;top:0;right:0;left:0;z-index:20;flex-shrink:0;flex-grow:0;border-bottom:1px solid var(--calcite-color-border-3)}.scrolling{position:relative;display:flex;min-height:0px;width:100%;flex:1 1 0%;flex-direction:column}.scrolling--panel{overflow-y:scroll}@supports (scrollbar-gutter: stable){.scrolling--panel{scrollbar-gutter:stable;overflow-y:auto}}.scrolling--full{overflow:hidden}.preview-position{position:absolute;inset:0;margin-inline:auto;width:100%;max-width:var(--arcgis-browser-max-width)}.preview-position--with-top-bar{top:3rem}.preview-desktop{width:100%}.two-up{margin-left:auto;margin-right:auto;display:flex;width:100%;flex:1 1 auto;flex-direction:row;max-width:var(--arcgis-browser-max-width)}.two-up.small{margin-top:-1px}.two-up--fullscreen{height:100%;overflow:hidden}.content__start{margin-inline-end:.25rem;padding-inline:1rem}.content{position:relative;display:flex;min-width:0px;flex:1 1 0%;flex-direction:column;overflow:hidden}.content--full{overflow-y:scroll}@supports (scrollbar-gutter: stable){.content--full{scrollbar-gutter:stable;overflow-y:auto}}.content__top{position:relative;display:flex;height:1.5rem;flex-grow:0;align-items:center;justify-content:space-between;padding-top:1.25rem;padding-bottom:.75rem;font-size:1.125rem;color:var(--calcite-color-text-1);z-index:2}.content__top__end{margin-inline-start:auto;display:grid;gap:.5rem;grid-auto-flow:column}.actions,.filter-status{flex:1 1 0%}.content__view{margin-inline-end:.25rem;min-width:0px;flex:1 1 0%;padding-inline:var(--arcgis-browser-content-padding, 1rem)}.content__view--padded-bottom{padding-bottom:1rem}.content__view--no-filters{margin-inline-start:.25rem;padding-inline-start:var(--arcgis-browser-content-padding, 1rem)}.pane{pointer-events:none;visibility:hidden;display:flex;height:100%;background-color:var(--calcite-color-background);opacity:0;transition-duration:var(--calcite-internal-animation-timing-medium);transition-property:transform,visibility,opacity;border-left:1px solid var(--calcite-color-border-3);border-right:1px solid var(--calcite-color-border-3)}.pane--open{pointer-events:auto;visibility:visible;opacity:1;transform:translate(0);box-shadow:4px 0 16px #0000000f}.preview{width:0px;flex-shrink:0;flex-grow:0;position:absolute;top:0;bottom:0;inset-inline-start:0;transition-duration:var(--calcite-internal-animation-timing-medium);transition-property:width;z-index:var(--arcgis-browser-pane-z-index)}.preview--fixed{position:fixed}.preview--active{overflow:auto;width:var(--arcgis-browser-pane-width);box-shadow:#0000000f 4px 0 16px}.filter-panel,.preview-panel{position:relative;height:100%;background-color:var(--calcite-color-background)}.filter-panel__content{padding:.75rem 1rem 0}.filter-status--mobile{width:100%}.filter-status--active{display:block}.sheet{pointer-events:none;position:fixed;inset:0;z-index:110}.sheet--top-bar{top:3rem;overflow:hidden}.sheet__background{position:absolute;inset:0;opacity:0;transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s;background-color:#0003}.sheet__background--hidden{display:none}.sheet--active .sheet__background{opacity:1}.sheet--active{pointer-events:auto;opacity:1}.sheet__contents{position:absolute;inset:0;opacity:0;transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s;top:3rem;transform:translate3d(0,24px,0)}.sheet__contents--full{top:0;--tw-shadow: 0 2px 12px -4px rgba(0, 0, 0, .2), 0 2px 4px -2px rgba(0, 0, 0, .16);--tw-shadow-colored: 0 2px 12px -4px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);inset-inline-end:auto;width:var(--arcgis-browser-pane-width);border:1px solid var(--calcite-color-border-3);border-inline-start:none;transform:translate3d(-24px,0,0)}.sheet--active .sheet__contents{opacity:1;transform:translateZ(0)}.hide{display:none}.aria-hidden{height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;position:absolute;top:0;bottom:0;width:0px;inset-inline-end:0}.content__view--flex{display:flex;flex-direction:column}.cover{display:flex;flex:1 1 0%;align-items:flex-start;justify-content:center;overflow:auto;padding-bottom:1rem;padding-top:.25rem}.no-results{height:100%;width:100%;flex:1 1 0%;text-align:center;font-size:1.125rem;color:var(--calcite-color-text-2)}::slotted([slot="no-results"]){width:100%}::slotted([slot="no-content"]){width:100%}.results-wrapper{flex:1 1 0%}.results-wrapper--spaced{padding-top:1.5rem}.loader{margin-top:min(8rem,30vh);--calcite-loader-padding: 0}.filters{box-sizing:border-box;flex-grow:0;padding-inline:1.5rem 0;width:var(--arcgis-browser-pane-width)}.filters--sticky{position:sticky;top:0;height:100%}.filters__content{overflow-y:auto;height:100%;padding-top:1.5rem;box-sizing:border-box;scrollbar-gutter:stable}.filters--empty{display:none}.filters--active{opacity:1;transform:translateZ(0)}.filters__title{margin:0 0 1rem;padding:0 0 1rem;font-size:1.125rem;font-weight:500;color:var(--calcite-color-text-1);padding-inline-start:.75rem;border-bottom:1px solid var(--calcite-color-border-3)}.range{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;color:var(--calcite-color-text-1)}.container{display:flex;height:100%;width:100%;flex-direction:column;background-color:var(--calcite-color-background)}.container__header{display:flex;flex:0 1 auto;flex-direction:row;background-color:var(--calcite-color-foreground-1);border-bottom:1px solid var(--calcite-color-border-3)}.container__header__text{margin:0;flex:1 1 0%;padding:.875rem .75rem;font-size:1rem;font-weight:500;color:var(--calcite-color-text-2)}.container__content{flex:1 1 0%;overflow:auto}.container__footer{box-sizing:border-box;width:100%;flex:0 1 auto;background-color:var(--calcite-color-foreground-1);padding:.5rem}.small .filters{padding:0}.small .filters__content{padding-left:1rem;padding-right:1rem}.small .content__view{padding-inline:.5rem;margin-inline:0}.small .content__view--panel{padding-inline:0}.small .content__start{margin-inline:0;padding-inline:.5rem}@media screen and (max-width:640px){:host{--arcgis-browser-pane-width: 100%}}.scrim__find{margin-top:3.5rem;opacity:.6;transition-property:opacity;transition-duration:.15s;--calcite-scrim-background: rgba(0, 0, 0, .6)}`;
14
+ function C(d) {
15
+ const t = Math.max(d?.total ?? 0, 0), e = d?.results?.length ?? 0;
16
+ if (!t || !e)
17
+ return { start: 0, end: 0, total: t };
18
+ const i = Math.max(d?.start ?? 1, 1), s = Math.min(i + e - 1, t);
19
+ return { start: i, end: s, total: t };
20
+ }
21
+ const R = ["folder", "group", "contentType"], T = (d) => d.type === "item-browser", E = (d = {}) => P({
22
+ filters: {},
23
+ hiddenFilters: [],
24
+ ...d
25
+ });
26
+ function W(d, t) {
27
+ const e = a(() => d.preview, t);
28
+ return () => e.remove();
29
+ }
30
+ const z = 49;
31
+ class U extends b {
32
+ constructor() {
33
+ super(...arguments), this._messages = S({ blocking: !0 }), this._previewContainer = $(), this.toggleScrim = (t) => {
34
+ this.scrimActive = t.detail;
35
+ }, this.checkFlowItem = () => {
36
+ this.flowItem = w(this.el, "calcite-flow-item");
37
+ }, this.handleResize = () => {
38
+ requestAnimationFrame(this.updatePreviewPosition);
39
+ }, this.updatePreviewPosition = () => {
40
+ if (this.formFactor === "small" || this.height !== "auto" || !this._previewContainer)
41
+ return;
42
+ this.checkFlowItem();
43
+ const t = this._previewContainer.value?.getBoundingClientRect();
44
+ if (!t)
45
+ return;
46
+ const { x: e, y: i, height: s, right: n, width: l } = t, m = s + i, c = window.innerWidth - document.body.offsetWidth, v = window.innerWidth < l || window.innerWidth < window.outerWidth && window.innerWidth <= l + c;
47
+ this.previewBoundingBox = {
48
+ top: Math.max(i, 0),
49
+ left: e,
50
+ right: v ? 0 : window.outerWidth - n - c,
51
+ bottom: m > window.innerHeight ? 0 : window.innerHeight - m
52
+ };
53
+ }, this.pageRangeText = "", this.noResults = !1, this.initialHide = !0, this.scrimActive = !1, this.panel = !1, this.preview = !1, this.loading = !1, this.hideContentTop = !1, this.alwaysShowSelection = !1, this.alwaysShowContent = !1, this.response = {
54
+ nextStart: -1,
55
+ num: 0,
56
+ results: [],
57
+ start: 1,
58
+ total: 0
59
+ }, this.store = E(), this.formFactor = "large", this.searchTerm = "", this.height = "full", this.arcgisAriaUpdate = _();
60
+ }
61
+ static {
62
+ this.properties = { pageRangeText: 16, noResults: 16, previewBoundingBox: 16, initialHide: 16, scrimActive: 16, flowItem: 16, panel: 5, preview: 5, loading: 5, hideContentTop: 5, hideTopBar: 5, selected: 0, alwaysShowSelection: 5, alwaysShowContent: 5, response: 0, store: 0, formFactor: 1, searchTerm: 1, height: 3, hideFilters: 5, showPreSearch: 5, rangeFormatter: 0, alwaysShowPagination: 5 };
63
+ }
64
+ static {
65
+ this.styles = B;
66
+ }
67
+ async scrollToTop() {
68
+ this.renderRoot.querySelector(".top-bar")?.scrollIntoView({ behavior: "smooth", block: "nearest" });
69
+ }
70
+ connectedCallback() {
71
+ super.connectedCallback(), window.addEventListener("scroll", this.handleResize), window.addEventListener("resize", this.handleResize), this.el.addEventListener("arcgisItemBrowserScrimToggle", this.toggleScrim), this.checkFlowItem(), this.attachStoreWatchers();
72
+ }
73
+ willUpdate(t) {
74
+ t.has("store") && this.attachStoreWatchers(), t.has("response") && this.updatePage(this.response);
75
+ }
76
+ firstUpdated() {
77
+ requestAnimationFrame(this.updatePreviewPosition);
78
+ }
79
+ disconnectedCallback() {
80
+ this.removePreviewWatcher?.(), this.removeStoreWatcher?.(), window.removeEventListener("resize", this.handleResize), window.removeEventListener("scroll", this.handleResize), this.el.removeEventListener("arcgisItemBrowserScrimToggle", this.toggleScrim), super.disconnectedCallback();
81
+ }
82
+ attachStoreWatchers() {
83
+ if (this.removePreviewWatcher?.(), this.removeStoreWatcher?.(), !this.store)
84
+ return;
85
+ this.removePreviewWatcher = W(this.store, this.updatePreviewPosition);
86
+ const t = [
87
+ a(() => this.store.type, () => this.requestUpdate()),
88
+ a(() => this.store.width, () => this.requestUpdate()),
89
+ a(() => this.store.height, () => this.requestUpdate()),
90
+ a(() => this.store.filtersEmpty, () => this.requestUpdate()),
91
+ a(() => this.store.topbarEmpty, () => this.requestUpdate()),
92
+ a(() => this.store.sortEmpty, () => this.requestUpdate()),
93
+ a(() => this.store.filtersExpanded, () => this.requestUpdate()),
94
+ a(() => this.store.panel, () => this.requestUpdate()),
95
+ a(() => this.store.preview, () => this.requestUpdate()),
96
+ a(() => this.store.searchTerm, () => this.requestUpdate()),
97
+ a(() => this.store.hiddenFilters, () => this.requestUpdate()),
98
+ a(() => this.store.filters, () => this.requestUpdate()),
99
+ a(() => this.store.recycleBin, () => this.requestUpdate())
100
+ ];
101
+ this.removeStoreWatcher = () => {
102
+ t.forEach((e) => e.remove());
103
+ };
104
+ }
105
+ async updatePage(t) {
106
+ const [e, i] = await this.updatePageRange(t);
107
+ this.pageRangeText = e, this.arcgisAriaUpdate.emit(i), this.noResults = T(this.store) && this.store.recycleBin ? t.results.length === 0 : (t?.total ?? 0) === 0, this.initialHide = !1;
108
+ }
109
+ async updatePageRange(t) {
110
+ const { start: e, end: i, total: s } = C(t), n = h.formatNumber(e, { maximumFractionDigits: 0 }), l = h.formatNumber(i, { maximumFractionDigits: 0 }), c = `${h.formatNumber(s, { maximumFractionDigits: 0 })}${s >= 1e4 ? "+" : ""}`, v = h.formatNumber(t.results?.length ?? 0, { maximumFractionDigits: 0 }), g = h.formatNumber(Math.max(Math.ceil(e / Math.max(t.num || 1, 1)), 1), {
111
+ maximumFractionDigits: 0
112
+ });
113
+ if (this.rangeFormatter)
114
+ return await this.rangeFormatter({
115
+ start: n,
116
+ end: l,
117
+ total: c,
118
+ results: { items: v, page: g }
119
+ });
120
+ const u = (this._messages.range?.summary ?? "${start}-${end} of ${total}").replace("${start}", n).replace("${end}", l).replace("${total}", c), f = (this._messages.range?.announcement ?? "Showing ${start} to ${end} of ${total} results").replace("${start}", n).replace("${end}", l).replace("${total}", c);
121
+ return [u, f];
122
+ }
123
+ hasActiveFilter(t) {
124
+ return Object.values(t.filters).filter(({ id: e }) => !k(R, e)).some((e) => !!e.value || e.id === "collaborations");
125
+ }
126
+ removeFilter(t) {
127
+ const e = this.store.filters[t];
128
+ if (!e)
129
+ return;
130
+ const i = { ...e, value: void 0 };
131
+ "additionalParams" in e && (i.additionalParams = void 0);
132
+ const s = { ...this.store.filters, [t]: i };
133
+ this.store.filters = s;
134
+ }
135
+ clearFilters() {
136
+ const t = Object.entries(this.store.filters).reduce((e, [i, s]) => this.store.hiddenFilters?.includes(i) || s.id === "folder" || s.id === "group" || s.id === "contentType" ? (e[i] = s, e) : (e[i] = {
137
+ ...s,
138
+ value: void 0,
139
+ ..."additionalParams" in s ? { additionalParams: void 0 } : {}
140
+ }, e), {});
141
+ this.store.filters = t;
142
+ }
143
+ renderNoResults() {
144
+ const t = this.noResults && !this.loading && !this.showPreSearch, e = this.hasActiveFilter(this.store) || !!this.searchTerm;
145
+ return t ? r`<div class="cover"><div class="no-results">${e ? r`<slot name=no-results></slot>` : r`<slot name=no-content></slot>`}</div></div>` : null;
146
+ }
147
+ renderPopoverContents(t, e, i) {
148
+ const s = this.flowItem ? this.flowItem.offsetHeight : this.store.height, n = this.formFactor === "small" && this.hasActiveFilter(this.store) && !this.hideFilters;
149
+ return r`<div style=${p({
150
+ width: i ? "100%" : `${this.store.width || 0}px`,
151
+ height: i ? "100%" : `${s || 0}px`
152
+ })}><div class=${o({ hide: !e, "preview-panel": !0 })}><slot name=preview></slot></div><div class=${o({ hide: !t, "filter-panel": !0 })}><article class="container"><header class="container__header"><h2 class="container__header__text">${this._messages.browser?.refineContent}</h2><calcite-action .text=${this._messages.browser?.close} scale=m icon=x @click=${() => {
153
+ this.store.filtersExpanded = !1;
154
+ }}></calcite-action></header><div class="container__content"><div class="container__content__scroll"><slot name=filters-top></slot>${(this.store.panel || i) && r`<div class="filter-container__content"><slot name=sort></slot></div>` || ""}<slot name=filters></slot></div></div><div class=${o({ "filter-status--mobile": !0, container__footer: !0, hide: !n })}><arcgis-portal-browser-filter-status class="filter-status" .filters=${this.store.filters} .t9n=${this._messages.filterStatus} .hiddenFilterIds=${this.store.hiddenFilters || []} .componentWidth=${this.store.width || this.flowItem?.offsetWidth || window.innerWidth} .browserWidth=${window.innerWidth} @arcgisBrowserFilterClear=${() => this.clearFilters()} @arcgisBrowserFilterRemove=${(l) => this.removeFilter(l.detail)}></arcgis-portal-browser-filter-status></div></article></div></div>`;
155
+ }
156
+ renderFlow() {
157
+ const t = !!this.store.panel, e = !!this.store.filtersExpanded && (!this.store.filtersEmpty || !this.store.sortEmpty && t), i = !!this.store.preview, s = !this.store.panel && document.documentElement.clientWidth > (this.store.width || 0);
158
+ return r`<div class=${o({ panel: !0, "panel--fixed": s })}>${!this.hideTopBar && r`<div class=${o({ "top-bar": !0, "top-bar--small": this.formFactor === "small" })}><slot name=top-bar></slot></div>` || ""}<div class="scrolling scrolling--panel"><div class=${o({ "two-up": !0, [this.formFactor]: !0 })}><div class="content"><div><slot name=primary-filter></slot></div><div class="content__start"><slot name=content-start></slot></div>${this.loading && !this.alwaysShowContent && r`<div class="content__view content__view--flex"><div class="cover"><calcite-loader class="loader" label></calcite-loader></div></div>` || ""}${this.noResults && !this.loading && r`<div class="content__view content__view--flex"><div class="cover">${this.renderNoResults()}</div></div>` || ""}<div class=${o({
159
+ hide: this.loading || this.noResults,
160
+ // eslint-disable-next-line @typescript-eslint/naming-convention
161
+ content__view: !0,
162
+ "content__view--panel": !!this.store.panel,
163
+ "content__view--flex": !this.loading && !this.noResults
164
+ })}>${!this.store.panel && !this.hideContentTop && r`<div class="content__top"><span class=${o({ selection: !0, hide: !this.alwaysShowSelection })}><slot name=selection></slot></span>${!this.loading && r`<span class="range">${this.pageRangeText}</span>` || ""}<span class="actions"><slot name=actions></slot></span><div class="content__top__end"><slot name=view></slot>${!t && r`<slot name=sort></slot>` || ""}</div></div>` || ""}<div class="flow-content"><slot name=content></slot></div><slot name=pagination></slot><slot name=content-end></slot></div></div></div><slot name=scroll-end></slot></div>${!this.store.panel || window.innerWidth < (this.store.width || 0) * 2 ? r`<div class=${o({
165
+ sheet: !0,
166
+ "sheet--active": e || i,
167
+ "sheet--top-bar": s
168
+ })}><div class=${o({ sheet__background: !0, "sheet__background--hidden": s })}></div><div class=${o({ sheet__contents: !0, "sheet__contents--full": s })}>${this.renderPopoverContents(e, i, !0)}</div></div>` : r`<calcite-popover overlay-positioning=fixed .open=${i || e} label=filters .referenceElement=${this.flowItem || this.el} offset-skidding=0 offset-distance=0 trigger-disabled pointer-disabled .placement=${this.store.panel ? "trailing" : "auto"} @calcitePopoverOpen=${(n) => {
169
+ (!this.store.panel || window.innerWidth < (this.store.width || 0) * 2) && (n.currentTarget.style.transform = "none");
170
+ }} .focusTrapOptions=${{
171
+ setReturnFocus: (n) => {
172
+ if (!(n instanceof HTMLElement))
173
+ return n;
174
+ const l = w(n, "arcgis-portal-item-card, arcgis-portal-group-card");
175
+ return l?.restoreFocus ? (l.restoreFocus(), !1) : n;
176
+ }
177
+ }}>${this.renderPopoverContents(e, i)}</calcite-popover>`}</div>`;
178
+ }
179
+ render() {
180
+ const t = this.height === "auto", e = this.height === "full", i = `${(this.store.height || window.innerHeight) - z}px`, s = t ? {} : { maxHeight: i };
181
+ return this.formFactor === "small" ? this.renderFlow() : r`<div class=${o({
182
+ wrapper: !0,
183
+ "wrapper--fixed": !!this.store.filtersExpanded,
184
+ "wrapper--auto": t,
185
+ "wrapper--full": e
186
+ })}>${!this.hideTopBar && r`<div class="top-bar"><slot name=top-bar></slot></div>` || ""}<slot name=top-bar-end></slot><div class=${o({ "preview-position": !0, "preview-position--with-top-bar": !this.store.topbarEmpty })} ${F(this._previewContainer)}><div class=${o({ preview: !0, "preview--active": !!this.store.preview, "preview--fixed": t })} style=${p(t && this.previewBoundingBox ? {
187
+ top: `${this.previewBoundingBox.top || 0}px`,
188
+ ...document.dir === "rtl" ? { right: `${this.previewBoundingBox.right || 0}px` } : { left: `${this.previewBoundingBox.left || 0}px` },
189
+ bottom: `${this.previewBoundingBox.bottom || 0}px`
190
+ } : {})}><div class=${o({ pane: !0, "pane--open": !!this.store.preview })}><div class="preview-desktop"><slot name=preview></slot></div></div></div></div><div class=${o({ scrolling: !0, "scrolling--full": !t || this.panel })}>${this.scrimActive && r`<calcite-scrim class="scrim__find"></calcite-scrim>` || ""}<div class=${o({ "two-up": !0, "two-up--fullscreen": e, [this.formFactor]: !0 })}><div class=${o({
191
+ filters: !0,
192
+ "filters--sticky": !t,
193
+ "filters--empty": this.store.filtersEmpty && !this.store.preview,
194
+ "filters--active": !!this.store.filtersExpanded
195
+ })} style=${p(e ? {} : s)}><div class="filters__content" style=${p(e ? {} : s)}><slot name=filters></slot></div></div><div class=${o({ content: !0, "content--full": e })}><div class="content__start"><slot name=content-start></slot></div><div class=${o({
196
+ // eslint-disable-next-line @typescript-eslint/naming-convention
197
+ content__view: !0,
198
+ "content__view--no-filters": this.store.filtersEmpty && !this.store.preview,
199
+ "content__view--flex": !0
200
+ })}>${!this.hideContentTop && r`<div class="content__top">${this.showPreSearch ? null : r`<div class="content__top__summary"><span class=${o({ selection: !0, hide: !this.alwaysShowSelection })}><slot name=selection></slot></span>${!this.loading && r`<span class="range">${this.pageRangeText}<slot name=range-end></slot></span>` || ""}</div>`}<span class="actions"><slot name=actions></slot></span><div class="content__top__end"><slot name=view></slot><slot name=sort></slot></div></div>` || ""}${this.loading && (!this.alwaysShowContent || this.initialHide) && r`<div class="cover"><calcite-loader class="loader" .label=${this._messages.browser?.loading ?? ""}></calcite-loader></div>` || ""}${this.renderNoResults()}${!this.loading && this.showPreSearch && r`<div class="cover"><div class="no-results"><slot name=pre-search></slot></div></div>` || ""}<div class=${o({
201
+ hide: !!this.showPreSearch || this.loading && !this.alwaysShowContent || !this.loading && this.noResults || this.initialHide,
202
+ "results-wrapper--spaced": this.hideContentTop,
203
+ "results-wrapper": !0
204
+ })}><slot name=content></slot></div><div class=${o({ hide: this.loading || this.noResults && !this.alwaysShowPagination })}><slot name=pagination></slot><slot name=content-end></slot></div></div></div></div><slot name=scroll-end></slot></div></div>`;
205
+ }
206
+ }
207
+ x("arcgis-portal-browser", U);
208
+ export {
209
+ U as ArcgisPortalBrowser
210
+ };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -0,0 +1,6 @@
1
+ import "@esri/calcite-components/components/calcite-action";
2
+ import "../arcgis-portal-browser-filter-status/index.js";
3
+ import "@esri/calcite-components/components/calcite-loader";
4
+ import "@esri/calcite-components/components/calcite-popover";
5
+ import "@esri/calcite-components/components/calcite-scrim";
6
+ export * from "./customElement.js";
@@ -0,0 +1,29 @@
1
+ import type Accessor from "@arcgis/core/core/Accessor.js";
2
+
3
+ export type PortalBrowserFilterDetail = {
4
+ id: string;
5
+ label: string;
6
+ value: unknown;
7
+ additionalParams?: unknown;
8
+ };
9
+
10
+ export type PortalBrowserStore = ReturnType<typeof createPortalBrowserStore>;
11
+
12
+ /** @param initialState */
13
+ export function createPortalBrowserStore(initialState?: Partial<PortalBrowserState>): Accessor & PortalBrowserState;
14
+
15
+ export interface PortalBrowserState {
16
+ type?: "group-browser" | "item-browser" | "member-browser";
17
+ width?: number;
18
+ height?: number;
19
+ filtersEmpty?: boolean;
20
+ topbarEmpty?: boolean;
21
+ sortEmpty?: boolean;
22
+ filtersExpanded?: boolean;
23
+ panel?: boolean;
24
+ preview?: string;
25
+ searchTerm?: string;
26
+ hiddenFilters?: string[];
27
+ filters: Record<string, PortalBrowserFilterDetail>;
28
+ recycleBin?: boolean;
29
+ }
@@ -0,0 +1,12 @@
1
+ /** @param input */
2
+ export type RangeFormatter = (input: RangeFormatInput) => Promise<[string, string]>;
3
+
4
+ export interface RangeFormatInput {
5
+ start: string;
6
+ end: string;
7
+ total: string;
8
+ results: {
9
+ items: string;
10
+ page: string;
11
+ };
12
+ }
@@ -0,0 +1,25 @@
1
+ /// <reference path="../../index.d.ts" />
2
+ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { PortalBrowserFilterDetail } from "../arcgis-portal-browser/utils/store.js";
4
+
5
+ export abstract class ArcgisPortalBrowserFilterStatus extends LitElement {
6
+ /** Pass the width of the browser from state */
7
+ accessor browserWidth: number | undefined;
8
+ /** Pass the width of the component container */
9
+ accessor componentWidth: number | undefined;
10
+ accessor filters: Record<string, PortalBrowserFilterDetail>;
11
+ accessor hiddenFilterIds: string[];
12
+ accessor t9n: FilterStatusT9n;
13
+ readonly arcgisBrowserFilterClear: import("@arcgis/lumina").TargetedEvent<this, null>;
14
+ readonly arcgisBrowserFilterRemove: import("@arcgis/lumina").TargetedEvent<this, string>;
15
+ readonly "@eventTypes": {
16
+ arcgisBrowserFilterClear: ArcgisPortalBrowserFilterStatus["arcgisBrowserFilterClear"]["detail"];
17
+ arcgisBrowserFilterRemove: ArcgisPortalBrowserFilterStatus["arcgisBrowserFilterRemove"]["detail"];
18
+ };
19
+ }
20
+
21
+ export type FilterStatusT9n = {
22
+ filters: string;
23
+ additional: string;
24
+ clearAllFilters: string;
25
+ };
@@ -0,0 +1,55 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import { c as h } from "../../chunks/runtime.js";
3
+ import { keyed as u } from "lit/directives/keyed.js";
4
+ import { LitElement as p, createEvent as c } from "@arcgis/lumina";
5
+ import { css as m, html as s } from "lit";
6
+ import { b } from "../../chunks/ui.js";
7
+ import { g as f } from "../../chunks/dom.js";
8
+ const w = m`:host{display:flex;align-items:center}.status-list{display:flex;align-items:center;max-width:100%}.status-chip{max-width:100%;--calcite-color-foreground-2: var(--calcite-color-foreground-1)}.chip-group{max-width:100%;min-width:0}.status-chip__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-content{max-width:28rem;padding:.75rem}.clear-button{margin-inline-start:.25rem}`;
9
+ class B extends p {
10
+ constructor() {
11
+ super(...arguments), this.inBounds = [], this.outOfBounds = [], this.filters = {}, this.hiddenFilterIds = [], this.arcgisBrowserFilterClear = c(), this.arcgisBrowserFilterRemove = c();
12
+ }
13
+ static {
14
+ this.properties = { inBounds: 16, outOfBounds: 16, filters: 0, hiddenFilterIds: 0, t9n: 0, componentWidth: 9, browserWidth: 9 };
15
+ }
16
+ static {
17
+ this.styles = w;
18
+ }
19
+ connectedCallback() {
20
+ super.connectedCallback(), this.processValidFilters();
21
+ }
22
+ willUpdate(t) {
23
+ (t.has("filters") || t.has("hiddenFilterIds") || t.has("componentWidth") || t.has("browserWidth")) && this.processValidFilters();
24
+ }
25
+ isFilterValid(t) {
26
+ return this.hiddenFilterIds.includes(t.id) ? !1 : t.id === "collaborations" && "additionalParams" in t ? !!(t.additionalParams && t.label) : !!(t.value && t.label);
27
+ }
28
+ processValidFilters() {
29
+ const t = Object.values(this.filters).filter(this.isFilterValid.bind(this)), i = this.componentWidth ?? 0;
30
+ if ((this.browserWidth ?? window.innerWidth) < b.sm) {
31
+ this.inBounds = t, this.outOfBounds = [];
32
+ return;
33
+ }
34
+ const d = Math.max(i - 460, 0);
35
+ let r = 0;
36
+ const a = [], l = [];
37
+ t.forEach((o) => {
38
+ const n = f({ text: o.label ?? "" });
39
+ !i || r + n <= d ? (a.push(o), r += n) : l.push(o);
40
+ }), this.inBounds = a, this.outOfBounds = l;
41
+ }
42
+ renderChip(t) {
43
+ return u(t.id, s`<calcite-chip class="status-chip" scale=s .label=${t.label} .value=${t.id} closable appearance=outline @calciteChipClose=${() => {
44
+ this.arcgisBrowserFilterRemove.emit(t.id);
45
+ }}><span class="status-chip__label">${t.label}</span></calcite-chip>`);
46
+ }
47
+ render() {
48
+ const t = this.outOfBounds.length > 0, i = this.inBounds.length + this.outOfBounds.length;
49
+ return i ? s`<div class="status-list"><calcite-chip-group class="chip-group" .label=${this.t9n.filters} scale=s>${this.inBounds.map((e) => this.renderChip(e))}${t && s`<calcite-button id=popover-button round kind=neutral appearance=outline scale=s>+ ${this.outOfBounds.length}</calcite-button>` || ""}</calcite-chip-group>${t && s`<calcite-popover .label=${this.t9n.additional} reference-element=popover-button placement=bottom-end><div class="popover-content"><calcite-chip-group .label=${this.t9n.additional} scale=s>${this.outOfBounds.map((e) => this.renderChip(e))}</calcite-chip-group></div></calcite-popover>` || ""}${i > 1 && s`<calcite-button class="clear-button" scale=s appearance=transparent kind=brand @click=${() => this.arcgisBrowserFilterClear.emit(null)}>${this.t9n.clearAllFilters}</calcite-button>` || ""}</div>` : null;
50
+ }
51
+ }
52
+ h("arcgis-portal-browser-filter-status", B);
53
+ export {
54
+ B as ArcgisPortalBrowserFilterStatus
55
+ };
@@ -0,0 +1 @@
1
+ export * from "./customElement.js";
@@ -0,0 +1,5 @@
1
+ import "@esri/calcite-components/components/calcite-chip";
2
+ import "@esri/calcite-components/components/calcite-chip-group";
3
+ import "@esri/calcite-components/components/calcite-button";
4
+ import "@esri/calcite-components/components/calcite-popover";
5
+ export * from "./customElement.js";
@@ -4,13 +4,9 @@ import { css as y, html as r } from "lit";
4
4
  import { LitElement as C, createEvent as w, safeClassMap as g, nothing as l } from "@arcgis/lumina";
5
5
  import { createRef as F, ref as $ } from "lit/directives/ref.js";
6
6
  import { u as z } from "../../chunks/useT9n.js";
7
+ import { b as o } from "../../chunks/ui.js";
7
8
  import { a as E } from "../../chunks/functionalities.js";
8
- const o = {
9
- md: 840,
10
- sm: 580,
11
- xs: 480,
12
- xxs: 360
13
- }, B = y`:host{display:block;min-width:0}.group-card{position:relative;display:flex;height:100%;flex-direction:column;color:var(--calcite-color-text-1);opacity:0;box-shadow:none;transition-duration:.15s;outline-color:transparent;background-color:var(--calcite-color-foreground-1);transition-property:background-color,outline,outline-offset,opacity;border:1px solid var(--calcite-color-border-3);&:focus{z-index:10;outline:2px solid var(--calcite-color-brand);outline-offset:-2px}}.group-card--loaded{opacity:1}.group-card--selected{border-color:var(--calcite-color-brand)}.group-card--hoverable{cursor:pointer}.group-card--disabled{opacity:.5}.group-card__top{padding:1rem}.group-card__upper{flex:1 1 0%;background-color:var(--calcite-color-foreground-1);transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s}.group-card__upper:hover{background-color:var(--calcite-color-background)}.group-card__upper--compact{display:flex;align-items:center;padding:.5rem .75rem}.group-card__upper--link{color:var(--calcite-color-text-1);text-decoration-line:none;outline-color:transparent;&:focus{z-index:10;outline:2px solid var(--calcite-color-brand);outline-offset:2px}}.group-card__title__span{position:relative;display:inline;border-style:none;background-color:transparent;padding:0;transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s;background-image:linear-gradient(transparent,transparent);background-position-x:0%,100%;background-position-y:min(1.25em,100%);background-repeat:no-repeat,no-repeat;background-size:100% 1px,100% 1px}.group-card--previewed .group-card__title__span{background-image:linear-gradient(var(--calcite-color-text-3),var(--calcite-color-text-3))}.group-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column}.group-card__details{display:flex;flex-direction:row;flex-wrap:wrap}.group-card__details--stacked{flex-direction:column}.group-card__detail{font-size:.875rem;color:var(--calcite-color-text-2)}.group-card__detail__icon{margin-inline-end:.5rem}.group-card__footer{margin-top:auto;display:flex;align-items:center;background-color:var(--calcite-color-foreground-1);padding:.5rem 1rem;border-top:1px solid var(--calcite-color-border-3)}.group-card__footer__start{display:flex;min-width:0;flex:1 1 0%;flex-direction:row;align-items:center;overflow:hidden;margin-inline-end:.75rem}.group-card__profile-wrap{max-width:100%;padding:.25rem}.group-card__divider{display:flex;align-items:center;flex:0 0 auto}.group-card__divider:not([empty]):before{content:"";height:1.25rem;width:1px;background-color:var(--calcite-color-border-1);margin-inline:.75rem}.group-card__details--stacked .group-card__divider:before{display:none}.group-card__divider:first-child:before{display:none}.group-card-flex{display:flex}.group-card-flex-1{min-width:0;flex:1 1 0%}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.group-card__input{margin-inline-end:1rem;margin-top:.125rem}.group-card__title{margin:0;overflow-wrap:break-word;padding:0;font-size:1rem;font-weight:500;line-height:1.375}.group-card__title--compact{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-inline-end:1rem}.group-card__summary{margin:.25rem 0;flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:.875rem;line-height:1.25}.group-card__thumbnail{margin-inline-end:1rem}.group-card__thumbnail--compact{width:2.75rem;height:2.75rem}.group-card__badges{margin-top:.25rem}.group-card__owner{min-width:0}.group-card--xs,.group-card--xxs{.group-card__top{padding:.75rem}.group-card__title--padded{margin-bottom:.25rem}.group-card__footer{padding:.25rem .75rem}.group-card__detail{margin:.25rem 0;font-size:.75rem;line-height:1.35}.group-card__title{font-size:.875rem}}.group-card--xxs{.group-card__thumbnail{padding-inline-start:.75rem;width:4.25rem}}.group-card--xs{.group-card__thumbnail{padding-inline-start:.5rem;width:5rem}}`;
9
+ const B = y`:host{display:block;min-width:0}.group-card{position:relative;display:flex;height:100%;flex-direction:column;color:var(--calcite-color-text-1);opacity:0;box-shadow:none;transition-duration:.15s;outline-color:transparent;background-color:var(--calcite-color-foreground-1);transition-property:background-color,outline,outline-offset,opacity;border:1px solid var(--calcite-color-border-3);&:focus{z-index:10;outline:2px solid var(--calcite-color-brand);outline-offset:-2px}}.group-card--loaded{opacity:1}.group-card--selected{border-color:var(--calcite-color-brand)}.group-card--hoverable{cursor:pointer}.group-card--disabled{opacity:.5}.group-card__top{padding:1rem}.group-card__upper{flex:1 1 0%;background-color:var(--calcite-color-foreground-1);transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s}.group-card__upper:hover{background-color:var(--calcite-color-background)}.group-card__upper--compact{display:flex;align-items:center;padding:.5rem .75rem}.group-card__upper--link{color:var(--calcite-color-text-1);text-decoration-line:none;outline-color:transparent;&:focus{z-index:10;outline:2px solid var(--calcite-color-brand);outline-offset:2px}}.group-card__title__span{position:relative;display:inline;border-style:none;background-color:transparent;padding:0;transition:all var(--calcite-animation-timing) ease-in-out 0s,outline 0s,outline-offset 0s;background-image:linear-gradient(transparent,transparent);background-position-x:0%,100%;background-position-y:min(1.25em,100%);background-repeat:no-repeat,no-repeat;background-size:100% 1px,100% 1px}.group-card--previewed .group-card__title__span{background-image:linear-gradient(var(--calcite-color-text-3),var(--calcite-color-text-3))}.group-card__content{display:flex;min-width:0;flex:1 1 0%;flex-direction:column}.group-card__details{display:flex;flex-direction:row;flex-wrap:wrap}.group-card__details--stacked{flex-direction:column}.group-card__detail{font-size:.875rem;color:var(--calcite-color-text-2)}.group-card__detail__icon{margin-inline-end:.5rem}.group-card__footer{margin-top:auto;display:flex;align-items:center;background-color:var(--calcite-color-foreground-1);padding:.5rem 1rem;border-top:1px solid var(--calcite-color-border-3)}.group-card__footer__start{display:flex;min-width:0;flex:1 1 0%;flex-direction:row;align-items:center;overflow:hidden;margin-inline-end:.75rem}.group-card__profile-wrap{max-width:100%;padding:.25rem}.group-card__divider{display:flex;align-items:center;flex:0 0 auto}.group-card__divider:not([empty]):before{content:"";height:1.25rem;width:1px;background-color:var(--calcite-color-border-1);margin-inline:.75rem}.group-card__details--stacked .group-card__divider:before{display:none}.group-card__divider:first-child:before{display:none}.group-card-flex{display:flex}.group-card-flex-1{min-width:0;flex:1 1 0%}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.group-card__input{margin-inline-end:1rem;margin-top:.125rem}.group-card__title{margin:0;overflow-wrap:break-word;padding:0;font-size:1rem;font-weight:500;line-height:1.375}.group-card__title--compact{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-inline-end:1rem}.group-card__summary{margin:.25rem 0;flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:.875rem;line-height:1.25}.group-card__thumbnail{margin-inline-end:1rem}.group-card__thumbnail--compact{width:2.75rem;height:2.75rem}.group-card__badges{margin-top:.25rem}.group-card__owner{min-width:0}.group-card--xs,.group-card--xxs{.group-card__top{padding:.75rem}.group-card__title--padded{margin-bottom:.25rem}.group-card__footer{padding:.25rem .75rem}.group-card__detail{margin:.25rem 0;font-size:.75rem;line-height:1.35}.group-card__title{font-size:.875rem}}.group-card--xxs{.group-card__thumbnail{padding-inline-start:.75rem;width:4.25rem}}.group-card--xs{.group-card__thumbnail{padding-inline-start:.5rem;width:5rem}}`;
14
10
  class D extends C {
15
11
  constructor() {
16
12
  super(...arguments), this.messages = z({ blocking: !0 }), this.sectionEl = F(), this.resizeObserver = null, this.handleCardClick = (e) => {