@arcgis/portal-components 5.2.0-next.65 → 5.2.0-next.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/2BUE3JLM.js +2 -0
- package/dist/cdn/{Y7FCEDRU.js → 2OU5PLGU.js} +1 -1
- package/dist/cdn/2WI5FBDF.js +2 -0
- package/dist/cdn/3VHBMKYX.js +2 -0
- package/dist/cdn/64DIXKV3.js +2 -0
- package/dist/cdn/6KVA4AKM.js +2 -0
- package/dist/cdn/6TO2BYXU.js +2 -0
- package/dist/cdn/AR6YIWRX.js +2 -0
- package/dist/cdn/CYCKQHLO.js +2 -0
- package/dist/cdn/{ZV4GLQQG.js → D4VYYWA6.js} +1 -1
- package/dist/cdn/DEOAKHYN.js +2 -0
- package/dist/cdn/FKVT4PNP.js +2 -0
- package/dist/cdn/GC6YLNZF.js +2 -0
- package/dist/cdn/{VD6VGWCQ.js → JMEXULSL.js} +1 -1
- package/dist/cdn/KTBQ26TD.js +2 -0
- package/dist/cdn/LRADZ46B.js +2 -0
- package/dist/cdn/NWT7EITA.js +2 -0
- package/dist/cdn/{EE7XFMJG.js → O5AP2PN5.js} +1 -1
- package/dist/cdn/OUNIRHWU.js +2 -0
- package/dist/cdn/{XW42SAEJ.js → QFI3ZPNB.js} +1 -1
- package/dist/cdn/QMFRNHQJ.js +2 -0
- package/dist/cdn/QNA62UMC.js +2 -0
- package/dist/cdn/{6RLJVPF6.js → QWMWVF47.js} +1 -1
- package/dist/cdn/RWQL7W3X.js +2 -0
- package/dist/cdn/T6Z7IFG2.js +2 -0
- package/dist/cdn/USQ4RJYL.js +2 -0
- package/dist/cdn/{Q7SDLUZ6.js → V257KGGO.js} +1 -1
- package/dist/cdn/XSUV6RLR.js +2 -0
- package/dist/cdn/XTTOOMCY.js +66 -0
- package/dist/cdn/{CG4WYBHN.js → XUIVR4NX.js} +1 -1
- package/dist/cdn/{7YQTBSDS.js → YQV3M6JO.js} +109 -84
- package/dist/cdn/{SOJU4OFZ.js → ZMTS73PF.js} +1 -1
- package/dist/cdn/ZSNLY6QY.js +2 -0
- package/dist/cdn/assets/portal-item-badges/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-item-card/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-item-favorite/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/portal-item-type/icons/applicationtheme16.svg +1 -0
- package/dist/cdn/assets/portal-item-type/icons/applicationtheme32.svg +1 -0
- package/dist/cdn/assets/portal-item-type/icons/layout16.svg +1 -0
- package/dist/cdn/assets/portal-item-type/icons/layout32.svg +1 -0
- package/dist/cdn/index.js +1 -1
- package/dist/cdn/main.css +1 -1
- package/dist/chunks/fieldAddDelete.js +1 -1
- package/dist/chunks/info.js +179 -0
- package/dist/chunks/item.js +8 -8
- package/dist/chunks/items.js +16 -0
- package/dist/chunks/portal-item-badge.js +346 -0
- package/dist/chunks/portal.js +3 -3
- package/dist/chunks/portal2.js +3 -3
- package/dist/chunks/query.js +4 -4
- package/dist/chunks/string.js +2 -2
- package/dist/chunks/users.js +7 -0
- package/dist/chunks/utils.js +75 -636
- package/dist/chunks/utils2.js +653 -0
- package/dist/chunks/verified.js +40 -0
- package/dist/components/arcgis-portal-account-switcher/customElement.js +58 -72
- package/dist/components/arcgis-portal-account-switcher-list/customElement.js +6 -6
- package/dist/components/arcgis-portal-ai-assistant/customElement.d.ts +9 -7
- package/dist/components/arcgis-portal-ai-assistant/customElement.js +944 -775
- package/dist/components/arcgis-portal-field-delete/customElement.js +2 -1
- package/dist/components/arcgis-portal-group-browser/customElement.js +3 -3
- package/dist/components/arcgis-portal-group-browser/types.d.ts +6 -2
- package/dist/components/arcgis-portal-group-browser-preview/customElement.d.ts +9 -9
- package/dist/components/arcgis-portal-group-browser-preview/customElement.js +16 -16
- package/dist/components/arcgis-portal-group-browser-preview-card/customElement.d.ts +18 -18
- package/dist/components/arcgis-portal-group-browser-preview-card/customElement.js +31 -30
- package/dist/components/arcgis-portal-group-card/customElement.d.ts +25 -25
- package/dist/components/arcgis-portal-group-card/customElement.js +7 -7
- package/dist/components/arcgis-portal-item-actions/customElement.d.ts +74 -0
- package/dist/components/arcgis-portal-item-actions/customElement.js +89 -0
- package/dist/components/arcgis-portal-item-actions/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-actions/index.js +5 -0
- package/dist/components/arcgis-portal-item-badge/customElement.d.ts +260 -0
- package/dist/components/arcgis-portal-item-badge/customElement.js +9 -0
- package/dist/components/arcgis-portal-item-badge/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-badge/index.js +5 -0
- package/dist/components/arcgis-portal-item-badges/customElement.d.ts +48 -0
- package/dist/components/arcgis-portal-item-badges/customElement.js +35 -0
- package/dist/components/arcgis-portal-item-badges/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-badges/index.js +2 -0
- package/dist/components/arcgis-portal-item-badges/types.d.ts +1 -0
- package/dist/components/arcgis-portal-item-card/customElement.d.ts +215 -0
- package/dist/components/arcgis-portal-item-card/customElement.js +190 -0
- package/dist/components/arcgis-portal-item-card/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-card/index.js +10 -0
- package/dist/components/arcgis-portal-item-favorite/customElement.d.ts +36 -0
- package/dist/components/arcgis-portal-item-favorite/customElement.js +66 -0
- package/dist/components/arcgis-portal-item-favorite/index.d.ts +1 -0
- package/dist/components/arcgis-portal-item-favorite/index.js +3 -0
- package/dist/components/arcgis-portal-item-favorite/utils.d.ts +4 -0
- package/dist/components/arcgis-portal-item-type/customElement.js +1 -1
- package/dist/components/arcgis-portal-navigation/customElement.js +40 -40
- package/dist/components/arcgis-portal-replacement-item-redirect/customElement.js +42 -214
- package/dist/components/arcgis-portal-user-popup/customElement.js +66 -100
- package/dist/components/portal-group-browser-filters/customElement.js +71 -73
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.d.ts +38 -0
- package/dist/loader.js +9 -4
- package/dist/types/item.d.ts +5 -1
- package/dist/types/lumina.d.ts +38 -4
- package/dist/types/preact.d.ts +43 -4
- package/dist/types/react.d.ts +48 -4
- package/dist/types/stencil.d.ts +38 -4
- package/package.json +6 -6
- package/dist/cdn/332KSPIN.js +0 -2
- package/dist/cdn/7PPA7V23.js +0 -2
- package/dist/cdn/DML7662F.js +0 -2
- package/dist/cdn/FF24VDOG.js +0 -65
- package/dist/cdn/G2NXASJO.js +0 -2
- package/dist/cdn/JZTBGLFH.js +0 -2
- package/dist/cdn/PP7GTURX.js +0 -2
- package/dist/cdn/QQ432AB6.js +0 -2
- package/dist/cdn/RKWOBE3M.js +0 -2
- package/dist/cdn/V4IAC7WR.js +0 -2
- package/dist/cdn/WEJQVIN4.js +0 -2
- package/dist/cdn/ZK2VXTNX.js +0 -2
- package/dist/components/portal-browser/components/portal-browser-filter-date/portal-browser-filter-date.d.ts +0 -122
|
@@ -5,7 +5,7 @@ import { keyed as B } from "lit/directives/keyed.js";
|
|
|
5
5
|
import { LitElement as O, createEvent as p, nothing as w, safeClassMap as C } from "@arcgis/lumina";
|
|
6
6
|
import { u as f } from "../../chunks/useT9n.js";
|
|
7
7
|
import { a as U } from "../../chunks/functionalities.js";
|
|
8
|
-
import { c as x,
|
|
8
|
+
import { c as x, a as v } from "../../chunks/string.js";
|
|
9
9
|
import "../arcgis-portal-browser-search/customElement.js";
|
|
10
10
|
import "../arcgis-portal-browser-top-bar/customElement.js";
|
|
11
11
|
import { c as R, a as _ } from "../../chunks/portal-browser.js";
|
|
@@ -447,7 +447,7 @@ class j extends O {
|
|
|
447
447
|
}), r = t.length > 0 && t.every(({ view: o }) => o === "compact");
|
|
448
448
|
return u`<div class=${C({ "group-browser__results": !0, "group-browser__results--compact": r })} .part=${"results"}>${t.map(({ group: o, cardProps: i, view: l }) => {
|
|
449
449
|
const n = o.id;
|
|
450
|
-
return B(n, u`<arcgis-portal-group-card class="group-browser__result-card" .portal=${this.portal} .group=${o} .user=${i.user} .indeterminate=${i.indeterminate} .view=${l} .selection=${this.selection} .selected=${e.has(n)} .preview=${i.preview ?? this.preview} .previewed=${i.previewed ?? this.store.preview === n} .name=${i.name} .showSummary=${i.showSummary ?? !0} .
|
|
450
|
+
return B(n, u`<arcgis-portal-group-card class="group-browser__result-card" .portal=${this.portal} .group=${o} .user=${i.user} .indeterminate=${i.indeterminate} .view=${l} .selection=${this.selection} .selected=${e.has(n)} .preview=${i.preview ?? this.preview} .previewed=${i.previewed ?? this.store.preview === n} .name=${i.name} .showSummary=${i.showSummary ?? !0} .hideBadges=${i.hideBadges ?? !1} .hideDateUpdated=${i.hideDateUpdated ?? !1} .showDateCreated=${i.showDateCreated ?? !1} .hideViewableBy=${i.hideViewableBy ?? !1} .hideOwner=${i.hideOwner ?? !1} .link=${i.link} .linkHandler=${i.linkHandler} .newTab=${i.newTab ?? !1} .disabled=${i.disabled ?? !1} @arcgisGroupCardSelect=${(h) => {
|
|
451
451
|
this.handleGroupCardSelect(h);
|
|
452
452
|
}} @arcgisGroupBrowserCardPreview=${(h) => {
|
|
453
453
|
const a = h.detail;
|
|
@@ -469,7 +469,7 @@ class j extends O {
|
|
|
469
469
|
this.handleSortOrderChange(t);
|
|
470
470
|
} })}<slot name=content slot=content>${this.renderContent()}</slot>${q({ slot: "pagination", store: this.store, total: this.queryResponse.total, start: this.queryResponse?.queryParams?.start ?? 1, num: this.queryResponse?.queryParams?.num ?? this.num, onPage: (t) => {
|
|
471
471
|
this.handlePage(t);
|
|
472
|
-
} })}<slot name=content-end slot=content-end></slot><slot name=preview slot=preview>${this.previewGroup && u`<arcgis-portal-group-browser-preview .group=${this.previewGroup} .portal=${this.portal} .user=${this.portal.user ?? void 0} .
|
|
472
|
+
} })}<slot name=content-end slot=content-end></slot><slot name=preview slot=preview>${this.previewGroup && u`<arcgis-portal-group-browser-preview .group=${this.previewGroup} .portal=${this.portal} .user=${this.portal.user ?? void 0} .hideBadges=${this.hidePreviewBadges} .hidePreviewFooter=${this.hidePreviewFooter} .currentResponse=${this.queryResponse} .previewFooterActionsSpaced=${!this.getPreviewFooterActionsEmpty()} @arcgisGroupBrowserInternalUIAction=${(t) => {
|
|
473
473
|
this.arcgisGroupBrowserInternalUIAction.emit(t.detail);
|
|
474
474
|
}} @arcgisGroupBrowserPreviewClose=${() => {
|
|
475
475
|
this.closePreview({ restoreFocus: !0 });
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type PortalGroup from "@arcgis/core/portal/PortalGroup.js";
|
|
2
2
|
import type { SearchResult } from "../../types/search.js";
|
|
3
|
-
import type { PortalBrowserFilterDateProps } from "../portal-browser/components/portal-browser-filter-date/portal-browser-filter-date.js";
|
|
4
3
|
import type { PortalBrowserSortField, PortalBrowserSortOrder } from "../arcgis-portal-browser-sort/utils.js";
|
|
5
4
|
import type { PortalBrowserState } from "../arcgis-portal-browser/utils/store.js";
|
|
6
5
|
import type { BrowserPageDetail } from "../arcgis-portal-browser/utils/types.js";
|
|
@@ -81,7 +80,7 @@ export interface GroupFilterConfig<TProps extends BaseFilterProps> {
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
export type PortalGroupBrowserDateFilterProps = BaseFilterProps
|
|
84
|
-
& Partial<
|
|
83
|
+
& Partial<PortalGroupBrowserDateFilterSharedProps & PortalGroupBrowserDateSelection>;
|
|
85
84
|
|
|
86
85
|
export type PortalGroupBrowserOwnerFilterProps = BaseFilterProps
|
|
87
86
|
& Partial<PortalGroupBrowserOwnerSelection>;
|
|
@@ -170,6 +169,11 @@ export interface GroupBrowserAccessDetail extends GroupBrowserFilterDetail, Port
|
|
|
170
169
|
id: "access";
|
|
171
170
|
}
|
|
172
171
|
|
|
172
|
+
export interface PortalGroupBrowserDateFilterSharedProps {
|
|
173
|
+
includeNever?: boolean;
|
|
174
|
+
serverProperty?: string;
|
|
175
|
+
}
|
|
176
|
+
|
|
173
177
|
export type PortalGroupBrowserOwner = "inOrg" | "outsideOrg" | "owner";
|
|
174
178
|
|
|
175
179
|
export type PortalGroupBrowserMembership = "anyOrg" | "collaboration" | "org";
|
|
@@ -12,6 +12,12 @@ export abstract class ArcgisPortalGroupBrowserPreview extends LitElement {
|
|
|
12
12
|
accessor currentResponse: PortalGroupBrowserSearchResult | undefined;
|
|
13
13
|
/** Group selected for preview. */
|
|
14
14
|
accessor group: PortalGroup;
|
|
15
|
+
/**
|
|
16
|
+
* Hide group badges in overview section.
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
accessor hideBadges: boolean;
|
|
15
21
|
/**
|
|
16
22
|
* Hide footer details action.
|
|
17
23
|
*
|
|
@@ -199,17 +205,11 @@ export abstract class ArcgisPortalGroupBrowserPreview extends LitElement {
|
|
|
199
205
|
/** Portal used for thumbnail and deep-link resolution. */
|
|
200
206
|
accessor portal: Portal;
|
|
201
207
|
/**
|
|
202
|
-
*
|
|
208
|
+
* Apply spacing between footer actions.
|
|
203
209
|
*
|
|
204
|
-
* @default
|
|
205
|
-
*/
|
|
206
|
-
accessor previewFooterActionsEmpty: boolean;
|
|
207
|
-
/**
|
|
208
|
-
* Show group badges in overview section.
|
|
209
|
-
*
|
|
210
|
-
* @default true
|
|
210
|
+
* @default false
|
|
211
211
|
*/
|
|
212
|
-
accessor
|
|
212
|
+
accessor previewFooterActionsSpaced: boolean;
|
|
213
213
|
/** Current signed-in user context used by preview cards. */
|
|
214
214
|
accessor user: PortalUser | undefined;
|
|
215
215
|
setFocus(): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import { c as
|
|
2
|
+
import { c as w } from "../../chunks/runtime.js";
|
|
3
3
|
import { repeat as _ } from "lit/directives/repeat.js";
|
|
4
4
|
import { keyed as f } from "lit/directives/keyed.js";
|
|
5
5
|
import { substitute as h } from "@arcgis/core/intl.js";
|
|
@@ -14,36 +14,36 @@ import { g as T } from "../../chunks/user2.js";
|
|
|
14
14
|
import { e as P, h as M, f as z } from "../../chunks/query.js";
|
|
15
15
|
import "../arcgis-portal-group-browser-preview-card/customElement.js";
|
|
16
16
|
import { f as B } from "../../chunks/user.js";
|
|
17
|
-
const F = $`:host{display:flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;background-color:var(--calcite-color-background)}.preview{box-sizing:border-box;display:flex;flex-direction:column;gap:0;height:100%;min-height:0;overflow:auto;padding:0;position:relative}.preview__header{align-items:center;background:var(--calcite-color-foreground-1);display:flex;justify-content:space-between;padding:0;padding-inline-start:.75rem}.preview__title{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium);line-height:1.375;margin:0;overflow-wrap:anywhere;flex:1 1 auto}.preview__accordion{--calcite-accordion-item-header-background-color: var(--calcite-color-foreground-1);--calcite-accordion-item-heading-text-size: var(--calcite-font-size-0)}.preview__accordion calcite-accordion-item{--calcite-internal-accordion-item-padding: 1rem 1rem;border-bottom:1px solid var(--calcite-color-border-2);box-sizing:border-box;width:100%}.preview__section{background:var(--calcite-color-background);line-height:1.35;margin:-1rem;padding:1rem}.preview__section--tight{padding:0}.preview__summary{color:var(--calcite-color-text-2);font-size:var(--calcite-font-size-0);line-height:1.45;margin:0}.preview__description{--item-browser-table-border: 1px solid var(--calcite-color-border-2);color:var(--calcite-color-text-2);line-height:1.35;overflow-wrap:anywhere;*{font-size:.875rem;max-width:100%}a{color:var(--calcite-color-text-link)}img,video{height:auto;max-width:100%}table{background:var(--calcite-color-foreground-1);border:var(--item-browser-table-border);border-collapse:collapse;border-spacing:0;font-size:var(--calcite-font-size--2);overflow:auto;text-align:start;width:100%}table>thead{background:var(--calcite-color-foreground-1);border-bottom:var(--item-browser-table-border);font-weight:var(--calcite-font-weight-normal)}table>tbody{overflow:auto;width:100%}table>tfoot{border-top:var(--item-browser-table-border)}th,td{border-inline:var(--item-browser-table-border);font-weight:var(--calcite-font-weight-light);padding:.5rem;text-align:start}tr{border-bottom:var(--item-browser-table-border);text-align:start}tr:last-child{border-bottom:none}}.preview__empty{color:var(--calcite-color-text-1);margin:0}.preview__empty-wrap{align-items:center;display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.preview__loading-placeholder{min-height:2rem}.preview__empty-icon{color:var(--calcite-color-text-1);height:3rem;width:3rem}.preview__badges{margin-top:1rem}.preview__badges[empty]{display:none}.preview__full-card-wrapper{padding:.75rem .5rem 0}.preview__card{margin:0}.preview__card-body{display:grid;gap:.125rem}.preview__settings-title{color:var(--calcite-color-text-3);font-size:var(--calcite-font-size--2);margin:0}.preview__settings-text{color:var(--calcite-color-text-1);margin:0;line-height:1.4}.preview__link-wrap{margin-top:.75rem;padding:0 .25rem 1rem}.preview__footer-actions{width:100%;display:flex;flex-direction:column}.preview__footer-actions--spaced{gap:.5rem}.preview__card-container{display:flex;flex-direction:column;gap:.25rem}.preview__settings-section{display:flex;flex-direction:column;gap:1.25rem}.preview__settings-row{display:grid;gap:.25rem}.preview__link-wrap--settings{padding-inline:0}`,
|
|
17
|
+
const F = $`:host{display:flex;height:100%;width:100%;flex:1 1 0%;flex-direction:column;background-color:var(--calcite-color-background)}.preview{box-sizing:border-box;display:flex;flex-direction:column;gap:0;height:100%;min-height:0;overflow:auto;padding:0;position:relative}.preview__header{align-items:center;background:var(--calcite-color-foreground-1);display:flex;justify-content:space-between;padding:0;padding-inline-start:.75rem}.preview__title{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size-0);font-weight:var(--calcite-font-weight-medium);line-height:1.375;margin:0;overflow-wrap:anywhere;flex:1 1 auto}.preview__accordion{--calcite-accordion-item-header-background-color: var(--calcite-color-foreground-1);--calcite-accordion-item-heading-text-size: var(--calcite-font-size-0)}.preview__accordion calcite-accordion-item{--calcite-internal-accordion-item-padding: 1rem 1rem;border-bottom:1px solid var(--calcite-color-border-2);box-sizing:border-box;width:100%}.preview__section{background:var(--calcite-color-background);line-height:1.35;margin:-1rem;padding:1rem}.preview__section--tight{padding:0}.preview__summary{color:var(--calcite-color-text-2);font-size:var(--calcite-font-size-0);line-height:1.45;margin:0}.preview__description{--item-browser-table-border: 1px solid var(--calcite-color-border-2);color:var(--calcite-color-text-2);line-height:1.35;overflow-wrap:anywhere;*{font-size:.875rem;max-width:100%}a{color:var(--calcite-color-text-link)}img,video{height:auto;max-width:100%}table{background:var(--calcite-color-foreground-1);border:var(--item-browser-table-border);border-collapse:collapse;border-spacing:0;font-size:var(--calcite-font-size--2);overflow:auto;text-align:start;width:100%}table>thead{background:var(--calcite-color-foreground-1);border-bottom:var(--item-browser-table-border);font-weight:var(--calcite-font-weight-normal)}table>tbody{overflow:auto;width:100%}table>tfoot{border-top:var(--item-browser-table-border)}th,td{border-inline:var(--item-browser-table-border);font-weight:var(--calcite-font-weight-light);padding:.5rem;text-align:start}tr{border-bottom:var(--item-browser-table-border);text-align:start}tr:last-child{border-bottom:none}}.preview__empty{color:var(--calcite-color-text-1);margin:0}.preview__empty-wrap{align-items:center;display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.preview__loading-placeholder{min-height:2rem}.preview__empty-icon{color:var(--calcite-color-text-1);height:3rem;width:3rem}.preview__badges{margin-top:1rem}.preview__badges[empty]{display:none}.preview__full-card-wrapper{padding:.75rem .5rem 0}.preview__card{margin:0}.preview__card-body{display:grid;gap:.125rem}.preview__settings-title{color:var(--calcite-color-text-3);font-size:var(--calcite-font-size--2);margin:0}.preview__settings-text{color:var(--calcite-color-text-1);margin:0;line-height:1.4}.preview__link-wrap{margin-top:.75rem;padding:0 .25rem 1rem}.preview__footer-actions{width:100%;display:flex;flex-direction:column}.preview__footer-actions--spaced{gap:.5rem}.preview__card-container{display:flex;flex-direction:column;gap:.25rem}.preview__settings-section{display:flex;flex-direction:column;gap:1.25rem}.preview__settings-row{display:grid;gap:.25rem}.preview__link-wrap--settings{padding-inline:0}`, q = async (c, e) => {
|
|
18
18
|
try {
|
|
19
19
|
const t = c.id ? (await e.queryGroups({ query: `id:${c.id}`, num: 1 })).results[0] ?? c : c;
|
|
20
20
|
t.portal = e;
|
|
21
21
|
const o = p(t), r = o.properties?.featuredItemIds ?? [], n = !!(o.properties?.isFeatured && r.length), [{ items: d, total: m }, l] = await Promise.all([
|
|
22
|
-
n ?
|
|
22
|
+
n ? S(t, r) : D(t),
|
|
23
23
|
t.fetchMembers()
|
|
24
24
|
]), a = [l.owner, ...l.admins.filter((g) => g !== l.owner)], i = await Promise.all(a.map(async (g) => await B(g, e)));
|
|
25
25
|
return { result: { group: t, items: d, total: m, members: l, managers: i } };
|
|
26
26
|
} catch (t) {
|
|
27
27
|
return console.error(t), { error: { code: "unhandledError" } };
|
|
28
28
|
}
|
|
29
|
-
},
|
|
30
|
-
async function
|
|
29
|
+
}, v = 4;
|
|
30
|
+
async function S(c, e) {
|
|
31
31
|
const t = await c.queryItems({
|
|
32
|
-
num: Math.min(
|
|
33
|
-
query: `id:(${e.slice(0,
|
|
32
|
+
num: Math.min(v, e.length),
|
|
33
|
+
query: `id:(${e.slice(0, v).join(" OR ")})`
|
|
34
34
|
});
|
|
35
35
|
return { items: e.map((r) => t.results.find((n) => n.id === r)).filter((r) => !!r), total: t.total || e.length };
|
|
36
36
|
}
|
|
37
37
|
async function D(c) {
|
|
38
|
-
const { sortField: e = "modified", sortOrder: t = "desc" } = p(c), o = P(c) || M, r = await c.queryItems({ num:
|
|
38
|
+
const { sortField: e = "modified", sortOrder: t = "desc" } = p(c), o = P(c) || M, r = await c.queryItems({ num: v, sortField: e, sortOrder: t, query: o });
|
|
39
39
|
return { items: r.results || [], total: r.total || 0 };
|
|
40
40
|
}
|
|
41
|
-
class
|
|
41
|
+
class E extends b {
|
|
42
42
|
constructor() {
|
|
43
|
-
super(...arguments), this.messages = I({ name: "portal-group-browser", blocking: !0 }), this.requestId = 0, this.flowItemEl = x(), this.loading = !1, this.contentItems = [], this.contentTotal = 0, this.managers = [], this.fullGroup = null, this.
|
|
43
|
+
super(...arguments), this.messages = I({ name: "portal-group-browser", blocking: !0 }), this.requestId = 0, this.flowItemEl = x(), this.loading = !1, this.contentItems = [], this.contentTotal = 0, this.managers = [], this.fullGroup = null, this.hideBadges = !1, this.hidePreviewFooter = !1, this.previewFooterActionsSpaced = !1, this.arcgisPreviewClose = u(), this.arcgisGroupBrowserPreviewClose = u(), this.arcgisGroupBrowserInternalUIAction = u();
|
|
44
44
|
}
|
|
45
45
|
static {
|
|
46
|
-
this.properties = { loading: 16, contentItems: 16, contentTotal: 16, managers: 16, fullGroup: 16, group: 0, portal: 0, user: 0,
|
|
46
|
+
this.properties = { loading: 16, contentItems: 16, contentTotal: 16, managers: 16, fullGroup: 16, group: 0, portal: 0, user: 0, hideBadges: 5, hidePreviewFooter: 5, currentResponse: 0, previewFooterActionsSpaced: 5 };
|
|
47
47
|
}
|
|
48
48
|
static {
|
|
49
49
|
this.styles = F;
|
|
@@ -66,7 +66,7 @@ class H extends b {
|
|
|
66
66
|
async loadPreviewData() {
|
|
67
67
|
const { group: e, portal: t } = this, o = ++this.requestId;
|
|
68
68
|
this.loading = !0, this.contentItems = [], this.contentTotal = 0, this.managers = [], this.fullGroup = null;
|
|
69
|
-
const { result: r, error: n } = await
|
|
69
|
+
const { result: r, error: n } = await q(e, t);
|
|
70
70
|
o === this.requestId && (this.loading = !1, !(n || !r) && o === this.requestId && (this.contentItems = r.items, this.contentTotal = r.total, this.managers = r.managers, this.fullGroup = r.group, this.flowItemEl.value?.setFocus()));
|
|
71
71
|
}
|
|
72
72
|
getPreviewPosition(e) {
|
|
@@ -123,7 +123,7 @@ class H extends b {
|
|
|
123
123
|
action: "close panel",
|
|
124
124
|
category: "group panel action"
|
|
125
125
|
}), this.arcgisPreviewClose.emit(), this.arcgisGroupBrowserPreviewClose.emit();
|
|
126
|
-
}} ${k(this.flowItemEl)}><div slot=header-content class="preview__header"><h3 class="preview__title">${e.title || this.messages.preview.titleFallback}</h3></div><section class="preview">${f(e.id, s`<calcite-accordion icon-position=start appearance=transparent class="preview__accordion"><calcite-accordion-item .heading=${this.messages.preview.overview} .expanded=${!!t} @click=${(i) => this.isAccordionItem(i.target) && this.handleAccordionItemClick(i.currentTarget, "overview")}><div class="preview__section">${t ? s`<p class="preview__summary">${t}</p>` : s`<p class="preview__empty">${this.messages.preview.noSummary}</p>`}${this.
|
|
126
|
+
}} ${k(this.flowItemEl)}><div slot=header-content class="preview__header"><h3 class="preview__title">${e.title || this.messages.preview.titleFallback}</h3></div><section class="preview">${f(e.id, s`<calcite-accordion icon-position=start appearance=transparent class="preview__accordion"><calcite-accordion-item .heading=${this.messages.preview.overview} .expanded=${!!t} @click=${(i) => this.isAccordionItem(i.target) && this.handleAccordionItemClick(i.currentTarget, "overview")}><div class="preview__section">${t ? s`<p class="preview__summary">${t}</p>` : s`<p class="preview__empty">${this.messages.preview.noSummary}</p>`}${this.hideBadges ? null : s`<arcgis-portal-group-badges .group=${e} .portal=${this.portal} width=full scale=s appearance=outline-fill class="preview__badges"></arcgis-portal-group-badges>`}</div></calcite-accordion-item><calcite-accordion-item .heading=${a.description} @click=${(i) => this.isAccordionItem(i.target) && this.handleAccordionItemClick(i.currentTarget, "description")}><div class="preview__section">${o ? s`<div class="preview__description" .innerHTML=${o ?? ""}></div>` : s`<p class="preview__empty">${a.noDescription}</p>`}</div></calcite-accordion-item><calcite-accordion-item .heading=${h(a.content, { count: String(this.contentTotal) })} expanded @click=${(i) => this.isAccordionItem(i.target) && this.handleAccordionItemClick(i.currentTarget, "content")}><div class="preview__section preview__section--tight">${this.contentItems.length ? s`<div class="preview__full-card-wrapper"><div class="preview__card-container">${_(this.contentItems, (i) => i.id, (i) => s`<arcgis-portal-group-browser-preview-card class="preview__card" .item=${i} .portal=${this.portal} .user=${this.user}></arcgis-portal-group-browser-preview-card>`)}</div><div class="preview__link-wrap"><calcite-link .href=${n} @click=${() => {
|
|
127
127
|
this.handleDetailsClick("view all content");
|
|
128
128
|
}}>${this.messages.preview.viewContent}</calcite-link></div></div>` : this.loading ? s`<div class="preview__loading-placeholder"></div>` : s`<div class="preview__empty-wrap"><calcite-icon scale=l icon=files class="preview__empty-icon"></calcite-icon><p class="preview__empty">${this.messages.preview.noContent}</p></div>`}</div></calcite-accordion-item><calcite-accordion-item .heading=${h(a.groupManagers, { count: String(this.managers.length) })} expanded @click=${(i) => this.isAccordionItem(i.target) && this.handleAccordionItemClick(i.currentTarget, "managers")}><div class="preview__section preview__section--tight"><div class="preview__full-card-wrapper">${this.managers.length ? s`<div class="preview__card-container">${this.managers.map((i) => s`<calcite-card class="preview__card"><div class="preview__card-body"><arcgis-portal-user-popup .fullName=${i.username === e.owner ? h(a.groupOwner, {
|
|
129
129
|
fullName: T(i, this.messages._lang)
|
|
@@ -133,7 +133,7 @@ class H extends b {
|
|
|
133
133
|
this.handleDetailsClick("open settings");
|
|
134
134
|
}}>${a.openSettings}</calcite-link></div></div>` : null}</div></calcite-accordion-item></calcite-accordion>`)}</section>${!this.hidePreviewFooter && s`<div slot=footer class=${y({
|
|
135
135
|
"preview__footer-actions": !0,
|
|
136
|
-
"preview__footer-actions--spaced":
|
|
136
|
+
"preview__footer-actions--spaced": this.previewFooterActionsSpaced
|
|
137
137
|
})}><calcite-button appearance=solid kind=neutral width=full .href=${r} @click=${() => {
|
|
138
138
|
this.arcgisGroupBrowserInternalUIAction.emit({
|
|
139
139
|
action: "click",
|
|
@@ -144,7 +144,7 @@ class H extends b {
|
|
|
144
144
|
}}>${a.openGroupPage}</calcite-button><slot name=footer-action></slot></div>` || ""}</calcite-flow-item></calcite-flow>`;
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
w("arcgis-portal-group-browser-preview", E);
|
|
148
148
|
export {
|
|
149
|
-
|
|
149
|
+
E as ArcgisPortalGroupBrowserPreview
|
|
150
150
|
};
|
|
@@ -8,6 +8,24 @@ import type { InternalUIAction } from "../../types/tracking.js";
|
|
|
8
8
|
export abstract class ArcgisPortalGroupBrowserPreviewCard extends LitElement {
|
|
9
9
|
/** Optional fully qualified path to the portal home root. */
|
|
10
10
|
accessor baseUrl: string | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Hide item type in the card body.
|
|
13
|
+
*
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
accessor hideItemType: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Hide owner information in the footer.
|
|
19
|
+
*
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
accessor hideOwner: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Hide the item thumbnail area.
|
|
25
|
+
*
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
accessor hideThumbnail: boolean;
|
|
11
29
|
/**
|
|
12
30
|
* Allow hover styles and click interaction on the card.
|
|
13
31
|
*
|
|
@@ -38,18 +56,6 @@ export abstract class ArcgisPortalGroupBrowserPreviewCard extends LitElement {
|
|
|
38
56
|
* @default false
|
|
39
57
|
*/
|
|
40
58
|
accessor showDateUpdated: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Show item type in the card body.
|
|
43
|
-
*
|
|
44
|
-
* @default true
|
|
45
|
-
*/
|
|
46
|
-
accessor showItemType: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Show owner information in the footer.
|
|
49
|
-
*
|
|
50
|
-
* @default true
|
|
51
|
-
*/
|
|
52
|
-
accessor showOwner: boolean;
|
|
53
59
|
/**
|
|
54
60
|
* Show popup-enabled owner link in footer instead of plain avatar lockup.
|
|
55
61
|
*
|
|
@@ -62,12 +68,6 @@ export abstract class ArcgisPortalGroupBrowserPreviewCard extends LitElement {
|
|
|
62
68
|
* @default false
|
|
63
69
|
*/
|
|
64
70
|
accessor showSummary: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Show the item thumbnail area.
|
|
67
|
-
*
|
|
68
|
-
* @default true
|
|
69
|
-
*/
|
|
70
|
-
accessor showThumbnail: boolean;
|
|
71
71
|
/** Current signed in user for owner and item context. */
|
|
72
72
|
accessor user: PortalUser | undefined;
|
|
73
73
|
restoreFocus(): Promise<void>;
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import { c as
|
|
3
|
-
import { formatDate as
|
|
4
|
-
import { LitElement as
|
|
5
|
-
import { css as
|
|
6
|
-
import { createRef as
|
|
7
|
-
import { g as f } from "../../chunks/
|
|
2
|
+
import { c as u } from "../../chunks/runtime.js";
|
|
3
|
+
import { formatDate as w } from "@arcgis/core/intl.js";
|
|
4
|
+
import { LitElement as v, createEvent as d, nothing as o, safeClassMap as n } from "@arcgis/lumina";
|
|
5
|
+
import { css as _, html as r } from "lit";
|
|
6
|
+
import { createRef as p, ref as h } from "lit/directives/ref.js";
|
|
7
|
+
import { g as f } from "../../chunks/items.js";
|
|
8
|
+
import { g } from "../../chunks/url.js";
|
|
8
9
|
import { g as b } from "../../chunks/thumbnail.js";
|
|
9
|
-
const y =
|
|
10
|
-
class
|
|
10
|
+
const y = _`:host{display:block;min-width:0;container-type:inline-size}.preview-card{position:relative;display:flex;width:100%;height:100%;flex-direction:column;color:var(--calcite-color-text-1);opacity:0;background-color:var(--calcite-color-foreground-1);border:1px solid var(--calcite-color-border-3);transition:background-color .15s ease-in-out,opacity .15s ease-in-out}.preview-card--loaded{opacity:1}.preview-card--hoverable{cursor:pointer}.preview-card--hoverable .preview-card__upper:hover{background-color:var(--calcite-color-background)}.preview-card__upper{display:flex;align-items:stretch;min-width:0;flex:1 1 auto;padding:.75rem;background-color:var(--calcite-color-foreground-1)}.preview-card__upper--link{color:var(--calcite-color-text-1);text-decoration:none}.preview-card__top{display:flex;align-self:stretch;flex:0 0 auto}.preview-card__thumbnail{box-sizing:border-box;display:grid;place-items:center;width:4rem;height:100%;margin:0;margin-inline-start:.75rem;border-radius:2px;overflow:hidden;background-color:var(--calcite-color-foreground-2)}.preview-card__thumbnail-image{width:100%;height:100%;object-fit:cover}.preview-card__thumbnail--fallback{color:var(--calcite-color-text-3)}.preview-card__content{min-width:0;flex:1 1 auto}.preview-card__body{display:grid;min-width:0;gap:.25rem}.preview-card__title{margin:0;height:2rem;font-size:var(--calcite-font-size--1);font-weight:var(--calcite-font-weight-medium);line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.preview-card__title--padded{margin-bottom:.125rem}.preview-card__title-span{position:relative}.preview-card__summary{color:var(--calcite-color-text-2);font-size:var(--calcite-font-size--2);line-height:1.35;margin:0;overflow:hidden;text-overflow:ellipsis}.preview-card__details{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem}.preview-card__detail,.preview-card__meta{color:var(--calcite-color-text-1);font-size:var(--calcite-font-size--2);margin:0}.preview-card__meta{color:var(--calcite-color-text-2)}.preview-card__status{--calcite-chip-background-color: var(--calcite-color-foreground-2);text-transform:capitalize}.preview-card__divider{align-items:center;display:flex;flex:0 0 auto}.preview-card__divider:before{content:"";height:1rem;width:1px;margin-inline-end:.5rem;background-color:var(--calcite-color-border-2)}.preview-card__details :first-child.preview-card__divider:before{display:none}.preview-card__footer{align-items:center;border-top:1px solid var(--calcite-color-border-2);display:flex;margin-top:auto;min-height:2.25rem;padding:.375rem .75rem}.preview-card__footer-start{align-items:center;display:flex;flex:1 1 auto;min-width:0}.preview-card__owner{min-width:0}@container (max-width: 480px){.preview-card__upper{padding:.625rem}.preview-card__thumbnail{width:3.5rem;margin-inline-start:.5rem}.preview-card__footer{padding:.25rem .625rem}}`;
|
|
11
|
+
class $ extends v {
|
|
11
12
|
constructor() {
|
|
12
|
-
super(...arguments), this.sectionEl =
|
|
13
|
-
const { link: e, item:
|
|
14
|
-
e || this.arcgisGroupBrowserPreviewCardSelect.emit(
|
|
15
|
-
}, this.isLoaded = !1, this.imageError = !1, this.newTab = !1, this.
|
|
13
|
+
super(...arguments), this.sectionEl = p(), this.linkEl = p(), this.cachedOwner = "", this.cachedStatus = "", this.cachedTitle = "-", this.cachedType = "-", this.cachedSummary = "", this.cachedUpdatedText = "", this.cachedThumbnailUri = null, this.handleCardClick = () => {
|
|
14
|
+
const { link: e, item: t } = this;
|
|
15
|
+
e || this.arcgisGroupBrowserPreviewCardSelect.emit(t);
|
|
16
|
+
}, this.isLoaded = !1, this.imageError = !1, this.newTab = !1, this.hideThumbnail = !1, this.hideOwner = !1, this.hideItemType = !1, this.showDateUpdated = !1, this.showSummary = !1, this.showBadges = !1, this.showOwnerPopup = !1, this.interactive = !1, this.arcgisGroupBrowserInternalUIAction = d(), this.arcgisGroupBrowserPreviewCardSelect = d();
|
|
16
17
|
}
|
|
17
18
|
static {
|
|
18
|
-
this.properties = { isLoaded: 16, imageError: 16, item: 0, portal: 0, user: 0, baseUrl: 1, link: 1, newTab: 5,
|
|
19
|
+
this.properties = { isLoaded: 16, imageError: 16, item: 0, portal: 0, user: 0, baseUrl: 1, link: 1, newTab: 5, hideThumbnail: 5, hideOwner: 5, hideItemType: 5, showDateUpdated: 5, showSummary: 5, showBadges: 5, showOwnerPopup: 5, interactive: 5 };
|
|
19
20
|
}
|
|
20
21
|
static {
|
|
21
|
-
this.styles =
|
|
22
|
+
this.styles = y;
|
|
22
23
|
}
|
|
23
24
|
async restoreFocus() {
|
|
24
25
|
if (this.link && this.linkEl.value) {
|
|
@@ -38,22 +39,22 @@ class x extends _ {
|
|
|
38
39
|
get resolvedBaseUrl() {
|
|
39
40
|
if (!this.portal)
|
|
40
41
|
return "";
|
|
41
|
-
const e =
|
|
42
|
+
const e = g({ portal: this.portal });
|
|
42
43
|
return this.baseUrl || `${e}/home`;
|
|
43
44
|
}
|
|
44
45
|
getItemThumbnailUri(e) {
|
|
45
46
|
return e.thumbnailUrl ? e.thumbnailUrl : this.portal ? b(this.portal, e) : null;
|
|
46
47
|
}
|
|
47
48
|
updateCachedItemData() {
|
|
48
|
-
const { item: e, showSummary:
|
|
49
|
-
this.cachedOwner =
|
|
49
|
+
const { item: e, showSummary: t, showDateUpdated: s } = this, i = f(e), a = i.snippet?.trim() || "";
|
|
50
|
+
this.cachedOwner = i.owner || "", this.cachedStatus = i.contentStatus || "", this.cachedTitle = i.title?.trim() || e.title?.trim() || "-", this.cachedType = i.type?.trim() || "-", this.cachedSummary = t ? a.length > 250 ? `${a.slice(0, 250)}...` : a : "", this.cachedUpdatedText = s ? w(i.modified ?? e.modified, { dateStyle: "medium" }) : "", this.cachedThumbnailUri = this.getItemThumbnailUri(e);
|
|
50
51
|
}
|
|
51
52
|
renderStatusBadge() {
|
|
52
53
|
const e = this.cachedStatus;
|
|
53
54
|
return !this.showBadges || !e ? null : r`<calcite-chip class="preview-card__status" scale=s .value=${e} .label=${e}>${e}</calcite-chip>`;
|
|
54
55
|
}
|
|
55
56
|
renderThumbnail() {
|
|
56
|
-
if (
|
|
57
|
+
if (this.hideThumbnail)
|
|
57
58
|
return null;
|
|
58
59
|
const e = this.cachedThumbnailUri;
|
|
59
60
|
return e && !this.imageError ? r`<figure class="preview-card__thumbnail"><img class="preview-card__thumbnail-image" src=${e ?? o} alt @error=${() => {
|
|
@@ -62,31 +63,31 @@ class x extends _ {
|
|
|
62
63
|
}
|
|
63
64
|
renderOwner() {
|
|
64
65
|
const e = this.cachedOwner;
|
|
65
|
-
return
|
|
66
|
-
|
|
66
|
+
return this.hideOwner || !e || !this.portal ? null : this.showOwnerPopup ? r`<arcgis-portal-user-popup underline .username=${e} .portal=${this.portal} .baseUrl=${this.resolvedBaseUrl} class="preview-card__owner" scale=s @arcgisUserPopupInternalUIAction=${(t) => {
|
|
67
|
+
t.stopPropagation(), this.arcgisGroupBrowserInternalUIAction.emit(t.detail);
|
|
67
68
|
}}></arcgis-portal-user-popup>` : r`<arcgis-portal-user-avatar scale=s show-name hide-avatar .username=${e} .portal=${this.portal} class="preview-card__owner"></arcgis-portal-user-avatar>`;
|
|
68
69
|
}
|
|
69
70
|
renderBody(e) {
|
|
70
|
-
const { showSummary:
|
|
71
|
-
return r`<div class="preview-card__body"><h3 class=${
|
|
71
|
+
const { showSummary: t, showDateUpdated: s } = this, i = !this.hideItemType, a = this.cachedTitle, m = this.cachedType, c = this.cachedSummary, l = this.cachedUpdatedText;
|
|
72
|
+
return r`<div class="preview-card__body"><h3 class=${n({
|
|
72
73
|
"preview-card__title": !0,
|
|
73
|
-
"preview-card__title--padded":
|
|
74
|
-
})}><span class="preview-card__title-span">${a}</span></h3>${
|
|
74
|
+
"preview-card__title--padded": i || t && !!c
|
|
75
|
+
})}><span class="preview-card__title-span">${a}</span></h3>${t && c ? r`<p class="preview-card__summary">${c}</p>` : null}${i ? r`<arcgis-portal-item-type scale=s .item=${e} .portal=${this.portal} .user=${this.user}></arcgis-portal-item-type>` : null}<div class="preview-card__details">${s && l ? r`<span class="preview-card__detail preview-card__divider">${l}</span>` : null}${this.renderStatusBadge()}${i ? null : r`<p class="preview-card__meta">${m}</p>`}</div></div>`;
|
|
75
76
|
}
|
|
76
77
|
render() {
|
|
77
|
-
const { item: e, interactive:
|
|
78
|
-
return r`<section class=${
|
|
78
|
+
const { item: e, interactive: t, link: s, newTab: i } = this;
|
|
79
|
+
return r`<section class=${n({
|
|
79
80
|
"preview-card": !0,
|
|
80
|
-
"preview-card--hoverable":
|
|
81
|
+
"preview-card--hoverable": t,
|
|
81
82
|
"preview-card--loaded": this.isLoaded
|
|
82
|
-
})} .part=${"card"} tabindex=${(
|
|
83
|
+
})} .part=${"card"} tabindex=${(t ? 0 : void 0) ?? o} @click=${s ? void 0 : this.handleCardClick} ${h(this.sectionEl)}><slot name=content-top></slot>${s ? r`<a class="preview-card__upper preview-card__upper--link" href=${s ?? o} target=${(i ? "_blank" : void 0) ?? o} rel=${(i ? "noopener noreferrer" : void 0) ?? o} ${h(this.linkEl)}>${r`<div class="preview-card__content">${this.renderBody(e)}</div><div class="preview-card__top">${this.renderThumbnail()}</div>`}</a>` : r`<div class="preview-card__upper"><div class="preview-card__content">${this.renderBody(e)}</div><div class="preview-card__top">${this.renderThumbnail()}</div></div>`}<div class="preview-card__footer" @click=${(a) => {
|
|
83
84
|
a.stopPropagation();
|
|
84
85
|
}} @keydown=${(a) => {
|
|
85
86
|
(a.key === "Enter" || a.key === " ") && a.stopPropagation();
|
|
86
87
|
}}><div class="preview-card__footer-start">${this.renderOwner()}</div><slot name=actions-end></slot></div></section>`;
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
|
-
|
|
90
|
+
u("arcgis-portal-group-browser-preview-card", $);
|
|
90
91
|
export {
|
|
91
|
-
|
|
92
|
+
$ as ArcgisPortalGroupBrowserPreviewCard
|
|
92
93
|
};
|
|
@@ -6,7 +6,7 @@ import type { PublicLitElement as LitElement } from "@arcgis/lumina";
|
|
|
6
6
|
import type { InternalUIAction } from "../../types/tracking.js";
|
|
7
7
|
import type { T9nMeta } from "@arcgis/lumina/controllers";
|
|
8
8
|
|
|
9
|
-
export type PortalGroupCardProps = Partial<Pick<ArcgisPortalGroupCard, "disabled" | "
|
|
9
|
+
export type PortalGroupCardProps = Partial<Pick<ArcgisPortalGroupCard, "disabled" | "hideBadges" | "hideDateUpdated" | "hideOwner" | "hideViewableBy" | "indeterminate" | "link" | "linkHandler" | "name" | "newTab" | "preview" | "previewed" | "selected" | "selection" | "showDateCreated" | "showSummary" | "user" | "view">>;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A card for displaying portal group information.
|
|
@@ -25,6 +25,30 @@ export abstract class ArcgisPortalGroupCard extends LitElement {
|
|
|
25
25
|
accessor disabled: boolean;
|
|
26
26
|
/** Group data from search results or a loaded PortalGroup instance. */
|
|
27
27
|
accessor group: PortalGroup;
|
|
28
|
+
/**
|
|
29
|
+
* Hide group badges.
|
|
30
|
+
*
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
accessor hideBadges: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Hide last-updated detail.
|
|
36
|
+
*
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
accessor hideDateUpdated: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Hide the owner information in the card footer.
|
|
42
|
+
*
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
accessor hideOwner: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Hide information on who can view this group.
|
|
48
|
+
*
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
accessor hideViewableBy: boolean;
|
|
28
52
|
/**
|
|
29
53
|
* Show the group as partially selected.
|
|
30
54
|
*
|
|
@@ -101,42 +125,18 @@ export abstract class ArcgisPortalGroupCard extends LitElement {
|
|
|
101
125
|
* @default "none"
|
|
102
126
|
*/
|
|
103
127
|
accessor selection: GroupCardSelection;
|
|
104
|
-
/**
|
|
105
|
-
* Show group badges.
|
|
106
|
-
*
|
|
107
|
-
* @default true
|
|
108
|
-
*/
|
|
109
|
-
accessor showBadges: boolean;
|
|
110
128
|
/**
|
|
111
129
|
* Show created date detail.
|
|
112
130
|
*
|
|
113
131
|
* @default false
|
|
114
132
|
*/
|
|
115
133
|
accessor showDateCreated: boolean;
|
|
116
|
-
/**
|
|
117
|
-
* Show last-updated detail.
|
|
118
|
-
*
|
|
119
|
-
* @default true
|
|
120
|
-
*/
|
|
121
|
-
accessor showDateUpdated: boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Show the owner information in the card footer.
|
|
124
|
-
*
|
|
125
|
-
* @default true
|
|
126
|
-
*/
|
|
127
|
-
accessor showOwner: boolean;
|
|
128
134
|
/**
|
|
129
135
|
* Show group summary text in card body.
|
|
130
136
|
*
|
|
131
137
|
* @default false
|
|
132
138
|
*/
|
|
133
139
|
accessor showSummary: boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Show information on who can view this group.
|
|
136
|
-
*
|
|
137
|
-
* @default true
|
|
138
|
-
*/
|
|
139
|
-
accessor showViewableBy: boolean;
|
|
140
140
|
/** Current signed-in portal user. */
|
|
141
141
|
accessor user: PortalUser | undefined;
|
|
142
142
|
/**
|
|
@@ -22,10 +22,10 @@ class B extends w {
|
|
|
22
22
|
}
|
|
23
23
|
this.selection === "multiple" && (this.selected = !this.selected, this.arcgisGroupCardSelect.emit({ group: this.group, selected: this.selected }));
|
|
24
24
|
}
|
|
25
|
-
}, this.hover = !1, this.isLoaded = !1, this.selected = !1, this.indeterminate = !1, this.view = "list", this.selection = "none", this.previewed = !1, this.
|
|
25
|
+
}, this.hover = !1, this.isLoaded = !1, this.selected = !1, this.indeterminate = !1, this.view = "list", this.selection = "none", this.previewed = !1, this.hideOwner = !1, this.hideDateUpdated = !1, this.showDateCreated = !1, this.hideViewableBy = !1, this.showSummary = !1, this.hideBadges = !1, this.newTab = !1, this.disabled = !1, this.arcgisGroupBrowserCardPreview = m(), this.arcgisGroupBrowserInternalUIAction = m(), this.arcgisGroupCardSelect = m();
|
|
26
26
|
}
|
|
27
27
|
static {
|
|
28
|
-
this.properties = { hover: 16, isLoaded: 16, group: 0, user: 0, portal: 0, selected: 7, indeterminate: 7, view: 1, selection: 1, preview: 1, previewed: 5, name: 1,
|
|
28
|
+
this.properties = { hover: 16, isLoaded: 16, group: 0, user: 0, portal: 0, selected: 7, indeterminate: 7, view: 1, selection: 1, preview: 1, previewed: 5, name: 1, hideOwner: 5, hideDateUpdated: 5, showDateCreated: 5, hideViewableBy: 5, showSummary: 5, hideBadges: 5, link: 1, linkHandler: 0, newTab: 5, disabled: 7 };
|
|
29
29
|
}
|
|
30
30
|
static {
|
|
31
31
|
this.styles = C;
|
|
@@ -68,17 +68,17 @@ class B extends w {
|
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
70
|
renderCompactBadges(e) {
|
|
71
|
-
return this.
|
|
71
|
+
return this.hideBadges ? null : r`<arcgis-portal-group-badges appearance=solid .group=${e} .portal=${this.portal} class="group-card__badges--compact" scale=s show-tooltips width=narrow></arcgis-portal-group-badges>`;
|
|
72
72
|
}
|
|
73
73
|
renderBadges(e) {
|
|
74
|
-
return this.
|
|
74
|
+
return this.hideBadges ? null : r`<arcgis-portal-group-badges .appearance=${this.hover ? "outline-fill" : "solid"} .group=${e} .portal=${this.portal} width=full class="group-card__badges group-card__badges--responsive group-card__detail group-card__divider" scale=s show-tooltips></arcgis-portal-group-badges>`;
|
|
75
75
|
}
|
|
76
76
|
renderDetails(e, t) {
|
|
77
77
|
return r`<div class="group-card__details">${this.showDateCreated && !!e.created && r`<span class="group-card__detail group-card__divider">${h(this.messages.created ?? "", {
|
|
78
78
|
date: _(e.created, { dateStyle: "medium" })
|
|
79
|
-
})}</span>` || ""}${this.
|
|
79
|
+
})}</span>` || ""}${!this.hideDateUpdated && !!e.modified && r`<span class="group-card__detail group-card__divider">${h(this.messages.lastUpdated ?? "", {
|
|
80
80
|
date: _(e.modified, { dateStyle: "medium" })
|
|
81
|
-
})}</span>` || ""}${this.
|
|
81
|
+
})}</span>` || ""}${!this.hideViewableBy && r`<span class="group-card__detail group-card__divider"><calcite-icon class="group-card__detail__icon" .icon=${t.icon} scale=s></calcite-icon>${h(this.messages.viewableBy ?? "", { level: t.text })}</span>` || ""}${this.renderBadges(e)}</div>`;
|
|
82
82
|
}
|
|
83
83
|
renderListContent(e, t, o) {
|
|
84
84
|
return r`<div class="group-card-flex group-card__top">${this.renderSelectionInput()}<div class="group-card__thumbnail"><arcgis-portal-group-thumbnail .group=${t} .portal=${this.portal} scale=xl></arcgis-portal-group-thumbnail></div><div class="group-card-flex-1"><div class="group-card-flex"><div class="group-card__content"><h3 class=${g({ "group-card__title": !0, "group-card__title--padded": this.showSummary && !!e.snippet })}><span class="group-card__title__span">${e.title}</span></h3>${this.showSummary && !!e.snippet && r`<p class="group-card__summary">${e.snippet.length > 250 ? `${e.snippet.substring(0, 250)}...` : e.snippet}</p>` || ""}${this.renderDetails(e, o)}<slot name=content-end></slot></div></div></div></div>`;
|
|
@@ -148,7 +148,7 @@ class B extends w {
|
|
|
148
148
|
this.hover = !0;
|
|
149
149
|
}} @mouseout=${() => {
|
|
150
150
|
this.hover = !1;
|
|
151
|
-
}}>${this.renderListContent(e, n, s)}</div>`}<div class="group-card__footer"><div class="group-card__footer__start"><slot name=actions-start></slot>${this.
|
|
151
|
+
}}>${this.renderListContent(e, n, s)}</div>`}<div class="group-card__footer"><div class="group-card__footer__start"><slot name=actions-start></slot>${!this.hideOwner && r`<div class="group-card__profile-wrap"><arcgis-portal-user-popup class="group-card__owner" .portal=${this.portal} .username=${e.owner ?? void 0} underline @arcgisUserPopupInternalUIAction=${({ detail: i, stopPropagation: l }) => {
|
|
152
152
|
l(), this.arcgisGroupBrowserInternalUIAction.emit(i);
|
|
153
153
|
}}></arcgis-portal-user-popup></div>` || ""}</div><div>${this.preview === "action" && r`<calcite-button scale=s .appearance=${u ? "solid" : "outline-fill"} kind=neutral @click=${() => {
|
|
154
154
|
this.arcgisGroupBrowserCardPreview.emit(this.group);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/// <reference path="../../index.d.ts" />
|
|
2
|
+
import type Portal from "@arcgis/core/portal/Portal.js";
|
|
3
|
+
import type PortalItem from "@arcgis/core/portal/PortalItem.js";
|
|
4
|
+
import type PortalUser from "@arcgis/core/portal/PortalUser.js";
|
|
5
|
+
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
|
|
6
|
+
import type { FavoriteUpdate } from "../arcgis-portal-item-favorite/utils.js";
|
|
7
|
+
import type { T9nMeta } from "@arcgis/lumina/controllers";
|
|
8
|
+
import type { Dropdown as Dropdown } from "@esri/calcite-components/components/calcite-dropdown";
|
|
9
|
+
|
|
10
|
+
/** Configurable overflow menu for an item. */
|
|
11
|
+
export abstract class ArcgisPortalItemActions extends LitElement {
|
|
12
|
+
/** Optional actions to render in the menu. */
|
|
13
|
+
accessor actions: PortalItemAction[];
|
|
14
|
+
/** Partial item JSON from search results or a loaded PortalItem instance. */
|
|
15
|
+
accessor item: PortalItem;
|
|
16
|
+
/** Optional keyboard handler for the trigger action. */
|
|
17
|
+
accessor keyHandler: ((e: KeyboardEvent, dropdown: Dropdown) => void) | undefined;
|
|
18
|
+
/** The more options text used by assistive technology. */
|
|
19
|
+
accessor label: string;
|
|
20
|
+
/** @internal */
|
|
21
|
+
protected messages: {
|
|
22
|
+
add: string;
|
|
23
|
+
remove: string;
|
|
24
|
+
} & T9nMeta<{
|
|
25
|
+
add: string;
|
|
26
|
+
remove: string;
|
|
27
|
+
}>;
|
|
28
|
+
/** Current Portal instance. */
|
|
29
|
+
accessor portal: Portal;
|
|
30
|
+
/** Text for the preview option. */
|
|
31
|
+
accessor previewText: string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Allow the user to add and remove from favorites.
|
|
34
|
+
*
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
accessor showFavorite: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Allow the user to open preview from the actions menu.
|
|
40
|
+
*
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
accessor showPreview: boolean;
|
|
44
|
+
accessor tabIndexOverride: number | undefined;
|
|
45
|
+
/** Currently signed-in Portal user. */
|
|
46
|
+
accessor user: PortalUser | undefined;
|
|
47
|
+
setFocus(): Promise<void>;
|
|
48
|
+
/** Fires when user clicks an action. */
|
|
49
|
+
readonly arcgisItemActionClick: import("@arcgis/lumina").TargetedEvent<this, string>;
|
|
50
|
+
/** Legacy passthrough event retained for compatibility. */
|
|
51
|
+
readonly arcgisItemActions: import("@arcgis/lumina").TargetedEvent<this, unknown>;
|
|
52
|
+
/** Fires when user opens the action menu. */
|
|
53
|
+
readonly arcgisItemActionsOpen: import("@arcgis/lumina").TargetedEvent<this, PortalItemActionsOpenDetail>;
|
|
54
|
+
/** Fires when user changes the favorite status. */
|
|
55
|
+
readonly arcgisItemFavoriteUpdate: import("@arcgis/lumina").TargetedEvent<this, FavoriteUpdate>;
|
|
56
|
+
readonly "@eventTypes": {
|
|
57
|
+
arcgisItemActionClick: ArcgisPortalItemActions["arcgisItemActionClick"]["detail"];
|
|
58
|
+
arcgisItemActions: ArcgisPortalItemActions["arcgisItemActions"]["detail"];
|
|
59
|
+
arcgisItemActionsOpen: ArcgisPortalItemActions["arcgisItemActionsOpen"]["detail"];
|
|
60
|
+
arcgisItemFavoriteUpdate: ArcgisPortalItemActions["arcgisItemFavoriteUpdate"]["detail"];
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface PortalItemAction {
|
|
65
|
+
action?: () => void;
|
|
66
|
+
id?: string;
|
|
67
|
+
link?: string;
|
|
68
|
+
newTab?: boolean;
|
|
69
|
+
text: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface PortalItemActionsOpenDetail {
|
|
73
|
+
el: Element | HTMLButtonElement;
|
|
74
|
+
}
|