-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: EntityEditor class #1127
feat: EntityEditor class #1127
Conversation
2333b20
to
dce2ddb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is all looking really good to me! Left some minor comments. I think getting this logic hoisted over will be extremely helpful as teams start scaffolding their settings panes to include entity-specific editing experiences as well
const queryParams = context.isAuthenticated | ||
? `?token=${context.session.token}` | ||
: ""; | ||
// TODO: Decide if the url should be passed in or plucked out of this deep path here |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a good question, and generally speaking, I feel like it would be nice to make this util more generic/less featured-image-specific. I just ran into needing similar functionality with Aaron who's trying to hook up editing an item's thumbnail. The differences there are:
- the url lives at
entity.thumbnailUrl
entity.thumbnailUrl
already has the token appended to it
So not entirely sure how to make this generic to work in both cases, but you could do something like:
getImageUrl (
url: string,
context?: IArcGISContext // make this optional if you want to append the token
) {
const queryParams = context?.isAuthenticated
? `?token=${context.session.token}`
: "";
return cacheBustUrl(`${url}${queryParams}`);
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree - I'll make an issue to try to resolve this - I don't want to add additional concerns / refactors to this PR
packages/common/src/core/schemas/internal/getLocationOptions.ts
Outdated
Show resolved
Hide resolved
packages/common/src/core/schemas/internal/groupsToComboBoxItems.ts
Outdated
Show resolved
Hide resolved
* that it can be consumed by the entity editor. | ||
*/ | ||
export type IHubProjectEditor = Omit<IHubProject, "extent"> & { | ||
extent: IExtent | number[][]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think extent needs to be here anymore?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I remove it, and verified in the harness...
* @param context | ||
* @returns | ||
*/ | ||
export async function getProjectEditorConfigOptions( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to what we just did with creating a base IHubItemEntitySchema
that all entities can spread, I think it might be nice to create a baseItemEntityConfigOptions
array that all item entities can spread because I don't think any of this is necessarily project-specific.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's revisit this on a subsequent PR / issue
c286cf7
to
e24f1c6
Compare
Codecov Report
@@ Coverage Diff @@
## master #1127 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 692 702 +10
Lines 11971 12130 +159
Branches 2013 2047 +34
==========================================
+ Hits 11971 12130 +159
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
awesome! Looking forward to using this
# @esri/hub-common [13.23.0](https://github.com/Esri/hub.js/compare/@esri/hub-common@13.22.1...@esri/hub-common@13.23.0) (2023-07-24) ### Bug Fixes * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) ### Features * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac))
# [14.0.0](https://github.com/Esri/hub.js/compare/@esri/hub-downloads@13.0.0...@esri/hub-downloads@14.0.0) (2023-08-23) ### Bug Fixes * actually export new function from index ([#1147](#1147)) ([5d515d4](5d515d4)) * add actionLinks arg to project view model functions ([#1109](#1109)) ([cef335d](cef335d)) * add default to project schema for location ([#1093](#1093)) ([439a317](439a317)) * add GroupSchema, GroupUiSchema and other support for groups details pane ([#1154](#1154)) ([e82d49c](e82d49c)) * add memberType to SortOption ([#1177](#1177)) ([6480a8c](6480a8c)) * add missing permissions ([#1174](#1174)) ([1213e00](1213e00)) * add new SortOption type ([#1175](#1175)) ([11a74b3](11a74b3)) * add page capability permissions to capability permissions list ([#1136](#1136)) ([4ab99df](4ab99df)) * add support for group members "joined" field ([#1167](#1167)) ([fecea60](fecea60)) * address issue creating sites on portal ([#1085](#1085)) ([7243db8](7243db8)) * alpha permissions ([#1153](#1153)) ([5f2df0c](5f2df0c)) * await save in classes ([#1172](#1172)) ([aa8299d](aa8299d)) * defaultHostname and customHostname editing on site entity ([#1102](#1102)) ([9e1496d](9e1496d)) * enrichUserSearchResult will return a summary of undefined if the search result had no desc ([#1182](#1182)) ([8672d3c](8672d3c)) * ensure getNextFunction handles requestOptions.authentication cleanly ([#1176](#1176)) ([3c19e16](3c19e16)) * ensure requestOptions.authentication is UserSession instance in next() ([#1163](#1163)) ([31b6143](31b6143)) * export ihubgroup ([#1160](#1160)) ([0d29518](0d29518)) * get group from predicate not query.properties ([#1107](#1107)) ([138af9c](138af9c)) * gracefully handles cases where portal prop might not exist on ([#1137](#1137)) ([fa09ecf](fa09ecf)) * group permissions ([#1179](#1179)) ([7e4775f](7e4775f)) * handle new discussion entity ([#1146](#1146)) ([2f395bc](2f395bc)) * include owner with setAccess ([#1129](#1129)) ([3c7ab72](3c7ab72)) * limit project summary (purpose) to 2048 chars and abstract as reusable subschema ([#1090](#1090)) ([83c7a61](83c7a61)) * log checkPermission output if access not granted ([#1169](#1169)) ([8c9f396](8c9f396)) * make scope optional for IUiSchemaRule ([#1097](#1097)) ([1cef34b](1cef34b)) * modify project permissions so it is excluded from enterprise ([#1131](#1131)) ([5872d01](5872d01)) * properly translate radio button labels ([#1181](#1181)) ([54610c8](54610c8)) * remove additionalInfo from userResultToCardModel ([#1162](#1162)) ([c4c72c8](c4c72c8)) * remove license checks on view and edit project permission policies ([#1077](#1077)) ([76918b7](76918b7)) * remove name/title string as it is not wanted ([#1148](#1148)) ([01018c9](01018c9)) * rename term to name for groupMember queries ([#1110](#1110)) ([8fdeca4](8fdeca4)) * reshuffle project edit schema ([#1149](#1149)) ([13cb7ab](13cb7ab)) * revert and update content location picker ([#1164](#1164)) ([c11c019](c11c019)) * small updates to group details schemas ([#1170](#1170)) ([17b19bd](17b19bd)) * ungate group settings pane from being only owner ([#1183](#1183)) ([68533c0](68533c0)) * update clientKey to empty string in updateDomain/addDomain ([#1157](#1157)) ([84ae619](84ae619)) * update hub search result to view model signature ([#1124](#1124)) ([46290dc](46290dc)) * user selects none; location disappears correctly ([#1155](#1155)) ([3a13434](3a13434)) * **hub-common:** have capitalize() handle the empty string, change titlelize() to stop stripping whi ([#1084](#1084)) ([9a16208](9a16208)) * **hub-common:** have convertModelToSite handle invalid search categories ([#1134](#1134)) ([9dde16b](9dde16b)) * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) * **hub-discussions:** move allowAnonymous to channel permissions interface and add access to channel ([#1075](#1075)) ([82c59ad](82c59ad)) * **hub-discussions:** remove whitespace from IUpdateChannel documentation ([#1104](#1104)) ([5e9859c](5e9859c)) ### Features * add group settings schema ([#1180](#1180)) ([768f432](768f432)) * migrate summary stat function ([#1165](#1165)) ([53e34de](53e34de)) * remove capabilities, add featureFlags to Context ([#1184](#1184)) ([394c60c](394c60c)) * **hub-common:** add user membership enrichment and have updateSite persist catalog changes ([#1166](#1166)) ([607cfe9](607cfe9)) * **hub-common:** enriches channel with groups via hub search includes ([#1178](#1178)) ([f38271d](f38271d)), closes [#7405](https://github.com/Esri/hub.js/issues/7405) * **hub-common:** include discussion routes ([#1168](#1168)) ([04feaaf](04feaaf)) * 7109 scaffold new HubGroup entity ([#1113](#1113)) ([ccf9ec6](ccf9ec6)) * 7162 initiative card funcs ([#1121](#1121)) ([567cfc3](567cfc3)) * add a base item entity schema ([#1106](#1106)) ([7b4606b](7b4606b)) * add canReadChannel util ([#1123](#1123)) ([5ec2c5a](5ec2c5a)) * add card section type ([#1142](#1142)) ([41618a4](41618a4)) * add dashboard capability to content, discussions,initiatives ([#1132](#1132)) ([c3e6a98](c3e6a98)) * add dashboard capability to site/project/page ([#1126](#1126)) ([cada5d3](cada5d3)) * add metrics to project capability permissions ([#1086](#1086)) ([f67c836](f67c836)) * add more support and props for Hub Group ([#1143](#1143)) ([bbdc300](bbdc300)) * add project card view model functionality ([#1101](#1101)) ([85a8201](85a8201)) * add slug uri conversion functions and use in getItemBySlug ([#1073](#1073)) ([db9addb](db9addb)) * add workspace pane permissions for all entities ([#1171](#1171)) ([8cb94f6](8cb94f6)) * added location picker to content details ([#1150](#1150)) ([f6317b4](f6317b4)) * adds discussion create ui schema ([#1082](#1082)) ([e463998](e463998)), closes [#6876](https://github.com/Esri/hub.js/issues/6876) * constrain temp:workspace:released permission to alpha orgs ([#1152](#1152)) ([5500dcc](5500dcc)) * context manager serialize / deserialize ([#1088](#1088)) ([f972516](f972516)) * convertModelToPage and update temp:workspace:released permission ([#1173](#1173)) ([0283ff3](0283ff3)) * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac)) * explain search result ([#1156](#1156)) ([d469907](d469907)) * Generic property mapper ([#1100](#1100)) ([1f58fa9](1f58fa9)) * hubSearch supports groupMember entity type ([#1096](#1096)) ([2327cce](2327cce)) * make propertyMapper more generic ([#1098](#1098)) ([09a8d3f](09a8d3f)) * move and refactor entity editor abstractions into hub.js ([#1135](#1135)) ([0ea3d92](0ea3d92)) * page entity ([#1112](#1112)) ([50e7280](50e7280)) * page permission policy is included ([#1125](#1125)) ([6d5c559](6d5c559)) * permission parents, deprecations for Capabilities ([#1158](#1158)) ([83659b1](83659b1)) * post-mod and post-delete utils for ACL ([#1119](#1119)) ([0a6292f](0a6292f)) * search by channel name and multi access ([#1161](#1161)) ([fcd71ac](fcd71ac)) * teach hubSearch channels ([#1111](#1111)) ([82d0492](82d0492)) * user card result to card ([#1144](#1144)) ([866fbe7](866fbe7)) * workspace gating ([#1151](#1151)) ([68fedd1](68fedd1)) * **hub-common:** add content capability and define default collections to entity catalogs ([#1120](#1120)) ([7aa7f0e](7aa7f0e)) * **hub-common:** add Discussion entity schemas ([#1076](#1076)) ([5b6b704](5b6b704)) * **hub-common:** add isDiscussable mapping ([#1089](#1089)) ([0f4a84a](0f4a84a)) * **hub-common:** add name to interface ISearchChannels ([#1140](#1140)) ([674dd12](674dd12)) * **hub-common:** add unicodeToBase64 and base64ToUnicode utils ([#1095](#1095)) ([82bd6e9](82bd6e9)) * **hub-common:** create an array of valid item types ([#1083](#1083)) ([ed1d509](ed1d509)) * **hub-common:** persist modifications to site collections via updateSite ([#1139](#1139)) ([147b7fc](147b7fc)) * **hub-common:** remove required property prompt ([#1087](#1087)) ([6b7c28e](6b7c28e)) * **hub-common:** return "license" and "source" as part of results from hubSearchItems ([#1072](#1072)) ([9d086ed](9d086ed)) * **hub-common:** workspace edit content details ([#1128](#1128)) ([aa47afa](aa47afa)) * **hub-discussions:** add acl authentication to channel util function canModifyChannel ([#1092](#1092)) ([f4190a4](f4190a4)) * **hub-discussions:** add createDiscussionSetting function and associated interfaces ([#1103](#1103)) ([0183121](0183121)) * **hub-discussions:** add function fetchDiscussionSetting and associated interfaces ([#1114](#1114)) ([080b70c](080b70c)) * **hub-discussions:** add function removeDiscussionSetting with asso… ([#1108](#1108)) ([d90aac2](d90aac2)) * **hub-discussions:** add function updateDiscussionSetting ([#1133](#1133)) ([a594859](a594859)) * **hub-discussions:** add optional guidelineUrl to IChannel and ICre… ([#1078](#1078)) ([6f889a3](6f889a3)) * **hub-discussions:** expand isDiscussable ([#1079](#1079)) ([73db7f1](73db7f1)) * **hub-discussions:** expanded enum ([#1080](#1080)) ([2a121b4](2a121b4)) * **hub-discussions:** legacy permission checks mixed channels ([#1070](#1070)) ([07ae63d](07ae63d)) * **hub-discussions:** remove channel util function isChannelInclusive ([#1091](#1091)) ([5d36f9b](5d36f9b)) * small project enhancements ([#1074](#1074)) ([3085a6b](3085a6b)) ### Reverts * Revert "refactor: post-mod and post-delete utils for ACL (#1117)" (#1118) ([d13b2f9](d13b2f9)), closes [#1117](#1117) [#1118](#1118) * Revert "feat: make propertyMapper more generic (#1098)" (#1099) ([272c645](272c645)), closes [#1098](#1098) [#1099](#1099) ### BREAKING CHANGES * HubSubsystem, HubSystemStatus, isSubsystem removed * fix: remove capabilities * Remove all capability related functions, props, fix tests * feat: context holds feature flags * refactor: ensure .features persisted for S/I/P only * refactor: update version test to account for settings.features being included * fix: remove IEntityFeature type * IEntityFeature type replaced with IFeatureFlag * **hub-discussions:** remove channel util function isChannelInclusive * refactor(hub-discussions): remove function updatePostSharing and associated interfaces affects: @esri/hub-discussions * **hub-discussions:** remove function updatePostSharing and associated interfaces * test(hub-discussions): remove tests for updatePostSharing function affects: @esri/hub-discussions * fix(hub-discussions): bump hub-common peerDependency to ^13.0.0 affects: @esri/hub-discussions
# [14.0.0](https://github.com/Esri/hub.js/compare/@esri/hub-events@13.0.0...@esri/hub-events@14.0.0) (2023-08-23) ### Bug Fixes * actually export new function from index ([#1147](#1147)) ([5d515d4](5d515d4)) * add actionLinks arg to project view model functions ([#1109](#1109)) ([cef335d](cef335d)) * add default to project schema for location ([#1093](#1093)) ([439a317](439a317)) * add GroupSchema, GroupUiSchema and other support for groups details pane ([#1154](#1154)) ([e82d49c](e82d49c)) * add memberType to SortOption ([#1177](#1177)) ([6480a8c](6480a8c)) * add missing permissions ([#1174](#1174)) ([1213e00](1213e00)) * add new SortOption type ([#1175](#1175)) ([11a74b3](11a74b3)) * add page capability permissions to capability permissions list ([#1136](#1136)) ([4ab99df](4ab99df)) * add support for group members "joined" field ([#1167](#1167)) ([fecea60](fecea60)) * address issue creating sites on portal ([#1085](#1085)) ([7243db8](7243db8)) * alpha permissions ([#1153](#1153)) ([5f2df0c](5f2df0c)) * await save in classes ([#1172](#1172)) ([aa8299d](aa8299d)) * defaultHostname and customHostname editing on site entity ([#1102](#1102)) ([9e1496d](9e1496d)) * enrichUserSearchResult will return a summary of undefined if the search result had no desc ([#1182](#1182)) ([8672d3c](8672d3c)) * ensure getNextFunction handles requestOptions.authentication cleanly ([#1176](#1176)) ([3c19e16](3c19e16)) * ensure requestOptions.authentication is UserSession instance in next() ([#1163](#1163)) ([31b6143](31b6143)) * export ihubgroup ([#1160](#1160)) ([0d29518](0d29518)) * get group from predicate not query.properties ([#1107](#1107)) ([138af9c](138af9c)) * gracefully handles cases where portal prop might not exist on ([#1137](#1137)) ([fa09ecf](fa09ecf)) * group permissions ([#1179](#1179)) ([7e4775f](7e4775f)) * handle new discussion entity ([#1146](#1146)) ([2f395bc](2f395bc)) * include owner with setAccess ([#1129](#1129)) ([3c7ab72](3c7ab72)) * limit project summary (purpose) to 2048 chars and abstract as reusable subschema ([#1090](#1090)) ([83c7a61](83c7a61)) * log checkPermission output if access not granted ([#1169](#1169)) ([8c9f396](8c9f396)) * make scope optional for IUiSchemaRule ([#1097](#1097)) ([1cef34b](1cef34b)) * modify project permissions so it is excluded from enterprise ([#1131](#1131)) ([5872d01](5872d01)) * properly translate radio button labels ([#1181](#1181)) ([54610c8](54610c8)) * remove additionalInfo from userResultToCardModel ([#1162](#1162)) ([c4c72c8](c4c72c8)) * remove license checks on view and edit project permission policies ([#1077](#1077)) ([76918b7](76918b7)) * remove name/title string as it is not wanted ([#1148](#1148)) ([01018c9](01018c9)) * rename term to name for groupMember queries ([#1110](#1110)) ([8fdeca4](8fdeca4)) * reshuffle project edit schema ([#1149](#1149)) ([13cb7ab](13cb7ab)) * revert and update content location picker ([#1164](#1164)) ([c11c019](c11c019)) * small updates to group details schemas ([#1170](#1170)) ([17b19bd](17b19bd)) * ungate group settings pane from being only owner ([#1183](#1183)) ([68533c0](68533c0)) * update clientKey to empty string in updateDomain/addDomain ([#1157](#1157)) ([84ae619](84ae619)) * update hub search result to view model signature ([#1124](#1124)) ([46290dc](46290dc)) * user selects none; location disappears correctly ([#1155](#1155)) ([3a13434](3a13434)) * **hub-common:** have capitalize() handle the empty string, change titlelize() to stop stripping whi ([#1084](#1084)) ([9a16208](9a16208)) * **hub-common:** have convertModelToSite handle invalid search categories ([#1134](#1134)) ([9dde16b](9dde16b)) * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) * **hub-discussions:** move allowAnonymous to channel permissions interface and add access to channel ([#1075](#1075)) ([82c59ad](82c59ad)) * **hub-discussions:** remove whitespace from IUpdateChannel documentation ([#1104](#1104)) ([5e9859c](5e9859c)) ### Features * add group settings schema ([#1180](#1180)) ([768f432](768f432)) * migrate summary stat function ([#1165](#1165)) ([53e34de](53e34de)) * remove capabilities, add featureFlags to Context ([#1184](#1184)) ([394c60c](394c60c)) * **hub-common:** add user membership enrichment and have updateSite persist catalog changes ([#1166](#1166)) ([607cfe9](607cfe9)) * **hub-common:** enriches channel with groups via hub search includes ([#1178](#1178)) ([f38271d](f38271d)), closes [#7405](https://github.com/Esri/hub.js/issues/7405) * **hub-common:** include discussion routes ([#1168](#1168)) ([04feaaf](04feaaf)) * 7109 scaffold new HubGroup entity ([#1113](#1113)) ([ccf9ec6](ccf9ec6)) * 7162 initiative card funcs ([#1121](#1121)) ([567cfc3](567cfc3)) * add a base item entity schema ([#1106](#1106)) ([7b4606b](7b4606b)) * add canReadChannel util ([#1123](#1123)) ([5ec2c5a](5ec2c5a)) * add card section type ([#1142](#1142)) ([41618a4](41618a4)) * add dashboard capability to content, discussions,initiatives ([#1132](#1132)) ([c3e6a98](c3e6a98)) * add dashboard capability to site/project/page ([#1126](#1126)) ([cada5d3](cada5d3)) * add metrics to project capability permissions ([#1086](#1086)) ([f67c836](f67c836)) * add more support and props for Hub Group ([#1143](#1143)) ([bbdc300](bbdc300)) * add project card view model functionality ([#1101](#1101)) ([85a8201](85a8201)) * add slug uri conversion functions and use in getItemBySlug ([#1073](#1073)) ([db9addb](db9addb)) * add workspace pane permissions for all entities ([#1171](#1171)) ([8cb94f6](8cb94f6)) * added location picker to content details ([#1150](#1150)) ([f6317b4](f6317b4)) * adds discussion create ui schema ([#1082](#1082)) ([e463998](e463998)), closes [#6876](https://github.com/Esri/hub.js/issues/6876) * constrain temp:workspace:released permission to alpha orgs ([#1152](#1152)) ([5500dcc](5500dcc)) * context manager serialize / deserialize ([#1088](#1088)) ([f972516](f972516)) * convertModelToPage and update temp:workspace:released permission ([#1173](#1173)) ([0283ff3](0283ff3)) * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac)) * explain search result ([#1156](#1156)) ([d469907](d469907)) * Generic property mapper ([#1100](#1100)) ([1f58fa9](1f58fa9)) * hubSearch supports groupMember entity type ([#1096](#1096)) ([2327cce](2327cce)) * make propertyMapper more generic ([#1098](#1098)) ([09a8d3f](09a8d3f)) * move and refactor entity editor abstractions into hub.js ([#1135](#1135)) ([0ea3d92](0ea3d92)) * page entity ([#1112](#1112)) ([50e7280](50e7280)) * page permission policy is included ([#1125](#1125)) ([6d5c559](6d5c559)) * permission parents, deprecations for Capabilities ([#1158](#1158)) ([83659b1](83659b1)) * post-mod and post-delete utils for ACL ([#1119](#1119)) ([0a6292f](0a6292f)) * search by channel name and multi access ([#1161](#1161)) ([fcd71ac](fcd71ac)) * teach hubSearch channels ([#1111](#1111)) ([82d0492](82d0492)) * user card result to card ([#1144](#1144)) ([866fbe7](866fbe7)) * workspace gating ([#1151](#1151)) ([68fedd1](68fedd1)) * **hub-common:** add content capability and define default collections to entity catalogs ([#1120](#1120)) ([7aa7f0e](7aa7f0e)) * **hub-common:** add Discussion entity schemas ([#1076](#1076)) ([5b6b704](5b6b704)) * **hub-common:** add isDiscussable mapping ([#1089](#1089)) ([0f4a84a](0f4a84a)) * **hub-common:** add name to interface ISearchChannels ([#1140](#1140)) ([674dd12](674dd12)) * **hub-common:** add unicodeToBase64 and base64ToUnicode utils ([#1095](#1095)) ([82bd6e9](82bd6e9)) * **hub-common:** create an array of valid item types ([#1083](#1083)) ([ed1d509](ed1d509)) * **hub-common:** persist modifications to site collections via updateSite ([#1139](#1139)) ([147b7fc](147b7fc)) * **hub-common:** remove required property prompt ([#1087](#1087)) ([6b7c28e](6b7c28e)) * **hub-common:** return "license" and "source" as part of results from hubSearchItems ([#1072](#1072)) ([9d086ed](9d086ed)) * **hub-common:** workspace edit content details ([#1128](#1128)) ([aa47afa](aa47afa)) * **hub-discussions:** add acl authentication to channel util function canModifyChannel ([#1092](#1092)) ([f4190a4](f4190a4)) * **hub-discussions:** add createDiscussionSetting function and associated interfaces ([#1103](#1103)) ([0183121](0183121)) * **hub-discussions:** add function fetchDiscussionSetting and associated interfaces ([#1114](#1114)) ([080b70c](080b70c)) * **hub-discussions:** add function removeDiscussionSetting with asso… ([#1108](#1108)) ([d90aac2](d90aac2)) * **hub-discussions:** add function updateDiscussionSetting ([#1133](#1133)) ([a594859](a594859)) * **hub-discussions:** add optional guidelineUrl to IChannel and ICre… ([#1078](#1078)) ([6f889a3](6f889a3)) * **hub-discussions:** expand isDiscussable ([#1079](#1079)) ([73db7f1](73db7f1)) * **hub-discussions:** expanded enum ([#1080](#1080)) ([2a121b4](2a121b4)) * **hub-discussions:** legacy permission checks mixed channels ([#1070](#1070)) ([07ae63d](07ae63d)) * **hub-discussions:** remove channel util function isChannelInclusive ([#1091](#1091)) ([5d36f9b](5d36f9b)) * small project enhancements ([#1074](#1074)) ([3085a6b](3085a6b)) ### Reverts * Revert "refactor: post-mod and post-delete utils for ACL (#1117)" (#1118) ([d13b2f9](d13b2f9)), closes [#1117](#1117) [#1118](#1118) * Revert "feat: make propertyMapper more generic (#1098)" (#1099) ([272c645](272c645)), closes [#1098](#1098) [#1099](#1099) ### BREAKING CHANGES * HubSubsystem, HubSystemStatus, isSubsystem removed * fix: remove capabilities * Remove all capability related functions, props, fix tests * feat: context holds feature flags * refactor: ensure .features persisted for S/I/P only * refactor: update version test to account for settings.features being included * fix: remove IEntityFeature type * IEntityFeature type replaced with IFeatureFlag * **hub-discussions:** remove channel util function isChannelInclusive * refactor(hub-discussions): remove function updatePostSharing and associated interfaces affects: @esri/hub-discussions * **hub-discussions:** remove function updatePostSharing and associated interfaces * test(hub-discussions): remove tests for updatePostSharing function affects: @esri/hub-discussions * fix(hub-discussions): bump hub-common peerDependency to ^13.0.0 affects: @esri/hub-discussions
# [14.0.0](https://github.com/Esri/hub.js/compare/@esri/hub-initiatives@13.0.0...@esri/hub-initiatives@14.0.0) (2023-08-23) ### Bug Fixes * actually export new function from index ([#1147](#1147)) ([5d515d4](5d515d4)) * add actionLinks arg to project view model functions ([#1109](#1109)) ([cef335d](cef335d)) * add default to project schema for location ([#1093](#1093)) ([439a317](439a317)) * add GroupSchema, GroupUiSchema and other support for groups details pane ([#1154](#1154)) ([e82d49c](e82d49c)) * add memberType to SortOption ([#1177](#1177)) ([6480a8c](6480a8c)) * add missing permissions ([#1174](#1174)) ([1213e00](1213e00)) * add new SortOption type ([#1175](#1175)) ([11a74b3](11a74b3)) * add page capability permissions to capability permissions list ([#1136](#1136)) ([4ab99df](4ab99df)) * add support for group members "joined" field ([#1167](#1167)) ([fecea60](fecea60)) * address issue creating sites on portal ([#1085](#1085)) ([7243db8](7243db8)) * alpha permissions ([#1153](#1153)) ([5f2df0c](5f2df0c)) * await save in classes ([#1172](#1172)) ([aa8299d](aa8299d)) * defaultHostname and customHostname editing on site entity ([#1102](#1102)) ([9e1496d](9e1496d)) * enrichUserSearchResult will return a summary of undefined if the search result had no desc ([#1182](#1182)) ([8672d3c](8672d3c)) * ensure getNextFunction handles requestOptions.authentication cleanly ([#1176](#1176)) ([3c19e16](3c19e16)) * ensure requestOptions.authentication is UserSession instance in next() ([#1163](#1163)) ([31b6143](31b6143)) * export ihubgroup ([#1160](#1160)) ([0d29518](0d29518)) * get group from predicate not query.properties ([#1107](#1107)) ([138af9c](138af9c)) * gracefully handles cases where portal prop might not exist on ([#1137](#1137)) ([fa09ecf](fa09ecf)) * group permissions ([#1179](#1179)) ([7e4775f](7e4775f)) * handle new discussion entity ([#1146](#1146)) ([2f395bc](2f395bc)) * include owner with setAccess ([#1129](#1129)) ([3c7ab72](3c7ab72)) * limit project summary (purpose) to 2048 chars and abstract as reusable subschema ([#1090](#1090)) ([83c7a61](83c7a61)) * log checkPermission output if access not granted ([#1169](#1169)) ([8c9f396](8c9f396)) * make scope optional for IUiSchemaRule ([#1097](#1097)) ([1cef34b](1cef34b)) * modify project permissions so it is excluded from enterprise ([#1131](#1131)) ([5872d01](5872d01)) * properly translate radio button labels ([#1181](#1181)) ([54610c8](54610c8)) * remove additionalInfo from userResultToCardModel ([#1162](#1162)) ([c4c72c8](c4c72c8)) * remove license checks on view and edit project permission policies ([#1077](#1077)) ([76918b7](76918b7)) * remove name/title string as it is not wanted ([#1148](#1148)) ([01018c9](01018c9)) * rename term to name for groupMember queries ([#1110](#1110)) ([8fdeca4](8fdeca4)) * reshuffle project edit schema ([#1149](#1149)) ([13cb7ab](13cb7ab)) * revert and update content location picker ([#1164](#1164)) ([c11c019](c11c019)) * small updates to group details schemas ([#1170](#1170)) ([17b19bd](17b19bd)) * ungate group settings pane from being only owner ([#1183](#1183)) ([68533c0](68533c0)) * update clientKey to empty string in updateDomain/addDomain ([#1157](#1157)) ([84ae619](84ae619)) * update hub search result to view model signature ([#1124](#1124)) ([46290dc](46290dc)) * user selects none; location disappears correctly ([#1155](#1155)) ([3a13434](3a13434)) * **hub-common:** have capitalize() handle the empty string, change titlelize() to stop stripping whi ([#1084](#1084)) ([9a16208](9a16208)) * **hub-common:** have convertModelToSite handle invalid search categories ([#1134](#1134)) ([9dde16b](9dde16b)) * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) * **hub-discussions:** move allowAnonymous to channel permissions interface and add access to channel ([#1075](#1075)) ([82c59ad](82c59ad)) * **hub-discussions:** remove whitespace from IUpdateChannel documentation ([#1104](#1104)) ([5e9859c](5e9859c)) ### Features * add group settings schema ([#1180](#1180)) ([768f432](768f432)) * migrate summary stat function ([#1165](#1165)) ([53e34de](53e34de)) * remove capabilities, add featureFlags to Context ([#1184](#1184)) ([394c60c](394c60c)) * **hub-common:** add user membership enrichment and have updateSite persist catalog changes ([#1166](#1166)) ([607cfe9](607cfe9)) * **hub-common:** enriches channel with groups via hub search includes ([#1178](#1178)) ([f38271d](f38271d)), closes [#7405](https://github.com/Esri/hub.js/issues/7405) * **hub-common:** include discussion routes ([#1168](#1168)) ([04feaaf](04feaaf)) * 7109 scaffold new HubGroup entity ([#1113](#1113)) ([ccf9ec6](ccf9ec6)) * 7162 initiative card funcs ([#1121](#1121)) ([567cfc3](567cfc3)) * add a base item entity schema ([#1106](#1106)) ([7b4606b](7b4606b)) * add canReadChannel util ([#1123](#1123)) ([5ec2c5a](5ec2c5a)) * add card section type ([#1142](#1142)) ([41618a4](41618a4)) * add dashboard capability to content, discussions,initiatives ([#1132](#1132)) ([c3e6a98](c3e6a98)) * add dashboard capability to site/project/page ([#1126](#1126)) ([cada5d3](cada5d3)) * add metrics to project capability permissions ([#1086](#1086)) ([f67c836](f67c836)) * add more support and props for Hub Group ([#1143](#1143)) ([bbdc300](bbdc300)) * add project card view model functionality ([#1101](#1101)) ([85a8201](85a8201)) * add slug uri conversion functions and use in getItemBySlug ([#1073](#1073)) ([db9addb](db9addb)) * add workspace pane permissions for all entities ([#1171](#1171)) ([8cb94f6](8cb94f6)) * added location picker to content details ([#1150](#1150)) ([f6317b4](f6317b4)) * adds discussion create ui schema ([#1082](#1082)) ([e463998](e463998)), closes [#6876](https://github.com/Esri/hub.js/issues/6876) * constrain temp:workspace:released permission to alpha orgs ([#1152](#1152)) ([5500dcc](5500dcc)) * context manager serialize / deserialize ([#1088](#1088)) ([f972516](f972516)) * convertModelToPage and update temp:workspace:released permission ([#1173](#1173)) ([0283ff3](0283ff3)) * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac)) * explain search result ([#1156](#1156)) ([d469907](d469907)) * Generic property mapper ([#1100](#1100)) ([1f58fa9](1f58fa9)) * hubSearch supports groupMember entity type ([#1096](#1096)) ([2327cce](2327cce)) * make propertyMapper more generic ([#1098](#1098)) ([09a8d3f](09a8d3f)) * move and refactor entity editor abstractions into hub.js ([#1135](#1135)) ([0ea3d92](0ea3d92)) * page entity ([#1112](#1112)) ([50e7280](50e7280)) * page permission policy is included ([#1125](#1125)) ([6d5c559](6d5c559)) * permission parents, deprecations for Capabilities ([#1158](#1158)) ([83659b1](83659b1)) * post-mod and post-delete utils for ACL ([#1119](#1119)) ([0a6292f](0a6292f)) * search by channel name and multi access ([#1161](#1161)) ([fcd71ac](fcd71ac)) * teach hubSearch channels ([#1111](#1111)) ([82d0492](82d0492)) * user card result to card ([#1144](#1144)) ([866fbe7](866fbe7)) * workspace gating ([#1151](#1151)) ([68fedd1](68fedd1)) * **hub-common:** add content capability and define default collections to entity catalogs ([#1120](#1120)) ([7aa7f0e](7aa7f0e)) * **hub-common:** add Discussion entity schemas ([#1076](#1076)) ([5b6b704](5b6b704)) * **hub-common:** add isDiscussable mapping ([#1089](#1089)) ([0f4a84a](0f4a84a)) * **hub-common:** add name to interface ISearchChannels ([#1140](#1140)) ([674dd12](674dd12)) * **hub-common:** add unicodeToBase64 and base64ToUnicode utils ([#1095](#1095)) ([82bd6e9](82bd6e9)) * **hub-common:** create an array of valid item types ([#1083](#1083)) ([ed1d509](ed1d509)) * **hub-common:** persist modifications to site collections via updateSite ([#1139](#1139)) ([147b7fc](147b7fc)) * **hub-common:** remove required property prompt ([#1087](#1087)) ([6b7c28e](6b7c28e)) * **hub-common:** return "license" and "source" as part of results from hubSearchItems ([#1072](#1072)) ([9d086ed](9d086ed)) * **hub-common:** workspace edit content details ([#1128](#1128)) ([aa47afa](aa47afa)) * **hub-discussions:** add acl authentication to channel util function canModifyChannel ([#1092](#1092)) ([f4190a4](f4190a4)) * **hub-discussions:** add createDiscussionSetting function and associated interfaces ([#1103](#1103)) ([0183121](0183121)) * **hub-discussions:** add function fetchDiscussionSetting and associated interfaces ([#1114](#1114)) ([080b70c](080b70c)) * **hub-discussions:** add function removeDiscussionSetting with asso… ([#1108](#1108)) ([d90aac2](d90aac2)) * **hub-discussions:** add function updateDiscussionSetting ([#1133](#1133)) ([a594859](a594859)) * **hub-discussions:** add optional guidelineUrl to IChannel and ICre… ([#1078](#1078)) ([6f889a3](6f889a3)) * **hub-discussions:** expand isDiscussable ([#1079](#1079)) ([73db7f1](73db7f1)) * **hub-discussions:** expanded enum ([#1080](#1080)) ([2a121b4](2a121b4)) * **hub-discussions:** legacy permission checks mixed channels ([#1070](#1070)) ([07ae63d](07ae63d)) * **hub-discussions:** remove channel util function isChannelInclusive ([#1091](#1091)) ([5d36f9b](5d36f9b)) * small project enhancements ([#1074](#1074)) ([3085a6b](3085a6b)) ### Reverts * Revert "refactor: post-mod and post-delete utils for ACL (#1117)" (#1118) ([d13b2f9](d13b2f9)), closes [#1117](#1117) [#1118](#1118) * Revert "feat: make propertyMapper more generic (#1098)" (#1099) ([272c645](272c645)), closes [#1098](#1098) [#1099](#1099) ### BREAKING CHANGES * HubSubsystem, HubSystemStatus, isSubsystem removed * fix: remove capabilities * Remove all capability related functions, props, fix tests * feat: context holds feature flags * refactor: ensure .features persisted for S/I/P only * refactor: update version test to account for settings.features being included * fix: remove IEntityFeature type * IEntityFeature type replaced with IFeatureFlag * **hub-discussions:** remove channel util function isChannelInclusive * refactor(hub-discussions): remove function updatePostSharing and associated interfaces affects: @esri/hub-discussions * **hub-discussions:** remove function updatePostSharing and associated interfaces * test(hub-discussions): remove tests for updatePostSharing function affects: @esri/hub-discussions * fix(hub-discussions): bump hub-common peerDependency to ^13.0.0 affects: @esri/hub-discussions
# [14.0.0](https://github.com/Esri/hub.js/compare/@esri/hub-search@13.0.0...@esri/hub-search@14.0.0) (2023-08-23) ### Bug Fixes * actually export new function from index ([#1147](#1147)) ([5d515d4](5d515d4)) * add actionLinks arg to project view model functions ([#1109](#1109)) ([cef335d](cef335d)) * add default to project schema for location ([#1093](#1093)) ([439a317](439a317)) * add GroupSchema, GroupUiSchema and other support for groups details pane ([#1154](#1154)) ([e82d49c](e82d49c)) * add memberType to SortOption ([#1177](#1177)) ([6480a8c](6480a8c)) * add missing permissions ([#1174](#1174)) ([1213e00](1213e00)) * add new SortOption type ([#1175](#1175)) ([11a74b3](11a74b3)) * add page capability permissions to capability permissions list ([#1136](#1136)) ([4ab99df](4ab99df)) * add support for group members "joined" field ([#1167](#1167)) ([fecea60](fecea60)) * address issue creating sites on portal ([#1085](#1085)) ([7243db8](7243db8)) * alpha permissions ([#1153](#1153)) ([5f2df0c](5f2df0c)) * await save in classes ([#1172](#1172)) ([aa8299d](aa8299d)) * defaultHostname and customHostname editing on site entity ([#1102](#1102)) ([9e1496d](9e1496d)) * enrichUserSearchResult will return a summary of undefined if the search result had no desc ([#1182](#1182)) ([8672d3c](8672d3c)) * ensure getNextFunction handles requestOptions.authentication cleanly ([#1176](#1176)) ([3c19e16](3c19e16)) * ensure requestOptions.authentication is UserSession instance in next() ([#1163](#1163)) ([31b6143](31b6143)) * export ihubgroup ([#1160](#1160)) ([0d29518](0d29518)) * get group from predicate not query.properties ([#1107](#1107)) ([138af9c](138af9c)) * gracefully handles cases where portal prop might not exist on ([#1137](#1137)) ([fa09ecf](fa09ecf)) * group permissions ([#1179](#1179)) ([7e4775f](7e4775f)) * handle new discussion entity ([#1146](#1146)) ([2f395bc](2f395bc)) * include owner with setAccess ([#1129](#1129)) ([3c7ab72](3c7ab72)) * limit project summary (purpose) to 2048 chars and abstract as reusable subschema ([#1090](#1090)) ([83c7a61](83c7a61)) * log checkPermission output if access not granted ([#1169](#1169)) ([8c9f396](8c9f396)) * make scope optional for IUiSchemaRule ([#1097](#1097)) ([1cef34b](1cef34b)) * modify project permissions so it is excluded from enterprise ([#1131](#1131)) ([5872d01](5872d01)) * properly translate radio button labels ([#1181](#1181)) ([54610c8](54610c8)) * remove additionalInfo from userResultToCardModel ([#1162](#1162)) ([c4c72c8](c4c72c8)) * remove license checks on view and edit project permission policies ([#1077](#1077)) ([76918b7](76918b7)) * remove name/title string as it is not wanted ([#1148](#1148)) ([01018c9](01018c9)) * rename term to name for groupMember queries ([#1110](#1110)) ([8fdeca4](8fdeca4)) * reshuffle project edit schema ([#1149](#1149)) ([13cb7ab](13cb7ab)) * revert and update content location picker ([#1164](#1164)) ([c11c019](c11c019)) * small updates to group details schemas ([#1170](#1170)) ([17b19bd](17b19bd)) * ungate group settings pane from being only owner ([#1183](#1183)) ([68533c0](68533c0)) * update clientKey to empty string in updateDomain/addDomain ([#1157](#1157)) ([84ae619](84ae619)) * update hub search result to view model signature ([#1124](#1124)) ([46290dc](46290dc)) * user selects none; location disappears correctly ([#1155](#1155)) ([3a13434](3a13434)) * **hub-common:** have capitalize() handle the empty string, change titlelize() to stop stripping whi ([#1084](#1084)) ([9a16208](9a16208)) * **hub-common:** have convertModelToSite handle invalid search categories ([#1134](#1134)) ([9dde16b](9dde16b)) * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) * **hub-discussions:** move allowAnonymous to channel permissions interface and add access to channel ([#1075](#1075)) ([82c59ad](82c59ad)) * **hub-discussions:** remove whitespace from IUpdateChannel documentation ([#1104](#1104)) ([5e9859c](5e9859c)) ### Features * add group settings schema ([#1180](#1180)) ([768f432](768f432)) * migrate summary stat function ([#1165](#1165)) ([53e34de](53e34de)) * remove capabilities, add featureFlags to Context ([#1184](#1184)) ([394c60c](394c60c)) * **hub-common:** add user membership enrichment and have updateSite persist catalog changes ([#1166](#1166)) ([607cfe9](607cfe9)) * **hub-common:** enriches channel with groups via hub search includes ([#1178](#1178)) ([f38271d](f38271d)), closes [#7405](https://github.com/Esri/hub.js/issues/7405) * **hub-common:** include discussion routes ([#1168](#1168)) ([04feaaf](04feaaf)) * 7109 scaffold new HubGroup entity ([#1113](#1113)) ([ccf9ec6](ccf9ec6)) * 7162 initiative card funcs ([#1121](#1121)) ([567cfc3](567cfc3)) * add a base item entity schema ([#1106](#1106)) ([7b4606b](7b4606b)) * add canReadChannel util ([#1123](#1123)) ([5ec2c5a](5ec2c5a)) * add card section type ([#1142](#1142)) ([41618a4](41618a4)) * add dashboard capability to content, discussions,initiatives ([#1132](#1132)) ([c3e6a98](c3e6a98)) * add dashboard capability to site/project/page ([#1126](#1126)) ([cada5d3](cada5d3)) * add metrics to project capability permissions ([#1086](#1086)) ([f67c836](f67c836)) * add more support and props for Hub Group ([#1143](#1143)) ([bbdc300](bbdc300)) * add project card view model functionality ([#1101](#1101)) ([85a8201](85a8201)) * add slug uri conversion functions and use in getItemBySlug ([#1073](#1073)) ([db9addb](db9addb)) * add workspace pane permissions for all entities ([#1171](#1171)) ([8cb94f6](8cb94f6)) * added location picker to content details ([#1150](#1150)) ([f6317b4](f6317b4)) * adds discussion create ui schema ([#1082](#1082)) ([e463998](e463998)), closes [#6876](https://github.com/Esri/hub.js/issues/6876) * constrain temp:workspace:released permission to alpha orgs ([#1152](#1152)) ([5500dcc](5500dcc)) * context manager serialize / deserialize ([#1088](#1088)) ([f972516](f972516)) * convertModelToPage and update temp:workspace:released permission ([#1173](#1173)) ([0283ff3](0283ff3)) * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac)) * explain search result ([#1156](#1156)) ([d469907](d469907)) * Generic property mapper ([#1100](#1100)) ([1f58fa9](1f58fa9)) * hubSearch supports groupMember entity type ([#1096](#1096)) ([2327cce](2327cce)) * make propertyMapper more generic ([#1098](#1098)) ([09a8d3f](09a8d3f)) * move and refactor entity editor abstractions into hub.js ([#1135](#1135)) ([0ea3d92](0ea3d92)) * page entity ([#1112](#1112)) ([50e7280](50e7280)) * page permission policy is included ([#1125](#1125)) ([6d5c559](6d5c559)) * permission parents, deprecations for Capabilities ([#1158](#1158)) ([83659b1](83659b1)) * post-mod and post-delete utils for ACL ([#1119](#1119)) ([0a6292f](0a6292f)) * search by channel name and multi access ([#1161](#1161)) ([fcd71ac](fcd71ac)) * teach hubSearch channels ([#1111](#1111)) ([82d0492](82d0492)) * user card result to card ([#1144](#1144)) ([866fbe7](866fbe7)) * workspace gating ([#1151](#1151)) ([68fedd1](68fedd1)) * **hub-common:** add content capability and define default collections to entity catalogs ([#1120](#1120)) ([7aa7f0e](7aa7f0e)) * **hub-common:** add Discussion entity schemas ([#1076](#1076)) ([5b6b704](5b6b704)) * **hub-common:** add isDiscussable mapping ([#1089](#1089)) ([0f4a84a](0f4a84a)) * **hub-common:** add name to interface ISearchChannels ([#1140](#1140)) ([674dd12](674dd12)) * **hub-common:** add unicodeToBase64 and base64ToUnicode utils ([#1095](#1095)) ([82bd6e9](82bd6e9)) * **hub-common:** create an array of valid item types ([#1083](#1083)) ([ed1d509](ed1d509)) * **hub-common:** persist modifications to site collections via updateSite ([#1139](#1139)) ([147b7fc](147b7fc)) * **hub-common:** remove required property prompt ([#1087](#1087)) ([6b7c28e](6b7c28e)) * **hub-common:** return "license" and "source" as part of results from hubSearchItems ([#1072](#1072)) ([9d086ed](9d086ed)) * **hub-common:** workspace edit content details ([#1128](#1128)) ([aa47afa](aa47afa)) * **hub-discussions:** add acl authentication to channel util function canModifyChannel ([#1092](#1092)) ([f4190a4](f4190a4)) * **hub-discussions:** add createDiscussionSetting function and associated interfaces ([#1103](#1103)) ([0183121](0183121)) * **hub-discussions:** add function fetchDiscussionSetting and associated interfaces ([#1114](#1114)) ([080b70c](080b70c)) * **hub-discussions:** add function removeDiscussionSetting with asso… ([#1108](#1108)) ([d90aac2](d90aac2)) * **hub-discussions:** add function updateDiscussionSetting ([#1133](#1133)) ([a594859](a594859)) * **hub-discussions:** add optional guidelineUrl to IChannel and ICre… ([#1078](#1078)) ([6f889a3](6f889a3)) * **hub-discussions:** expand isDiscussable ([#1079](#1079)) ([73db7f1](73db7f1)) * **hub-discussions:** expanded enum ([#1080](#1080)) ([2a121b4](2a121b4)) * **hub-discussions:** legacy permission checks mixed channels ([#1070](#1070)) ([07ae63d](07ae63d)) * **hub-discussions:** remove channel util function isChannelInclusive ([#1091](#1091)) ([5d36f9b](5d36f9b)) * small project enhancements ([#1074](#1074)) ([3085a6b](3085a6b)) ### Reverts * Revert "refactor: post-mod and post-delete utils for ACL (#1117)" (#1118) ([d13b2f9](d13b2f9)), closes [#1117](#1117) [#1118](#1118) * Revert "feat: make propertyMapper more generic (#1098)" (#1099) ([272c645](272c645)), closes [#1098](#1098) [#1099](#1099) ### BREAKING CHANGES * HubSubsystem, HubSystemStatus, isSubsystem removed * fix: remove capabilities * Remove all capability related functions, props, fix tests * feat: context holds feature flags * refactor: ensure .features persisted for S/I/P only * refactor: update version test to account for settings.features being included * fix: remove IEntityFeature type * IEntityFeature type replaced with IFeatureFlag * **hub-discussions:** remove channel util function isChannelInclusive * refactor(hub-discussions): remove function updatePostSharing and associated interfaces affects: @esri/hub-discussions * **hub-discussions:** remove function updatePostSharing and associated interfaces * test(hub-discussions): remove tests for updatePostSharing function affects: @esri/hub-discussions * fix(hub-discussions): bump hub-common peerDependency to ^13.0.0 affects: @esri/hub-discussions
# [14.0.0](https://github.com/Esri/hub.js/compare/@esri/hub-surveys@13.0.0...@esri/hub-surveys@14.0.0) (2023-08-23) ### Bug Fixes * actually export new function from index ([#1147](#1147)) ([5d515d4](5d515d4)) * add actionLinks arg to project view model functions ([#1109](#1109)) ([cef335d](cef335d)) * add default to project schema for location ([#1093](#1093)) ([439a317](439a317)) * add GroupSchema, GroupUiSchema and other support for groups details pane ([#1154](#1154)) ([e82d49c](e82d49c)) * add memberType to SortOption ([#1177](#1177)) ([6480a8c](6480a8c)) * add missing permissions ([#1174](#1174)) ([1213e00](1213e00)) * add new SortOption type ([#1175](#1175)) ([11a74b3](11a74b3)) * add page capability permissions to capability permissions list ([#1136](#1136)) ([4ab99df](4ab99df)) * add support for group members "joined" field ([#1167](#1167)) ([fecea60](fecea60)) * address issue creating sites on portal ([#1085](#1085)) ([7243db8](7243db8)) * alpha permissions ([#1153](#1153)) ([5f2df0c](5f2df0c)) * await save in classes ([#1172](#1172)) ([aa8299d](aa8299d)) * defaultHostname and customHostname editing on site entity ([#1102](#1102)) ([9e1496d](9e1496d)) * enrichUserSearchResult will return a summary of undefined if the search result had no desc ([#1182](#1182)) ([8672d3c](8672d3c)) * ensure getNextFunction handles requestOptions.authentication cleanly ([#1176](#1176)) ([3c19e16](3c19e16)) * ensure requestOptions.authentication is UserSession instance in next() ([#1163](#1163)) ([31b6143](31b6143)) * export ihubgroup ([#1160](#1160)) ([0d29518](0d29518)) * get group from predicate not query.properties ([#1107](#1107)) ([138af9c](138af9c)) * gracefully handles cases where portal prop might not exist on ([#1137](#1137)) ([fa09ecf](fa09ecf)) * group permissions ([#1179](#1179)) ([7e4775f](7e4775f)) * handle new discussion entity ([#1146](#1146)) ([2f395bc](2f395bc)) * include owner with setAccess ([#1129](#1129)) ([3c7ab72](3c7ab72)) * limit project summary (purpose) to 2048 chars and abstract as reusable subschema ([#1090](#1090)) ([83c7a61](83c7a61)) * log checkPermission output if access not granted ([#1169](#1169)) ([8c9f396](8c9f396)) * make scope optional for IUiSchemaRule ([#1097](#1097)) ([1cef34b](1cef34b)) * modify project permissions so it is excluded from enterprise ([#1131](#1131)) ([5872d01](5872d01)) * properly translate radio button labels ([#1181](#1181)) ([54610c8](54610c8)) * remove additionalInfo from userResultToCardModel ([#1162](#1162)) ([c4c72c8](c4c72c8)) * remove license checks on view and edit project permission policies ([#1077](#1077)) ([76918b7](76918b7)) * remove name/title string as it is not wanted ([#1148](#1148)) ([01018c9](01018c9)) * rename term to name for groupMember queries ([#1110](#1110)) ([8fdeca4](8fdeca4)) * reshuffle project edit schema ([#1149](#1149)) ([13cb7ab](13cb7ab)) * revert and update content location picker ([#1164](#1164)) ([c11c019](c11c019)) * small updates to group details schemas ([#1170](#1170)) ([17b19bd](17b19bd)) * ungate group settings pane from being only owner ([#1183](#1183)) ([68533c0](68533c0)) * update clientKey to empty string in updateDomain/addDomain ([#1157](#1157)) ([84ae619](84ae619)) * update hub search result to view model signature ([#1124](#1124)) ([46290dc](46290dc)) * user selects none; location disappears correctly ([#1155](#1155)) ([3a13434](3a13434)) * **hub-common:** have capitalize() handle the empty string, change titlelize() to stop stripping whi ([#1084](#1084)) ([9a16208](9a16208)) * **hub-common:** have convertModelToSite handle invalid search categories ([#1134](#1134)) ([9dde16b](9dde16b)) * **hub-common:** saving sites guarantees a unique slug and prevents field loss in site data ([#1130](#1130)) ([16a25b6](16a25b6)) * **hub-discussions:** move allowAnonymous to channel permissions interface and add access to channel ([#1075](#1075)) ([82c59ad](82c59ad)) * **hub-discussions:** remove whitespace from IUpdateChannel documentation ([#1104](#1104)) ([5e9859c](5e9859c)) ### Features * add group settings schema ([#1180](#1180)) ([768f432](768f432)) * migrate summary stat function ([#1165](#1165)) ([53e34de](53e34de)) * remove capabilities, add featureFlags to Context ([#1184](#1184)) ([394c60c](394c60c)) * **hub-common:** add user membership enrichment and have updateSite persist catalog changes ([#1166](#1166)) ([607cfe9](607cfe9)) * **hub-common:** enriches channel with groups via hub search includes ([#1178](#1178)) ([f38271d](f38271d)), closes [#7405](https://github.com/Esri/hub.js/issues/7405) * **hub-common:** include discussion routes ([#1168](#1168)) ([04feaaf](04feaaf)) * 7109 scaffold new HubGroup entity ([#1113](#1113)) ([ccf9ec6](ccf9ec6)) * 7162 initiative card funcs ([#1121](#1121)) ([567cfc3](567cfc3)) * add a base item entity schema ([#1106](#1106)) ([7b4606b](7b4606b)) * add canReadChannel util ([#1123](#1123)) ([5ec2c5a](5ec2c5a)) * add card section type ([#1142](#1142)) ([41618a4](41618a4)) * add dashboard capability to content, discussions,initiatives ([#1132](#1132)) ([c3e6a98](c3e6a98)) * add dashboard capability to site/project/page ([#1126](#1126)) ([cada5d3](cada5d3)) * add metrics to project capability permissions ([#1086](#1086)) ([f67c836](f67c836)) * add more support and props for Hub Group ([#1143](#1143)) ([bbdc300](bbdc300)) * add project card view model functionality ([#1101](#1101)) ([85a8201](85a8201)) * add slug uri conversion functions and use in getItemBySlug ([#1073](#1073)) ([db9addb](db9addb)) * add workspace pane permissions for all entities ([#1171](#1171)) ([8cb94f6](8cb94f6)) * added location picker to content details ([#1150](#1150)) ([f6317b4](f6317b4)) * adds discussion create ui schema ([#1082](#1082)) ([e463998](e463998)), closes [#6876](https://github.com/Esri/hub.js/issues/6876) * constrain temp:workspace:released permission to alpha orgs ([#1152](#1152)) ([5500dcc](5500dcc)) * context manager serialize / deserialize ([#1088](#1088)) ([f972516](f972516)) * convertModelToPage and update temp:workspace:released permission ([#1173](#1173)) ([0283ff3](0283ff3)) * EntityEditor class ([#1127](#1127)) ([3f3beac](3f3beac)) * explain search result ([#1156](#1156)) ([d469907](d469907)) * Generic property mapper ([#1100](#1100)) ([1f58fa9](1f58fa9)) * hubSearch supports groupMember entity type ([#1096](#1096)) ([2327cce](2327cce)) * make propertyMapper more generic ([#1098](#1098)) ([09a8d3f](09a8d3f)) * move and refactor entity editor abstractions into hub.js ([#1135](#1135)) ([0ea3d92](0ea3d92)) * page entity ([#1112](#1112)) ([50e7280](50e7280)) * page permission policy is included ([#1125](#1125)) ([6d5c559](6d5c559)) * permission parents, deprecations for Capabilities ([#1158](#1158)) ([83659b1](83659b1)) * post-mod and post-delete utils for ACL ([#1119](#1119)) ([0a6292f](0a6292f)) * search by channel name and multi access ([#1161](#1161)) ([fcd71ac](fcd71ac)) * teach hubSearch channels ([#1111](#1111)) ([82d0492](82d0492)) * user card result to card ([#1144](#1144)) ([866fbe7](866fbe7)) * workspace gating ([#1151](#1151)) ([68fedd1](68fedd1)) * **hub-common:** add content capability and define default collections to entity catalogs ([#1120](#1120)) ([7aa7f0e](7aa7f0e)) * **hub-common:** add Discussion entity schemas ([#1076](#1076)) ([5b6b704](5b6b704)) * **hub-common:** add isDiscussable mapping ([#1089](#1089)) ([0f4a84a](0f4a84a)) * **hub-common:** add name to interface ISearchChannels ([#1140](#1140)) ([674dd12](674dd12)) * **hub-common:** add unicodeToBase64 and base64ToUnicode utils ([#1095](#1095)) ([82bd6e9](82bd6e9)) * **hub-common:** create an array of valid item types ([#1083](#1083)) ([ed1d509](ed1d509)) * **hub-common:** persist modifications to site collections via updateSite ([#1139](#1139)) ([147b7fc](147b7fc)) * **hub-common:** remove required property prompt ([#1087](#1087)) ([6b7c28e](6b7c28e)) * **hub-common:** return "license" and "source" as part of results from hubSearchItems ([#1072](#1072)) ([9d086ed](9d086ed)) * **hub-common:** workspace edit content details ([#1128](#1128)) ([aa47afa](aa47afa)) * **hub-discussions:** add acl authentication to channel util function canModifyChannel ([#1092](#1092)) ([f4190a4](f4190a4)) * **hub-discussions:** add createDiscussionSetting function and associated interfaces ([#1103](#1103)) ([0183121](0183121)) * **hub-discussions:** add function fetchDiscussionSetting and associated interfaces ([#1114](#1114)) ([080b70c](080b70c)) * **hub-discussions:** add function removeDiscussionSetting with asso… ([#1108](#1108)) ([d90aac2](d90aac2)) * **hub-discussions:** add function updateDiscussionSetting ([#1133](#1133)) ([a594859](a594859)) * **hub-discussions:** add optional guidelineUrl to IChannel and ICre… ([#1078](#1078)) ([6f889a3](6f889a3)) * **hub-discussions:** expand isDiscussable ([#1079](#1079)) ([73db7f1](73db7f1)) * **hub-discussions:** expanded enum ([#1080](#1080)) ([2a121b4](2a121b4)) * **hub-discussions:** legacy permission checks mixed channels ([#1070](#1070)) ([07ae63d](07ae63d)) * **hub-discussions:** remove channel util function isChannelInclusive ([#1091](#1091)) ([5d36f9b](5d36f9b)) * small project enhancements ([#1074](#1074)) ([3085a6b](3085a6b)) ### Reverts * Revert "refactor: post-mod and post-delete utils for ACL (#1117)" (#1118) ([d13b2f9](d13b2f9)), closes [#1117](#1117) [#1118](#1118) * Revert "feat: make propertyMapper more generic (#1098)" (#1099) ([272c645](272c645)), closes [#1098](#1098) [#1099](#1099) ### BREAKING CHANGES * HubSubsystem, HubSystemStatus, isSubsystem removed * fix: remove capabilities * Remove all capability related functions, props, fix tests * feat: context holds feature flags * refactor: ensure .features persisted for S/I/P only * refactor: update version test to account for settings.features being included * fix: remove IEntityFeature type * IEntityFeature type replaced with IFeatureFlag * **hub-discussions:** remove channel util function isChannelInclusive * refactor(hub-discussions): remove function updatePostSharing and associated interfaces affects: @esri/hub-discussions * **hub-discussions:** remove function updatePostSharing and associated interfaces * test(hub-discussions): remove tests for updatePostSharing function affects: @esri/hub-discussions * fix(hub-discussions): bump hub-common peerDependency to ^13.0.0 affects: @esri/hub-discussions
Description:
Instructions for testing:
yarn hc start
Closes Issues: 7183
Updated meaningful TSDoc to methods including Parameters and Returns, see Documentation Guide
used semantic commit messages
PR title follows semantic commit format (CRITICAL if the title is not in a semantic format, the release automation will not run!)
updated
peerDependencies
as needed. CRITICAL our automated release system can not be counted on to updatepeerDependencies
so we must do it manually in our PRs when needed. See the updating peerDependencies section of the release instructions for more details.