mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF- 3846] Started Extensions library docs (#4095)
* [ADF-3846] Added some doc comments and skeleton doc files * [ADF-3846] Added basic docs for Extensions library * [ADF-3846] Fixes to index pages * [ADF-3846] Did tslint check and fixed error with doc comment
This commit is contained in:
committed by
Eugenio Romano
parent
b604b2a4b7
commit
478b299960
@@ -67,7 +67,7 @@ for more information about installing and using the source code.
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [About component](core/about.component.md)  | Shows a general version and status overview of the installed ADF library. | [Source](../lib/core/about/about.component.ts) |
|
||||
| [Buttons menu component](core/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/buttons-menu/buttons-menu.component.ts) |
|
||||
| [Buttons menu component](core/buttons-menu.component.md) | Displays buttons on a responsive menu. | [Source](../lib/core/buttons-menu/buttons-menu.component.ts) |
|
||||
| [Card view component](core/card-view.component.md) | Displays a configurable property list renderer. | [Source](../lib/core/card-view/components/card-view/card-view.component.ts) |
|
||||
| [Comment list component](core/comment-list.component.md) | Shows a list of comments. | [Source](../lib/core/comments/comment-list.component.ts) |
|
||||
| [Comments component](core/comments.component.md) | Displays comments from users involved in a specified task or content and allows an involved user to add a comment to a task or a content. | [Source](../lib/core/comments/comments.component.ts) |
|
||||
@@ -76,8 +76,8 @@ for more information about installing and using the source code.
|
||||
| [Empty list component](core/empty-list.component.md) | Displays a message indicating that a list is empty. | [Source](../lib/core/datatable/components/datatable/empty-list.component.ts) |
|
||||
| [Form field component](core/form-field.component.md) | Represents a UI field in a form. | [Source](../lib/core/form/components/form-field/form-field.component.ts) |
|
||||
| [Form list component](core/form-list.component.md) | Shows forms as a list. | [Source](../lib/core/form/components/form-list.component.ts) |
|
||||
| [Form component](core/form.component.md) | Shows a Form from APS | [Source](../lib/core/form/components/form.component.ts) |
|
||||
| [Start form component](core/start-form.component.md) | Displays the Start Form for a process. | [Source](../lib/core/form/components/start-form.component.ts) |
|
||||
| [Form component](core/form.component.md) | Shows a [`Form`](../../lib/process-services/task-list/models/form.model.ts) from APS | [Source](../lib/core/form/components/form.component.ts) |
|
||||
| [Start form component](core/start-form.component.md) | Displays the Start [`Form`](../../lib/process-services/task-list/models/form.model.ts) for a process. | [Source](../lib/core/form/components/start-form.component.ts) |
|
||||
| [Text mask component](core/text-mask.component.md) | Implements text field input masks. | [Source](../lib/core/form/components/widgets/text/text-mask.component.ts) |
|
||||
| [Info drawer layout component](core/info-drawer-layout.component.md) | Displays a sidebar-style information panel. | [Source](../lib/core/info-drawer/info-drawer-layout.component.ts) |
|
||||
| [Info drawer component](core/info-drawer.component.md) | Displays a sidebar-style information panel with tabs. | [Source](../lib/core/info-drawer/info-drawer.component.ts) |
|
||||
@@ -95,7 +95,7 @@ for more information about installing and using the source code.
|
||||
| [Empty content component](core/empty-content.component.md) | Provides a generic "Empty Content" placeholder for components. | [Source](../lib/core/templates/empty-content/empty-content.component.ts) |
|
||||
| [Error content component](core/error-content.component.md) | Displays info about a specific error. | [Source](../lib/core/templates/error-content/error-content.component.ts) |
|
||||
| [Toolbar divider component](core/toolbar-divider.component.md) | Divides groups of elements in a Toolbar with a visual separator. | [Source](../lib/core/toolbar/toolbar-divider.component.ts) |
|
||||
| [Toolbar title component](core/toolbar-title.component.md) | Supplies custom HTML to be included in a Toolbar component title. | [Source](../lib/core/toolbar/toolbar-title.component.ts) |
|
||||
| [Toolbar title component](core/toolbar-title.component.md) | Supplies custom HTML to be included in a [Toolbar component](../core/toolbar.component.md) title. | [Source](../lib/core/toolbar/toolbar-title.component.ts) |
|
||||
| [Toolbar component](core/toolbar.component.md) | Simple container for headers, titles, actions and breadcrumbs. | [Source](../lib/core/toolbar/toolbar.component.ts) |
|
||||
| [User info component](core/user-info.component.md) | Shows user information. | [Source](../lib/core/userinfo/components/user-info.component.ts) |
|
||||
| [Viewer component](core/viewer.component.md) | Displays content from an ACS repository. | [Source](../lib/core/viewer/components/viewer.component.ts) |
|
||||
@@ -118,7 +118,7 @@ for more information about installing and using the source code.
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [Form field model](core/form-field.model.md) | Contains the value and metadata for a field of a Form component. | [Source](../lib/core/form/components/widgets/core/form-field.model.ts) |
|
||||
| [Form field model](core/form-field.model.md) | Contains the value and metadata for a field of a [`Form`](../../lib/process-services/task-list/models/form.model.ts) component. | [Source](../lib/core/form/components/widgets/core/form-field.model.ts) |
|
||||
| [Product version model](core/product-version.model.md) | Contains version and license information classes for Alfresco products. | [Source](../lib/core/models/product-version.model.ts) |
|
||||
| [User process model](core/user-process.model.md) | Represents a Process Services user. | [Source](../lib/core/models/user-process.model.ts) |
|
||||
| [Bpm user model](core/bpm-user.model.md) | Contains information about a Process Services user. | [Source](../lib/core/userinfo/models/bpm-user.model.ts) |
|
||||
@@ -130,23 +130,23 @@ for more information about installing and using the source code.
|
||||
| ---- | ----------- | ----------- |
|
||||
| [File size pipe](core/file-size.pipe.md) | Converts a number of bytes to the equivalent in KB, MB, etc. | [Source](../lib/core/pipes/file-size.pipe.ts) |
|
||||
| [Format space pipe](core/format-space.pipe.md) | Replaces all the white space in a string with a supplied character. | [Source](../lib/core/pipes/format-space.pipe.ts) |
|
||||
| [Full name pipe](core/full-name.pipe.md) | Joins the first and last name properties from a UserProcessModel object into a single string. | [Source](../lib/core/pipes/full-name.pipe.ts) |
|
||||
| [Full name pipe](core/full-name.pipe.md) | Joins the first and last name properties from a [`UserProcessModel`](../core/user-process.model.md) object into a single string. | [Source](../lib/core/pipes/full-name.pipe.ts) |
|
||||
| [Mime type icon pipe](core/mime-type-icon.pipe.md) | Retrieves an icon to represent a MIME type. | [Source](../lib/core/pipes/mime-type-icon.pipe.ts) |
|
||||
| [Node name tooltip pipe](core/node-name-tooltip.pipe.md) | Formats the tooltip for a Node. | [Source](../lib/core/pipes/node-name-tooltip.pipe.ts) |
|
||||
| [Text highlight pipe](core/text-highlight.pipe.md) | Adds highlighting to words or sections of text that match a search string. | [Source](../lib/core/pipes/text-highlight.pipe.ts) |
|
||||
| [Time ago pipe](core/time-ago.pipe.md) | Converts a recent past date into a number of days ago. | [Source](../lib/core/pipes/time-ago.pipe.ts) |
|
||||
| [User initial pipe](core/user-initial.pipe.md) | Takes the name fields of a UserProcessModel object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
|
||||
| [User initial pipe](core/user-initial.pipe.md) | Takes the name fields of a [`UserProcessModel`](../core/user-process.model.md) object and extracts and formats the initials. | [Source](../lib/core/pipes/user-initial.pipe.ts) |
|
||||
|
||||
## Services
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [Card item types service](core/card-item-types.service.md) | Maps type names to field component types for the Card View component. | [Source](../lib/core/card-view/services/card-item-types.service.ts) |
|
||||
| [Card view update service](core/card-view-update.service.md) | Reports edits and clicks within fields of a Card View component. | [Source](../lib/core/card-view/services/card-view-update.service.ts) |
|
||||
| [Card item types service](core/card-item-types.service.md) | Maps type names to field component types for the [Card View component](../core/card-view.component.md). | [Source](../lib/core/card-view/services/card-item-types.service.ts) |
|
||||
| [Card view update service](core/card-view-update.service.md) | Reports edits and clicks within fields of a [Card View component](../core/card-view.component.md). | [Source](../lib/core/card-view/services/card-view-update.service.ts) |
|
||||
| [Activiti alfresco service](core/activiti-alfresco.service.md) | Gets Alfresco Repository folder content based on a Repository account configured in Alfresco Process Services (APS). | [Source](../lib/core/form/services/activiti-alfresco.service.ts) |
|
||||
| [Form rendering service](core/form-rendering.service.md) | Maps a form field type string onto the corresponding form widget component type. | [Source](../lib/core/form/services/form-rendering.service.ts) |
|
||||
| [Form rendering service](core/form-rendering.service.md) | Maps a form field type string onto the corresponding form [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) component type. | [Source](../lib/core/form/services/form-rendering.service.ts) |
|
||||
| [Form service](core/form.service.md) | Implements Process Services form methods | [Source](../lib/core/form/services/form.service.ts) |
|
||||
| [Node service](core/node.service.md) | Gets Alfresco Repository node metadata and creates nodes with metadata. | [Source](../lib/core/form/services/node.service.ts) |
|
||||
| [Node service](core/node.service.md) | Gets Alfresco Repository node metadata and creates nodes with metadata. | [Source](../lib/core/form/services/node.service.ts) |
|
||||
| [Process content service](core/process-content.service.md) | Manipulates content related to a Process Instance or Task Instance in APS. | [Source](../lib/core/form/services/process-content.service.ts) |
|
||||
| [Alfresco api service](core/alfresco-api.service.md) | Provides access to an initialized **AlfrescoJSApi** instance. | [Source](../lib/core/services/alfresco-api.service.ts) |
|
||||
| [Apps process service](core/apps-process.service.md) | Gets details of the Process Services apps that are deployed for the user. | [Source](../lib/core/services/apps-process.service.ts) |
|
||||
@@ -167,7 +167,7 @@ for more information about installing and using the source code.
|
||||
| [Nodes api service](core/nodes-api.service.md) | Accesses and manipulates ACS document nodes using their node IDs. | [Source](../lib/core/services/nodes-api.service.ts) |
|
||||
| [Notification service](core/notification.service.md) | Shows a notification message with optional feedback. | [Source](../lib/core/services/notification.service.ts) |
|
||||
| [Page title service](core/page-title.service.md) | Sets the page title. | [Source](../lib/core/services/page-title.service.ts) |
|
||||
| [People content service](core/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/people-content.service.ts) |
|
||||
| [People content service](core/people-content.service.md) | Gets information about a Content Services user. | [Source](../lib/core/services/people-content.service.ts) |
|
||||
| [People process service](core/people-process.service.md) | Gets information about Process Services users. | [Source](../lib/core/services/people-process.service.ts) |
|
||||
| [Renditions service](core/renditions.service.md)  | Manages prearranged conversions of content to different formats. | [Source](../lib/core/services/renditions.service.ts) |
|
||||
| [Search configuration service](core/search-configuration.service.md) | Provides fine control of parameters to a search. | [Source](../lib/core/services/search-configuration.service.ts) |
|
||||
@@ -181,9 +181,9 @@ for more information about installing and using the source code.
|
||||
| [User preferences service](core/user-preferences.service.md) | Stores preferences for the app and for individual components. | [Source](../lib/core/services/user-preferences.service.ts) |
|
||||
| [Bpm user service](core/bpm-user.service.md) | Gets information about the current Process Services user. | [Source](../lib/core/userinfo/services/bpm-user.service.ts) |
|
||||
| [Ecm user service](core/ecm-user.service.md) | Gets information about a Content Services user. | [Source](../lib/core/userinfo/services/ecm-user.service.ts) |
|
||||
| _Download zip service_ | _Not currently documented_ | [Source](../lib/core/services/download-zip.service.ts) |
|
||||
| _Jwt helper service_ | _Not currently documented_ | [Source](../lib/core/services/jwt-helper.service.ts) |
|
||||
| _Identity user service_ | _Not currently documented_ | [Source](../lib/core/userinfo/services/identity-user.service.ts) |
|
||||
| _[Download zip service](../../lib/core/services/download-zip.service.ts)_ | _Not currently documented_ | [Source](../lib/core/services/download-zip.service.ts) |
|
||||
| _[Jwt helper service](../../lib/core/services/jwt-helper.service.ts)_ | _Not currently documented_ | [Source](../lib/core/services/jwt-helper.service.ts) |
|
||||
| _[`Identity`](../../e2e/actions/APS-cloud/identity.ts) user service_ | _Not currently documented_ | [Source](../lib/core/userinfo/services/identity-user.service.ts) |
|
||||
|
||||
## Widgets
|
||||
|
||||
@@ -228,17 +228,17 @@ for more information about installing and using the source code.
|
||||
| [Add permission panel component](content-services/add-permission-panel.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/permission-manager/components/add-permission/add-permission-panel.component.ts) |
|
||||
| [Add permission component](content-services/add-permission.component.md) | Searches for people or groups to add to the current node permissions. | [Source](../lib/content-services/permission-manager/components/add-permission/add-permission.component.ts) |
|
||||
| [Permission list component](content-services/permission-list.component.md) | Shows node permissions as a table. | [Source](../lib/content-services/permission-manager/components/permission-list/permission-list.component.ts) |
|
||||
| [Search check list component](content-services/search-check-list.component.md) | Implements a checklist widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-check-list/search-check-list.component.ts) |
|
||||
| [Search check list component](content-services/search-check-list.component.md) | Implements a checklist [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-check-list/search-check-list.component.ts) |
|
||||
| [Search chip list component](content-services/search-chip-list.component.md) | Displays search criteria as a set of "chips". | [Source](../lib/content-services/search/components/search-chip-list/search-chip-list.component.ts) |
|
||||
| [Search control component](content-services/search-control.component.md) | Displays a input text that shows find-as-you-type suggestions. | [Source](../lib/content-services/search/components/search-control.component.ts) |
|
||||
| [Search date range component](content-services/search-date-range.component.md) | Implements a date range widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-date-range/search-date-range.component.ts) |
|
||||
| [Search date range component](content-services/search-date-range.component.md) | Implements a date range [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-date-range/search-date-range.component.ts) |
|
||||
| [Search filter component](content-services/search-filter.component.md) | Represents a main container component for custom search and faceted search settings. | [Source](../lib/content-services/search/components/search-filter/search-filter.component.ts) |
|
||||
| [Search number range component](content-services/search-number-range.component.md) | Implements a number range widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-number-range/search-number-range.component.ts) |
|
||||
| [Search radio component](content-services/search-radio.component.md) | Implements a radio button list widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-radio/search-radio.component.ts) |
|
||||
| [Search slider component](content-services/search-slider.component.md) | Implements a numeric slider widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-slider/search-slider.component.ts) |
|
||||
| [Search number range component](content-services/search-number-range.component.md) | Implements a number range [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-number-range/search-number-range.component.ts) |
|
||||
| [Search radio component](content-services/search-radio.component.md) | Implements a radio button list [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-radio/search-radio.component.ts) |
|
||||
| [Search slider component](content-services/search-slider.component.md) | Implements a numeric slider [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-slider/search-slider.component.ts) |
|
||||
| [Search sorting picker component](content-services/search-sorting-picker.component.md) | Provides an ability to select one of the predefined sorting definitions for search results: | [Source](../lib/content-services/search/components/search-sorting-picker/search-sorting-picker.component.ts) |
|
||||
| [Search text component](content-services/search-text.component.md) | Implements a text input widget for the Search Filter component. | [Source](../lib/content-services/search/components/search-text/search-text.component.ts) |
|
||||
| [Search component](content-services/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/search/components/search.component.ts) |
|
||||
| [Search text component](content-services/search-text.component.md) | Implements a text input [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) for the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-text/search-text.component.ts) |
|
||||
| [Search component](content-services/search.component.md) | Searches items for supplied search terms. | [Source](../lib/content-services/search/components/search.component.ts) |
|
||||
| [Sites dropdown component](content-services/sites-dropdown.component.md) | Displays a dropdown menu to show and interact with the sites of the current user. | [Source](../lib/content-services/site-dropdown/sites-dropdown.component.ts) |
|
||||
| [Like component](content-services/like.component.md) | Allows a user to add "likes" to an item. | [Source](../lib/content-services/social/like.component.ts) |
|
||||
| [Rating component](content-services/rating.component.md) | Allows a user to add ratings to an item. | [Source](../lib/content-services/social/rating.component.ts) |
|
||||
@@ -250,7 +250,7 @@ for more information about installing and using the source code.
|
||||
| [Upload button component](content-services/upload-button.component.md) | Activates a file upload. | [Source](../lib/content-services/upload/components/upload-button.component.ts) |
|
||||
| [Upload drag area component](content-services/upload-drag-area.component.md) | Adds a drag and drop area to upload files to ACS. | [Source](../lib/content-services/upload/components/upload-drag-area.component.ts) |
|
||||
| [Upload version button component](content-services/upload-version-button.component.md)  | Activates a file version upload. | [Source](../lib/content-services/upload/components/upload-version-button.component.ts) |
|
||||
| [Version list component](content-services/version-list.component.md)  | Displays the version history of a node in a Version Manager component. | [Source](../lib/content-services/version-manager/version-list.component.ts) |
|
||||
| [Version list component](content-services/version-list.component.md)  | Displays the version history of a node in a [Version Manager component](../content-services/version-manager.component.md). | [Source](../lib/content-services/version-manager/version-list.component.ts) |
|
||||
| [Version manager component](content-services/version-manager.component.md)  | Displays the version history of a node with the ability to upload a new version. | [Source](../lib/content-services/version-manager/version-manager.component.ts) |
|
||||
| [Webscript component](content-services/webscript.component.md) | Provides access to Webscript features. | [Source](../lib/content-services/webscript/webscript.component.ts) |
|
||||
|
||||
@@ -284,12 +284,12 @@ for more information about installing and using the source code.
|
||||
| ---- | ----------- | ----------- |
|
||||
| [Content node dialog service](content-services/content-node-dialog.service.md) | Displays and manages dialogs for selecting content to open, copy or upload. | [Source](../lib/content-services/content-node-selector/content-node-dialog.service.ts) |
|
||||
| [Custom resources service](content-services/custom-resources.service.md) | Manages Document List information that is specific to a user. | [Source](../lib/content-services/document-list/services/custom-resources.service.ts) |
|
||||
| [Document actions service](content-services/document-actions.service.md) | Implements the document menu actions for the Document List component. | [Source](../lib/content-services/document-list/services/document-actions.service.ts) |
|
||||
| [Document list service](content-services/document-list.service.md) | Implements node operations used by the Document List component. | [Source](../lib/content-services/document-list/services/document-list.service.ts) |
|
||||
| [Folder actions service](content-services/folder-actions.service.md) | Implements the folder menu actions for the Document List component. | [Source](../lib/content-services/document-list/services/folder-actions.service.ts) |
|
||||
| [Document actions service](content-services/document-actions.service.md) | Implements the document menu actions for the [Document List component](../content-services/document-list.component.md). | [Source](../lib/content-services/document-list/services/document-actions.service.ts) |
|
||||
| [Document list service](content-services/document-list.service.md) | Implements node operations used by the [Document List component](../content-services/document-list.component.md). | [Source](../lib/content-services/document-list/services/document-list.service.ts) |
|
||||
| [Folder actions service](content-services/folder-actions.service.md) | Implements the folder menu actions for the [Document List component](../content-services/document-list.component.md). | [Source](../lib/content-services/document-list/services/folder-actions.service.ts) |
|
||||
| [Node permission dialog service](content-services/node-permission-dialog.service.md) | Displays dialogs to let the user set node permissions. | [Source](../lib/content-services/permission-manager/services/node-permission-dialog.service.ts) |
|
||||
| [Node permission service](content-services/node-permission.service.md) | Manages role permissions for content nodes. | [Source](../lib/content-services/permission-manager/services/node-permission.service.ts) |
|
||||
| [Search filter service](content-services/search-filter.service.md) | Registers widgets for use with the Search Filter component. | [Source](../lib/content-services/search/components/search-filter/search-filter.service.ts) |
|
||||
| [Search filter service](content-services/search-filter.service.md) | Registers widgets for use with the [Search Filter component](../content-services/search-filter.component.md). | [Source](../lib/content-services/search/components/search-filter/search-filter.service.ts) |
|
||||
| [Search query builder service](content-services/search-query-builder.service.md) | Stores information from all the custom search and faceted search widgets, compiles and runs the final search query. | [Source](../lib/content-services/search/search-query-builder.service.ts) |
|
||||
| [Rating service](content-services/rating.service.md) | Manages ratings for items in Content Services. | [Source](../lib/content-services/social/services/rating.service.ts) |
|
||||
| [Tag service](content-services/tag.service.md) | Manages tags in Content Services. | [Source](../lib/content-services/tag/services/tag.service.ts) |
|
||||
@@ -352,9 +352,9 @@ for more information about installing and using the source code.
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [Process filter service](process-services/process-filter.service.md) | Manage Process Filters, which are pre-configured Process Instance queries. | [Source](../lib/process-services/process-list/services/process-filter.service.ts) |
|
||||
| [Process service](process-services/process.service.md) | Manages Process Instances, Process Variables, and Process Audit Log. | [Source](../lib/process-services/process-list/services/process.service.ts) |
|
||||
| [Task filter service](process-services/task-filter.service.md) | Manage Task Filters, which are pre-configured Task Instance queries. | [Source](../lib/process-services/task-list/services/task-filter.service.ts) |
|
||||
| [Process filter service](process-services/process-filter.service.md) | Manage Process Filters, which are pre-configured Process Instance queries. | [Source](../lib/process-services/process-list/services/process-filter.service.ts) |
|
||||
| [Process service](process-services/process.service.md) | Manages Process Instances, Process Variables, and Process Audit Log. | [Source](../lib/process-services/process-list/services/process.service.ts) |
|
||||
| [Task filter service](process-services/task-filter.service.md) | Manage Task Filters, which are pre-configured Task Instance queries. | [Source](../lib/process-services/task-list/services/task-filter.service.ts) |
|
||||
| [Tasklist service](process-services/tasklist.service.md) | Manages Task Instances. | [Source](../lib/process-services/task-list/services/tasklist.service.ts) |
|
||||
|
||||
<!--process-services end-->
|
||||
@@ -375,25 +375,26 @@ for more information about installing and using the source code.
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [App list cloud component](process-services-cloud/app-list-cloud.component.md) | Shows all deployed cloud application instances. | [Source](../lib/process-services-cloud/src/lib/app-list-cloud/components/app-list-cloud.component.ts) |
|
||||
| [Edit process filter cloud component](process-services-cloud/edit-process-filter-cloud.component.md) | Shows Process Filter Details. | [Source](../lib/process-services-cloud/src/lib/process-cloud/process-filters-cloud/edit-process-filter-cloud.component.ts) |
|
||||
| [Process filters cloud component](process-services-cloud/process-filters-cloud.component.md) | Lists all available process filters and allows to select a filter. | [Source](../lib/process-services-cloud/src/lib/process-cloud/process-filters-cloud/process-filters-cloud.component.ts) |
|
||||
| [Process list cloud component](process-services-cloud/process-list-cloud.component.md) | Renders a list containing all the process instances matched by the parameters specified. | [Source](../lib/process-services-cloud/src/lib/process-list-cloud/components/process-list-cloud.component.ts) |
|
||||
| [Start task cloud component](process-services-cloud/start-task-cloud.component.md) | Creates/Starts new task for the specified app | [Source](../lib/process-services-cloud/src/lib/start-task-cloud/components/start-task-cloud.component.ts) |
|
||||
| [Edit task filter cloud component](process-services-cloud/edit-task-filter-cloud.component.md) | Shows Task Filter Details. | [Source](../lib/process-services-cloud/src/lib/task-cloud/task-filters-cloud/edit-task-filter-cloud.component.ts) |
|
||||
| [Task filters cloud component](process-services-cloud/task-filters-cloud.component.md) | Shows all available filters. | [Source](../lib/process-services-cloud/src/lib/task-cloud/task-filters-cloud/task-filters-cloud.component.ts) |
|
||||
| [Task list cloud component](process-services-cloud/task-list-cloud.component.md) | Renders a list containing all the tasks matched by the parameters specified. | [Source](../lib/process-services-cloud/src/lib/task-list-cloud/components/task-list-cloud.component.ts) |
|
||||
| _App details cloud component_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/app-list-cloud/components/app-details-cloud.component.ts) |
|
||||
| _People cloud component_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/start-task-cloud/components/people-cloud/people-cloud.component.ts) |
|
||||
| _[App details cloud component](../../lib/process-services-cloud/src/lib/app-list-cloud/components/app-details-cloud.component.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/app-list-cloud/components/app-details-cloud.component.ts) |
|
||||
| _[People cloud component](../../lib/process-services-cloud/src/lib/start-task-cloud/components/people-cloud/people-cloud.component.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/start-task-cloud/components/people-cloud/people-cloud.component.ts) |
|
||||
|
||||
## Services
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| _Apps process cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/app-list-cloud/services/apps-process-cloud.service.ts) |
|
||||
| _Process filter cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/process-cloud/services/process-filter-cloud.service.ts) |
|
||||
| _Process list cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/process-list-cloud/services/process-list-cloud.service.ts) |
|
||||
| _Start task cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/start-task-cloud/services/start-task-cloud.service.ts) |
|
||||
| _Task filter cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/task-cloud/services/task-filter-cloud.service.ts) |
|
||||
| _Task list cloud service_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/task-list-cloud/services/task-list-cloud.service.ts) |
|
||||
| _[Apps process cloud service](../../lib/process-services-cloud/src/lib/app-list-cloud/services/apps-process-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/app-list-cloud/services/apps-process-cloud.service.ts) |
|
||||
| _[Process filter cloud service](../../lib/process-services-cloud/src/lib/process-cloud/services/process-filter-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/process-cloud/services/process-filter-cloud.service.ts) |
|
||||
| _[Process list cloud service](../../lib/process-services-cloud/src/lib/process-list-cloud/services/process-list-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/process-list-cloud/services/process-list-cloud.service.ts) |
|
||||
| _[Start task cloud service](../../lib/process-services-cloud/src/lib/start-task-cloud/services/start-task-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/start-task-cloud/services/start-task-cloud.service.ts) |
|
||||
| _[Task filter cloud service](../../lib/process-services-cloud/src/lib/task-cloud/services/task-filter-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/task-cloud/services/task-filter-cloud.service.ts) |
|
||||
| _[Task list cloud service](../../lib/process-services-cloud/src/lib/task-list-cloud/services/task-list-cloud.service.ts)_ | _Not currently documented_ | [Source](../lib/process-services-cloud/src/lib/task-list-cloud/services/task-list-cloud.service.ts) |
|
||||
|
||||
<!--process-services-cloud end-->
|
||||
|
||||
@@ -412,15 +413,13 @@ for more information about installing and using the source code.
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| _Dynamic component_ | _Not currently documented_ | [Source](../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts) |
|
||||
| _Dynamic tab component_ | _Not currently documented_ | [Source](../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts) |
|
||||
| [Dynamic component](extensions/dynamic.component.md)  | Displays dynamically-loaded extension components. | [Source](../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts) |
|
||||
|
||||
## Services
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| _Extension loader service_ | _Not currently documented_ | [Source](../lib/extensions/src/lib/services/extension-loader.service.ts) |
|
||||
| _Extension service_ | _Not currently documented_ | [Source](../lib/extensions/src/lib/services/extension.service.ts) |
|
||||
| [Extension service](extensions/extension.service.md)  | Manages and runs basic extension functionality. | [Source](../lib/extensions/src/lib/services/extension.service.ts) |
|
||||
|
||||
<!--extensions end-->
|
||||
|
||||
@@ -439,7 +438,7 @@ for more information about installing and using the source code.
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| [Widget component](insights/widget.component.md) | Base class for standard and custom widget classes. | [Source](../lib/insights/analytics-process/components/widgets/widget.component.ts) |
|
||||
| [Widget component](insights/widget.component.md) | Base class for standard and custom [widget](../../e2e/pages/adf/process_services/widgets/widget.ts) classes. | [Source](../lib/insights/analytics-process/components/widgets/widget.component.ts) |
|
||||
| [Analytics generator component](insights/analytics-generator.component.md) | Generates and shows charts | [Source](../lib/insights/analytics-process/components/analytics-generator.component.ts) |
|
||||
| [Analytics report list component](insights/analytics-report-list.component.md) | Shows a list of all available reports | [Source](../lib/insights/analytics-process/components/analytics-report-list.component.ts) |
|
||||
| [Analytics component](insights/analytics.component.md) | Shows the charts related to the reportId passed as input | [Source](../lib/insights/analytics-process/components/analytics.component.ts) |
|
||||
|
@@ -16,14 +16,13 @@ for more information about installing and using the source code.
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| _Dynamic component_ | _Not currently documented_ | [Source](../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts) |
|
||||
| _Dynamic tab component_ | _Not currently documented_ | [Source](../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts) |
|
||||
| [Dynamic component](dynamic.component.md)  | Displays dynamically-loaded extension components. | [Source](../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts) |
|
||||
| [Dynamic tab component](dynamic-tab.component.md)  | Displays dynamically-loaded extensions with tabs. | [Source](../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts) |
|
||||
|
||||
## Services
|
||||
|
||||
| Name | Description | Source link |
|
||||
| ---- | ----------- | ----------- |
|
||||
| _Extension loader service_ | _Not currently documented_ | [Source](../../lib/extensions/src/lib/services/extension-loader.service.ts) |
|
||||
| _Extension service_ | _Not currently documented_ | [Source](../../lib/extensions/src/lib/services/extension.service.ts) |
|
||||
| [Extension service](extension.service.md)  | Manages and runs basic extension functionality. | [Source](../../lib/extensions/src/lib/services/extension.service.ts) |
|
||||
|
||||
<!--extensions end-->
|
||||
|
18
docs/extensions/dynamic-tab.component.md
Normal file
18
docs/extensions/dynamic-tab.component.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
Title: Dynamic Tab Component
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2018-12-17
|
||||
---
|
||||
|
||||
# [Dynamic Tab Component](../../lib/core/about/about.component.ts "Defined in about.component.ts")
|
||||
|
||||
Displays dynamically-loaded extensions with tabs.
|
||||
|
||||
## Class members
|
||||
|
||||
## Details
|
||||
|
||||
## See also
|
||||
|
||||
- Dynamic component
|
58
docs/extensions/dynamic.component.md
Normal file
58
docs/extensions/dynamic.component.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
Title: Dynamic Component
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2018-12-17
|
||||
---
|
||||
|
||||
# [Dynamic Component](../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts "Defined in dynamic.component.ts")
|
||||
|
||||
Displays dynamically-loaded extension components.
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| data | `any` | | Data for the dynamically-loaded component instance. |
|
||||
| id | `string` | | Unique ID string for the component to show. |
|
||||
|
||||
## Details
|
||||
|
||||
Use the Dynamic component to create extensible apps
|
||||
(ie, apps that provide a generalized UI structure where the specific content
|
||||
can be "plugged in" by other developers). The `id` property refers to a
|
||||
component that has previously been registered using the `setComponents` method
|
||||
of the [Extension service](../../lib/extensions/src/lib/services/extension.service.ts):
|
||||
|
||||
```ts
|
||||
// Registering the extension components.
|
||||
extensionService.setComponents({
|
||||
'plugInName.components.docList': DocumentListComponent.
|
||||
'plugInName.components.login': LoginComponent,
|
||||
...
|
||||
});
|
||||
```
|
||||
|
||||
```html
|
||||
<!-- Using the component pre-registered with the key 'plugInName.components.login' -->
|
||||
<adf-dynamic-component
|
||||
id="'plugInName.components.login'"
|
||||
data="{ ... }"
|
||||
>
|
||||
</adf-dynamic-component>
|
||||
```
|
||||
|
||||
Use this to provide the extension developer with a standard layout that
|
||||
contains placeholders defined by instances of the Dynamic component. The
|
||||
developer can then register any desired components to correspond to the
|
||||
defined component IDs. For example, the extensible app might be shipped
|
||||
with the standard [Document List component](../content-services/document-list.component.md) registered against `plugInName.components.docList`.
|
||||
The extension developer can replace this with a custom class
|
||||
simply by registering that class with `setComponents` before use.
|
||||
|
||||
## See also
|
||||
|
||||
- [Extension service](../../lib/extensions/src/lib/services/extension.service.ts)
|
||||
- [Dynamic tab component](../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts)
|
69
docs/extensions/extension.service.md
Normal file
69
docs/extensions/extension.service.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
Title: Extension Service
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2018-12-17
|
||||
---
|
||||
|
||||
# [Extension Service](../../lib/extensions/src/lib/services/extension.service.ts "Defined in extension.service.ts")
|
||||
|
||||
Manages and runs basic extension functionality.
|
||||
|
||||
## Class members
|
||||
|
||||
### Methods
|
||||
|
||||
- **evaluateRule**(ruleId: `string`, context: [`RuleContext`](../../lib/extensions/src/lib/config/rule.extensions.ts)): `boolean`<br/>
|
||||
Evaluates a rule.
|
||||
- _ruleId:_ `string` - ID of the rule to evaluate
|
||||
- _context:_ [`RuleContext`](../../lib/extensions/src/lib/config/rule.extensions.ts) - Parameter object for the evaluator with details of app state
|
||||
- **Returns** `boolean` - True if the rule passed, false otherwise
|
||||
- **getActionById**(id: `string`): [`ActionRef`](../../lib/extensions/src/lib/config/action.extensions.ts)<br/>
|
||||
Retrieves an action using its ID value.
|
||||
- _id:_ `string` - The ID value to look for
|
||||
- **Returns** [`ActionRef`](../../lib/extensions/src/lib/config/action.extensions.ts) - Action or null if not found
|
||||
- **getAuthGuards**(ids: `string[]`): `Array<Type<__type>>`<br/>
|
||||
Retrieves one or more auth guards using an array of ID values.
|
||||
- _ids:_ `string[]` - Array of ID value to look for
|
||||
- **Returns** `Array<Type<__type>>` - Array of auth guards or empty array if none were found
|
||||
- **getComponentById**(id: `string`): `Type<>`<br/>
|
||||
Retrieves a registered [extension component](../../lib/extensions/src/lib/services/component-register.service.ts) using its ID value.
|
||||
- _id:_ `string` - The ID value to look for
|
||||
- **Returns** `Type<>` - The component or null if not found
|
||||
- **getEvaluator**(key: `string`): `RuleEvaluator`<br/>
|
||||
Retrieves a RuleEvaluator function using its key name.
|
||||
- _key:_ `string` - Key name to look for
|
||||
- **Returns** `RuleEvaluator` - RuleEvaluator or null if not found
|
||||
- **getRouteById**(id: `string`): [`RouteRef`](../../lib/extensions/src/lib/config/routing.extensions.ts)<br/>
|
||||
Retrieves a route using its ID value.
|
||||
- _id:_ `string` - The ID value to look for
|
||||
- **Returns** [`RouteRef`](../../lib/extensions/src/lib/config/routing.extensions.ts) - The route or null if not found
|
||||
- **getRuleById**(id: `string`): [`RuleRef`](../../lib/extensions/src/lib/config/rule.extensions.ts)<br/>
|
||||
Retrieves a rule using its ID value.
|
||||
- _id:_ `string` - The ID value to look for
|
||||
- **Returns** [`RuleRef`](../../lib/extensions/src/lib/config/rule.extensions.ts) - The rule or null if not found
|
||||
- **load**(): [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<`[`ExtensionConfig`](../../lib/extensions/src/lib/config/extension.config.ts)`>`<br/>
|
||||
Loads and registers an extension config file and plugins (specified by path properties).
|
||||
- **Returns** [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises)`<`[`ExtensionConfig`](../../lib/extensions/src/lib/config/extension.config.ts)`>` - The loaded config data
|
||||
- **runExpression**(value: `string`, context?: `any`): `any`<br/>
|
||||
Runs a lightweight expression stored in a string.
|
||||
- _value:_ `string` - String containing the expression or literal value
|
||||
- _context:_ `any` - (Optional) Parameter object for the expression with details of app state
|
||||
- **Returns** `any` - Result of evaluated expression, if found, or the literal value otherwise
|
||||
- **setAuthGuards**(values: `Function`)<br/>
|
||||
Adds one or more new auth guards to the existing set.
|
||||
- _values:_ `Function` - The new auth guards to add
|
||||
- **setComponents**(values: `Function`)<br/>
|
||||
Adds one or more new components to the existing set.
|
||||
- _values:_ `Function` - The new components to add
|
||||
- **setEvaluators**(values: `Function`)<br/>
|
||||
Adds one or more new rule evaluators to the existing set.
|
||||
- _values:_ `Function` - The new evaluators to add
|
||||
- **setup**(config: [`ExtensionConfig`](../../lib/extensions/src/lib/config/extension.config.ts))<br/>
|
||||
Registers extensions from a config object.
|
||||
- _config:_ [`ExtensionConfig`](../../lib/extensions/src/lib/config/extension.config.ts) - Object with config data
|
||||
|
||||
## Details
|
||||
|
||||
Use the methods of this service to add extensibility features to your app. You can find further
|
||||
details in the [App extensions](../user-guide/app-extensions.md) page.
|
@@ -13,6 +13,7 @@ on an item below to see the corresponding guide page.
|
||||
- [Angular Material Design](angular-material-design.md)
|
||||
- [Form Extensibility and Customisation](extensibility.md)
|
||||
- [Internationalization in ADF](internationalization.md)
|
||||
- [App extensions](app-extensions.md)
|
||||
- [Theming](theming.md)
|
||||
- [Transclusion](transclusion.md)
|
||||
- [Typography](typography.md)
|
||||
|
276
docs/user-guide/app-extensions.md
Normal file
276
docs/user-guide/app-extensions.md
Normal file
@@ -0,0 +1,276 @@
|
||||
---
|
||||
Title: App extensions
|
||||
Added: 3.0.0
|
||||
---
|
||||
|
||||
# App extensions
|
||||
|
||||
ADF lets you simplify the app developer's task by providing an **extensible app**
|
||||
as a starting point.
|
||||
|
||||
An extensible app is designed with _extension points_, which are
|
||||
placeholders where components and other content
|
||||
can be "plugged in" to provide functionality. The app may be supplied with
|
||||
default content for the extension points but the idea is that a developer can
|
||||
easily replace this with custom content as necessary. An organization might find this
|
||||
useful, for example, if they want to create a family of apps with consistent
|
||||
appearance and behavior. One developer can produce an extensible app that
|
||||
can then be adapted by other developers to create the various apps in the
|
||||
family.
|
||||
|
||||
## Contents
|
||||
|
||||
- [Extension points](#extension-points)
|
||||
- [Extensibility features](#extensibility-features)
|
||||
- [Setting up an app for extensibility](#setting-up-an-app-for-extensibility)
|
||||
- [Creating extensions](#creating-extensions)
|
||||
- [Routes](#routes)
|
||||
- [Actions](#actions)
|
||||
- [Rules](#rules)
|
||||
- [Features](#features)
|
||||
|
||||
## Extension points
|
||||
|
||||
A pluggable extension is implemented by a class or data object that provides
|
||||
its functionality. The class or object is then registered in the app with a
|
||||
key/ID string that is used to reference it. The general idea is that only the
|
||||
ID string is used directly in the main app code to designate the extension point,
|
||||
while the actual implementation is loaded and registered separately. In this respect,
|
||||
extension points work somewhat like
|
||||
[translation keys](internationalization.md) - the key is used to mark
|
||||
a place in the app where the actual content will be supplied dynamically.
|
||||
|
||||
## Extensibility features
|
||||
|
||||
ADF provides a number of features that offer extension points or help
|
||||
with extensibility in general:
|
||||
|
||||
- **Components**: The [Dynamic component](../extensions/dynamic.component.md) and Dynamic Tab component
|
||||
have no content of their own but they have an `id` property that
|
||||
references a registered component extension ID. The referenced component
|
||||
will be added as a child of the Dynamic component at runtime.
|
||||
- **Routes**: These are registered as key/ID strings that resolve to standard
|
||||
Angular routes. This feature can be used, say, that a click on a list item
|
||||
should send the user _somewhere_ but leave the actual destination up to the
|
||||
developer.
|
||||
- **Auth guards**: Routes can be protected by auth guards
|
||||
to prevent unauthorized users from accessing pages they shouldn't see.
|
||||
- **Rules**: These are tests that produce a boolean result depending on the app state.
|
||||
The extensible app can use them with _features_ or `ngIf` directives, for example, to show or
|
||||
hide content in certain conditions. The exact conditions, however, are chosen
|
||||
by the developer who extends the app.
|
||||
- **Actions**: The extensible app can define a set of **application actions** that
|
||||
perform basic operations in the app. These are each referenced by a unique key
|
||||
string and can take a data value as a parameter. Items from this set can then
|
||||
be referenced by extension actions. These contain their own key/ID string along
|
||||
with the name of an application action to trigger and a "payload" value to pass
|
||||
as a parameter. The payload can either be a string (to represent a static message,
|
||||
say) or an expression that calculates a result from app state. The expression could,
|
||||
for example, return the current user's name, the currently selected list item or a
|
||||
string composed from several data items.
|
||||
- **Features**: What counts as a "feature" varies according to the application but
|
||||
it is intended to mean any salient piece of functionality that can be
|
||||
customized by extensions. For example, a toolbar, navigation bar,
|
||||
login page or tools menu might all be regarded as features. Any of these
|
||||
features could be extended in a variety of ways. A menu, say, might support custom
|
||||
commands that are implemented by actions with each command enabled or disabled
|
||||
depending on the value returned by a rule.
|
||||
|
||||
## Setting up an app for extensibility
|
||||
|
||||
You can register component classes for use with the [Dynamic component](../extensions/dynamic.component.md)
|
||||
or Dynamic Tab component using the `setComponents` method of the
|
||||
[Extension service](../extensions/extension.service.md) (see the Dynamic component page for further details
|
||||
and code samples). The service also has `setAuthGuards` and
|
||||
`setEvaluators` methods that behave analogously.
|
||||
|
||||
The recommended way to provide the set of application actions (ie, the built-in
|
||||
actions that can be referenced by extension actions) is to use the scheme
|
||||
defined by [@ngrx/store](https://gist.github.com/btroncone/a6e4347326749f938510).
|
||||
Briefly, the idea is that all app state is stored centrally and
|
||||
can only be updated by functions triggered by named command strings (eg, "ADD_USER",
|
||||
"CLEAR_SELECTION", "NEW_DOCUMENT", etc). ADF's extensibility features are designed
|
||||
to fit in neatly with @ngrx/store but it has many other advantages, as described on
|
||||
the website.
|
||||
|
||||
## Creating extensions
|
||||
|
||||
The set of basic classes, evaluators and actions provided by the app can be used to set up extensions.
|
||||
The easiest way to configure the extension functionality is with an extension config
|
||||
file. The structure of this file (in JSON format) follows the basic pattern shown
|
||||
below:
|
||||
|
||||
```json
|
||||
{
|
||||
"$id": "unique.id",
|
||||
"$name": "extension.name",
|
||||
"$version": "1.0.0",
|
||||
"$vendor": "author.name",
|
||||
"$license": "license",
|
||||
"$runtime": "1.5.0",
|
||||
"$description": "some description",
|
||||
|
||||
"routes": [ ... ],
|
||||
"actions": [ ... ],
|
||||
"rules": [ ... ],
|
||||
"features": { ... }
|
||||
}
|
||||
```
|
||||
|
||||
You can use the `load` method of the [Extension service](../extensions/extension.service.md) to read the file into a
|
||||
convenient object that implements the [`ExtensionConfig`](../../lib/extensions/src/lib/config/extension.config.ts) and [`ExtensionRef`](../../lib/extensions/src/lib/config/extension.config.ts) interfaces.
|
||||
Note that the `extension.schema.json` file contains a [JSON schema](http://json-schema.org/)
|
||||
that allows for format checking and also text completion in some editors.
|
||||
|
||||
### Routes
|
||||
|
||||
The `routes` array in the config contains objects like those shown in the
|
||||
following example:
|
||||
|
||||
```json
|
||||
"routes": [
|
||||
{
|
||||
"id": "plugin1.routes.customTrash",
|
||||
"path": "ext/customtrash",
|
||||
"component": "yourCustomTrash.component.id",
|
||||
"layout": "app.layout.main",
|
||||
"auth": ["app.auth"],
|
||||
"data": {
|
||||
"title": "Custom Trashcan"
|
||||
}
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
You can access routes from the config using the `getRouteById` method of the
|
||||
[Extension service,](../extensions/extension.service.md) which returns a [`RouteRef`](../../lib/extensions/src/lib/config/routing.extensions.ts) object. Note that the references
|
||||
to the component and auth guards are extension IDs,
|
||||
[as described above](#extension-points).
|
||||
|
||||
### Actions
|
||||
|
||||
The `actions` array has the following structure:
|
||||
|
||||
```json
|
||||
"actions": [
|
||||
{
|
||||
"id": "plugin1.actions.settings",
|
||||
"type": "NAVIGATE_URL",
|
||||
"payload": "/settings"
|
||||
},
|
||||
{
|
||||
"id": "plugin1.actions.info",
|
||||
"type": "SNACKBAR_INFO",
|
||||
"payload": "I'm a nice little popup raised by extension."
|
||||
},
|
||||
{
|
||||
"id": "plugin1.actions.node-name",
|
||||
"type": "SNACKBAR_INFO",
|
||||
"payload": "$('Action for ' + context.selection.first.entry.name)"
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
The [Extension service](../extensions/extension.service.md) defines a `getActionById` method that returns an
|
||||
`ActionRef` object corresponding to an item from this array.
|
||||
|
||||
The `type` property refers to an action type that must be provided by the
|
||||
app (eg, the "SNACKBAR_INFO" in the example presumably just shows a standard snackbar
|
||||
message).
|
||||
|
||||
By default, the `payload` is just an ordinary string that can be used for
|
||||
a message, URL or other static text data. However, you can also define a
|
||||
JavaScript expression here by surrounding it with `$( ... )`. The expression
|
||||
has access to an object named `context` which typically contains information
|
||||
about the app state. You can supply the object that contains this data via the
|
||||
`runExpression` method of the [Extension service,](../extensions/extension.service.md) which actually evaluates the
|
||||
expression. Note that the result of the expression doesn't necessarily
|
||||
have to be a string.
|
||||
|
||||
### Rules
|
||||
|
||||
The simplest type of rule is configured as shown below:
|
||||
|
||||
```json
|
||||
"rules": [
|
||||
{
|
||||
"id": "app.trashcan",
|
||||
"type": "app.navigation.isTrashcan"
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
The `type` is the ID of a `RuleEvaluator` function that has been registered using
|
||||
the `setEvaluators` method of the [Extension service](../extensions/extension.service.md).
|
||||
The evaluator is a boolean function that represents whether a certain
|
||||
condition is true or false (eg, whether an item is selected, whether the user
|
||||
has certain options enabled, etc). The evaluator has access to a context object
|
||||
that is supplied from the app during the call to `evaluateRule` (defined in
|
||||
the Extension service).
|
||||
|
||||
A more complex rule can take other rules as parameters:
|
||||
|
||||
```json
|
||||
"rules": [
|
||||
{
|
||||
"id": "app.toolbar.favorite.canAdd",
|
||||
"type": "core.every",
|
||||
"parameters": [
|
||||
{ "type": "rule", "value": "app.selection.canAddFavorite" },
|
||||
{ "type": "rule", "value": "app.navigation.isNotRecentFiles" },
|
||||
{ "type": "rule", "value": "app.navigation.isNotSharedFiles" },
|
||||
{ "type": "rule", "value": "app.navigation.isNotSearchResults" }
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
This is mainly useful for creating "metarules" that require certain
|
||||
relationships to hold among the parameter rules. A few useful metarules
|
||||
are defined in the
|
||||
[core.evaluators.ts](../lib/extensions/evaluators/core.evaluators.ts) file:
|
||||
|
||||
- `every`: Returns true only if all the parameter rules return true
|
||||
- `some`: Returns true if one or more of the parameter rules return true
|
||||
- `not`: Returns true only if all the parameter rules return false
|
||||
|
||||
Note that parameter rules can also recursively invoke their own rules, etc.
|
||||
|
||||
### Features
|
||||
|
||||
The `features` object does not have any defined structure but the intention
|
||||
is that each key in the object corresponds to the name of a salient feature
|
||||
of the app that can be extended. The object or array that matches the key
|
||||
name contains parameters that modify the behavior of the feature, possibly
|
||||
using actions, rules, etc, defined elsewhere in the config. Suppose, for
|
||||
example, the app has a tools menu that can be extended with extra commands.
|
||||
The properties for a new command might include:
|
||||
|
||||
- The title shown in the menu
|
||||
- An icon shown next to the title
|
||||
- The action that is activated when the command is selected
|
||||
- A rule that determines whether or not the command is enabled
|
||||
|
||||
A `features` object to add an extra item to this menu might look like
|
||||
the following:
|
||||
|
||||
```json
|
||||
"features": {
|
||||
"toolmenu": [
|
||||
{
|
||||
"id": "app.toolmenu.givebiscuit",
|
||||
"title": "Give a biscuit to the selected user",
|
||||
"icon": "icons/GiveBiscuit.svg",
|
||||
"actions": {
|
||||
"click": "GIVE_BISCUIT"
|
||||
},
|
||||
"rules": {
|
||||
"visible": "app.biscuits.notempty"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
@@ -38,7 +38,10 @@ export class DynamicExtensionComponent implements OnChanges, OnDestroy {
|
||||
@ViewChild('content', { read: ViewContainerRef })
|
||||
content: ViewContainerRef;
|
||||
|
||||
/** Unique ID string for the component to show. */
|
||||
@Input() id: string;
|
||||
|
||||
/** Data for the dynamically-loaded component instance. */
|
||||
@Input() data: any;
|
||||
|
||||
private componentRef: ComponentRef<ExtensionComponent>;
|
||||
|
@@ -38,6 +38,7 @@ export class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {
|
||||
@ViewChild('content', { read: ViewContainerRef })
|
||||
content: ViewContainerRef;
|
||||
|
||||
/** Unique ID string for the component to show. */
|
||||
@Input()
|
||||
id: string;
|
||||
|
||||
|
@@ -43,6 +43,10 @@ export class ExtensionService {
|
||||
private componentRegister: ComponentRegisterService
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Loads and registers an extension config file and plugins (specified by path properties).
|
||||
* @returns The loaded config data
|
||||
*/
|
||||
async load(): Promise<ExtensionConfig> {
|
||||
const config = await this.loader.load(
|
||||
this.configPath,
|
||||
@@ -52,6 +56,10 @@ export class ExtensionService {
|
||||
return config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers extensions from a config object.
|
||||
* @param config Object with config data
|
||||
*/
|
||||
setup(config: ExtensionConfig) {
|
||||
if (!config) {
|
||||
console.warn('Extension configuration not found');
|
||||
@@ -69,36 +77,68 @@ export class ExtensionService {
|
||||
this.routes = this.loader.getRoutes(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds one or more new rule evaluators to the existing set.
|
||||
* @param values The new evaluators to add
|
||||
*/
|
||||
setEvaluators(values: { [key: string]: RuleEvaluator }) {
|
||||
if (values) {
|
||||
this.evaluators = Object.assign({}, this.evaluators, values);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds one or more new auth guards to the existing set.
|
||||
* @param values The new auth guards to add
|
||||
*/
|
||||
setAuthGuards(values: { [key: string]: Type<{}> }) {
|
||||
if (values) {
|
||||
this.authGuards = Object.assign({}, this.authGuards, values);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds one or more new components to the existing set.
|
||||
* @param values The new components to add
|
||||
*/
|
||||
setComponents(values: { [key: string]: Type<{}> }) {
|
||||
this.componentRegister.setComponents(values);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a route using its ID value.
|
||||
* @param id The ID value to look for
|
||||
* @returns The route or null if not found
|
||||
*/
|
||||
getRouteById(id: string): RouteRef {
|
||||
return this.routes.find((route) => route.id === id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves one or more auth guards using an array of ID values.
|
||||
* @param ids Array of ID value to look for
|
||||
* @returns Array of auth guards or empty array if none were found
|
||||
*/
|
||||
getAuthGuards(ids: string[]): Array<Type<{}>> {
|
||||
return (ids || [])
|
||||
.map((id) => this.authGuards[id])
|
||||
.filter((guard) => guard);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves an action using its ID value.
|
||||
* @param id The ID value to look for
|
||||
* @returns Action or null if not found
|
||||
*/
|
||||
getActionById(id: string): ActionRef {
|
||||
return this.actions.find((action) => action.id === id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a RuleEvaluator function using its key name.
|
||||
* @param key Key name to look for
|
||||
* @returns RuleEvaluator or null if not found
|
||||
*/
|
||||
getEvaluator(key: string): RuleEvaluator {
|
||||
if (key && key.startsWith('!')) {
|
||||
const fn = this.evaluators[key.substring(1)];
|
||||
@@ -109,6 +149,12 @@ export class ExtensionService {
|
||||
return this.evaluators[key];
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates a rule.
|
||||
* @param ruleId ID of the rule to evaluate
|
||||
* @param context Parameter object for the evaluator with details of app state
|
||||
* @returns True if the rule passed, false otherwise
|
||||
*/
|
||||
evaluateRule(ruleId: string, context: RuleContext): boolean {
|
||||
const ruleRef = this.getRuleById(ruleId);
|
||||
|
||||
@@ -126,14 +172,30 @@ export class ExtensionService {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a registered extension component using its ID value.
|
||||
* @param id The ID value to look for
|
||||
* @returns The component or null if not found
|
||||
*/
|
||||
getComponentById<T>(id: string) {
|
||||
return this.componentRegister.getComponentById<T>(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a rule using its ID value.
|
||||
* @param id The ID value to look for
|
||||
* @returns The rule or null if not found
|
||||
*/
|
||||
getRuleById(id: string): RuleRef {
|
||||
return this.rules.find((ref) => ref.id === id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs a lightweight expression stored in a string.
|
||||
* @param value String containing the expression or literal value
|
||||
* @param context Parameter object for the expression with details of app state
|
||||
* @returns Result of evaluated expression, if found, or the literal value otherwise
|
||||
*/
|
||||
runExpression(value: string, context?: any) {
|
||||
const pattern = new RegExp(/\$\((.*\)?)\)/g);
|
||||
const matches = pattern.exec(value);
|
||||
|
@@ -65,6 +65,7 @@
|
||||
"datatable-adapter.interface": "DataTableAdapter",
|
||||
"datatable.component": "DataTableComponent",
|
||||
"document-library.model": "NodePaging",
|
||||
"dynamic.component": "DynamicExtensionComponent",
|
||||
"form-field-validator.interface": "FormFieldValidator",
|
||||
"header.component": "HeaderLayoutComponent",
|
||||
"inherited-button.directive": "InheritPermissionDirective",
|
||||
@@ -82,6 +83,7 @@
|
||||
},
|
||||
"undocStoplist": [
|
||||
"model",
|
||||
"component-register.service",
|
||||
"context-menu-holder",
|
||||
"data-column-list",
|
||||
"card-view-[a-z]+item",
|
||||
@@ -90,6 +92,7 @@
|
||||
"content-action-list",
|
||||
"empty-folder-content",
|
||||
"empty-list",
|
||||
"extension-loader.service",
|
||||
"loading-template",
|
||||
"no-content-template",
|
||||
"card-view-content-proxy",
|
||||
|
@@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
exports.__esModule = true;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var path = require("path");
|
||||
var fs = require("fs");
|
||||
/*
|
||||
@@ -25,7 +25,7 @@ var includedNodeTypes = [
|
||||
"link", "text"
|
||||
];
|
||||
var docFolder = path.resolve("docs");
|
||||
var adfLibNames = ["core", "content-services", "insights", "process-services", "process-services-cloud"];
|
||||
var adfLibNames = ["core", "content-services", "insights", "process-services", "process-services-cloud", "extensions"];
|
||||
var externalNameLinks;
|
||||
function processDocs(mdCache, aggData, errorMessages) {
|
||||
initPhase(aggData);
|
||||
@@ -99,8 +99,9 @@ function updateFile(tree, pathname, aggData, _errorMessages) {
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((node.children) && (node.type !== "heading")) {
|
||||
else if ((node.children) && (node.type !== "heading")) { //((node.type === "paragraph") || (node.type === "tableCell")) {
|
||||
node.children.forEach(function (child, index) {
|
||||
var _a;
|
||||
if ((child.type === "text") || (child.type === "inlineCode")) {
|
||||
var newNodes = handleLinksInBodyText(aggData, child.value, child.type === 'inlineCode');
|
||||
(_a = node.children).splice.apply(_a, [index, 1].concat(newNodes));
|
||||
@@ -108,7 +109,6 @@ function updateFile(tree, pathname, aggData, _errorMessages) {
|
||||
else {
|
||||
traverseMDTree(child);
|
||||
}
|
||||
var _a;
|
||||
});
|
||||
} /*else if (node.children) {
|
||||
node.children.forEach(child => {
|
||||
|
@@ -35,7 +35,7 @@ const includedNodeTypes = [
|
||||
];
|
||||
|
||||
const docFolder = path.resolve("docs");
|
||||
const adfLibNames = ["core", "content-services", "insights", "process-services", "process-services-cloud"];
|
||||
const adfLibNames = ["core", "content-services", "insights", "process-services", "process-services-cloud", "extensions"];
|
||||
|
||||
let externalNameLinks;
|
||||
|
||||
|
Reference in New Issue
Block a user