{"version":3,"file":"manifests-C4T1daBS.js","sources":["../../../src/packages/members/member/search/constants.ts","../../../src/packages/members/member/components/member-picker-modal/member-picker-modal.token.ts","../../../src/packages/members/member/entity.ts","../../../src/packages/members/member/property-dataset-context/member-property-dataset.context-token.ts","../../../src/packages/members/member/collection/repository/manifests.ts","../../../src/packages/members/member/collection/views/manifests.ts","../../../src/packages/members/member/collection/member-collection.context-token.ts","../../../src/packages/members/member/entity-actions/create/member-create-options-modal.token.ts","../../../src/packages/members/member/item/repository/manifests.ts","../../../src/packages/members/member/item/repository/member-item.store.context-token.ts","../../../src/packages/members/member/repository/detail/manifests.ts","../../../src/packages/members/member/repository/detail/member-detail.store.context-token.ts","../../../src/packages/members/member/workspace/member/member-workspace.context-token.ts","../../../src/packages/members/member/workspace/member/manifests.ts","../../../src/packages/members/member/workspace/member-root/constants.ts","../../../src/packages/members/member/components/input-member/input-member.context.ts","../../../src/packages/members/member/components/input-member/input-member.element.ts","../../../src/packages/members/member/repository/member-repository-base.ts","../../../src/packages/members/member/collection/repository/member-collection.server.data-source.ts","../../../src/packages/members/member/collection/repository/member-collection.repository.ts","../../../src/packages/members/member/collection/action/manifests.ts","../../../src/packages/members/member/collection/manifests.ts","../../../src/packages/members/member/components/member-picker-modal/member-picker-modal.element.ts","../../../src/packages/members/member/repository/validation/manifests.ts"],"sourcesContent":["export const UMB_MEMBER_SEARCH_PROVIDER_ALIAS = 'Umb.SearchProvider.Member';\r\n","import type { UmbMemberItemModel } from '../../item/types.js';\r\nimport { UMB_MEMBER_SEARCH_PROVIDER_ALIAS } from '../../search/constants.js';\r\nimport type { UmbPickerModalData, UmbPickerModalValue } from '@umbraco-cms/backoffice/modal';\r\nimport { UmbModalToken } from '@umbraco-cms/backoffice/modal';\r\n\r\nexport type UmbMemberPickerModalData = UmbPickerModalData;\r\nexport type UmbMemberPickerModalValue = UmbPickerModalValue;\r\n\r\nexport const UMB_MEMBER_PICKER_MODAL = new UmbModalToken(\r\n\t'Umb.Modal.MemberPicker',\r\n\t{\r\n\t\tmodal: {\r\n\t\t\ttype: 'sidebar',\r\n\t\t\tsize: 'small',\r\n\t\t},\r\n\t\tdata: {\r\n\t\t\tsearch: {\r\n\t\t\t\tproviderAlias: UMB_MEMBER_SEARCH_PROVIDER_ALIAS,\r\n\t\t\t},\r\n\t\t},\r\n\t},\r\n);\r\n","export const UMB_MEMBER_ENTITY_TYPE = 'member';\r\nexport const UMB_MEMBER_ROOT_ENTITY_TYPE = 'member-root';\r\n\r\nexport type UmbMemberEntityType = typeof UMB_MEMBER_ENTITY_TYPE;\r\nexport type UmbMemberRootEntityType = typeof UMB_MEMBER_ROOT_ENTITY_TYPE;\r\n","import { UMB_MEMBER_ENTITY_TYPE } from '../entity.js';\r\nimport type { UmbMemberPropertyDatasetContext } from './member-property-dataset.context.js';\r\nimport type { UmbPropertyDatasetContext } from '@umbraco-cms/backoffice/property';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const IsMemberVariantContext = (\r\n\tcontext: UmbPropertyDatasetContext,\r\n): context is UmbMemberPropertyDatasetContext => context.getEntityType() === UMB_MEMBER_ENTITY_TYPE;\r\n\r\nexport const UMB_MEMBER_VARIANT_CONTEXT = new UmbContextToken<\r\n\tUmbPropertyDatasetContext,\r\n\tUmbMemberPropertyDatasetContext\r\n>('UmbVariantContext', undefined, IsMemberVariantContext);\r\n","export const UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.Member.Collection';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'repository',\r\n\t\talias: UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS,\r\n\t\tname: 'Member Collection Repository',\r\n\t\tapi: () => import('./member-collection.repository.js'),\r\n\t},\r\n];\r\n","import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';\r\n\r\nexport const UMB_MEMBER_TABLE_COLLECTION_VIEW_ALIAS = 'Umb.CollectionView.Member.Table';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'collectionView',\r\n\t\talias: UMB_MEMBER_TABLE_COLLECTION_VIEW_ALIAS,\r\n\t\tname: 'Member Table Collection View',\r\n\t\telement: () => import('./table/member-table-collection-view.element.js'),\r\n\t\tmeta: {\r\n\t\t\tlabel: 'Table',\r\n\t\t\ticon: 'icon-list',\r\n\t\t\tpathName: 'table',\r\n\t\t},\r\n\t\tconditions: [\r\n\t\t\t{\r\n\t\t\t\talias: UMB_COLLECTION_ALIAS_CONDITION,\r\n\t\t\t\tmatch: 'Umb.Collection.Member',\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n","import type { UmbMemberCollectionContext } from './member-collection.context.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const UMB_MEMBER_COLLECTION_CONTEXT = new UmbContextToken('UmbCollectionContext');\r\n","import { UmbModalToken } from '@umbraco-cms/backoffice/modal';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\r\nexport interface UmbMemberCreateOptionsModalData {}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\r\nexport interface UmbMemberCreateOptionsModalValue {}\r\n\r\nexport const UMB_MEMBER_CREATE_OPTIONS_MODAL = new UmbModalToken<\r\n\tUmbMemberCreateOptionsModalData,\r\n\tUmbMemberCreateOptionsModalValue\r\n>('Umb.Modal.Member.CreateOptions', {\r\n\tmodal: {\r\n\t\ttype: 'sidebar',\r\n\t\tsize: 'small',\r\n\t},\r\n});\r\n","export const UMB_MEMBER_ITEM_REPOSITORY_ALIAS = 'Umb.Repository.MemberItem';\r\nexport const UMB_MEMBER_STORE_ALIAS = 'Umb.Store.MemberItem';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'repository',\r\n\t\talias: UMB_MEMBER_ITEM_REPOSITORY_ALIAS,\r\n\t\tname: 'Member Item Repository',\r\n\t\tapi: () => import('./member-item.repository.js'),\r\n\t},\r\n\t{\r\n\t\ttype: 'itemStore',\r\n\t\talias: UMB_MEMBER_STORE_ALIAS,\r\n\t\tname: 'Member Item Store',\r\n\t\tapi: () => import('./member-item.store.js'),\r\n\t},\r\n];\r\n","import type { UmbMemberItemStore } from './member-item.store.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const UMB_MEMBER_ITEM_STORE_CONTEXT = new UmbContextToken('UmbMemberItemStore');\r\n","export const UMB_MEMBER_DETAIL_REPOSITORY_ALIAS = 'Umb.Repository.Member.Detail';\r\nexport const UMB_MEMBER_DETAIL_STORE_ALIAS = 'Umb.Store.Member.Detail';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'repository',\r\n\t\talias: UMB_MEMBER_DETAIL_REPOSITORY_ALIAS,\r\n\t\tname: 'Member Detail Repository',\r\n\t\tapi: () => import('./member-detail.repository.js'),\r\n\t},\r\n\t{\r\n\t\ttype: 'store',\r\n\t\talias: UMB_MEMBER_DETAIL_STORE_ALIAS,\r\n\t\tname: 'Member Detail Store',\r\n\t\tapi: () => import('./member-detail.store.js'),\r\n\t},\r\n];\r\n","import type { UmbMemberDetailStore } from './member-detail.store.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\n\r\nexport const UMB_MEMBER_DETAIL_STORE_CONTEXT = new UmbContextToken('UmbMemberDetailStore');\r\n","import type { UmbMemberWorkspaceContext } from './member-workspace.context.js';\r\nimport { UmbContextToken } from '@umbraco-cms/backoffice/context-api';\r\nimport type { UmbSubmittableWorkspaceContext } from '@umbraco-cms/backoffice/workspace';\r\n\r\nexport const UMB_MEMBER_WORKSPACE_CONTEXT = new UmbContextToken<\r\n\tUmbSubmittableWorkspaceContext,\r\n\tUmbMemberWorkspaceContext\r\n>(\r\n\t'UmbWorkspaceContext',\r\n\tundefined,\r\n\t(context): context is UmbMemberWorkspaceContext => context.getEntityType?.() === 'member',\r\n);\r\n","import { UMB_MEMBER_ENTITY_TYPE } from '../../entity.js';\r\nimport type {\r\n\tManifestWorkspaces,\r\n\tManifestWorkspaceActions,\r\n\tManifestWorkspaceView,\r\n} from '@umbraco-cms/backoffice/workspace';\r\nimport { UmbSubmitWorkspaceAction, UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';\r\nimport { UMB_CONTENT_HAS_PROPERTIES_WORKSPACE_CONDITION } from '@umbraco-cms/backoffice/content';\r\n\r\nexport const UMB_MEMBER_WORKSPACE_ALIAS = 'Umb.Workspace.Member';\r\n\r\nconst workspace: ManifestWorkspaces = {\r\n\ttype: 'workspace',\r\n\tkind: 'routable',\r\n\talias: UMB_MEMBER_WORKSPACE_ALIAS,\r\n\tname: 'Member Workspace',\r\n\tapi: () => import('./member-workspace.context.js'),\r\n\tmeta: {\r\n\t\tentityType: UMB_MEMBER_ENTITY_TYPE,\r\n\t},\r\n};\r\n\r\nconst workspaceActions: Array = [\r\n\t{\r\n\t\ttype: 'workspaceAction',\r\n\t\tkind: 'default',\r\n\t\talias: 'Umb.WorkspaceAction.Member.Save',\r\n\t\tname: 'Save Member Workspace Action',\r\n\t\tapi: UmbSubmitWorkspaceAction,\r\n\t\tmeta: {\r\n\t\t\tlabel: '#buttons_save',\r\n\t\t\tlook: 'primary',\r\n\t\t\tcolor: 'positive',\r\n\t\t},\r\n\t\tconditions: [\r\n\t\t\t{\r\n\t\t\t\talias: UMB_WORKSPACE_CONDITION_ALIAS,\r\n\t\t\t\tmatch: UMB_MEMBER_WORKSPACE_ALIAS,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport const workspaceViews: Array = [\r\n\t{\r\n\t\ttype: 'workspaceView',\r\n\t\tkind: 'contentEditor',\r\n\t\talias: 'Umb.WorkspaceView.Member.Content',\r\n\t\tname: 'Member Workspace Content View',\r\n\t\tweight: 1000,\r\n\t\tmeta: {\r\n\t\t\tlabel: '#general_details',\r\n\t\t\tpathname: 'content',\r\n\t\t\ticon: 'icon-document',\r\n\t\t},\r\n\t\tconditions: [\r\n\t\t\t{\r\n\t\t\t\talias: UMB_WORKSPACE_CONDITION_ALIAS,\r\n\t\t\t\tmatch: UMB_MEMBER_WORKSPACE_ALIAS,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\talias: UMB_CONTENT_HAS_PROPERTIES_WORKSPACE_CONDITION,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\ttype: 'workspaceView',\r\n\t\talias: 'Umb.WorkspaceView.Member.Member',\r\n\t\tname: 'Member Workspace Member View',\r\n\t\tjs: () => import('./views/member/member-workspace-view-member.element.js'),\r\n\t\tweight: 500,\r\n\t\tmeta: {\r\n\t\t\tlabel: '#apps_umbInfo',\r\n\t\t\tpathname: 'info',\r\n\t\t\ticon: 'icon-user',\r\n\t\t},\r\n\t\tconditions: [\r\n\t\t\t{\r\n\t\t\t\talias: UMB_WORKSPACE_CONDITION_ALIAS,\r\n\t\t\t\tmatch: UMB_MEMBER_WORKSPACE_ALIAS,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport const manifests: Array = [workspace, ...workspaceActions, ...workspaceViews];\r\n","export const UMB_MEMBER_ROOT_WORKSPACE_ALIAS = 'Umb.Workspace.MemberRoot';\r\n","import type { UmbMemberItemModel } from '../../item/types.js';\r\nimport {\r\n\tUMB_MEMBER_PICKER_MODAL,\r\n\ttype UmbMemberPickerModalData,\r\n\ttype UmbMemberPickerModalValue,\r\n} from '../member-picker-modal/member-picker-modal.token.js';\r\nimport { UMB_MEMBER_ITEM_REPOSITORY_ALIAS, UMB_MEMBER_SEARCH_PROVIDER_ALIAS } from '../../constants.js';\r\nimport { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';\r\nimport type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';\r\nimport type { UmbMemberTypeEntityType } from '@umbraco-cms/backoffice/member-type';\r\n\r\ninterface UmbMemberPickerInputContextOpenArgs {\r\n\tallowedContentTypes?: Array<{ unique: string; entityType: UmbMemberTypeEntityType }>;\r\n}\r\n\r\nexport class UmbMemberPickerInputContext extends UmbPickerInputContext<\r\n\tUmbMemberItemModel,\r\n\tUmbMemberItemModel,\r\n\tUmbMemberPickerModalData,\r\n\tUmbMemberPickerModalValue\r\n> {\r\n\tconstructor(host: UmbControllerHostElement) {\r\n\t\tsuper(host, UMB_MEMBER_ITEM_REPOSITORY_ALIAS, UMB_MEMBER_PICKER_MODAL);\r\n\t}\r\n\r\n\toverride async openPicker(\r\n\t\tpickerData?: Partial,\r\n\t\targs?: UmbMemberPickerInputContextOpenArgs,\r\n\t) {\r\n\t\tconst combinedPickerData = {\r\n\t\t\t...pickerData,\r\n\t\t};\r\n\r\n\t\t// transform allowedContentTypes to a pickable filter\r\n\t\tcombinedPickerData.pickableFilter = (item) => this.#pickableFilter(item, args?.allowedContentTypes);\r\n\r\n\t\t// set default search data\r\n\t\tif (!pickerData?.search) {\r\n\t\t\tcombinedPickerData.search = {\r\n\t\t\t\tproviderAlias: UMB_MEMBER_SEARCH_PROVIDER_ALIAS,\r\n\t\t\t\t...pickerData?.search,\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// pass allowedContentTypes to the search request args\r\n\t\tcombinedPickerData.search!.queryParams = {\r\n\t\t\tallowedContentTypes: args?.allowedContentTypes,\r\n\t\t\t...pickerData?.search?.queryParams,\r\n\t\t};\r\n\r\n\t\tawait super.openPicker(combinedPickerData);\r\n\t}\r\n\r\n\t#pickableFilter = (\r\n\t\titem: UmbMemberItemModel,\r\n\t\tallowedContentTypes?: Array<{ unique: string; entityType: UmbMemberTypeEntityType }>,\r\n\t): boolean => {\r\n\t\tif (allowedContentTypes && allowedContentTypes.length > 0) {\r\n\t\t\treturn allowedContentTypes\r\n\t\t\t\t.map((contentTypeReference) => contentTypeReference.unique)\r\n\t\t\t\t.includes(item.memberType.unique);\r\n\t\t}\r\n\t\treturn true;\r\n\t};\r\n}\r\n\r\n/** @deprecated Use `UmbMemberPickerInputContext` instead. This method will be removed in Umbraco 15. */\r\nexport { UmbMemberPickerInputContext as UmbMemberPickerContext };\r\n","import type { UmbMemberItemModel } from '../../item/types.js';\r\nimport { UmbMemberPickerInputContext } from './input-member.context.js';\r\nimport { css, customElement, html, nothing, property, repeat, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { splitStringToArray } from '@umbraco-cms/backoffice/utils';\r\nimport { UmbChangeEvent } from '@umbraco-cms/backoffice/event';\r\nimport { UmbFormControlMixin } from '@umbraco-cms/backoffice/validation';\r\nimport { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';\r\nimport { UmbSorterController } from '@umbraco-cms/backoffice/sorter';\r\nimport { UMB_MEMBER_TYPE_ENTITY_TYPE } from '@umbraco-cms/backoffice/member-type';\r\n\r\n@customElement('umb-input-member')\r\nexport class UmbInputMemberElement extends UmbFormControlMixin(\r\n\tUmbLitElement,\r\n) {\r\n\t#sorter = new UmbSorterController(this, {\r\n\t\tgetUniqueOfElement: (element) => {\r\n\t\t\treturn element.id;\r\n\t\t},\r\n\t\tgetUniqueOfModel: (modelEntry) => {\r\n\t\t\treturn modelEntry;\r\n\t\t},\r\n\t\tidentifier: 'Umb.SorterIdentifier.InputMember',\r\n\t\titemSelector: 'umb-entity-item-ref',\r\n\t\tcontainerSelector: 'uui-ref-list',\r\n\t\tonChange: ({ model }) => {\r\n\t\t\tthis.selection = model;\r\n\t\t\tthis.dispatchEvent(new UmbChangeEvent());\r\n\t\t},\r\n\t});\r\n\r\n\t/**\r\n\t * This is a minimum amount of selected items in this input.\r\n\t * @type {number}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: Number })\r\n\tpublic set min(value: number) {\r\n\t\tthis.#pickerContext.min = value;\r\n\t}\r\n\tpublic get min(): number {\r\n\t\treturn this.#pickerContext.min;\r\n\t}\r\n\r\n\t/**\r\n\t * Min validation message.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'min-message' })\r\n\tminMessage = 'This field need more items';\r\n\r\n\t/**\r\n\t * This is a maximum amount of selected items in this input.\r\n\t * @type {number}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: Number })\r\n\tpublic set max(value: number) {\r\n\t\tthis.#pickerContext.max = value;\r\n\t}\r\n\tpublic get max(): number {\r\n\t\treturn this.#pickerContext.max;\r\n\t}\r\n\r\n\t/**\r\n\t * Max validation message.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: String, attribute: 'max-message' })\r\n\tmaxMessage = 'This field exceeds the allowed amount of items';\r\n\r\n\tpublic set selection(ids: Array) {\r\n\t\tthis.#pickerContext.setSelection(ids);\r\n\t\tthis.#sorter.setModel(ids);\r\n\t}\r\n\tpublic get selection(): Array {\r\n\t\treturn this.#pickerContext.getSelection();\r\n\t}\r\n\r\n\t@property({ type: Array })\r\n\tallowedContentTypeIds?: string[] | undefined;\r\n\r\n\t@property({ type: String })\r\n\tpublic override set value(selectionString: string | undefined) {\r\n\t\tthis.selection = splitStringToArray(selectionString);\r\n\t}\r\n\tpublic override get value(): string | undefined {\r\n\t\treturn this.selection.length > 0 ? this.selection.join(',') : undefined;\r\n\t}\r\n\r\n\t@property({ type: Object, attribute: false })\r\n\tpublic filter: (member: UmbMemberItemModel) => boolean = () => true;\r\n\r\n\t/**\r\n\t * Sets the input to readonly mode, meaning value cannot be changed but still able to read and select its content.\r\n\t * @type {boolean}\r\n\t * @attr\r\n\t * @default\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tpublic get readonly() {\r\n\t\treturn this.#readonly;\r\n\t}\r\n\tpublic set readonly(value) {\r\n\t\tthis.#readonly = value;\r\n\r\n\t\tif (this.#readonly) {\r\n\t\t\tthis.#sorter.disable();\r\n\t\t} else {\r\n\t\t\tthis.#sorter.enable();\r\n\t\t}\r\n\t}\r\n\t#readonly = false;\r\n\r\n\t@state()\r\n\tprivate _items?: Array;\r\n\r\n\t#pickerContext = new UmbMemberPickerInputContext(this);\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.addValidator(\r\n\t\t\t'rangeUnderflow',\r\n\t\t\t() => this.minMessage,\r\n\t\t\t() => !!this.min && this.selection.length < this.min,\r\n\t\t);\r\n\r\n\t\tthis.addValidator(\r\n\t\t\t'rangeOverflow',\r\n\t\t\t() => this.maxMessage,\r\n\t\t\t() => !!this.max && this.selection.length > this.max,\r\n\t\t);\r\n\r\n\t\tthis.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection');\r\n\t\tthis.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observeItems');\r\n\t}\r\n\r\n\t#openPicker() {\r\n\t\tthis.#pickerContext.openPicker(\r\n\t\t\t{\r\n\t\t\t\tfilter: this.filter,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tallowedContentTypes: this.allowedContentTypeIds?.map((id) => ({\r\n\t\t\t\t\tunique: id,\r\n\t\t\t\t\tentityType: UMB_MEMBER_TYPE_ENTITY_TYPE,\r\n\t\t\t\t})),\r\n\t\t\t},\r\n\t\t);\r\n\t}\r\n\r\n\t#onRemove(item: UmbMemberItemModel) {\r\n\t\tthis.#pickerContext.requestRemoveItem(item.unique);\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`${this.#renderItems()} ${this.#renderAddButton()}`;\r\n\t}\r\n\r\n\t#renderItems() {\r\n\t\tif (!this._items) return nothing;\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${repeat(\r\n\t\t\t\t\tthis._items,\r\n\t\t\t\t\t(item) => item.unique,\r\n\t\t\t\t\t(item) => this.#renderItem(item),\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderItem(item: UmbMemberItemModel) {\r\n\t\tif (!item.unique) return nothing;\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t${this.#renderRemoveButton(item)} \r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderAddButton() {\r\n\t\tif (this.selection.length >= this.max) return nothing;\r\n\t\tif (this.readonly && this.selection.length > 0) {\r\n\t\t\treturn nothing;\r\n\t\t} else {\r\n\t\t\treturn html`\r\n\t\t\t\t\r\n\t\t\t`;\r\n\t\t}\r\n\t}\r\n\r\n\t#renderRemoveButton(item: UmbMemberItemModel) {\r\n\t\tif (this.readonly) return nothing;\r\n\t\treturn html`\r\n\t\t\t this.#onRemove(item)} label=${this.localize.term('general_remove')}>\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [\r\n\t\tcss`\r\n\t\t\t#btn-add {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\r\n\r\n\t\t\tumb-entity-item-ref[drag-placeholder] {\r\n\t\t\t\topacity: 0.2;\r\n\t\t\t}\r\n\t\t`,\r\n\t];\r\n}\r\n\r\nexport { UmbInputMemberElement as element };\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-input-member': UmbInputMemberElement;\r\n\t}\r\n}\r\n","import type { UmbMemberDetailStore } from './detail/member-detail.store.js';\r\nimport { UMB_MEMBER_DETAIL_STORE_CONTEXT } from './detail/member-detail.store.context-token.js';\r\nimport type { UmbMemberItemStore } from '../item/repository/member-item.store.js';\r\nimport { UMB_MEMBER_ITEM_STORE_CONTEXT } from '../item/repository/member-item.store.context-token.js';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport type { UmbNotificationContext } from '@umbraco-cms/backoffice/notification';\r\nimport { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';\r\nimport { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository';\r\n\r\nexport abstract class UmbMemberRepositoryBase extends UmbRepositoryBase {\r\n\tprotected init;\r\n\tprotected detailStore?: UmbMemberDetailStore;\r\n\tprotected itemStore?: UmbMemberItemStore;\r\n\tprotected notificationContext?: UmbNotificationContext;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\r\n\t\tthis.init = Promise.all([\r\n\t\t\tthis.consumeContext(UMB_MEMBER_DETAIL_STORE_CONTEXT, (instance) => {\r\n\t\t\t\tthis.detailStore = instance;\r\n\t\t\t}).asPromise(),\r\n\r\n\t\t\tthis.consumeContext(UMB_MEMBER_ITEM_STORE_CONTEXT, (instance) => {\r\n\t\t\t\tthis.itemStore = instance;\r\n\t\t\t}).asPromise(),\r\n\r\n\t\t\tthis.consumeContext(UMB_NOTIFICATION_CONTEXT, (instance) => {\r\n\t\t\t\tthis.notificationContext = instance;\r\n\t\t\t}).asPromise(),\r\n\t\t]);\r\n\t}\r\n}\r\n","import type { UmbMemberDetailModel, UmbMemberValueModel } from '../../types.js';\r\nimport { UMB_MEMBER_ENTITY_TYPE } from '../../entity.js';\r\nimport type { UmbMemberCollectionFilterModel } from '../types.js';\r\nimport { tryExecuteAndNotify } from '@umbraco-cms/backoffice/resources';\r\nimport type { UmbCollectionDataSource } from '@umbraco-cms/backoffice/collection';\r\nimport type { MemberResponseModel } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport { MemberService } from '@umbraco-cms/backoffice/external/backend-api';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\nimport type { UmbEntityVariantModel } from '@umbraco-cms/backoffice/variant';\r\n\r\n/**\r\n * A data source that fetches the member collection data from the server.\r\n * @class UmbMemberCollectionServerDataSource\r\n * @implements {UmbCollectionDataSource}\r\n */\r\nexport class UmbMemberCollectionServerDataSource implements UmbCollectionDataSource {\r\n\t#host: UmbControllerHost;\r\n\r\n\t/**\r\n\t * Creates an instance of UmbMemberCollectionServerDataSource.\r\n\t * @param {UmbControllerHost} host - The controller host for this controller to be appended to\r\n\t * @memberof UmbMemberCollectionServerDataSource\r\n\t */\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tthis.#host = host;\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the member collection filtered by the given filter.\r\n\t * @param {UmbMemberCollectionFilterModel} filter\r\n\t * @returns {*}\r\n\t * @memberof UmbMemberCollectionServerDataSource\r\n\t */\r\n\tasync getCollection(filter: UmbMemberCollectionFilterModel) {\r\n\t\tconst { data, error } = await tryExecuteAndNotify(this.#host, MemberService.getFilterMember(filter));\r\n\r\n\t\tif (error) {\r\n\t\t\treturn { error };\r\n\t\t}\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn { data: { items: [], total: 0 } };\r\n\t\t}\r\n\r\n\t\tconst { items, total } = data;\r\n\r\n\t\tconst mappedItems: Array = items.map((item: MemberResponseModel) => {\r\n\t\t\tconst memberDetail: UmbMemberDetailModel = {\r\n\t\t\t\tentityType: UMB_MEMBER_ENTITY_TYPE,\r\n\t\t\t\temail: item.email,\r\n\t\t\t\tvariants: item.variants as UmbEntityVariantModel[],\r\n\t\t\t\tunique: item.id,\r\n\t\t\t\tkind: item.kind,\r\n\t\t\t\tlastLoginDate: item.lastLoginDate || null,\r\n\t\t\t\tlastLockoutDate: item.lastLockoutDate || null,\r\n\t\t\t\tlastPasswordChangeDate: item.lastPasswordChangeDate || null,\r\n\t\t\t\tfailedPasswordAttempts: item.failedPasswordAttempts,\r\n\t\t\t\tisApproved: item.isApproved,\r\n\t\t\t\tisLockedOut: item.isLockedOut,\r\n\t\t\t\tgroups: item.groups,\r\n\t\t\t\tisTwoFactorEnabled: item.isTwoFactorEnabled,\r\n\t\t\t\tmemberType: { unique: item.memberType.id, icon: item.memberType.icon },\r\n\t\t\t\tusername: item.username,\r\n\t\t\t\tvalues: item.values as UmbMemberValueModel[],\r\n\t\t\t};\r\n\r\n\t\t\treturn memberDetail;\r\n\t\t});\r\n\r\n\t\treturn { data: { items: mappedItems, total } };\r\n\t}\r\n}\r\n","import { UmbMemberRepositoryBase } from '../../repository/member-repository-base.js';\r\nimport type { UmbMemberCollectionFilterModel } from '../types.js';\r\nimport { UmbMemberCollectionServerDataSource } from './member-collection.server.data-source.js';\r\nimport type { UmbMemberCollectionDataSource } from './types.js';\r\nimport type { UmbCollectionRepository } from '@umbraco-cms/backoffice/collection';\r\nimport type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';\r\n\r\nexport class UmbMemberCollectionRepository extends UmbMemberRepositoryBase implements UmbCollectionRepository {\r\n\t#collectionSource: UmbMemberCollectionDataSource;\r\n\r\n\tconstructor(host: UmbControllerHost) {\r\n\t\tsuper(host);\r\n\t\tthis.#collectionSource = new UmbMemberCollectionServerDataSource(host);\r\n\t}\r\n\r\n\tasync requestCollection(filter: UmbMemberCollectionFilterModel = { skip: 0, take: 100 }) {\r\n\t\tawait this.init;\r\n\r\n\t\tconst { data, error } = await this.#collectionSource.getCollection(filter);\r\n\r\n\t\tif (data) {\r\n\t\t\tthis.detailStore!.appendItems(data.items);\r\n\t\t}\r\n\r\n\t\treturn { data, error, asObservable: () => this.detailStore!.all() };\r\n\t}\r\n}\r\n\r\nexport default UmbMemberCollectionRepository;\r\n","import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'collectionAction',\r\n\t\tname: 'Create Member Collection Action',\r\n\t\tkind: 'button',\r\n\t\talias: 'Umb.CollectionAction.Member.Create',\r\n\t\tweight: 200,\r\n\t\tmeta: {\r\n\t\t\tlabel: '#general_create',\r\n\t\t},\r\n\t\telement: () => import('./create-member-collection-action.element.js'),\r\n\t\tconditions: [\r\n\t\t\t{\r\n\t\t\t\talias: UMB_COLLECTION_ALIAS_CONDITION,\r\n\t\t\t\tmatch: 'Umb.Collection.Member',\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n];\r\n","import { UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS } from './repository/constants.js';\r\nimport { manifests as collectionRepositoryManifests } from './repository/manifests.js';\r\nimport { manifests as collectionViewManifests } from './views/manifests.js';\r\nimport { manifests as collectionActionManifests } from './action/manifests.js';\r\n\r\nexport const UMB_MEMBER_COLLECTION_ALIAS = 'Umb.Collection.Member';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'collection',\r\n\t\talias: UMB_MEMBER_COLLECTION_ALIAS,\r\n\t\tname: 'Member Collection',\r\n\t\tapi: () => import('./member-collection.context.js'),\r\n\t\telement: () => import('./member-collection.element.js'),\r\n\t\tmeta: {\r\n\t\t\trepositoryAlias: UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS,\r\n\t\t},\r\n\t},\r\n\t...collectionRepositoryManifests,\r\n\t...collectionViewManifests,\r\n\t...collectionActionManifests,\r\n];\r\n","import { UmbMemberCollectionRepository } from '../../collection/index.js';\r\nimport type { UmbMemberDetailModel } from '../../types.js';\r\nimport type { UmbMemberItemModel } from '../../item/types.js';\r\nimport type { UmbMemberPickerModalValue, UmbMemberPickerModalData } from './member-picker-modal.token.js';\r\nimport type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit';\r\nimport { customElement, html, nothing, repeat, state } from '@umbraco-cms/backoffice/external/lit';\r\nimport { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';\r\nimport { UmbTextStyles } from '@umbraco-cms/backoffice/style';\r\nimport { UmbCollectionItemPickerContext } from '@umbraco-cms/backoffice/collection';\r\n\r\n@customElement('umb-member-picker-modal')\r\nexport class UmbMemberPickerModalElement extends UmbModalBaseElement<\r\n\tUmbMemberPickerModalData,\r\n\tUmbMemberPickerModalValue\r\n> {\r\n\t@state()\r\n\tprivate _members: Array = [];\r\n\r\n\t@state()\r\n\tprivate _searchQuery?: string;\r\n\r\n\t@state()\r\n\tprivate _selectableFilter: (item: UmbMemberItemModel) => boolean = () => true;\r\n\r\n\t#collectionRepository = new UmbMemberCollectionRepository(this);\r\n\t#pickerContext = new UmbCollectionItemPickerContext(this);\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.observe(\r\n\t\t\tthis.#pickerContext.selection.selection,\r\n\t\t\t(selection) => {\r\n\t\t\t\tthis.updateValue({ selection });\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t},\r\n\t\t\t'umbSelectionObserver',\r\n\t\t);\r\n\r\n\t\tthis.observe(\r\n\t\t\tthis.#pickerContext.search.query,\r\n\t\t\t(query) => {\r\n\t\t\t\tthis._searchQuery = query?.query;\r\n\t\t\t},\r\n\t\t\t'umbPickerSearchQueryObserver',\r\n\t\t);\r\n\t}\r\n\r\n\tprotected override async updated(_changedProperties: PropertyValueMap | Map) {\r\n\t\tsuper.updated(_changedProperties);\r\n\r\n\t\tif (_changedProperties.has('data')) {\r\n\t\t\tthis.#pickerContext.selection.setMultiple(this.data?.multiple ?? false);\r\n\r\n\t\t\tif (this.data?.pickableFilter) {\r\n\t\t\t\tthis._selectableFilter = this.data?.pickableFilter;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.data?.search) {\r\n\t\t\t\tthis.#pickerContext.search.updateConfig({\r\n\t\t\t\t\t...this.data.search,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tconst searchQueryParams = this.data.search.queryParams;\r\n\t\t\t\tif (searchQueryParams) {\r\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t\t\t\t//@ts-ignore - TODO wire up types\r\n\t\t\t\t\tthis.#pickerContext.search.setQuery(searchQueryParams);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (_changedProperties.has('value')) {\r\n\t\t\tthis.#pickerContext.selection.setSelection(this.value?.selection);\r\n\t\t}\r\n\t}\r\n\r\n\toverride async firstUpdated() {\r\n\t\tconst { data } = await this.#collectionRepository.requestCollection({});\r\n\t\tthis._members = data?.items ?? [];\r\n\t}\r\n\r\n\tget #filteredMembers() {\r\n\t\tif (this.data?.filter) {\r\n\t\t\treturn this._members.filter(this.data.filter as any);\r\n\t\t} else {\r\n\t\t\treturn this._members;\r\n\t\t}\r\n\t}\r\n\r\n\toverride render() {\r\n\t\treturn html`\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t${this.#renderItems()}\r\n\t\t\t\t${this.#renderActions()}\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderItems() {\r\n\t\tif (this._searchQuery) {\r\n\t\t\treturn nothing;\r\n\t\t}\r\n\r\n\t\treturn html`\r\n\t\t\t${repeat(\r\n\t\t\t\tthis.#filteredMembers,\r\n\t\t\t\t(item) => item.unique,\r\n\t\t\t\t(item) => this.#renderMemberItem(item),\r\n\t\t\t)}\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderMemberItem(item: UmbMemberItemModel | UmbMemberDetailModel) {\r\n\t\t// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n\t\t// @ts-ignore - TODO: MemberDetailModel does not have a name. It should have so we ignore this for now.\r\n\t\tconst selectable = this._selectableFilter(item);\r\n\r\n\t\treturn html`\r\n\t\t\t this.#pickerContext.selection.select(item.unique)}\r\n\t\t\t\t@deselected=${() => this.#pickerContext.selection.deselect(item.unique)}\r\n\t\t\t\t?selected=${this.#pickerContext.selection.isSelected(item.unique)}>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t`;\r\n\t}\r\n\r\n\t#renderActions() {\r\n\t\treturn html`\r\n\t\t\t
\r\n\t\t\t\t this.modalContext?.reject()}>\r\n\t\t\t\t this.modalContext?.submit()}>\r\n\t\t\t
\r\n\t\t`;\r\n\t}\r\n\r\n\tstatic override styles = [UmbTextStyles];\r\n}\r\n\r\nexport default UmbMemberPickerModalElement;\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'umb-member-picker-modal': UmbMemberPickerModalElement;\r\n\t}\r\n}\r\n","export const UMB_MEMBER_VALIDATION_REPOSITORY_ALIAS = 'Umb.Repository.Member.Validation';\r\n\r\nexport const manifests: Array = [\r\n\t{\r\n\t\ttype: 'repository',\r\n\t\talias: UMB_MEMBER_VALIDATION_REPOSITORY_ALIAS,\r\n\t\tname: 'Member Validation Repository',\r\n\t\tapi: () => import('./member-validation.repository.js'),\r\n\t},\r\n];\r\n"],"names":["UMB_MEMBER_SEARCH_PROVIDER_ALIAS","UMB_MEMBER_PICKER_MODAL","UmbModalToken","UMB_MEMBER_ENTITY_TYPE","UMB_MEMBER_ROOT_ENTITY_TYPE","IsMemberVariantContext","context","UMB_MEMBER_VARIANT_CONTEXT","UmbContextToken","UMB_MEMBER_COLLECTION_REPOSITORY_ALIAS","manifests","memberCollection_repository","UMB_MEMBER_TABLE_COLLECTION_VIEW_ALIAS","UMB_COLLECTION_ALIAS_CONDITION","UMB_MEMBER_COLLECTION_CONTEXT","UMB_MEMBER_CREATE_OPTIONS_MODAL","UMB_MEMBER_ITEM_REPOSITORY_ALIAS","UMB_MEMBER_STORE_ALIAS","UMB_MEMBER_ITEM_STORE_CONTEXT","UMB_MEMBER_DETAIL_REPOSITORY_ALIAS","UMB_MEMBER_DETAIL_STORE_ALIAS","UMB_MEMBER_DETAIL_STORE_CONTEXT","UMB_MEMBER_WORKSPACE_CONTEXT","UMB_MEMBER_WORKSPACE_ALIAS","workspace","workspaceActions","UmbSubmitWorkspaceAction","UMB_WORKSPACE_CONDITION_ALIAS","workspaceViews","UMB_CONTENT_HAS_PROPERTIES_WORKSPACE_CONDITION","UMB_MEMBER_ROOT_WORKSPACE_ALIAS","UmbMemberPickerInputContext","UmbPickerInputContext","host","pickerData","args","combinedPickerData","item","#pickableFilter","allowedContentTypes","contentTypeReference","_sorter","_readonly","_pickerContext","_UmbInputMemberElement_instances","openPicker_fn","onRemove_fn","renderItems_fn","renderItem_fn","renderAddButton_fn","renderRemoveButton_fn","UmbInputMemberElement","UmbFormControlMixin","UmbLitElement","__privateAdd","UmbSorterController","element","modelEntry","model","UmbChangeEvent","__privateGet","selection","selectedItems","value","ids","selectionString","splitStringToArray","__privateSet","html","__privateMethod","id","UMB_MEMBER_TYPE_ENTITY_TYPE","repeat","nothing","css","__decorateClass","property","state","customElement","UmbMemberRepositoryBase","UmbRepositoryBase","instance","UMB_NOTIFICATION_CONTEXT","UmbMemberCollectionServerDataSource","#host","filter","data","error","tryExecuteAndNotify","MemberService","items","total","UmbMemberCollectionRepository","#collectionSource","UMB_MEMBER_COLLECTION_ALIAS","collectionRepositoryManifests","collectionViewManifests","collectionActionManifests","_collectionRepository","_UmbMemberPickerModalElement_instances","filteredMembers_get","renderMemberItem_fn","renderActions_fn","UmbMemberPickerModalElement","UmbModalBaseElement","UmbCollectionItemPickerContext","query","_changedProperties","searchQueryParams","selectable","UmbTextStyles","UmbMemberPickerModalElement$1","UMB_MEMBER_VALIDATION_REPOSITORY_ALIAS"],"mappings":"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"}