@webiny/api-apw 0.0.0-unstable.5e7233243f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ContentApwSettingsPlugin.d.ts +10 -0
- package/ContentApwSettingsPlugin.js +17 -0
- package/ContentApwSettingsPlugin.js.map +1 -0
- package/LICENSE +21 -0
- package/README.md +34 -0
- package/crud/createChangeRequestMethods.d.ts +2 -0
- package/crud/createChangeRequestMethods.js +95 -0
- package/crud/createChangeRequestMethods.js.map +1 -0
- package/crud/createCommentMethods.d.ts +2 -0
- package/crud/createCommentMethods.js +96 -0
- package/crud/createCommentMethods.js.map +1 -0
- package/crud/createContentReviewMethods.d.ts +10 -0
- package/crud/createContentReviewMethods.js +552 -0
- package/crud/createContentReviewMethods.js.map +1 -0
- package/crud/createReviewerMethods.d.ts +2 -0
- package/crud/createReviewerMethods.js +96 -0
- package/crud/createReviewerMethods.js.map +1 -0
- package/crud/createWorkflowMethods.d.ts +2 -0
- package/crud/createWorkflowMethods.js +96 -0
- package/crud/createWorkflowMethods.js.map +1 -0
- package/crud/index.d.ts +2 -0
- package/crud/index.js +100 -0
- package/crud/index.js.map +1 -0
- package/crud/utils.d.ts +21 -0
- package/crud/utils.js +142 -0
- package/crud/utils.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.js +34 -0
- package/index.js.map +1 -0
- package/package.json +75 -0
- package/plugins/cms/CmsEntryApwSettingsGetterPlugin.d.ts +10 -0
- package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +51 -0
- package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -0
- package/plugins/cms/README.md +49 -0
- package/plugins/cms/apwEntryPlugins.d.ts +8 -0
- package/plugins/cms/apwEntryPlugins.js +50 -0
- package/plugins/cms/apwEntryPlugins.js.map +1 -0
- package/plugins/cms/index.d.ts +12 -0
- package/plugins/cms/index.js +37 -0
- package/plugins/cms/index.js.map +1 -0
- package/plugins/cms/linkContentReviewToEntry.d.ts +8 -0
- package/plugins/cms/linkContentReviewToEntry.js +108 -0
- package/plugins/cms/linkContentReviewToEntry.js.map +1 -0
- package/plugins/cms/linkWorkflowToEntry.d.ts +8 -0
- package/plugins/cms/linkWorkflowToEntry.js +166 -0
- package/plugins/cms/linkWorkflowToEntry.js.map +1 -0
- package/plugins/cms/triggerContentReview.d.ts +8 -0
- package/plugins/cms/triggerContentReview.js +59 -0
- package/plugins/cms/triggerContentReview.js.map +1 -0
- package/plugins/cms/updateContentReviewStatus.d.ts +10 -0
- package/plugins/cms/updateContentReviewStatus.js +101 -0
- package/plugins/cms/updateContentReviewStatus.js.map +1 -0
- package/plugins/cms/utils.d.ts +27 -0
- package/plugins/cms/utils.js +211 -0
- package/plugins/cms/utils.js.map +1 -0
- package/plugins/context.d.ts +5 -0
- package/plugins/context.js +146 -0
- package/plugins/context.js.map +1 -0
- package/plugins/graphql/changeRequest.gql.d.ts +4 -0
- package/plugins/graphql/changeRequest.gql.js +155 -0
- package/plugins/graphql/changeRequest.gql.js.map +1 -0
- package/plugins/graphql/comment.gql.d.ts +4 -0
- package/plugins/graphql/comment.gql.js +160 -0
- package/plugins/graphql/comment.gql.js.map +1 -0
- package/plugins/graphql/contentReview.gql.d.ts +4 -0
- package/plugins/graphql/contentReview.gql.js +382 -0
- package/plugins/graphql/contentReview.gql.js.map +1 -0
- package/plugins/graphql/reviewer.gql.d.ts +4 -0
- package/plugins/graphql/reviewer.gql.js +114 -0
- package/plugins/graphql/reviewer.gql.js.map +1 -0
- package/plugins/graphql/workflow.gql.d.ts +4 -0
- package/plugins/graphql/workflow.gql.js +205 -0
- package/plugins/graphql/workflow.gql.js.map +1 -0
- package/plugins/graphql.d.ts +4 -0
- package/plugins/graphql.js +95 -0
- package/plugins/graphql.js.map +1 -0
- package/plugins/hooks/createReviewerFromIdentity.d.ts +2 -0
- package/plugins/hooks/createReviewerFromIdentity.js +62 -0
- package/plugins/hooks/createReviewerFromIdentity.js.map +1 -0
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +2 -0
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +67 -0
- package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -0
- package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +2 -0
- package/plugins/hooks/deleteCommentsAfterChangeRequest.js +59 -0
- package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -0
- package/plugins/hooks/index.d.ts +3 -0
- package/plugins/hooks/index.js +68 -0
- package/plugins/hooks/index.js.map +1 -0
- package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -0
- package/plugins/hooks/initializeContentReviewSteps.js +89 -0
- package/plugins/hooks/initializeContentReviewSteps.js.map +1 -0
- package/plugins/hooks/updatePendingChangeRequests.d.ts +2 -0
- package/plugins/hooks/updatePendingChangeRequests.js +98 -0
- package/plugins/hooks/updatePendingChangeRequests.js.map +1 -0
- package/plugins/hooks/updateTotalComments.d.ts +3 -0
- package/plugins/hooks/updateTotalComments.js +157 -0
- package/plugins/hooks/updateTotalComments.js.map +1 -0
- package/plugins/hooks/validateChangeRequest.d.ts +2 -0
- package/plugins/hooks/validateChangeRequest.js +64 -0
- package/plugins/hooks/validateChangeRequest.js.map +1 -0
- package/plugins/hooks/validateComment.d.ts +2 -0
- package/plugins/hooks/validateComment.js +47 -0
- package/plugins/hooks/validateComment.js.map +1 -0
- package/plugins/hooks/validateContentReview.d.ts +2 -0
- package/plugins/hooks/validateContentReview.js +38 -0
- package/plugins/hooks/validateContentReview.js.map +1 -0
- package/plugins/pageBuilder/PageApwSettingsGetterPlugin.d.ts +9 -0
- package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +51 -0
- package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +1 -0
- package/plugins/pageBuilder/apwContentPagePlugins.d.ts +3 -0
- package/plugins/pageBuilder/apwContentPagePlugins.js +30 -0
- package/plugins/pageBuilder/apwContentPagePlugins.js.map +1 -0
- package/plugins/pageBuilder/extendPbPageSettingsSchema.d.ts +3 -0
- package/plugins/pageBuilder/extendPbPageSettingsSchema.js +25 -0
- package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +1 -0
- package/plugins/pageBuilder/index.d.ts +11 -0
- package/plugins/pageBuilder/index.js +45 -0
- package/plugins/pageBuilder/index.js.map +1 -0
- package/plugins/pageBuilder/linkContentReviewToPage.d.ts +8 -0
- package/plugins/pageBuilder/linkContentReviewToPage.js +93 -0
- package/plugins/pageBuilder/linkContentReviewToPage.js.map +1 -0
- package/plugins/pageBuilder/linkWorkflowToPage.d.ts +8 -0
- package/plugins/pageBuilder/linkWorkflowToPage.js +182 -0
- package/plugins/pageBuilder/linkWorkflowToPage.js.map +1 -0
- package/plugins/pageBuilder/triggerContentReview.d.ts +8 -0
- package/plugins/pageBuilder/triggerContentReview.js +50 -0
- package/plugins/pageBuilder/triggerContentReview.js.map +1 -0
- package/plugins/pageBuilder/updateContentReviewStatus.d.ts +10 -0
- package/plugins/pageBuilder/updateContentReviewStatus.js +83 -0
- package/plugins/pageBuilder/updateContentReviewStatus.js.map +1 -0
- package/plugins/pageBuilder/utils.d.ts +22 -0
- package/plugins/pageBuilder/utils.js +184 -0
- package/plugins/pageBuilder/utils.js.map +1 -0
- package/plugins/utils.d.ts +35 -0
- package/plugins/utils.js +197 -0
- package/plugins/utils.js.map +1 -0
- package/scheduler/createScheduleActionMethods.d.ts +2 -0
- package/scheduler/createScheduleActionMethods.js +146 -0
- package/scheduler/createScheduleActionMethods.js.map +1 -0
- package/scheduler/handlers/executeAction/index.d.ts +13 -0
- package/scheduler/handlers/executeAction/index.js +172 -0
- package/scheduler/handlers/executeAction/index.js.map +1 -0
- package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +13 -0
- package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +17 -0
- package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -0
- package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +11 -0
- package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +126 -0
- package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -0
- package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +11 -0
- package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +163 -0
- package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -0
- package/scheduler/handlers/executeAction/security.d.ts +4 -0
- package/scheduler/handlers/executeAction/security.js +68 -0
- package/scheduler/handlers/executeAction/security.js.map +1 -0
- package/scheduler/handlers/scheduleAction/index.d.ts +22 -0
- package/scheduler/handlers/scheduleAction/index.js +165 -0
- package/scheduler/handlers/scheduleAction/index.js.map +1 -0
- package/scheduler/handlers/scheduleAction/scheduleAction.utils.d.ts +24 -0
- package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +176 -0
- package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -0
- package/scheduler/handlers/utils.d.ts +33 -0
- package/scheduler/handlers/utils.js +168 -0
- package/scheduler/handlers/utils.js.map +1 -0
- package/scheduler/index.d.ts +2 -0
- package/scheduler/index.js +27 -0
- package/scheduler/index.js.map +1 -0
- package/scheduler/types.d.ts +171 -0
- package/scheduler/types.js +34 -0
- package/scheduler/types.js.map +1 -0
- package/storageOperations/changeRequestStorageOperations.d.ts +3 -0
- package/storageOperations/changeRequestStorageOperations.js +126 -0
- package/storageOperations/changeRequestStorageOperations.js.map +1 -0
- package/storageOperations/commentStorageOperations.d.ts +3 -0
- package/storageOperations/commentStorageOperations.js +142 -0
- package/storageOperations/commentStorageOperations.js.map +1 -0
- package/storageOperations/contentReviewStorageOperations.d.ts +3 -0
- package/storageOperations/contentReviewStorageOperations.js +97 -0
- package/storageOperations/contentReviewStorageOperations.js.map +1 -0
- package/storageOperations/index.d.ts +15 -0
- package/storageOperations/index.js +52 -0
- package/storageOperations/index.js.map +1 -0
- package/storageOperations/models/changeRequest.model.d.ts +3 -0
- package/storageOperations/models/changeRequest.model.js +59 -0
- package/storageOperations/models/changeRequest.model.js.map +1 -0
- package/storageOperations/models/comment.model.d.ts +7 -0
- package/storageOperations/models/comment.model.js +60 -0
- package/storageOperations/models/comment.model.js.map +1 -0
- package/storageOperations/models/contentModelPluginFactory.d.ts +15 -0
- package/storageOperations/models/contentModelPluginFactory.js +32 -0
- package/storageOperations/models/contentModelPluginFactory.js.map +1 -0
- package/storageOperations/models/contentReview.model.d.ts +7 -0
- package/storageOperations/models/contentReview.model.js +257 -0
- package/storageOperations/models/contentReview.model.js.map +1 -0
- package/storageOperations/models/index.d.ts +2 -0
- package/storageOperations/models/index.js +115 -0
- package/storageOperations/models/index.js.map +1 -0
- package/storageOperations/models/reviewer.model.d.ts +3 -0
- package/storageOperations/models/reviewer.model.js +55 -0
- package/storageOperations/models/reviewer.model.js.map +1 -0
- package/storageOperations/models/utils.d.ts +3 -0
- package/storageOperations/models/utils.js +36 -0
- package/storageOperations/models/utils.js.map +1 -0
- package/storageOperations/models/workflow.model.d.ts +12 -0
- package/storageOperations/models/workflow.model.js +208 -0
- package/storageOperations/models/workflow.model.js.map +1 -0
- package/storageOperations/reviewerStorageOperations.d.ts +3 -0
- package/storageOperations/reviewerStorageOperations.js +93 -0
- package/storageOperations/reviewerStorageOperations.js.map +1 -0
- package/storageOperations/types.d.ts +34 -0
- package/storageOperations/types.js +5 -0
- package/storageOperations/types.js.map +1 -0
- package/storageOperations/workflowStorageOperations.d.ts +3 -0
- package/storageOperations/workflowStorageOperations.js +115 -0
- package/storageOperations/workflowStorageOperations.js.map +1 -0
- package/types.d.ts +737 -0
- package/types.js +69 -0
- package/types.js.map +1 -0
- package/utils/contentApwSettingsPlugin.d.ts +9 -0
- package/utils/contentApwSettingsPlugin.js +26 -0
- package/utils/contentApwSettingsPlugin.js.map +1 -0
- package/utils/errors.d.ts +16 -0
- package/utils/errors.js +75 -0
- package/utils/errors.js.map +1 -0
- package/utils/fieldResolver.d.ts +16 -0
- package/utils/fieldResolver.js +60 -0
- package/utils/fieldResolver.js.map +1 -0
- package/utils/resolve.d.ts +3 -0
- package/utils/resolve.js +18 -0
- package/utils/resolve.js.map +1 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["contentField","fields","createModelField","label","parent","type","multipleValues","settings","validation","message","name","contentStatus","predefinedValues","enabled","values","value","titleField","contentIdField","contentWorkflowIdField","contentTypeField","contentSettingsField","contentSettingsModelIdField","scheduledActionIdField","contentScheduledOnField","contentScheduledByField","contentPublishedByField","stepStatusField","listValidation","renderer","id","storageId","fieldId","stepPendingChangeRequests","stepTotalComments","latestCommentId","stepSignOffProvidedOn","stepSignOffProvidedBy","stepSignOffProvidedById","stepSignOffProvidedByDisplayName","stepsField","layout","map","field","CONTENT_REVIEW_MODEL_ID","createContentReviewModelDefinition","reviewerModelId","modelId","titleFieldId","stepTitleField","stepTypeField","stepIdField","stepReviewersField","description","isPrivate"],"sources":["contentReview.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { stepTitleField, stepTypeField, stepIdField, stepReviewersField } from \"./workflow.model\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst contentField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Content\",\n parent: \"contentReview\",\n type: \"object\",\n multipleValues: false,\n settings: { fields },\n validation: [\n {\n message: \"`content` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentStatus = () =>\n createModelField({\n label: \"Status\",\n parent: \"contentReview\",\n type: \"text\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Under review\",\n value: \"underReview\"\n },\n {\n label: \"Ready to be published\",\n value: \"readyToBePublished\"\n },\n {\n label: \"Published\",\n value: \"published\"\n }\n ]\n },\n validation: [\n {\n message: \"`status` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"contentReview\",\n validation: [\n {\n message: \"`title` field value is required in contentReview.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentIdField = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`id` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentWorkflowIdField = () =>\n createModelField({\n label: \"Workflow Id\",\n type: \"text\",\n parent: \"contentReview Content\",\n validation: [\n {\n message: \"`workflowId` field value is required in contentReview Content.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"contentReview Type\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n label: \"Page\",\n value: \"page\"\n },\n { value: \"cms-entry\", label: \"CMS Entry\" }\n ]\n },\n validation: [\n {\n message: \"`type` field value is required in contentReview Type.\",\n name: \"required\"\n }\n ]\n });\n\nconst contentSettingsField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Settings\",\n parent: \"contentReview Content\",\n type: \"object\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst contentSettingsModelIdField = () =>\n createModelField({\n label: \"Model Id\",\n parent: \"contentReview Settings\",\n type: \"text\"\n });\n\nconst scheduledActionIdField = () =>\n createModelField({\n label: \"Scheduled action Id\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledOnField = () =>\n createModelField({\n label: \"Scheduled on\",\n type: \"datetime\",\n parent: \"contentReview Content\"\n });\n\nconst contentScheduledByField = () =>\n createModelField({\n label: \"Scheduled by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst contentPublishedByField = () =>\n createModelField({\n label: \"Published by\",\n type: \"text\",\n parent: \"contentReview Content\"\n });\n\nconst stepStatusField = (): CmsModelField => ({\n multipleValues: false,\n listValidation: [],\n renderer: {\n name: \"radio-buttons\"\n },\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"done\",\n label: \"Steps done\"\n },\n {\n value: \"active\",\n label: \"Step active\"\n },\n {\n value: \"inactive\",\n label: \"Step inactive\"\n }\n ]\n },\n label: \"Status\",\n id: \"contentReview_steps_status\",\n type: \"text\",\n validation: [\n {\n message: \"`status` field value is required in contentReview steps status.\",\n name: \"required\"\n }\n ],\n storageId: \"status\",\n fieldId: \"status\"\n});\n\nconst stepPendingChangeRequests = () =>\n createModelField({\n label: \"Pending change requests\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`pendingChangeRequests` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst stepTotalComments = () =>\n createModelField({\n label: \"Total comments\",\n type: \"number\",\n parent: \"contentReview Step\",\n validation: [\n {\n message: \"`totalComments` field value is required in contentReview step.\",\n name: \"required\"\n }\n ]\n });\n\nconst latestCommentId = () =>\n createModelField({\n label: \"Latest comment Id\",\n type: \"text\",\n parent: \"contentReview\"\n });\n\nconst stepSignOffProvidedOn = () =>\n createModelField({\n label: \"Sign off provided on\",\n type: \"datetime\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedBy = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Sign off provided By\",\n type: \"object\",\n parent: \"contentReview Step\",\n multipleValues: false,\n settings: { fields }\n });\n\nconst stepSignOffProvidedById = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepSignOffProvidedByDisplayName = () =>\n createModelField({\n label: \"DisplayName\",\n type: \"text\",\n parent: \"contentReview Step\"\n });\n\nconst stepsField = (fields: CmsModelField[]): CmsModelField => ({\n id: \"contentReview_steps\",\n label: \"Steps\",\n type: \"object\",\n settings: {\n fields,\n layout: fields.map(field => [field.storageId])\n },\n listValidation: [],\n validation: [],\n fieldId: \"steps\",\n storageId: \"steps\",\n multipleValues: true,\n predefinedValues: {\n values: [],\n enabled: false\n }\n});\n\ninterface CreateContentReviewModelDefinitionParams {\n reviewerModelId: string;\n}\n\nexport const CONTENT_REVIEW_MODEL_ID = \"apwContentReviewModelDefinition\";\n\nexport const createContentReviewModelDefinition = ({\n reviewerModelId\n}: CreateContentReviewModelDefinitionParams): WorkflowModelDefinition => ({\n name: \"APW - Content Review\",\n modelId: CONTENT_REVIEW_MODEL_ID,\n titleFieldId: \"content\",\n layout: [\n [\"contentReview_title\"],\n [\"contentReview_content\"],\n [\"contentReview_status\"],\n [\"contentReview_reviewRequestedBy\"],\n [\"contentReview_steps\"],\n [\"contentReview_changeRequested\"],\n [\"contentReview_latestCommentId\"]\n ],\n fields: [\n titleField(),\n contentField([\n contentIdField(),\n contentTypeField(),\n contentWorkflowIdField(),\n contentSettingsField([contentSettingsModelIdField()]),\n contentScheduledOnField(),\n contentScheduledByField(),\n scheduledActionIdField(),\n contentPublishedByField()\n ]),\n contentStatus(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepIdField(),\n stepReviewersField(reviewerModelId),\n stepStatusField(),\n stepPendingChangeRequests(),\n stepTotalComments(),\n stepSignOffProvidedOn(),\n stepSignOffProvidedBy([stepSignOffProvidedById(), stepSignOffProvidedByDisplayName()])\n ]),\n latestCommentId()\n ],\n description: \"\",\n isPrivate: true\n});\n"],"mappings":"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"}
|
@@ -0,0 +1,115 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.createApwModels = void 0;
|
9
|
+
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
11
|
+
|
12
|
+
var _apiHeadlessCms = require("@webiny/api-headless-cms");
|
13
|
+
|
14
|
+
var _contentModelPluginFactory = require("./contentModelPluginFactory");
|
15
|
+
|
16
|
+
var _workflow = require("./workflow.model");
|
17
|
+
|
18
|
+
var _contentReview = require("./contentReview.model");
|
19
|
+
|
20
|
+
var _reviewer = require("./reviewer.model");
|
21
|
+
|
22
|
+
var _comment = require("./comment.model");
|
23
|
+
|
24
|
+
var _changeRequest = require("./changeRequest.model");
|
25
|
+
|
26
|
+
var _utils = require("../../plugins/utils");
|
27
|
+
|
28
|
+
const createApwModels = context => {
|
29
|
+
/**
|
30
|
+
* This should never happen in the actual project.
|
31
|
+
* It is to make sure that we load setup context before the CRUD init in our internal code.
|
32
|
+
*/
|
33
|
+
if (!context.cms) {
|
34
|
+
console.warn("Creating model before cms init.");
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
|
38
|
+
if ((0, _utils.isInstallationPending)({
|
39
|
+
tenancy: context.tenancy,
|
40
|
+
i18n: context.i18n
|
41
|
+
})) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
|
45
|
+
context.security.disableAuthorization();
|
46
|
+
const locale = context.i18n.getContentLocale();
|
47
|
+
|
48
|
+
if (!locale) {
|
49
|
+
throw new _error.default("Missing content locale in api-apw/storageOperations/index.ts", "LOCALE_ERROR");
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* TODO:@ashutosh
|
53
|
+
* We need to move these plugin in an installation plugin
|
54
|
+
*/
|
55
|
+
|
56
|
+
|
57
|
+
const groupId = "contentModelGroup_apw";
|
58
|
+
/**
|
59
|
+
* Create a CmsGroup.
|
60
|
+
*/
|
61
|
+
|
62
|
+
const cmsGroupPlugin = new _apiHeadlessCms.CmsGroupPlugin({
|
63
|
+
id: groupId,
|
64
|
+
slug: "apw",
|
65
|
+
name: "APW",
|
66
|
+
description: "Group for Advanced Publishing Workflow",
|
67
|
+
icon: "fas/star",
|
68
|
+
isPrivate: true
|
69
|
+
});
|
70
|
+
/**
|
71
|
+
* Create CmsModel plugins.
|
72
|
+
*/
|
73
|
+
|
74
|
+
const changeRequestModelDefinition = (0, _changeRequest.createChangeRequestModelDefinition)();
|
75
|
+
const reviewerModelDefinition = (0, _reviewer.createReviewerModelDefinition)();
|
76
|
+
const workflowModelDefinition = (0, _workflow.createWorkflowModelDefinition)({
|
77
|
+
reviewerModelId: reviewerModelDefinition.modelId
|
78
|
+
});
|
79
|
+
const commentModelDefinition = (0, _comment.createCommentModelDefinition)({
|
80
|
+
modelId: changeRequestModelDefinition.modelId
|
81
|
+
});
|
82
|
+
const contentReviewModelDefinition = (0, _contentReview.createContentReviewModelDefinition)({
|
83
|
+
reviewerModelId: reviewerModelDefinition.modelId
|
84
|
+
});
|
85
|
+
const modelDefinitions = [workflowModelDefinition, contentReviewModelDefinition, reviewerModelDefinition, changeRequestModelDefinition, commentModelDefinition];
|
86
|
+
const cmsModelPlugins = [];
|
87
|
+
|
88
|
+
for (const modelDefinition of modelDefinitions) {
|
89
|
+
const cmsModelPlugin = (0, _contentModelPluginFactory.contentModelPluginFactory)({
|
90
|
+
group: cmsGroupPlugin.contentModelGroup,
|
91
|
+
tenant: context.tenancy.getCurrentTenant().id,
|
92
|
+
locale: locale.code,
|
93
|
+
modelDefinition
|
94
|
+
});
|
95
|
+
/**
|
96
|
+
* We want "title" field as the "titleField" for "ContentReview" model.
|
97
|
+
* so that we can later search entries by title.
|
98
|
+
*/
|
99
|
+
|
100
|
+
if (cmsModelPlugin.contentModel.modelId === "apwContentReviewModelDefinition") {
|
101
|
+
cmsModelPlugin.contentModel.titleFieldId = "title";
|
102
|
+
}
|
103
|
+
|
104
|
+
cmsModelPlugins.push(cmsModelPlugin);
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* Register them so that they are accessible in cms context
|
108
|
+
*/
|
109
|
+
|
110
|
+
|
111
|
+
context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);
|
112
|
+
context.security.enableAuthorization();
|
113
|
+
};
|
114
|
+
|
115
|
+
exports.createApwModels = createApwModels;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["createApwModels","context","cms","console","warn","isInstallationPending","tenancy","i18n","security","disableAuthorization","locale","getContentLocale","WebinyError","groupId","cmsGroupPlugin","CmsGroupPlugin","id","slug","name","description","icon","isPrivate","changeRequestModelDefinition","createChangeRequestModelDefinition","reviewerModelDefinition","createReviewerModelDefinition","workflowModelDefinition","createWorkflowModelDefinition","reviewerModelId","modelId","commentModelDefinition","createCommentModelDefinition","contentReviewModelDefinition","createContentReviewModelDefinition","modelDefinitions","cmsModelPlugins","modelDefinition","cmsModelPlugin","contentModelPluginFactory","group","contentModelGroup","tenant","getCurrentTenant","code","contentModel","titleFieldId","push","plugins","register","enableAuthorization"],"sources":["index.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsGroupPlugin } from \"@webiny/api-headless-cms\";\nimport { contentModelPluginFactory } from \"./contentModelPluginFactory\";\nimport { createWorkflowModelDefinition } from \"./workflow.model\";\nimport { createContentReviewModelDefinition } from \"./contentReview.model\";\nimport { createReviewerModelDefinition } from \"./reviewer.model\";\nimport { createCommentModelDefinition } from \"./comment.model\";\nimport { createChangeRequestModelDefinition } from \"./changeRequest.model\";\nimport { CmsContext } from \"@webiny/api-headless-cms/types\";\nimport { isInstallationPending } from \"~/plugins/utils\";\n\nexport const createApwModels = (context: CmsContext) => {\n /**\n * This should never happen in the actual project.\n * It is to make sure that we load setup context before the CRUD init in our internal code.\n */\n if (!context.cms) {\n console.warn(\"Creating model before cms init.\");\n return;\n }\n\n if (isInstallationPending({ tenancy: context.tenancy, i18n: context.i18n })) {\n return;\n }\n\n context.security.disableAuthorization();\n\n const locale = context.i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-apw/storageOperations/index.ts\",\n \"LOCALE_ERROR\"\n );\n }\n /**\n * TODO:@ashutosh\n * We need to move these plugin in an installation plugin\n */\n const groupId = \"contentModelGroup_apw\";\n /**\n * Create a CmsGroup.\n */\n const cmsGroupPlugin = new CmsGroupPlugin({\n id: groupId,\n slug: \"apw\",\n name: \"APW\",\n description: \"Group for Advanced Publishing Workflow\",\n icon: \"fas/star\",\n isPrivate: true\n });\n\n /**\n * Create CmsModel plugins.\n */\n const changeRequestModelDefinition = createChangeRequestModelDefinition();\n const reviewerModelDefinition = createReviewerModelDefinition();\n const workflowModelDefinition = createWorkflowModelDefinition({\n reviewerModelId: reviewerModelDefinition.modelId\n });\n const commentModelDefinition = createCommentModelDefinition({\n modelId: changeRequestModelDefinition.modelId\n });\n const contentReviewModelDefinition = createContentReviewModelDefinition({\n reviewerModelId: reviewerModelDefinition.modelId\n });\n\n const modelDefinitions = [\n workflowModelDefinition,\n contentReviewModelDefinition,\n reviewerModelDefinition,\n changeRequestModelDefinition,\n commentModelDefinition\n ];\n\n const cmsModelPlugins = [];\n for (const modelDefinition of modelDefinitions) {\n const cmsModelPlugin = contentModelPluginFactory({\n group: cmsGroupPlugin.contentModelGroup,\n tenant: context.tenancy.getCurrentTenant().id,\n locale: locale.code,\n modelDefinition\n });\n /**\n * We want \"title\" field as the \"titleField\" for \"ContentReview\" model.\n * so that we can later search entries by title.\n */\n if (cmsModelPlugin.contentModel.modelId === \"apwContentReviewModelDefinition\") {\n cmsModelPlugin.contentModel.titleFieldId = \"title\";\n }\n cmsModelPlugins.push(cmsModelPlugin);\n }\n\n /**\n * Register them so that they are accessible in cms context\n */\n context.plugins.register([cmsGroupPlugin, cmsModelPlugins]);\n\n context.security.enableAuthorization();\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEO,MAAMA,eAAe,GAAIC,OAAD,IAAyB;EACpD;AACJ;AACA;AACA;EACI,IAAI,CAACA,OAAO,CAACC,GAAb,EAAkB;IACdC,OAAO,CAACC,IAAR,CAAa,iCAAb;IACA;EACH;;EAED,IAAI,IAAAC,4BAAA,EAAsB;IAAEC,OAAO,EAAEL,OAAO,CAACK,OAAnB;IAA4BC,IAAI,EAAEN,OAAO,CAACM;EAA1C,CAAtB,CAAJ,EAA6E;IACzE;EACH;;EAEDN,OAAO,CAACO,QAAR,CAAiBC,oBAAjB;EAEA,MAAMC,MAAM,GAAGT,OAAO,CAACM,IAAR,CAAaI,gBAAb,EAAf;;EACA,IAAI,CAACD,MAAL,EAAa;IACT,MAAM,IAAIE,cAAJ,CACF,8DADE,EAEF,cAFE,CAAN;EAIH;EACD;AACJ;AACA;AACA;;;EACI,MAAMC,OAAO,GAAG,uBAAhB;EACA;AACJ;AACA;;EACI,MAAMC,cAAc,GAAG,IAAIC,8BAAJ,CAAmB;IACtCC,EAAE,EAAEH,OADkC;IAEtCI,IAAI,EAAE,KAFgC;IAGtCC,IAAI,EAAE,KAHgC;IAItCC,WAAW,EAAE,wCAJyB;IAKtCC,IAAI,EAAE,UALgC;IAMtCC,SAAS,EAAE;EAN2B,CAAnB,CAAvB;EASA;AACJ;AACA;;EACI,MAAMC,4BAA4B,GAAG,IAAAC,iDAAA,GAArC;EACA,MAAMC,uBAAuB,GAAG,IAAAC,uCAAA,GAAhC;EACA,MAAMC,uBAAuB,GAAG,IAAAC,uCAAA,EAA8B;IAC1DC,eAAe,EAAEJ,uBAAuB,CAACK;EADiB,CAA9B,CAAhC;EAGA,MAAMC,sBAAsB,GAAG,IAAAC,qCAAA,EAA6B;IACxDF,OAAO,EAAEP,4BAA4B,CAACO;EADkB,CAA7B,CAA/B;EAGA,MAAMG,4BAA4B,GAAG,IAAAC,iDAAA,EAAmC;IACpEL,eAAe,EAAEJ,uBAAuB,CAACK;EAD2B,CAAnC,CAArC;EAIA,MAAMK,gBAAgB,GAAG,CACrBR,uBADqB,EAErBM,4BAFqB,EAGrBR,uBAHqB,EAIrBF,4BAJqB,EAKrBQ,sBALqB,CAAzB;EAQA,MAAMK,eAAe,GAAG,EAAxB;;EACA,KAAK,MAAMC,eAAX,IAA8BF,gBAA9B,EAAgD;IAC5C,MAAMG,cAAc,GAAG,IAAAC,oDAAA,EAA0B;MAC7CC,KAAK,EAAEzB,cAAc,CAAC0B,iBADuB;MAE7CC,MAAM,EAAExC,OAAO,CAACK,OAAR,CAAgBoC,gBAAhB,GAAmC1B,EAFE;MAG7CN,MAAM,EAAEA,MAAM,CAACiC,IAH8B;MAI7CP;IAJ6C,CAA1B,CAAvB;IAMA;AACR;AACA;AACA;;IACQ,IAAIC,cAAc,CAACO,YAAf,CAA4Bf,OAA5B,KAAwC,iCAA5C,EAA+E;MAC3EQ,cAAc,CAACO,YAAf,CAA4BC,YAA5B,GAA2C,OAA3C;IACH;;IACDV,eAAe,CAACW,IAAhB,CAAqBT,cAArB;EACH;EAED;AACJ;AACA;;;EACIpC,OAAO,CAAC8C,OAAR,CAAgBC,QAAhB,CAAyB,CAAClC,cAAD,EAAiBqB,eAAjB,CAAzB;EAEAlC,OAAO,CAACO,QAAR,CAAiByC,mBAAjB;AACH,CAvFM"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createReviewerModelDefinition = exports.REVIEWER_MODEL_ID = void 0;
|
7
|
+
|
8
|
+
var _utils = require("./utils");
|
9
|
+
|
10
|
+
const idField = () => (0, _utils.createModelField)({
|
11
|
+
label: "Identity Id",
|
12
|
+
type: "text",
|
13
|
+
parent: "reviewer",
|
14
|
+
validation: [{
|
15
|
+
message: "`identityId` field value is required in reviewer.",
|
16
|
+
name: "required"
|
17
|
+
}]
|
18
|
+
});
|
19
|
+
|
20
|
+
const displayNameField = () => (0, _utils.createModelField)({
|
21
|
+
label: "Display Name",
|
22
|
+
type: "text",
|
23
|
+
parent: "reviewer",
|
24
|
+
validation: [{
|
25
|
+
message: "`displayName` field value is required in reviewer.",
|
26
|
+
name: "required"
|
27
|
+
}]
|
28
|
+
});
|
29
|
+
|
30
|
+
const typeField = () => (0, _utils.createModelField)({
|
31
|
+
label: "Type",
|
32
|
+
type: "text",
|
33
|
+
parent: "reviewer",
|
34
|
+
validation: [{
|
35
|
+
message: "`type` field value is required in reviewer.",
|
36
|
+
name: "required"
|
37
|
+
}]
|
38
|
+
});
|
39
|
+
|
40
|
+
const REVIEWER_MODEL_ID = "apwReviewerModelDefinition";
|
41
|
+
exports.REVIEWER_MODEL_ID = REVIEWER_MODEL_ID;
|
42
|
+
|
43
|
+
const createReviewerModelDefinition = () => {
|
44
|
+
return {
|
45
|
+
name: "APW - Reviewer",
|
46
|
+
modelId: REVIEWER_MODEL_ID,
|
47
|
+
titleFieldId: "displayName",
|
48
|
+
layout: [["reviewer_identityId"], ["reviewer_displayName"], ["reviewer_type"]],
|
49
|
+
fields: [idField(), displayNameField(), typeField()],
|
50
|
+
description: "",
|
51
|
+
isPrivate: true
|
52
|
+
};
|
53
|
+
};
|
54
|
+
|
55
|
+
exports.createReviewerModelDefinition = createReviewerModelDefinition;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["idField","createModelField","label","type","parent","validation","message","name","displayNameField","typeField","REVIEWER_MODEL_ID","createReviewerModelDefinition","modelId","titleFieldId","layout","fields","description","isPrivate"],"sources":["reviewer.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst idField = () =>\n createModelField({\n label: \"Identity Id\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`identityId` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst displayNameField = () =>\n createModelField({\n label: \"Display Name\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`displayName` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nconst typeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"reviewer\",\n validation: [\n {\n message: \"`type` field value is required in reviewer.\",\n name: \"required\"\n }\n ]\n });\n\nexport const REVIEWER_MODEL_ID = \"apwReviewerModelDefinition\";\n\nexport const createReviewerModelDefinition = (): WorkflowModelDefinition => {\n return {\n name: \"APW - Reviewer\",\n modelId: REVIEWER_MODEL_ID,\n titleFieldId: \"displayName\",\n layout: [[\"reviewer_identityId\"], [\"reviewer_displayName\"], [\"reviewer_type\"]],\n fields: [idField(), displayNameField(), typeField()],\n description: \"\",\n isPrivate: true\n };\n};\n"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,OAAO,GAAG,MACZ,IAAAC,uBAAA,EAAiB;EACbC,KAAK,EAAE,aADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,mDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAMC,gBAAgB,GAAG,MACrB,IAAAP,uBAAA,EAAiB;EACbC,KAAK,EAAE,cADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,oDADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaA,MAAME,SAAS,GAAG,MACd,IAAAR,uBAAA,EAAiB;EACbC,KAAK,EAAE,MADM;EAEbC,IAAI,EAAE,MAFO;EAGbC,MAAM,EAAE,UAHK;EAIbC,UAAU,EAAE,CACR;IACIC,OAAO,EAAE,6CADb;IAEIC,IAAI,EAAE;EAFV,CADQ;AAJC,CAAjB,CADJ;;AAaO,MAAMG,iBAAiB,GAAG,4BAA1B;;;AAEA,MAAMC,6BAA6B,GAAG,MAA+B;EACxE,OAAO;IACHJ,IAAI,EAAE,gBADH;IAEHK,OAAO,EAAEF,iBAFN;IAGHG,YAAY,EAAE,aAHX;IAIHC,MAAM,EAAE,CAAC,CAAC,qBAAD,CAAD,EAA0B,CAAC,sBAAD,CAA1B,EAAoD,CAAC,eAAD,CAApD,CAJL;IAKHC,MAAM,EAAE,CAACf,OAAO,EAAR,EAAYQ,gBAAgB,EAA5B,EAAgCC,SAAS,EAAzC,CALL;IAMHO,WAAW,EAAE,EANV;IAOHC,SAAS,EAAE;EAPR,CAAP;AASH,CAVM"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.createModelField = void 0;
|
9
|
+
|
10
|
+
var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
|
11
|
+
|
12
|
+
const createModelField = params => {
|
13
|
+
const {
|
14
|
+
label,
|
15
|
+
type,
|
16
|
+
parent
|
17
|
+
} = params;
|
18
|
+
const fieldId = (0, _camelCase.default)(label);
|
19
|
+
return {
|
20
|
+
id: `${(0, _camelCase.default)(parent)}_${fieldId}`,
|
21
|
+
storageId: fieldId,
|
22
|
+
fieldId,
|
23
|
+
label,
|
24
|
+
type,
|
25
|
+
settings: params.settings || {},
|
26
|
+
listValidation: params.listValidation || [],
|
27
|
+
validation: params.validation || [],
|
28
|
+
multipleValues: params.multipleValues || false,
|
29
|
+
predefinedValues: params.predefinedValues || {
|
30
|
+
values: [],
|
31
|
+
enabled: false
|
32
|
+
}
|
33
|
+
};
|
34
|
+
};
|
35
|
+
|
36
|
+
exports.createModelField = createModelField;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["createModelField","params","label","type","parent","fieldId","camelCase","id","storageId","settings","listValidation","validation","multipleValues","predefinedValues","values","enabled"],"sources":["utils.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { CreateModelFieldParams } from \"~/plugins/utils\";\n\nexport const createModelField = (params: CreateModelFieldParams): CmsModelField => {\n const { label, type, parent } = params;\n const fieldId = camelCase(label);\n return {\n id: `${camelCase(parent)}_${fieldId}`,\n storageId: fieldId,\n fieldId,\n label,\n type,\n settings: params.settings || {},\n listValidation: params.listValidation || [],\n validation: params.validation || [],\n multipleValues: params.multipleValues || false,\n predefinedValues: params.predefinedValues || {\n values: [],\n enabled: false\n }\n };\n};\n"],"mappings":";;;;;;;;;AAAA;;AAIO,MAAMA,gBAAgB,GAAIC,MAAD,IAAmD;EAC/E,MAAM;IAAEC,KAAF;IAASC,IAAT;IAAeC;EAAf,IAA0BH,MAAhC;EACA,MAAMI,OAAO,GAAG,IAAAC,kBAAA,EAAUJ,KAAV,CAAhB;EACA,OAAO;IACHK,EAAE,EAAG,GAAE,IAAAD,kBAAA,EAAUF,MAAV,CAAkB,IAAGC,OAAQ,EADjC;IAEHG,SAAS,EAAEH,OAFR;IAGHA,OAHG;IAIHH,KAJG;IAKHC,IALG;IAMHM,QAAQ,EAAER,MAAM,CAACQ,QAAP,IAAmB,EAN1B;IAOHC,cAAc,EAAET,MAAM,CAACS,cAAP,IAAyB,EAPtC;IAQHC,UAAU,EAAEV,MAAM,CAACU,UAAP,IAAqB,EAR9B;IASHC,cAAc,EAAEX,MAAM,CAACW,cAAP,IAAyB,KATtC;IAUHC,gBAAgB,EAAEZ,MAAM,CAACY,gBAAP,IAA2B;MACzCC,MAAM,EAAE,EADiC;MAEzCC,OAAO,EAAE;IAFgC;EAV1C,CAAP;AAeH,CAlBM"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { CmsModelField } from "@webiny/api-headless-cms/types";
|
2
|
+
import { WorkflowModelDefinition } from "../../types";
|
3
|
+
export declare const stepTitleField: () => CmsModelField;
|
4
|
+
export declare const stepTypeField: () => CmsModelField;
|
5
|
+
export declare const stepIdField: () => CmsModelField;
|
6
|
+
export declare const stepReviewersField: (reviewerModelId: string) => CmsModelField;
|
7
|
+
interface CreateWorkflowModelDefinitionParams {
|
8
|
+
reviewerModelId: string;
|
9
|
+
}
|
10
|
+
export declare const WORKFLOW_MODEL_ID = "apwWorkflowModelDefinition";
|
11
|
+
export declare const createWorkflowModelDefinition: ({ reviewerModelId }: CreateWorkflowModelDefinitionParams) => WorkflowModelDefinition;
|
12
|
+
export {};
|
@@ -0,0 +1,208 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.stepTypeField = exports.stepTitleField = exports.stepReviewersField = exports.stepIdField = exports.createWorkflowModelDefinition = exports.WORKFLOW_MODEL_ID = void 0;
|
7
|
+
|
8
|
+
var _utils = require("./utils");
|
9
|
+
|
10
|
+
const titleField = () => (0, _utils.createModelField)({
|
11
|
+
label: "Title",
|
12
|
+
type: "text",
|
13
|
+
parent: "workflow",
|
14
|
+
validation: [{
|
15
|
+
message: "`title` field value is required in workflow.",
|
16
|
+
name: "required"
|
17
|
+
}]
|
18
|
+
});
|
19
|
+
|
20
|
+
const stepsField = fields => (0, _utils.createModelField)({
|
21
|
+
label: "Steps",
|
22
|
+
type: "object",
|
23
|
+
parent: "workflow",
|
24
|
+
settings: {
|
25
|
+
fields
|
26
|
+
},
|
27
|
+
multipleValues: true
|
28
|
+
});
|
29
|
+
|
30
|
+
const stepTitleField = () => (0, _utils.createModelField)({
|
31
|
+
label: "Title",
|
32
|
+
type: "text",
|
33
|
+
parent: "workflow steps",
|
34
|
+
validation: [{
|
35
|
+
message: "`title` field value is required in workflow steps.",
|
36
|
+
name: "required"
|
37
|
+
}]
|
38
|
+
});
|
39
|
+
|
40
|
+
exports.stepTitleField = stepTitleField;
|
41
|
+
|
42
|
+
const stepTypeField = () => (0, _utils.createModelField)({
|
43
|
+
label: "Type",
|
44
|
+
type: "text",
|
45
|
+
parent: "workflow steps",
|
46
|
+
predefinedValues: {
|
47
|
+
enabled: true,
|
48
|
+
values: [{
|
49
|
+
value: "mandatoryBlocking",
|
50
|
+
label: "Mandatory, blocking - An approval from a reviewer is required before being able to move to the next step and publish the content. "
|
51
|
+
}, {
|
52
|
+
value: "mandatoryNonBlocking",
|
53
|
+
label: "Mandatory, non-blocking - An approval from a reviewer is to publish the content, but the next step in the review workflow is not blocked. "
|
54
|
+
}, {
|
55
|
+
value: "notMandatory",
|
56
|
+
label: "Not mandatory - This is an optional review step. The content can be published regardless if an approval is provided or not."
|
57
|
+
}]
|
58
|
+
},
|
59
|
+
validation: [{
|
60
|
+
name: "required",
|
61
|
+
message: "`type` field value is required in workflow steps."
|
62
|
+
}]
|
63
|
+
});
|
64
|
+
|
65
|
+
exports.stepTypeField = stepTypeField;
|
66
|
+
|
67
|
+
const stepIdField = () => (0, _utils.createModelField)({
|
68
|
+
label: "Id",
|
69
|
+
type: "text",
|
70
|
+
parent: "workflow steps",
|
71
|
+
validation: [{
|
72
|
+
message: "`id` field value is required in workflow steps.",
|
73
|
+
name: "required"
|
74
|
+
}]
|
75
|
+
});
|
76
|
+
|
77
|
+
exports.stepIdField = stepIdField;
|
78
|
+
|
79
|
+
const stepReviewersField = reviewerModelId => (0, _utils.createModelField)({
|
80
|
+
label: "Reviewers",
|
81
|
+
type: "ref",
|
82
|
+
parent: "workflow steps",
|
83
|
+
multipleValues: true,
|
84
|
+
settings: {
|
85
|
+
models: [{
|
86
|
+
modelId: reviewerModelId
|
87
|
+
}]
|
88
|
+
},
|
89
|
+
listValidation: [{
|
90
|
+
name: "minLength",
|
91
|
+
message: "Value is too short.",
|
92
|
+
settings: {
|
93
|
+
value: "1"
|
94
|
+
}
|
95
|
+
}]
|
96
|
+
});
|
97
|
+
|
98
|
+
exports.stepReviewersField = stepReviewersField;
|
99
|
+
|
100
|
+
const scopeField = fields => (0, _utils.createModelField)({
|
101
|
+
type: "object",
|
102
|
+
label: "Scope",
|
103
|
+
parent: "workflow",
|
104
|
+
settings: {
|
105
|
+
fields
|
106
|
+
}
|
107
|
+
});
|
108
|
+
|
109
|
+
const scopeTypeField = () => (0, _utils.createModelField)({
|
110
|
+
label: "Type",
|
111
|
+
parent: "workflow scope",
|
112
|
+
type: "text",
|
113
|
+
validation: [{
|
114
|
+
message: "`type` field value is required in workflow scope.",
|
115
|
+
name: "required"
|
116
|
+
}],
|
117
|
+
predefinedValues: {
|
118
|
+
enabled: true,
|
119
|
+
values: [{
|
120
|
+
value: "default",
|
121
|
+
label: "Default - Catch all scope that applies to all content that's being published."
|
122
|
+
}, {
|
123
|
+
value: "pageBuilder",
|
124
|
+
label: "Page category (Page Builder only) - The workflow will apply to all pages inside specific categories."
|
125
|
+
}, {
|
126
|
+
value: "cms",
|
127
|
+
label: "Content model (Headless CMS only) - The workflow will apply to all the content inside the specific content models. "
|
128
|
+
}]
|
129
|
+
}
|
130
|
+
});
|
131
|
+
|
132
|
+
const scopeDataField = fields => (0, _utils.createModelField)({
|
133
|
+
label: "Data",
|
134
|
+
parent: "workflow scope",
|
135
|
+
type: "object",
|
136
|
+
settings: {
|
137
|
+
fields
|
138
|
+
}
|
139
|
+
});
|
140
|
+
|
141
|
+
const scopeDataPbCategories = () => (0, _utils.createModelField)({
|
142
|
+
label: "Categories",
|
143
|
+
parent: "workflow scope data",
|
144
|
+
type: "text",
|
145
|
+
multipleValues: true
|
146
|
+
});
|
147
|
+
|
148
|
+
const scopeDataPbPages = () => (0, _utils.createModelField)({
|
149
|
+
label: "Pages",
|
150
|
+
parent: "workflow scope data",
|
151
|
+
type: "text",
|
152
|
+
multipleValues: true
|
153
|
+
});
|
154
|
+
|
155
|
+
const scopeDataCmsModels = () => (0, _utils.createModelField)({
|
156
|
+
label: "Models",
|
157
|
+
parent: "workflow scope data",
|
158
|
+
type: "text",
|
159
|
+
multipleValues: true
|
160
|
+
});
|
161
|
+
|
162
|
+
const scopeDataCmsEntries = () => (0, _utils.createModelField)({
|
163
|
+
label: "Entries",
|
164
|
+
parent: "workflow scope data",
|
165
|
+
type: "text",
|
166
|
+
multipleValues: true
|
167
|
+
});
|
168
|
+
|
169
|
+
const applicationField = () => (0, _utils.createModelField)({
|
170
|
+
parent: "workflow",
|
171
|
+
type: "text",
|
172
|
+
label: "App",
|
173
|
+
validation: [{
|
174
|
+
message: "`app` field value is required in workflow.",
|
175
|
+
name: "required"
|
176
|
+
}],
|
177
|
+
predefinedValues: {
|
178
|
+
enabled: true,
|
179
|
+
values: [{
|
180
|
+
label: "Page Builder",
|
181
|
+
value: "pageBuilder"
|
182
|
+
}, {
|
183
|
+
label: "Headless CMS",
|
184
|
+
value: "cms"
|
185
|
+
}]
|
186
|
+
}
|
187
|
+
});
|
188
|
+
|
189
|
+
const WORKFLOW_MODEL_ID = "apwWorkflowModelDefinition";
|
190
|
+
exports.WORKFLOW_MODEL_ID = WORKFLOW_MODEL_ID;
|
191
|
+
|
192
|
+
const createWorkflowModelDefinition = ({
|
193
|
+
reviewerModelId
|
194
|
+
}) => ({
|
195
|
+
name: "APW - Workflow",
|
196
|
+
|
197
|
+
/**
|
198
|
+
* Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.
|
199
|
+
*/
|
200
|
+
modelId: WORKFLOW_MODEL_ID,
|
201
|
+
layout: [["workflow_title"], ["workflow_steps"], ["workflow_scope"], ["workflow_app"]],
|
202
|
+
titleFieldId: "title",
|
203
|
+
description: "",
|
204
|
+
fields: [titleField(), stepsField([stepTitleField(), stepTypeField(), stepIdField(), stepReviewersField(reviewerModelId)]), scopeField([scopeTypeField(), scopeDataField([scopeDataPbCategories(), scopeDataPbPages(), scopeDataCmsModels(), scopeDataCmsEntries()])]), applicationField()],
|
205
|
+
isPrivate: true
|
206
|
+
});
|
207
|
+
|
208
|
+
exports.createWorkflowModelDefinition = createWorkflowModelDefinition;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["titleField","createModelField","label","type","parent","validation","message","name","stepsField","fields","settings","multipleValues","stepTitleField","stepTypeField","predefinedValues","enabled","values","value","stepIdField","stepReviewersField","reviewerModelId","models","modelId","listValidation","scopeField","scopeTypeField","scopeDataField","scopeDataPbCategories","scopeDataPbPages","scopeDataCmsModels","scopeDataCmsEntries","applicationField","WORKFLOW_MODEL_ID","createWorkflowModelDefinition","layout","titleFieldId","description","isPrivate"],"sources":["workflow.model.ts"],"sourcesContent":["import { createModelField } from \"./utils\";\nimport { CmsModelField } from \"@webiny/api-headless-cms/types\";\nimport { WorkflowModelDefinition } from \"~/types\";\n\nconst titleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"workflow\",\n validation: [\n {\n message: \"`title` field value is required in workflow.\",\n name: \"required\"\n }\n ]\n });\n\nconst stepsField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Steps\",\n type: \"object\",\n parent: \"workflow\",\n settings: {\n fields\n },\n multipleValues: true\n });\n\nexport const stepTitleField = () =>\n createModelField({\n label: \"Title\",\n type: \"text\",\n parent: \"workflow steps\",\n validation: [\n {\n message: \"`title` field value is required in workflow steps.\",\n name: \"required\"\n }\n ]\n });\n\nexport const stepTypeField = () =>\n createModelField({\n label: \"Type\",\n type: \"text\",\n parent: \"workflow steps\",\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"mandatoryBlocking\",\n label: \"Mandatory, blocking - An approval from a reviewer is required before being able to move to the next step and publish the content. \"\n },\n {\n value: \"mandatoryNonBlocking\",\n label: \"Mandatory, non-blocking - An approval from a reviewer is to publish the content, but the next step in the review workflow is not blocked. \"\n },\n {\n value: \"notMandatory\",\n label: \"Not mandatory - This is an optional review step. The content can be published regardless if an approval is provided or not.\"\n }\n ]\n },\n validation: [\n {\n name: \"required\",\n message: \"`type` field value is required in workflow steps.\"\n }\n ]\n });\n\nexport const stepIdField = () =>\n createModelField({\n label: \"Id\",\n type: \"text\",\n parent: \"workflow steps\",\n validation: [\n {\n message: \"`id` field value is required in workflow steps.\",\n name: \"required\"\n }\n ]\n });\n\nexport const stepReviewersField = (reviewerModelId: string) =>\n createModelField({\n label: \"Reviewers\",\n type: \"ref\",\n parent: \"workflow steps\",\n multipleValues: true,\n settings: {\n models: [\n {\n modelId: reviewerModelId\n }\n ]\n },\n listValidation: [\n {\n name: \"minLength\",\n message: \"Value is too short.\",\n settings: {\n value: \"1\"\n }\n }\n ]\n });\n\nconst scopeField = (fields: CmsModelField[]) =>\n createModelField({\n type: \"object\",\n label: \"Scope\",\n parent: \"workflow\",\n settings: {\n fields\n }\n });\n\nconst scopeTypeField = () =>\n createModelField({\n label: \"Type\",\n parent: \"workflow scope\",\n type: \"text\",\n validation: [\n {\n message: \"`type` field value is required in workflow scope.\",\n name: \"required\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n {\n value: \"default\",\n label: \"Default - Catch all scope that applies to all content that's being published.\"\n },\n {\n value: \"pageBuilder\",\n label: \"Page category (Page Builder only) - The workflow will apply to all pages inside specific categories.\"\n },\n {\n value: \"cms\",\n label: \"Content model (Headless CMS only) - The workflow will apply to all the content inside the specific content models. \"\n }\n ]\n }\n });\n\nconst scopeDataField = (fields: CmsModelField[]) =>\n createModelField({\n label: \"Data\",\n parent: \"workflow scope\",\n type: \"object\",\n settings: {\n fields\n }\n });\n\nconst scopeDataPbCategories = () =>\n createModelField({\n label: \"Categories\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataPbPages = () =>\n createModelField({\n label: \"Pages\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataCmsModels = () =>\n createModelField({\n label: \"Models\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\nconst scopeDataCmsEntries = () =>\n createModelField({\n label: \"Entries\",\n parent: \"workflow scope data\",\n type: \"text\",\n multipleValues: true\n });\n\nconst applicationField = () =>\n createModelField({\n parent: \"workflow\",\n type: \"text\",\n label: \"App\",\n validation: [\n {\n message: \"`app` field value is required in workflow.\",\n name: \"required\"\n }\n ],\n predefinedValues: {\n enabled: true,\n values: [\n { label: \"Page Builder\", value: \"pageBuilder\" },\n { label: \"Headless CMS\", value: \"cms\" }\n ]\n }\n });\n\ninterface CreateWorkflowModelDefinitionParams {\n reviewerModelId: string;\n}\n\nexport const WORKFLOW_MODEL_ID = \"apwWorkflowModelDefinition\";\n\nexport const createWorkflowModelDefinition = ({\n reviewerModelId\n}: CreateWorkflowModelDefinitionParams): WorkflowModelDefinition => ({\n name: \"APW - Workflow\",\n /**\n * Id of the model cannot be appWorkflow because it clashes with the GraphQL types for APW.\n */\n modelId: WORKFLOW_MODEL_ID,\n layout: [[\"workflow_title\"], [\"workflow_steps\"], [\"workflow_scope\"], [\"workflow_app\"]],\n titleFieldId: \"title\",\n description: \"\",\n fields: [\n titleField(),\n stepsField([\n stepTitleField(),\n stepTypeField(),\n stepIdField(),\n stepReviewersField(reviewerModelId)\n ]),\n scopeField([\n scopeTypeField(),\n scopeDataField([\n scopeDataPbCategories(),\n scopeDataPbPages(),\n scopeDataCmsModels(),\n scopeDataCmsEntries()\n ])\n ]),\n applicationField()\n ],\n isPrivate: true\n});\n"],"mappings":"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"}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.createReviewerStorageOperations = void 0;
|
9
|
+
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
|
+
|
12
|
+
var _index = require("./index");
|
13
|
+
|
14
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
15
|
+
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
17
|
+
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
19
|
+
|
20
|
+
const createReviewerStorageOperations = ({
|
21
|
+
cms,
|
22
|
+
security
|
23
|
+
}) => {
|
24
|
+
const getReviewerModel = async () => {
|
25
|
+
const model = await cms.getModel("apwReviewerModelDefinition");
|
26
|
+
|
27
|
+
if (!model) {
|
28
|
+
throw new _error.default("Could not find `apwReviewerModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
|
29
|
+
}
|
30
|
+
|
31
|
+
return model;
|
32
|
+
};
|
33
|
+
|
34
|
+
const getReviewer = async ({
|
35
|
+
id
|
36
|
+
}) => {
|
37
|
+
const model = await getReviewerModel();
|
38
|
+
security.disableAuthorization();
|
39
|
+
const entry = await cms.getEntryById(model, id);
|
40
|
+
security.enableAuthorization();
|
41
|
+
return (0, _index.getFieldValues)(entry, _index.baseFields);
|
42
|
+
};
|
43
|
+
|
44
|
+
return {
|
45
|
+
getReviewerModel,
|
46
|
+
getReviewer,
|
47
|
+
|
48
|
+
async listReviewers(params) {
|
49
|
+
const model = await getReviewerModel();
|
50
|
+
security.disableAuthorization();
|
51
|
+
const [entries, meta] = await cms.listLatestEntries(model, _objectSpread(_objectSpread({}, params), {}, {
|
52
|
+
where: _objectSpread({}, params.where)
|
53
|
+
}));
|
54
|
+
security.enableAuthorization();
|
55
|
+
return [entries.map(entry => (0, _index.getFieldValues)(entry, _index.baseFields)), meta];
|
56
|
+
},
|
57
|
+
|
58
|
+
async createReviewer(params) {
|
59
|
+
const model = await getReviewerModel();
|
60
|
+
security.disableAuthorization();
|
61
|
+
const entry = await cms.createEntry(model, params.data);
|
62
|
+
security.enableAuthorization();
|
63
|
+
return (0, _index.getFieldValues)(entry, _index.baseFields);
|
64
|
+
},
|
65
|
+
|
66
|
+
async updateReviewer(params) {
|
67
|
+
const model = await getReviewerModel();
|
68
|
+
/**
|
69
|
+
* We're fetching the existing entry here because we're not accepting "app" field as input,
|
70
|
+
* but, we still need to retain its value after the "update" operation.
|
71
|
+
*/
|
72
|
+
|
73
|
+
const existingEntry = await getReviewer({
|
74
|
+
id: params.id
|
75
|
+
});
|
76
|
+
security.disableAuthorization();
|
77
|
+
const entry = await cms.updateEntry(model, params.id, _objectSpread(_objectSpread({}, existingEntry), params.data));
|
78
|
+
security.enableAuthorization();
|
79
|
+
return (0, _index.getFieldValues)(entry, _index.baseFields);
|
80
|
+
},
|
81
|
+
|
82
|
+
async deleteReviewer(params) {
|
83
|
+
const model = await getReviewerModel();
|
84
|
+
security.disableAuthorization();
|
85
|
+
await cms.deleteEntry(model, params.id);
|
86
|
+
security.enableAuthorization();
|
87
|
+
return true;
|
88
|
+
}
|
89
|
+
|
90
|
+
};
|
91
|
+
};
|
92
|
+
|
93
|
+
exports.createReviewerStorageOperations = createReviewerStorageOperations;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["createReviewerStorageOperations","cms","security","getReviewerModel","model","getModel","WebinyError","getReviewer","id","disableAuthorization","entry","getEntryById","enableAuthorization","getFieldValues","baseFields","listReviewers","params","entries","meta","listLatestEntries","where","map","createReviewer","createEntry","data","updateReviewer","existingEntry","updateEntry","deleteReviewer","deleteEntry"],"sources":["reviewerStorageOperations.ts"],"sourcesContent":["import { ApwReviewerStorageOperations } from \"./types\";\nimport {\n baseFields,\n CreateApwStorageOperationsParams,\n getFieldValues\n} from \"~/storageOperations/index\";\nimport WebinyError from \"@webiny/error\";\n\nexport const createReviewerStorageOperations = ({\n cms,\n security\n}: CreateApwStorageOperationsParams): ApwReviewerStorageOperations => {\n const getReviewerModel = async () => {\n const model = await cms.getModel(\"apwReviewerModelDefinition\");\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwReviewerModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getReviewer: ApwReviewerStorageOperations[\"getReviewer\"] = async ({ id }) => {\n const model = await getReviewerModel();\n security.disableAuthorization();\n const entry = await cms.getEntryById(model, id);\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n };\n return {\n getReviewerModel,\n getReviewer,\n async listReviewers(params) {\n const model = await getReviewerModel();\n security.disableAuthorization();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where\n }\n });\n security.enableAuthorization();\n return [entries.map(entry => getFieldValues(entry, baseFields)), meta];\n },\n async createReviewer(params) {\n const model = await getReviewerModel();\n security.disableAuthorization();\n const entry = await cms.createEntry(model, params.data);\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n },\n async updateReviewer(params) {\n const model = await getReviewerModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getReviewer({ id: params.id });\n\n security.disableAuthorization();\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n security.enableAuthorization();\n return getFieldValues(entry, baseFields);\n },\n async deleteReviewer(params) {\n const model = await getReviewerModel();\n security.disableAuthorization();\n await cms.deleteEntry(model, params.id);\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":";;;;;;;;;;;AACA;;AAKA;;;;;;AAEO,MAAMA,+BAA+B,GAAG,CAAC;EAC5CC,GAD4C;EAE5CC;AAF4C,CAAD,KAGuB;EAClE,MAAMC,gBAAgB,GAAG,YAAY;IACjC,MAAMC,KAAK,GAAG,MAAMH,GAAG,CAACI,QAAJ,CAAa,4BAAb,CAApB;;IACA,IAAI,CAACD,KAAL,EAAY;MACR,MAAM,IAAIE,cAAJ,CACF,oDADE,EAEF,uBAFE,CAAN;IAIH;;IACD,OAAOF,KAAP;EACH,CATD;;EAUA,MAAMG,WAAwD,GAAG,OAAO;IAAEC;EAAF,CAAP,KAAkB;IAC/E,MAAMJ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;IACAD,QAAQ,CAACO,oBAAT;IACA,MAAMC,KAAK,GAAG,MAAMT,GAAG,CAACU,YAAJ,CAAiBP,KAAjB,EAAwBI,EAAxB,CAApB;IACAN,QAAQ,CAACU,mBAAT;IACA,OAAO,IAAAC,qBAAA,EAAeH,KAAf,EAAsBI,iBAAtB,CAAP;EACH,CAND;;EAOA,OAAO;IACHX,gBADG;IAEHI,WAFG;;IAGH,MAAMQ,aAAN,CAAoBC,MAApB,EAA4B;MACxB,MAAMZ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;MACAD,QAAQ,CAACO,oBAAT;MACA,MAAM,CAACQ,OAAD,EAAUC,IAAV,IAAkB,MAAMjB,GAAG,CAACkB,iBAAJ,CAAsBf,KAAtB,kCACvBY,MADuB;QAE1BI,KAAK,oBACEJ,MAAM,CAACI,KADT;MAFqB,GAA9B;MAMAlB,QAAQ,CAACU,mBAAT;MACA,OAAO,CAACK,OAAO,CAACI,GAAR,CAAYX,KAAK,IAAI,IAAAG,qBAAA,EAAeH,KAAf,EAAsBI,iBAAtB,CAArB,CAAD,EAA0DI,IAA1D,CAAP;IACH,CAdE;;IAeH,MAAMI,cAAN,CAAqBN,MAArB,EAA6B;MACzB,MAAMZ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;MACAD,QAAQ,CAACO,oBAAT;MACA,MAAMC,KAAK,GAAG,MAAMT,GAAG,CAACsB,WAAJ,CAAgBnB,KAAhB,EAAuBY,MAAM,CAACQ,IAA9B,CAApB;MACAtB,QAAQ,CAACU,mBAAT;MACA,OAAO,IAAAC,qBAAA,EAAeH,KAAf,EAAsBI,iBAAtB,CAAP;IACH,CArBE;;IAsBH,MAAMW,cAAN,CAAqBT,MAArB,EAA6B;MACzB,MAAMZ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;MACA;AACZ;AACA;AACA;;MACY,MAAMuB,aAAa,GAAG,MAAMnB,WAAW,CAAC;QAAEC,EAAE,EAAEQ,MAAM,CAACR;MAAb,CAAD,CAAvC;MAEAN,QAAQ,CAACO,oBAAT;MACA,MAAMC,KAAK,GAAG,MAAMT,GAAG,CAAC0B,WAAJ,CAAgBvB,KAAhB,EAAuBY,MAAM,CAACR,EAA9B,kCACbkB,aADa,GAEbV,MAAM,CAACQ,IAFM,EAApB;MAIAtB,QAAQ,CAACU,mBAAT;MACA,OAAO,IAAAC,qBAAA,EAAeH,KAAf,EAAsBI,iBAAtB,CAAP;IACH,CArCE;;IAsCH,MAAMc,cAAN,CAAqBZ,MAArB,EAA6B;MACzB,MAAMZ,KAAK,GAAG,MAAMD,gBAAgB,EAApC;MACAD,QAAQ,CAACO,oBAAT;MACA,MAAMR,GAAG,CAAC4B,WAAJ,CAAgBzB,KAAhB,EAAuBY,MAAM,CAACR,EAA9B,CAAN;MACAN,QAAQ,CAACU,mBAAT;MACA,OAAO,IAAP;IACH;;EA5CE,CAAP;AA8CH,CAnEM"}
|